qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp
branchGCC_SURGE
changeset 13 c9471d26c7f2
parent 8 3b03c28289e6
child 14 896e9dbc5f19
--- a/qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp	Mon Jun 21 22:33:45 2010 +0100
+++ b/qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp	Thu Jul 22 16:31:41 2010 +0100
@@ -129,22 +129,25 @@
 }
 
 EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceived(const IRQMetaData& aMetaData,
-        QString& aMusicshopStatus)
+        const IRQPreset& aPreset)
 {
-    TRAPD(error, handleSongMetaDataReceivedL(aMetaData,aMusicshopStatus));
+    TRAPD(error, handleSongMetaDataReceivedL(aMetaData,aPreset));
     if (KErrNone != error)
     {        
     }
 }
 
 EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceivedL(const IRQMetaData& aMetaData,
-        QString& aMusicshopStatus)
+        const IRQPreset& aPreset)
 {
+    
     TPtrC songName(reinterpret_cast<const TUint16*>(aMetaData.getSongName().utf16()), aMetaData.getSongName().length());
     TPtrC artistName(reinterpret_cast<const TUint16*>(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length());    
-    TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicshopStatus.utf16()), aMusicshopStatus.length());    
+    TPtrC channelName(reinterpret_cast<const TUint16*>(aPreset.name.utf16()), aPreset.name.length());
+    TPtrC musicFlag(reinterpret_cast<const TUint16*>(aPreset.musicStoreStatus.utf16()), aPreset.musicStoreStatus.length());    
     TBool bExceededMax = iSongHistoryDb->AddToSongHistoryDb2L(songName,
                              artistName,
+                             channelName,
                              musicFlag);                            
 }
 
@@ -162,6 +165,9 @@
     TPtrC channelName(reinterpret_cast<const TUint16*>(aPreset.name.utf16()), aPreset.name.length());
     TPtrC channelDesc(reinterpret_cast<const TUint16*>(aPreset.description.utf16()), aPreset.description.length());
     TPtrC imageUrl(reinterpret_cast<const TUint16*>(aPreset.imgUrl.utf16()), aPreset.imgUrl.length());
+    TPtrC genreName(reinterpret_cast<const TUint16*>(aPreset.genreName.utf16()), aPreset.genreName.length());
+    TPtrC countryName(reinterpret_cast<const TUint16*>(aPreset.countryName.utf16()), aPreset.countryName.length());
+    TPtrC languageName(reinterpret_cast<const TUint16*>(aPreset.languageName.utf16()), aPreset.languageName.length());
     TPtrC musicFlag(reinterpret_cast<const TUint16*>(aPreset.musicStoreStatus.utf16()), aPreset.musicStoreStatus.length());
     TUint8 channelType = aPreset.type;
     TUint16 channelId = aPreset.presetId;
@@ -173,7 +179,7 @@
         if(ret)
         {
             TInt modified = iSongHistoryDb->UpdateSongHistoryDbL( channelId ,
-                       channelName ,channelUrl ,imageUrl ,musicFlag);   
+                       channelUrl ,imageUrl ,genreName, countryName, languageName, musicFlag);   
             // TODO notify uplayer to change layout?
         }
     }
@@ -183,7 +189,7 @@
         channelType = 0;
     }
     
-    iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType);
+    iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType, channelId);
     
 	RBuf delSongName;
 	delSongName.CleanupClosePushL();
@@ -206,6 +212,9 @@
                          bitrate,
                          channelDesc,
                          imageUrl,
+                         genreName,
+                         countryName,
+                         languageName,
                          musicFlag);
 
     CleanupStack::PopAndDestroy(4, &delSongName);
@@ -315,6 +324,9 @@
     int bitrate;
     QString channelDesc;
     QString imageUrl;
+    QString genreName;
+    QString countryName;
+    QString languageName;
     QString musicStoreStatus;
     for (int arrCount = 0 ; arrCount < songCount ; arrCount++ )
     {
@@ -333,6 +345,12 @@
                              historyDataArr[arrCount]->GetChannelDesc().Length());
         imageUrl = QString::fromUtf16(historyDataArr[arrCount]->GetImageUrl().Ptr(),
                                      historyDataArr[arrCount]->GetImageUrl().Length());
