internetradio2.0/songhistorysrc/irsonghistorydb.cpp
changeset 5 0930554dc389
parent 3 ee64f059b8e1
child 8 3b03c28289e6
equal deleted inserted replaced
3:ee64f059b8e1 5:0930554dc389
    56 _LIT( KSongHistoryDBChannelTypeColumn,   "ChannelType"  );
    56 _LIT( KSongHistoryDBChannelTypeColumn,   "ChannelType"  );
    57 _LIT( KSongHistoryDBChannelIdColumn,   "ChannelId"  );
    57 _LIT( KSongHistoryDBChannelIdColumn,   "ChannelId"  );
    58 _LIT( KSongHistoryDBBitrateColumn,   "Bitrate"  );
    58 _LIT( KSongHistoryDBBitrateColumn,   "Bitrate"  );
    59 _LIT( KSongHistoryDBChannelDescColumn,   "ChannelDescription"  );
    59 _LIT( KSongHistoryDBChannelDescColumn,   "ChannelDescription"  );
    60 _LIT( KSongHistoryDBImageUrlColumn,   "ImageUrl"  );
    60 _LIT( KSongHistoryDBImageUrlColumn,   "ImageUrl"  );
       
    61 _LIT( KSongHistoryDBGenreNameColumn,   "GenreName"  );
       
    62 _LIT( KSongHistoryDBCountryNameColumn,   "CountryName"  );
       
    63 _LIT( KSongHistoryDBLanguageNameColumn,   "LanguageName"  );
    61 _LIT( KSongHistoryDBMusicStatusColumn,   "MusicStoreStatus"  );
    64 _LIT( KSongHistoryDBMusicStatusColumn,   "MusicStoreStatus"  );
    62 
    65 
    63 _LIT(KSongHistoryDbFile,"songhistoryDb.db");
    66 _LIT(KSongHistoryDbFile,"songhistoryDb.db");
    64 _LIT(KNo , "No") ;
    67 _LIT(KNo , "No") ;
    65 
    68 
   152 // adds the session log entry into data base
   155 // adds the session log entry into data base
   153 // Returns ETure if songHistory count exceeds 30, else EFalse
   156 // Returns ETure if songHistory count exceeds 30, else EFalse
   154 // ---------------------------------------------------------------------------
   157 // ---------------------------------------------------------------------------
   155 //
   158 //
   156 TBool CIRSongHistoryDb::AddToSongHistoryDbL(const TDesC& aSongName,
   159 TBool CIRSongHistoryDb::AddToSongHistoryDbL(const TDesC& aSongName,
   157 											const TDesC& aArtistName, 
   160                                             const TDesC& aArtistName, 
   158 											const TDesC& aChannelName, 
   161                                             const TDesC& aChannelName, 
   159 											const TDesC& aChannelUrl,
   162                                             const TDesC& aChannelUrl,
   160 											RBuf& aDelSongName, 
   163                                             RBuf& aDelSongName, 
   161 											RBuf& aDelArtistName, 
   164                                             RBuf& aDelArtistName, 
   162 											RBuf& aDelChannelName, 
   165                                             RBuf& aDelChannelName, 
   163 											RBuf& aDelChannelUrl,
   166                                             RBuf& aDelChannelUrl,
   164 											TInt  aChannelType,
   167                                             TInt  aChannelType,
   165 											TInt aChannelId,
   168                                             TInt aChannelId,
   166 											TInt aBitrate,
   169                                             TInt aBitrate,
   167 											const TDesC& aChannelDesc,
   170                                             const TDesC& aChannelDesc,
   168 											const TDesC& aImageUrl,
   171                                             const TDesC& aImageUrl,
   169 											const TDesC& aMusicFlag
   172                                             const TDesC& aGenreName,
   170 											)
   173                                             const TDesC& aCountryName,
       
   174                                             const TDesC& aLanguageName,                                                
       
   175                                             const TDesC& aMusicFlag
       
   176                                             )
   171 {
   177 {
   172 	IRLOG_DEBUG( "CIRSongHistoryDb::AddSongHistoryStartL" );
   178 	IRLOG_DEBUG( "CIRSongHistoryDb::AddSongHistoryStartL" );
   173 
   179 
   174 	TBool bRetval = EFalse;
   180 	TBool bRetval = EFalse;
   175 	TInt error= 0;
   181 	TInt error= 0;
   213 	const TPtrC &artistName = aArtistName.Left(KIRDbMaxStrLen);
   219 	const TPtrC &artistName = aArtistName.Left(KIRDbMaxStrLen);
   214 	const TPtrC &channelName = aChannelName.Left(KIRDbMaxStrLen);
   220 	const TPtrC &channelName = aChannelName.Left(KIRDbMaxStrLen);
   215 	const TPtrC &channelUrl = aChannelUrl.Left(KIRDbMaxStrLen);
   221 	const TPtrC &channelUrl = aChannelUrl.Left(KIRDbMaxStrLen);
   216     const TPtrC &channelDesc = aChannelDesc.Left(KIRDbMaxStrLen);
   222     const TPtrC &channelDesc = aChannelDesc.Left(KIRDbMaxStrLen);
   217     const TPtrC &imageUrl = aImageUrl.Left(KIRDbMaxStrLen);
   223     const TPtrC &imageUrl = aImageUrl.Left(KIRDbMaxStrLen);
       
   224     const TPtrC &genreName = aGenreName.Left(KIRDbMaxStrLen);
       
   225     const TPtrC &countryName = aCountryName.Left(KIRDbMaxStrLen);
       
   226     const TPtrC &languageName = aLanguageName.Left(KIRDbMaxStrLen);
   218 	
   227 	
   219 	TInt songLen = aSongName.Length();
   228 	TInt songLen = aSongName.Length();
   220 	TInt artistLen = aArtistName.Length();
   229 	TInt artistLen = aArtistName.Length();
   221 	if(  songLen + artistLen > KMaxSize )
   230 	if(  songLen + artistLen > KMaxSize )
   222 	{
   231 	{
   233 		iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelTypeColumn ), aChannelType);
   242 		iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelTypeColumn ), aChannelType);
   234 		iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelIdColumn ), aChannelId);
   243 		iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelIdColumn ), aChannelId);
   235 		iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBBitrateColumn ), aBitrate);
   244 		iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBBitrateColumn ), aBitrate);
   236         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelDescColumn ), channelDesc);
   245         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelDescColumn ), channelDesc);
   237         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBImageUrlColumn ), imageUrl);
   246         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBImageUrlColumn ), imageUrl);
       
   247         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBGenreNameColumn ), genreName);
       
   248         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBCountryNameColumn ), countryName);
       
   249         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBLanguageNameColumn ), languageName);
   238         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBMusicStatusColumn ), aMusicFlag);
   250         iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBMusicStatusColumn ), aMusicFlag);
   239 		iSongHistoryTable.PutL();
   251 		iSongHistoryTable.PutL();
   240 		);
   252 		);
   241 
   253 
   242  	CleanupStack::PopAndDestroy(columns); 
   254  	CleanupStack::PopAndDestroy(columns); 
   254 // ---------------------------------------------------------------------------
   266 // ---------------------------------------------------------------------------
   255 // CIRSongHistoryDb:AddToSongHistoryDb2L()
   267 // CIRSongHistoryDb:AddToSongHistoryDb2L()
   256 // adds the history song into the db
   268 // adds the history song into the db
   257 // Returns ETure if songHistory count exceeds 100, else EFalse
   269 // Returns ETure if songHistory count exceeds 100, else EFalse
   258 // ---------------------------------------------------------------------------
   270 // ---------------------------------------------------------------------------
   259  
   271 
   260 TBool CIRSongHistoryDb::AddToSongHistoryDb2L( const TDesC& aSongName,
   272 TBool CIRSongHistoryDb::AddToSongHistoryDb2L( const TDesC& aSongName,
   261                                     const TDesC& aArtistName,                                   
   273                                     const TDesC& aArtistName,                                   
   262                                     const TDesC& aMusicFlag)
   274                                     const TDesC& aMusicFlag)
   263 {
   275 {
   264     IRLOG_DEBUG( "CIRSongHistoryDb::AddToSongHistoryDb2L" );
   276     IRLOG_DEBUG( "CIRSongHistoryDb::AddToSongHistoryDb2L" );
   376     TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn );
   388     TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn );
   377     TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn );
   389     TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn );
   378     TInt bitrateColumn = columns->ColNo( KSongHistoryDBBitrateColumn );
   390     TInt bitrateColumn = columns->ColNo( KSongHistoryDBBitrateColumn );
   379     TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn );
   391     TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn );
   380     TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn );
   392     TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn );
       
   393     TInt genreNameColumn = columns->ColNo( KSongHistoryDBGenreNameColumn );
       
   394     TInt countryNameColumn = columns->ColNo( KSongHistoryDBCountryNameColumn );
       
   395     TInt languageNameColumn = columns->ColNo( KSongHistoryDBLanguageNameColumn );
   381     TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn );
   396     TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn );
   382 
   397 
   383     delete columns;
   398     delete columns;
   384     columns = NULL; 	 
   399     columns = NULL; 	 
   385     
   400     
   397         TInt channelType;
   412         TInt channelType;
   398         TInt channelId;
   413         TInt channelId;
   399         TInt bitrate;
   414         TInt bitrate;
   400         RBuf channelDesc;
   415         RBuf channelDesc;
   401         RBuf imageUrl;
   416         RBuf imageUrl;
       
   417         RBuf genreName;
       
   418         RBuf countryName;
       
   419         RBuf languageName;
   402         RBuf channelMusicStatus;
   420         RBuf channelMusicStatus;
   403         
   421         
   404         songName.CreateL(iSongHistoryTable.ColDes( songColumn ));
   422         songName.CreateL(iSongHistoryTable.ColDes( songColumn ));
   405         songName.CleanupClosePushL();
   423         songName.CleanupClosePushL();
   406         
   424         
   422         channelDesc.CreateL(iSongHistoryTable.ColDes( channelDescColumn ));
   440         channelDesc.CreateL(iSongHistoryTable.ColDes( channelDescColumn ));
   423         channelDesc.CleanupClosePushL();
   441         channelDesc.CleanupClosePushL();
   424 
   442 
   425         imageUrl.CreateL(iSongHistoryTable.ColDes( imageUrlColumn ));
   443         imageUrl.CreateL(iSongHistoryTable.ColDes( imageUrlColumn ));
   426         imageUrl.CleanupClosePushL();
   444         imageUrl.CleanupClosePushL();
       
   445 
       
   446         genreName.CreateL(iSongHistoryTable.ColDes( genreNameColumn ));
       
   447         genreName.CleanupClosePushL();
       
   448 
       
   449         countryName.CreateL(iSongHistoryTable.ColDes( countryNameColumn ));
       
   450         countryName.CleanupClosePushL();
       
   451 
       
   452         languageName.CreateL(iSongHistoryTable.ColDes( languageNameColumn ));
       
   453         languageName.CleanupClosePushL();
   427 
   454 
   428         channelMusicStatus.CreateL(iSongHistoryTable.ColDes( musicStatusColumn ));
   455         channelMusicStatus.CreateL(iSongHistoryTable.ColDes( musicStatusColumn ));
   429         channelMusicStatus.CleanupClosePushL();
   456         channelMusicStatus.CleanupClosePushL();
   430  
   457  
   431         aHistoryDataArr[song]->SetHistoryInfo(songName, artistName, channelUrl,
   458         aHistoryDataArr[song]->SetHistoryInfo(songName, artistName, channelUrl,
   432                          channelName,channelType,channelId,bitrate,channelDesc ,
   459                          channelName,channelType,channelId,bitrate,channelDesc ,
   433                          imageUrl, channelMusicStatus);
   460                          imageUrl, genreName, countryName, languageName, channelMusicStatus);
   434         ++song;
   461         ++song;        
   435  
       
   436         
       
   437         CleanupStack::PopAndDestroy(&channelMusicStatus);
   462         CleanupStack::PopAndDestroy(&channelMusicStatus);
       
   463         CleanupStack::PopAndDestroy(&languageName);
       
   464         CleanupStack::PopAndDestroy(&countryName);
       
   465         CleanupStack::PopAndDestroy(&genreName);
   438         CleanupStack::PopAndDestroy(&imageUrl);
   466         CleanupStack::PopAndDestroy(&imageUrl);
   439         CleanupStack::PopAndDestroy(&channelDesc);
   467         CleanupStack::PopAndDestroy(&channelDesc);
   440         CleanupStack::PopAndDestroy(&channelUrl);
   468         CleanupStack::PopAndDestroy(&channelUrl);
   441         CleanupStack::PopAndDestroy(&channelName);
   469         CleanupStack::PopAndDestroy(&channelName);
   442         CleanupStack::PopAndDestroy(&artistName);
   470         CleanupStack::PopAndDestroy(&artistName);
   584     iSongHistoryTable.DeleteL();
   612     iSongHistoryTable.DeleteL();
   585     IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneHistoryL - exiting" );   
   613     IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneHistoryL - exiting" );   
   586     return KErrNone;    
   614     return KErrNone;    
   587 }
   615 }
   588 
   616 
       
   617 TInt CIRSongHistoryDb::DeleteOneSongHistory(TInt aIndex)
       
   618 {
       
   619     IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistory - Entering" );
       
   620     
       
   621     TInt retValue = 0;
       
   622     TRAPD(error,(retValue = DeleteOneSongHistoryL(aIndex)));
       
   623     
       
   624     if( KErrNone != error )
       
   625     {
       
   626         return error;
       
   627     }
       
   628     
       
   629     if( KErrNone != retValue)
       
   630     {
       
   631         return retValue;
       
   632     }    
       
   633     IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistory - exiting" );    
       
   634     return KErrNone;
       
   635 }
       
   636 
       
   637 TInt CIRSongHistoryDb::DeleteOneSongHistoryL(TInt aIndex)
       
   638 {
       
   639     IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistoryL - Entering" );
       
   640     TInt totalCount = iSongHistoryTable2.CountL();     
       
   641     if (aIndex < 0 || aIndex >= totalCount)
       
   642     {
       
   643         return KErrArgument;
       
   644     }
       
   645     
       
   646     iSongHistoryTable2.LastL();
       
   647     TInt tempIndex = 0;     
       
   648     while (tempIndex < aIndex)
       
   649     {
       
   650         TRAPD(error,iSongHistoryTable2.PreviousL());
       
   651         if (KErrNone != error)
       
   652         {
       
   653             Compact();
       
   654             return error;
       
   655         }
       
   656         tempIndex++;
       
   657     }
       
   658     
       
   659     iSongHistoryTable2.GetL();
       
   660     iSongHistoryTable2.DeleteL();
       
   661     IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistoryL - exiting" );   
       
   662     return KErrNone;    
       
   663 }
       
   664 
   589 // ---------------------------------------------------------------------------
   665 // ---------------------------------------------------------------------------
   590 // Function : ClearAllSongHistoryFromDb2
   666 // Function : ClearAllSongHistoryFromDb2
   591 // delete all the entries from the database.
   667 // delete all the entries from the database.
   592 // ---------------------------------------------------------------------------
   668 // ---------------------------------------------------------------------------
   593 //
   669 //
   665 * creates songhistory table with three columns
   741 * creates songhistory table with three columns
   666 * log data
   742 * log data
   667 * ---------------------------------------------------------------------------
   743 * ---------------------------------------------------------------------------
   668 * SongHistoryTable
   744 * SongHistoryTable
   669 *---------------------------
   745 *---------------------------
   670 *| SongName | ArtistName | ChannelName | ChannelUrl | ChannelType | ChannelId | Bitrate | ChannelDesc | ImageUrl 
   746 *| SongName | ArtistName | ChannelName | ChannelUrl | ChannelType | ChannelId    | Bitrate      | ChannelDesc | ImageUrl   | GenreName  | CountryName | LanguageName | MusicStatus
   671 *---------------------------
   747 *---------------------------
   672 *|EDbColText| EDbColText | EDbColText | EDbColText | EDbColUint8 | EDbColUint16 | EDbColUint16 | EDbColText | EDbColText
   748 *|EDbColText| EDbColText | EDbColText  | EDbColText | EDbColUint8 | EDbColUint16 | EDbColUint16 | EDbColText  | EDbColText | EDbColText | EDbColText  | EDbColText   | EDbColText 
   673 *----------------------------------------------------------------------------
   749 *----------------------------------------------------------------------------
   674 */
   750 */
   675 void CIRSongHistoryDb::CreateSongHistoryTablesL()
   751 void CIRSongHistoryDb::CreateSongHistoryTablesL()
   676 {
   752 {
   677 	IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryTablesL" );
   753 	IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryTablesL" );
   685     columns->AddL( TDbCol( KSongHistoryDBChannelTypeColumn, EDbColUint8 ) );
   761     columns->AddL( TDbCol( KSongHistoryDBChannelTypeColumn, EDbColUint8 ) );
   686     columns->AddL( TDbCol( KSongHistoryDBChannelIdColumn, EDbColUint16 ) );
   762     columns->AddL( TDbCol( KSongHistoryDBChannelIdColumn, EDbColUint16 ) );
   687     columns->AddL( TDbCol( KSongHistoryDBBitrateColumn, EDbColUint16 ) );
   763     columns->AddL( TDbCol( KSongHistoryDBBitrateColumn, EDbColUint16 ) );
   688     columns->AddL( TDbCol( KSongHistoryDBChannelDescColumn, EDbColText, KMaxColumnLength ) );
   764     columns->AddL( TDbCol( KSongHistoryDBChannelDescColumn, EDbColText, KMaxColumnLength ) );
   689     columns->AddL( TDbCol( KSongHistoryDBImageUrlColumn, EDbColText, KMaxColumnLength ) );
   765     columns->AddL( TDbCol( KSongHistoryDBImageUrlColumn, EDbColText, KMaxColumnLength ) );
       
   766     columns->AddL( TDbCol( KSongHistoryDBGenreNameColumn, EDbColText, KMaxColumnLength ) );
       
   767     columns->AddL( TDbCol( KSongHistoryDBCountryNameColumn, EDbColText, KMaxColumnLength ) );
       
   768     columns->AddL( TDbCol( KSongHistoryDBLanguageNameColumn, EDbColText, KMaxColumnLength ) );
   690     columns->AddL( TDbCol( KSongHistoryDBMusicStatusColumn, EDbColText, KMaxColumnLength ) );
   769     columns->AddL( TDbCol( KSongHistoryDBMusicStatusColumn, EDbColText, KMaxColumnLength ) );
   691     );
   770     );
   692 	User::LeaveIfError( error );
   771 	User::LeaveIfError( error );
   693 
   772 
   694     User::LeaveIfError( CreateTable( KSongHistoryDBTable, *columns ) );
   773     User::LeaveIfError( CreateTable( KSongHistoryDBTable, *columns ) );
   940     TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn );
  1019     TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn );
   941     TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn );
  1020     TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn );
   942     TInt bitrateColumn = columns->ColNo( KSongHistoryDBBitrateColumn );
  1021     TInt bitrateColumn = columns->ColNo( KSongHistoryDBBitrateColumn );
   943     TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn );
  1022     TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn );
   944     TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn );
  1023     TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn );
       
  1024     TInt genreNameColumn = columns->ColNo( KSongHistoryDBGenreNameColumn );
       
  1025     TInt countryNameColumn = columns->ColNo( KSongHistoryDBCountryNameColumn );
       
  1026     TInt languageNameColumn = columns->ColNo( KSongHistoryDBLanguageNameColumn );
   945     TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn );
  1027     TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn );
   946 
  1028 
   947     delete columns;
  1029     delete columns;
   948     columns = NULL;
  1030     columns = NULL;
   949 
  1031 
   951 		for ( iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL() )
  1033 		for ( iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL() )
   952 		{
  1034 		{
   953 			iSongHistoryTable.GetL();
  1035 			iSongHistoryTable.GetL();
   954 			// Extracting the values from the database.
  1036 			// Extracting the values from the database.
   955 				TInt channelId;
  1037 				TInt channelId;
   956 				RBuf imageUrl;
  1038 				RBuf imageUrl, genreName, countryName, languageName;
   957                 RBuf channelMusicStatus;
  1039                 RBuf channelMusicStatus;
   958                 
  1040                 
   959 				channelId=iSongHistoryTable.ColUint16( channelIdColumn );
  1041 				channelId=iSongHistoryTable.ColUint16( channelIdColumn );
   960 				imageUrl.Create(iSongHistoryTable.ColDes( imageUrlColumn ));
  1042                 imageUrl.Create(iSongHistoryTable.ColDes( imageUrlColumn ));
   961 				imageUrl.CleanupClosePushL();
  1043                 imageUrl.CleanupClosePushL();
       
  1044                 genreName.Create(iSongHistoryTable.ColDes( genreNameColumn ));
       
  1045                 genreName.CleanupClosePushL();
       
  1046                 countryName.Create(iSongHistoryTable.ColDes( countryNameColumn ));
       
  1047                 countryName.CleanupClosePushL();
       
  1048                 languageName.Create(iSongHistoryTable.ColDes( languageNameColumn ));
       
  1049                 languageName.CleanupClosePushL();
   962 				channelMusicStatus.Create(iSongHistoryTable.ColDes( musicStatusColumn ));
  1050 				channelMusicStatus.Create(iSongHistoryTable.ColDes( musicStatusColumn ));
   963                 channelMusicStatus.CleanupClosePushL();
  1051                 channelMusicStatus.CleanupClosePushL();
   964 
  1052 
   965                 
  1053                 
   966                 if(aChannelId == channelId)
  1054                 if(aChannelId == channelId)
   967 	                {
  1055 	                {
   968 	                iSongHistoryTable.UpdateL();
  1056 	                iSongHistoryTable.UpdateL();
   969 		            iSongHistoryTable.SetColL(channelTypeColumn, 0);
  1057 		            iSongHistoryTable.SetColL(channelTypeColumn, 0);
   970 		            iSongHistoryTable.SetColL(channelIdColumn, 0);
  1058 		            iSongHistoryTable.SetColL(channelIdColumn, 0);
   971 		            iSongHistoryTable.SetColL(imageUrlColumn, KNo);
  1059                     iSongHistoryTable.SetColL(imageUrlColumn, KNo);
       
  1060                     iSongHistoryTable.SetColL(genreNameColumn, KNo);
       
  1061                     iSongHistoryTable.SetColL(countryNameColumn, KNo);
       
  1062                     iSongHistoryTable.SetColL(languageNameColumn, KNo);
   972 		            iSongHistoryTable.SetColL(musicStatusColumn, KNo);
  1063 		            iSongHistoryTable.SetColL(musicStatusColumn, KNo);
   973 		            iSongHistoryTable.PutL();
  1064 		            iSongHistoryTable.PutL();
   974 	                }
  1065 	                }
   975                 CleanupStack::PopAndDestroy(&channelMusicStatus);
  1066                 CleanupStack::PopAndDestroy(&channelMusicStatus);
       
  1067                 CleanupStack::PopAndDestroy(&languageName);
       
  1068                 CleanupStack::PopAndDestroy(&countryName);
       
  1069                 CleanupStack::PopAndDestroy(&genreName);
   976                 CleanupStack::PopAndDestroy(&imageUrl);
  1070                 CleanupStack::PopAndDestroy(&imageUrl);
   977 		}
  1071 		}
   978 	iSongHistoryTable.Reset();
  1072 	iSongHistoryTable.Reset();
   979 		
  1073 		
   980 	IRLOG_DEBUG( "CIRSongHistoryDb::SyncSongHistoryDbL - Exiting." );
  1074 	IRLOG_DEBUG( "CIRSongHistoryDb::SyncSongHistoryDbL - Exiting." );
  1032 //
  1126 //
  1033 
  1127 
  1034 TInt CIRSongHistoryDb::UpdateSongHistoryDbL(	TInt aChannelId,
  1128 TInt CIRSongHistoryDb::UpdateSongHistoryDbL(	TInt aChannelId,
  1035 											const TDesC& aChannelName, 
  1129 											const TDesC& aChannelName, 
  1036 											const TDesC& aChannelUrl,
  1130 											const TDesC& aChannelUrl,
  1037 											const TDesC& aImageUrl,
  1131                                             const TDesC& aImageUrl,
       
  1132                                             const TDesC& aGenreName,
       
  1133                                             const TDesC& aCountryName,
       
  1134                                             const TDesC& aLanguageName,
  1038 											const TDesC& aMusicFlag)
  1135 											const TDesC& aMusicFlag)
  1039 {
  1136 {
  1040  	IRLOG_DEBUG( "CIRSongHistoryDb::UpdateSongHistoryDbL" );
  1137  	IRLOG_DEBUG( "CIRSongHistoryDb::UpdateSongHistoryDbL" );
  1041 
  1138 
  1042  	TBool channelChanged = EFalse ;
  1139  	TBool channelChanged = EFalse ;
  1043  	TInt compFlagName ;
  1140  	TInt compFlagName ;
  1044  	TInt compFlagUrl ;
  1141  	TInt compFlagUrl ;
  1045  	TInt compFlagImageUrl ;
  1142  	TInt compFlagImageUrl, compFlagGenreName, compFlagCountryName, compFlagLanguageName;
  1046  	TInt compFlagMusic ;
  1143  	TInt compFlagMusic ;
  1047  	TInt compUrlChange ;
  1144  	TInt compUrlChange ;
  1048 
  1145 
  1049     if(iSongHistoryTable.CountL() < 1)
  1146     if(iSongHistoryTable.CountL() < 1)
  1050     {
  1147     {
  1056     TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn );
  1153     TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn );
  1057     TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn );
  1154     TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn );
  1058     TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn );
  1155     TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn );
  1059     TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn );
  1156     TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn );
  1060     TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn );
  1157     TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn );
       
  1158     TInt genreNameColumn = columns->ColNo( KSongHistoryDBGenreNameColumn );
       
  1159     TInt countryNameColumn = columns->ColNo( KSongHistoryDBCountryNameColumn );
       
  1160     TInt languageNameColumn = columns->ColNo( KSongHistoryDBLanguageNameColumn );
  1061     TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn );
  1161     TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn );
  1062 
  1162 
  1063     delete columns;
  1163     delete columns;
  1064     columns = NULL;
  1164     columns = NULL;
  1065 
  1165 
  1069 		{
  1169 		{
  1070 			iSongHistoryTable.GetL();
  1170 			iSongHistoryTable.GetL();
  1071 			// Extracting the values from the database.
  1171 			// Extracting the values from the database.
  1072 				RBuf channelName;
  1172 				RBuf channelName;
  1073 				RBuf channelUrl;
  1173 				RBuf channelUrl;
  1074 				RBuf imageUrl;
  1174 				RBuf imageUrl, genreName, countryName, languageName;
  1075 				TInt channelId;
  1175 				TInt channelId;
  1076                 RBuf channelMusicStatus;
  1176                 RBuf channelMusicStatus;
  1077 				channelName.Create(iSongHistoryTable.ColDes( channelColumn ));
  1177 				channelName.Create(iSongHistoryTable.ColDes( channelColumn ));
  1078 				channelName.CleanupClosePushL();
  1178 				channelName.CleanupClosePushL();
  1079 				
  1179 				
  1080 				channelUrl.Create(iSongHistoryTable.ColDes( channelUrlColumn ));
  1180 				channelUrl.Create(iSongHistoryTable.ColDes( channelUrlColumn ));
  1081 				channelUrl.CleanupClosePushL();
  1181 				channelUrl.CleanupClosePushL();
  1082 				
  1182 				
  1083 				imageUrl.Create(iSongHistoryTable.ColDes( imageUrlColumn ));
  1183 				imageUrl.Create(iSongHistoryTable.ColDes( imageUrlColumn ));
  1084 				imageUrl.CleanupClosePushL();
  1184 				imageUrl.CleanupClosePushL();
       
  1185                 genreName.Create(iSongHistoryTable.ColDes( genreNameColumn ));
       
  1186                 genreName.CleanupClosePushL();
       
  1187                 countryName.Create(iSongHistoryTable.ColDes( countryNameColumn ));
       
  1188                 countryName.CleanupClosePushL();
       
  1189                 languageName.Create(iSongHistoryTable.ColDes( languageNameColumn ));
       
  1190                 languageName.CleanupClosePushL();
  1085 
  1191 
  1086 				channelId=iSongHistoryTable.ColUint16( channelIdColumn );
  1192 				channelId=iSongHistoryTable.ColUint16( channelIdColumn );
  1087                 
  1193                 
  1088                 channelMusicStatus.Create(iSongHistoryTable.ColDes( musicStatusColumn ));
  1194                 channelMusicStatus.Create(iSongHistoryTable.ColDes( musicStatusColumn ));
  1089                 channelMusicStatus.CleanupClosePushL();
  1195                 channelMusicStatus.CleanupClosePushL();
  1090                 
  1196                 
  1091                 if(aChannelId == channelId)
  1197                 if(aChannelId == channelId)
  1092 	                {
  1198 	                {
  1093 					compFlagName =  (channelName).Compare(aChannelName);
  1199 					compFlagName =  (channelName).Compare(aChannelName);
  1094 	                compFlagUrl =   (channelUrl).Compare(aChannelUrl);
  1200 	                compFlagUrl =   (channelUrl).Compare(aChannelUrl);
  1095 	                compFlagImageUrl = (imageUrl).Compare(aImageUrl);
  1201                     compFlagImageUrl = (imageUrl).Compare(aImageUrl);
       
  1202                     compFlagGenreName = (genreName).Compare(aGenreName);
       
  1203                     compFlagCountryName = (countryName).Compare(aCountryName);
       
  1204                     compFlagLanguageName = (languageName).Compare(aLanguageName);
  1096 	                compFlagMusic = (channelMusicStatus).Compare(aMusicFlag);
  1205 	                compFlagMusic = (channelMusicStatus).Compare(aMusicFlag);
  1097 	                if(compFlagName)
  1206 	                if(compFlagName)
  1098 		                {
  1207 		                {
  1099 	                    iSongHistoryTable.UpdateL();
  1208 	                    iSongHistoryTable.UpdateL();
  1100 		                iSongHistoryTable.SetColL(channelColumn, aChannelName);
  1209 		                iSongHistoryTable.SetColL(channelColumn, aChannelName);
  1108 		                iSongHistoryTable.UpdateL();
  1217 		                iSongHistoryTable.UpdateL();
  1109 		                iSongHistoryTable.SetColL(channelUrlColumn, aChannelUrl);
  1218 		                iSongHistoryTable.SetColL(channelUrlColumn, aChannelUrl);
  1110 		                iSongHistoryTable.PutL();
  1219 		                iSongHistoryTable.PutL();
  1111 		                channelChanged = ETrue ;
  1220 		                channelChanged = ETrue ;
  1112 		                }
  1221 		                }
  1113 	                if(compFlagImageUrl)
  1222                     if(compFlagImageUrl)
  1114 	                    {
  1223                         {
  1115 	                    iSongHistoryTable.UpdateL();
  1224                         iSongHistoryTable.UpdateL();
  1116 	                    iSongHistoryTable.SetColL(imageUrlColumn, aImageUrl);
  1225                         iSongHistoryTable.SetColL(imageUrlColumn, aImageUrl);
  1117 	                    iSongHistoryTable.PutL();
  1226                         iSongHistoryTable.PutL();
  1118 	                    channelChanged = ETrue ;
  1227                         channelChanged = ETrue ;
  1119 	                    }
  1228                         }
       
  1229                     if(compFlagGenreName)
       
  1230                         {
       
  1231                         iSongHistoryTable.UpdateL();
       
  1232                         iSongHistoryTable.SetColL(genreNameColumn, aGenreName);
       
  1233                         iSongHistoryTable.PutL();
       
  1234                         channelChanged = ETrue ;
       
  1235                         }
       
  1236                     if(compFlagCountryName)
       
  1237                         {
       
  1238                         iSongHistoryTable.UpdateL();
       
  1239                         iSongHistoryTable.SetColL(countryNameColumn, aCountryName);
       
  1240                         iSongHistoryTable.PutL();
       
  1241                         channelChanged = ETrue ;
       
  1242                         }
       
  1243                     if(compFlagLanguageName)
       
  1244                         {
       
  1245                         iSongHistoryTable.UpdateL();
       
  1246                         iSongHistoryTable.SetColL(languageNameColumn, aLanguageName);
       
  1247                         iSongHistoryTable.PutL();
       
  1248                         channelChanged = ETrue ;
       
  1249                         }
  1120 	                if(compFlagMusic)
  1250 	                if(compFlagMusic)
  1121 		                {
  1251 		                {
  1122 		                iSongHistoryTable.UpdateL();
  1252 		                iSongHistoryTable.UpdateL();
  1123 		                iSongHistoryTable.SetColL(musicStatusColumn, aMusicFlag);
  1253 		                iSongHistoryTable.SetColL(musicStatusColumn, aMusicFlag);
  1124 		                iSongHistoryTable.PutL();
  1254 		                iSongHistoryTable.PutL();
  1125 		                channelChanged = ETrue ;
  1255 		                channelChanged = ETrue ;
  1126 		                }
  1256 		                }
  1127 	                
  1257 	                
  1128 	                }
  1258 	                }
  1129                 CleanupStack::PopAndDestroy(&channelMusicStatus);
  1259                 CleanupStack::PopAndDestroy(&channelMusicStatus);
       
  1260                 CleanupStack::PopAndDestroy(&languageName);
       
  1261                 CleanupStack::PopAndDestroy(&countryName);
       
  1262                 CleanupStack::PopAndDestroy(&genreName);
  1130                 CleanupStack::PopAndDestroy(&imageUrl);
  1263                 CleanupStack::PopAndDestroy(&imageUrl);
  1131 				CleanupStack::PopAndDestroy(&channelUrl);
  1264 				CleanupStack::PopAndDestroy(&channelUrl);
  1132 				CleanupStack::PopAndDestroy(&channelName);
  1265 				CleanupStack::PopAndDestroy(&channelName);
  1133 
  1266 
  1134 		}
  1267 		}