mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp
branchRCL_3
changeset 26 70a8526f03f2
parent 21 a1247965635c
child 40 cb96c29156b2
--- 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<TMPXItemId>(KMPXMediaGeneralId, TMPXItemId(pListUId, songId));
+            }
+#else
         if(columnCount == 37 && aMusicTable.ColumnIndex(_L("PlUId"))==35)
             {
             TUint32 pListUId(aMusicTable.ColumnInt64(35));
             aMedia.SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, TMPXItemId(pListUId, songId));
             }
+#endif
         else
             {
             aMedia.SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, songId);