vorbis_encoder: added support for all MPD tag types
Copy all tags know to MPD to the vorbis_comment.
This commit is contained in:
parent
4bb84c05d7
commit
ae1a7fc84a
@ -591,6 +591,7 @@ test_read_tags_SOURCES = test/read_tags.c \
|
|||||||
test_run_encoder_SOURCES = test/run_encoder.c \
|
test_run_encoder_SOURCES = test/run_encoder.c \
|
||||||
src/conf.c src/buffer2array.c \
|
src/conf.c src/buffer2array.c \
|
||||||
src/utils.c \
|
src/utils.c \
|
||||||
|
src/tag.c src/tag_pool.c \
|
||||||
src/audio_parser.c \
|
src/audio_parser.c \
|
||||||
$(ENCODER_SRC)
|
$(ENCODER_SRC)
|
||||||
test_run_encoder_LDADD = $(MPD_LIBS) \
|
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/conf.c src/buffer2array.c src/utils.c src/log.c \
|
||||||
src/audio_parser.c \
|
src/audio_parser.c \
|
||||||
src/timer.c \
|
src/timer.c \
|
||||||
|
src/tag.c src/tag_pool.c \
|
||||||
src/fifo_buffer.c \
|
src/fifo_buffer.c \
|
||||||
src/page.c \
|
src/page.c \
|
||||||
src/socket_util.c \
|
src/socket_util.c \
|
||||||
|
@ -266,39 +266,14 @@ vorbis_encoder_flush(struct encoder *_encoder, G_GNUC_UNUSED GError **error)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
static void
|
||||||
copy_tag_to_vorbis_comment(vorbis_comment *vc, const struct tag *tag)
|
copy_tag_to_vorbis_comment(vorbis_comment *vc, const struct tag *tag)
|
||||||
{
|
{
|
||||||
for (unsigned i = 0; i < tag->num_items; i++) {
|
for (unsigned i = 0; i < tag->num_items; i++) {
|
||||||
switch (tag->items[i]->type) {
|
struct tag_item *item = tag->items[i];
|
||||||
case TAG_ITEM_ARTIST:
|
char *name = g_ascii_strup(tag_item_names[item->type], -1);
|
||||||
add_tag(vc, "ARTIST", tag->items[i]->value);
|
vorbis_comment_add_tag(vc, name, item->value);
|
||||||
break;
|
g_free(name);
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user