diff -r bfc95e24a059 -r c9471d26c7f2 qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp --- 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(aMetaData.getSongName().utf16()), aMetaData.getSongName().length()); TPtrC artistName(reinterpret_cast(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length()); - TPtrC musicFlag(reinterpret_cast(aMusicshopStatus.utf16()), aMusicshopStatus.length()); + TPtrC channelName(reinterpret_cast(aPreset.name.utf16()), aPreset.name.length()); + TPtrC musicFlag(reinterpret_cast(aPreset.musicStoreStatus.utf16()), aPreset.musicStoreStatus.length()); TBool bExceededMax = iSongHistoryDb->AddToSongHistoryDb2L(songName, artistName, + channelName, musicFlag); } @@ -162,6 +165,9 @@ TPtrC channelName(reinterpret_cast(aPreset.name.utf16()), aPreset.name.length()); TPtrC channelDesc(reinterpret_cast(aPreset.description.utf16()), aPreset.description.length()); TPtrC imageUrl(reinterpret_cast(aPreset.imgUrl.utf16()), aPreset.imgUrl.length()); + TPtrC genreName(reinterpret_cast(aPreset.genreName.utf16()), aPreset.genreName.length()); + TPtrC countryName(reinterpret_cast(aPreset.countryName.utf16()), aPreset.countryName.length()); + TPtrC languageName(reinterpret_cast(aPreset.languageName.utf16()), aPreset.languageName.length()); TPtrC musicFlag(reinterpret_cast(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(aChannelName.utf16())); TPtrC channelUrl(reinterpret_cast(aChannelUrl.utf16())); TPtrC imageUrl(reinterpret_cast(aImageUrl.utf16())); + TPtrC genreName(reinterpret_cast(aGenreName.utf16())); + TPtrC countryName(reinterpret_cast(aCountryName.utf16())); + TPtrC languageName(reinterpret_cast(aLanguageName.utf16())); TPtrC musicFlag(reinterpret_cast(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; +}