diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp Tue May 11 16:10:56 2010 +0300 @@ -448,7 +448,8 @@ #ifdef ABSTRACTAUDIOALBUM_INCLUDED TUint32& aAbstractAlbumId, #endif // ABSTRACTAUDIOALBUM_INCLUDED - TInt& aDriveId) + TInt& aDriveId, + HBufC*& aArt) { MPX_FUNC("CMPXDbMusic::GetSongInfoL"); @@ -469,6 +470,7 @@ #ifdef ABSTRACTAUDIOALBUM_INCLUDED aAbstractAlbumId = recordset.ColumnInt64(EMusicAbstractAlbum); #endif // ABSTRACTAUDIOALBUM_INCLUDED + aArt = MPXDbCommonUtil::GetColumnTextL(recordset, EMusicArt).AllocL(); HBufC* uri = ConstructUriL(recordset); CleanupStack::PopAndDestroy(&recordset); @@ -1063,6 +1065,31 @@ } // ---------------------------------------------------------------------------- +// CMPXDbMusic::AlbumartForAlbumL +// ---------------------------------------------------------------------------- +// +HBufC* CMPXDbMusic::AlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt) + { + MPX_FUNC("CMPXDbMusic::AlbumartForAlbumL"); + RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(KQueryMusicGetAlbumartForAlbum, aAlbumId)); + HBufC* albumart(NULL); + + CleanupClosePushL(recordset); + TInt err(KErrNone); + while ((err = recordset.Next()) == KSqlAtRow) + { + TPtrC art(MPXDbCommonUtil::GetColumnTextL(recordset, KMPXTableDefaultIndex)); + if (art.Length()>0 && art.Compare(KNullDesC)!=0 && art.CompareF(aArt)!=0 ) + { + albumart = art.AllocL(); + break; + } + } + + CleanupStack::PopAndDestroy(&recordset); + return albumart; + } +// ---------------------------------------------------------------------------- // CMPXDbMusic::SongExistsL // ---------------------------------------------------------------------------- // @@ -1150,11 +1177,19 @@ MPX_DEBUG1(" !aMedia.IsSupported(KMPXMediaGeneralId)"); TUint32 songId(aMusicTable.ColumnInt64(EMusicUniqueId)); TInt columnCount(aMusicTable.ColumnCount()); +#ifdef ABSTRACTAUDIOALBUM_INCLUDED + if(columnCount == 40 && aMusicTable.ColumnIndex(_L("PlUId"))==38) + { + TUint32 pListUId(aMusicTable.ColumnInt64(38)); + aMedia.SetTObjectValueL(KMPXMediaGeneralId, TMPXItemId(pListUId, songId)); + } +#else if(columnCount == 37 && aMusicTable.ColumnIndex(_L("PlUId"))==35) { TUint32 pListUId(aMusicTable.ColumnInt64(35)); aMedia.SetTObjectValueL(KMPXMediaGeneralId, TMPXItemId(pListUId, songId)); } +#endif else { aMedia.SetTObjectValueL(KMPXMediaGeneralId, songId);