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() |
160 TPtrC artistName(reinterpret_cast<const TUint16*>(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length()); |
163 TPtrC artistName(reinterpret_cast<const TUint16*>(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length()); |
161 TPtrC channelUrl(reinterpret_cast<const TUint16*>(aMetaData.getStreamUrl().utf16()), aMetaData.getStreamUrl().length()); |
164 TPtrC channelUrl(reinterpret_cast<const TUint16*>(aMetaData.getStreamUrl().utf16()), aMetaData.getStreamUrl().length()); |
162 TPtrC channelName(reinterpret_cast<const TUint16*>(aPreset.name.utf16()), aPreset.name.length()); |
165 TPtrC channelName(reinterpret_cast<const TUint16*>(aPreset.name.utf16()), aPreset.name.length()); |
163 TPtrC channelDesc(reinterpret_cast<const TUint16*>(aPreset.description.utf16()), aPreset.description.length()); |
166 TPtrC channelDesc(reinterpret_cast<const TUint16*>(aPreset.description.utf16()), aPreset.description.length()); |
164 TPtrC imageUrl(reinterpret_cast<const TUint16*>(aPreset.imgUrl.utf16()), aPreset.imgUrl.length()); |
167 TPtrC imageUrl(reinterpret_cast<const TUint16*>(aPreset.imgUrl.utf16()), aPreset.imgUrl.length()); |
|
168 TPtrC genreName(reinterpret_cast<const TUint16*>(aPreset.genreName.utf16()), aPreset.genreName.length()); |
|
169 TPtrC countryName(reinterpret_cast<const TUint16*>(aPreset.countryName.utf16()), aPreset.countryName.length()); |
|
170 TPtrC languageName(reinterpret_cast<const TUint16*>(aPreset.languageName.utf16()), aPreset.languageName.length()); |
165 TPtrC musicFlag(reinterpret_cast<const TUint16*>(aPreset.musicStoreStatus.utf16()), aPreset.musicStoreStatus.length()); |
171 TPtrC musicFlag(reinterpret_cast<const TUint16*>(aPreset.musicStoreStatus.utf16()), aPreset.musicStoreStatus.length()); |
166 TUint8 channelType = aPreset.type; |
172 TUint8 channelType = aPreset.type; |
167 TUint16 channelId = aPreset.presetId; |
173 TUint16 channelId = aPreset.presetId; |
168 TUint16 bitrate = aMetaData.getBitrate(); |
174 TUint16 bitrate = aMetaData.getBitrate(); |
169 |
175 |
171 { |
177 { |
172 TInt ret = iSongHistoryDb->GetIdPresentInDbL( channelId ); |
178 TInt ret = iSongHistoryDb->GetIdPresentInDbL( channelId ); |
173 if(ret) |
179 if(ret) |
174 { |
180 { |
175 TInt modified = iSongHistoryDb->UpdateSongHistoryDbL( channelId , |
181 TInt modified = iSongHistoryDb->UpdateSongHistoryDbL( channelId , |
176 channelName ,channelUrl ,imageUrl ,musicFlag); |
182 channelUrl ,imageUrl ,genreName, countryName, languageName, musicFlag); |
177 // TODO notify uplayer to change layout? |
183 // TODO notify uplayer to change layout? |
178 } |
184 } |
179 } |
185 } |
180 else if (channelType != 0) |
186 else if (channelType != 0) |
181 { |
187 { |
182 // 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) |
183 channelType = 0; |
189 channelType = 0; |
184 } |
190 } |
185 |
191 |
186 iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType); |
192 iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType, channelId); |
187 |
193 |
188 RBuf delSongName; |
194 RBuf delSongName; |
189 delSongName.CleanupClosePushL(); |
195 delSongName.CleanupClosePushL(); |
190 RBuf delArtistName; |
196 RBuf delArtistName; |
191 delArtistName.CleanupClosePushL(); |
197 delArtistName.CleanupClosePushL(); |
313 int channelType; |
322 int channelType; |
314 int channelId; |
323 int channelId; |
315 int bitrate; |
324 int bitrate; |
316 QString channelDesc; |
325 QString channelDesc; |
317 QString imageUrl; |
326 QString imageUrl; |
|
327 QString genreName; |
|
328 QString countryName; |
|
329 QString languageName; |
318 QString musicStoreStatus; |
330 QString musicStoreStatus; |
319 for (int arrCount = 0 ; arrCount < songCount ; arrCount++ ) |
331 for (int arrCount = 0 ; arrCount < songCount ; arrCount++ ) |
320 { |
332 { |
321 songName = QString::fromUtf16(historyDataArr[arrCount]->GetSongInfo().Ptr(), |
333 songName = QString::fromUtf16(historyDataArr[arrCount]->GetSongInfo().Ptr(), |
322 historyDataArr[arrCount]->GetSongInfo().Length()); |
334 historyDataArr[arrCount]->GetSongInfo().Length()); |
331 bitrate = historyDataArr[arrCount]->GetBitrate(); |
343 bitrate = historyDataArr[arrCount]->GetBitrate(); |
332 channelDesc = QString::fromUtf16(historyDataArr[arrCount]->GetChannelDesc().Ptr(), |
344 channelDesc = QString::fromUtf16(historyDataArr[arrCount]->GetChannelDesc().Ptr(), |
333 historyDataArr[arrCount]->GetChannelDesc().Length()); |
345 historyDataArr[arrCount]->GetChannelDesc().Length()); |
334 imageUrl = QString::fromUtf16(historyDataArr[arrCount]->GetImageUrl().Ptr(), |
346 imageUrl = QString::fromUtf16(historyDataArr[arrCount]->GetImageUrl().Ptr(), |
335 historyDataArr[arrCount]->GetImageUrl().Length()); |
347 historyDataArr[arrCount]->GetImageUrl().Length()); |
|
348 genreName = QString::fromUtf16(historyDataArr[arrCount]->GetGenreName().Ptr(), |
|
349 historyDataArr[arrCount]->GetGenreName().Length()); |
|
350 countryName = QString::fromUtf16(historyDataArr[arrCount]->GetCountryName().Ptr(), |
|
351 historyDataArr[arrCount]->GetCountryName().Length()); |
|
352 languageName = QString::fromUtf16(historyDataArr[arrCount]->GetLanguageName().Ptr(), |
|
353 historyDataArr[arrCount]->GetLanguageName().Length()); |
336 musicStoreStatus = QString::fromUtf16(historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(), |
354 musicStoreStatus = QString::fromUtf16(historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(), |
337 historyDataArr[arrCount]->GetChannelMusicStatus().Length()); |
355 historyDataArr[arrCount]->GetChannelMusicStatus().Length()); |
338 IRQSongHistoryInfo* irqsongHistory = new IRQSongHistoryInfo(); |
356 IRQSongHistoryInfo* irqsongHistory = new IRQSongHistoryInfo(); |
339 if (NULL == irqsongHistory) |
357 if (NULL == irqsongHistory) |
340 { |
358 { |
341 break; |
359 break; |
342 } |
360 } |
343 irqsongHistory->setHistoryInfo(artist, songName, streamUrl, channelName, channelDesc |
361 irqsongHistory->setHistoryInfo(artist, songName, streamUrl, channelName, channelDesc |
344 , imageUrl, musicStoreStatus, channelType, channelId, bitrate); |
362 , imageUrl, genreName, countryName, languageName, musicStoreStatus, channelType, channelId, bitrate); |
345 aSongHistoryArr.append(irqsongHistory); |
363 aSongHistoryArr.append(irqsongHistory); |
346 } |
364 } |
347 |
365 |
348 historyDataArr.ResetAndDestroy(); |
366 historyDataArr.ResetAndDestroy(); |
349 } |
367 } |
382 iSongHistoryDb->GetAllSongHistoryList2L(historyDataArr); |
400 iSongHistoryDb->GetAllSongHistoryList2L(historyDataArr); |
383 |
401 |
384 // create IRQSongHistoryInfo array and set |
402 // create IRQSongHistoryInfo array and set |
385 QString songName; |
403 QString songName; |
386 QString artist; |
404 QString artist; |
|
405 QString stationName; |
387 QString musicStoreStatus; |
406 QString musicStoreStatus; |
388 |
407 |
389 for (int arrCount = 0; arrCount < songCount; arrCount++) |
408 for (int arrCount = 0; arrCount < songCount; arrCount++) |
390 { |
409 { |
391 songName = QString::fromUtf16( |
410 songName = QString::fromUtf16( |
392 historyDataArr[arrCount]->GetSongInfo().Ptr(), |
411 historyDataArr[arrCount]->GetSongInfo().Ptr(), |
393 historyDataArr[arrCount]->GetSongInfo().Length()); |
412 historyDataArr[arrCount]->GetSongInfo().Length()); |
394 artist = QString::fromUtf16( |
413 artist = QString::fromUtf16( |
395 historyDataArr[arrCount]->GetArtistInfo().Ptr(), |
414 historyDataArr[arrCount]->GetArtistInfo().Ptr(), |
396 historyDataArr[arrCount]->GetArtistInfo().Length()); |
415 historyDataArr[arrCount]->GetArtistInfo().Length()); |
|
416 stationName = QString::fromUtf16( |
|
417 historyDataArr[arrCount]->GetChannelName().Ptr(), |
|
418 historyDataArr[arrCount]->GetChannelName().Length()); |
397 musicStoreStatus = QString::fromUtf16( |
419 musicStoreStatus = QString::fromUtf16( |
398 historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(), |
420 historyDataArr[arrCount]->GetChannelMusicStatus().Ptr(), |
399 historyDataArr[arrCount]->GetChannelMusicStatus().Length()); |
421 historyDataArr[arrCount]->GetChannelMusicStatus().Length()); |
400 IRQSongInfo* irqsong = new IRQSongInfo(); |
422 IRQSongInfo* irqsong = new IRQSongInfo(); |
401 |
423 |
402 irqsong->setAllInfo(songName, artist, musicStoreStatus); |
424 irqsong->setAllInfo(songName, artist, stationName, musicStoreStatus); |
403 aSongHistoryArr.append(irqsong); |
425 aSongHistoryArr.append(irqsong); |
404 } |
426 } |
405 |
427 |
406 historyDataArr.ResetAndDestroy(); |
428 historyDataArr.ResetAndDestroy(); |
407 } |
429 } |
441 // --------------------------------------------------------------------------- |
463 // --------------------------------------------------------------------------- |
442 EXPORT_C void IRQSongHistoryEngine::updateSongHistoryDb(int aChannelId, |
464 EXPORT_C void IRQSongHistoryEngine::updateSongHistoryDb(int aChannelId, |
443 const QString& aChannelName, |
465 const QString& aChannelName, |
444 const QString& aChannelUrl, |
466 const QString& aChannelUrl, |
445 const QString& aImageUrl, |
467 const QString& aImageUrl, |
|
468 const QString& aGenreName, |
|
469 const QString& aCountryName, |
|
470 const QString& aLanguageName, |
446 const QString& aMusicFlag) |
471 const QString& aMusicFlag) |
447 { |
472 { |
448 TInt ret = KErrNone ; |
473 TInt ret = KErrNone ; |
449 TUint16 channelId = aChannelId; // prevent data overflow |
474 TUint16 channelId = aChannelId; // prevent data overflow |
450 |
475 |
458 if (ret) |
483 if (ret) |
459 { |
484 { |
460 TPtrC channelName(reinterpret_cast<const TUint16*>(aChannelName.utf16())); |
485 TPtrC channelName(reinterpret_cast<const TUint16*>(aChannelName.utf16())); |
461 TPtrC channelUrl(reinterpret_cast<const TUint16*>(aChannelUrl.utf16())); |
486 TPtrC channelUrl(reinterpret_cast<const TUint16*>(aChannelUrl.utf16())); |
462 TPtrC imageUrl(reinterpret_cast<const TUint16*>(aImageUrl.utf16())); |
487 TPtrC imageUrl(reinterpret_cast<const TUint16*>(aImageUrl.utf16())); |
|
488 TPtrC genreName(reinterpret_cast<const TUint16*>(aGenreName.utf16())); |
|
489 TPtrC countryName(reinterpret_cast<const TUint16*>(aCountryName.utf16())); |
|
490 TPtrC languageName(reinterpret_cast<const TUint16*>(aLanguageName.utf16())); |
463 TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicFlag.utf16())); |
491 TPtrC musicFlag(reinterpret_cast<const TUint16*>(aMusicFlag.utf16())); |
464 TRAP_IGNORE(iSongHistoryDb->UpdateSongHistoryDbL( channelId , |
492 TRAP_IGNORE(iSongHistoryDb->UpdateSongHistoryDbL( channelId , |
465 channelName, |
|
466 channelUrl, |
493 channelUrl, |
467 imageUrl, |
494 imageUrl, |
|
495 genreName, |
|
496 countryName, |
|
497 languageName, |
468 musicFlag)); |
498 musicFlag)); |
469 } |
499 } |
470 } |
500 } |
471 |
501 |
472 EXPORT_C bool IRQSongHistoryEngine::deleteOneItem(int aIndex) |
502 EXPORT_C bool IRQSongHistoryEngine::deleteOneItem(int aIndex) |