" strMusicBrainzTRMID, iTimesPlayed, iStartOffset, iEndOffset, lastplayed,"
" rating, comment, song.idAlbum AS idAlbum, strAlbum, strPath,"
" iKaraNumber, iKaraDelay, strKaraEncoding,"
- " album.bCompilation AS bCompilation "
+ " album.bCompilation AS bCompilation,"
+ " album.strArtists AS strAlbumArtists "
"FROM song"
" JOIN album ON"
" song.idAlbum=album.idAlbum"
song.strKaraokeLyrEncoding = m_pDS->fv(song_strKarEncoding).get_asString();
song.iKaraokeDelay = m_pDS->fv(song_iKarDelay).get_asInt();
song.bCompilation = m_pDS->fv(song_bCompilation).get_asInt() == 1;
+ song.albumArtist = StringUtils::Split(m_pDS->fv(song_strAlbumArtists).get_asString(), g_advancedSettings.m_musicItemSeparator);
// Get filename with full path
if (!bWithMusicDbPath)
URIUtils::AddFileToFolder(record->at(song_strPath).get_asString(), record->at(song_strFileName).get_asString(), strRealPath);
item->GetMusicInfoTag()->SetURL(strRealPath);
item->GetMusicInfoTag()->SetCompilation(record->at(song_bCompilation).get_asInt() == 1);
+ item->GetMusicInfoTag()->SetAlbumArtist(record->at(song_strAlbumArtists).get_asString());
item->GetMusicInfoTag()->SetLoaded(true);
// Get filename with full path
if (strMusicDBbasePath.IsEmpty())
std::map<CStdString, CAlbum> m_albumCache;
virtual bool CreateTables();
- virtual int GetMinVersion() const { return 30; };
+ virtual int GetMinVersion() const { return 31; };
const char *GetBaseDBName() const { return "MyMusic"; };
int AddSong(const CSong& song, bool bCheck = true, int idAlbum = -1);
song_iKarNumber,
song_iKarDelay,
song_strKarEncoding,
- song_bCompilation
+ song_bCompilation,
+ song_strAlbumArtists
} SongFields;
// Fields should be ordered as they