From acaa725478ae5e6e4fff9e07cf8637d17d314c41 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 25 Aug 2012 09:56:14 +0200 Subject: playlist/cue: map "PERFORMER" to "artist" or "album artist" Implements Mantis ticket 0003549. --- src/cue/cue_parser.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cue/cue_parser.c b/src/cue/cue_parser.c index 868aed094..2b0733f00 100644 --- a/src/cue/cue_parser.c +++ b/src/cue/cue_parser.c @@ -216,9 +216,19 @@ cue_parser_feed2(struct cue_parser *parser, char *p) if (tag != NULL) cue_parse_rem(p, tag); } else if (strcmp(command, "PERFORMER") == 0) { + /* MPD knows a "performer" tag, but it is not a good + match for this CUE tag; from the Hydrogenaudio + Knowledgebase: "At top-level this will specify the + CD artist, while at track-level it specifies the + track artist." */ + + enum tag_type type = parser->state == TRACK + ? TAG_ARTIST + : TAG_ALBUM_ARTIST; + struct tag *tag = cue_current_tag(parser); if (tag != NULL) - cue_add_tag(tag, TAG_PERFORMER, p); + cue_add_tag(tag, type, p); } else if (strcmp(command, "TITLE") == 0) { if (parser->state == HEADER) cue_add_tag(parser->tag, TAG_ALBUM, p); -- cgit v1.2.3