decoder/mp4ff: use tag_table.h to parse tag names
Convert if/else/else/... to a loop.
This commit is contained in:
parent
5092eaf1cc
commit
cfcd84655c
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "../decoder_api.h"
|
#include "../decoder_api.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include "tag_table.h"
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
@ -339,6 +340,17 @@ mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream)
|
|||||||
mp4ff_close(mp4fh);
|
mp4ff_close(mp4fh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *const mp4ff_tag_names[TAG_NUM_OF_ITEM_TYPES] = {
|
||||||
|
[TAG_ITEM_TITLE] = "title",
|
||||||
|
[TAG_ITEM_ARTIST] = "artist",
|
||||||
|
[TAG_ITEM_ALBUM] = "album",
|
||||||
|
[TAG_ITEM_TRACK] = "track",
|
||||||
|
[TAG_ITEM_DISC] = "disc",
|
||||||
|
[TAG_ITEM_GENRE] = "genre",
|
||||||
|
[TAG_ITEM_DATE] = "date",
|
||||||
|
[TAG_ITEM_COMPOSER] = "writer",
|
||||||
|
};
|
||||||
|
|
||||||
static struct tag *
|
static struct tag *
|
||||||
mp4_tag_dup(const char *file)
|
mp4_tag_dup(const char *file)
|
||||||
{
|
{
|
||||||
@ -394,24 +406,9 @@ mp4_tag_dup(const char *file)
|
|||||||
|
|
||||||
mp4ff_meta_get_by_index(mp4fh, i, &item, &value);
|
mp4ff_meta_get_by_index(mp4fh, i, &item, &value);
|
||||||
|
|
||||||
if (0 == g_ascii_strcasecmp("artist", item)) {
|
enum tag_type type = tag_table_lookup(mp4ff_tag_names, item);
|
||||||
tag_add_item(ret, TAG_ITEM_ARTIST, value);
|
if (type != TAG_NUM_OF_ITEM_TYPES)
|
||||||
} else if (0 == g_ascii_strcasecmp("title", item)) {
|
tag_add_item(ret, type, value);
|
||||||
tag_add_item(ret, TAG_ITEM_TITLE, value);
|
|
||||||
} else if (0 == g_ascii_strcasecmp("album", item)) {
|
|
||||||
tag_add_item(ret, TAG_ITEM_ALBUM, value);
|
|
||||||
} else if (0 == g_ascii_strcasecmp("track", item)) {
|
|
||||||
tag_add_item(ret, TAG_ITEM_TRACK, value);
|
|
||||||
} else if (0 == g_ascii_strcasecmp("disc", item)) {
|
|
||||||
/* Is that the correct id? */
|
|
||||||
tag_add_item(ret, TAG_ITEM_DISC, value);
|
|
||||||
} else if (0 == g_ascii_strcasecmp("genre", item)) {
|
|
||||||
tag_add_item(ret, TAG_ITEM_GENRE, value);
|
|
||||||
} else if (0 == g_ascii_strcasecmp("date", item)) {
|
|
||||||
tag_add_item(ret, TAG_ITEM_DATE, value);
|
|
||||||
} else if (0 == g_ascii_strcasecmp("writer", item)) {
|
|
||||||
tag_add_item(ret, TAG_ITEM_COMPOSER, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
free(item);
|
free(item);
|
||||||
free(value);
|
free(value);
|
||||||
|
Loading…
Reference in New Issue
Block a user