diff --git a/src/cdaudio-ng/cdaudio-ng.cc b/src/cdaudio-ng/cdaudio-ng.cc index ca628ce49a..643484cee8 100644 --- a/src/cdaudio-ng/cdaudio-ng.cc +++ b/src/cdaudio-ng/cdaudio-ng.cc @@ -434,6 +434,8 @@ Tuple CDAudio::read_tuple (const char * filename, VFSFile & file) tuple.set_str (Tuple::Artist, trackinfo[trackno].performer); if (trackinfo[0].name) tuple.set_str (Tuple::Album, trackinfo[0].name); + if (trackinfo[0].performer) + tuple.set_str (Tuple::AlbumArtist, trackinfo[0].performer); if (trackinfo[trackno].genre) tuple.set_str (Tuple::Genre, trackinfo[trackno].genre); } diff --git a/src/cue/cue.cc b/src/cue/cue.cc index f733f28cdd..baa5d1ad87 100644 --- a/src/cue/cue.cc +++ b/src/cue/cue.cc @@ -75,6 +75,20 @@ bool CueLoader::load (const char * cue_filename, VFSFile & file, String & title, filename = String (uri_construct (cur_name, cue_filename)); decoder = filename ? aud_file_find_decoder (filename, false) : nullptr; base_tuple = decoder ? aud_file_read_tuple (filename, decoder) : Tuple (); + + if (base_tuple) + { + Cdtext * cdtext = cd_get_cdtext (cd); + + if (cdtext) + { + const char * s; + if ((s = cdtext_get (PTI_PERFORMER, cdtext))) + base_tuple.set_str (Tuple::AlbumArtist, s); + if ((s = cdtext_get (PTI_TITLE, cdtext))) + base_tuple.set_str (Tuple::Album, s); + } + } } Track * next = (track + 1 <= tracks) ? cd_get_track (cd, track + 1) : nullptr;