From ffea273a28179d2b5bbc24f967517bcf80940c63 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 11 Feb 2012 19:24:51 +0100 Subject: tag_handler: handle arbitrary name/value pairs The new method pair() receives an arbitrary name/value pair. Support for this is being added to a few decoder plugins. --- src/decoder/flac_metadata.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/decoder/flac_metadata.c') diff --git a/src/decoder/flac_metadata.c b/src/decoder/flac_metadata.c index 9e138ef96..bd1eaf323 100644 --- a/src/decoder/flac_metadata.c +++ b/src/decoder/flac_metadata.c @@ -196,6 +196,19 @@ flac_scan_comment(const char *char_tnum, const FLAC__StreamMetadata_VorbisComment_Entry *entry, const struct tag_handler *handler, void *handler_ctx) { + if (handler->pair != NULL) { + char *name = g_strdup((const char*)entry->entry); + char *value = strchr(name, '='); + + if (value != NULL && value > name) { + *value++ = 0; + tag_handler_invoke_pair(handler, handler_ctx, + name, value); + } + + g_free(name); + } + for (const struct tag_table *i = flac_tags; i->name != NULL; ++i) if (flac_copy_comment(entry, i->name, i->type, char_tnum, handler, handler_ctx)) -- cgit v1.2.3