aboutsummaryrefslogtreecommitdiffstats
path: root/src/tag_ape.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2010-06-30 21:18:27 +0200
committerMax Kellermann <max@duempel.org>2010-06-30 21:18:27 +0200
commit5092eaf1ccf7785c70d21a814f44a4b9437f63c0 (patch)
tree7668a989c6c1ebc45e48438e35fc652286842adf /src/tag_ape.c
parent9328558fc7245613a620ea77e26d19861a23f1ce (diff)
downloadmpd-5092eaf1ccf7785c70d21a814f44a4b9437f63c0.tar.gz
mpd-5092eaf1ccf7785c70d21a814f44a4b9437f63c0.tar.xz
mpd-5092eaf1ccf7785c70d21a814f44a4b9437f63c0.zip
tag_ape: move table lookup to tag_table.h
Allow code sharing.
Diffstat (limited to 'src/tag_ape.c')
-rw-r--r--src/tag_ape.c18
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;
}