diff options
author | Max Kellermann <max@duempel.org> | 2009-03-15 18:36:29 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-03-15 18:36:29 +0100 |
commit | ae1a7fc84ae81a02208fdf6cb3f02581deee94f1 (patch) | |
tree | 37ffdc1ad867df2384631f54ffae3d6af9acef2f | |
parent | 4bb84c05d7b701a55143af9431afd6b61eee31e2 (diff) |
vorbis_encoder: added support for all MPD tag types
Copy all tags know to MPD to the vorbis_comment.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | src/encoder/vorbis_encoder.c | 33 |
2 files changed, 6 insertions, 29 deletions
diff --git a/Makefile.am b/Makefile.am index d25703b1a..007c3f353 100644 --- a/Makefile.am +++ b/Makefile.am @@ -591,6 +591,7 @@ test_read_tags_SOURCES = test/read_tags.c \ test_run_encoder_SOURCES = test/run_encoder.c \ src/conf.c src/buffer2array.c \ src/utils.c \ + src/tag.c src/tag_pool.c \ src/audio_parser.c \ $(ENCODER_SRC) test_run_encoder_LDADD = $(MPD_LIBS) \ @@ -614,6 +615,7 @@ test_run_output_SOURCES = test/run_output.c \ src/conf.c src/buffer2array.c src/utils.c src/log.c \ src/audio_parser.c \ src/timer.c \ + src/tag.c src/tag_pool.c \ src/fifo_buffer.c \ src/page.c \ src/socket_util.c \ diff --git a/src/encoder/vorbis_encoder.c b/src/encoder/vorbis_encoder.c index cbf227c22..b2b71f335 100644 --- a/src/encoder/vorbis_encoder.c +++ b/src/encoder/vorbis_encoder.c @@ -267,38 +267,13 @@ vorbis_encoder_flush(struct encoder *_encoder, G_GNUC_UNUSED GError **error) } static void -add_tag(vorbis_comment *vc, const char *name, char *value) -{ - if (value) { - union { - const char *in; - char *out; - } u = { .in = name }; - - vorbis_comment_add_tag(vc, u.out, value); - } -} - -static void copy_tag_to_vorbis_comment(vorbis_comment *vc, const struct tag *tag) { for (unsigned i = 0; i < tag->num_items; i++) { - switch (tag->items[i]->type) { - case TAG_ITEM_ARTIST: - add_tag(vc, "ARTIST", tag->items[i]->value); - break; - - case TAG_ITEM_ALBUM: - add_tag(vc, "ALBUM", tag->items[i]->value); - break; - - case TAG_ITEM_TITLE: - add_tag(vc, "TITLE", tag->items[i]->value); - break; - - default: - break; - } + struct tag_item *item = tag->items[i]; + char *name = g_ascii_strup(tag_item_names[item->type], -1); + vorbis_comment_add_tag(vc, name, item->value); + g_free(name); } } |