diff options
Diffstat (limited to 'src/tag_ape.c')
-rw-r--r-- | src/tag_ape.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/tag_ape.c b/src/tag_ape.c index 6d8e0c743..0e8f67456 100644 --- a/src/tag_ape.c +++ b/src/tag_ape.c @@ -19,13 +19,14 @@ #include "tag_ape.h" #include "tag.h" +#include "tag_table.h" #include <glib.h> #include <assert.h> #include <stdio.h> -static const char *const ape_tag_names[] = { +static const char *const ape_tag_names[TAG_NUM_OF_ITEM_TYPES] = { [TAG_ITEM_TITLE] = "title", [TAG_ITEM_ARTIST] = "artist", [TAG_ITEM_ALBUM] = "album", @@ -44,14 +45,13 @@ tag_ape_import_item(struct tag *tag, unsigned long flags, if ((flags & (0x3 << 1)) != 0) return tag; - for (unsigned i = 0; i < G_N_ELEMENTS(ape_tag_names); i++) { - if (ape_tag_names[i] != NULL && - g_ascii_strcasecmp(key, ape_tag_names[i]) == 0) { - if (tag == NULL) - tag = tag_new(); - tag_add_item_n(tag, i, value, value_length); - } - } + enum tag_type type = tag_table_lookup(ape_tag_names, key); + if (type == TAG_NUM_OF_ITEM_TYPES) + return tag; + + if (tag == NULL) + tag = tag_new(); + tag_add_item_n(tag, type, value, value_length); return tag; } |