+        genreName = QString::fromUtf16(historyDataArr[arrCount]->GetGenreName().Ptr(),                
+                                     historyDataArr[arrCount]->GetGenreName().Length());
+        countryName = QString::fromUtf16(historyDataArr[arrCount]->GetCountryName().Ptr(),
+                                     historyDataArr[arrCount]->GetCountryName().Length());
+        languageName = QString::fromUtf16(historyDataArr[arrCount]->GetLanguageName().Ptr(),
+                                     historyDataArr[arrCount]->GetLanguageName().Length());
         musicStoreStatus = QString::fromUtf16(historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(),
                              historyDataArr[arrCount]->GetChannelMusicStatus().Length());
        IRQSongHistoryInfo* irqsongHistory = new IRQSongHistoryInfo();
@@ -341,7 +359,7 @@
            break;
        }
        irqsongHistory->setHistoryInfo(artist, songName, streamUrl, channelName, channelDesc 
-                                      , imageUrl, musicStoreStatus, channelType, channelId, bitrate);
+                                      , imageUrl, genreName, countryName, languageName, musicStoreStatus, channelType, channelId, bitrate);
        aSongHistoryArr.append(irqsongHistory);
     }
     
@@ -384,6 +402,7 @@
     // create IRQSongHistoryInfo array and set
     QString songName;
     QString artist;     
+    QString stationName;     
     QString musicStoreStatus;
     
     for (int arrCount = 0; arrCount < songCount; arrCount++)
@@ -394,12 +413,15 @@
         artist = QString::fromUtf16(
                 historyDataArr[arrCount]->GetArtistInfo().Ptr(),
                 historyDataArr[arrCount]->GetArtistInfo().Length());
+        stationName = QString::fromUtf16(
+                historyDataArr[arrCount]->GetChannelName().Ptr(),
+                historyDataArr[arrCount]->GetChannelName().Length());
         musicStoreStatus = QString::fromUtf16(
                 historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(),
                 historyDataArr[arrCount]->GetChannelMusicStatus().Length());
         IRQSongInfo* irqsong = new IRQSongInfo();
 
-        irqsong->setAllInfo(songName, artist, musicStoreStatus);
+        irqsong->setAllInfo(songName, artist, stationName, musicStoreStatus);
         aSongHistoryArr.append(irqsong);
     }
     
@@ -443,6 +465,9 @@
         const QString& aChannelName,
         const QString& aChannelUrl,
         const QString& aImageUrl,
+        const QString& aGenreName,
+        const QString& aCountryName,
+        const QString& aLanguageName,
         const QString& aMusicFlag)
 {
     TInt ret = KErrNone ;
@@ -460,11 +485,16 @@
         TPtrC channelName(reinterpret_cast<const TUint16*>(aChannelName.utf16()));
         TPtrC channelUrl(reinterpret_cast<const TUint16*>(aChannelUrl.utf16()));
         TPtrC imageUrl(reinterpret_cast<const TUint16*>(aImageUrl.utf16()));
+        TPtrC genreName(reinterpret_cast<const TUint16*>(aGenreName.utf16()));
+        TPtrC countryName(reinterpret_cast<const TUint16*>(aCountryName.utf16()));
+        TPtrC languageName(reinterpret_cast<const TUint16*>(aLanguageName.utf16()));
         TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicFlag.utf16()));
         TRAP_IGNORE(iSongHistoryDb->UpdateSongHistoryDbL( channelId ,
-                channelName,
                 channelUrl,
                 imageUrl,
+                genreName,
+                countryName,
+                languageName,
                 musicFlag));
     }
 }
@@ -480,3 +510,15 @@
     
     return true;
 }
+
+EXPORT_C bool IRQSongHistoryEngine::deleteOneSongHistoryItem(int aIndex)
+{    
+    int retValue = 0;
+    retValue = iSongHistoryDb->DeleteOneSongHistory(aIndex);
+    if( KErrNone != retValue )
+    {
+        return false;
+    }
+    
+    return true;
+}