qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp
changeset 8 3b03c28289e6
parent 5 0930554dc389
child 14 896e9dbc5f19
equal deleted inserted replaced
5:0930554dc389 8:3b03c28289e6
   127         
   127         
   128     }
   128     }
   129 }
   129 }
   130 
   130 
   131 EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceived(const IRQMetaData& aMetaData,
   131 EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceived(const IRQMetaData& aMetaData,
   132         QString& aMusicshopStatus)
   132         const IRQPreset& aPreset)
   133 {
   133 {
   134     TRAPD(error, handleSongMetaDataReceivedL(aMetaData,aMusicshopStatus));
   134     TRAPD(error, handleSongMetaDataReceivedL(aMetaData,aPreset));
   135     if (KErrNone != error)
   135     if (KErrNone != error)
   136     {        
   136     {        
   137     }
   137     }
   138 }
   138 }
   139 
   139 
   140 EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceivedL(const IRQMetaData& aMetaData,
   140 EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceivedL(const IRQMetaData& aMetaData,
   141         QString& aMusicshopStatus)
   141         const IRQPreset& aPreset)
   142 {
   142 {
       
   143     
   143     TPtrC songName(reinterpret_cast<const TUint16*>(aMetaData.getSongName().utf16()), aMetaData.getSongName().length());
   144     TPtrC songName(reinterpret_cast<const TUint16*>(aMetaData.getSongName().utf16()), aMetaData.getSongName().length());
   144     TPtrC artistName(reinterpret_cast<const TUint16*>(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length());    
   145     TPtrC artistName(reinterpret_cast<const TUint16*>(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length());    
   145     TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicshopStatus.utf16()), aMusicshopStatus.length());    
   146     TPtrC channelName(reinterpret_cast<const TUint16*>(aPreset.name.utf16()), aPreset.name.length());
       
   147     TPtrC musicFlag(reinterpret_cast<const TUint16*>(aPreset.musicStoreStatus.utf16()), aPreset.musicStoreStatus.length());    
   146     TBool bExceededMax = iSongHistoryDb->AddToSongHistoryDb2L(songName,
   148     TBool bExceededMax = iSongHistoryDb->AddToSongHistoryDb2L(songName,
   147                              artistName,
   149                              artistName,
       
   150                              channelName,
   148                              musicFlag);                            
   151                              musicFlag);                            
   149 }
   152 }
   150 
   153 
   151 // ---------------------------------------------------------------------------
   154 // ---------------------------------------------------------------------------
   152 // IRQSongHistoryEngine::handleMetaDataReceivedL()
   155 // IRQSongHistoryEngine::handleMetaDataReceivedL()
   174     {
   177     {
   175         TInt ret = iSongHistoryDb->GetIdPresentInDbL( channelId );
   178         TInt ret = iSongHistoryDb->GetIdPresentInDbL( channelId );
   176         if(ret)
   179         if(ret)
   177         {
   180         {
   178             TInt modified = iSongHistoryDb->UpdateSongHistoryDbL( channelId ,
   181             TInt modified = iSongHistoryDb->UpdateSongHistoryDbL( channelId ,
   179                        channelName ,channelUrl ,imageUrl ,genreName, countryName, languageName, musicFlag);   
   182                        channelUrl ,imageUrl ,genreName, countryName, languageName, musicFlag);   
   180             // TODO notify uplayer to change layout?
   183             // TODO notify uplayer to change layout?
   181         }
   184         }
   182     }
   185     }
   183     else if (channelType != 0)
   186     else if (channelType != 0)
   184     {
   187     {
   185         // the channel type can only be 1 (isds channel) or 0 (user defined channel)
   188         // the channel type can only be 1 (isds channel) or 0 (user defined channel)
   186         channelType = 0;
   189         channelType = 0;
   187     }
   190     }
   188     
   191     
   189     iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType);
   192     iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType, channelId);
   190     
   193     
   191 	RBuf delSongName;
   194 	RBuf delSongName;
   192 	delSongName.CleanupClosePushL();
   195 	delSongName.CleanupClosePushL();
   193 	RBuf delArtistName;
   196 	RBuf delArtistName;
   194 	delArtistName.CleanupClosePushL();
   197 	delArtistName.CleanupClosePushL();
   397     iSongHistoryDb->GetAllSongHistoryList2L(historyDataArr);
   400     iSongHistoryDb->GetAllSongHistoryList2L(historyDataArr);
   398 
   401 
   399     // create IRQSongHistoryInfo array and set
   402     // create IRQSongHistoryInfo array and set
   400     QString songName;
   403     QString songName;
   401     QString artist;     
   404     QString artist;     
       
   405     QString stationName;     
   402     QString musicStoreStatus;
   406     QString musicStoreStatus;
   403     
   407     
   404     for (int arrCount = 0; arrCount < songCount; arrCount++)
   408     for (int arrCount = 0; arrCount < songCount; arrCount++)
   405     {
   409     {
   406         songName = QString::fromUtf16(
   410         songName = QString::fromUtf16(
   407                 historyDataArr[arrCount]->GetSongInfo().Ptr(),
   411                 historyDataArr[arrCount]->GetSongInfo().Ptr(),
   408                 historyDataArr[arrCount]->GetSongInfo().Length());
   412                 historyDataArr[arrCount]->GetSongInfo().Length());
   409         artist = QString::fromUtf16(
   413         artist = QString::fromUtf16(
   410                 historyDataArr[arrCount]->GetArtistInfo().Ptr(),
   414                 historyDataArr[arrCount]->GetArtistInfo().Ptr(),
   411                 historyDataArr[arrCount]->GetArtistInfo().Length());
   415                 historyDataArr[arrCount]->GetArtistInfo().Length());
       
   416         stationName = QString::fromUtf16(
       
   417                 historyDataArr[arrCount]->GetChannelName().Ptr(),
       
   418                 historyDataArr[arrCount]->GetChannelName().Length());
   412         musicStoreStatus = QString::fromUtf16(
   419         musicStoreStatus = QString::fromUtf16(
   413                 historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(),
   420                 historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(),
   414                 historyDataArr[arrCount]->GetChannelMusicStatus().Length());
   421                 historyDataArr[arrCount]->GetChannelMusicStatus().Length());
   415         IRQSongInfo* irqsong = new IRQSongInfo();
   422         IRQSongInfo* irqsong = new IRQSongInfo();
   416 
   423 
   417         irqsong->setAllInfo(songName, artist, musicStoreStatus);
   424         irqsong->setAllInfo(songName, artist, stationName, musicStoreStatus);
   418         aSongHistoryArr.append(irqsong);
   425         aSongHistoryArr.append(irqsong);
   419     }
   426     }
   420     
   427     
   421     historyDataArr.ResetAndDestroy();
   428     historyDataArr.ResetAndDestroy();
   422 }
   429 }
   481         TPtrC genreName(reinterpret_cast<const TUint16*>(aGenreName.utf16()));
   488         TPtrC genreName(reinterpret_cast<const TUint16*>(aGenreName.utf16()));
   482         TPtrC countryName(reinterpret_cast<const TUint16*>(aCountryName.utf16()));
   489         TPtrC countryName(reinterpret_cast<const TUint16*>(aCountryName.utf16()));
   483         TPtrC languageName(reinterpret_cast<const TUint16*>(aLanguageName.utf16()));
   490         TPtrC languageName(reinterpret_cast<const TUint16*>(aLanguageName.utf16()));
   484         TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicFlag.utf16()));
   491         TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicFlag.utf16()));
   485         TRAP_IGNORE(iSongHistoryDb->UpdateSongHistoryDbL( channelId ,
   492         TRAP_IGNORE(iSongHistoryDb->UpdateSongHistoryDbL( channelId ,
   486                 channelName,
       
   487                 channelUrl,
   493                 channelUrl,
   488                 imageUrl,
   494                 imageUrl,
   489                 genreName,
   495                 genreName,
   490                 countryName,
   496                 countryName,
   491                 languageName,
   497                 languageName,