# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1286140066 -10800 # Node ID 38bbf2dcd608bed8d13e71c1474f7dcae836c699 # Parent 5723da102db10d2748d5279b8797d54c2c0a445a Revision: 201037 Kit: 201039 diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/cenrep/2002ffac.txt Binary file internetradio2.0/cenrep/2002ffac.txt has changed diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/conf/internetradio.confml Binary file internetradio2.0/conf/internetradio.confml has changed diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/inc/iruid3.hrh --- a/internetradio2.0/inc/iruid3.hrh Fri Sep 17 08:27:59 2010 +0300 +++ b/internetradio2.0/inc/iruid3.hrh Mon Oct 04 00:07:46 2010 +0300 @@ -20,7 +20,7 @@ #define __IRUID3_H__ //Duplicate with : -//irquid3.hrh \qtinternetradio\irqcommon\inc +//irquid3.hrh /qtinternetradio/irqcommon/inc #define UID3_INTERNET_RADIO_10_1_EXE 0x2002FFAC #define UID3_IRSETTINGS_DLL 0x2002FFAE diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/install/internetradiostub.pkg --- a/internetradio2.0/install/internetradiostub.pkg Fri Sep 17 08:27:59 2010 +0300 +++ b/internetradio2.0/install/internetradiostub.pkg Mon Oct 04 00:07:46 2010 +0300 @@ -43,8 +43,7 @@ ""-"z:\sys\bin\IRCacheMgmt.dll" ""-"z:\sys\bin\IRNetworkController.dll" ""-"z:\sys\bin\irsettings.dll" -""-"z:\sys\bin\IRSessionLog.dll" -""-"z:\sys\bin\IRSongHistory.dll" +""-"z:\sys\bin\IRSessionLog.dll" ""-"z:\sys\bin\IRSettingsView.dll" ""-"z:\sys\bin\irgeneralsettings200.dll" ;""-"z:\sys\bin\mpxequalizerview.dll" diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/irsonghistory/inc/irsonghistorydb.h --- a/internetradio2.0/irsonghistory/inc/irsonghistorydb.h Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,333 +0,0 @@ -/* -* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Song History database used for stroing song history entries. -* -*/ - - -/* --------------------------------------------------------------------------- -* Version history: -* Template version: -* -* -* Version: 3, Thu Apr 14 12:00:00 2008 by Rohit -* Ref: -* Pc lint fixes -* -* Version: 2, Thu Apr 10 20:00:00 2008 by Rohit -* Ref: -* Implemented SongHistory changes for channelwise songs -* -* -* ============================================================================ -*/ - -#ifndef CIRSONGHISTORYDB_H -#define CIRSONGHISTORYDB_H - -#include -#include "irsettings.h" - -class CIRSongHistoryInfo; -class CIRSettings; - - -// Maximum no of entries to be stored in the history list. -const TInt KMaxNoChannelHistoryDbEntries = 30; -const TInt KMaxNoSongHistoryDbEntries = 100; - -// Maximum length of Dbms field string -const TInt KIRDbMaxStrLen = 255; - -const TInt KIRDbMaxChType = 2; - -const TInt KMaxColumnLength = 255; - -NONSHARABLE_CLASS(CIRSongHistoryDb) : public RDbNamedDatabase - { -//member functions -public: - - /** - * Function : NewL() - * Two phased construction - * @return instance of CIRSongHistoryDb - */ - static CIRSongHistoryDb* NewL(); - - /** - * Function : NewLC() - * Two phased construction - * @return instance of CIRSongHistoryDb - */ - static CIRSongHistoryDb* NewLC(); - - /** - * Function : ~CIRSongHistoryDb() - * default destructor - */ - ~CIRSongHistoryDb(); - - - - /** - * Function : AddToSongHistoryDbL() - * adds the song history entry into data base - * @param various channel information - */ - TBool AddToSongHistoryDbL( const TDesC& aSongName, - const TDesC& aArtistName, - const TDesC& aChannelName, - const TDesC& aChannelUrl, - RBuf& aDelSongName, - RBuf& aDelArtistname, - RBuf& aDelChannelName, - RBuf& aDelChannelUrl, - TInt aChannelType, - TInt aChannelId, - TInt aBitrate, - const TDesC& aChannelDesc, - const TDesC& aImageUrl, - const TDesC& aGenreName, - const TDesC& aCountryName, - const TDesC& aLanguageName, - const TDesC& aMusicFlag); - /** - * Function : AddToSongHistoryDb2L() - * adds the song history entry into data base - * @param various song information - */ - TBool AddToSongHistoryDb2L( const TDesC& aSongName, - const TDesC& aArtistName, - const TDesC& aChannelName, - const TDesC& aMusicFlag); - - - /** - * CIRSongHistoryDb::GetAllSongHistoryListL() - * gets all the song history entries into an array - * @param aSongHistoryEntries is the array which is to be filled by the SongHistoryDb. - */ - - void GetAllSongHistoryListL(RPointerArray& aSongHistoryEntries); - /** - * CIRSongHistoryDb::GetAllSongHistoryList2L() - * gets all the song history entries into an array - * @param aSongEntries is the array which is to be filled by the SongHistoryDb. - */ - void GetAllSongHistoryList2L(RPointerArray& aSongEntries); - /** - * Function : ClearAllSongHistoryFromDb - * delete all the song entries from the database. - */ - - TInt ClearAllSongHistoryFromDb(); - - /** - * Function : ClearAllSongHistoryFromDb2 - * delete all the song entries from the database. - */ - TInt ClearAllSongHistoryFromDb2(); - - /** - * Function : CountSongHistoryDb() - * count the database entries - */ - - TInt CountSongHistoryDb(); - - /** - * Function : CountSongHistoryDb2() - * count the database entries - */ - TInt CountSongHistoryDb2(); - - /** - * Function : GetLastHistoryItemL() - * Gives the last added entry in the database - * @param Channel data to be filled . - */ - void GetLastHistoryItemL(RBuf& aSongName, RBuf& aArtistName, - RBuf& aChannelName, RBuf& aChannelUrl); - - /** - * Function : GetChannelSongsCount() - * Returns SongsCount for given channel - */ - TUint GetChannelSongsCountL( const RBuf& aChannelName, const RBuf& aChannelUrl ); - - /** - * Function : GetChannelSongsCount() - * Updates the song history DB when there is a channel removed in the isds. - */ - void SyncSongHistoryDbL(TInt aChannelId) ; - - /** - * Function : GetIdPresentInDb() - * Gets whether the particular channel ID is present in history DB or not. - */ - TBool GetIdPresentInDbL(TInt aChannelId) ; - - /** - * Function : UpdateSongHistoryDb() - * Updates the song history DB when there is a channel change in the isds. - */ - TInt UpdateSongHistoryDbL( TInt aChannelId, - const TDesC& aChannelUrl, - const TDesC& aImageUrl, - const TDesC& aGenreName, - const TDesC& aCountryName, - const TDesC& aLanguageName, - const TDesC& aMusicFlag); - - /* - * search if a record already exists in database. If yes, delete it. - */ - void SearchAndDeleteRecordL(const TDesC& aChannelName, const TDesC& aChannelUrl, - TInt aChannelType, TInt aPresetId); - - /* - * delete a recorder by the index, for station history database - * */ - TInt DeleteOneHistory(TInt aIndex); - - /* - * delete a recorder by the index, for songhistory database - * */ - TInt DeleteOneSongHistory(TInt aIndex); - -private: - - /** - * Function : ConstructL() - * two phase construction - */ - void ConstructL(); - - /** - * Function : CloseSongHistoryDb() - * Closes the database - */ - void CloseSongHistoryDb(); - - /** - * Function : CreateSongHistoryTablesL() - * creates songhistory table with three columns - * log data - * --------------------------------------------------------------------------- - * SongHistoryTable - *--------------------------- - *| SongName | ArtistName | ChannelName | ChannelUrl | ChannelType | ChannelId | Bitrate | ChannelDesc | ImageUrl | GenreName | CountryName | LanguageName | MusicStatus - *--------------------------- - *|EDbColText| EDbColText | EDbColText | EDbColText | EDbColUint8 | EDbColUint16 | EDbColUint16 | EDbColText | EDbColText | EDbColText | EDbColText | EDbColText | EDbColText - *---------------------------------------------------------------------------- - */ - void CreateSongHistoryTablesL(); - - /** - * Function : CreateSongHistoryTables2L() - * creates songhistory table with three columns - * log data - * --------------------------------------------------------------------------- - * SongHistoryTable - *--------------------------- - *| SongName | ArtistName | ChannelName | MusicStatusFlag - *--------------------------- - *|EDbColText| EDbColText | EDbColText | EDbColText | - *---------------------------------------------------------------------------- - */ - void CreateSongHistoryTables2L(); - - /** - * Function : CreateDbCondition() - * Creates the dbms file conditionally(only if not yet created) - * @param aSongHistoryDbFile the Database file name - */ - void CreateDbCondition(const TFileName& aSongHistoryDbFile); - - - /** - * Function : OpenSongHistoryDbL() - * @param aSongHistoryDbFile the Database file name - * opening the data base - */ - void OpenSongHistoryDbL(const TFileName& aSongHistoryDbFile); - - /** - * Function : CreateSongHistoryDb() - * creates the dbms files - * @param aSongHistoryDbFile database filename - */ - TInt CreateSongHistoryDb(const TFileName& aSongHistoryDbFile); - - /** - * to wrapper the delete leaving - */ - TInt DeleteOneHistoryL(TInt aIndex); - - /** - * to wrapper the delete leaving - */ - TInt DeleteOneSongHistoryL(TInt aIndex); - - /** - * Data-structure to hold unique channel info - */ - class CIRChannelInfo : public CBase - { - public: - ~CIRChannelInfo() - { - iChannelUrl.Close(); - iChannelName.Close(); - } - RBuf iChannelUrl; - RBuf iChannelName; - TInt iChannelType; - }; - - - - /** - * Comparer function to compare two CIRChannelInfo's - */ - static TBool CompareChannelInfos(const CIRChannelInfo& aFirst, const CIRChannelInfo& aSecond); - -//data members - -private: - - // File session - - RFs iFsSession; - - - // Table which stores History information - - RDbTable iSongHistoryTable; - - // only save the song info for the song history view. - RDbTable iSongHistoryTable2; - - }; - -#endif //CIRSONGHISTORYDB_H - - - - - - - - diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/irsonghistory/inc/irsonghistoryinfo.h --- a/internetradio2.0/irsonghistory/inc/irsonghistoryinfo.h Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,311 +0,0 @@ -/* -* Copyright (c) 2007-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: header for the songhistory information class -* -*/ - - -#ifndef C_CIRSONGHISTORYINFO_H -#define C_CIRSONGHISTORYINFO_H - -#include - -/** - * SongHistory meta data information wrapper. - */ -NONSHARABLE_CLASS( CIRSongHistoryInfo ) : public CBase - { - -public: - - /** - *Function : NewL - *Function returns an instance of CIRSongHistoryInfo - *Two phase constructor - *@return instance of CIRSongHistoryInfo - */ - IMPORT_C static CIRSongHistoryInfo * NewL(); - - /** - *CIRSongHistoryInfo::NewLC() - *Static function - *standard two phased constructor - *@return *CIRSongHistoryInfo - */ - IMPORT_C static CIRSongHistoryInfo* NewLC(); - - /** - *CIRSongHistoryInfo::~CIRSongHistoryInfo() - *standard C++ destructor - */ - IMPORT_C ~CIRSongHistoryInfo(); - - /** - *CIRSongHistoryInfo::SetHistoryInfoL() - *Function to set songhistory ingo from a RBuf - */ - - IMPORT_C void SetHistoryInfoL(RBuf& aSongName, - RBuf& aArtist, - RBuf& aStreamUrl, - RBuf& aChannelName, - TInt aChannelType , - TInt aChannelId, - TInt aBitrate, - RBuf& aChannelDesc, - RBuf& aImageUrl, - RBuf& aGenreName, - RBuf& aCountryName, - RBuf& aLanguageName, - RBuf& aMusicStoreStatus ); - - /** - *CIRSongHistoryInfo::SetChannelNameL() - *Function to set channel name from a RBuf - *@param RBuf aChannelName - */ - - void SetChannelNameL(RBuf& aChannelName); - - /** - *CIRSongHistoryInfo::SetArtistL() - *Function to set artist name from a RBuf - *@param RBuf aArtist - */ - - void SetArtistL(RBuf& aArtist); - - /** - *CIRSongHistoryInfo::SetSongNameL() - *Function to set song name from a RBuf - *@param RBuf aSongName - */ - - void SetSongNameL (RBuf& aSongName); - - /** - *CIRSongHistoryInfo::SetStreamUrlL() - *Function to set stream url from a RBuf - *@param RBuf aStreamUrl - */ - - void SetStreamUrlL(RBuf& aStreamUrl); - - /** - *CIRSongHistoryInfo::GetSongInfo() - *Function to get song name from a TDesC - *@return RBuf& instance - */ - - IMPORT_C const RBuf& GetSongInfo() const; - - /** - *CIRSongHistoryInfo::GetArtistName() - *Function to get artist name from a TDesC - *@return RBuf& instance - */ - - IMPORT_C const RBuf& GetArtistInfo() const; - - /** - *CIRSongHistoryInfo::GetStreamUrl() - *Function to get url name from a TDesC - *@return RBuf& instance - */ - - IMPORT_C const RBuf& GetStreamUrl() const; - - /** - *CIRSongHistoryInfo::GetChannelName() - *Function to get channel name from a TDesC - *@return RBuf& instance - */ - - IMPORT_C const RBuf& GetChannelName() const; - - /** - *CIRSongHistoryInfo::GetChannelType() - *Function to get channel Type - *@return TInt channeltype - */ - IMPORT_C TInt GetChannelType() const; - - /** - *CIRSongHistoryInfo::SetChannelType() - *Function to set channel Type - *@param TInt aChannelImgUrl - */ - void SetChannelType(TInt aChannelImgUrl); - /** - *CIRSongHistoryInfo::SetChannelId() - *Function to set channel Id - *@param TInt aChannelId - */ - void SetChannelId(TInt aChannelId); - /** - *CIRSongHistoryInfo::GetChannelId() - *Function to get channel Id - *@return TInt channelId - */ - IMPORT_C TInt GetChannelId() const; - /** - *CIRSongHistoryInfo::SetBitrate() - *Function to set bitrate - *@param TInt aBitrate - */ - void SetBitrate(TInt aBitrate); - /** - *CIRSongHistoryInfo::GetBitrate() - *Function to get bitrate - *@return TInt aBitrate - */ - IMPORT_C TInt GetBitrate() const; - /** - *CIRSongHistoryInfo::GetChannelDesc() - *Function to get channel Description - *@return RBuf& instance - */ - IMPORT_C const RBuf& GetChannelDesc() const ; - /** - *CIRSongHistoryInfo::SetChannelDescL() - *Function to set channel Description - * @param RBuf aChannelDesc - */ - void SetChannelDescL(RBuf& aChannelDesc) ; - /** - *CIRSongHistoryInfo::GetImageUrl() - *Function to get channel image Url - *@return RBuf& instance - */ - IMPORT_C const RBuf& GetImageUrl() const ; - /** - *CIRSongHistoryInfo::SetImageUrlL() - *Function to set channel image Url - * @param RBuf aImageUrl - */ - void SetImageUrlL(RBuf& aImageUrl) ; - /** - *IRQSongHistoryInfo::GetGenreName() - *Function to get channel genre name - *@return RBuf& instance - */ - IMPORT_C const RBuf& GetGenreName() const; - /** - *CIRSongHistoryInfo::SetGenreNameL() - *Function to set channel genre name - * @param RBuf aGenreName - */ - void SetGenreNameL(const RBuf& aGenreName); - /** - *IRQSongHistoryInfo::GetCountryName() - *Function to get channel country name - *@return RBuf& instance - */ - IMPORT_C const RBuf& GetCountryName() const; - /** - *CIRSongHistoryInfo::SetCountryNameL() - *Function to set channel country name - * @param RBuf& aCountryName - */ - void SetCountryNameL(const RBuf& aCountryName); - /** - *IRQSongHistoryInfo::getLanguageName() - *Function to get channel language name - *@return RBuf& instance - */ - IMPORT_C const RBuf& GetLanguageName() const; - /** - *CIRSongHistoryInfo::SetLanguageNameL() - *Function to set channel language name - * @param RBuf aLanguageName - */ - void SetLanguageNameL(const RBuf& aLanguageName); - /** - *CIRSongHistoryInfo::SetChannelMusicStatusL() - *Function to set Channel MusicStoreStatus - *@param RBuf aChannelMusicStatus - */ - void SetChannelMusicStatusL(RBuf& aChannelMusicStatus) ; - /** - *CIRSongHistoryInfo::GetChannelMusicStatus() - *Function to get channel MusicStoreStatus - *@return RBuf& instance - */ - IMPORT_C const RBuf& GetChannelMusicStatus() const ; -private: - - /** - * Default constructor. - */ - - CIRSongHistoryInfo(); - - -private: //data - - /** - * The name of the artist. - */ - RBuf iArtistInfo; - - /** - * The name of the song. - */ - RBuf iSongInfo; - - /** - * The stream URL. - */ - RBuf iStreamUrlInfo; - - /** - * Channel Name. - */ - RBuf iChannelInfo; - - /** - * Channel Type. - */ - TInt iChannelType; - - - /** - * Channel Description. - */ - RBuf iChannelDescription; - /** - * Channel Description. - */ - RBuf iImageUrl; - RBuf iGenreName; - RBuf iCountryName; - RBuf iLanguageName; - /** - * Channel Id. - */ - TInt iChannelId; - - /** - * Channel bitrate. - */ - TInt iBitrate; - - /** - * Channel's MusicStoreStatus. - */ - RBuf iMusicStoreStatus; - - }; - -#endif // C_CIRSONGHISTORYINFO_H diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/irsonghistory/src/irsonghistorydb.cpp --- a/internetradio2.0/irsonghistory/src/irsonghistorydb.cpp Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1293 +0,0 @@ -/* -* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of the songhistory database -* -*/ - - -/* --------------------------------------------------------------------------- -* Version history: -* Template version: -* -* -* -* Version: 3, Thu Apr 14 12:00:00 2008 by Rohit -* Ref: -* Pc lint fixes -* -* Version: 2, Thu Apr 10 20:00:00 2008 by Rohit -* Ref: -* Implemented SongHistory changes for channelwise songs -* -* -* ============================================================================ -*/ - -#include -#include // CDesCArrayFlat -#include // CFileStore & CPermanentFileStore -#include // file helpers -#include - -#include "irsonghistorydb.h" -#include "irsonghistoryinfo.h" -#include "irdebug.h" -#include "irsettings.h" - - - -_LIT( KSongHistoryDBTable, "ChannelHistoryTable" ); -_LIT( KSongHistoryDBTable2, "SongHistoryTable" ); -_LIT( KSongHistoryDBSongNameColumn, "SongName" ); -_LIT( KSongHistoryDBArtistNameColumn, "ArtistName" ); -_LIT( KSongHistoryDBChannelNameColumn, "ChannelName" ); -_LIT( KSongHistoryDBChannelUrlColumn, "ChannelUrl" ); -_LIT( KSongHistoryDBChannelTypeColumn, "ChannelType" ); -_LIT( KSongHistoryDBChannelIdColumn, "ChannelId" ); -_LIT( KSongHistoryDBBitrateColumn, "Bitrate" ); -_LIT( KSongHistoryDBChannelDescColumn, "ChannelDescription" ); -_LIT( KSongHistoryDBImageUrlColumn, "ImageUrl" ); -_LIT( KSongHistoryDBGenreNameColumn, "GenreName" ); -_LIT( KSongHistoryDBCountryNameColumn, "CountryName" ); -_LIT( KSongHistoryDBLanguageNameColumn, "LanguageName" ); -_LIT( KSongHistoryDBMusicStatusColumn, "MusicStoreStatus" ); - -_LIT(KSongHistoryDbFile,"songhistoryDb.db"); -_LIT(KNo , "No") ; - -const TInt KMaxSize = 255; - -TBool CIRSongHistoryDb::CompareChannelInfos(const CIRChannelInfo& aFirst, - const CIRChannelInfo& aSecond) -{ - return ( aFirst.iChannelName == aSecond.iChannelName && - aFirst.iChannelUrl == aSecond.iChannelUrl && - aFirst.iChannelType == aSecond.iChannelType); -} - - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Function : NewL() -// two phased construction -// --------------------------------------------------------------------------- -// -CIRSongHistoryDb* CIRSongHistoryDb::NewL() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::NewL" ); - CIRSongHistoryDb* self=CIRSongHistoryDb::NewLC(); - CleanupStack::Pop(self); - IRLOG_DEBUG( "CIRSongHistoryDb::NewL - Exiting." ); - return self; -} - - -// --------------------------------------------------------------------------- -// Function : NewLC() -// Two phased construction -// --------------------------------------------------------------------------- -// -CIRSongHistoryDb* CIRSongHistoryDb::NewLC() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::NewLC" ); - CIRSongHistoryDb *self=new(ELeave)CIRSongHistoryDb; - CleanupStack::PushL(self); - self->ConstructL(); - IRLOG_DEBUG( "CIRSongHistoryDb::NewLC - Exiting." ); - return self; -} - - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::~CIRSongHistoryDb() -// default destructor -// --------------------------------------------------------------------------- -// -CIRSongHistoryDb::~CIRSongHistoryDb() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::~CIRSongHistoryDb" ); - - CloseSongHistoryDb(); - iFsSession.Close(); - IRLOG_DEBUG( "CIRSongHistoryDb::~CIRSongHistoryDb - Exiting." ); -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::CreateDbCondition() -// Creates both the dbms files conditionally(only if not yet created) -// calls CreateSongHistoryDb() -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::CreateDbCondition(const TFileName& aSongHistoryDbFile) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CreateDbCondition" ); - - - if( !BaflUtils::FileExists(iFsSession, aSongHistoryDbFile) ) - { - TInt error = CreateSongHistoryDb(aSongHistoryDbFile); - if( error ) - { - IRLOG_DEBUG( "CIRSongHistoryDb::CreateDbCondition - Exiting (1)." ); - - } - } - IRLOG_DEBUG( "CIRSongHistoryDb::CreateDbCondition - Exiting (2)." ); - -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb:AddToSongHistoryDbL() -// adds the session log entry into data base -// Returns ETure if songHistory count exceeds 30, else EFalse -// --------------------------------------------------------------------------- -// -TBool CIRSongHistoryDb::AddToSongHistoryDbL(const TDesC& aSongName, - const TDesC& aArtistName, - const TDesC& aChannelName, - const TDesC& aChannelUrl, - RBuf& aDelSongName, - RBuf& aDelArtistName, - RBuf& aDelChannelName, - RBuf& aDelChannelUrl, - TInt aChannelType, - TInt aChannelId, - TInt aBitrate, - const TDesC& aChannelDesc, - const TDesC& aImageUrl, - const TDesC& aGenreName, - const TDesC& aCountryName, - const TDesC& aLanguageName, - const TDesC& aMusicFlag - ) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::AddSongHistoryStartL" ); - - TBool bRetval = EFalse; - TInt error= 0; - - iSongHistoryTable.Reset(); - - //if song history entries are greater than or equal to 30 - if( iSongHistoryTable.CountL() >= KMaxNoChannelHistoryDbEntries ) - { - //first row is selected - iSongHistoryTable.FirstL(); - - //the current row is selected - iSongHistoryTable.GetL(); - - //delete that entry - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt songColumn = columns->ColNo( KSongHistoryDBSongNameColumn ); - TInt artistColumn = columns->ColNo( KSongHistoryDBArtistNameColumn ); - TInt channelColumn = columns->ColNo( KSongHistoryDBChannelNameColumn ); - TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn ); - - delete columns; - columns = NULL; - - aDelSongName.CreateL(iSongHistoryTable.ColDes( songColumn )); - aDelArtistName.CreateL(iSongHistoryTable.ColDes( artistColumn )); - aDelChannelName.CreateL(iSongHistoryTable.ColDes( channelColumn )); - aDelChannelUrl.CreateL(iSongHistoryTable.ColDes( channelUrlColumn )); - - iSongHistoryTable.DeleteL(); - Compact(); - - bRetval = ETrue; - } - - CDbColSet* columns = iSongHistoryTable.ColSetL(); - CleanupStack::PushL(columns); - - const TPtrC &songName = aSongName.Left(KIRDbMaxStrLen); - const TPtrC &artistName = aArtistName.Left(KIRDbMaxStrLen); - const TPtrC &channelName = aChannelName.Left(KIRDbMaxStrLen); - const TPtrC &channelUrl = aChannelUrl.Left(KIRDbMaxStrLen); - const TPtrC &channelDesc = aChannelDesc.Left(KIRDbMaxStrLen); - const TPtrC &imageUrl = aImageUrl.Left(KIRDbMaxStrLen); - const TPtrC &genreName = aGenreName.Left(KIRDbMaxStrLen); - const TPtrC &countryName = aCountryName.Left(KIRDbMaxStrLen); - const TPtrC &languageName = aLanguageName.Left(KIRDbMaxStrLen); - - TInt songLen = aSongName.Length(); - TInt artistLen = aArtistName.Length(); - if( songLen + artistLen > KMaxSize ) - { - IRLOG_DEBUG3( "CIRSongHistoryDb::AddSongHistoryStartL - LONG METADATA %d, %d", songLen, artistLen ); - } - - TRAP(error,//trap start - - iSongHistoryTable.InsertL(); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBSongNameColumn ), songName); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBArtistNameColumn ), artistName); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelNameColumn ), channelName); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelUrlColumn ), channelUrl); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelTypeColumn ), aChannelType); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelIdColumn ), aChannelId); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBBitrateColumn ), aBitrate); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBChannelDescColumn ), channelDesc); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBImageUrlColumn ), imageUrl); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBGenreNameColumn ), genreName); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBCountryNameColumn ), countryName); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBLanguageNameColumn ), languageName); - iSongHistoryTable.SetColL(columns->ColNo( KSongHistoryDBMusicStatusColumn ), aMusicFlag); - iSongHistoryTable.PutL(); - ); - - CleanupStack::PopAndDestroy(columns); - if( error!=KErrNone ) - { - User::LeaveIfError(error); - } - - iSongHistoryTable.Reset(); - IRLOG_DEBUG( "CIRSongHistoryDb::AddSongHistoryStartL - Exiting." ); - - return bRetval; -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb:AddToSongHistoryDb2L() -// adds the history song into the db -// Returns ETure if songHistory count exceeds 100, else EFalse -// --------------------------------------------------------------------------- - -TBool CIRSongHistoryDb::AddToSongHistoryDb2L( const TDesC& aSongName, - const TDesC& aArtistName, - const TDesC& aChannelName, - const TDesC& aMusicFlag) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::AddToSongHistoryDb2L" ); - - TBool bRetval = EFalse; - TInt error= 0; - TInt songCompareFlag = 0; - TInt artistCompareFlag = 0; - - - iSongHistoryTable2.Reset(); - - CDbColSet* columns = iSongHistoryTable2.ColSetL(); - CleanupStack::PushL(columns); - - /* the following is to judge wether the song is already in the db */ - if ( iSongHistoryTable2.CountL() >= 1 ) - { - TInt songNameColumn = columns->ColNo( KSongHistoryDBSongNameColumn ); - TInt artistNameColumn = columns->ColNo( KSongHistoryDBArtistNameColumn ); - - for ( iSongHistoryTable2.LastL(); iSongHistoryTable2.AtRow(); iSongHistoryTable2.PreviousL() ) - { - iSongHistoryTable2.GetL(); - RBuf songName; - RBuf artistName; - - CleanupClosePushL(songName); - CleanupClosePushL(artistName); - - songName.CreateL(iSongHistoryTable2.ColDes( songNameColumn )); - artistName.CreateL(iSongHistoryTable2.ColDes( artistNameColumn )); - - songCompareFlag = (songName).Compare(aSongName); - artistCompareFlag = (artistName).Compare(aArtistName); - - CleanupStack::PopAndDestroy(2); - - if( 0 == songCompareFlag && 0 == artistCompareFlag ) - { - CleanupStack::PopAndDestroy(columns); - iSongHistoryTable2.Reset(); - return bRetval; - } - } - } - /* end */ - - //if song history entries are greater than or equal to 100 - if( iSongHistoryTable2.CountL() >= KMaxNoSongHistoryDbEntries ) - { - //first row is selected - iSongHistoryTable2.FirstL(); - //the current row is selected - iSongHistoryTable2.GetL(); - //delete the current row - iSongHistoryTable2.DeleteL(); - Compact(); - bRetval = ETrue; - } - - const TPtrC &songName = aSongName.Left(KIRDbMaxStrLen); - const TPtrC &artistName = aArtistName.Left(KIRDbMaxStrLen); - const TPtrC &channelName = aChannelName.Left(KIRDbMaxStrLen); - const TPtrC &musicFlag = aMusicFlag.Left(KIRDbMaxStrLen); - - - TInt songLen = aSongName.Length(); - TInt artistLen = aArtistName.Length(); - if( songLen + artistLen > KMaxSize || aChannelName.Length() > KMaxSize) - { - IRLOG_DEBUG3( "CIRSongHistoryDb::AddToSongHistoryDb2L - too long song info: %d or channel info: %d", songLen+artistLen, aChannelName.Length() ); - } - - TRAP(error,//trap start - - iSongHistoryTable2.InsertL(); - iSongHistoryTable2.SetColL(columns->ColNo( KSongHistoryDBSongNameColumn ), songName); - iSongHistoryTable2.SetColL(columns->ColNo( KSongHistoryDBArtistNameColumn ), artistName); - iSongHistoryTable2.SetColL(columns->ColNo( KSongHistoryDBChannelNameColumn ), channelName); - iSongHistoryTable2.SetColL(columns->ColNo( KSongHistoryDBMusicStatusColumn ), musicFlag); - iSongHistoryTable2.PutL(); - ); - - CleanupStack::PopAndDestroy(columns); - if( error!=KErrNone ) - { - User::LeaveIfError(error); - } - - iSongHistoryTable2.Reset(); - IRLOG_DEBUG( "CIRSongHistoryDb::AddSongHistoryStartL - Exiting." ); - - return bRetval; -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::GetAllSongHistoryListL() -// gets all the song history entries into an array -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::GetAllSongHistoryListL(RPointerArray& aHistoryDataArr) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::GetAllSongHistoryListL" ); - - if(iSongHistoryTable.CountL() < 1) - { - return; - } - - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt songColumn = columns->ColNo( KSongHistoryDBSongNameColumn ); - TInt artistColumn = columns->ColNo( KSongHistoryDBArtistNameColumn ); - TInt channelColumn = columns->ColNo( KSongHistoryDBChannelNameColumn ); - TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn ); - TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn ); - TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn ); - TInt bitrateColumn = columns->ColNo( KSongHistoryDBBitrateColumn ); - TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn ); - TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn ); - TInt genreNameColumn = columns->ColNo( KSongHistoryDBGenreNameColumn ); - TInt countryNameColumn = columns->ColNo( KSongHistoryDBCountryNameColumn ); - TInt languageNameColumn = columns->ColNo( KSongHistoryDBLanguageNameColumn ); - TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn ); - - delete columns; - columns = NULL; - - TInt song = 0; - - - for ( iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL() ) - { - iSongHistoryTable.GetL(); - - RBuf songName; - RBuf artistName; - RBuf channelName; - RBuf channelUrl; - TInt channelType; - TInt channelId; - TInt bitrate; - RBuf channelDesc; - RBuf imageUrl; - RBuf genreName; - RBuf countryName; - RBuf languageName; - RBuf channelMusicStatus; - - songName.CreateL(iSongHistoryTable.ColDes( songColumn )); - songName.CleanupClosePushL(); - - artistName.CreateL(iSongHistoryTable.ColDes( artistColumn )); - artistName.CleanupClosePushL(); - - channelName.CreateL(iSongHistoryTable.ColDes( channelColumn )); - channelName.CleanupClosePushL(); - - channelUrl.CreateL(iSongHistoryTable.ColDes( channelUrlColumn )); - channelUrl.CleanupClosePushL(); - - channelType=iSongHistoryTable.ColUint8( channelTypeColumn ); - - channelId=iSongHistoryTable.ColUint16( channelIdColumn ); - - bitrate=iSongHistoryTable.ColUint16( bitrateColumn ); - - channelDesc.CreateL(iSongHistoryTable.ColDes( channelDescColumn )); - channelDesc.CleanupClosePushL(); - - imageUrl.CreateL(iSongHistoryTable.ColDes( imageUrlColumn )); - imageUrl.CleanupClosePushL(); - - genreName.CreateL(iSongHistoryTable.ColDes( genreNameColumn )); - genreName.CleanupClosePushL(); - - countryName.CreateL(iSongHistoryTable.ColDes( countryNameColumn )); - countryName.CleanupClosePushL(); - - languageName.CreateL(iSongHistoryTable.ColDes( languageNameColumn )); - languageName.CleanupClosePushL(); - - channelMusicStatus.CreateL(iSongHistoryTable.ColDes( musicStatusColumn )); - channelMusicStatus.CleanupClosePushL(); - - aHistoryDataArr[song]->SetHistoryInfoL(songName, artistName, channelUrl, - channelName,channelType,channelId,bitrate,channelDesc , - imageUrl, genreName, countryName, languageName, channelMusicStatus); - ++song; - CleanupStack::PopAndDestroy(&channelMusicStatus); - CleanupStack::PopAndDestroy(&languageName); - CleanupStack::PopAndDestroy(&countryName); - CleanupStack::PopAndDestroy(&genreName); - CleanupStack::PopAndDestroy(&imageUrl); - CleanupStack::PopAndDestroy(&channelDesc); - CleanupStack::PopAndDestroy(&channelUrl); - CleanupStack::PopAndDestroy(&channelName); - CleanupStack::PopAndDestroy(&artistName); - CleanupStack::PopAndDestroy(&songName); - } - - - IRLOG_DEBUG( "CIRSongHistoryDb::GetAllSongHistoryListL - Exiting." ); -} - - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::GetAllSongHistoryList2L() -// gets all the song history entries into an array -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::GetAllSongHistoryList2L(RPointerArray& aSongEntries) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::GetAllSongHistoryList2L" ); - - if(iSongHistoryTable2.CountL() < 1) - { - return; - } - - CDbColSet* columns = iSongHistoryTable2.ColSetL(); - TInt songColumn = columns->ColNo( KSongHistoryDBSongNameColumn ); - TInt artistColumn = columns->ColNo( KSongHistoryDBArtistNameColumn ); - TInt channelNameColumn = columns->ColNo( KSongHistoryDBChannelNameColumn ); - TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn ); - - delete columns; - columns = NULL; - - TInt song = 0; - - for ( iSongHistoryTable2.LastL(); iSongHistoryTable2.AtRow(); iSongHistoryTable2.PreviousL() ) - { - iSongHistoryTable2.GetL(); - - RBuf songName; - RBuf artistInfo, channelName; - RBuf musicStatus; - - CleanupClosePushL(songName); - CleanupClosePushL(artistInfo); - CleanupClosePushL(channelName); - CleanupClosePushL(musicStatus); - - songName.CreateL(iSongHistoryTable2.ColDes( songColumn )); - artistInfo.CreateL(iSongHistoryTable2.ColDes( artistColumn )); - channelName.CreateL(iSongHistoryTable2.ColDes( channelNameColumn )); - musicStatus.CreateL(iSongHistoryTable2.ColDes(musicStatusColumn)); - - aSongEntries[song]->SetSongNameL(songName); - aSongEntries[song]->SetArtistL(artistInfo); - aSongEntries[song]->SetChannelNameL(channelName); - aSongEntries[song]->SetChannelMusicStatusL(musicStatus); - ++song; - - CleanupStack::PopAndDestroy(4); - } - - IRLOG_DEBUG( "CIRSongHistoryDb::GetAllSongHistoryListL - Exiting." ); -} - -// --------------------------------------------------------------------------- -// Function : ClearAllSongHistoryFromDb -// delete all the entries from the database. -// --------------------------------------------------------------------------- -// -TInt CIRSongHistoryDb::ClearAllSongHistoryFromDb(/*RPointerArray& aSongHistoryInfoArr*/) -{ - - TInt error = KErrNone; - - IRLOG_DEBUG( "CIRSongHistoryDb::ClearAllSongHistoryFromDb - Entering" ); - TRAP(error, iSongHistoryTable.FirstL()); - if(error != KErrNone) - { - return error; - } - - while (iSongHistoryTable.AtRow()) - { - TRAPD(error, - iSongHistoryTable.GetL(); - iSongHistoryTable.DeleteL(); - iSongHistoryTable.NextL();); - if(error) - { - Compact(); - return error; - } - } - - Compact(); - IRLOG_DEBUG( "CIRSongHistoryDb::ClearAllSongHistoryFromDb - Exiting." ); - return KErrNone; - -} - -TInt CIRSongHistoryDb::DeleteOneHistory(TInt aIndex) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneHistory - Entering" ); - - TInt retValue = 0; - TRAPD(error,(retValue = DeleteOneHistoryL(aIndex))); - - if( KErrNone != error ) - { - return error; - } - - if( KErrNone != retValue) - { - return retValue; - } - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneHistory - exiting" ); - return KErrNone; -} - -TInt CIRSongHistoryDb::DeleteOneHistoryL(TInt aIndex) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneHistoryL - Entering" ); - TInt totalCount = iSongHistoryTable.CountL(); - if (aIndex < 0 || aIndex >= totalCount) - { - return KErrArgument; - } - - iSongHistoryTable.LastL(); - TInt tempIndex = 0; - while (tempIndex < aIndex) - { - TRAPD(error,iSongHistoryTable.PreviousL()); - if (KErrNone != error) - { - Compact(); - return error; - } - tempIndex++; - } - - iSongHistoryTable.GetL(); - iSongHistoryTable.DeleteL(); - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneHistoryL - exiting" ); - return KErrNone; -} - -TInt CIRSongHistoryDb::DeleteOneSongHistory(TInt aIndex) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistory - Entering" ); - - TInt retValue = 0; - TRAPD(error,(retValue = DeleteOneSongHistoryL(aIndex))); - - if( KErrNone != error ) - { - return error; - } - - if( KErrNone != retValue) - { - return retValue; - } - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistory - exiting" ); - return KErrNone; -} - -TInt CIRSongHistoryDb::DeleteOneSongHistoryL(TInt aIndex) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistoryL - Entering" ); - TInt totalCount = iSongHistoryTable2.CountL(); - if (aIndex < 0 || aIndex >= totalCount) - { - return KErrArgument; - } - - iSongHistoryTable2.LastL(); - TInt tempIndex = 0; - while (tempIndex < aIndex) - { - TRAPD(error,iSongHistoryTable2.PreviousL()); - if (KErrNone != error) - { - Compact(); - return error; - } - tempIndex++; - } - - iSongHistoryTable2.GetL(); - iSongHistoryTable2.DeleteL(); - IRLOG_DEBUG( "CIRSongHistoryDb::DeleteOneSongHistoryL - exiting" ); - return KErrNone; -} - -// --------------------------------------------------------------------------- -// Function : ClearAllSongHistoryFromDb2 -// delete all the entries from the database. -// --------------------------------------------------------------------------- -// -TInt CIRSongHistoryDb::ClearAllSongHistoryFromDb2() -{ - - TInt error = KErrNone; - - IRLOG_DEBUG( "CIRSongHistoryDb::ClearAllSongHistoryFromDb2 - Entering" ); - TRAP(error, iSongHistoryTable2.FirstL()); - if(error != KErrNone) - { - return error; - } - - while (iSongHistoryTable2.AtRow()) - { - TRAPD(error, - iSongHistoryTable2.GetL(); - iSongHistoryTable2.DeleteL(); - iSongHistoryTable2.NextL();); - if(error) - { - Compact(); - return error; - } - - } - Compact(); - IRLOG_DEBUG( "CIRSongHistoryDb::ClearAllSongHistoryFromDb - Exiting." ); - return KErrNone; - -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::ConstructL() -// Standard 2nd phase construction -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::ConstructL() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::ConstructL" ); - User::LeaveIfError(iFsSession.Connect()); - - CIRSettings* settings = CIRSettings::OpenL(); - - TFileName songHistoryDbFile = settings->PrivatePath(); - songHistoryDbFile.Append(KSongHistoryDbFile); - - CreateDbCondition(songHistoryDbFile); - OpenSongHistoryDbL(songHistoryDbFile); - - settings->Close(); - - IRLOG_DEBUG( "CIRSongHistoryDb::ConstructL- Exiting." ); -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::CloseSongHistoryDb() -// Closes the database -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::CloseSongHistoryDb() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CloseSongHistoryDb" ); - iSongHistoryTable.Close(); - iSongHistoryTable2.Close(); - Close(); - IRLOG_DEBUG( "CIRSongHistoryDb::CloseSongHistoryDb - Exiting." ); -} - - -/** -* Function : CreateSongHistoryTablesL() -* creates songhistory table with three columns -* log data -* --------------------------------------------------------------------------- -* SongHistoryTable -*--------------------------- -*| SongName | ArtistName | ChannelName | ChannelUrl | ChannelType | ChannelId | Bitrate | ChannelDesc | ImageUrl | GenreName | CountryName | LanguageName | MusicStatus -*--------------------------- -*|EDbColText| EDbColText | EDbColText | EDbColText | EDbColUint8 | EDbColUint16 | EDbColUint16 | EDbColText | EDbColText | EDbColText | EDbColText | EDbColText | EDbColText -*---------------------------------------------------------------------------- -*/ -void CIRSongHistoryDb::CreateSongHistoryTablesL() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryTablesL" ); - CDbColSet* columns = CDbColSet::NewLC(); - - TRAPD( error, - columns->AddL( TDbCol( KSongHistoryDBSongNameColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBArtistNameColumn, EDbColText, KMaxColumnLength) ); - columns->AddL( TDbCol( KSongHistoryDBChannelNameColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBChannelUrlColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBChannelTypeColumn, EDbColUint8 ) ); - columns->AddL( TDbCol( KSongHistoryDBChannelIdColumn, EDbColUint16 ) ); - columns->AddL( TDbCol( KSongHistoryDBBitrateColumn, EDbColUint16 ) ); - columns->AddL( TDbCol( KSongHistoryDBChannelDescColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBImageUrlColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBGenreNameColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBCountryNameColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBLanguageNameColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBMusicStatusColumn, EDbColText, KMaxColumnLength ) ); - ); - User::LeaveIfError( error ); - - User::LeaveIfError( CreateTable( KSongHistoryDBTable, *columns ) ); - - CleanupStack::PopAndDestroy( columns ); - IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryTablesL - Exiting." ); -} - -/** -* Function : CreateSongHistoryTables2L() -* creates songhistory table with three columns -* log data -* --------------------------------------------------------------------------- -* SongHistoryTable -*--------------------------- -*| SongName | ArtistName | ChannelName | MusicStatusFlag -*--------------------------- -*|EDbColText| EDbColText | EDbColText | EDbColText -*---------------------------------------------------------------------------- -*/ -void CIRSongHistoryDb::CreateSongHistoryTables2L() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryTablesL" ); - CDbColSet* columns = CDbColSet::NewLC(); - - TRAPD( error, - columns->AddL( TDbCol( KSongHistoryDBSongNameColumn, EDbColText, KMaxColumnLength ) ); - columns->AddL( TDbCol( KSongHistoryDBArtistNameColumn, EDbColText, KMaxColumnLength) ); - columns->AddL( TDbCol( KSongHistoryDBChannelNameColumn, EDbColText, KMaxColumnLength) ); - columns->AddL( TDbCol( KSongHistoryDBMusicStatusColumn, EDbColText, KMaxColumnLength ) ); - ); - User::LeaveIfError( error ); - - User::LeaveIfError( CreateTable( KSongHistoryDBTable2, *columns ) ); - - CleanupStack::PopAndDestroy( columns ); - IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryTablesL - Exiting." ); -} - - - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::OpenSongHistoryDbL() -// opening the data base -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::OpenSongHistoryDbL(const TFileName& aSongHistoryDbFile) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::OpenSongHistoryDbL" ); - CloseSongHistoryDb(); //Ensure that the database is closed before trying to open it. - - - TInt error = KErrNone; - - error = Open(iFsSession,aSongHistoryDbFile); - if( error!=KErrNone ) - { - //if database is failed to open then - //function leaves - IRLOG_ERROR2( "CIRSongHistoryDb::OpenSongHistoryDbL - Opening session database failed (%d)", error ); - User::LeaveIfError(error); - } - if( IsDamaged() || !InTransaction() ) - { - //if data base is damaged then - //it tried to recover - //if recovery is not possible function leaves - error = Recover(); - if ( KErrNone == error) - { - //if recovered data base is compacted - error = Compact(); - } - User::LeaveIfError(error); - } - - //open the table - error = iSongHistoryTable.Open(*this, KSongHistoryDBTable, iSongHistoryTable.EUpdatable); - if( error ) - { - User::LeaveIfError(error); - } - - error = iSongHistoryTable2.Open(*this, KSongHistoryDBTable2, iSongHistoryTable2.EUpdatable); - if( error ) - { - iSongHistoryTable.Close(); - User::LeaveIfError(error); - } - - IRLOG_DEBUG( "CIRSongHistoryDb::OpenSongHistoryDbL - Exiting." ); -} - - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::CreateSongHistoryDb() -// @database filename -// --------------------------------------------------------------------------- -// -TInt CIRSongHistoryDb::CreateSongHistoryDb(const TFileName& aSongHistoryDbFile ) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryDb" ); - - - TInt error = Replace(iFsSession,aSongHistoryDbFile); - if ( error != KErrNone ) - { - IRLOG_ERROR2( "CIRSongHistoryDb::CreateSongHistoryDb - Creating history database failed (%d)", error ); - return error; - } - - TRAPD(err1,CreateSongHistoryTablesL()); - if(err1) - { - return err1; - } - - //if error, no handling - TRAPD(err2, CreateSongHistoryTables2L()); - if( err2 ) - { - return err2; - } - IRLOG_DEBUG( "CIRSongHistoryDb::CreateSongHistoryDb - Exiting." ); - return KErrNone; -} - - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::CountSongHistoryDb() -// count the database entries -// --------------------------------------------------------------------------- -// - -TInt CIRSongHistoryDb::CountSongHistoryDb() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CountSongHistoryDb" ); - TInt historyCount = 0; - iSongHistoryTable.Reset(); - TRAPD(error,historyCount= iSongHistoryTable.CountL()); - if(error) - { - - } - IRLOG_DEBUG( "CIRSongHistoryDb::CountSongHistoryDb - Exiting." ); - return historyCount; - -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::CountSongHistoryDb2() -// count the database entries -// --------------------------------------------------------------------------- -// -TInt CIRSongHistoryDb::CountSongHistoryDb2() -{ - IRLOG_DEBUG( "CIRSongHistoryDb::CountSongHistoryDb" ); - TInt historyCount = 0; - iSongHistoryTable2.Reset(); - TRAPD(error,historyCount= iSongHistoryTable2.CountL()); - if(error) - { - historyCount = -1; - } - IRLOG_DEBUG( "CIRSongHistoryDb::CountSongHistoryDb - Exiting." ); - return historyCount; -} -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::GetLastHistoryItemL() -// Gets the last song history item -// --------------------------------------------------------------------------- -// -void CIRSongHistoryDb::GetLastHistoryItemL(RBuf& aSongName, RBuf& aArtistName, - RBuf& aChannelName, RBuf& aChannelUrl) -{ - if( iSongHistoryTable.IsEmptyL() || iSongHistoryTable.LastL() == EFalse) - { - return; - } - - iSongHistoryTable.GetL(); - - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt songColumn = columns->ColNo( KSongHistoryDBSongNameColumn ); - TInt artistColumn = columns->ColNo( KSongHistoryDBArtistNameColumn ); - TInt channelColumn = columns->ColNo( KSongHistoryDBChannelNameColumn ); - TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn ); - - delete columns; - columns = NULL; - - aSongName.CreateL(iSongHistoryTable.ColDes( songColumn )); - aArtistName.CreateL(iSongHistoryTable.ColDes( artistColumn )); - aChannelName.CreateL(iSongHistoryTable.ColDes( channelColumn )); - aChannelUrl.CreateL(iSongHistoryTable.ColDes( channelUrlColumn )); - - - iSongHistoryTable.Reset(); -} -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::GetChannelSongsCountL() -// Gets the channel's song count. -// --------------------------------------------------------------------------- -// - -TUint CIRSongHistoryDb::GetChannelSongsCountL( const RBuf& aChannelName, const RBuf& aChannelUrl ) -{ - _LIT( strQuery, "Select SongName from SongHistoryTable where ChannelName='%S' AND ChannelUrl='%S'"); - - TBuf bufQuery; - bufQuery.Format( strQuery, &aChannelName, &aChannelUrl ); - - TDbQuery querySearchChannel( bufQuery ); - RDbView dbView; - - TInt error = dbView.Prepare( *this, querySearchChannel ); - User::LeaveIfError(error); - - error = dbView.Evaluate(); // 0, evaluation is complete - User::LeaveIfError(error); - - TInt cRows = dbView.CountL(); - - dbView.Close(); - - return cRows; -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::SyncSongHistoryDb() -// Synchronises the History DB with removed channel entry in the ISDS -// --------------------------------------------------------------------------- -// - -void CIRSongHistoryDb::SyncSongHistoryDbL(TInt aChannelId) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::SyncSongHistoryDbL" ); - - - if(iSongHistoryTable.CountL() < 1) - { - return; - } - - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt songColumn = columns->ColNo( KSongHistoryDBSongNameColumn ); - TInt artistColumn = columns->ColNo( KSongHistoryDBArtistNameColumn ); - TInt channelColumn = columns->ColNo( KSongHistoryDBChannelNameColumn ); - TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn ); - TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn ); - TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn ); - TInt bitrateColumn = columns->ColNo( KSongHistoryDBBitrateColumn ); - TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn ); - TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn ); - TInt genreNameColumn = columns->ColNo( KSongHistoryDBGenreNameColumn ); - TInt countryNameColumn = columns->ColNo( KSongHistoryDBCountryNameColumn ); - TInt languageNameColumn = columns->ColNo( KSongHistoryDBLanguageNameColumn ); - TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn ); - - delete columns; - columns = NULL; - - // Find out the channel to be changed - for ( iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL() ) - { - iSongHistoryTable.GetL(); - // Extracting the values from the database. - TInt channelId; - RBuf imageUrl, genreName, countryName, languageName; - RBuf channelMusicStatus; - - CleanupClosePushL(imageUrl); - CleanupClosePushL(genreName); - CleanupClosePushL(countryName); - CleanupClosePushL(languageName); - CleanupClosePushL(channelMusicStatus); - - channelId=iSongHistoryTable.ColUint16( channelIdColumn ); - imageUrl.CreateL(iSongHistoryTable.ColDes( imageUrlColumn )); - genreName.CreateL(iSongHistoryTable.ColDes( genreNameColumn )); - countryName.CreateL(iSongHistoryTable.ColDes( countryNameColumn )); - languageName.CreateL(iSongHistoryTable.ColDes( languageNameColumn )); - channelMusicStatus.CreateL(iSongHistoryTable.ColDes( musicStatusColumn )); - - - if(aChannelId == channelId) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(channelTypeColumn, 0); - iSongHistoryTable.SetColL(channelIdColumn, 0); - iSongHistoryTable.SetColL(imageUrlColumn, KNo); - iSongHistoryTable.SetColL(genreNameColumn, KNo); - iSongHistoryTable.SetColL(countryNameColumn, KNo); - iSongHistoryTable.SetColL(languageNameColumn, KNo); - iSongHistoryTable.SetColL(musicStatusColumn, KNo); - iSongHistoryTable.PutL(); - } - CleanupStack::PopAndDestroy(5); - } - iSongHistoryTable.Reset(); - - IRLOG_DEBUG( "CIRSongHistoryDb::SyncSongHistoryDbL - Exiting." ); -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::GetIdPresentInDb() -// Gets whether that particular channel id is present in Db or not. -// --------------------------------------------------------------------------- -// - -TBool CIRSongHistoryDb::GetIdPresentInDbL(TInt aChannelId) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::GetIdPresentInDbL" ); - - TBool value = EFalse; - - if(iSongHistoryTable.CountL() < 1) - { - return value; - } - - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn ); - - delete columns; - columns = NULL; - - // Find out the channel to be changed - for ( iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL() ) - { - iSongHistoryTable.GetL(); - TInt channelId; - - channelId=iSongHistoryTable.ColUint16( channelIdColumn ); - if(aChannelId == channelId) - { - value = ETrue; - } - - } - - iSongHistoryTable.Reset(); - - IRLOG_DEBUG( "CIRSongHistoryDb::GetIdPresentInDbL - Exiting." ); - return value ; -} - - - -// --------------------------------------------------------------------------- -// CIRSongHistoryDb::UpdateSongHistoryDb() -// Updates the song history DB when there is a channel change in the isds. -// --------------------------------------------------------------------------- -// - -TInt CIRSongHistoryDb::UpdateSongHistoryDbL( TInt aChannelId, - const TDesC& aChannelUrl, - const TDesC& aImageUrl, - const TDesC& aGenreName, - const TDesC& aCountryName, - const TDesC& aLanguageName, - const TDesC& aMusicFlag) -{ - IRLOG_DEBUG( "CIRSongHistoryDb::UpdateSongHistoryDbL" ); - - TBool channelChanged = EFalse ; - TInt compFlagUrl ; - TInt compFlagImageUrl, compFlagGenreName, compFlagCountryName, compFlagLanguageName; - TInt compFlagMusic ; - TInt compUrlChange ; - - if(iSongHistoryTable.CountL() < 1) - { - return EFalse; - } - - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn ); - TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn ); - TInt channelIdColumn = columns->ColNo( KSongHistoryDBChannelIdColumn ); - TInt channelDescColumn = columns->ColNo( KSongHistoryDBChannelDescColumn ); - TInt imageUrlColumn = columns->ColNo( KSongHistoryDBImageUrlColumn ); - TInt genreNameColumn = columns->ColNo( KSongHistoryDBGenreNameColumn ); - TInt countryNameColumn = columns->ColNo( KSongHistoryDBCountryNameColumn ); - TInt languageNameColumn = columns->ColNo( KSongHistoryDBLanguageNameColumn ); - TInt musicStatusColumn = columns->ColNo( KSongHistoryDBMusicStatusColumn ); - - delete columns; - columns = NULL; - - // Find out the channel to be changed - - for ( iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL() ) - { - iSongHistoryTable.GetL(); - // Extracting the values from the database. - RBuf channelUrl; - RBuf imageUrl, genreName, countryName, languageName; - TInt channelId; - RBuf channelMusicStatus; - - CleanupClosePushL(channelUrl); - CleanupClosePushL(imageUrl); - CleanupClosePushL(genreName); - CleanupClosePushL(countryName); - CleanupClosePushL(languageName); - CleanupClosePushL(channelMusicStatus); - - channelUrl.CreateL(iSongHistoryTable.ColDes( channelUrlColumn )); - imageUrl.CreateL(iSongHistoryTable.ColDes( imageUrlColumn )); - genreName.CreateL(iSongHistoryTable.ColDes( genreNameColumn )); - countryName.CreateL(iSongHistoryTable.ColDes( countryNameColumn )); - languageName.CreateL(iSongHistoryTable.ColDes( languageNameColumn )); - - channelId=iSongHistoryTable.ColUint16( channelIdColumn ); - - channelMusicStatus.CreateL(iSongHistoryTable.ColDes( musicStatusColumn )); - - if(aChannelId == channelId) - { - compFlagUrl = (channelUrl).Compare(aChannelUrl); - compFlagImageUrl = (imageUrl).Compare(aImageUrl); - compFlagGenreName = (genreName).Compare(aGenreName); - compFlagCountryName = (countryName).Compare(aCountryName); - compFlagLanguageName = (languageName).Compare(aLanguageName); - compFlagMusic = (channelMusicStatus).Compare(aMusicFlag); - compUrlChange = (aChannelUrl).Compare(KNo); - - if(compFlagUrl && compUrlChange) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(channelUrlColumn, aChannelUrl); - iSongHistoryTable.PutL(); - channelChanged = ETrue ; - } - if(compFlagImageUrl) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(imageUrlColumn, aImageUrl); - iSongHistoryTable.PutL(); - channelChanged = ETrue ; - } - if(compFlagGenreName) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(genreNameColumn, aGenreName); - iSongHistoryTable.PutL(); - channelChanged = ETrue ; - } - if(compFlagCountryName) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(countryNameColumn, aCountryName); - iSongHistoryTable.PutL(); - channelChanged = ETrue ; - } - if(compFlagLanguageName) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(languageNameColumn, aLanguageName); - iSongHistoryTable.PutL(); - channelChanged = ETrue ; - } - if(compFlagMusic) - { - iSongHistoryTable.UpdateL(); - iSongHistoryTable.SetColL(musicStatusColumn, aMusicFlag); - iSongHistoryTable.PutL(); - channelChanged = ETrue ; - } - - } - CleanupStack::PopAndDestroy(6); - } - iSongHistoryTable.Reset(); - IRLOG_DEBUG( "CIRSongHistoryDb::UpdateSongHistoryDbL - Exiting." ); - return channelChanged; -} - -void CIRSongHistoryDb::SearchAndDeleteRecordL(const TDesC& aChannelName, const TDesC& aChannelUrl, - TInt aChannelType, TInt aPresetId) -{ - CDbColSet* columns = iSongHistoryTable.ColSetL(); - TInt channelNameColumn = columns->ColNo( KSongHistoryDBChannelNameColumn ); - TInt channelUrlColumn = columns->ColNo( KSongHistoryDBChannelUrlColumn ); - TInt channelTypeColumn = columns->ColNo( KSongHistoryDBChannelTypeColumn ); - TInt channelIdColumn = columns->ColNo(KSongHistoryDBChannelIdColumn); - - delete columns; - columns = NULL; - - for (iSongHistoryTable.LastL(); iSongHistoryTable.AtRow(); iSongHistoryTable.PreviousL()) - { - iSongHistoryTable.GetL(); - TPtrC channelName = iSongHistoryTable.ColDes(channelNameColumn); - TPtrC channelUrl = iSongHistoryTable.ColDes(channelUrlColumn); - TInt channelType = iSongHistoryTable.ColInt(channelTypeColumn); - TInt channelId = iSongHistoryTable.ColInt(channelIdColumn); - - if (0 == aChannelType) - { - //user-defined channel - if (aChannelName == channelName && aChannelUrl == channelUrl) - { - iSongHistoryTable.DeleteL(); - break; - } - } - else - { - //channel from ISDS server - if (aChannelName == channelName && aPresetId == channelId) - { - iSongHistoryTable.DeleteL(); - break; - } - } - } - - iSongHistoryTable.Reset(); -} diff -r 5723da102db1 -r 38bbf2dcd608 internetradio2.0/irsonghistory/src/irsonghistoryinfo.cpp --- a/internetradio2.0/irsonghistory/src/irsonghistoryinfo.cpp Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,367 +0,0 @@ -/* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: class for the songhistory information. -* -*/ - -#include "irsonghistoryinfo.h" - -// --------------------------------------------------------------------------- -// Function : NewL -// Function returns an instance of CIRSongHistoryInfo -// Two phase constructor -// --------------------------------------------------------------------------- -// - EXPORT_C CIRSongHistoryInfo * CIRSongHistoryInfo::NewL() - { - CIRSongHistoryInfo* self = CIRSongHistoryInfo :: NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -//CIRLastPlayedSongs::NewLC() -//Static function -//standard two phased constructor -// --------------------------------------------------------------------------- -// - EXPORT_C CIRSongHistoryInfo * CIRSongHistoryInfo::NewLC() - { - CIRSongHistoryInfo* self = new( ELeave ) CIRSongHistoryInfo(); - CleanupStack::PushL( self ); - return self; - } -// --------------------------------------------------------------------------- -//CIRSongHistoryInfo::~CIRSongHistoryInfo() -//standard C++ destructor -// --------------------------------------------------------------------------- -// -EXPORT_C CIRSongHistoryInfo::~CIRSongHistoryInfo() - { - iArtistInfo.Close(); - - iSongInfo.Close(); - - iStreamUrlInfo.Close(); - - iChannelInfo.Close(); - - iChannelDescription.Close(); - - iImageUrl.Close(); - iGenreName.Close(); - iCountryName.Close(); - iLanguageName.Close(); - - iMusicStoreStatus.Close(); - - } - -// --------------------------------------------------------------------------- -//CIRSongHistoryInfo::~CIRSongHistoryInfo() -//standard C++ constructor -// --------------------------------------------------------------------------- -// -CIRSongHistoryInfo::CIRSongHistoryInfo() - { - - } - - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetArtistL -// Sets Artist name -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetArtistL(RBuf& aArtist) - { - iArtistInfo.CreateL(aArtist); - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetSongNameL -// Sets Song name -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetSongNameL (RBuf& aSongName) - { - iSongInfo.CreateL(aSongName); - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetStreamUrlL -// Sets Stream url name -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetStreamUrlL(RBuf& aStreamUrl) - { - iStreamUrlInfo.CreateL(aStreamUrl); - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetChannelNameL -// Sets Channel name -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetChannelNameL(RBuf& aChannelName) - { - iChannelInfo.CreateL(aChannelName); - } - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetChannelDescL -// Sets Channel name -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetChannelDescL(RBuf& aChannelDesc) - { - iChannelDescription.CreateL(aChannelDesc); - } -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetImageUrlL -// Sets Channel image Url -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetImageUrlL(RBuf& aImageUrl) - { - iImageUrl.CreateL(aImageUrl); - } - - // --------------------------------------------------------------------------- - // CIRSongHistoryInfo::SetGenreNameL - // Set channel genre name - // --------------------------------------------------------------------------- - // -void CIRSongHistoryInfo::SetGenreNameL(const RBuf& aGenreName) -{ - iGenreName.CreateL(aGenreName); -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetCountryNameL -// Set channel country name -// --------------------------------------------------------------------------- -// -void CIRSongHistoryInfo::SetCountryNameL(const RBuf& aCountryName) -{ - iCountryName.CreateL(aCountryName); -} - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetLanguageNameL -// Set channel language name -// --------------------------------------------------------------------------- -// -void CIRSongHistoryInfo::SetLanguageNameL(const RBuf& aLanguageName) -{ - iLanguageName.CreateL(aLanguageName); -} - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetChannelMusicStatusL -// Sets Channel's MusicStoreStatus -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetChannelMusicStatusL(RBuf& aChannelMusicStatus) - { - iMusicStoreStatus.CreateL(aChannelMusicStatus); - } -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetChannelType -// Sets Channel TYpe -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetChannelType(TInt aChannelType) - { - iChannelType=aChannelType; - } -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetChannelId -// Sets Channel Id -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetChannelId(TInt aChannelId) - { - iChannelId=aChannelId; - } - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetBitrate -// Sets bitrate -// --------------------------------------------------------------------------- -// - void CIRSongHistoryInfo::SetBitrate(TInt aBitrate) - { - iBitrate=aBitrate; - } - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::SetHistoryInfo -// Sets Song History Information. -// --------------------------------------------------------------------------- -// - - EXPORT_C void CIRSongHistoryInfo::SetHistoryInfoL(RBuf& aSongName, - RBuf& aArtist, - RBuf& aStreamUrl, - RBuf& aChannelName , - TInt aChannelType, - TInt aChannelId, - TInt aBitrate, - RBuf& aChannelDesc, - RBuf& aImageUrl, - RBuf& aGenreName, - RBuf& aCountryName, - RBuf& aLanguageName, - RBuf& aMusicStoreStatus - ) - { - SetSongNameL(aSongName); - SetArtistL(aArtist); - SetStreamUrlL(aStreamUrl); - SetChannelNameL(aChannelName); - SetChannelType(aChannelType); - SetChannelId(aChannelId); - SetBitrate(aBitrate); - SetChannelDescL(aChannelDesc); - SetImageUrlL(aImageUrl); - SetGenreNameL(aGenreName); - SetCountryNameL(aCountryName); - SetLanguageNameL(aLanguageName); - SetChannelMusicStatusL(aMusicStoreStatus); - - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetSongInfo -// Gets the song information -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetSongInfo() const - { - return iSongInfo; - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetArtistInfo -// Gets Artist name -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetArtistInfo() const - { - return iArtistInfo; - } - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetStreamUrl -// Gets StreamUrl name -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetStreamUrl() const - { - return iStreamUrlInfo; - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetChannelName -// Gets Channel name -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetChannelName() const - { - return iChannelInfo; - } - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetChannelDesc -// Gets Channel name -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetChannelDesc() const - { - return iChannelDescription; - } - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetImageUrl -// Gets Channel image Url -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetImageUrl() const - { - return iImageUrl; - } - // --------------------------------------------------------------------------- - // CIRSongHistoryInfo::GetGenreName - // Get channel genre name - // --------------------------------------------------------------------------- - // - - EXPORT_C const RBuf& CIRSongHistoryInfo::GetGenreName() const - { - return iGenreName; - } - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetCountryName -// Get channel country name -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetCountryName() const - { - return iCountryName; - } - -// --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetLanguageName -// Get channel language name -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetLanguageName() const - { - return iLanguageName; - } - - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetChannelType -// Gets Channel Type -// --------------------------------------------------------------------------- -// - EXPORT_C TInt CIRSongHistoryInfo::GetChannelType() const - { - return iChannelType; - } - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetChannelId -// Gets Channel Id -// --------------------------------------------------------------------------- -// - EXPORT_C TInt CIRSongHistoryInfo::GetChannelId() const - { - return iChannelId; - } - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetBitrate -// Gets bitrate -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CIRSongHistoryInfo::GetBitrate() const -{ - return iBitrate; -} - // --------------------------------------------------------------------------- -// CIRSongHistoryInfo::GetChannelMusicStatus -// Gets Channel MusicStoreStatus -// --------------------------------------------------------------------------- -// - EXPORT_C const RBuf& CIRSongHistoryInfo::GetChannelMusicStatus() const - { - return iMusicStoreStatus; - } diff -r 5723da102db1 -r 38bbf2dcd608 package_definition.xml --- a/package_definition.xml Fri Sep 17 08:27:59 2010 +0300 +++ b/package_definition.xml Mon Oct 04 00:07:46 2010 +0300 @@ -54,10 +54,6 @@ - - - diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/all.pro --- a/qtinternetradio/all.pro Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/all.pro Mon Oct 04 00:07:46 2010 +0300 @@ -17,7 +17,8 @@ TEMPLATE = subdirs BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ "rom/qtinternetradio.iby CORE_APP_LAYER_IBY_EXPORT_PATH(qtinternetradio.iby)" - +# stub sis +BLD_INF_RULES.prj_exports += "./rom/ir3_qtinternetradio_stub.sis /epoc32/data/z/system/install/ir3_qtinternetradio_stub.sis" exists($${OS_LAYER_PLATFORM_EXPORT_PATH(qt/translations/internet_radio_10_1*.ts)}) { BLD_INF_RULES.prj_exports += "rom/qtinternetradio_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(qtinternetradio_resources.iby)" @@ -35,8 +36,7 @@ irqfavoritesdb \ irqisdsclient \ irqmediaplayer \ - irqnetworkcontroller \ - irqsonghistory \ + irqnetworkcontroller \ irqnwkinfoobserver \ irqstatisticsreporter \ irhswidgetplugin \ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/bwins/irdbu.def --- a/qtinternetradio/bwins/irdbu.def Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/bwins/irdbu.def Mon Oct 04 00:07:46 2010 +0300 @@ -1,57 +1,60 @@ EXPORTS ?getChannelId@IRDBWrapper@@QAEPAV?$QList@I@@PBV?$QMap@IVQString@@@@0@Z @ 1 NONAME ; class QList * IRDBWrapper::getChannelId(class QMap const *, class QMap const *) - ??_EIRDBWrapper@@UAE@I@Z @ 2 NONAME ; IRDBWrapper::~IRDBWrapper(unsigned int) - ??_EsearchRltWrapper@@UAE@I@Z @ 3 NONAME ; searchRltWrapper::~searchRltWrapper(unsigned int) - ?combineDeleteStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@0PBVQString@@AAV3@@Z @ 4 NONAME ; void IRDBWrapper::combineDeleteStr(class QMap const *, class QMap const *, class QString const *, class QString &) - ?srhChannelId@searchRltWrapper@@AAEIAAVQString@@PBV?$QMap@IVQString@@@@1@Z @ 5 NONAME ; unsigned int searchRltWrapper::srhChannelId(class QString &, class QMap const *, class QMap const *) - ??0urlInfoWrapper@@QAE@XZ @ 6 NONAME ; urlInfoWrapper::urlInfoWrapper(void) - ??1imgWrapper@@UAE@XZ @ 7 NONAME ; imgWrapper::~imgWrapper(void) - ??0channelHistoryWrapper@@QAE@XZ @ 8 NONAME ; channelHistoryWrapper::channelHistoryWrapper(void) - ??0IRDBWrapper@@QAE@XZ @ 9 NONAME ; IRDBWrapper::IRDBWrapper(void) - ?getImg@imgWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 10 NONAME ; class QList * imgWrapper::getImg(class QMap const *, class QMap const *) - ?loadDataOfChannelIdCB@IRDBWrapper@@AAE_NAAVQSqlQuery@@PAV?$QList@I@@@Z @ 11 NONAME ; bool IRDBWrapper::loadDataOfChannelIdCB(class QSqlQuery &, class QList *) - ?getIRDB@IRDBWrapper@@IAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 12 NONAME ; class QList * IRDBWrapper::getIRDB(class QMap const *, class QMap const *) - ?combinePutStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@PBVQString@@AAV3@2PBV?$QMap@IVQByteArray@@@@PAV?$QList@VQByteArray@@@@@Z @ 13 NONAME ; void IRDBWrapper::combinePutStr(class QMap const *, class QString const *, class QString &, class QString &, class QMap const *, class QList *) - ??1searchRltWrapper@@UAE@XZ @ 14 NONAME ; searchRltWrapper::~searchRltWrapper(void) - ?putChannelHistory@channelHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@PAIPBV?$QMap@IVQByteArray@@@@00@Z @ 15 NONAME ; bool channelHistoryWrapper::putChannelHistory(class QMap const *, unsigned int *, class QMap const *, class QMap const *, class QMap const *) - ??1urlInfoWrapper@@UAE@XZ @ 16 NONAME ; urlInfoWrapper::~urlInfoWrapper(void) - ?getIRTableCB@songHistoryWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 17 NONAME ; bool songHistoryWrapper::getIRTableCB(class QSqlQuery &, class QList *) - ?deleteSongHistory@songHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 18 NONAME ; bool songHistoryWrapper::deleteSongHistory(class QMap const *, class QMap const *) - ?resetUrlInfo@urlInfoWrapper@@QAE_NPBV?$QMap@VQString@@I@@ABI@Z @ 19 NONAME ; bool urlInfoWrapper::resetUrlInfo(class QMap const *, unsigned int const &) - ?getIRTableCB@searchRltWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 20 NONAME ; bool searchRltWrapper::getIRTableCB(class QSqlQuery &, class QList *) - ?getIRTableCB@imgWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 21 NONAME ; bool imgWrapper::getIRTableCB(class QSqlQuery &, class QList *) - ?combineGetStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@0PBVQString@@AAV3@@Z @ 22 NONAME ; void IRDBWrapper::combineGetStr(class QMap const *, class QMap const *, class QString const *, class QString &) - ??1channelHistoryWrapper@@UAE@XZ @ 23 NONAME ; channelHistoryWrapper::~channelHistoryWrapper(void) - ?deleteFavorites@favoritesWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 24 NONAME ; bool favoritesWrapper::deleteFavorites(class QMap const *, class QMap const *) - ?combineCondStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@0PBVQString@@AAV3@@Z @ 25 NONAME ; void IRDBWrapper::combineCondStr(class QMap const *, class QMap const *, class QString const *, class QString &) - ??0searchRltWrapper@@QAE@XZ @ 26 NONAME ; searchRltWrapper::searchRltWrapper(void) - ??0songHistoryWrapper@@QAE@XZ @ 27 NONAME ; songHistoryWrapper::songHistoryWrapper(void) - ?putFavorites@favoritesWrapper@@QAE_NPAV?$QMap@IVQString@@@@AA_N@Z @ 28 NONAME ; bool favoritesWrapper::putFavorites(class QMap *, bool &) - ??_EfavoritesWrapper@@UAE@I@Z @ 29 NONAME ; favoritesWrapper::~favoritesWrapper(unsigned int) - ?getIRTableCB@IRDBWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 30 NONAME ; bool IRDBWrapper::getIRTableCB(class QSqlQuery &, class QList *) - ?getChannelHistory@channelHistoryWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 31 NONAME ; class QList * channelHistoryWrapper::getChannelHistory(class QMap const *, class QMap const *) - ?srhChannelId@channelHistoryWrapper@@AAEIAAVQString@@PBV?$QMap@IVQString@@@@1@Z @ 32 NONAME ; unsigned int channelHistoryWrapper::srhChannelId(class QString &, class QMap const *, class QMap const *) - ??_EsongHistoryWrapper@@UAE@I@Z @ 33 NONAME ; songHistoryWrapper::~songHistoryWrapper(unsigned int) - ??1favoritesWrapper@@UAE@XZ @ 34 NONAME ; favoritesWrapper::~favoritesWrapper(void) - ??_EchannelHistoryWrapper@@UAE@I@Z @ 35 NONAME ; channelHistoryWrapper::~channelHistoryWrapper(unsigned int) - ?putSongHistory@songHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@00@Z @ 36 NONAME ; bool songHistoryWrapper::putSongHistory(class QMap const *, class QMap const *, class QMap const *) - ?getFavorites@favoritesWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 37 NONAME ; class QList * favoritesWrapper::getFavorites(class QMap const *, class QMap const *) - ?putSearchRlt@searchRltWrapper@@QAE_NPBV?$QMap@IVQString@@@@PBV?$QMap@IVQByteArray@@@@00@Z @ 38 NONAME ; bool searchRltWrapper::putSearchRlt(class QMap const *, class QMap const *, class QMap const *, class QMap const *) - ?loadDataOfIRDBCB@IRDBWrapper@@AAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 39 NONAME ; bool IRDBWrapper::loadDataOfIRDBCB(class QSqlQuery &, class QList *) - ?getUrlInfo@urlInfoWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 40 NONAME ; class QList * urlInfoWrapper::getUrlInfo(class QMap const *, class QMap const *) - ??_EurlInfoWrapper@@UAE@I@Z @ 41 NONAME ; urlInfoWrapper::~urlInfoWrapper(unsigned int) - ??1songHistoryWrapper@@UAE@XZ @ 42 NONAME ; songHistoryWrapper::~songHistoryWrapper(void) - ?getIRTableCB@favoritesWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 43 NONAME ; bool favoritesWrapper::getIRTableCB(class QSqlQuery &, class QList *) - ??_EimgWrapper@@UAE@I@Z @ 44 NONAME ; imgWrapper::~imgWrapper(unsigned int) - ?combineInsertStr@urlInfoWrapper@@AAEXPBV?$QMap@VQString@@I@@ABIAAVQStringList@@@Z @ 45 NONAME ; void urlInfoWrapper::combineInsertStr(class QMap const *, unsigned int const &, class QStringList &) - ?deleteChannelHistory@channelHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 46 NONAME ; bool channelHistoryWrapper::deleteChannelHistory(class QMap const *, class QMap const *) - ?getIRTableCB@channelHistoryWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 47 NONAME ; bool channelHistoryWrapper::getIRTableCB(class QSqlQuery &, class QList *) - ??1IRDBWrapper@@UAE@XZ @ 48 NONAME ; IRDBWrapper::~IRDBWrapper(void) - ?getSearchRlt@searchRltWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 49 NONAME ; class QList * searchRltWrapper::getSearchRlt(class QMap const *, class QMap const *) - ?deleteSearchRlt@searchRltWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 50 NONAME ; bool searchRltWrapper::deleteSearchRlt(class QMap const *, class QMap const *) - ?updateImg@imgWrapper@@QAE_NPBV?$QMap@IVQString@@@@ABIPBV?$QMap@IVQByteArray@@@@@Z @ 51 NONAME ; bool imgWrapper::updateImg(class QMap const *, unsigned int const &, class QMap const *) - ??0favoritesWrapper@@QAE@XZ @ 52 NONAME ; favoritesWrapper::favoritesWrapper(void) - ??0imgWrapper@@QAE@XZ @ 53 NONAME ; imgWrapper::imgWrapper(void) - ?getSongHistory@songHistoryWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 54 NONAME ; class QList * songHistoryWrapper::getSongHistory(class QMap const *, class QMap const *) - ?getIRTableCB@urlInfoWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 55 NONAME ; bool urlInfoWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ?combinePutStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@PBVQString@@AAV3@2PBV?$QMap@IVQByteArray@@@@PAV?$QList@VQByteArray@@@@PAH@Z @ 2 NONAME ; void IRDBWrapper::combinePutStr(class QMap const *, class QString const *, class QString &, class QString &, class QMap const *, class QList *, int *) + ??_EIRDBWrapper@@UAE@I@Z @ 3 NONAME ; IRDBWrapper::~IRDBWrapper(unsigned int) + ??_EsearchRltWrapper@@UAE@I@Z @ 4 NONAME ; searchRltWrapper::~searchRltWrapper(unsigned int) + ?getUrlInfo@urlInfoWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0HH@Z @ 5 NONAME ; class QList * urlInfoWrapper::getUrlInfo(class QMap const *, class QMap const *, int, int) + ?combineDeleteStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@0PBVQString@@AAV3@@Z @ 6 NONAME ; void IRDBWrapper::combineDeleteStr(class QMap const *, class QMap const *, class QString const *, class QString &) + ??0urlInfoWrapper@@QAE@XZ @ 7 NONAME ; urlInfoWrapper::urlInfoWrapper(void) + ??1imgWrapper@@UAE@XZ @ 8 NONAME ; imgWrapper::~imgWrapper(void) + ?srhChannelId@searchRltWrapper@@AAEIPBV?$QMap@IVQString@@@@0@Z @ 9 NONAME ; unsigned int searchRltWrapper::srhChannelId(class QMap const *, class QMap const *) + ?srhChannelId@channelHistoryWrapper@@AAEIPBV?$QMap@IVQString@@@@0@Z @ 10 NONAME ; unsigned int channelHistoryWrapper::srhChannelId(class QMap const *, class QMap const *) + ??0channelHistoryWrapper@@QAE@XZ @ 11 NONAME ; channelHistoryWrapper::channelHistoryWrapper(void) + ?getIRDB@IRDBWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 12 NONAME ; class QList * IRDBWrapper::getIRDB(class QMap const *, class QMap const *) + ??0IRDBWrapper@@QAE@XZ @ 13 NONAME ; IRDBWrapper::IRDBWrapper(void) + ?getImg@imgWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 14 NONAME ; class QList * imgWrapper::getImg(class QMap const *, class QMap const *) + ?combineSqlStr@searchRltWrapper@@AAEXABIPBV?$QMap@IVQString@@@@AAVQStringList@@@Z @ 15 NONAME ; void searchRltWrapper::combineSqlStr(unsigned int const &, class QMap const *, class QStringList &) + ?loadDataOfChannelIdCB@IRDBWrapper@@AAE_NAAVQSqlQuery@@PAV?$QList@I@@@Z @ 16 NONAME ; bool IRDBWrapper::loadDataOfChannelIdCB(class QSqlQuery &, class QList *) + ??1searchRltWrapper@@UAE@XZ @ 17 NONAME ; searchRltWrapper::~searchRltWrapper(void) + ?putChannelHistory@channelHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@PAIPBV?$QMap@IVQByteArray@@@@00@Z @ 18 NONAME ; bool channelHistoryWrapper::putChannelHistory(class QMap const *, unsigned int *, class QMap const *, class QMap const *, class QMap const *) + ??1urlInfoWrapper@@UAE@XZ @ 19 NONAME ; urlInfoWrapper::~urlInfoWrapper(void) + ?getIRTableCB@songHistoryWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 20 NONAME ; bool songHistoryWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ?deleteSongHistory@songHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 21 NONAME ; bool songHistoryWrapper::deleteSongHistory(class QMap const *, class QMap const *) + ?resetUrlInfo@urlInfoWrapper@@QAE_NPBV?$QMap@VQString@@I@@ABI@Z @ 22 NONAME ; bool urlInfoWrapper::resetUrlInfo(class QMap const *, unsigned int const &) + ?getIRTableCB@searchRltWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 23 NONAME ; bool searchRltWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ?getIRTableCB@imgWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 24 NONAME ; bool imgWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ?combineGetStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@0PBVQString@@AAV3@@Z @ 25 NONAME ; void IRDBWrapper::combineGetStr(class QMap const *, class QMap const *, class QString const *, class QString &) + ??1channelHistoryWrapper@@UAE@XZ @ 26 NONAME ; channelHistoryWrapper::~channelHistoryWrapper(void) + ?deleteFavorites@favoritesWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 27 NONAME ; bool favoritesWrapper::deleteFavorites(class QMap const *, class QMap const *) + ?combineCondStr@IRDBWrapper@@IAEXPBV?$QMap@IVQString@@@@0PBVQString@@AAV3@@Z @ 28 NONAME ; void IRDBWrapper::combineCondStr(class QMap const *, class QMap const *, class QString const *, class QString &) + ??0searchRltWrapper@@QAE@XZ @ 29 NONAME ; searchRltWrapper::searchRltWrapper(void) + ??0songHistoryWrapper@@QAE@XZ @ 30 NONAME ; songHistoryWrapper::songHistoryWrapper(void) + ?addSearchRltFinished@searchRltWrapper@@QAEXXZ @ 31 NONAME ; void searchRltWrapper::addSearchRltFinished(void) + ?putFavorites@favoritesWrapper@@QAE_NPAV?$QMap@IVQString@@@@AA_N@Z @ 32 NONAME ; bool favoritesWrapper::putFavorites(class QMap *, bool &) + ??_EfavoritesWrapper@@UAE@I@Z @ 33 NONAME ; favoritesWrapper::~favoritesWrapper(unsigned int) + ?getIRTableCB@IRDBWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 34 NONAME ; bool IRDBWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ?getChannelHistory@channelHistoryWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 35 NONAME ; class QList * channelHistoryWrapper::getChannelHistory(class QMap const *, class QMap const *) + ??_EsongHistoryWrapper@@UAE@I@Z @ 36 NONAME ; songHistoryWrapper::~songHistoryWrapper(unsigned int) + ??1favoritesWrapper@@UAE@XZ @ 37 NONAME ; favoritesWrapper::~favoritesWrapper(void) + ??_EchannelHistoryWrapper@@UAE@I@Z @ 38 NONAME ; channelHistoryWrapper::~channelHistoryWrapper(unsigned int) + ?putSongHistory@songHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@00@Z @ 39 NONAME ; bool songHistoryWrapper::putSongHistory(class QMap const *, class QMap const *, class QMap const *) + ?getFavorites@favoritesWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 40 NONAME ; class QList * favoritesWrapper::getFavorites(class QMap const *, class QMap const *) + ?addSearchRlt@searchRltWrapper@@QAE_NPBV?$QMap@IVQString@@@@_N@Z @ 41 NONAME ; bool searchRltWrapper::addSearchRlt(class QMap const *, bool) + ?putSearchRlt@searchRltWrapper@@QAE_NPBV?$QMap@IVQString@@@@PBV?$QMap@IVQByteArray@@@@00@Z @ 42 NONAME ; bool searchRltWrapper::putSearchRlt(class QMap const *, class QMap const *, class QMap const *, class QMap const *) + ?loadDataOfIRDBCB@IRDBWrapper@@AAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 43 NONAME ; bool IRDBWrapper::loadDataOfIRDBCB(class QSqlQuery &, class QList *) + ??_EurlInfoWrapper@@UAE@I@Z @ 44 NONAME ; urlInfoWrapper::~urlInfoWrapper(unsigned int) + ??1songHistoryWrapper@@UAE@XZ @ 45 NONAME ; songHistoryWrapper::~songHistoryWrapper(void) + ?getIRTableCB@favoritesWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 46 NONAME ; bool favoritesWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ??_EimgWrapper@@UAE@I@Z @ 47 NONAME ; imgWrapper::~imgWrapper(unsigned int) + ?combineInsertStr@urlInfoWrapper@@AAEXPBV?$QMap@VQString@@I@@ABIAAVQStringList@@@Z @ 48 NONAME ; void urlInfoWrapper::combineInsertStr(class QMap const *, unsigned int const &, class QStringList &) + ?deleteChannelHistory@channelHistoryWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 49 NONAME ; bool channelHistoryWrapper::deleteChannelHistory(class QMap const *, class QMap const *) + ?getIRTableCB@channelHistoryWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 50 NONAME ; bool channelHistoryWrapper::getIRTableCB(class QSqlQuery &, class QList *) + ??1IRDBWrapper@@UAE@XZ @ 51 NONAME ; IRDBWrapper::~IRDBWrapper(void) + ?getSearchRlt@searchRltWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 52 NONAME ; class QList * searchRltWrapper::getSearchRlt(class QMap const *, class QMap const *) + ?deleteSearchRlt@searchRltWrapper@@QAE_NPBV?$QMap@IVQString@@@@0@Z @ 53 NONAME ; bool searchRltWrapper::deleteSearchRlt(class QMap const *, class QMap const *) + ?updateImg@imgWrapper@@QAE_NPBV?$QMap@IVQString@@@@ABIPBV?$QMap@IVQByteArray@@@@@Z @ 54 NONAME ; bool imgWrapper::updateImg(class QMap const *, unsigned int const &, class QMap const *) + ??0favoritesWrapper@@QAE@XZ @ 55 NONAME ; favoritesWrapper::favoritesWrapper(void) + ??0imgWrapper@@QAE@XZ @ 56 NONAME ; imgWrapper::imgWrapper(void) + ?getSongHistory@songHistoryWrapper@@QAEPAV?$QList@PAVQVariant@@@@PBV?$QMap@IVQString@@@@0@Z @ 57 NONAME ; class QList * songHistoryWrapper::getSongHistory(class QMap const *, class QMap const *) + ?getIRTableCB@urlInfoWrapper@@EAE_NAAVQSqlQuery@@PAV?$QList@PAVQVariant@@@@@Z @ 58 NONAME ; bool urlInfoWrapper::getIRTableCB(class QSqlQuery &, class QList *) diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/bwins/irqfavoritesu.def --- a/qtinternetradio/bwins/irqfavoritesu.def Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/bwins/irqfavoritesu.def Mon Oct 04 00:07:46 2010 +0300 @@ -1,32 +1,10 @@ EXPORTS ?makePresetUserDefined@IRQFavoritesDB@@QAEHHH@Z @ 1 NONAME ; int IRQFavoritesDB::makePresetUserDefined(int, int) - ?staticMetaObject@IRQFavoritesDB@@2UQMetaObject@@B @ 2 NONAME ; struct QMetaObject const IRQFavoritesDB::staticMetaObject - ?addPreset@IRQFavoritesDB@@QAEHABVIRQPreset@@@Z @ 3 NONAME ; int IRQFavoritesDB::addPreset(class IRQPreset const &) - ?getPresets@IRQFavoritesDB@@QBEPAV?$QList@PAVIRQPreset@@@@XZ @ 4 NONAME ; class QList * IRQFavoritesDB::getPresets(void) const - ?emptyPresetCount@IRQFavoritesDB@@QBEHXZ @ 5 NONAME ; int IRQFavoritesDB::emptyPresetCount(void) const - ?searchPreset@IRQFavoritesDB@@QAEHHH@Z @ 6 NONAME ; int IRQFavoritesDB::searchPreset(int, int) - ?deletePreset@IRQFavoritesDB@@QAEHH@Z @ 7 NONAME ; int IRQFavoritesDB::deletePreset(int) - ?maxPresetCount@IRQFavoritesDB@@QAEHXZ @ 8 NONAME ; int IRQFavoritesDB::maxPresetCount(void) - ??1IRQFavoritesDB@@UAE@XZ @ 9 NONAME ; IRQFavoritesDB::~IRQFavoritesDB(void) - ?qt_metacall@IRQFavoritesDB@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10 NONAME ; int IRQFavoritesDB::qt_metacall(enum QMetaObject::Call, int, void * *) - ?increasePlayedTimes@IRQFavoritesDB@@QAEXABVIRQPreset@@@Z @ 11 NONAME ; void IRQFavoritesDB::increasePlayedTimes(class IRQPreset const &) - ?getPreviousPreset@IRQFavoritesDB@@QAEHH@Z @ 12 NONAME ; int IRQFavoritesDB::getPreviousPreset(int) - ?trUtf8@IRQFavoritesDB@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString IRQFavoritesDB::trUtf8(char const *, char const *) - ??_EIRQFavoritesDB@@UAE@I@Z @ 14 NONAME ; IRQFavoritesDB::~IRQFavoritesDB(unsigned int) - ?getMoveStatus@IRQFavoritesDB@@QAE_NXZ @ 15 NONAME ; bool IRQFavoritesDB::getMoveStatus(void) - ?replaceUserDefinedPreset@IRQFavoritesDB@@QAEHABVIRQPreset@@@Z @ 16 NONAME ; int IRQFavoritesDB::replaceUserDefinedPreset(class IRQPreset const &) - ?trUtf8@IRQFavoritesDB@@SA?AVQString@@PBD0H@Z @ 17 NONAME ; class QString IRQFavoritesDB::trUtf8(char const *, char const *, int) - ?getNextPreset@IRQFavoritesDB@@QAEHH@Z @ 18 NONAME ; int IRQFavoritesDB::getNextPreset(int) - ?metaObject@IRQFavoritesDB@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * IRQFavoritesDB::metaObject(void) const - ?tr@IRQFavoritesDB@@SA?AVQString@@PBD0H@Z @ 20 NONAME ; class QString IRQFavoritesDB::tr(char const *, char const *, int) - ?replacePreset@IRQFavoritesDB@@QAEHABVIRQPreset@@@Z @ 21 NONAME ; int IRQFavoritesDB::replacePreset(class IRQPreset const &) - ?getUniqId@IRQFavoritesDB@@QBEHH@Z @ 22 NONAME ; int IRQFavoritesDB::getUniqId(int) const - ?addPreset@IRQFavoritesDB@@QAEHABVQString@@0@Z @ 23 NONAME ; int IRQFavoritesDB::addPreset(class QString const &, class QString const &) - ?presetChanged@IRQFavoritesDB@@IAEXHHW4PSReason@1@@Z @ 24 NONAME ; void IRQFavoritesDB::presetChanged(int, int, enum IRQFavoritesDB::PSReason) - ?tr@IRQFavoritesDB@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString IRQFavoritesDB::tr(char const *, char const *) - ?setMoveStatus@IRQFavoritesDB@@QAEX_N@Z @ 26 NONAME ; void IRQFavoritesDB::setMoveStatus(bool) - ?qt_metacast@IRQFavoritesDB@@UAEPAXPBD@Z @ 27 NONAME ; void * IRQFavoritesDB::qt_metacast(char const *) - ?getStaticMetaObject@IRQFavoritesDB@@SAABUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const & IRQFavoritesDB::getStaticMetaObject(void) - ??0IRQFavoritesDB@@QAE@XZ @ 29 NONAME ; IRQFavoritesDB::IRQFavoritesDB(void) - ?renamePreset@IRQFavoritesDB@@QAEHABVIRQPreset@@ABVQString@@@Z @ 30 NONAME ; int IRQFavoritesDB::renamePreset(class IRQPreset const &, class QString const &) + ?addPreset@IRQFavoritesDB@@QAEHABVIRQPreset@@@Z @ 2 NONAME ; int IRQFavoritesDB::addPreset(class IRQPreset const &) + ?getPresets@IRQFavoritesDB@@QBEPAV?$QList@PAVIRQPreset@@@@XZ @ 3 NONAME ; class QList * IRQFavoritesDB::getPresets(void) const + ?deletePreset@IRQFavoritesDB@@QAEHABVIRQPreset@@@Z @ 4 NONAME ; int IRQFavoritesDB::deletePreset(class IRQPreset const &) + ??1IRQFavoritesDB@@QAE@XZ @ 5 NONAME ; IRQFavoritesDB::~IRQFavoritesDB(void) + ?replacePreset@IRQFavoritesDB@@QAEXABVIRQPreset@@@Z @ 6 NONAME ; void IRQFavoritesDB::replacePreset(class IRQPreset const &) + ?renamePreset@IRQFavoritesDB@@QAEHABVIRQPreset@@ABVQString@@@Z @ 7 NONAME ; int IRQFavoritesDB::renamePreset(class IRQPreset const &, class QString const &) + ??0IRQFavoritesDB@@QAE@XZ @ 8 NONAME ; IRQFavoritesDB::IRQFavoritesDB(void) diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/bwins/irqsonghistoryu.def --- a/qtinternetradio/bwins/irqsonghistoryu.def Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -EXPORTS - ?setStationName@IRQSongInfo@@QAEXABVQString@@@Z @ 1 NONAME ; void IRQSongInfo::setStationName(class QString const &) - ?getSongName@IRQSongInfo@@QBEABVQString@@XZ @ 2 NONAME ; class QString const & IRQSongInfo::getSongName(void) const - ?GetCountryName@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 3 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetCountryName(void) const - ?getImageUrl@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 4 NONAME ; class QString const & IRQSongHistoryInfo::getImageUrl(void) const - ?getStationName@IRQSongInfo@@QBEABVQString@@XZ @ 5 NONAME ; class QString const & IRQSongInfo::getStationName(void) const - ?getChannelType@IRQSongHistoryInfo@@QBEHXZ @ 6 NONAME ; int IRQSongHistoryInfo::getChannelType(void) const - ?GetChannelId@CIRSongHistoryInfo@@QBEHXZ @ 7 NONAME ; int CIRSongHistoryInfo::GetChannelId(void) const - ??1IRQSongHistoryInfo@@QAE@XZ @ 8 NONAME ; IRQSongHistoryInfo::~IRQSongHistoryInfo(void) - ?handleMetaDataReceived@IRQSongHistoryEngine@@QAEXABVIRQMetaData@@ABVIRQPreset@@@Z @ 9 NONAME ; void IRQSongHistoryEngine::handleMetaDataReceived(class IRQMetaData const &, class IRQPreset const &) - ?getCountryName@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 10 NONAME ; class QString const & IRQSongHistoryInfo::getCountryName(void) const - ?getAllSongHistory@IRQSongHistoryEngine@@QAEXAAV?$QList@PAVIRQSongInfo@@@@@Z @ 11 NONAME ; void IRQSongHistoryEngine::getAllSongHistory(class QList &) - ??0IRQSongHistoryInfo@@QAE@XZ @ 12 NONAME ; IRQSongHistoryInfo::IRQSongHistoryInfo(void) - ?GetChannelDesc@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 13 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetChannelDesc(void) const - ?getChannelId@IRQSongHistoryInfo@@QBEHXZ @ 14 NONAME ; int IRQSongHistoryInfo::getChannelId(void) const - ?GetStreamUrl@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 15 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetStreamUrl(void) const - ?closeInstance@IRQSongHistoryEngine@@QAEXXZ @ 16 NONAME ; void IRQSongHistoryEngine::closeInstance(void) - ?setMusicshopStatus@IRQSongInfo@@QAEXABVQString@@@Z @ 17 NONAME ; void IRQSongInfo::setMusicshopStatus(class QString const &) - ?GetSongInfo@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 18 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetSongInfo(void) const - ?GetLanguageName@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 19 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetLanguageName(void) const - ?getChannelDesc@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 20 NONAME ; class QString const & IRQSongHistoryInfo::getChannelDesc(void) const - ?syncHistory@IRQSongHistoryEngine@@QAEXH@Z @ 21 NONAME ; void IRQSongHistoryEngine::syncHistory(int) - ?getAllHistory@IRQSongHistoryEngine@@QAEXAAV?$QList@PAVIRQSongHistoryInfo@@@@@Z @ 22 NONAME ; void IRQSongHistoryEngine::getAllHistory(class QList &) - ?handleSongMetaDataReceived@IRQSongHistoryEngine@@QAEXABVIRQMetaData@@ABVIRQPreset@@@Z @ 23 NONAME ; void IRQSongHistoryEngine::handleSongMetaDataReceived(class IRQMetaData const &, class IRQPreset const &) - ?NewLC@CIRSongHistoryInfo@@SAPAV1@XZ @ 24 NONAME ; class CIRSongHistoryInfo * CIRSongHistoryInfo::NewLC(void) - ?GetChannelMusicStatus@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 25 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetChannelMusicStatus(void) const - ?GetBitrate@CIRSongHistoryInfo@@QBEHXZ @ 26 NONAME ; int CIRSongHistoryInfo::GetBitrate(void) const - ?getArtistName@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 27 NONAME ; class QString const & IRQSongHistoryInfo::getArtistName(void) const - ?GetGenreName@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 28 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetGenreName(void) const - ?getMusicStoreStatus@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 29 NONAME ; class QString const & IRQSongHistoryInfo::getMusicStoreStatus(void) const - ?getGenreName@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 30 NONAME ; class QString const & IRQSongHistoryInfo::getGenreName(void) const - ?getBitrate@IRQSongHistoryInfo@@QBEHXZ @ 31 NONAME ; int IRQSongHistoryInfo::getBitrate(void) const - ?getMusicshopStatus@IRQSongInfo@@QBEABVQString@@XZ @ 32 NONAME ; class QString const & IRQSongInfo::getMusicshopStatus(void) const - ?GetChannelName@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 33 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetChannelName(void) const - ?NewL@CIRSongHistoryInfo@@SAPAV1@XZ @ 34 NONAME ; class CIRSongHistoryInfo * CIRSongHistoryInfo::NewL(void) - ?updateSongHistoryDb@IRQSongHistoryEngine@@QAEXHABVQString@@000000@Z @ 35 NONAME ; void IRQSongHistoryEngine::updateSongHistoryDb(int, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &, class QString const &) - ?getLanguageName@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 36 NONAME ; class QString const & IRQSongHistoryInfo::getLanguageName(void) const - ?setSongName@IRQSongInfo@@QAEXABVQString@@@Z @ 37 NONAME ; void IRQSongInfo::setSongName(class QString const &) - ?getArtistName@IRQSongInfo@@QBEABVQString@@XZ @ 38 NONAME ; class QString const & IRQSongInfo::getArtistName(void) const - ?setAllInfo@IRQSongInfo@@QAEXABVQString@@000@Z @ 39 NONAME ; void IRQSongInfo::setAllInfo(class QString const &, class QString const &, class QString const &, class QString const &) - ?deleteOneSongHistoryItem@IRQSongHistoryEngine@@QAE_NH@Z @ 40 NONAME ; bool IRQSongHistoryEngine::deleteOneSongHistoryItem(int) - ?setArtistName@IRQSongInfo@@QAEXABVQString@@@Z @ 41 NONAME ; void IRQSongInfo::setArtistName(class QString const &) - ?openInstance@IRQSongHistoryEngine@@SAPAV1@XZ @ 42 NONAME ; class IRQSongHistoryEngine * IRQSongHistoryEngine::openInstance(void) - ?clearAllHistory@IRQSongHistoryEngine@@QAEHXZ @ 43 NONAME ; int IRQSongHistoryEngine::clearAllHistory(void) - ?deleteOneItem@IRQSongHistoryEngine@@QAE_NH@Z @ 44 NONAME ; bool IRQSongHistoryEngine::deleteOneItem(int) - ?clearAllSongHistory@IRQSongHistoryEngine@@QAEHXZ @ 45 NONAME ; int IRQSongHistoryEngine::clearAllSongHistory(void) - ?getSongName@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 46 NONAME ; class QString const & IRQSongHistoryInfo::getSongName(void) const - ?SetHistoryInfoL@CIRSongHistoryInfo@@QAEXAAVRBuf16@@000HHH000000@Z @ 47 NONAME ; void CIRSongHistoryInfo::SetHistoryInfoL(class RBuf16 &, class RBuf16 &, class RBuf16 &, class RBuf16 &, int, int, int, class RBuf16 &, class RBuf16 &, class RBuf16 &, class RBuf16 &, class RBuf16 &, class RBuf16 &) - ?getChannelName@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 48 NONAME ; class QString const & IRQSongHistoryInfo::getChannelName(void) const - ?handleSongMetaDataReceivedL@IRQSongHistoryEngine@@AAEXABVIRQMetaData@@ABVIRQPreset@@@Z @ 49 NONAME ; void IRQSongHistoryEngine::handleSongMetaDataReceivedL(class IRQMetaData const &, class IRQPreset const &) - ??1CIRSongHistoryInfo@@UAE@XZ @ 50 NONAME ; CIRSongHistoryInfo::~CIRSongHistoryInfo(void) - ?GetImageUrl@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 51 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetImageUrl(void) const - ?getStreamUrl@IRQSongHistoryInfo@@QBEABVQString@@XZ @ 52 NONAME ; class QString const & IRQSongHistoryInfo::getStreamUrl(void) const - ?GetArtistInfo@CIRSongHistoryInfo@@QBEABVRBuf16@@XZ @ 53 NONAME ; class RBuf16 const & CIRSongHistoryInfo::GetArtistInfo(void) const - ?GetChannelType@CIRSongHistoryInfo@@QBEHXZ @ 54 NONAME ; int CIRSongHistoryInfo::GetChannelType(void) const - diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/common.pri --- a/qtinternetradio/common.pri Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/common.pri Mon Oct 04 00:07:46 2010 +0300 @@ -13,11 +13,10 @@ # Description: #DEFINES += USE_TEST_ISDS_SERVER -#DEFINES += NOWPLAYING_VIEW_OPTION_B #DEFINES += ADV_ENABLED DEFINES += HS_WIDGET_ENABLED +DEFINES += SUBTITLE_STR_BY_LOCID #DEFINES += STATISTIC_REPORT_TEST_ENABLED -#DEFINES += TERMS_CONDITIONS_VIEW_ENABLED # ########################################################## # Logging flag definitions @@ -33,3 +32,8 @@ # LOGGING_FLAGS += TRACE_TO_FILE DEFINES += $$LOGGING_FLAGS + +# ########################################################## +# PlatSim flag definitions +# ########################################################## +#DEFINES += PLATSIM_DEBUG_CONF \ No newline at end of file diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/eabi/irdbu.def --- a/qtinternetradio/eabi/irdbu.def Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/eabi/irdbu.def Mon Oct 04 00:07:46 2010 +0300 @@ -10,7 +10,7 @@ _ZN11IRDBWrapper12getChannelIdEPK4QMapIj7QStringES4_ @ 9 NONAME _ZN11IRDBWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 10 NONAME _ZN11IRDBWrapper13combineGetStrEPK4QMapIj7QStringES4_PKS1_RS1_ @ 11 NONAME - _ZN11IRDBWrapper13combinePutStrEPK4QMapIj7QStringEPKS1_RS1_S7_PKS0_Ij10QByteArrayEP5QListIS8_E @ 12 NONAME + _ZN11IRDBWrapper13combinePutStrEPK4QMapIj7QStringEPKS1_RS1_S7_PKS0_Ij10QByteArrayEP5QListIS8_EPi @ 12 NONAME _ZN11IRDBWrapper14combineCondStrEPK4QMapIj7QStringES4_PKS1_RS1_ @ 13 NONAME _ZN11IRDBWrapper16combineDeleteStrEPK4QMapIj7QStringES4_PKS1_RS1_ @ 14 NONAME _ZN11IRDBWrapper16loadDataOfIRDBCBER9QSqlQueryP5QListIP8QVariantE @ 15 NONAME @@ -21,7 +21,7 @@ _ZN11IRDBWrapperD0Ev @ 20 NONAME _ZN11IRDBWrapperD1Ev @ 21 NONAME _ZN11IRDBWrapperD2Ev @ 22 NONAME - _ZN14urlInfoWrapper10getUrlInfoEPK4QMapIj7QStringES4_ @ 23 NONAME + _ZN14urlInfoWrapper10getUrlInfoEPK4QMapIj7QStringES4_ii @ 23 NONAME _ZN14urlInfoWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 24 NONAME _ZN14urlInfoWrapper12resetUrlInfoEPK4QMapI7QStringjERKj @ 25 NONAME _ZN14urlInfoWrapper16combineInsertStrEPK4QMapI7QStringjERKjR11QStringList @ 26 NONAME @@ -39,47 +39,50 @@ _ZN16favoritesWrapperD0Ev @ 38 NONAME _ZN16favoritesWrapperD1Ev @ 39 NONAME _ZN16favoritesWrapperD2Ev @ 40 NONAME - _ZN16searchRltWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 41 NONAME - _ZN16searchRltWrapper12getSearchRltEPK4QMapIj7QStringES4_ @ 42 NONAME - _ZN16searchRltWrapper12putSearchRltEPK4QMapIj7QStringEPKS0_Ij10QByteArrayES4_S4_ @ 43 NONAME - _ZN16searchRltWrapper12srhChannelIdER7QStringPK4QMapIjS0_ES5_ @ 44 NONAME - _ZN16searchRltWrapper15deleteSearchRltEPK4QMapIj7QStringES4_ @ 45 NONAME - _ZN16searchRltWrapperC1Ev @ 46 NONAME - _ZN16searchRltWrapperC2Ev @ 47 NONAME - _ZN16searchRltWrapperD0Ev @ 48 NONAME - _ZN16searchRltWrapperD1Ev @ 49 NONAME - _ZN16searchRltWrapperD2Ev @ 50 NONAME - _ZN18songHistoryWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 51 NONAME - _ZN18songHistoryWrapper14getSongHistoryEPK4QMapIj7QStringES4_ @ 52 NONAME - _ZN18songHistoryWrapper14putSongHistoryEPK4QMapIj7QStringES4_S4_ @ 53 NONAME - _ZN18songHistoryWrapper17deleteSongHistoryEPK4QMapIj7QStringES4_ @ 54 NONAME - _ZN18songHistoryWrapperC1Ev @ 55 NONAME - _ZN18songHistoryWrapperC2Ev @ 56 NONAME - _ZN18songHistoryWrapperD0Ev @ 57 NONAME - _ZN18songHistoryWrapperD1Ev @ 58 NONAME - _ZN18songHistoryWrapperD2Ev @ 59 NONAME - _ZN21channelHistoryWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 60 NONAME - _ZN21channelHistoryWrapper12srhChannelIdER7QStringPK4QMapIjS0_ES5_ @ 61 NONAME - _ZN21channelHistoryWrapper17getChannelHistoryEPK4QMapIj7QStringES4_ @ 62 NONAME - _ZN21channelHistoryWrapper17putChannelHistoryEPK4QMapIj7QStringEPjPKS0_Ij10QByteArrayES4_S4_ @ 63 NONAME - _ZN21channelHistoryWrapper20deleteChannelHistoryEPK4QMapIj7QStringES4_ @ 64 NONAME - _ZN21channelHistoryWrapperC1Ev @ 65 NONAME - _ZN21channelHistoryWrapperC2Ev @ 66 NONAME - _ZN21channelHistoryWrapperD0Ev @ 67 NONAME - _ZN21channelHistoryWrapperD1Ev @ 68 NONAME - _ZN21channelHistoryWrapperD2Ev @ 69 NONAME - _ZTI10imgWrapper @ 70 NONAME - _ZTI11IRDBWrapper @ 71 NONAME - _ZTI14urlInfoWrapper @ 72 NONAME - _ZTI16favoritesWrapper @ 73 NONAME - _ZTI16searchRltWrapper @ 74 NONAME - _ZTI18songHistoryWrapper @ 75 NONAME - _ZTI21channelHistoryWrapper @ 76 NONAME - _ZTV10imgWrapper @ 77 NONAME - _ZTV11IRDBWrapper @ 78 NONAME - _ZTV14urlInfoWrapper @ 79 NONAME - _ZTV16favoritesWrapper @ 80 NONAME - _ZTV16searchRltWrapper @ 81 NONAME - _ZTV18songHistoryWrapper @ 82 NONAME - _ZTV21channelHistoryWrapper @ 83 NONAME + _ZN16searchRltWrapper12addSearchRltEPK4QMapIj7QStringEb @ 41 NONAME + _ZN16searchRltWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 42 NONAME + _ZN16searchRltWrapper12getSearchRltEPK4QMapIj7QStringES4_ @ 43 NONAME + _ZN16searchRltWrapper12putSearchRltEPK4QMapIj7QStringEPKS0_Ij10QByteArrayES4_S4_ @ 44 NONAME + _ZN16searchRltWrapper12srhChannelIdEPK4QMapIj7QStringES4_ @ 45 NONAME + _ZN16searchRltWrapper13combineSqlStrERKjPK4QMapIj7QStringER11QStringList @ 46 NONAME + _ZN16searchRltWrapper15deleteSearchRltEPK4QMapIj7QStringES4_ @ 47 NONAME + _ZN16searchRltWrapper20addSearchRltFinishedEv @ 48 NONAME + _ZN16searchRltWrapperC1Ev @ 49 NONAME + _ZN16searchRltWrapperC2Ev @ 50 NONAME + _ZN16searchRltWrapperD0Ev @ 51 NONAME + _ZN16searchRltWrapperD1Ev @ 52 NONAME + _ZN16searchRltWrapperD2Ev @ 53 NONAME + _ZN18songHistoryWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 54 NONAME + _ZN18songHistoryWrapper14getSongHistoryEPK4QMapIj7QStringES4_ @ 55 NONAME + _ZN18songHistoryWrapper14putSongHistoryEPK4QMapIj7QStringES4_S4_ @ 56 NONAME + _ZN18songHistoryWrapper17deleteSongHistoryEPK4QMapIj7QStringES4_ @ 57 NONAME + _ZN18songHistoryWrapperC1Ev @ 58 NONAME + _ZN18songHistoryWrapperC2Ev @ 59 NONAME + _ZN18songHistoryWrapperD0Ev @ 60 NONAME + _ZN18songHistoryWrapperD1Ev @ 61 NONAME + _ZN18songHistoryWrapperD2Ev @ 62 NONAME + _ZN21channelHistoryWrapper12getIRTableCBER9QSqlQueryP5QListIP8QVariantE @ 63 NONAME + _ZN21channelHistoryWrapper12srhChannelIdEPK4QMapIj7QStringES4_ @ 64 NONAME + _ZN21channelHistoryWrapper17getChannelHistoryEPK4QMapIj7QStringES4_ @ 65 NONAME + _ZN21channelHistoryWrapper17putChannelHistoryEPK4QMapIj7QStringEPjPKS0_Ij10QByteArrayES4_S4_ @ 66 NONAME + _ZN21channelHistoryWrapper20deleteChannelHistoryEPK4QMapIj7QStringES4_ @ 67 NONAME + _ZN21channelHistoryWrapperC1Ev @ 68 NONAME + _ZN21channelHistoryWrapperC2Ev @ 69 NONAME + _ZN21channelHistoryWrapperD0Ev @ 70 NONAME + _ZN21channelHistoryWrapperD1Ev @ 71 NONAME + _ZN21channelHistoryWrapperD2Ev @ 72 NONAME + _ZTI10imgWrapper @ 73 NONAME + _ZTI11IRDBWrapper @ 74 NONAME + _ZTI14urlInfoWrapper @ 75 NONAME + _ZTI16favoritesWrapper @ 76 NONAME + _ZTI16searchRltWrapper @ 77 NONAME + _ZTI18songHistoryWrapper @ 78 NONAME + _ZTI21channelHistoryWrapper @ 79 NONAME + _ZTV10imgWrapper @ 80 NONAME + _ZTV11IRDBWrapper @ 81 NONAME + _ZTV14urlInfoWrapper @ 82 NONAME + _ZTV16favoritesWrapper @ 83 NONAME + _ZTV16searchRltWrapper @ 84 NONAME + _ZTV18songHistoryWrapper @ 85 NONAME + _ZTV21channelHistoryWrapper @ 86 NONAME diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/eabi/irqfavoritesu.def --- a/qtinternetradio/eabi/irqfavoritesu.def Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/eabi/irqfavoritesu.def Mon Oct 04 00:07:46 2010 +0300 @@ -1,32 +1,12 @@ EXPORTS - _ZN14IRQFavoritesDB11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME - _ZN14IRQFavoritesDB11qt_metacastEPKc @ 2 NONAME - _ZN14IRQFavoritesDB12deletePresetEi @ 3 NONAME - _ZN14IRQFavoritesDB12searchPresetEii @ 4 NONAME - _ZN14IRQFavoritesDB13getMoveStatusEv @ 5 NONAME - _ZN14IRQFavoritesDB13getNextPresetEi @ 6 NONAME - _ZN14IRQFavoritesDB13presetChangedEiiNS_8PSReasonE @ 7 NONAME - _ZN14IRQFavoritesDB13replacePresetERK9IRQPreset @ 8 NONAME - _ZN14IRQFavoritesDB13setMoveStatusEb @ 9 NONAME - _ZN14IRQFavoritesDB14maxPresetCountEv @ 10 NONAME - _ZN14IRQFavoritesDB16staticMetaObjectE @ 11 NONAME DATA 16 - _ZN14IRQFavoritesDB17getPreviousPresetEi @ 12 NONAME - _ZN14IRQFavoritesDB19getStaticMetaObjectEv @ 13 NONAME - _ZN14IRQFavoritesDB19increasePlayedTimesERK9IRQPreset @ 14 NONAME - _ZN14IRQFavoritesDB21makePresetUserDefinedEii @ 15 NONAME - _ZN14IRQFavoritesDB24replaceUserDefinedPresetERK9IRQPreset @ 16 NONAME - _ZN14IRQFavoritesDB9addPresetERK7QStringS2_ @ 17 NONAME - _ZN14IRQFavoritesDB9addPresetERK9IRQPreset @ 18 NONAME - _ZN14IRQFavoritesDBC1Ev @ 19 NONAME - _ZN14IRQFavoritesDBC2Ev @ 20 NONAME - _ZN14IRQFavoritesDBD0Ev @ 21 NONAME - _ZN14IRQFavoritesDBD1Ev @ 22 NONAME - _ZN14IRQFavoritesDBD2Ev @ 23 NONAME - _ZNK14IRQFavoritesDB10getPresetsEv @ 24 NONAME - _ZNK14IRQFavoritesDB10metaObjectEv @ 25 NONAME - _ZNK14IRQFavoritesDB16emptyPresetCountEv @ 26 NONAME - _ZNK14IRQFavoritesDB9getUniqIdEi @ 27 NONAME - _ZTI14IRQFavoritesDB @ 28 NONAME DATA 12 - _ZTV14IRQFavoritesDB @ 29 NONAME DATA 56 - _ZN14IRQFavoritesDB12renamePresetERK9IRQPresetRK7QString @ 30 NONAME + _ZN14IRQFavoritesDB12deletePresetERK9IRQPreset @ 1 NONAME + _ZN14IRQFavoritesDB12renamePresetERK9IRQPresetRK7QString @ 2 NONAME + _ZN14IRQFavoritesDB13replacePresetERK9IRQPreset @ 3 NONAME + _ZN14IRQFavoritesDB21makePresetUserDefinedEii @ 4 NONAME + _ZN14IRQFavoritesDB9addPresetERK9IRQPreset @ 5 NONAME + _ZN14IRQFavoritesDBC1Ev @ 6 NONAME + _ZN14IRQFavoritesDBC2Ev @ 7 NONAME + _ZN14IRQFavoritesDBD1Ev @ 8 NONAME + _ZN14IRQFavoritesDBD2Ev @ 9 NONAME + _ZNK14IRQFavoritesDB10getPresetsEv @ 10 NONAME diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/eabi/irqsonghistoryu.def --- a/qtinternetradio/eabi/irqsonghistoryu.def Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -EXPORTS - _ZN11IRQSongInfo10setAllInfoERK7QStringS2_S2_S2_ @ 1 NONAME - _ZN11IRQSongInfo11setSongNameERK7QString @ 2 NONAME - _ZN11IRQSongInfo13setArtistNameERK7QString @ 3 NONAME - _ZN11IRQSongInfo14setStationNameERK7QString @ 4 NONAME - _ZN11IRQSongInfo18setMusicshopStatusERK7QString @ 5 NONAME - _ZN18CIRSongHistoryInfo15SetHistoryInfoLER6RBuf16S1_S1_S1_iiiS1_S1_S1_S1_S1_S1_ @ 6 NONAME - _ZN18CIRSongHistoryInfo4NewLEv @ 7 NONAME - _ZN18CIRSongHistoryInfo5NewLCEv @ 8 NONAME - _ZN18CIRSongHistoryInfoD0Ev @ 9 NONAME - _ZN18CIRSongHistoryInfoD1Ev @ 10 NONAME - _ZN18CIRSongHistoryInfoD2Ev @ 11 NONAME - _ZN18IRQSongHistoryInfoC1Ev @ 12 NONAME - _ZN18IRQSongHistoryInfoC2Ev @ 13 NONAME - _ZN18IRQSongHistoryInfoD1Ev @ 14 NONAME - _ZN18IRQSongHistoryInfoD2Ev @ 15 NONAME - _ZN20IRQSongHistoryEngine11syncHistoryEi @ 16 NONAME - _ZN20IRQSongHistoryEngine12openInstanceEv @ 17 NONAME - _ZN20IRQSongHistoryEngine13closeInstanceEv @ 18 NONAME - _ZN20IRQSongHistoryEngine13deleteOneItemEi @ 19 NONAME - _ZN20IRQSongHistoryEngine13getAllHistoryER5QListIP18IRQSongHistoryInfoE @ 20 NONAME - _ZN20IRQSongHistoryEngine15clearAllHistoryEv @ 21 NONAME - _ZN20IRQSongHistoryEngine17getAllSongHistoryER5QListIP11IRQSongInfoE @ 22 NONAME - _ZN20IRQSongHistoryEngine19clearAllSongHistoryEv @ 23 NONAME - _ZN20IRQSongHistoryEngine19updateSongHistoryDbEiRK7QStringS2_S2_S2_S2_S2_S2_ @ 24 NONAME - _ZN20IRQSongHistoryEngine22handleMetaDataReceivedERK11IRQMetaDataRK9IRQPreset @ 25 NONAME - _ZN20IRQSongHistoryEngine24deleteOneSongHistoryItemEi @ 26 NONAME - _ZN20IRQSongHistoryEngine26handleSongMetaDataReceivedERK11IRQMetaDataRK9IRQPreset @ 27 NONAME - _ZN20IRQSongHistoryEngine27handleSongMetaDataReceivedLERK11IRQMetaDataRK9IRQPreset @ 28 NONAME - _ZNK11IRQSongInfo11getSongNameEv @ 29 NONAME - _ZNK11IRQSongInfo13getArtistNameEv @ 30 NONAME - _ZNK11IRQSongInfo14getStationNameEv @ 31 NONAME - _ZNK11IRQSongInfo18getMusicshopStatusEv @ 32 NONAME - _ZNK18CIRSongHistoryInfo10GetBitrateEv @ 33 NONAME - _ZNK18CIRSongHistoryInfo11GetImageUrlEv @ 34 NONAME - _ZNK18CIRSongHistoryInfo11GetSongInfoEv @ 35 NONAME - _ZNK18CIRSongHistoryInfo12GetChannelIdEv @ 36 NONAME - _ZNK18CIRSongHistoryInfo12GetGenreNameEv @ 37 NONAME - _ZNK18CIRSongHistoryInfo12GetStreamUrlEv @ 38 NONAME - _ZNK18CIRSongHistoryInfo13GetArtistInfoEv @ 39 NONAME - _ZNK18CIRSongHistoryInfo14GetChannelDescEv @ 40 NONAME - _ZNK18CIRSongHistoryInfo14GetChannelNameEv @ 41 NONAME - _ZNK18CIRSongHistoryInfo14GetChannelTypeEv @ 42 NONAME - _ZNK18CIRSongHistoryInfo14GetCountryNameEv @ 43 NONAME - _ZNK18CIRSongHistoryInfo15GetLanguageNameEv @ 44 NONAME - _ZNK18CIRSongHistoryInfo21GetChannelMusicStatusEv @ 45 NONAME - _ZNK18IRQSongHistoryInfo10getBitrateEv @ 46 NONAME - _ZNK18IRQSongHistoryInfo11getImageUrlEv @ 47 NONAME - _ZNK18IRQSongHistoryInfo11getSongNameEv @ 48 NONAME - _ZNK18IRQSongHistoryInfo12getChannelIdEv @ 49 NONAME - _ZNK18IRQSongHistoryInfo12getGenreNameEv @ 50 NONAME - _ZNK18IRQSongHistoryInfo12getStreamUrlEv @ 51 NONAME - _ZNK18IRQSongHistoryInfo13getArtistNameEv @ 52 NONAME - _ZNK18IRQSongHistoryInfo14getChannelDescEv @ 53 NONAME - _ZNK18IRQSongHistoryInfo14getChannelNameEv @ 54 NONAME - _ZNK18IRQSongHistoryInfo14getChannelTypeEv @ 55 NONAME - _ZNK18IRQSongHistoryInfo14getCountryNameEv @ 56 NONAME - _ZNK18IRQSongHistoryInfo15getLanguageNameEv @ 57 NONAME - _ZNK18IRQSongHistoryInfo19getMusicStoreStatusEv @ 58 NONAME - diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/install/ir3_qtinternetradio_armv5_udeb.pkg --- a/qtinternetradio/install/ir3_qtinternetradio_armv5_udeb.pkg Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/install/ir3_qtinternetradio_armv5_udeb.pkg Mon Oct 04 00:07:46 2010 +0300 @@ -55,8 +55,7 @@ "\epoc32\release\armv5\udeb\irqisdsclient.dll" - "!:\sys\bin\irqisdsclient.dll" "\epoc32\release\armv5\udeb\irqmediaplayer.dll" - "!:\sys\bin\irqmediaplayer.dll" "\epoc32\release\armv5\udeb\irqutility.dll" - "!:\sys\bin\irqutility.dll" -"\epoc32\release\armv5\udeb\irqfavorites.dll" - "!:\sys\bin\irqfavorites.dll" -"\epoc32\release\armv5\udeb\irqsonghistory.dll" - "!:\sys\bin\irqsonghistory.dll" +"\epoc32\release\armv5\udeb\irqfavorites.dll" - "!:\sys\bin\irqfavorites.dll" "\epoc32\release\armv5\udeb\irqsettings.dll" - "!:\sys\bin\irqsettings.dll" "\epoc32\release\armv5\udeb\irqnwkinfoobserver.dll" - "!:\sys\bin\irqnwkinfoobserver.dll" "\epoc32\release\armv5\udeb\irqstatisticsreporter.dll" - "!:\sys\bin\irqstatisticsreporter.dll" diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/install/ir3_qtinternetradio_armv5_urel.pkg --- a/qtinternetradio/install/ir3_qtinternetradio_armv5_urel.pkg Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/install/ir3_qtinternetradio_armv5_urel.pkg Mon Oct 04 00:07:46 2010 +0300 @@ -56,8 +56,7 @@ "\epoc32\release\armv5\urel\irqisdsclient.dll" - "!:\sys\bin\irqisdsclient.dll" "\epoc32\release\armv5\urel\irqmediaplayer.dll" - "!:\sys\bin\irqmediaplayer.dll" "\epoc32\release\armv5\urel\irqutility.dll" - "!:\sys\bin\irqutility.dll" -"\epoc32\release\armv5\urel\irqfavorites.dll" - "!:\sys\bin\irqfavorites.dll" -"\epoc32\release\armv5\urel\irqsonghistory.dll" - "!:\sys\bin\irqsonghistory.dll" +"\epoc32\release\armv5\urel\irqfavorites.dll" - "!:\sys\bin\irqfavorites.dll" "\epoc32\release\armv5\urel\irqsettings.dll" - "!:\sys\bin\irqsettings.dll" "\epoc32\release\armv5\urel\irqnwkinfoobserver.dll" - "!:\sys\bin\irqnwkinfoobserver.dll" "\epoc32\release\armv5\urel\irqstatisticsreporter.dll" - "!:\sys\bin\irqstatisticsreporter.dll" diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/install/rd-key.pem --- a/qtinternetradio/install/rd-key.pem Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDLRF+r1FGGkCwTrb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW4 -6Y+LWaA8HMlDdoHRB0FgASisYcFagwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh -7W7Dt9F5FZij8F7/9Pi6+FhhxZFIf1DD+yry9D7+Sp+BgdNALe4XOpf25QIBAwKB -gQCHgupyjYuvCsgNHn7PNtnvVxInrB5MQNoPli+O+uNJWUK/Q+57Rl+yO8AoEzDX -pFaLWiuVVhsdloDnAgabT/FXzYncs6uOHyEUV+dSXb78vtLPJqAX+Fg2i3hOXreB -yskcZ13/OsKVOu5wgrJkx2baZufkqMwOSytf5y9nwjEIKwJBAP+inobagVNrN62j -KQva3cC+UN/6XnKdTc0CA6bHyLOaJoH1xiMwG/VS2PGjHI0tiSMNtLn/QPpHJ003 -iabGhdUCQQDLjp/9UjFT6K6CF66Chqf30pZXhx+GTSQZmv/gvZiMly7X9fX9BGX3 -2MbJohBC4yI21XKTbisWywkF73Hwh+TRAkEAqmxprzxWN5zPyRdwspHpKymLP/w+ -9xOJM1atGdqFzRFvAU6EF3Vn+OHl9my9s3OwwgkjJqorUYTE3iUGby8D4wJBAIe0 -aqjhdjfwdFa6dFcEb/qMZDpaFQQzbWZnVUB+ZbMPdI/5TqitmU/l2dvBYCyXbCSO -TGJJcg8yBgP09qBamIsCQFL7j1tM0XPVQJQ89WpKCld7O9ORxRGVj1eG0tWijrH8 -mGbYh8SGCVoWV3vrKSS8GBrFVgQnqUaHuEdtM7tpCAQ= ------END RSA PRIVATE KEY----- diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/install/rd.cer --- a/qtinternetradio/install/rd.cer Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICzDCCAjWgAwIBAgIBADANBgkqhkiG9w0BAQUFADArMRAwDgYDVQQKEwdSRCBD -ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZTAeFw0wNDExMTUxMjQyMDZaFw0z -NzA5MjMxMjQyMDZaMCsxEDAOBgNVBAoTB1JEIENlcnQxFzAVBgNVBAMTDlJEIENl -cnRpZmljYXRlMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDLRF+r1FGGkCwT -rb420kbnAps7gi1yYUcXYUdWeFTuBeQe5eW46Y+LWaA8HMlDdoHRB0FgASisYcFa -gwno9+oFf4AJka4H1gWEs5XTGwAA1s0d8XGh7W7Dt9F5FZij8F7/9Pi6+FhhxZFI -f1DD+yry9D7+Sp+BgdNALe4XOpf25QIBA6OCAQAwgf0wDAYDVR0TBAUwAwEB/zAL -BgNVHQ8EBAMCAoQwHQYDVR0OBBYEFFi/kuGzxhVpjGxe9ZwlxC3fH9jFMFMGA1Ud -IwRMMEqAFFi/kuGzxhVpjGxe9ZwlxC3fH9jFoS+kLTArMRAwDgYDVQQKEwdSRCBD -ZXJ0MRcwFQYDVQQDEw5SRCBDZXJ0aWZpY2F0ZYIBADBsBgNVHSAEZTBjMGEGBFUd -IAAwWTATBggrBgEFBQcCARYHaHR0cDovLzBCBggrBgEFBQcCAjA2GjRGb3IgUiZE -IHVzYWdlIG9ubHkuIFRoaXMgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWQuMA0G -CSqGSIb3DQEBBQUAA4GBAHGB4RQMAgBdeT2hxfOr6f2nA/dZm+M5yX5daUtZnET9 -Ed0A9sazLawfN2G1KFQT9kxEParAyoAkpbMAsRrnRz/9cM3OHgFm/NiKRnf50DpT -7oCx0I/65mVD2kt+xXE62/Ii5KPnTufIkPi2uLvURCia1tTS8JmJ8dtxDGyQt8BR ------END CERTIFICATE----- diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/channelhistorywrapper.h --- a/qtinternetradio/irdb/inc/channelhistorywrapper.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/channelhistorywrapper.h Mon Oct 04 00:07:46 2010 +0300 @@ -28,6 +28,8 @@ public: /* * RowData: [direction: in]table row value; + * reminder, channelUrl and bitrate can't be input from here; + * if the enum of channelUrl or bitrate is used here, return false; * cidUserDefined: [direction: out] return the channelid allocated by IRDB, * the channelId is a user-defined channelId; * logoMap: [direction: in]the logo rowData will be inserted into irdb via this structure; @@ -75,13 +77,11 @@ private: /* * search channelId according to parameter; - * condUserCidStr:[direction: in]specific condition(where) string for user-define uid; * condAND: [direction: in]condition for search channelHistory, it is AND relationship in every pair; * condOR: [direction: in]condition for search channelHistory, it is OR relationship in every pair; * uint: return channelId; */ - uint srhChannelId(QString& condUserCidStr, - const columnMap* const condAND, + uint srhChannelId(const columnMap* const condAND = NULL, const columnMap* const condOR = NULL); }; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/irdb.h --- a/qtinternetradio/irdb/inc/irdb.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/irdb.h Mon Oct 04 00:07:46 2010 +0300 @@ -69,6 +69,7 @@ const uint& channelId, const QString& aCondSqlStr, const QList* apImgList = NULL, + const int logoType = 0, bool bPreHandle = false); /* * action is invoked from view of go to station; @@ -85,7 +86,8 @@ uint* const cidRet = NULL, const QString& condStr = NULL, const QString& condUserCidStr = NULL, - const QList* apImgList = NULL); + const QList* apImgList = NULL, + const int logoType = 0); /* * this fuction is used while synchronization data with iSDS side; @@ -163,10 +165,22 @@ */ IRDBCHAR updRowImg(const uint& channelId, const QString& updSqlStr, - QList* apImgList = NULL); + QList* apImgList = NULL, + const int logotype = 0); public: /* + * handle request from search view; + * aSqlList, sql string list, this list is provided by wrapper level; + * bBegin, if bBeging is true,it will invoke the operation of open db's connection. + */ + IRDBCHAR handleRstFromSrhView(const uint& channelId, const QStringList& aSqlList, bool bBegin=true); + + /* + * call this function after call handleRstFromSrhView; + */ + void closeIRDBConnection(); + /* * DELETE rows in * channelHistory, searchRlt, songHistory, favorites, advertisement; * rows in img, channelInfo and urlInfo can't be removed directly. @@ -174,13 +188,15 @@ IRDBCHAR deleteRow(const QString& aDltSqlStr); /* - * DELETE rows in - * channelHistory, searchRlt, songHistory, favorites, advertisement; - * rows in img, channelInfo and urlInfo can't be removed directly. + * select rows from IRDB + * aBegin, aBegin is 0, will invoke the action of open db connection; + * aBegin == aEnd, will invoke the action of close db connection; */ IRDBCHAR selectRow(IRDBWrapper* const apWrapper, const QString& aSltSqlStr, - QList* pDataSet); + QList* pDataSet, + int aBegin = 0, + int aEnd = 0); public: /* @@ -229,7 +245,7 @@ * search channelid from channelInfo table; */ IRDBCHAR isChannelIdExisted(uint channelId); - + private: //IRDB Instance QSqlDatabase m_sqlDB; @@ -242,6 +258,9 @@ // The static instance static IRDB* mpIRDBInstance; + + //for data batch handle + QSqlQuery* iIRQuery2; }; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/irdbviewstruct.h --- a/qtinternetradio/irdb/inc/irdbviewstruct.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/irdbviewstruct.h Mon Oct 04 00:07:46 2010 +0300 @@ -29,11 +29,15 @@ typedef QMap columnMap; typedef QMap logoMap; -enum EColumnLogo{bLogoInsert, sLogoInsert}; +enum EColumnLogo{bLogo, sLogo}; const QString colNameLogo[] = {"bIcon", "sIcon"}; const QString strBLogo = ":bIcon"; const QString strSLogo = ":sIcon"; +const int IRDB_BOTH_LOGO = 0x03;// both logo, big and small is in logodata; +const int IRDB_BIG_LOGO = 0x01; //big logo is in logodata; +const int IRDB_SMALL_LOGO = 0x02; //small logo is in logodata + const int IRDB_ALL_COLUMN = 25; const int IRDB_OPT_INSERT = 1; const int IRDB_OPT_UPDATE = 2; @@ -51,7 +55,7 @@ lastModified, channelType, musicStoreStatus, imgUrl, bLogoGet, sLogoGet, advertisementUrl, advertisementInUse, expiration, - songName, artistName, channelUrl, opt, dataSource}; + songName, artistName, channelUrl, bitRate, opt, dataSource}; const QString colNameView[] = {"channelId", "channelName", "channelNickName", "genreName", "genreId", "languageName", "languageCode", @@ -59,7 +63,7 @@ "lastModified", "channelType", "musicStoreStatus", "imgUrl", "bIcon", "sIcon", "advertisementUrl", "advertisementInUse", "expiration", - "songName", "artistName", "channelUrl", "opt", "dataSource"}; + "songName", "artistName", "channelUrl", "bitRate", "opt", "dataSource"}; //flag of data belong to channelHistory; const int DATA_OF_CHANNELHISTORY = 1; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/irdbwrapper.h --- a/qtinternetradio/irdb/inc/irdbwrapper.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/irdbwrapper.h Mon Oct 04 00:07:46 2010 +0300 @@ -38,13 +38,19 @@ * If all parameters are default, all cid rows in IRDB will return; * condAND: condition for search IRDB, it is AND relationship in every pair; * condOR: condition for search IRDB, it is OR relationship in every pair; + * here below enum can be input as condition(condAND or condOR): + * channelId, channelName, channelNickName, + genreName, genreId, languageName, languageCode, + countryName, countryCode, description, shortDesc, + lastModified, channelType, musicStoreStatus, + imgUrl, + advertisementUrl, advertisementInUse, expiration, + channelUrl, bitRate; */ QList* getChannelId(const columnMap* const condAND = NULL, const columnMap* const condOR = NULL); -friend class IRDB; -protected: /* * If all parameters are default, all rows in IRDB will return; * condAND: condition for search IRDB, it is AND relationship in every pair; @@ -53,6 +59,8 @@ QList* getIRDB(const columnMap* const condAND = NULL, const columnMap* const condOR = NULL); + friend class IRDB; + protected: /* * create sql condition(where) string according to the input condAND and condAND; @@ -80,7 +88,8 @@ QString& insSqlStr, QString& updSqlStr, const logoMap* const logoData = NULL, - QList* logoArrayList = NULL); + QList* logoArrayList = NULL, + int* logoType = NULL); /* * create sql select string according to the input condAND and condOR; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/irsqlstr.h --- a/qtinternetradio/irdb/inc/irsqlstr.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/irsqlstr.h Mon Oct 04 00:07:46 2010 +0300 @@ -20,7 +20,7 @@ const QString IRDBName = "IRDB.db"; -#ifdef Q_CC_NOKIAX86 +#ifdef PLATSIM_DEBUG_CONF const QString IRDBFile = IRDBName; #else const QString IRDBFile = "c:\\private\\2002FFAC\\IRDB.db"; @@ -31,8 +31,9 @@ const QString IRDBConnectionName("IR"); const QString IRDBSrhCIdCntFrmChannelInfo("select count(channelId) from channelInfo where channelId ="); const QString IRDBSrhCIdCntFrmFavorites("select count(channelId) from favorites where channelId ="); -const QString IRDBSrhCIdFrmView("select channelid from IRVIEW_CHANNELINFO "); -const QString IRDBSrhAllFrmView("select * from IRVIEW_CHANNELINFO "); +const QString IRDBSrhCIdFrmChannelInfo("select channelid from IRVIEW_CHANNELINFO "); +const QString IRDBSrhCIdFrmView("select channelId from IRVIEW_ALL "); +const QString IRDBSrhAllFrmView("select * from IRVIEW_ALL "); const QString IRDBInsertIRBuff("insert into IRBuff (channelid, datasource, opt) values("); const QString IRDBSrhCIdCntFrmSongHistory("select count(channelId) from songHistory where songName ="); const QString IRDBSrhCIdCntFrmChannelHistory("select count(channelId) from channelHistory where channelId ="); @@ -82,7 +83,7 @@ [description] nvarchar(255), \ [shortDesc] nvarchar(255), \ [lastModified] datetime DEFAULT (datetime(current_timestamp,'localtime')), \ -[musicStoreStatus] numeric(1) DEFAULT (1), \ +[musicStoreStatus] nvarchar(6), \ [imgUrl] nvarchar(255), \ [bIcon] BLOB, \ [sIcon] BLOB, \ @@ -298,6 +299,11 @@ refCnt = refCnt+1 \ where channelId = new.channelId; \ \ +UPDATE channelInfo \ +SET channelType = 0 \ +WHERE channelId = new.channelID \ +AND new.channelID >= 4026531840; \ +\ delete from channelHistory \ where channelLatestPlayTime = ( select min(channelLatestPlayTime) from channelHistory) \ AND (select count(*) from channelHistory)> 100; \ @@ -354,6 +360,11 @@ where \ channelId = new.channelId; \ \ +UPDATE channelInfo \ +SET channelType = 0 \ +WHERE channelId = new.channelID \ +AND new.channelID >= 4026531840; \ +\ delete from searchRlt \ where SID = ( select min(SID) from searchRlt) AND (select count(*) from searchRlt)> 100; \ \ @@ -389,7 +400,7 @@ [channelName] nvarchar(255) ,\ [channelNickName] nvarchar(255) ,\ [genreName] nvarchar(255) ,\ -[genreId] nvarchar(64)), \ +[genreId] nvarchar(64),\ [languageName] nvarchar(255) ,\ [languageCode] nvarchar(8) ,\ [countryName] nvarchar(255) ,\ @@ -398,24 +409,10 @@ [shortDesc] nvarchar(255) ,\ [lastModified] datetime DEFAULT (datetime(current_timestamp,'localtime')), \ [channelType] numeric(1) DEFAULT (1) ,\ -[musicStoreStatus] numeric(1) NOT NULL ,\ +[musicStoreStatus] nvarchar(6) ,\ [refCnt] numeric(1) DEFAULT (0));"); -/* -* Define for channelInfo Insert trigger; -* the refCnt default value is 1; -*/ -const QString TRI_INSERT_CHANNELINFO("CREATE TRIGGER [TRI_INSERT_channelInfo] \ -AFTER INSERT ON [channelInfo] FOR EACH ROW \ -BEGIN \ -\ -UPDATE channelInfo \ -SET channelType = 0 \ -WHERE channelId = new.channelID \ -AND new.channelID > 4294967295; \ -\ -END;"); /* @@ -461,6 +458,21 @@ [bIcon] BLOB, \ [sIcon] BLOB); "); +/* +* Definition for trigger img table; +* when imgurl is updated(old.value isn't same with new.value), +* the logo info in database will be remvoed; +*/ +const QString TRI_UPDATE_IMG("CREATE TRIGGER [IRI_UPDATE_img] \ +AFTER UPDATE \ +ON [img] \ +FOR EACH ROW \ +BEGIN \ +update img \ +set sIcon = NULL, bIcon = NULL \ +where new.imgurl <> old.imgurl; \ +\ +END; "); /************************************************** @@ -562,7 +574,7 @@ AND artistName = new.artistName; \ \ delete from songHistory \ -where songPlaySeq = ( select min(songPlaySeq) from searchRlt) \ +where songPlaySeq = ( select min(songPlaySeq) from songHistory) \ AND (select count(*) from songHistory)> 100; \ END;"); @@ -702,26 +714,32 @@ select \ IRView_channelinfo.* \ from \ -channelHistory LEFT JOIN IRView_channelinfo ON channelHistory.[channelId] = IRView_channelinfo.[channelID] "); +channelHistory \ +LEFT JOIN \ +IRView_channelinfo ON channelHistory.[channelId] = IRView_channelinfo.[channelID] \ +order by channelHistory.[channelLatestPlayTime] desc "); const QString IRVIEW_FAVORITES(" Create View [IRVIEW_favorites] As \ select \ -IRView_channelinfo.*, favorites.[FavSeq] \ +IRView_channelinfo.* \ from \ -favorites LEFT JOIN IRView_channelinfo ON favorites.[channelId] = IRView_channelinfo.[channelID] "); +favorites LEFT JOIN IRView_channelinfo ON favorites.[channelId] = IRView_channelinfo.[channelID] \ +order by favorites.[FavSeq] desc "); const QString IRVIEW_SEARCHRLT(" Create View [IRVIEW_searchRlt] As \ select \ IRView_channelinfo.* \ from \ -searchRlt LEFT JOIN IRView_channelinfo ON searchRlt.[channelId] = IRView_channelinfo.[channelID] "); +searchRlt LEFT JOIN IRView_channelinfo ON searchRlt.[channelId] = IRView_channelinfo.[channelID] \ +order by searchRlt.[channelLatestSrhTime] asc "); const QString IRVIEW_SONGHISTORY("Create View [IRVIEW_songHistory] As \ select \ -IRView_channelinfo.*, songHistory.[songName], songHistory.[artistName], songHistory.[songPlaySeq] \ +IRView_channelinfo.*, songHistory.[songName], songHistory.[artistName] \ from \ -songHistory LEFT JOIN IRView_channelinfo ON songHistory.[channelId] = IRView_channelinfo.[channelID] "); +songHistory LEFT JOIN IRView_channelinfo ON songHistory.[channelId] = IRView_channelinfo.[channelID] \ +order by songHistory.[songPlaySeq] desc "); const QString IR_VIEW_SRH_USERCID(" CREATE VIEW [IR_VIEW_SRH_USERCID] As \ @@ -729,6 +747,14 @@ FROM channelinfo LEFT JOIN urlInfo ON channelinfo.channelID = urlInfo.channelID "); +const QString IR_VIEW_ALL("Create View [IRVIEW_ALL] As \ +select \ +IRView_channelinfo.*,urlInfo.[channelUrl], urlInfo.[bitRate] \ +from \ +IRView_channelInfo \ +LEFT JOIN \ +urlinfo ON IRView_channelinfo.[channelID] = urlInfo.[channelID] "); + /************************************************** * define for drop IRDB VIEW, TABLE AND TRIGGER ***************************************************/ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/searchrltwrapper.h --- a/qtinternetradio/irdb/inc/searchrltwrapper.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/searchrltwrapper.h Mon Oct 04 00:07:46 2010 +0300 @@ -27,6 +27,14 @@ public: /* + * RowData: [direction: in] table row value + * bOpt: [direction: in] true = the db connection should be open; + */ + bool addSearchRlt(const columnMap* const RowData, + bool bOpt = true); + + void addSearchRltFinished(); + /* * RowData: [direction: in]table row value; * condAND: [direction: in]condition for search searchRlt, it is AND relationship in every pair; * condOR: [direction: in]condition for search searchRlt, it is OR relationship in every pair; @@ -69,10 +77,17 @@ * condOR: [direction: in]condition for search channelHistory, it is OR relationship in every pair; * uint: return channelId; */ - uint srhChannelId(QString& condUserCidStr, - const columnMap* const condAND, + uint srhChannelId(const columnMap* const condAND = NULL, const columnMap* const condOR = NULL); - + /* + * create QString List for handle(insert/update) the data come from search view + * channelId: [direction: in] channel id; + * RowData: [direction: in] input data; + * sqlList: [direction: out] return sql string; + */ + void combineSqlStr(const uint& channelId, + const columnMap* const RowData, + QStringList& sqlList); }; #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/inc/urlinfowrapper.h --- a/qtinternetradio/irdb/inc/urlinfowrapper.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/inc/urlinfowrapper.h Mon Oct 04 00:07:46 2010 +0300 @@ -35,9 +35,14 @@ */ bool resetUrlInfo(const columnUrlInfoInsertMap* const RowData, const uint& channelId); - + /* + * aBegin, aBegin is 0, will invoke the action of open db connection; + * aBegin == aEnd, will invoke the action of close db connection; + */ QList* getUrlInfo(const columnMap* const condAND = NULL, - const columnMap* const condOR = NULL); + const columnMap* const condOR = NULL, + int aBegin = 0, + int aEnd = 0); private: /* diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/channelhistorywrapper.cpp --- a/qtinternetradio/irdb/src/channelhistorywrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/channelhistorywrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -75,8 +75,7 @@ return true; } -uint channelHistoryWrapper::srhChannelId(QString& condUserCidStr, - const columnMap* const condAND, +uint channelHistoryWrapper::srhChannelId(const columnMap* const condAND, const columnMap* const condOR) { uint srhCID = 0; @@ -90,12 +89,13 @@ { srhCID = (condOR->value(channelId)).toUInt(); } - +#if 0 if(srhCID) { return srhCID ; } + //channelId column is false //only one case, go to station view, channelUrl and channelNickName //search channelId according to urlinof and channelNickName; @@ -104,14 +104,22 @@ { if( ( !(condAND->value(channelUrl).isEmpty()) )&&( !(condAND->value(channelNickName).isEmpty()) ) ) { + QString escStr; + srhStr = "where "+ colNameView[channelUrl] + " = "; - srhStr = srhStr + "'" + condAND->value(channelUrl) + "' AND " ; + escStr = condAND->value(channelUrl); + escStr.replace('\'', "\'\'"); + srhStr = srhStr + "'" + escStr + "' AND " ; + srhStr = srhStr + colNameView[channelNickName] + " = "; - srhStr = srhStr + "'" + condAND->value(channelNickName) + "'"; + escStr = condAND->value(channelNickName); + escStr.replace('\'', "\'\'"); + srhStr = srhStr + "'" + escStr + "'"; } condUserCidStr = srhStr; } - +#endif + return srhCID; } @@ -136,19 +144,29 @@ columnMap* const RowDataAppend = const_cast(RowData); QList* pImgList = NULL; bool ret = true; + int logoType = 0; - if( NULL == RowData ) + if( ( NULL == RowData )&&(NULL == logoData) ) { return false; } - - if(RowData->isEmpty()) + + if(RowData) { - return false; + if(RowData->isEmpty()) + { + return false; + } } - + if(logoData) + { + if(logoData->isEmpty()) + { + return false; + } + } if( (NULL != condAND)&&(NULL != condOR) ) { return false; @@ -170,11 +188,6 @@ } } - if(cidUserDefined) - { - *cidUserDefined = 0; - } - insSqlStr = "insert into IRBuff "; updSqlStr = "update IRBuff set "; RowDataAppend->insert(opt, QString::number(IRDB_OPT_INSERT)); @@ -183,8 +196,8 @@ if(NULL != logoData) { pImgList = new QList(); - combinePutStr(RowDataAppend, colNameView, insSqlStr, updSqlStr, logoData, pImgList); - *pImgList=logoData->values(); + combinePutStr(RowDataAppend, colNameView, insSqlStr, updSqlStr, logoData, pImgList, &logoType); + //*pImgList=logoData->values(); } else @@ -194,22 +207,22 @@ if( (NULL == condAND)&&(NULL == condOR) ) { - uCid = srhChannelId(condUserCidStr,RowData); + uCid = srhChannelId(RowData); } else //here it must be "update" operation; condition string { - uCid = srhChannelId(condUserCidStr,condAND, condOR); + uCid = srhChannelId(condAND, condOR); combineCondStr(condAND, condOR, colNameView, condSqlStr); } if(uCid) { //updSqlStr += condSqlStr; - m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, uCid, condSqlStr, pImgList)? ret = false:true; + m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, uCid, condSqlStr, pImgList, logoType)? ret = false:true; } else //here deliver the updSqlstr and condSqlStr seperately. { - m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, cidUserDefined, condSqlStr, condUserCidStr, pImgList)?ret = false:true; + m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, cidUserDefined, condSqlStr, condUserCidStr, pImgList, logoType)?ret = false:true; } if(pImgList) @@ -248,7 +261,7 @@ } } - sltSqlStr = "select * from IRView_channelinfo "; + sltSqlStr = "select * from IRVIEW_CHANNELHISTORY "; combineGetStr(condAND, condOR, colNameView,sltSqlStr); pDataSet = new QList(); if( m_pIRDB->selectRow(this, sltSqlStr, pDataSet) ) diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/favoriteswrapper.cpp --- a/qtinternetradio/irdb/src/favoriteswrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/favoriteswrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -120,7 +120,7 @@ } combineGetStr(condAND, condOR, colNameView, sltSqlStr); - sltSqlStr = sltSqlStr + " order by FavSeq desc "; +// sltSqlStr = sltSqlStr + " order by FavSeq desc "; pDataSet = new QList(); if( m_pIRDB->selectRow(this, sltSqlStr, pDataSet) ) { diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/imgwrapper.cpp --- a/qtinternetradio/irdb/src/imgwrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/imgwrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -35,32 +35,35 @@ QString updSqlStr; QList* pImgList = NULL; bool ret = true; + int logoType; if(!channelId) { return false; } - if( NULL == RowData ) + if( ( NULL == RowData )&&(NULL ==logoData) ) { return false; } - - if(RowData->isEmpty()) + if(RowData) { - return false; - } + if(RowData->isEmpty()) + { + return false; + } - if( true != (RowData->value(channelId)).isEmpty() ) - { - return false; - } + if( true != (RowData->value(channelId)).isEmpty() ) + { + return false; + } + } updSqlStr = "update img set "; if(NULL != logoData) { pImgList = new QList(); - combinePutStr(RowData, colNameView, insSqlStr, updSqlStr, logoData, pImgList); + combinePutStr(RowData, colNameView, insSqlStr, updSqlStr, logoData, pImgList, &logoType); } else @@ -71,7 +74,7 @@ //create insSqlstr and updSqlStr in advance; updSqlStr = updSqlStr + "where channelId = " + QString::number(channelId); - m_pIRDB->updRowImg(channelId, updSqlStr, pImgList)? ret = false:true; + m_pIRDB->updRowImg(channelId, updSqlStr, pImgList, logoType)? ret = false:true; if(pImgList) { delete pImgList; @@ -84,7 +87,7 @@ QList* imgWrapper::getImg(const columnMap* const condAND, const columnMap* const condOR) { - QString sltSqlStr = "select * from IRVIEW_channelinfo "; + QString sltSqlStr = "select * from img "; QList* pDataSet = NULL; if( (NULL != condAND)&&(NULL != condOR) ) diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/irdb.cpp --- a/qtinternetradio/irdb/src/irdb.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/irdb.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -41,11 +41,16 @@ #define IRDB_CID_UNEXISTED (0x11) #define IRDB_CID_USER_DEFINE (0xF0000000) +#define INS_CHANNELINFO_FRM_SRHVIEW (0x00) +#define INS_IMG_FRM_SRHVIEW (0x01) +#define INS_SEARCHRLT_FRM_SRHVIEW (0x02) +#define UPD_CHANNELINFO_FRM_SRHVIEW (0x03) +#define UPD_IMG_FRM_SRHVIEW (0x04) IRDB* IRDB::mpIRDBInstance = NULL; QMutex IRDB::mMutex; -IRDB::IRDB(): m_RefCnt(0) +IRDB::IRDB(): m_RefCnt(0),iIRQuery2(NULL) { } @@ -149,15 +154,16 @@ \ <* apImgList) + const QList* apImgList, + const int logoType) { IRDBCHAR ret = IRDB_ERR_NONE; //channelId value 0 don't be used in CIRDB; uint channelId = 0; //sql string for search cid according to nickname and url; QString strSrhCid = IRDBSrhUserCid + condUserCidStr; - QString strSrhDataSet = IRDBSrhCIdFrmView + aCondSqlStr; + QString strSrhDataSet = IRDBSrhCIdFrmChannelInfo + aCondSqlStr; //initialize the channelId for application level; if(retCid) @@ -326,7 +333,7 @@ * for the synchoronization concern, the m_sqlDB can't be closed until all the process is compeleted; * m_sqlDB.close(); */ - ret = chgRowIRDB(aInsSqlStr, aUpdSqlStr, channelId, aCondSqlStr, apImgList, true); + ret = chgRowIRDB(aInsSqlStr, aUpdSqlStr, channelId, aCondSqlStr, apImgList, logoType, true); } /* else { @@ -345,6 +352,7 @@ const uint& channelId, const QString& aCondSqlStr, const QList* apImgList, + const int logoType, bool bPreHandle) { IRDBCHAR ret = IRDB_ERR_NONE; @@ -410,8 +418,25 @@ else { iIRQuery.prepare(aUpdSqlStr); - iIRQuery.bindValue(strBLogo, apImgList->at(bLogoInsert)); - iIRQuery.bindValue(strSLogo, apImgList->at(sLogoInsert)); + //when there are both big and small logo, first insert blogo and next insert slogo is required; + if(IRDB_BOTH_LOGO == logoType) + { + iIRQuery.bindValue(strBLogo, apImgList->at(bLogo)); + iIRQuery.bindValue(strSLogo, apImgList->at(sLogo)); + } + else + { + if( IRDB_BIG_LOGO == logoType&IRDB_BOTH_LOGO ) + { + iIRQuery.bindValue(strBLogo, apImgList->at(0)); + } + if(IRDB_SMALL_LOGO == logoType&IRDB_BOTH_LOGO) + { + iIRQuery.bindValue(strSLogo, apImgList->at(0)); + } + + } + if(false == iIRQuery.exec()) { ret = IRDB_ERR_UPDATE; @@ -432,8 +457,25 @@ else { iIRQuery.prepare(aInsSqlStr); - iIRQuery.bindValue(strBLogo, apImgList->at(bLogoInsert)); - iIRQuery.bindValue(strSLogo, apImgList->at(sLogoInsert)); + //when there are both big and small logo, first insert blogo and next insert slogo is required; + if(IRDB_BOTH_LOGO == logoType) + { + iIRQuery.bindValue(strBLogo, apImgList->at(bLogo)); + iIRQuery.bindValue(strSLogo, apImgList->at(sLogo)); + } + else + { + if( IRDB_BIG_LOGO == logoType&IRDB_BOTH_LOGO ) + { + iIRQuery.bindValue(strBLogo, apImgList->at(0)); + } + if(IRDB_SMALL_LOGO == logoType&IRDB_BOTH_LOGO) + { + iIRQuery.bindValue(strSLogo, apImgList->at(0)); + } + + } + if(false == iIRQuery.exec()) { ret = IRDB_ERR_UPDATE; @@ -517,6 +559,94 @@ } +IRDBCHAR IRDB::handleRstFromSrhView(const uint& channelId, const QStringList& aSqlList, bool bBegin) +{ + QString strIsCIDExist = IRDBSrhCIdCntFrmChannelInfo + QString::number(channelId); + IRDBCHAR ret = IRDB_ERR_NONE; + + if(0 == channelId) + { + return IRDB_CID_UNEXISTED; + } + if(true == bBegin) + { + if(false == openIRDBConnection()) + { + return IRDB_ERR_OPEN; + } + iIRQuery2 = new QSqlQuery(m_sqlDB); + } + + + + //iIRQuery.clear(); + if(false == iIRQuery2->exec(strIsCIDExist)) + { + ret = IRDB_ERR_SELECT; + } + else + { + iIRQuery2->next(); + if(0 != iIRQuery2->value(0).toInt()) + { + ret = IRDB_CID_EXISTED; + } + } + + if(IRDB_CID_EXISTED == ret) + { + ret = IRDB_ERR_NONE; + if( false == iIRQuery2->exec(aSqlList.value(INS_SEARCHRLT_FRM_SRHVIEW)) ) + { + ret = IRDB_ERR_INSERT; + } + //the update string should be excute; + if(false == iIRQuery2->exec(aSqlList.value(UPD_CHANNELINFO_FRM_SRHVIEW))) + { + ret = IRDB_ERR_UPDATE; + } + if(false == iIRQuery2->exec(aSqlList.value(UPD_IMG_FRM_SRHVIEW))) + { + ret = IRDB_ERR_UPDATE; + } + } + else if( IRDB_ERR_NONE == ret) + { + if( false == iIRQuery2->exec(aSqlList.value(INS_CHANNELINFO_FRM_SRHVIEW)) ) + { + ret = IRDB_ERR_INSERT; + } + else + { + if(false == iIRQuery2->exec(aSqlList.value(INS_IMG_FRM_SRHVIEW))) + { + ret = IRDB_ERR_INSERT; + }else + { + if ( false == iIRQuery2->exec(aSqlList.value(INS_SEARCHRLT_FRM_SRHVIEW)) ) + { + ret = IRDB_ERR_INSERT; + } + } + + } + } + + return ret ; + +} + + +void IRDB::closeIRDBConnection() +{ + if( NULL != iIRQuery2) + { + iIRQuery2->clear(); + delete iIRQuery2; + iIRQuery2 = NULL; + } + m_sqlDB.close(); +} IRDBCHAR IRDB::isChannelIdExisted(uint channelId) { @@ -721,7 +851,11 @@ return ret; } -IRDBCHAR IRDB::selectRow(IRDBWrapper* const apWrapper, const QString& aCondStr, QList* pDataSet) +IRDBCHAR IRDB::selectRow(IRDBWrapper* const apWrapper, + const QString& aCondStr, + QList* pDataSet, + int aBegin, + int aEnd) { IRDBCHAR ret = IRDB_ERR_NONE; @@ -730,9 +864,12 @@ ret = IRDB_ERR_SELECT; } - if(false == openIRDBConnection()) - { - return IRDB_ERR_OPEN; + if(0 == aBegin) + { + if(false == openIRDBConnection()) + { + return IRDB_ERR_OPEN; + } } QSqlQuery iIRQuery(m_sqlDB); @@ -755,9 +892,13 @@ ret = IRDB_ERR_WRAPPER; } + - iIRQuery.clear(); - m_sqlDB.close(); + if(aBegin == aEnd) + { + iIRQuery.clear(); + m_sqlDB.close(); + } return ret; } @@ -824,7 +965,10 @@ /* * only update imgUrl, imgLocalFile in img table; */ -IRDBCHAR IRDB::updRowImg(const uint& channelId, const QString& updSqlStr, QList* apImgList) +IRDBCHAR IRDB::updRowImg(const uint& channelId, + const QString& updSqlStr, + QList* apImgList, + const int logoType) { QString strIsCIDExist = IRDBSrhCIdCntFrmChannelInfo + QString::number(channelId) +";"; IRDBCHAR ret = IRDB_ERR_NONE; @@ -858,8 +1002,24 @@ else { iIRQuery.prepare(updSqlStr); - iIRQuery.bindValue(strBLogo, apImgList->at(bLogoInsert)); - iIRQuery.bindValue(strSLogo, apImgList->at(sLogoInsert)); + //when there are both big and small logo, first insert blogo and next insert slogo is required; + if(IRDB_BOTH_LOGO == logoType) + { + iIRQuery.bindValue(strBLogo, apImgList->at(bLogo)); + iIRQuery.bindValue(strSLogo, apImgList->at(sLogo)); + } + else + { + if( IRDB_BIG_LOGO == logoType&IRDB_BOTH_LOGO ) + { + iIRQuery.bindValue(strBLogo, apImgList->at(0)); + } + if(IRDB_SMALL_LOGO == logoType&IRDB_BOTH_LOGO) + { + iIRQuery.bindValue(strSLogo, apImgList->at(0)); + } + + } if(false == iIRQuery.exec()) { ret = IRDB_ERR_UPDATE; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/irdbwrapper.cpp --- a/qtinternetradio/irdb/src/irdbwrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/irdbwrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -132,7 +132,8 @@ QString& insSqlStr, QString& updSqlStr, const logoMap* const logoData, - QList* logoArrayList) + QList* logoArrayList, + int* logoType) { bool bContinue = false; columnMap::const_iterator it; @@ -140,6 +141,7 @@ QString escStr; insSqlStr += "("; + if(NULL != RowData) { bContinue = true; @@ -159,6 +161,14 @@ if(NULL != logoData) { + if(logoType) + { + *logoType = 0x00; // + } + else + { + return; + } itLogoMap = logoData->begin(); while(itLogoMap != logoData->end()) { @@ -166,7 +176,15 @@ { insSqlStr += ","; } - + if(bLogo ==itLogoMap.key()) + { + *logoType += IRDB_BIG_LOGO; + } + if(sLogo ==itLogoMap.key()) + { + *logoType += IRDB_SMALL_LOGO; + } + insSqlStr += colNameLogo[itLogoMap.key()]; ++itLogoMap; } @@ -195,6 +213,7 @@ if(NULL != logoData) { + itLogoMap = logoData->begin(); while(itLogoMap != logoData->end()) { @@ -202,6 +221,7 @@ { insSqlStr += ","; } + insSqlStr = insSqlStr + " :"+colNameLogo[itLogoMap.key()]; *logoArrayList<begin(); while(itLogoMap != logoData->end()) { @@ -247,7 +268,7 @@ updSqlStr += ","; } - updSqlStr = updSqlStr + colNameLogo[itLogoMap.key()] + "=:"+colNameLogo[itLogoMap.key()]; + updSqlStr = updSqlStr + colNameLogo[itLogoMap.key()] + "=:"+colNameLogo[itLogoMap.key()] + " "; ++itLogoMap; } } @@ -264,6 +285,7 @@ { bool bDone = false; columnMap::const_iterator it; + QString escStr; if(NULL != condAND) { @@ -279,8 +301,9 @@ { condSqlStr += " AND "; } - - condSqlStr = condSqlStr + pArryColName[it.key()] + "=" + "'" + it.value()+ "'" ; + escStr = it.value(); + escStr.replace('\'', "\'\'"); + condSqlStr = condSqlStr + pArryColName[it.key()] + "=" + "'" + escStr + "'" ; ++it; } @@ -307,7 +330,8 @@ { condSqlStr += " OR "; } - + escStr = it.value(); + escStr.replace('\'', "\'\'"); condSqlStr = condSqlStr + pArryColName[it.key()] + "=" + "'" + it.value()+ "'" ; ++it; } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/searchrltwrapper.cpp --- a/qtinternetradio/irdb/src/searchrltwrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/searchrltwrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,6 +15,7 @@ #include #include +#include #include "searchrltwrapper.h" #include "irdb.h" @@ -26,6 +27,199 @@ { } +void searchRltWrapper::combineSqlStr(const uint &cid, + const columnMap* const RowData, + QStringList &sqlList) +{ + columnMap::const_iterator it; + QString insSqlstrCnlInfo = "insert into channelInfo( "; + QString insSqlstrImg = "insert into img( "; + QString insSqlstrSrhRlt = "insert into searchrlt( "; + QString escStr; + QString condStr = " where channelId ='" + QString::number(cid) + "' "; + + bool FstOfStatementCnl = true; + bool FstOfStatementImg = true; + + it = RowData->begin(); + while(it != RowData->end()) + { + if(channelId == it.key()) + { + if(false == FstOfStatementCnl) + { + insSqlstrCnlInfo += ", "; + } + + if(false == FstOfStatementImg) + { + insSqlstrImg += ", "; + } + + insSqlstrCnlInfo += colNameView[it.key()]; + insSqlstrImg += colNameView[it.key()]; + insSqlstrSrhRlt += colNameView[it.key()]; + FstOfStatementCnl = false; + FstOfStatementImg = false; + } + + if( (channelName == it.key()) ||(shortDesc == it.key()) ) + { + if(false == FstOfStatementCnl) + { + insSqlstrCnlInfo += ", "; + } + + insSqlstrCnlInfo += colNameView[it.key()]; + FstOfStatementCnl = false; + } + + if(imgUrl == it.key()) + { + if(false == FstOfStatementImg) + { + insSqlstrImg += ", "; + } + + insSqlstrImg += colNameView[it.key()]; + FstOfStatementImg = false; + } + + ++it; + } + + insSqlstrCnlInfo += ") values("; + insSqlstrImg += ") values("; + insSqlstrSrhRlt += ") values("; + FstOfStatementCnl = true; + FstOfStatementImg = true; + + it = RowData->begin(); + while(it != RowData->end()) + { + //here for escape char, + escStr = it.value(); + escStr.replace('\'', "\'\'"); + + if(channelId == it.key()) + { + if(false == FstOfStatementCnl) + { + insSqlstrCnlInfo += ", "; + } + + if(false == FstOfStatementImg) + { + insSqlstrImg += ", "; + } + + insSqlstrCnlInfo = insSqlstrCnlInfo + "'"+ escStr+ "'"; + insSqlstrImg = insSqlstrImg + "'"+ escStr+ "'"; + insSqlstrSrhRlt = insSqlstrSrhRlt + "'"+ escStr+ "'"; + FstOfStatementCnl = false; + FstOfStatementImg = false; + } + + if( (channelName == it.key()) ||(shortDesc == it.key()) ) + { + if(false == FstOfStatementCnl) + { + insSqlstrCnlInfo += ", "; + } + + insSqlstrCnlInfo = insSqlstrCnlInfo + "'"+ escStr+ "'"; + FstOfStatementCnl = false; + } + + if(imgUrl == it.key()) + { + if(false == FstOfStatementImg) + { + insSqlstrImg += ", "; + } + + insSqlstrImg = insSqlstrImg + "'"+ escStr+ "'"; + FstOfStatementImg = false; + } + + ++it; + + } + + insSqlstrImg += ") "; + insSqlstrCnlInfo += ") "; + insSqlstrSrhRlt += ") "; + + QString updSqlStrCnlInfo = "update channelInfo set "; + QString updSqlStrCnlImg = "update img set "; + //part two, create update string; + FstOfStatementCnl = true; + FstOfStatementImg = true; + + it = RowData->begin(); + + while( it != RowData->end()) + { + //here for escape char, + escStr = it.value(); + escStr.replace('\'', "\'\'"); + if( (channelName == it.key()) ||(shortDesc == it.key()) ) + { + if(false == FstOfStatementCnl) + { + updSqlStrCnlInfo += ", "; + } + updSqlStrCnlInfo = updSqlStrCnlInfo + colNameView[it.key()] + "=" + "'" + escStr + "'"; + FstOfStatementCnl = false; + } + if(imgUrl == it.key()) + { + updSqlStrCnlImg = updSqlStrCnlImg + colNameView[it.key()] + "=" + "'" + escStr + "'"; + } + + ++it; + } + updSqlStrCnlInfo += condStr; + updSqlStrCnlImg += condStr; + sqlList<isEmpty()) + { + return false; + } + uCid = srhChannelId(RowData); + + if(0 == uCid) + { + return false; + } + + combineSqlStr(uCid, RowData, sqlStrList); + + return m_pIRDB->handleRstFromSrhView(uCid, sqlStrList, bOpt)? false:true; + +} + +void searchRltWrapper::addSearchRltFinished() +{ + m_pIRDB->closeIRDBConnection(); + return; +} + /* * this fuction don't suport "update" operation for mutliple records ; * if condAND != NULL AND condOR != NULL, illegal operation; @@ -46,6 +240,7 @@ columnMap* const RowDataAppend = const_cast(RowData); QList* pImgList = NULL; bool ret = true; + int logoType = 0; if( NULL == RowData ) { @@ -87,7 +282,7 @@ if(NULL != logoData) { pImgList = new QList(); - combinePutStr(RowDataAppend, colNameView, insSqlStr, updSqlStr, logoData, pImgList); + combinePutStr(RowDataAppend, colNameView, insSqlStr, updSqlStr, logoData, pImgList, &logoType); } else @@ -97,22 +292,22 @@ if( (NULL == condAND)&&(NULL == condOR) ) { - uCid = srhChannelId(condUserCidStr,RowData); + uCid = srhChannelId(RowData); } else //here it must be "update" operation; condition string { - uCid = srhChannelId(condUserCidStr,condAND, condOR); + uCid = srhChannelId(condAND, condOR); combineCondStr(condAND, condOR, colNameView,condSqlStr); } if(uCid) { //updSqlStr += condSqlStr; - m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, uCid, condSqlStr, pImgList)? ret = false:true; + m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, uCid, condSqlStr, pImgList, logoType)? ret = false:true; } else //here deliver the updSqlstr and condSqlStr seperately. { - m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, NULL, condSqlStr, condUserCidStr, pImgList)?ret = false:true; + m_pIRDB->chgRowIRDB(insSqlStr, updSqlStr, NULL, condSqlStr, condUserCidStr, pImgList, logoType)?ret = false:true; } if(pImgList) @@ -212,8 +407,7 @@ return true; } -uint searchRltWrapper::srhChannelId(QString& condUserCidStr, - const columnMap* const condAND, +uint searchRltWrapper::srhChannelId(const columnMap* const condAND, const columnMap* const condOR) { uint srhCID = 0; @@ -227,7 +421,7 @@ { srhCID = (condOR->value(channelId)).toUInt(); } - +#if 0 if(srhCID) { return srhCID ; @@ -248,7 +442,7 @@ } condUserCidStr = srhStr; } - +#endif return srhCID; } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/songhistorywrapper.cpp --- a/qtinternetradio/irdb/src/songhistorywrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/songhistorywrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -163,7 +163,7 @@ QList* songHistoryWrapper::getSongHistory(const columnMap* const condAND, const columnMap* const condOR) { - QString sltSqlStr = "select * from songHistory "; + QString sltSqlStr = "select * from IRVIEW_SONGHISTORY "; QList* pDataSet = NULL; if( (NULL != condAND)&&(NULL != condOR) ) @@ -188,7 +188,7 @@ } combineGetStr(condAND, condOR, colNameView, sltSqlStr); - sltSqlStr = sltSqlStr + " order by songPlaySeq desc "; + pDataSet = new QList(); if( m_pIRDB->selectRow(this, sltSqlStr, pDataSet) ) { diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irdb/src/urlinfowrapper.cpp --- a/qtinternetradio/irdb/src/urlinfowrapper.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irdb/src/urlinfowrapper.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -77,7 +77,9 @@ } QList* urlInfoWrapper::getUrlInfo(const columnMap* const condAND, - const columnMap* const condOR) + const columnMap* const condOR, + int aBegin, + int aEnd) { QString sltSqlStr = "select channelUrl, channelId, bitRate from urlInfo "; QList* pDataSet = NULL; @@ -105,7 +107,7 @@ combineGetStr(condAND, condOR, colNameView, sltSqlStr); pDataSet = new QList(); - if( m_pIRDB->selectRow(this, sltSqlStr, pDataSet) ) + if( m_pIRDB->selectRow(this, sltSqlStr, pDataSet, aBegin, aEnd) ) { delete pDataSet; pDataSet = NULL; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irhswidgetplugin/src/irserviceclient.cpp --- a/qtinternetradio/irhswidgetplugin/src/irserviceclient.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irhswidgetplugin/src/irserviceclient.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -79,6 +79,7 @@ if (0 == mRef) { delete mInstatnce; + mInstatnce = NULL; } mMutex.unlock(); } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqcommon/inc/irqisdsdatastructure.h --- a/qtinternetradio/irqcommon/inc/irqisdsdatastructure.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irqcommon/inc/irqisdsdatastructure.h Mon Oct 04 00:07:46 2010 +0300 @@ -40,7 +40,7 @@ QString shortDescription; QString imageURL; //added for cache search - int channelID; + uint channelID; }; class IRQChannelServerURL @@ -103,8 +103,9 @@ int uniqID; //unique id generated for the preset saved at favourite int type; //0 for user defined 1 for isds type. - int presetId;//isds generated preset id - QString name; //preset name + uint presetId;//isds generated preset id + QString name; //preset name + QString nickName; QString languageCode;//preset language code QString languageName; // preset language QString countryCode;//preset country of origin code diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqcommon/src/irqisdsdatastructure.cpp --- a/qtinternetradio/irqcommon/src/irqisdsdatastructure.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irqcommon/src/irqisdsdatastructure.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -74,6 +74,7 @@ this->languageCode = aOther.languageCode; this->languageName = aOther.languageName; this->name = aOther.name; + this->nickName = aOther.nickName; this->presetId = aOther.presetId; this->type = aOther.type; this->iChannelUrlCount = aOther.iChannelUrlCount; @@ -88,7 +89,7 @@ aStream>>languageCode>>languageName >>countryCode>>countryName >>genreName>>genreId - >>name>>lastModified + >>name>>nickName>>lastModified >>advertisementUrl>>advertisementInUse >>imgUrl>>description>>shortDesc >>musicStoreStatus; @@ -109,7 +110,7 @@ aStream< - #include "irqfavoritesdbexporter.h" class IRQPreset; -class IRQFavoritesDBPrivate; +class favoritesWrapper; +class channelHistoryWrapper; +class urlInfoWrapper; -class IRQFAVORITES_DLL_EXPORT IRQFavoritesDB : public QObject +class IRQFAVORITES_DLL_EXPORT IRQFavoritesDB { -Q_OBJECT -public: - enum PSReason - { - PSCreated, - PSDeleted, - PSModified - }; - public: IRQFavoritesDB(); ~IRQFavoritesDB(); - /* add a preset + /* add a preset to favorites * @param IRQPreset& the isds preset, * @return errcode */ int addPreset(const IRQPreset& aPreset); - /* add a preset manually - * @return errcode - * @param - */ - int addPreset(const QString& aName, const QString& aURL); - - /* get a preset uniq id - * @return - * @param - */ - int getUniqId(int aNum) const; - - /* delete a preset by uniq id + /* delete a preset * @return errcode * @param */ - int deletePreset(int aUniqId); - - /* search a preset by uniqpresetId / isdspresetid - * warning: the function needs further checking - * @return errcode - */ - int searchPreset(int aUniqPresetId, int aIsdsPresetId); - - /* get the previouse preset index in the internal list - * @return the index - */ - int getPreviousPreset(int aIndex); - - /* get the next preset index - * @return the index - */ - int getNextPreset(int aIndex); + int deletePreset(const IRQPreset& aPreset); /* replace with new preset * @return errcode */ - int replacePreset(const IRQPreset& aNewPreset); - - /* @return errcode - */ - int replaceUserDefinedPreset(const IRQPreset& aNewPreset); + void replacePreset(const IRQPreset& aNewPreset); /* change the preset type to user defined * @return errcode */ int makePresetUserDefined(int aChannelId, int aUserDefinedChannelId); - /* get the empty preset left count - * @return the count of empty presets left - */ - int emptyPresetCount() const; - - /* get the max preset count supported now - * @return errcode - */ - int maxPresetCount(); - - /* the interface is not used currently. - **/ - void setMoveStatus(bool aStatus); - - /* the interface is not used currently - */ - bool getMoveStatus(); - /* for CIRPreset is just an interface so we can wrapper it into the IRQPreset. * the interface get the IRQPreset list. The upper layer will free all the items * in the list and the list self*/ QList* getPresets() const; - - /* - * Increase the played times of the preset if it's in the favorites - */ - void increasePlayedTimes(const IRQPreset &aPreset); int renamePreset(const IRQPreset &aPreset, const QString &aNewName); - -signals: - /* - * the signal will triggered when we receive the message that preset is changed - */ - void presetChanged(int aId, int aDataHandler, PSReason aReason); private: - IRQFavoritesDBPrivate * const d_ptr; - - Q_DISABLE_COPY(IRQFavoritesDB) - - friend class IRQFavoritesDBPrivate; + favoritesWrapper *iFavoritesWrapper; + channelHistoryWrapper *iHistoryWrapper; + urlInfoWrapper *iUrlWrapper; }; #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqfavoritesdb/inc/irqfavoritesdb_p.h --- a/qtinternetradio/irqfavoritesdb/inc/irqfavoritesdb_p.h Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef IRQFAVORITESDB_P_H -#define IRQFAVORITESDB_P_H - -#include - -#include "pspresetobserver.h" - -class CIRFavoritesDb; -class IRQPreset; -class IRQFavoritesDB; - -class IRQFavoritesDBPrivate : public MPSPresetObserver -{ -public: - IRQFavoritesDBPrivate(IRQFavoritesDB *aIRQFavorites); - - ~IRQFavoritesDBPrivate(); - - void init(); - - int addPreset(const IRQPreset& aPreset); - - int addPreset(const QString& aName, const QString& aURL); - - int getUniqId(int aNum) const; - - int deletePreset(int aUniqId); - - int searchPreset(int aUniqPresetId, int aIsdsPresetId); - - int getPreviousPreset(int aIndex); - - int getNextPreset(int aIndex); - - int replacePreset(const IRQPreset& aNewPreset); - - int replaceUserDefinedPreset(const IRQPreset& aNewPreset); - - int makePresetUserDefined(int aChannelId, int aUserDefinedChannelId); - - int emptyPresetCount() const; - - int maxPresetCount(); - - void setMoveStatus(bool aStatus); - - bool getMoveStatus(); - - QList* getPresets() const; - - void increasePlayedTimes(const IRQPreset &aPreset); - - int renamePreset(const IRQPreset &aPreset, const QString &aNewName); - -private: - /* from MPSPresetObserver */ - void HandlePresetChangedL(TInt aId, TUid aDataHandler, MPSPresetObserver::TPSReason aType); - - void addPresetL(const IRQPreset& aPreset, int& aRetValue); - - void replacePresetL(const IRQPreset& aNewPreset); - - void replaceUserDefinedPresetL(const IRQPreset& aNewPreset); - - void increasePlayedTimesL(const IRQPreset &aPreset); - - int renamePresetL(const IRQPreset &aPreset, const QString &aNewName); - -private: - IRQFavoritesDB * const q_ptr; - CIRFavoritesDb *mIRFavoritesDb; -}; - -#endif //IRQFAVORITESDB_P_H diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqfavoritesdb/irqfavoritesdb.pro --- a/qtinternetradio/irqfavoritesdb/irqfavoritesdb.pro Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irqfavoritesdb/irqfavoritesdb.pro Mon Oct 04 00:07:46 2010 +0300 @@ -24,19 +24,11 @@ MOC_DIR = moc DEPENDPATH = src -INCLUDEPATH += ../../internetradio2.0/irfavoritesdb/inc \ - ../../internetradio2.0/ircommon/inc \ - ../../internetradio2.0/irpresetplugin/inc \ - ../irqcommon/inc \ - ../../presetserver/include \ - ../../presetserver/clientinc \ - ../../presetserver/serverinc +INCLUDEPATH += ../irqcommon/inc \ + ../irdb/inc - -LIBS += -lirdatastructures \ - -lirfavoritesdb \ - -lirqutility \ - -lpsclient100 +LIBS += -lirdb \ + -lirqutility symbian{ TARGET.UID3 = 0x2002FFBC @@ -47,13 +39,11 @@ #header files list HEADERS += inc/irqfavoritesdb.h \ - inc/irqfavoritesdb_p.h \ inc/irqfavoritesdbexporter.h #source files list -SOURCES += irqfavoritesdb.cpp \ - irqfavoritesdb_p.cpp +SOURCES += irqfavoritesdb.cpp SYMBIAN_PLATFORMS = WINSCW ARMV5 diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqfavoritesdb/src/irqfavoritesdb.cpp --- a/qtinternetradio/irqfavoritesdb/src/irqfavoritesdb.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irqfavoritesdb/src/irqfavoritesdb.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -14,132 +14,157 @@ * Description: * */ -#include "irqfavoritesdb.h" -#include "irqfavoritesdb_p.h" +#include -IRQFavoritesDB::IRQFavoritesDB() : d_ptr(new IRQFavoritesDBPrivate(this)) -{ - d_ptr->init(); +#include "irqfavoritesdb.h" +#include "favoriteswrapper.h" +#include "channelhistorywrapper.h" +#include "urlinfowrapper.h" +#include "irqisdsdatastructure.h" +#include "irqenums.h" + +IRQFavoritesDB::IRQFavoritesDB() +{ + iFavoritesWrapper = new favoritesWrapper; + iHistoryWrapper = new channelHistoryWrapper; + iUrlWrapper = new urlInfoWrapper; } IRQFavoritesDB::~IRQFavoritesDB() { - delete d_ptr; + delete iFavoritesWrapper; + delete iHistoryWrapper; + delete iUrlWrapper; } -//add a preset +//add a preset to favorites //@param IRQPreset& the preset //@return errcode int IRQFavoritesDB::addPreset(const IRQPreset& aPreset) { - return d_ptr->addPreset(aPreset); + bool ret = false; + bool newRow = false; + + columnMap map; + map.insert(channelId, QString::number(aPreset.presetId)); + ret = iFavoritesWrapper->putFavorites(&map, newRow); + + if (!ret) + { + return EIRQErrorNotFound; //presetId is not found + } + + if (newRow) + { + return EIRQErrorNone; + } + else + { + return EIRQErrorAlreadyExist; + } } -//add a preset manually -//@return errcode -//@param -// -int IRQFavoritesDB::addPreset(const QString& aName, const QString& aURL) -{ - return d_ptr->addPreset(aName, aURL); -} - -//get a preset uniq id -//@return errcode -//@param -// -int IRQFavoritesDB::getUniqId(int aNum) const -{ - return d_ptr->getUniqId(aNum); -} - -//delete a preset by uniq id +//delete a preset //@return errcode //@param // -int IRQFavoritesDB::deletePreset(int aUniqId) +int IRQFavoritesDB::deletePreset(const IRQPreset& aPreset) { - return d_ptr->deletePreset(aUniqId); -} + columnMap map; + map.insert(channelId, QString::number(aPreset.presetId)); + bool ret = iFavoritesWrapper->deleteFavorites(&map, NULL); -//search a preset by uniqpresetId / isdspresetid -//warning: the function needs further checking -//@return errcode -// -int IRQFavoritesDB::searchPreset(int aUniqPresetId, int aIsdsPresetId) -{ - return d_ptr->searchPreset(aUniqPresetId, aIsdsPresetId); + if (ret) + { + return EIRQErrorNone; + } + else + { + return EIRQErrorNotFound; + } } -// -//get the previouse preset index in the internal list -//@return the index -// -int IRQFavoritesDB::getPreviousPreset(int aIndex) -{ - return d_ptr->getPreviousPreset(aIndex); -} - -// -//get the next preset index -//@return the index -// -int IRQFavoritesDB::getNextPreset(int aIndex) -{ - return d_ptr->getNextPreset(aIndex); -} - //replace with new preset //@return errcode // -int IRQFavoritesDB::replacePreset(const IRQPreset& aNewPreset) +void IRQFavoritesDB::replacePreset(const IRQPreset& aNewPreset) { - return d_ptr->replacePreset(aNewPreset); -} - -//@return errcode -// -int IRQFavoritesDB::replaceUserDefinedPreset(const IRQPreset& aNewPreset) -{ - return d_ptr->replaceUserDefinedPreset(aNewPreset); + //write the preset data to database + columnMap map; + QString url; + + if (IRQPreset::EIsds == aNewPreset.type) + { + map.insert(channelId, QString::number(aNewPreset.presetId)); + } + map.insert(channelName, aNewPreset.name); + map.insert(languageCode, aNewPreset.languageCode); + map.insert(languageName, aNewPreset.languageName); + map.insert(countryCode, aNewPreset.countryCode); + map.insert(countryName, aNewPreset.countryName); + map.insert(lastModified, aNewPreset.lastModified); + map.insert(musicStoreStatus, aNewPreset.musicStoreStatus); + map.insert(description, aNewPreset.description); + map.insert(shortDesc, aNewPreset.shortDesc); + map.insert(genreId, aNewPreset.genreId); + map.insert(genreName, aNewPreset.genreName); + map.insert(advertisementUrl, aNewPreset.advertisementUrl); + map.insert(advertisementInUse, aNewPreset.advertisementInUse); + map.insert(imgUrl, aNewPreset.imgUrl); + + uint cIdResult = 0; + if (IRQPreset::EIsds == aNewPreset.type) + { + cIdResult = aNewPreset.presetId; + columnMap condAnd; + condAnd.insert(channelId, QString::number(aNewPreset.presetId)); + iHistoryWrapper->putChannelHistory(&map, NULL, NULL, &condAnd); + } + else + { + columnMap condAnd; + condAnd.insert(channelType, QString::number(aNewPreset.type)); + aNewPreset.getChannelUrlAt(0, url); + condAnd.insert(channelUrl, url); + condAnd.insert(channelName, aNewPreset.name); + QList *ids = iHistoryWrapper->getChannelId(&condAnd); + if (ids && ids->count() > 0) + { + //the user-defined preset is already in database + cIdResult = ids->at(0); + condAnd.clear(); + condAnd.insert(channelId, QString::number(cIdResult)); + iHistoryWrapper->putChannelHistory(&map, NULL, NULL, &condAnd); + } + else + { + //the user-defined preset is not in database + iHistoryWrapper->putChannelHistory(&map, &cIdResult); + } + + delete ids; + } + + //write url info to database + columnUrlInfoInsertMap urlmap; + + unsigned int bitrate = 0; + for (int i = 0; i < aNewPreset.getChannelURLCount(); i++) + { + aNewPreset.getChannelBitrate(i, bitrate); + aNewPreset.getChannelUrlAt(i, url); + urlmap.insert(url, bitrate); + } + + iUrlWrapper->resetUrlInfo(&urlmap, cIdResult); } //change the preset type to user defined //@return errcode // -int IRQFavoritesDB::makePresetUserDefined(int aChannelId, int aUserDefinedChannelId) -{ - return d_ptr->makePresetUserDefined(aChannelId, aUserDefinedChannelId); -} - -//get the empty preset left count -//@return the count of empty presets left -// -int IRQFavoritesDB::emptyPresetCount() const +int IRQFavoritesDB::makePresetUserDefined(int /*aChannelId*/, int /*aUserDefinedChannelId*/) { - return d_ptr->emptyPresetCount(); -} - -//get the max preset count supported now -//@return errcode -// -int IRQFavoritesDB::maxPresetCount() -{ - return d_ptr->maxPresetCount(); -} - -//the interface is not used currently. -// -void IRQFavoritesDB::setMoveStatus(bool aStatus) -{ - d_ptr->setMoveStatus(aStatus); -} - -//the interface is not used currently -// -bool IRQFavoritesDB::getMoveStatus() -{ - return d_ptr->getMoveStatus(); + return 0; } //for CIRPreset is just an interface so we can wrapper it into the IRQPreset. @@ -148,18 +173,84 @@ // QList* IRQFavoritesDB::getPresets() const { - return d_ptr->getPresets(); -} - -/* - * Increase the played times of the preset if it's in the favorites - */ -void IRQFavoritesDB::increasePlayedTimes(const IRQPreset &aPreset) -{ - d_ptr->increasePlayedTimes(aPreset); + favoritesWrapper favorites; + QList *dataSet = favorites.getFavorites(); + if (NULL == dataSet) + { + return NULL; + } + + QList *presetList = NULL; + if (dataSet->count() > 0) + { + presetList = new QList; + int dataSize = dataSet->count(); + for (int i = 0; i < dataSize; ++i) + { + IRQPreset *preset = new IRQPreset; + bool ok = false; + QVariant *row = dataSet->at(i); + preset->type = row[channelType].toInt(&ok); + preset->presetId = row[channelId].toUInt(&ok); + preset->name = row[channelName].toString(); + preset->nickName = row[channelNickName].toString(); + preset->languageCode = row[languageCode].toString(); + preset->languageName = row[languageName].toString(); + preset->countryCode = row[countryCode].toString(); + preset->countryName = row[countryName].toString(); + preset->lastModified = row[lastModified].toString(); + preset->musicStoreStatus = row[musicStoreStatus].toString(); + preset->description = row[description].toString(); + preset->shortDesc = row[shortDesc].toString(); + preset->genreName = row[genreName].toString(); + preset->genreId = row[genreId].toString(); + preset->advertisementInUse = row[advertisementInUse].toString(); + preset->advertisementUrl = row[advertisementUrl].toString(); + preset->imgUrl = row[imgUrl].toString(); + + delete []row; + + //get url info and write to preset + urlInfoWrapper urlInfo; + columnMap cond; + cond.insert(channelId, QString::number(preset->presetId)); + QList *urlDataSet = urlInfo.getUrlInfo(&cond, NULL, i, dataSize-1); + int urlSize = urlDataSet->count(); + for (int j = 0; j < urlSize; ++j) + { + IRQChannelServerURL url; + url.url = urlDataSet->at(j)[channelUrl_URL].toString(); + url.bitrate = urlDataSet->at(j)[bitRate_URL].toInt(); + preset->insertChannelServer(url); + delete []urlDataSet->at(j); + } + delete urlDataSet; + + presetList->append(preset); + } + } + + delete dataSet; + + return presetList; } int IRQFavoritesDB::renamePreset(const IRQPreset &aPreset, const QString &aNewName) { - return d_ptr->renamePreset(aPreset, aNewName); + channelHistoryWrapper wrapper; + columnMap map; + + map.insert(channelNickName, aNewName); + columnMap condAND; + condAND.insert(channelId, QString::number(aPreset.presetId)); + bool ret = wrapper.putChannelHistory(&map, NULL, NULL, &condAND); + + if (ret) + { + return EIRQErrorNone; + } + else + { + return EIRQErrorGeneral; + } } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqfavoritesdb/src/irqfavoritesdb_p.cpp --- a/qtinternetradio/irqfavoritesdb/src/irqfavoritesdb_p.cpp Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,284 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#include "irfavoritesdb.h" -#include "irqfavoritesdb.h" -#include "irqfavoritesdb_p.h" -#include "irqenums.h" -#include "irqutility.h" -#include "irqisdsdatastructure.h" -#include "irpreset.h" -#include "irisdspreset.h" - -IRQFavoritesDBPrivate::IRQFavoritesDBPrivate(IRQFavoritesDB *aIRQFavorites) : q_ptr(aIRQFavorites), - mIRFavoritesDb(NULL) -{ -} - -IRQFavoritesDBPrivate::~IRQFavoritesDBPrivate() -{ - delete mIRFavoritesDb; - mIRFavoritesDb = NULL; -} - -void IRQFavoritesDBPrivate::init() -{ - TRAPD(err, mIRFavoritesDb = CIRFavoritesDb::NewL()); - if (KErrNone != err) - { - return; - } - - /* add self to the observers of the CIRFavoritesDb. When the call back function - * is called, it means that preset is changed and we send a signal to the uper layer*/ - mIRFavoritesDb->AddObserver(*this); -} - -int IRQFavoritesDBPrivate::addPreset(const IRQPreset& aPreset) -{ - int returnCode = 0; - TRAPD(err, addPresetL(aPreset, returnCode)); - - int result = 0; - if (KErrNone != err) - { - IRQUtility::convertSError2QError(err, result); - } - else - { - IRQUtility::convertSError2QError(returnCode, result); - } - return result; -} - -int IRQFavoritesDBPrivate::addPreset(const QString& aName, const QString& aURL) -{ - if (0 == aName.size() || 0 == aURL.size()) - { - return EIRQErrorBadParameter; - } - - TPtrC16 nameptr(reinterpret_cast (aName.utf16())); - TPtrC16 urlptr(reinterpret_cast (aURL.utf16())); - int returnCode = 0; - TRAPD(err, mIRFavoritesDb->AddPresetL(nameptr, urlptr, returnCode)); - - int result = 0; - if (KErrNone != err) - { - IRQUtility::convertSError2QError(err, result); - } - else - { - IRQUtility::convertSError2QError(returnCode, result); - } - return result; -} - -int IRQFavoritesDBPrivate::getUniqId(int aNum) const -{ - if ( aNum < 0 || aNum >= mIRFavoritesDb->iFavPresetList.Count()) - { - return EIRQErrorBadParameter; - } - - //the preset's uniqid is equal to the CIRPreset's id - return mIRFavoritesDb->iFavPresetList[aNum]->Id(); -} - -int IRQFavoritesDBPrivate::deletePreset(int aUniqId) -{ - TRAPD(err, (mIRFavoritesDb->DeletePresetL(aUniqId))); - int result = 0; - IRQUtility::convertSError2QError(err, result); - return result; -} - -int IRQFavoritesDBPrivate::searchPreset(int aUniqPresetId, int aIsdsPresetId) -{ - int returnCode = 0; - int result = 0; //for QT - returnCode = mIRFavoritesDb->SearchPreset(aUniqPresetId, aIsdsPresetId); - IRQUtility::convertSError2QError(returnCode, result); - return result; -} - -int IRQFavoritesDBPrivate::getPreviousPreset(int aIndex) -{ - return mIRFavoritesDb->GetPreviousPreset(aIndex); -} - -int IRQFavoritesDBPrivate::getNextPreset(int aIndex) -{ - return mIRFavoritesDb->GetNextPreset(aIndex); -} - -int IRQFavoritesDBPrivate::replacePreset(const IRQPreset& aNewPreset) -{ - TRAPD(err, replacePresetL(aNewPreset)); - int result = 0; - IRQUtility::convertSError2QError(err, result); - return result; -} - -int IRQFavoritesDBPrivate::replaceUserDefinedPreset(const IRQPreset& aNewPreset) -{ - TRAPD(err, replaceUserDefinedPresetL(aNewPreset)); - int result = 0; - IRQUtility::convertSError2QError(err, result); - return result; -} - -int IRQFavoritesDBPrivate::makePresetUserDefined(int aChannelId, int aUserDefinedChannelId) -{ - TRAPD(err, mIRFavoritesDb->MakePresetUserDefinedL(aChannelId, aUserDefinedChannelId)); - int result = 0; - IRQUtility::convertSError2QError(err, result); - return result; -} - -int IRQFavoritesDBPrivate::emptyPresetCount() const -{ - return mIRFavoritesDb->EmptyPresetCount(); -} - -int IRQFavoritesDBPrivate::maxPresetCount() -{ - return mIRFavoritesDb->MaxPresetCount(); -} - -void IRQFavoritesDBPrivate::setMoveStatus(bool aStatus) -{ - mIRFavoritesDb->SetMoveStatus(aStatus); -} - -bool IRQFavoritesDBPrivate::getMoveStatus() -{ - if (mIRFavoritesDb->GetMoveStatus()) - { - return true; - } - else - { - return false; - } -} - -QList* IRQFavoritesDBPrivate::getPresets() const -{ - QList * presetList = new QList (); - const RIRPresetArray& cirPresetList = mIRFavoritesDb->GetAllSortedPresets(); - int counts = cirPresetList.Count(); - for (int i = 0; i < counts; i++) - { - IRQPreset *irqPreset = new IRQPreset(); - IRQUtility::convertCIRPreset2IRQPreset(*(cirPresetList[i]), *irqPreset); - presetList->append(irqPreset); - } - return presetList; -} - -void IRQFavoritesDBPrivate::increasePlayedTimes(const IRQPreset &aPreset) -{ - TRAP_IGNORE(increasePlayedTimesL(aPreset)); -} - -int IRQFavoritesDBPrivate::renamePreset(const IRQPreset &aPreset, const QString &aNewName) -{ - int returnCode = 0; - TRAPD(err, returnCode = renamePresetL(aPreset, aNewName)); - - int result = 0; - if (KErrNone != err) - { - IRQUtility::convertSError2QError(err, result); - } - else - { - IRQUtility::convertSError2QError(returnCode, result); - } - return result; -} - -/* from MPSPresetObserver */ -void IRQFavoritesDBPrivate::HandlePresetChangedL(TInt aId, TUid aDataHandler, MPSPresetObserver::TPSReason aType) -{ - IRQFavoritesDB::PSReason reason = IRQFavoritesDB::PSCreated; - switch (aType) - { - case EPSCreated: - reason = IRQFavoritesDB::PSCreated; - break; - - case EPSDeleted: - reason = IRQFavoritesDB::PSDeleted; - break; - - case EPSModified: - reason = IRQFavoritesDB::PSModified; - break; - - default: - Q_ASSERT(false); - break; - } - - emit q_ptr->presetChanged(aId, aDataHandler.iUid, reason); -} - -void IRQFavoritesDBPrivate::addPresetL(const IRQPreset& aPreset, int& aRetValue) -{ - CIRIsdsPreset * cirPreset = CIRIsdsPreset::NewLC(); - IRQUtility::convertIRQPreset2CIRIsdsPreset(aPreset, *cirPreset); - mIRFavoritesDb->AddPresetL(*cirPreset, aRetValue); - CleanupStack::PopAndDestroy(cirPreset); -} - -void IRQFavoritesDBPrivate::replacePresetL(const IRQPreset& aNewPreset) -{ - CIRIsdsPreset * cirPreset = CIRIsdsPreset::NewLC(); - IRQUtility::convertIRQPreset2CIRIsdsPreset(aNewPreset, *cirPreset); - mIRFavoritesDb->ReplacePresetL(*cirPreset); - CleanupStack::PopAndDestroy(cirPreset); -} - -void IRQFavoritesDBPrivate::replaceUserDefinedPresetL(const IRQPreset& aNewPreset) -{ - CIRIsdsPreset *cirPreset = CIRIsdsPreset::NewLC(); - IRQUtility::convertIRQPreset2CIRIsdsPreset(aNewPreset, *cirPreset); - mIRFavoritesDb->ReplaceUserDefinedPresetL(*cirPreset); - CleanupStack::PopAndDestroy(cirPreset); -} - -void IRQFavoritesDBPrivate::increasePlayedTimesL(const IRQPreset &aPreset) -{ - CIRIsdsPreset * cirPreset = CIRIsdsPreset::NewLC(); - IRQUtility::convertIRQPreset2CIRIsdsPreset(aPreset, *cirPreset); - mIRFavoritesDb->IncreasePlayedTimesL(*cirPreset); - CleanupStack::PopAndDestroy(cirPreset); -} - -int IRQFavoritesDBPrivate::renamePresetL(const IRQPreset &aPreset, const QString &aNewName) -{ - CIRIsdsPreset * cirPreset = CIRIsdsPreset::NewLC(); - IRQUtility::convertIRQPreset2CIRIsdsPreset(aPreset, *cirPreset); - TPtrC newName(reinterpret_cast(aNewName.utf16()), aNewName.length()); - int ret = mIRFavoritesDb->RenamePresetL(*cirPreset, newName); - CleanupStack::PopAndDestroy(cirPreset); - - return ret; -} diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqmediaplayer/src/irqmmfadapter.cpp --- a/qtinternetradio/irqmediaplayer/src/irqmmfadapter.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/irqmediaplayer/src/irqmmfadapter.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -45,6 +45,7 @@ ,iQMetaData(NULL) ,iPrepareTimer(NULL), iStereoEffect(NULL) { + LOG_METHOD; iPlayState = EStopped; } @@ -56,6 +57,7 @@ // IRQMMFAdapter::~IRQMMFAdapter() { + LOG_METHOD; destroyPlayer(); delete iQMetaData; @@ -87,11 +89,13 @@ TRAPD(error, playL(aUrl, aApId)); if (NULL == iQMetaData) { + LOG("Error Occured(EIRQErrorOutOfMemory)"); emit errorOccured(EIRQErrorOutOfMemory); } if (KErrNone != error) { + LOG_FORMAT("Error Occured = %d", (int)error); emit errorOccured(EIRQPlayerErrorGeneral); } } @@ -103,6 +107,8 @@ // void IRQMMFAdapter::playL(const QString &aUrl, int aApId) { + LOG_METHOD; + // Save stream Url if (NULL == iQMetaData) { @@ -128,6 +134,7 @@ stop(); // Open url + LOG("CVideoPlayerUtility::OpenUrlL(stationUrl, aApId, KNullDesC8, KUidController)"); iVideoPlayer->OpenUrlL(stationUrl, aApId, KNullDesC8, KUidController); iPlayState = EOpenning; } @@ -140,8 +147,11 @@ // void IRQMMFAdapter::stop() { + LOG_METHOD; + if (iVideoPlayer && EStopped != iPlayState) { + LOG("Stop the prepare timeout timer"); if (iPrepareTimer) { if (iPrepareTimer->IsActive()) @@ -150,6 +160,8 @@ } } + LOG("CVideoPlayerUtility::Stop()"); + LOG("CVideoPlayerUtility::Close()"); iVideoPlayer->Stop(); iVideoPlayer->Close(); iPlayState = EStopped; @@ -165,6 +177,7 @@ void IRQMMFAdapter::setVolume(int aVolume) { LOG_METHOD; + if (iVideoPlayer && iPlayState > EOpenning) { // aVolume is a percentage @@ -178,9 +191,11 @@ } int volume = aVolume*iVideoPlayer->MaxVolume()/KVolumeMaxPercentage; + LOG_FORMAT("CVideoPlayerUtility::SetVolumeL(%d)", volume); TRAPD(error, iVideoPlayer->SetVolumeL(volume)); if (KErrNone != error) { + LOG_FORMAT("Error Occured = %d", (int)error); emit errorOccured(EIRQPlayerErrorGeneral); } } @@ -194,6 +209,8 @@ // int IRQMMFAdapter::getVolume() { + LOG_METHOD; + int volume = KVolumeMinPercentage; if (iVideoPlayer && iPlayState > EOpenning) @@ -217,6 +234,7 @@ void IRQMMFAdapter::enableStereoEffect() { + LOG_METHOD; if (IRQPlayerAdapterInterface::EPlaying != iPlayState) { return; @@ -227,6 +245,7 @@ void IRQMMFAdapter::disableStereoEffect() { + LOG_METHOD; if (iStereoEffect) { if (iStereoEffect->IsEnabled()) @@ -234,6 +253,7 @@ TRAPD(error, iStereoEffect->DisableL()); if (KErrNone != error) { + LOG_FORMAT("Error Occured = %d", (int)error); emit errorOccured(EIRQPlayerErrorSetStereoFailed); } delete iStereoEffect; @@ -264,6 +284,7 @@ } // Prepare to playback + LOG("CVideoPlayerUtility::Prepare()"); iVideoPlayer->Prepare(); iPlayState = EConnecting; @@ -276,9 +297,11 @@ TTimeIntervalMicroSeconds32 interval(KConnectingTime); iPrepareTimer->Start(interval,interval, TCallBack(IRQMMFAdapter::isPrepareCompleted,this)); + LOG_FORMAT("Start the prepare timeout timer = %d sec", (int)interval.Int()/1000000); } else { + LOG_FORMAT("Error Occured = %d", (int)aError); emit errorOccured(EIRQPlayerErrorConnectingFailed); } } @@ -294,6 +317,7 @@ { LOG_METHOD; // Cancel the previous request if pending + LOG("Stop the prepare timeout timer"); if (iPrepareTimer->IsActive()) { iPrepareTimer->Cancel(); @@ -315,21 +339,25 @@ } // Send signal ConnectionEstablished + LOG_FORMAT("bit rate = %d", iQMetaData->getBitrate()); emit connectionEstablished(iQMetaData->getBitrate()); // Set specific event to get meta data from player setMetadataEventConfig(); // Start playback + LOG("CVideoPlayerUtility::Play()"); iVideoPlayer->Play(); iPlayState = EBuffering; } else if (KErrServerBusy == aError) { + LOG("Error Occured(EIRQPlayerErrorServerFull)"); emit errorOccured(EIRQPlayerErrorServerFull); } else { + LOG_FORMAT("Error Occured = %d", (int)aError); emit errorOccured(EIRQPlayerErrorConnectingFailed); } } @@ -347,6 +375,7 @@ LOG_METHOD; if (KErrNone != aError) { + LOG_FORMAT("Error Occured = %d", (int)aError); emit errorOccured(EIRQPlayerErrorGeneral); } } @@ -360,40 +389,56 @@ void IRQMMFAdapter::MvpuoEvent(TMMFEvent const & aEvent) { LOG_METHOD; - LOG_FORMAT( "aevent is %d", (int)aEvent); if (KMMFEventCategoryVideoPlayerGeneralError == aEvent.iEventType) { + LOG("Event Type = KMMFEventCategoryVideoPlayerGeneralError"); switch (aEvent.iErrorCode) { case KErrHardwareNotAvailable: + LOG("Event Error Code = KErrHardwareNotAvailable"); + emit errorOccured(EIRQPlayerErrorAudioDeviceLost); + break; case KErrMMAudioDevice: // Higher priority application has taken over the // audio device. --> Do stop. + LOG("Event Error Code = KErrMMAudioDevice"); emit errorOccured(EIRQPlayerErrorAudioDeviceLost); break; case KErrDisconnected: + LOG("Event Error Code = KErrDisconnected"); emit errorOccured(EIRQPlayerErrorConnectionLost); break; - case KErrTimedOut: + case KErrTimedOut: + LOG("Event Error Code = KErrTimedOut"); emit errorOccured(EIRQPlayerErrorTimeOut); break; - case KErrServerBusy: + case KErrServerBusy: + LOG("Event Error Code = KErrServerBusy"); emit errorOccured(EIRQPlayerErrorServerFull); break; default: + LOG_FORMAT("Event Error Code = %d", (int)aEvent.iErrorCode); emit errorOccured(EIRQPlayerErrorGeneral); break; } } else if (KMMFRefreshMetaData == aEvent.iEventType) { + LOG("Event Type = KMMFRefreshMetaData"); + LOG_FORMAT( "Event Error Code = %d", (int)aEvent.iErrorCode); // Get refreshed meta data TRAPD(error, getRefreshedMetaDataL(aEvent.iErrorCode)); if (KErrNone != error) { + LOG_FORMAT("Get MetaData Error Occured = %d", (int)error); emit errorOccured(EIRQPlayerErrorGeneral); } } + else + { + LOG_FORMAT("Event Type = %d", (int)aEvent.iEventType.iUid); + LOG_FORMAT("Event Error Code = %d", (int)aEvent.iErrorCode); + } } // --------------------------------------------------------------------------- @@ -404,6 +449,7 @@ // void IRQMMFAdapter::MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError) { + LOG_METHOD; Q_UNUSED(aFrame); Q_UNUSED(aError); } @@ -420,15 +466,18 @@ // Get buffering progress and send it to application int percentageComplete = 0; + LOG("CVideoPlayerUtility::GetVideoLoadingProgressL()"); TRAPD(error, iVideoPlayer->GetVideoLoadingProgressL(percentageComplete)); if (KErrNone == error) { // Send signal to UpdateProgress + LOG_FORMAT("Loading Percentage Complete = %d", percentageComplete); emit percentageBuffered(percentageComplete); } else { + LOG_FORMAT("Error Occured = %d", (int)error); emit errorOccured(EIRQPlayerErrorGeneral); } } @@ -458,6 +507,7 @@ LOG_METHOD; if (iQMetaData) { + LOG("CVideoPlayerUtility::MetaDataEntryL()"); CMMFMetaDataEntry* pMetadataEntry = iVideoPlayer->MetaDataEntryL(index); QString entryName = QString::fromUtf16(pMetadataEntry->Name().Ptr(), @@ -493,9 +543,13 @@ // void IRQMMFAdapter::createPlayerL() { + LOG_METHOD; + + LOG("CVideoPlayerUtility::NewL()"); // Create player instance iVideoPlayer = CVideoPlayerUtility2::NewL(*this,KAudioPriorityAudioPlaybackStreaming , (TMdaPriorityPreference)KAudioPrefRealOneStreaming); + LOG("CVideoPlayerUtility::RegisterForVideoLoadingNotification()"); // Register loading notification iVideoPlayer->RegisterForVideoLoadingNotification(*this); } @@ -507,6 +561,7 @@ // void IRQMMFAdapter::destroyPlayer() { + LOG_METHOD; delete iVideoPlayer; iVideoPlayer = NULL; } @@ -518,10 +573,12 @@ // void IRQMMFAdapter::setMetadataEventConfig() { + LOG_METHOD; TMMFMessageDestinationPckg destinationPckg(KUidInterfaceMMFControllerMetadataEventMsg); TPckgBuf metadataEventPckg(EMMFEnableMetadataEvent); // Enable meta data event. + LOG("CVideoPlayerUtility::CustomCommandSync(EMMFSetMetadataEventConfig)"); iVideoPlayer->CustomCommandSync(destinationPckg, EMMFSetMetadataEventConfig, metadataEventPckg, @@ -535,6 +592,8 @@ // TInt IRQMMFAdapter::isPrepareCompleted(TAny* aPtr) { + LOG_METHOD; + LOG("Prepare timeout timer call back function"); IRQMMFAdapter* self = static_cast(aPtr); if (self) { @@ -551,6 +610,7 @@ void IRQMMFAdapter::checkPrepare() { LOG_METHOD; + LOG("Stop the prepare timeout timer"); if (iPrepareTimer->IsActive()) { // Cancel the previous request if pending @@ -559,6 +619,7 @@ if (EConnecting == iPlayState) { + LOG("Error Occured(EIRQPlayerErrorConnectingFailed)"); emit errorOccured(EIRQPlayerErrorConnectingFailed); stop(); } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqsonghistory/inc/irqsonghistoryengine.h --- a/qtinternetradio/irqsonghistory/inc/irqsonghistoryengine.h Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ -#ifndef IRQSONGHISTORYENGINE_H_ -#define IRQSONGHISTORYENGINE_H_ - -#include - -class IRQMetaData; -class IRQPreset; -class IRQSongHistoryInfo; -class CIRSongHistoryDb; -class IRQSongInfo; - -/** -* Engine component for Internet Radio SongHistory. -*/ -class IRQSongHistoryEngine : public QObject -{ - Q_OBJECT - -public: - - IMPORT_C static IRQSongHistoryEngine* openInstance(); - IMPORT_C void closeInstance(); - - /** - * Get all history from daba base - * @param QList - */ - IMPORT_C void getAllHistory(QList& aSongHistoryArr); - - /** - * this is songs' get, the above will be changed to the stations only - */ - IMPORT_C void getAllSongHistory(QList& aSongHistoryArr); - - /** - * Clear all history in data base - */ - IMPORT_C int clearAllHistory(); - - IMPORT_C int clearAllSongHistory(); - - /** - * Called by the UI when a particular channel has been removed from the ISDS. - */ - IMPORT_C void syncHistory(int aChannelId); - - /** - * Called by the UI when a particular channel has been changed in the ISDS. - */ - - IMPORT_C void updateSongHistoryDb(int aChannelId, - const QString& aChannelName, const QString& aChannelUrl, - const QString& aImageUrl, const QString& aGenreName, - const QString& aCountryName, const QString& aLanguageName, - const QString& aMusicFlag); - - /** - * Connected with play controller with the song name changed. - * @param aMetaData The meta data contains song name, artist and bitrate. - * @param aPreset The preset contains other information. - */ - IMPORT_C void handleMetaDataReceived(const IRQMetaData& aMetaData, const IRQPreset& aPreset); - /** - * Connected with play controller with the song name changed. - * @param aMetaData The meta data contains song name, artist and bitrate. - * @param aMusicshopStatus The music shop status of the song - */ - IMPORT_C void handleSongMetaDataReceived(const IRQMetaData& aMetaData, const IRQPreset& preset); - - /* - * delete one item from the station history db - * @param aIndex the index of the item need deleted - */ - IMPORT_C bool deleteOneItem(int aIndex); - - /* - * delete one item from the song history db - * @param aIndex the index of the item need deleted - */ - IMPORT_C bool deleteOneSongHistoryItem(int aIndex); - -private: - - enum TSongHistoryItemChange - { - ENOCHANGE = 0, - ECHANNELCHANGED, - EMETADATACHANGED, - EBLANKENTRIES - }; - -private: - - /** - * Creates IRQSongHistoryEngine instance - */ - static IRQSongHistoryEngine* createInstanceL(); - - void constructL(); - - /** - * Constructor. - */ - IRQSongHistoryEngine(); - - /** - * Destructor. - */ - ~IRQSongHistoryEngine(); - - TSongHistoryItemChange detectSongHistoryItemChangesL(const IRQMetaData& aMetaData, const QString& aChannelName); - - void handleMetaDataReceivedL(const IRQMetaData& aMetaData, const IRQPreset& aPreset); - void getAllHistoryL(QList& aSongHistoryArr); - void handleSongMetaDataReceivedL(const IRQMetaData& aMetaData, const IRQPreset& aPreset); - void getAllSongHistoryL(QList& aSongHistoryArr); - -private: - - /** An instance of songhistory database. */ - CIRSongHistoryDb* iSongHistoryDb; - - /** - * Number of objects currently referring to the singleton object IRQSongHistoryEngine - */ - int iSingletonInstances; -}; - -#endif //IRQSONGHISTORYENGINE_H_ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqsonghistory/inc/irqsonghistoryinfo.h --- a/qtinternetradio/irqsonghistory/inc/irqsonghistoryinfo.h Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,319 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ -#ifndef IRQSONGHISTORYINFO_H_ -#define IRQSONGHISTORYINFO_H_ - -#include - -/** - * SongHistory meta data information wrapper. - */ -class IRQSongHistoryInfo -{ -public: - - /** - * Default constructor. - */ - IMPORT_C IRQSongHistoryInfo(); - - /** - *IRQSongHistoryInfo::~IRQSongHistoryInfo() - *standard C++ destructor - */ - IMPORT_C ~IRQSongHistoryInfo(); - - /** - *IRQSongHistoryInfo::getArtistName() - *Function to get artist name from a TDesC - *@return QString& instance - */ - IMPORT_C const QString& getArtistName() const; - - /** - *IRQSongHistoryInfo::getSongName() - *Function to get song name from a TDesC - *@return QString& instance - */ - IMPORT_C const QString& getSongName() const; - - /** - *IRQSongHistoryInfo::getStreamUrl() - *Function to get url name from a TDesC - *@return QString& instance - */ - IMPORT_C const QString& getStreamUrl() const; - - /** - *IRQSongHistoryInfo::getChannelName() - *Function to get channel name from a TDesC - *@return QString& instance - */ - IMPORT_C const QString& getChannelName() const; - - /** - *IRQSongHistoryInfo::getChannelDesc() - *Function to get channel Description - *@return QString& instance - */ - IMPORT_C const QString& getChannelDesc() const; - - /** - *IRQSongHistoryInfo::getImageURL() - *Function to get channel image URL - *@return QString& instance - */ - IMPORT_C const QString& getImageUrl() const; - /** - *IRQSongHistoryInfo::getGenreName() - *Function to get channel genre name - *@return QString& instance - */ - IMPORT_C const QString& getGenreName() const; - /** - *IRQSongHistoryInfo::getCountryName() - *Function to get channel country Name - *@return QString& instance - */ - IMPORT_C const QString& getCountryName() const; - /** - *IRQSongHistoryInfo::getLanguageName() - *Function to get channel language name - *@return QString& instance - */ - IMPORT_C const QString& getLanguageName() const; - - /** - *IRQSongHistoryInfo::getMusicStoreStatus() - *Function to get channel MusicStoreStatus - *@return QString& instance - */ - IMPORT_C const QString& getMusicStoreStatus() const; - - /** - *IRQSongHistoryInfo::getChannelType() - *Function to get channel Type - *@return int channeltype - */ - IMPORT_C int getChannelType() const; - - /** - *IRQSongHistoryInfo::getChannelId() - *Function to get channel Id - *@return int channelId - */ - IMPORT_C int getChannelId() const; - - /** - *IRQSongHistoryInfo::getBitrate() - *Function to get channel bitrate - *@return int bitrate - */ - IMPORT_C int getBitrate() const; - - /** - *IRQSongHistoryInfo::setHistoryInfoL() - *Function to set songhistory info - */ - void setHistoryInfo(const QString& aArtistName, - const QString& aSongName, - const QString& aStreamUrl, - const QString& aChannelName, - const QString& aChannelDesc, - const QString& aImageUrl, - const QString& aGenreName, - const QString& aCountryName, - const QString& aLanguageName, - const QString& aMusicStoreStatus, - int aChannelType, - int aChannelId, - int aBitrate); - - /** - *IRQSongHistoryInfo::setArtistName() - *Function to set artist name from a QString - *@param QString aArtistName - */ - void setArtistName(const QString& aArtistName); - - /** - *IRQSongHistoryInfo::setSongName() - *Function to set song name from a QString - *@param QString aSongName - */ - void setSongName (const QString& aSongName); - - /** - *IRQSongHistoryInfo::setStreamUrl() - *Function to set stream url from a QString - *@param QString aStreamUrl - */ - void setStreamUrl(const QString& aStreamUrl); - - /** - *IRQSongHistoryInfo::setChannelName() - *Function to set channel name from a QString - *@param QString aChannelName - */ - void setChannelName(const QString& aChannelName); - - /** - *IRQSongHistoryInfo::setChannelDesc() - *Function to set channel Description - * @param QString aChannelDesc - */ - void setChannelDesc(const QString& aChannelDesc); - - /** - *IRQSongHistoryInfo::setImageURL() - *Function to set channel image URL - * @param QString aImageUrl - */ - void setImageUrl(const QString& aImageUrl); - - /** - *IRQSongHistoryInfo::setGenreName() - *Function to set channel genre name - * @param QString aGenreName - */ - void setGenreName(const QString& aGenreName); - - /** - *IRQSongHistoryInfo::setCountryName() - *Function to set channel country name - * @param QString aCountryName - */ - void setCountryName(const QString& aCountryName); - - /** - *IRQSongHistoryInfo::setLanguageName() - *Function to set channel language name - * @param QString aLanguageName - */ - void setLanguageName(const QString& aLanguageName); - - /** - *IRQSongHistoryInfo::setMusicStoreStatus() - *Function to set Channel MusicStoreStatus - *@param QString aMusicStoreStatus - */ - void setMusicStoreStatus(const QString& aMusicStoreStatus); - - /** - *IRQSongHistoryInfo::setChannelType() - *Function to set channel Type - *@param int aChannelType - */ - void setChannelType(int aChannelType); - - /** - *IRQSongHistoryInfo::setChannelId() - *Function to set channel Id - *@param int aChannelId - */ - void setChannelId(int aChannelId); - - /** - *IRQSongHistoryInfo::setBitrate() - *Function to set channel bitrate - *@param int aBitrate - */ - void setBitrate(int aBitrate); - -private: - - /** - * The name of the artist. - */ - QString iArtistName; - - /** - * The name of the song. - */ - QString iSongName; - - /** - * The stream URL. - */ - QString iStreamUrl; - - /** - * Channel Name. - */ - QString iChannelName; - - /** - * Channel Description. - */ - QString iChannelDescription; - - /** - * Channel's image Url. - */ - QString iImageUrl; - QString iGenreName; - QString iCountryName; - QString iLanguageName; - /** - * Channel's MusicStoreStatus. - */ - QString iMusicStoreStatus; - - /** - * Channel Type. - */ - int iChannelType; - - /** - * Channel Id. - */ - int iChannelId; - - /** - * Channel bitrate. - */ - int iBitrate; -}; - -class IRQSongInfo -{ -public: - - - IMPORT_C void setSongName(const QString& aName); - IMPORT_C const QString& getSongName() const; - - IMPORT_C void setArtistName(const QString& aArtist); - IMPORT_C const QString& getArtistName()const; - - IMPORT_C void setStationName(const QString& aStationName); - IMPORT_C const QString& getStationName()const; - - IMPORT_C void setMusicshopStatus(const QString& aStatus); - IMPORT_C const QString& getMusicshopStatus()const; - - IMPORT_C void setAllInfo(const QString& aName, const QString& aArtist, const QString& aStationName, const QString& aStatus); - -private: - - QString iSongName; - QString iSongArtist; - QString iStationName; - QString iMusicshopStatus; - -}; -#endif // IRQSONGHISTORYINFO_H_ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqsonghistory/irqsonghistory.pro --- a/qtinternetradio/irqsonghistory/irqsonghistory.pro Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: - -TEMPLATE = lib -TARGET = irqsonghistory -TARGET.CAPABILITY = CAP_GENERAL_DLL - -defFilePath = .. - -DEPENDPATH += src ../../internetradio2.0/irsonghistory/src -LIBS += -lbafl -ledbms -lefsrv -lirsettings -lflogger - -INCLUDEPATH += inc \ - ../irqmediaplayer/inc \ - ../irqcommon/inc \ - ../../internetradio2.0/irsettings/inc \ - ../../internetradio2.0/inc \ - ../../internetradio2.0/irsonghistory/inc \ - -MOC_DIR = moc - -symbian{ - TARGET.UID3 = 0x2002FFC3 - TARGET.EPOCALLOWDLLDATA = 1 - MMP_RULES += SMPSAFE -} - -# Input -HEADERS += inc/irqsonghistoryengine.h \ - inc/irqsonghistoryinfo.h - -SOURCES += irqsonghistoryengine.cpp \ - irqsonghistoryinfo.cpp \ - irsonghistorydb.cpp \ - irsonghistoryinfo.cpp - -SYMBIAN_PLATFORMS = WINSCW ARMV5 - -!exists( $(RVCT22BIN) ) { - !exists( $(RVCT31BIN) ) { - exists( $(RVCT40BIN) ) { - QMAKE_CFLAGS.ARMCC += --import_all_vtbl - } - } - } \ No newline at end of file diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp --- a/qtinternetradio/irqsonghistory/src/irqsonghistoryengine.cpp Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,524 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ -#include "irsonghistoryinfo.h" -#include "irsonghistorydb.h" -#include "irqsonghistoryinfo.h" -#include "irqisdsdatastructure.h" -#include "irqmetadata.h" -#include "irqsonghistoryengine.h" - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::openInstance() -// Static function to get a singleton instance of IRQSongHistoryEngine -// @return IRQSongHistoryEngine * -// --------------------------------------------------------------------------- -// -EXPORT_C IRQSongHistoryEngine* IRQSongHistoryEngine::openInstance() -{ - // Get singleton instance - IRQSongHistoryEngine* irqSongHistoryEngine = - reinterpret_cast(Dll::Tls()); - - if (NULL == irqSongHistoryEngine) - { - TRAPD(error, irqSongHistoryEngine = createInstanceL()); - if (KErrNone != error) - { - delete irqSongHistoryEngine; - irqSongHistoryEngine = NULL; - Dll::SetTls(NULL); - } - } - else - { - irqSongHistoryEngine->iSingletonInstances++; - } - - return irqSongHistoryEngine; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::closeInstance() -// Close a singleton instance of IRQSongHistoryEngine -// --------------------------------------------------------------------------- -// -EXPORT_C void IRQSongHistoryEngine::closeInstance() -{ - iSingletonInstances--; - - if (0 == iSingletonInstances) - { - Dll::SetTls(NULL); - delete this; - } -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::createInstanceL() -// Creates IRQSongHistoryEngine instance -// @return IRQSongHistoryEngine* -// --------------------------------------------------------------------------- -// -IRQSongHistoryEngine* IRQSongHistoryEngine::createInstanceL() -{ - IRQSongHistoryEngine* irqSongHistoryEngine = new (ELeave) IRQSongHistoryEngine(); - irqSongHistoryEngine->constructL(); - User::LeaveIfError(Dll::SetTls(irqSongHistoryEngine)); - irqSongHistoryEngine->iSingletonInstances = 1; - - return irqSongHistoryEngine; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::constructL() -// Two-Phase Constructor. -// --------------------------------------------------------------------------- -// -void IRQSongHistoryEngine::constructL() -{ - iSongHistoryDb = CIRSongHistoryDb::NewL(); -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::IRQSongHistoryEngine() -// standard C++ Constructor -// --------------------------------------------------------------------------- -// -IRQSongHistoryEngine::IRQSongHistoryEngine() -{ -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::~IRQSongHistoryEngine() -// standard C++ destructor -// --------------------------------------------------------------------------- -// -IRQSongHistoryEngine::~IRQSongHistoryEngine() -{ - delete iSongHistoryDb; - iSongHistoryDb = NULL; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::handleMetaDataReceivedL() -// Invoked when channel name or song & artist name are changed. -// --------------------------------------------------------------------------- -// -EXPORT_C void IRQSongHistoryEngine::handleMetaDataReceived(const IRQMetaData& aMetaData, - const IRQPreset& aPreset) -{ - TRAPD(error, handleMetaDataReceivedL(aMetaData, aPreset)); - if (KErrNone != error) - { - - } -} - -EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceived(const IRQMetaData& aMetaData, - const IRQPreset& aPreset) -{ - TRAPD(error, handleSongMetaDataReceivedL(aMetaData,aPreset)); - if (KErrNone != error) - { - } -} - -EXPORT_C void IRQSongHistoryEngine::handleSongMetaDataReceivedL(const IRQMetaData& aMetaData, - const IRQPreset& aPreset) -{ - - TPtrC songName(reinterpret_cast(aMetaData.getSongName().utf16()), aMetaData.getSongName().length()); - TPtrC artistName(reinterpret_cast(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().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); -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::handleMetaDataReceivedL() -// --------------------------------------------------------------------------- -// -void IRQSongHistoryEngine::handleMetaDataReceivedL(const IRQMetaData& aMetaData, - const IRQPreset& aPreset) -{ - // Read Channel properties - TPtrC songName(reinterpret_cast(aMetaData.getSongName().utf16()), aMetaData.getSongName().length()); - TPtrC artistName(reinterpret_cast(aMetaData.getArtistName().utf16()), aMetaData.getArtistName().length()); - TPtrC channelUrl(reinterpret_cast(aMetaData.getStreamUrl().utf16()), aMetaData.getStreamUrl().length()); - 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()>KMaxColumnLength ? KMaxColumnLength : 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; - TUint16 bitrate = aMetaData.getBitrate(); - - if (channelType == 1) - { - TInt ret = iSongHistoryDb->GetIdPresentInDbL( channelId ); - if(ret) - { - TInt modified = iSongHistoryDb->UpdateSongHistoryDbL( channelId , - channelUrl ,imageUrl ,genreName, countryName, languageName, musicFlag); - // TODO notify uplayer to change layout? - } - } - else if (channelType != 0) - { - // the channel type can only be 1 (isds channel) or 0 (user defined channel) - channelType = 0; - } - - iSongHistoryDb->SearchAndDeleteRecordL(channelName, channelUrl, channelType, channelId); - - RBuf delSongName; - delSongName.CleanupClosePushL(); - RBuf delArtistName; - delArtistName.CleanupClosePushL(); - RBuf delChannelName; - delChannelName.CleanupClosePushL(); - RBuf delChannelUrl; - delChannelUrl.CleanupClosePushL(); - TBool bExceededMax = iSongHistoryDb->AddToSongHistoryDbL(songName, - artistName, - channelName, - channelUrl, - delSongName, - delArtistName, - delChannelName, - delChannelUrl , - channelType, - channelId, - bitrate, - channelDesc, - imageUrl, - genreName, - countryName, - languageName, - musicFlag); - - CleanupStack::PopAndDestroy(4, &delSongName); -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::detectSongHistoryItemChangesL() -// To detect any change in the song history items. -// --------------------------------------------------------------------------- -// -IRQSongHistoryEngine::TSongHistoryItemChange IRQSongHistoryEngine::detectSongHistoryItemChangesL( - const IRQMetaData& aMetaData, const QString& aChannelName) -{ - if(aChannelName.length() == 0) - { - return EBLANKENTRIES; - } - - RBuf song; - song.CleanupClosePushL(); - RBuf artist; - artist.CleanupClosePushL(); - RBuf channel; - channel.CleanupClosePushL(); - RBuf url; - url.CleanupClosePushL(); - - iSongHistoryDb->GetLastHistoryItemL(song, artist, channel, url); - - TSongHistoryItemChange retval = ENOCHANGE; - - QString tmpsong = QString::fromUtf16(song.Ptr(), song.Length()); - QString tmpartist = QString::fromUtf16(artist.Ptr(), artist.Length()); - QString tmpchannel = QString::fromUtf16(channel.Ptr(), channel.Length()); - QString tmpurl = QString::fromUtf16(url.Ptr(), url.Length()); - if (tmpsong == aMetaData.getSongName() && tmpartist == aMetaData.getArtistName() - && tmpchannel == aChannelName && tmpurl == aMetaData.getStreamUrl()) - { - retval = ENOCHANGE; - } - else - { - retval = ECHANNELCHANGED; - } - - CleanupStack::PopAndDestroy(4, &song); - - return retval; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::getAllHistory -// Invoked when when UI request. -// Getting the data from SongHistoryDb. -// --------------------------------------------------------------------------- - -EXPORT_C void IRQSongHistoryEngine::getAllHistory(QList& aSongHistoryArr) -{ - TRAP_IGNORE(getAllHistoryL(aSongHistoryArr)); -} - -EXPORT_C void IRQSongHistoryEngine::getAllSongHistory(QList& aSongHistoryArr) -{ - TRAP_IGNORE(getAllSongHistoryL(aSongHistoryArr)); -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::getAllHistoryL -// Invoked when when UI request. -// Getting the data from SongHistoryDb. -// --------------------------------------------------------------------------- - -void IRQSongHistoryEngine::getAllHistoryL(QList& aSongHistoryArr) -{ - // clear the array - while (!aSongHistoryArr.isEmpty()) - { - delete aSongHistoryArr.takeFirst(); - } - - int songCount = iSongHistoryDb->CountSongHistoryDb(); - - if (songCount == 0) - { - return; - } - - // get song history list - RPointerArray historyDataArr; - for (int arrCount = 0 ; arrCount < songCount ; arrCount++ ) - { - CIRSongHistoryInfo *songHistory = CIRSongHistoryInfo::NewL(); - CleanupStack::PushL(songHistory); - historyDataArr.AppendL(songHistory); - CleanupStack::Pop(songHistory); - } - - iSongHistoryDb->GetAllSongHistoryListL(historyDataArr); - - // create IRQSongHistoryInfo array and set - QString songName; - QString artist; - QString streamUrl; - QString channelName; - int channelType; - int channelId; - int bitrate; - QString channelDesc; - QString imageUrl; - QString genreName; - QString countryName; - QString languageName; - QString musicStoreStatus; - for (int arrCount = 0 ; arrCount < songCount ; arrCount++ ) - { - songName = QString::fromUtf16(historyDataArr[arrCount]->GetSongInfo().Ptr(), - historyDataArr[arrCount]->GetSongInfo().Length()); - artist = QString::fromUtf16(historyDataArr[arrCount]->GetArtistInfo().Ptr(), - historyDataArr[arrCount]->GetArtistInfo().Length()); - streamUrl = QString::fromUtf16(historyDataArr[arrCount]->GetStreamUrl().Ptr(), - historyDataArr[arrCount]->GetStreamUrl().Length()); - channelName = QString::fromUtf16(historyDataArr[arrCount]->GetChannelName().Ptr(), - historyDataArr[arrCount]->GetChannelName().Length()); - channelType = historyDataArr[arrCount]->GetChannelType(); - channelId = historyDataArr[arrCount]->GetChannelId(); - bitrate = historyDataArr[arrCount]->GetBitrate(); - channelDesc = QString::fromUtf16(historyDataArr[arrCount]->GetChannelDesc().Ptr(), - 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(); - if (NULL == irqsongHistory) - { - break; - } - irqsongHistory->setHistoryInfo(artist, songName, streamUrl, channelName, channelDesc - , imageUrl, genreName, countryName, languageName, musicStoreStatus, channelType, channelId, bitrate); - aSongHistoryArr.append(irqsongHistory); - } - - historyDataArr.ResetAndDestroy(); -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::getAllHistoryL -// Invoked when when UI request. -// Getting the data from SongHistoryDb. -// --------------------------------------------------------------------------- - -void IRQSongHistoryEngine::getAllSongHistoryL(QList& aSongHistoryArr) -{ - // clear the array - while (!aSongHistoryArr.isEmpty()) - { - delete aSongHistoryArr.takeFirst(); - } - - int songCount = iSongHistoryDb->CountSongHistoryDb2(); - - if (songCount == 0) - { - return; - } - - // get song history list - RPointerArray historyDataArr; - for (int arrCount = 0 ; arrCount < songCount ; arrCount++ ) - { - CIRSongHistoryInfo *songHistory = CIRSongHistoryInfo::NewL(); - CleanupStack::PushL(songHistory); - historyDataArr.AppendL(songHistory); - CleanupStack::Pop(songHistory); - } - - iSongHistoryDb->GetAllSongHistoryList2L(historyDataArr); - - // create IRQSongHistoryInfo array and set - QString songName; - QString artist; - QString stationName; - QString musicStoreStatus; - - for (int arrCount = 0; arrCount < songCount; arrCount++) - { - songName = QString::fromUtf16( - historyDataArr[arrCount]->GetSongInfo().Ptr(), - historyDataArr[arrCount]->GetSongInfo().Length()); - 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, stationName, musicStoreStatus); - aSongHistoryArr.append(irqsong); - } - - historyDataArr.ResetAndDestroy(); -} -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::clearAllHistory -// Invoked when when UI request. -// Clears the SongHistoryDb. -// --------------------------------------------------------------------------- - - EXPORT_C int IRQSongHistoryEngine::clearAllHistory( ) - { - return iSongHistoryDb->ClearAllSongHistoryFromDb(); - } - - EXPORT_C int IRQSongHistoryEngine::clearAllSongHistory( ) - { - return iSongHistoryDb->ClearAllSongHistoryFromDb2(); - } - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::syncHistory -// Invoked when when UI request. -// Synchronises the Song history DB with the new data in the ISDS. -// --------------------------------------------------------------------------- -EXPORT_C void IRQSongHistoryEngine::syncHistory(int aChannelId) -{ - TRAPD(err,iSongHistoryDb->SyncSongHistoryDbL(aChannelId)); - if (err) - { - } -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryEngine::updateSongHistoryDb -// Invoked when when UI request. -// Synchronises the Song history DB with the new data in the ISDS. -// --------------------------------------------------------------------------- -EXPORT_C void IRQSongHistoryEngine::updateSongHistoryDb(int aChannelId, - const QString& aChannelName, - const QString& aChannelUrl, - const QString& aImageUrl, - const QString& aGenreName, - const QString& aCountryName, - const QString& aLanguageName, - const QString& aMusicFlag) -{ - TInt ret = KErrNone ; - TUint16 channelId = aChannelId; // prevent data overflow - - TRAPD(err,ret = iSongHistoryDb->GetIdPresentInDbL( channelId )); - - if (err) - { - return; - } - - if (ret) - { - 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 , - channelUrl, - imageUrl, - genreName, - countryName, - languageName, - musicFlag)); - } -} - -EXPORT_C bool IRQSongHistoryEngine::deleteOneItem(int aIndex) -{ - int retValue = 0; - retValue = iSongHistoryDb->DeleteOneHistory(aIndex); - if( KErrNone != retValue ) - { - return false; - } - - return true; -} - -EXPORT_C bool IRQSongHistoryEngine::deleteOneSongHistoryItem(int aIndex) -{ - int retValue = 0; - retValue = iSongHistoryDb->DeleteOneSongHistory(aIndex); - if( KErrNone != retValue ) - { - return false; - } - - return true; -} diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/irqsonghistory/src/irqsonghistoryinfo.cpp --- a/qtinternetradio/irqsonghistory/src/irqsonghistoryinfo.cpp Fri Sep 17 08:27:59 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,380 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ -#include "irqsonghistoryinfo.h" - -// --------------------------------------------------------------------------- -//IRQSongHistoryInfo::~IRQSongHistoryInfo() -//standard C++ constructor -// --------------------------------------------------------------------------- -// -EXPORT_C IRQSongHistoryInfo::IRQSongHistoryInfo() -{ - iChannelType = 0; - iChannelId = 0; - iBitrate = 0; -} - -// --------------------------------------------------------------------------- -//IRQSongHistoryInfo::~IRQSongHistoryInfo() -//standard C++ destructor -// --------------------------------------------------------------------------- -// -EXPORT_C IRQSongHistoryInfo::~IRQSongHistoryInfo() -{ - -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getArtistName -// gets Artist name -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getArtistName() const -{ - return iArtistName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getSongName -// gets the song information -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getSongName() const -{ - return iSongName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getStreamUrl -// gets StreamUrl -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getStreamUrl() const -{ - return iStreamUrl; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getChannelName -// gets Channel name -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getChannelName() const -{ - return iChannelName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getChannelDesc -// gets Channel Description -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getChannelDesc() const -{ - return iChannelDescription; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getImageUrl -// gets Channel image Url -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getImageUrl() const -{ - return iImageUrl; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getGenreName -// gets Channel genre name -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getGenreName() const -{ - return iGenreName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getCountryName -// gets Channel country name -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getCountryName() const -{ - return iCountryName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getLanguageName -// gets Channel language name -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getLanguageName() const -{ - return iLanguageName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getMusicStoreStatus -// gets Channel MusicStoreStatus -// --------------------------------------------------------------------------- -// -EXPORT_C const QString& IRQSongHistoryInfo::getMusicStoreStatus() const -{ - return iMusicStoreStatus; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getChannelType -// gets Channel Type -// --------------------------------------------------------------------------- -// -EXPORT_C int IRQSongHistoryInfo::getChannelType() const -{ - return iChannelType; -} -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getChannelId -// gets Channel Id -// --------------------------------------------------------------------------- -// -EXPORT_C int IRQSongHistoryInfo::getChannelId() const -{ - return iChannelId; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::getBitrate -// gets Channel bitrate -// --------------------------------------------------------------------------- -// -EXPORT_C int IRQSongHistoryInfo::getBitrate() const -{ - return iBitrate; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setHistoryInfo -// sets Song History Information. -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setHistoryInfo(const QString& aArtistName, - const QString& aSongName, - const QString& aStreamUrl, - const QString& aChannelName, - const QString& aChannelDesc, - const QString& aImageUrl, - const QString& aGenreName, - const QString& aCountryName, - const QString& aLanguageName, - const QString& aMusicStoreStatus, - int aChannelType, - int aChannelId, - int aBitrate) -{ - setArtistName(aArtistName); - setSongName(aSongName); - setStreamUrl(aStreamUrl); - setChannelName(aChannelName); - setChannelDesc(aChannelDesc); - setImageUrl(aImageUrl); - setGenreName(aGenreName); - setCountryName(aCountryName); - setLanguageName(aLanguageName); - setMusicStoreStatus(aMusicStoreStatus); - setChannelType(aChannelType); - setChannelId(aChannelId); - setBitrate(aBitrate); -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setArtistName -// sets Artist name -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setArtistName(const QString& aArtistName) -{ - iArtistName = aArtistName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setSongName -// sets Song name -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setSongName (const QString& aSongName) -{ - iSongName = aSongName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setStreamUrl -// sets Stream url -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setStreamUrl(const QString& aStreamUrl) -{ - iStreamUrl = aStreamUrl; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setChannelName -// sets Channel name -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setChannelName(const QString& aChannelName) -{ - iChannelName = aChannelName; -} -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setChannelDesc -// sets Channel description -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setChannelDesc(const QString& aChannelDesc) -{ - iChannelDescription = aChannelDesc; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setImageUrl -// sets Channel image Url -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setImageUrl(const QString& aImageUrl) -{ - iImageUrl = aImageUrl; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setGenreName -// sets Channel genre name -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setGenreName(const QString& aGenreName) -{ - iGenreName = aGenreName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setCountryName -// sets Channel country name -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setCountryName(const QString& aCountryName) -{ - iCountryName = aCountryName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setLanguageName -// sets Channel language name -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setLanguageName(const QString& aLanguageName) -{ - iLanguageName = aLanguageName; -} - -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setMusicStoreStatus -// sets Channel's MusicStoreStatus -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setMusicStoreStatus(const QString& aMusicStoreStatus) -{ - iMusicStoreStatus = aMusicStoreStatus; -} -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setChannelType -// sets Channel type -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setChannelType(int aChannelType) -{ - iChannelType = aChannelType; -} -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setChannelId -// sets Channel Id -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setChannelId(int aChannelId) -{ - iChannelId = aChannelId; -} -// --------------------------------------------------------------------------- -// IRQSongHistoryInfo::setBitrate -// sets Channel bitrate -// --------------------------------------------------------------------------- -// -void IRQSongHistoryInfo::setBitrate(int aBitrate) -{ - iBitrate = aBitrate; -} - - - -EXPORT_C void IRQSongInfo::setSongName(const QString& aName) -{ - iSongName = aName; -} - -EXPORT_C const QString& IRQSongInfo::getSongName() const -{ - return iSongName; -} - -EXPORT_C void IRQSongInfo::setArtistName(const QString& aArtist) -{ - iSongArtist = aArtist; -} - -EXPORT_C void IRQSongInfo::setStationName(const QString& aStationName) -{ - iStationName = aStationName; -} - -EXPORT_C const QString& IRQSongInfo::getArtistName() const -{ - return iSongArtist; -} - -EXPORT_C const QString& IRQSongInfo::getStationName() const -{ - return iStationName; -} -EXPORT_C void IRQSongInfo::setMusicshopStatus(const QString& aStatus) -{ - iMusicshopStatus = aStatus; -} - -EXPORT_C const QString& IRQSongInfo::getMusicshopStatus() const -{ - return iMusicshopStatus; -} - -EXPORT_C void IRQSongInfo::setAllInfo(const QString& aName, const QString& aArtist, const QString& aStationName, const QString& aStatus) -{ - iSongName = aName; - iSongArtist = aArtist; - iStationName = aStationName; - iMusicshopStatus = aStatus; -} - - - diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/rom/createsis_stub.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/rom/createsis_stub.bat Mon Oct 04 00:07:46 2010 +0300 @@ -0,0 +1,19 @@ +@rem +@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +@rem All rights reserved. +@rem This component and the accompanying materials are made available +@rem under the terms of "Eclipse Public License v1.0" +@rem which accompanies this distribution, and is available +@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +@rem +@rem Initial Contributors: +@rem Nokia Corporation - initial contribution. +@rem +@rem Contributors: +@rem +@rem Description: +@rem +@echo off +echo +makesis -s ir3_qtinternetradio_stub.pkg +echo. \ No newline at end of file diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/rom/ir3_qtinternetradio_stub.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/rom/ir3_qtinternetradio_stub.pkg Mon Oct 04 00:07:46 2010 +0300 @@ -0,0 +1,47 @@ +; +; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http://www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; +; ui_armv5_udeb.pkg generated by qmake at Fri May 8 09:53:45 2009 +; This file is generated by qmake and should not be modified by the user +; + +; Language +&EN + +; SIS header: name, uid, version +#{"QtInternetRadio"},(0x2002FFAC),1,0,0 + +; Localised Vendor name +%{"Nokia, Qt Software"} + +; Unique Vendor name +:"Nokia, Qt Software" + +;qtinternetradio +"" - "z:\sys\bin\internet_radio_10_1.exe" +"" - "z:\resource\apps\internet_radio_10_1.rsc" +"" - "z:\private\10003a3f\import\apps\internet_radio_10_1_reg.rsc" +"" - "z:\resource\qt\translations\internet_radio_10_1_en.qm" +"" - "z:\sys\bin\irqnetworkcontroller.dll" +"" - "z:\sys\bin\irqisdsclient.dll" +"" - "z:\sys\bin\irqmediaplayer.dll" +"" - "z:\sys\bin\irqutility.dll" +"" - "z:\sys\bin\irqfavorites.dll" +"" - "z:\sys\bin\irqsettings.dll" +"" - "z:\sys\bin\irqnwkinfoobserver.dll" +"" - "z:\sys\bin\irqstatisticsreporter.dll" +"" - "z:\sys\bin\irqsystemeventhandler.dll" +"" - "z:\sys\bin\irqlogger.dll" +"" - "z:\sys\bin\irdb.dll" \ No newline at end of file diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/rom/ir3_qtinternetradio_stub.sis Binary file qtinternetradio/rom/ir3_qtinternetradio_stub.sis has changed diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/rom/qtinternetradio.iby --- a/qtinternetradio/rom/qtinternetradio.iby Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/rom/qtinternetradio.iby Mon Oct 04 00:07:46 2010 +0300 @@ -26,8 +26,7 @@ file=ABI_DIR\BUILD_DIR\irqisdsclient.dll SHARED_LIB_DIR\irqisdsclient.dll file=ABI_DIR\BUILD_DIR\irqmediaplayer.dll SHARED_LIB_DIR\irqmediaplayer.dll file=ABI_DIR\BUILD_DIR\irqutility.dll SHARED_LIB_DIR\irqutility.dll -file=ABI_DIR\BUILD_DIR\irqfavorites.dll SHARED_LIB_DIR\irqfavorites.dll -file=ABI_DIR\BUILD_DIR\irqsongHistory.dll SHARED_LIB_DIR\irqsonghistory.dll +file=ABI_DIR\BUILD_DIR\irqfavorites.dll SHARED_LIB_DIR\irqfavorites.dll file=ABI_DIR\BUILD_DIR\irqsettings.dll SHARED_LIB_DIR\irqsettings.dll file=ABI_DIR\BUILD_DIR\irqnwkinfoobserver.dll SHARED_LIB_DIR\irqnwkinfoobserver.dll file=ABI_DIR\BUILD_DIR\irqstatisticsreporter.dll SHARED_LIB_DIR\irqstatisticsreporter.dll @@ -36,5 +35,7 @@ file=ABI_DIR\BUILD_DIR\irdb.dll SHARED_LIB_DIR\irdb.dll data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\internet_radio_10_1_reg.rsc Private\10003a3f\import\apps\internet_radio_10_1_reg.rsc + +data=ZSYSTEM\install\ir3_qtinternetradio_stub.sis system\install\ir3_qtinternetradio_stub.sis #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irabstractlistviewbase.h --- a/qtinternetradio/ui/inc/irabstractlistviewbase.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irabstractlistviewbase.h Mon Oct 04 00:07:46 2010 +0300 @@ -104,7 +104,6 @@ HbAction *iFavoritesAction; HbAction *iGenresAction; HbAction *iSearchAction; - QTimer *iConvertTimer; TIRViewParameter iViewParameter; }; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irapplication.h --- a/qtinternetradio/ui/inc/irapplication.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irapplication.h Mon Oct 04 00:07:46 2010 +0300 @@ -106,9 +106,7 @@ void cancelConnect(); void loadGenre(); void handleDiskSpaceLow(qint64 aCriticalLevel); -#ifdef TERMS_CONDITIONS_VIEW_ENABLED - void handleTermsConsAccepted(); -#endif + void handleCallActivated(); void handleCallDeactivated(); void handleHeadsetConnected(); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irchannelmodel.h --- a/qtinternetradio/ui/inc/irchannelmodel.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irchannelmodel.h Mon Oct 04 00:07:46 2010 +0300 @@ -23,6 +23,9 @@ class HbIcon; class IRQChannelItem; class IRSearchResultDB; +class IRLogoProvider; +class IRQIsdsClient; +class QTimer; class IrChannelModel : public QAbstractListModel { @@ -34,29 +37,39 @@ int rowCount(const QModelIndex &aParent = QModelIndex()) const; QVariant data(const QModelIndex &aIndex, int aRole = Qt::DisplayRole) const; - QString imageUrl(int aRow); - void setLogo(HbIcon *aIcon, int aIndex); void initWithCache(); void save2Cache(); //not take ownership IRQChannelItem * getChannelItemByIndex(int aIndex); void cleanupDatabase(); - void clearAndDestroyLogos(); - + void startDownloadingLogo(); + void stopDownloadingLogo(); + public slots: - void updateData(QList *aPushItemsList); + void updateData(QList *aPushItemsList, bool bInit=false); signals: void dataAvailable(); +private slots: + void downloadNextLogo(); + void logoData(const QByteArray &aLogoData); + private: + void clearAndDestroyLogos(); void clearAndDestroyItems(); + void updateIconIndexArray(); + void setLogo(HbIcon *aIcon, int aIndex); private: QList *iChannelList; - QMap iLogos; - HbIcon *iStationLogo; - IRSearchResultDB *iDB; + QMap iLogos; + HbIcon *iStationLogo; + IRSearchResultDB *iDB; + QList iIconIndexArray; + IRQIsdsClient *iIsdsClient; + IRLogoProvider *iLogoProvider; + QTimer *iTimer; }; #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irfavoritesmodel.h --- a/qtinternetradio/ui/inc/irfavoritesmodel.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irfavoritesmodel.h Mon Oct 04 00:07:46 2010 +0300 @@ -23,6 +23,9 @@ class IRQPreset; class IRQFavoritesDB; class HbIcon; +class IRLogoProvider; +class IRQIsdsClient; +class QTimer; class IRFavoritesModel : public QAbstractListModel { @@ -42,25 +45,35 @@ bool isLogoReady(int aIndex) const; bool checkFavoritesUpdate(); - void clearFavoriteDB(); void clearAndDestroyLogos(); bool deleteOneFavorite(int aIndex); bool deleteMultiFavorites(const QModelIndexList &aIndexList); void updateFavoriteName(int aIndex, const QString &aNewName); + void startDownloadingLogo(); + void stopDownloadingLogo(); + signals: void modelChanged(); +private slots: + void downloadNextLogo(); + void logoData(const QByteArray &aLogoData); private: void clearPresetList(); + void updateIconIndexArray(); private: IRQFavoritesDB *iFavoritesDb; QList *iPresetsList; HbIcon *iStationLogo; QList iLogos; + QList iIconIndexArray; + IRQIsdsClient *iIsdsClient; + IRLogoProvider *iLogoProvider; + QTimer *iTimer; }; #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irfavoritesview.h --- a/qtinternetradio/ui/inc/irfavoritesview.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irfavoritesview.h Mon Oct 04 00:07:46 2010 +0300 @@ -23,7 +23,6 @@ class HbSelectionDialog; class IRFavoritesModel; class IRStationShare; -class IRQPreset; class IRFavoritesView : public IrAbstractListViewBase { @@ -41,9 +40,6 @@ private slots: void deleteFavorites(); void networkRequestNotified(IRQNetworkEvent aEvent); - void convertAnother(); - void presetLogoDownload(IRQPreset* aPreset); - void presetLogoDownloadError(); void modelChanged(); void actionClicked(HbAction *aAction); void renameConfirmed(HbAction *aAction); @@ -59,28 +55,21 @@ void setCheckedAction(); void handleItemSelected(); void prepareMenu(); - void startConvert(int aIndex); void shareContextAction(); void deleteContextAction(); void renameContextAction(); void detailsContextAction(); - void updateIconIndexArray(); void popupDeleteContextConfirmMessageBox(); //from base view void listViewLongPressed(HbAbstractViewItem *aItem, const QPointF& aCoords); - void initToolBar(); - private: IRStationShare *iStationShare; IRFavoritesModel *iModel; HbSelectionDialog *iMultiDeleteDialog; HbAction *iMultiDeleteAction; - //the following are used to support the img - QList iIconIndexArray; - IRQPreset *iLogoPreset; friend class IRViewManager; }; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irhistorymodel.h --- a/qtinternetradio/ui/inc/irhistorymodel.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irhistorymodel.h Mon Oct 04 00:07:46 2010 +0300 @@ -19,9 +19,13 @@ #include -class IRQSongHistoryEngine; -class IRQSongHistoryInfo; class HbIcon; +class IRQPreset; +class channelHistoryWrapper; +class urlInfoWrapper; +class IRLogoProvider; +class IRQIsdsClient; +class QTimer; class IRHistoryModel : public QAbstractListModel { @@ -33,25 +37,43 @@ int rowCount(const QModelIndex &aParent = QModelIndex()) const; QVariant data(const QModelIndex &aIndex, int aRole = Qt::DisplayRole) const; - IRQSongHistoryInfo* getHistoryInfo(int aIndex); - void clearAllList(); + IRQPreset* getHistoryInfo(int aIndex); + void clearAllHistory(); bool checkHistoryUpdate(); - void clearAndDestroyLogos(); - QString getImageUrl(int aRow) const; - void setLogo(HbIcon *aIcon, int aIndex); - bool deleteOneItem(int aIndex); + bool deleteHistory(int aIndex); + + void startDownloadingLogo(); + void stopDownloadingLogo(); signals: void modelChanged(); -private: - void getAllList(); - +private slots: + void downloadNextLogo(); + void logoData(const QByteArray &aLogoData); + private: - QList iHistoryList; - IRQSongHistoryEngine *iHistoryEngine; - QMap iLogos; - HbIcon *iStationLogo; + void refreshModel(); + void clearModel(); + + void clearAndDestroyLogos(); + QString getImageUrl(int aRow) const; + void setLogo(HbIcon *aIcon, int aIndex); + + bool isLogoReady(int aIndex) const; + void updateIconIndexArray(); + +private: + QList iHistoryList; + channelHistoryWrapper *iHistoryEngine; + urlInfoWrapper *iUrlInfoWrapper; + QList iLogos; + HbIcon *iStationLogo; + + QList iIconIndexArray; + IRQIsdsClient *iIsdsClient; + IRLogoProvider *iLogoProvider; + QTimer *iTimer; }; #endif /* IRHISTORYMODEL_H_ */ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irhistoryview.h --- a/qtinternetradio/ui/inc/irhistoryview.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irhistoryview.h Mon Oct 04 00:07:46 2010 +0300 @@ -20,9 +20,9 @@ #include "irabstractlistviewbase.h" #include "irqevent.h" -class IRQPreset; + class IRHistoryModel; -class IRQSongHistoryInfo; + class IRHistoryView : public IrAbstractListViewBase { @@ -40,10 +40,7 @@ private slots: void clearAllList(HbAction *aAction); void networkRequestNotified(IRQNetworkEvent aEvent); - //to start the convertion asynchronously - void convertAnother(); - void presetLogoDownload(IRQPreset* aPreset); - void presetLogoDownloadError(); + void modelChanged(); void actionClicked(HbAction *aAction); @@ -57,24 +54,14 @@ void prepareMenu(); #ifdef HS_WIDGET_ENABLED void itemAboutToBeSelected(bool &aNeedNetwork); -#endif - void startConvert(int aIndex); - void convertStationHistory2Preset(const IRQSongHistoryInfo& aHistoryInfo, IRQPreset& aPreset); +#endif void addContextAction(); void deleteContextAction(); void detailsContextAction(); private: IRHistoryModel *iModel; - HbAction *iClearHistoryAction; - HbAction *iSongHistoryAction; - - - //the following are used to support the img - QList iIconIndexArray; - IRQPreset *iLogoPreset; - - + HbAction *iClearHistoryAction; friend class IRViewManager; }; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irlogoprovider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/inc/irlogoprovider.h Mon Oct 04 00:07:46 2010 +0300 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef IRLOGOPROVIDER_H_ +#define IRLOGOPROVIDER_H_ + +#include + +class IRQIsdsClient; +class IRQPreset; + +class IRLogoProvider : public QObject +{ + Q_OBJECT +public: + explicit IRLogoProvider(IRQIsdsClient *aIsdsClient); + ~IRLogoProvider(); + + void getLogo(IRQPreset *aPreset); + + void activate(const QObject *aReceiver, const char *aFunc); + void deactivate(); + +signals: + void logoData(const QByteArray &aLogoData); + +private slots: + void presetLogoDownload(IRQPreset* aPreset); + void presetLogoDownloadError(); + +private: + IRQIsdsClient *iIsdsClient; +}; + +#endif /* IRLOGOPROVIDER_H_ */ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irplaycontroller.h --- a/qtinternetradio/ui/inc/irplaycontroller.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irplaycontroller.h Mon Oct 04 00:07:46 2010 +0300 @@ -25,10 +25,13 @@ class IRApplication; class IRQMediaPlayer; class IRQPreset; -class IRQMetaData; -class IRQSongHistoryEngine; +class IRQMetaData; class IRQStatisticsReporter; class HbMessageBox; +class IRDBWrapper; +class channelHistoryWrapper; +class urlInfoWrapper; + /** * This class is a wrapper for IRQMediaPlayer. */ @@ -106,10 +109,6 @@ IRQMetaData * getMetaData() const; IRQTerminatedType getStopReason() const; - -#ifdef _DEBUG - int bitrateTrying() const; -#endif signals: // emitted when meta data is available @@ -165,7 +164,10 @@ void startSession(); void endSession(IRQTerminatedType aStopReason); - + + void saveSong2DB(const IRQMetaData& aMetaData, const IRQPreset& aPreset); + void saveStation2DB(IRQPreset *aPreset); + private: IRApplication *iApplication; IRQMediaPlayer *iMediaPlayer; @@ -190,8 +192,7 @@ bool iStationLogoAvailableBackup; // reference of IRQMediaPlayer meta data - IRQMetaData *iMetaData; - IRQSongHistoryEngine *iSongHistoryEngine; + IRQMetaData *iMetaData; EPlayState iPlayState; @@ -218,6 +219,10 @@ IRQTerminatedType iStopReason; HbMessageBox *iErrorNote; + + IRDBWrapper *iDbWrapper; + channelHistoryWrapper *iHistoryWrapper; + urlInfoWrapper *iUrlInfoWrapper; }; #endif //IRPLAYCONTROLLER_H diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irqsonghistoryinfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/inc/irqsonghistoryinfo.h Mon Oct 04 00:07:46 2010 +0300 @@ -0,0 +1,54 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef IRQSONGHISTORYINFO_H_ +#define IRQSONGHISTORYINFO_H_ + +#include + +class IRQSongInfo +{ +public: + + + void setSongName(const QString& aName); + const QString& getSongName() const; + + void setArtistName(const QString& aArtist); + const QString& getArtistName()const; + + void setMusicshopStatus(const QString& aStatus); + const QString& getMusicshopStatus()const; + + + void setStationName(const QString& aStationName); + const QString& getStationName() const; + + void setChannelID(const QString& aChannelID); + const QString& getChannelID()const; + + void setAllInfo(const QString& aStationName, const QString& aSongName, const QString& aArtist, const QString& aStatus, const QString& aChannelID); + +private: + + QString iSongName; + QString iSongArtist; + QString iMusicshopStatus; + QString iStationName; + QString iChannelID; + +}; +#endif // IRQSONGHISTORYINFO_H_ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irsearchchannelsview.h --- a/qtinternetradio/ui/inc/irsearchchannelsview.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irsearchchannelsview.h Mon Oct 04 00:07:46 2010 +0300 @@ -20,13 +20,13 @@ #include "irqevent.h" #include "irbaseview.h" #include "irqenums.h" - + +class HbGroupBox; class HbListView; class HbSearchPanel; class HbAction; class IrChannelModel; class IRQPreset; -class QTimer; class IRSearchChannelsView : public IRBaseView { @@ -53,8 +53,8 @@ void loadLayout(); void handleItemSelected(); void initMenu(); - void startConvert(int aIndex); - void initTimer(); + void resetHeadingText(); + bool eventFilter(QObject *object, QEvent *event); private slots: //slots @@ -67,10 +67,6 @@ void clickItem(const QModelIndex&); //for playing a channel in the search result list void presetResponse(IRQPreset *aPreset); - //to start the convertion - void convertAnother(); - void presetLogoDownload(IRQPreset* aPreset); - void presetLogoDownloadError(); void hideVkb(); void showVkb(); @@ -86,6 +82,7 @@ ESearch_Loading //loading means searching or buffering. }; + HbGroupBox *iHeadingLabel; HbListView *iListView; QString iKeyText; @@ -95,10 +92,8 @@ IrChannelModel *iChannelModel; //the object is created by IsdsClient, but application is responsible for free IRQPreset *iPreset; - IRQPreset *iLogoPreset; - QTimer *iConvertTimer; - QList iIconIndexArray; - IRQSettings *iSettings; + IRQSettings *iIRSettings; + bool iFirstTime; friend class IRViewManager; }; #endif //IRSEARCHCHANNELSVIEW_H diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irsearchresultdb.h --- a/qtinternetradio/ui/inc/irsearchresultdb.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irsearchresultdb.h Mon Oct 04 00:07:46 2010 +0300 @@ -19,9 +19,9 @@ #define IRSEARCHRESULTDB_H #include "irqenums.h" - -class QSqlDatabase; + class IRQChannelItem; +class searchRltWrapper; class IRSearchResultDB { @@ -35,11 +35,8 @@ //caller needs to release the memory QList * getCahcedChannelList(); IRQError clearCache(); - -private: - void createDBConnection(); - + private: - QSqlDatabase *iDB; + searchRltWrapper *iSearchRltWrapper; }; #endif//IRSEARCHRESULTDB_H diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irsonghistorymodel.h --- a/qtinternetradio/ui/inc/irsonghistorymodel.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irsonghistorymodel.h Mon Oct 04 00:07:46 2010 +0300 @@ -19,10 +19,10 @@ #define IRSONGHISTORYMODEL_H_ #include - -class IRQSongHistoryEngine; + class IRQSongInfo; class IRQMetaData; +class songHistoryWrapper; class IRSongHistoryModel : public QAbstractListModel { @@ -47,9 +47,9 @@ void getAllList(); private: - QList mSongHistoryList; - IRQSongHistoryEngine *mHistoryEngine; + QList mSongHistoryList; Qt::Orientation mOrientation; + songHistoryWrapper *mHistoryWrapper; }; #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/irstationdetailsview.h --- a/qtinternetradio/ui/inc/irstationdetailsview.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/irstationdetailsview.h Mon Oct 04 00:07:46 2010 +0300 @@ -34,7 +34,7 @@ public: ~IRStationDetailsView(); void setDetails(); - void setDetails(IRQPreset * aPreset); + void setDetails(const IRQPreset * aPreset); protected: IRStationDetailsView(IRApplication* aApplication, TIRViewId aViewId); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/inc/iruidefines.h --- a/qtinternetradio/ui/inc/iruidefines.h Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/inc/iruidefines.h Mon Oct 04 00:07:46 2010 +0300 @@ -60,6 +60,7 @@ static const char* ABSTRACT_LIST_VIEW_BASE_WITH_PLAYINGBANNER_SECTION = "section_with_playingbanner"; static const char* ABSTRACT_LIST_VIEW_BASE_NO_TOOLBAR_SECTION = "section_no_toolbar_with_heading"; static const char* ABSTRACT_LIST_VIEW_BASE_WITH_TOOLBAR_SECTION = "section_with_toolbar_no_heading"; +static const char* ABSTRACT_LIST_VIEW_BASE_ADD_TOOLBAR_SECTION = "section_add_toolbar"; // OpenWebAddressView -- Object Name static const char* OPEN_WEB_ADDRESS_VIEW_OBJECT_VIEW = "ext-IRQOpenWebAddressView"; @@ -70,7 +71,7 @@ static const char* SEARCH_CHANNELS_VIEW_OBJECT_VIEW = "ext-IRSearchChannelsView"; static const char* SEARCH_CHANNELS_VIEW_SEARCHPANEL_WIDGET = "search_panel"; static const char* SEARCH_CHANNELS_VIEW_SEARCHLISTVIEW_WIDGET = "search_listview"; - +static const char* SEARCH_CHANNELS_VIEW_HEADINGTEXT_WIDGET = "headingText"; // IRNowplayingView -- Object Name static const char* NOW_PLAYING_VIEW_OBJECT_NAME = "ext-nowplayingview"; @@ -119,4 +120,7 @@ #define LOADING_ANIMATION_ICON_SIZE 50 +const int KBitmapSize = 59; +const int KMaxLineEditLength = 255; + #endif /* IRUIDEFINES_H_ */ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/resources/layout/abstractlistviewbase.docml --- a/qtinternetradio/ui/resources/layout/abstractlistviewbase.docml Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/resources/layout/abstractlistviewbase.docml Mon Oct 04 00:07:46 2010 +0300 @@ -116,6 +116,19 @@ + +
+ + + + + + + + + +
+ diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/resources/layout/openwebaddressview.docml --- a/qtinternetradio/ui/resources/layout/openwebaddressview.docml Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/resources/layout/openwebaddressview.docml Mon Oct 04 00:07:46 2010 +0300 @@ -25,7 +25,7 @@ - + diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/resources/layout/searchchannelsview.docml --- a/qtinternetradio/ui/resources/layout/searchchannelsview.docml Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/resources/layout/searchchannelsview.docml Mon Oct 04 00:07:46 2010 +0300 @@ -5,17 +5,20 @@ - + + + + + + - - - - + + diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irabstractlistviewbase.cpp --- a/qtinternetradio/ui/src/irabstractlistviewbase.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irabstractlistviewbase.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -49,7 +49,7 @@ iArtistSongName(NULL), iHeadingLabel(NULL), iCollectionsAction(NULL), iFavoritesAction(NULL), - iGenresAction(NULL), iSearchAction(NULL),iConvertTimer(NULL), + iGenresAction(NULL), iSearchAction(NULL), iViewParameter(EIRViewPara_InvalidId) { // Create widget hierarchy @@ -310,7 +310,7 @@ //set the banner text as station name IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset(); Q_ASSERT(nowPlayingPreset); - addBanner(nowPlayingPreset->name, false); + addBanner(nowPlayingPreset->nickName, false); } } else @@ -322,7 +322,7 @@ void IrAbstractListViewBase::addBanner(const QString &aText, const bool &aMetaDataFlag) { iLoader.load(ABSTRACT_LIST_VIEW_BASE_LAYOUT_FILENAME, ABSTRACT_LIST_VIEW_BASE_WITH_PLAYINGBANNER_SECTION); - iStationName->setPlainText(iPlayController->getNowPlayingPreset()->name); + iStationName->setPlainText(iPlayController->getNowPlayingPreset()->nickName); if (aMetaDataFlag) { iArtistSongName->setText(aText); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irapplication.cpp --- a/qtinternetradio/ui/src/irapplication.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irapplication.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -690,40 +690,13 @@ return retVal; } -#ifdef TERMS_CONDITIONS_VIEW_ENABLED -void IRApplication::handleTermsConsAccepted() -{ - LOG_METHOD; - iSettings->reSetFlagTermsAndConditions(); - IRBaseView * termsConsView = iViewManager->getView(EIRView_TermsConsView); - iViewManager->removeView(termsConsView); - termsConsView->deleteLater(); - - iViewManager->activateView(iStartingViewId); - QEvent* initEvent = new QEvent(iInitEvent); - QCoreApplication::postEvent(this, initEvent, Qt::HighEventPriority); -} -#endif - void IRApplication::launchStartingView(TIRViewId aViewId) { LOG_METHOD; iStartingViewId = aViewId; -#ifdef TERMS_CONDITIONS_VIEW_ENABLED - bool isFirstTimeUsage = false; - iSettings->isFlagTermsAndConditions(isFirstTimeUsage); - - if(isFirstTimeUsage) - { - iViewManager->activateView(EIRView_TermsConsView); - } - else -#endif - { - iViewManager->activateView(iStartingViewId); - QEvent* initEvent = new QEvent(iInitEvent); - QCoreApplication::postEvent(this, initEvent, Qt::HighEventPriority); - } + iViewManager->activateView(iStartingViewId); + QEvent* initEvent = new QEvent(iInitEvent); + QCoreApplication::postEvent(this, initEvent, Qt::HighEventPriority); iAppFullyStarted = true; } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irchanneldataprovider.cpp --- a/qtinternetradio/ui/src/irchanneldataprovider.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irchanneldataprovider.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -22,8 +22,8 @@ #include "irqisdsdatastructure.h" #include "irqisdsclient.h" #include "irsearchresultdb.h" +#include "iruidefines.h" -const int KBitmapSize = 59; const int KDownloadLogoInterval = 10; //msec IRChannelDataProvider::IRChannelDataProvider(QObject *aParent) : HgDataProviderModel(aParent), diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irchannelmodel.cpp --- a/qtinternetradio/ui/src/irchannelmodel.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irchannelmodel.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,16 +15,31 @@ * */ -#include +#include +#include #include "irchannelmodel.h" #include "irqisdsdatastructure.h" #include "irsearchresultdb.h" +#include "irqisdsclient.h" +#include "irlogoprovider.h" IrChannelModel::IrChannelModel(QObject *aParent): QAbstractListModel(aParent) , iChannelList(NULL),iDB(NULL) { - iStationLogo = new HbIcon("qtg_large_internet_radio"); + iIsdsClient = IRQIsdsClient::openInstance(); + iLogoProvider = new IRLogoProvider(iIsdsClient); + + iTimer = new QTimer; + iTimer->setInterval(10); + connect(iTimer, SIGNAL(timeout()), this, SLOT(downloadNextLogo())); + + iStationLogo = new HbIcon("qtg_large_internet_radio"); + + if( NULL == iDB ) + { + iDB = new IRSearchResultDB(); + } } IrChannelModel::~IrChannelModel() @@ -36,11 +51,21 @@ clearAndDestroyLogos(); + stopDownloadingLogo(); + if( iDB ) { delete iDB; iDB = NULL; } + + delete iLogoProvider; + if (iIsdsClient) + { + iIsdsClient->closeInstance(); + iIsdsClient = NULL; + } + delete iTimer; } int IrChannelModel::rowCount(const QModelIndex &aParent) const @@ -55,18 +80,6 @@ return count; } -QString IrChannelModel::imageUrl(int aRow) -{ - if (iChannelList) - { - return iChannelList->at(aRow)->imageURL; - } - else - { - return ""; - } -} - void IrChannelModel::setLogo(HbIcon *aIcon, int aIndex) { iLogos[aIndex] = aIcon; @@ -119,37 +132,29 @@ } } -void IrChannelModel::updateData(QList *aPushItemsList) +void IrChannelModel::updateData(QList *aPushItemsList, bool bInit) { if (iChannelList != aPushItemsList) { clearAndDestroyItems(); iChannelList = aPushItemsList; } + if(false == bInit) + { + save2Cache(); + + } clearAndDestroyLogos(); - + + updateIconIndexArray(); + emit dataAvailable(); } void IrChannelModel::initWithCache() { - if( NULL == iDB ) - { - iDB = new IRSearchResultDB(); - } - - QList *channelList = iDB->getCahcedChannelList(); - - if( NULL == channelList ) - { - //some error happens - return; - } - - clearAndDestroyItems(); - clearAndDestroyLogos(); - iChannelList = channelList; + updateData(iDB->getCahcedChannelList(), true); } void IrChannelModel::save2Cache() @@ -178,7 +183,8 @@ clearAndDestroyItems(); clearAndDestroyLogos(); iDB->clearCache(); - + iIconIndexArray.clear(); + emit dataAvailable(); } @@ -204,3 +210,75 @@ iChannelList = NULL; } } + +void IrChannelModel::startDownloadingLogo() +{ + iLogoProvider->activate(this, SLOT(logoData(const QByteArray&))); + iTimer->start(); +} + +void IrChannelModel::stopDownloadingLogo() +{ + iIsdsClient->isdsLogoDownCancelTransaction(); + iTimer->stop(); + iLogoProvider->deactivate(); +} + +void IrChannelModel::downloadNextLogo() +{ + iTimer->stop(); + int leftCount = iIconIndexArray.count(); + + if (0 != leftCount) + { + int row = iIconIndexArray[0]; + IRQPreset preset; + preset.name = iChannelList->at(row)->channelName; + preset.shortDesc = iChannelList->at(row)->shortDescription; + preset.type = IRQPreset::EIsds; + preset.presetId = iChannelList->at(row)->channelID; + preset.imgUrl = iChannelList->at(row)->imageURL; + iLogoProvider->getLogo(&preset); + } +} + +void IrChannelModel::logoData(const QByteArray &aLogoData) +{ + if (aLogoData.size() > 0) + { + QPixmap tempMap; + bool ret = tempMap.loadFromData((const unsigned char*)aLogoData.constData(), aLogoData.size()); + if( ret ) + { + QIcon convertIcon(tempMap); + HbIcon *hbIcon = new HbIcon(convertIcon); + int index = iIconIndexArray[0]; + setLogo(hbIcon, index); + } + } + + iIconIndexArray.removeAt(0); + int leftCount = iIconIndexArray.count(); + if( leftCount > 0 ) + { + iTimer->start(); + } +} + +void IrChannelModel::updateIconIndexArray() +{ + iIconIndexArray.clear(); + + for (int i = 0; i < rowCount(); ++i) + { + if (iChannelList->at(i)->imageURL != "" && !iLogos.contains(i)) + { + iIconIndexArray.append(i); + } + } + + if (iIconIndexArray.size() > 0) + { + startDownloadingLogo(); + } +} diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irfavoritesmodel.cpp --- a/qtinternetradio/ui/src/irfavoritesmodel.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irfavoritesmodel.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,11 +15,14 @@ * */ #include -#include +#include +#include #include "irqfavoritesdb.h" #include "irqisdsdatastructure.h" #include "irfavoritesmodel.h" +#include "irqisdsclient.h" +#include "irlogoprovider.h" IRFavoritesModel::IRFavoritesModel(IRQFavoritesDB *aFavoritesDb, QObject *aParent) : QAbstractListModel(aParent), iFavoritesDb(aFavoritesDb), @@ -30,6 +33,13 @@ iPresetsList = aFavoritesDb->getPresets(); } + iIsdsClient = IRQIsdsClient::openInstance(); + iLogoProvider = new IRLogoProvider(iIsdsClient); + + iTimer = new QTimer; + iTimer->setInterval(10); + connect(iTimer, SIGNAL(timeout()), this, SLOT(downloadNextLogo())); + iStationLogo = new HbIcon("qtg_large_internet_radio"); } @@ -38,6 +48,14 @@ delete iStationLogo; clearPresetList(); clearAndDestroyLogos(); + + delete iLogoProvider; + if (iIsdsClient) + { + iIsdsClient->closeInstance(); + iIsdsClient = NULL; + } + delete iTimer; } IRQPreset* IRFavoritesModel::getPreset(int aIndex) const @@ -114,7 +132,7 @@ QVariantList list; int row = aIndex.row(); - QString primaryText = iPresetsList->at(row)->name; + QString primaryText = iPresetsList->at(row)->nickName; list.append(primaryText); QString secondaryText = iPresetsList->at(row)->shortDesc; @@ -158,6 +176,7 @@ clearPresetList(); clearAndDestroyLogos(); iPresetsList = iFavoritesDb->getPresets(); + updateIconIndexArray(); emit modelChanged(); return true; } @@ -173,42 +192,6 @@ iLogos.clear(); } -void IRFavoritesModel::clearFavoriteDB() -{ - if (NULL == iPresetsList) - { - return; - } - - int presetSize = iPresetsList->count(); - - if(!presetSize) - { - return; - } - - int uniqId = 0; - - while(presetSize--) - { - uniqId = iFavoritesDb->getUniqId(presetSize); - - //There is the probability that the return value<0, so I added this judgment. - if(uniqId < 0 ) - { - //if here, the Id, which is mapped to preset's item, can't be found. - //jump out from while - break; - } - iFavoritesDb->deletePreset(uniqId); - - } - - clearPresetList(); - clearAndDestroyLogos(); - emit modelChanged(); -} - void IRFavoritesModel::clearPresetList() { if (NULL == iPresetsList) @@ -231,8 +214,14 @@ return false; } + if (!iIconIndexArray.empty()) + { + iIsdsClient->isdsLogoDownCancelTransaction(); + iTimer->stop(); + } + IRQPreset *preset = iPresetsList->at(aIndex); - int ret = iFavoritesDb->deletePreset(preset->uniqID); + int ret = iFavoritesDb->deletePreset(*preset); if ( 0 != ret ) { return false; @@ -249,6 +238,14 @@ } iLogos.removeAt(aIndex); endRemoveRows(); + + updateIconIndexArray(); + + if (!iIconIndexArray.empty()) + { + iTimer->start(); + } + return true; } @@ -259,6 +256,12 @@ return true; } + if (!iIconIndexArray.empty()) + { + iIsdsClient->isdsLogoDownCancelTransaction(); + iTimer->stop(); + } + int index = 0; bool retVal = true; QList indexToBeDelete; @@ -273,7 +276,8 @@ continue; } - if (0 != iFavoritesDb->deletePreset(iPresetsList->at(index)->uniqID)) + IRQPreset *preset = iPresetsList->at(index); + if (0 != iFavoritesDb->deletePreset(*preset) ) { retVal = false; continue; @@ -302,6 +306,13 @@ endRemoveRows(); } + updateIconIndexArray(); + + if (!iIconIndexArray.empty()) + { + iTimer->start(); + } + return retVal; } @@ -309,7 +320,68 @@ { if (aIndex >= 0 && aIndex < iPresetsList->count()) { - iPresetsList->at(aIndex)->name = aNewName; + iPresetsList->at(aIndex)->nickName = aNewName; emit dataChanged(index(aIndex), index(aIndex)); } } + +void IRFavoritesModel::startDownloadingLogo() +{ + iLogoProvider->activate(this, SLOT(logoData(const QByteArray&))); + iTimer->start(); +} + +void IRFavoritesModel::stopDownloadingLogo() +{ + iIsdsClient->isdsLogoDownCancelTransaction(); + iTimer->stop(); + iIconIndexArray.clear(); + iLogoProvider->deactivate(); +} + +void IRFavoritesModel::downloadNextLogo() +{ + iTimer->stop(); + int leftCount = iIconIndexArray.count(); + + if (0 != leftCount) + { + iLogoProvider->getLogo(iPresetsList->at(iIconIndexArray[0])); + } +} + +void IRFavoritesModel::logoData(const QByteArray &aLogoData) +{ + if (aLogoData.size() > 0) + { + QPixmap tempMap; + bool ret = tempMap.loadFromData((const unsigned char*)aLogoData.constData(), aLogoData.size()); + if( ret ) + { + QIcon convertIcon(tempMap); + HbIcon *hbIcon = new HbIcon(convertIcon); + int index = iIconIndexArray[0]; + setLogo(hbIcon, index); + } + } + + iIconIndexArray.removeAt(0); + int leftCount = iIconIndexArray.count(); + if( leftCount > 0 ) + { + iTimer->start(); + } +} + +void IRFavoritesModel::updateIconIndexArray() +{ + iIconIndexArray.clear(); + + for (int i = 0; i < rowCount(); ++i) + { + if (getImgUrl(i) != "" && !isLogoReady(i)) + { + iIconIndexArray.append(i); + } + } +} diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irfavoritesview.cpp --- a/qtinternetradio/ui/src/irfavoritesview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irfavoritesview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -20,8 +20,6 @@ #include #include #include -#include -#include #include #include #include @@ -40,7 +38,6 @@ #include "iruidefines.h" #include "irstationshare.h" #include "irstationdetailsview.h" -const int KBitmapSize = 59; const QString KActionShareName("Share"); const QString KActionDeleteName("Delete"); @@ -57,23 +54,17 @@ : IrAbstractListViewBase(aApplication, aViewId), iStationShare(NULL), iMultiDeleteDialog(NULL), - iMultiDeleteAction(NULL), - iLogoPreset(NULL) + iMultiDeleteAction(NULL) { setFlag(EViewFlag_ClearStackWhenActivate|EViewFlag_StickyViewEnabled); - - initToolBar(); + iLoader.load(ABSTRACT_LIST_VIEW_BASE_LAYOUT_FILENAME, ABSTRACT_LIST_VIEW_BASE_ADD_TOOLBAR_SECTION); + iModel = new IRFavoritesModel(iFavorites, this); iListView->setModel(iModel); - - iConvertTimer = new QTimer(this); - iConvertTimer->setInterval(10); - + connect(iModel, SIGNAL(modelChanged()), this, SLOT(modelChanged())); connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)), this, SLOT(networkRequestNotified(IRQNetworkEvent))); - connect(iConvertTimer, SIGNAL(timeout()), this, SLOT(convertAnother())); - } /* @@ -81,9 +72,6 @@ */ IRFavoritesView::~IRFavoritesView() { - delete iLogoPreset; - iLogoPreset = NULL; - delete iMultiDeleteDialog; iMultiDeleteDialog = NULL; @@ -96,7 +84,6 @@ Q_UNUSED(aReason); TIRHandleResult ret = IrAbstractListViewBase::handleCommand(aCommand, aReason); - int leftCount = 0; switch (aCommand) { @@ -106,17 +93,7 @@ break; case EIR_ViewCommand_ACTIVATED: - connect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset* )), - this, SLOT(presetLogoDownload(IRQPreset* ))); - connect(iIsdsClient, SIGNAL(presetLogoDownloadError()), - this, SLOT(presetLogoDownloadError())); - - leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } - + iModel->startDownloadingLogo(); getViewManager()->saveScreenShot(); ret = EIR_NoDefault; break; @@ -124,17 +101,7 @@ case EIR_ViewCommand_DEACTIVATE: iModel->clearAndDestroyLogos(); - iConvertTimer->stop(); - iIsdsClient->isdsLogoDownCancelTransaction(); - //iIconIndexArray must be cleared, because timer call back convertAnother() might be - //called after view is deactivated. In that case, iModel->getImgURL(aIndex); will crash - iIconIndexArray.clear(); - - disconnect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset*)), - this, SLOT(presetLogoDownload(IRQPreset* ))); - disconnect(iIsdsClient, SIGNAL(presetLogoDownloadError()), - this, SLOT(presetLogoDownloadError())); - + iModel->stopDownloadingLogo(); ret = EIR_NoDefault; break; @@ -258,75 +225,6 @@ } } -void IRFavoritesView::startConvert(int aIndex) -{ - QString url = iModel->getImgUrl(aIndex); - - IRQPreset tempPreset; - tempPreset.imgUrl = url; - tempPreset.type = IRQPreset::EIsds; - - iIsdsClient->isdsLogoDownSendRequest(&tempPreset, 0, KBitmapSize, KBitmapSize); -} - -//if the logo is downloaded ok -void IRFavoritesView::presetLogoDownload(IRQPreset* aPreset) -{ - if (NULL == aPreset) - { - presetLogoDownloadError(); - return; - } - - delete iLogoPreset; - iLogoPreset = aPreset; - - if (iLogoPreset->logoData.size() > 0) - { - QPixmap tempMap; - bool ret = tempMap.loadFromData((const unsigned char*)iLogoPreset->logoData.constData(), iLogoPreset->logoData.size()); - if( ret ) - { - QIcon convertIcon(tempMap); - HbIcon *hbIcon = new HbIcon(convertIcon); - int index = iIconIndexArray[0]; - iModel->setLogo(hbIcon, index); - iIconIndexArray.removeAt(0); - int leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } - return; - } - } - - presetLogoDownloadError(); -} - -//if the logo download fails -void IRFavoritesView::presetLogoDownloadError() -{ - iIconIndexArray.removeAt(0); - int leftCount = 0; - leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } -} - -void IRFavoritesView::convertAnother() -{ - iConvertTimer->stop(); - int leftCount = iIconIndexArray.count(); - - if (0 != leftCount) - { - startConvert(iIconIndexArray[0]); - } -} - void IRFavoritesView::modelChanged() { #ifdef SUBTITLE_STR_BY_LOCID @@ -335,7 +233,6 @@ QString headingStr = hbTrId("Favorites") + " (" + QString::number(iModel->rowCount()) + ")"; #endif setHeadingText(headingStr); - updateIconIndexArray(); iListView->reset(); iListView->setCurrentIndex(iModel->index(0)); @@ -349,12 +246,6 @@ QModelIndexList selectedIndexes = iMultiDeleteDialog->selectedModelIndexes(); if (!selectedIndexes.empty()) { - if (!iIconIndexArray.empty()) - { - iIsdsClient->isdsLogoDownCancelTransaction(); - iConvertTimer->stop(); - } - if(!iModel->deleteMultiFavorites(selectedIndexes)) { #ifdef SUBTITLE_STR_BY_LOCID @@ -364,18 +255,12 @@ #endif } - updateIconIndexArray(); #ifdef SUBTITLE_STR_BY_LOCID QString headingStr = hbTrId("txt_irad_subtitle_favorites") + " (" + QString::number(iModel->rowCount()) + ")"; #else QString headingStr = hbTrId("Favorites") + " (" + QString::number(iModel->rowCount()) + ")"; #endif setHeadingText(headingStr); - - if (!iIconIndexArray.empty()) - { - iConvertTimer->start(); - } } } } @@ -463,20 +348,6 @@ iStationShare->shareStations(*iModel->getPreset(current)); } -void IRFavoritesView::updateIconIndexArray() -{ - iIconIndexArray.clear(); - - for (int i = 0; i < iModel->rowCount(); ++i) - { - if (iModel->getImgUrl(i) != "" - && !iModel->isLogoReady(i)) - { - iIconIndexArray.append(i); - } - } -} - void IRFavoritesView::renameContextAction() { int current = iListView->currentIndex().row(); @@ -489,9 +360,9 @@ dlg->setPromptText(hbTrId("Rename")); #endif HbLineEdit* lineEdit = dlg->lineEdit(); - lineEdit->setMaxLength(256); + lineEdit->setMaxLength(KMaxLineEditLength); dlg->setInputMode(HbInputDialog::TextInput); - dlg->setValue(preset->name); + dlg->setValue(preset->nickName); dlg->setAttribute(Qt::WA_DeleteOnClose); dlg->open(this, SLOT(renameConfirmed(HbAction*))); } @@ -509,16 +380,9 @@ void IRFavoritesView::deleteContextAction() { - if (!iIconIndexArray.empty()) - { - iIsdsClient->isdsLogoDownCancelTransaction(); - iConvertTimer->stop(); - } - int current = iListView->currentIndex().row(); if (iModel->deleteOneFavorite(current)) { - updateIconIndexArray(); #ifdef SUBTITLE_STR_BY_LOCID QString headingStr = hbTrId("txt_irad_subtitle_favorites") + " (" + QString::number(iModel->rowCount()) + ")"; #else @@ -533,12 +397,7 @@ #else popupNote(hbTrId("Operation failed"), HbMessageBox::MessageTypeWarning); #endif - } - - if (!iIconIndexArray.empty()) - { - iConvertTimer->start(); - } + } } void IRFavoritesView::renameConfirmed(HbAction *aAction) @@ -588,16 +447,6 @@ } } -void IRFavoritesView::initToolBar() -{ - //add HbActions to the toolbar, the HbActions have been created in IrAbstractListViewBase - HbToolBar *viewToolBar = toolBar(); - viewToolBar->addAction(iGenresAction); - viewToolBar->addAction(iCollectionsAction); - viewToolBar->addAction(iFavoritesAction); - viewToolBar->addAction(iSearchAction); -} - void IRFavoritesView::popupDeleteContextConfirmMessageBox() { #ifdef SUBTITLE_STR_BY_LOCID diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irfileviewservice.cpp --- a/qtinternetradio/ui/src/irfileviewservice.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irfileviewservice.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,17 +15,20 @@ * */ #include +#include #include "irfileviewservice.h" #include "irplaylist.h" #include "irapplication.h" #include "irqsettings.h" +#include "irqlogger.h" #define INTERNETRADIO_SERVICE_NAME "internet_radio_10_1.com.nokia.symbian.IFileView" IRFileViewService::IRFileViewService(IRApplication *aApplication) : XQServiceProvider(INTERNETRADIO_SERVICE_NAME), iApplication(aApplication), iPlayList(NULL) { + LOG_METHOD; if (XQServiceUtil::isService()) { //Publishes all public slots on this object @@ -45,6 +48,7 @@ void IRFileViewService::view(const QString &aFileName) { + LOG_METHOD; if (NULL == iPlayList) { iPlayList = new IRPlayList; @@ -69,7 +73,10 @@ } } -void IRFileViewService::view(const XQSharableFile &/*aSharableFile*/) +void IRFileViewService::view(const XQSharableFile &aSharableFile) { - + LOG_METHOD; + QString name = aSharableFile.fileName(); + LOG(STRING2CHAR(name)); + view(name); } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irhistorymodel.cpp --- a/qtinternetradio/ui/src/irhistorymodel.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irhistorymodel.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,37 +15,58 @@ * */ -#include +#include +#include -#include "irqsonghistoryinfo.h" -#include "irqsonghistoryengine.h" +#include "irqisdsdatastructure.h" +#include "channelhistorywrapper.h" +#include "urlinfowrapper.h" #include "irhistorymodel.h" +#include "irqisdsclient.h" +#include "irlogoprovider.h" -IRHistoryModel::IRHistoryModel(QObject *aParent) : QAbstractListModel(aParent) +IRHistoryModel::IRHistoryModel(QObject *aParent) : QAbstractListModel(aParent), + iHistoryEngine(NULL), iUrlInfoWrapper(NULL), iStationLogo(NULL), + iIsdsClient(NULL), iLogoProvider(NULL), iTimer(NULL) { iStationLogo = new HbIcon("qtg_large_internet_radio"); - iHistoryEngine = IRQSongHistoryEngine::openInstance(); - getAllList(); + iHistoryEngine = new channelHistoryWrapper(); + + iUrlInfoWrapper = new urlInfoWrapper(); + + iIsdsClient = IRQIsdsClient::openInstance(); + iLogoProvider = new IRLogoProvider(iIsdsClient); + + iTimer = new QTimer(); + iTimer->setInterval(10); + connect(iTimer, SIGNAL(timeout()), this, SLOT(downloadNextLogo())); + + refreshModel(); } IRHistoryModel::~IRHistoryModel() { + clearModel(); + delete iStationLogo; iStationLogo = NULL; - - clearAndDestroyLogos(); - - while (!iHistoryList.isEmpty()) + + delete iHistoryEngine; + iHistoryEngine = NULL; + + delete iUrlInfoWrapper; + iUrlInfoWrapper = NULL; + + stopDownloadingLogo(); + + delete iLogoProvider; + if (iIsdsClient) { - delete iHistoryList.takeFirst(); + iIsdsClient->closeInstance(); + iIsdsClient = NULL; } - - if (iHistoryEngine) - { - iHistoryEngine->closeInstance(); - iHistoryEngine = NULL; - } + delete iTimer; } int IRHistoryModel::rowCount(const QModelIndex &aParent) const @@ -56,11 +77,17 @@ QString IRHistoryModel::getImageUrl(int aRow) const { - return iHistoryList.at(aRow)->getImageUrl(); + return iHistoryList.at(aRow)->imgUrl; } void IRHistoryModel::setLogo(HbIcon *aIcon, int aIndex) { + int elementCountNeedToAdd = aIndex + 1 - iLogos.size(); + while (elementCountNeedToAdd > 0) + { + iLogos.append(NULL); + elementCountNeedToAdd--; + } iLogos[aIndex] = aIcon; emit dataChanged(index(aIndex), index(aIndex)); } @@ -82,10 +109,10 @@ QVariantList list; int row = aIndex.row(); - QString primaryText = iHistoryList.at(row)->getChannelName(); + QString primaryText = iHistoryList.at(row)->nickName; list.append(primaryText); // fix bug #9888,if left descriptions as blank, only one line appears - QString tempDes = iHistoryList.at(row)->getChannelDesc(); + QString tempDes = iHistoryList.at(row)->shortDesc; if (0 == tempDes.length()) { tempDes = " "; @@ -98,23 +125,29 @@ { QVariantList list; int row = aIndex.row(); - const HbIcon *icon = iLogos.value(row); - if (icon) + if(row < iLogos.size()) { - list.append(*icon); + const HbIcon *icon = iLogos[row]; + if (icon) + { + list.append(*icon); + } + else + { + list.append(*iStationLogo); + } } else { list.append(*iStationLogo); - } - + } return list; } return QVariant(); } -IRQSongHistoryInfo* IRHistoryModel::getHistoryInfo(int aIndex) +IRQPreset* IRHistoryModel::getHistoryInfo(int aIndex) { if (aIndex >= 0 && aIndex < iHistoryList.count()) { @@ -124,54 +157,246 @@ return NULL; } -void IRHistoryModel::clearAllList() +void IRHistoryModel::clearAllHistory() { - while (!iHistoryList.isEmpty()) + if (iHistoryEngine->deleteChannelHistory()) { - IRQSongHistoryInfo *firstItem = iHistoryList.takeFirst(); - delete firstItem; + clearModel(); + emit modelChanged(); } - iHistoryEngine->clearAllHistory(); - clearAndDestroyLogos(); - emit modelChanged(); } bool IRHistoryModel::checkHistoryUpdate() { - getAllList(); + refreshModel(); return true; } void IRHistoryModel::clearAndDestroyLogos() { - for (QMap::iterator it = iLogos.begin(); it != iLogos.end(); ++it) + int size = iLogos.size(); + for (int i = 0; i < size; i ++) { - delete it.value(); + delete iLogos[i]; + iLogos[i] = NULL; } - iLogos.clear(); } -void IRHistoryModel::getAllList() +void IRHistoryModel::refreshModel() { - iHistoryEngine->getAllHistory(iHistoryList); - + clearModel(); + + QList* historySet = NULL; + historySet = iHistoryEngine->getChannelHistory(); + + if (NULL == historySet) + { + return; + } + int dataSize = historySet->size(); + for (int i = 0; i < dataSize; i++) + { + IRQPreset* preset = new IRQPreset(); + preset->presetId = (*(historySet->at(i) + channelId)).toUInt(); + preset->name = (*(historySet->at(i) + channelName)).toString(); + preset->nickName = (*(historySet->at(i) + channelNickName)).toString(); + + preset->genreName = (*(historySet->at(i) + genreName)).toString(); + preset->genreId = (*(historySet->at(i) + genreId)).toString(); + preset->languageName = (*(historySet->at(i) + languageName)).toString(); + preset->languageCode = (*(historySet->at(i) + languageCode)).toString(); + + preset->countryName = (*(historySet->at(i) + countryName)).toString(); + preset->countryCode = (*(historySet->at(i) + countryCode)).toString(); + preset->description = (*(historySet->at(i) + description)).toString(); + preset->shortDesc = (*(historySet->at(i) + shortDesc)).toString(); + + preset->lastModified = (*(historySet->at(i) + lastModified)).toString(); + preset->type = (*(historySet->at(i) + channelType)).toInt(); + preset->musicStoreStatus = (*(historySet->at(i) + musicStoreStatus)).toString(); + + preset->imgUrl = (*(historySet->at(i) + imgUrl)).toString(); + + preset->advertisementUrl = (*(historySet->at(i) + advertisementUrl)).toString(); + preset->advertisementInUse = (*(historySet->at(i) + advertisementInUse)).toString(); + + columnMap selectCriteria; + selectCriteria.insert(channelId, QString::number(preset->presetId)); + + QList* urlInfoList = iUrlInfoWrapper->getUrlInfo(&selectCriteria, NULL, i, dataSize-1); + if (NULL == urlInfoList) + { + delete preset; + preset = NULL; + continue; + } + int urlSize = urlInfoList->size(); + for (int j = 0; j < urlSize; j++) + { + IRQChannelServerURL urlInfo; + urlInfo.serverName = preset->name; + urlInfo.url = (*(urlInfoList->at(j) + channelUrl_URL)).toString(); + urlInfo.bitrate = (*(urlInfoList->at(j) + bitRate_URL)).toInt(); + preset->insertChannelServer(urlInfo); + } + + while(false == urlInfoList->isEmpty()) + { + delete []urlInfoList->takeFirst(); + } + urlInfoList->clear(); + + delete urlInfoList; + urlInfoList = NULL; + + iHistoryList.append(preset); + } + + while(false == historySet->isEmpty()) + { + delete []historySet->takeFirst(); + } + historySet->clear(); + + delete historySet; + historySet = NULL; + + updateIconIndexArray(); + emit modelChanged(); } -bool IRHistoryModel::deleteOneItem(int aIndex) +void IRHistoryModel::clearModel() +{ + while (!iHistoryList.isEmpty()) + { + IRQPreset *firstItem = iHistoryList.takeFirst(); + delete firstItem; + } + + clearAndDestroyLogos(); + updateIconIndexArray(); +} + +bool IRHistoryModel::deleteHistory(int aIndex) { - bool ret = iHistoryEngine->deleteOneItem(aIndex); - - if( !ret ) + if (aIndex < 0 && aIndex >= iHistoryList.count()) + { + return false; + } + + if (!iIconIndexArray.empty()) + { + iIsdsClient->isdsLogoDownCancelTransaction(); + iTimer->stop(); + } + + columnMap selectCriteria; + selectCriteria.insert(channelId, QString::number(iHistoryList.at(aIndex)->presetId)); + + if (!iHistoryEngine->deleteChannelHistory(&selectCriteria)) { return false; } beginRemoveRows(QModelIndex(), aIndex, aIndex); + + delete iHistoryList.at(aIndex); iHistoryList.removeAt(aIndex); + + if (aIndex < iLogos.size()) + { + delete iLogos[aIndex]; + iLogos.removeAt(aIndex); + } + + updateIconIndexArray(); + endRemoveRows(); - emit modelChanged(); + emit modelChanged(); + + if (!iIconIndexArray.empty()) + { + iTimer->start(); + } + return true; } + +void IRHistoryModel::startDownloadingLogo() +{ + iLogoProvider->activate(this, SLOT(logoData(const QByteArray&))); + iTimer->start(); +} + +void IRHistoryModel::stopDownloadingLogo() +{ + iIsdsClient->isdsLogoDownCancelTransaction(); + iTimer->stop(); + iIconIndexArray.clear(); + iLogoProvider->deactivate(); +} + +void IRHistoryModel::downloadNextLogo() +{ + iTimer->stop(); + int leftCount = iIconIndexArray.count(); + + if (0 != leftCount) + { + iLogoProvider->getLogo(iHistoryList.at(iIconIndexArray[0])); + } +} + +void IRHistoryModel::logoData(const QByteArray &aLogoData) +{ + if (aLogoData.size() > 0) + { + QPixmap tempMap; + bool ret = tempMap.loadFromData((const unsigned char*)aLogoData.constData(), aLogoData.size()); + if( ret ) + { + QIcon convertIcon(tempMap); + HbIcon *hbIcon = new HbIcon(convertIcon); + int index = iIconIndexArray[0]; + setLogo(hbIcon, index); + } + } + + iIconIndexArray.removeAt(0); + int leftCount = iIconIndexArray.count(); + if( leftCount > 0 ) + { + iTimer->start(); + } +} + +bool IRHistoryModel::isLogoReady(int aIndex) const +{ + int logoListCount = iLogos.count(); + if (aIndex >= 0 + && aIndex < logoListCount) + { + return iLogos[aIndex] != NULL; + } + else + { + return false; + } +} + +void IRHistoryModel::updateIconIndexArray() +{ + iIconIndexArray.clear(); + + for (int i = 0; i < rowCount(); ++i) + { + if (getImageUrl(i) != "" && !isLogoReady(i)) + { + iIconIndexArray.append(i); + } + } +} + diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irhistoryview.cpp --- a/qtinternetradio/ui/src/irhistoryview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irhistoryview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -18,8 +18,6 @@ #include #include #include -#include -#include #include "irviewmanager.h" #include "irapplication.h" @@ -28,16 +26,13 @@ #include "irhistoryview.h" #include "irqisdsdatastructure.h" #include "irhistorymodel.h" -#include "irqsonghistoryinfo.h" #include "irqnetworkcontroller.h" -#include "irqutility.h" #include "irqenums.h" #include "irqfavoritesdb.h" #include "irstationdetailsview.h" #include "iruidefines.h" -const int KBitmapSize = 59; const QString KActionAddName("Add"); const QString KActionDeleteName("Delete"); const QString KActionDetailsName("Details"); @@ -48,8 +43,7 @@ * Description : constructor */ IRHistoryView::IRHistoryView(IRApplication *aApplication, TIRViewId aViewId) : - IrAbstractListViewBase(aApplication, aViewId), iClearHistoryAction(NULL), - iLogoPreset(NULL) + IrAbstractListViewBase(aApplication, aViewId), iClearHistoryAction(NULL) { iModel = new IRHistoryModel(this); iListView->setModel(iModel); @@ -61,14 +55,10 @@ iClearHistoryAction = new HbAction(hbTrId("Clear list"), menu()); #endif - iConvertTimer = new QTimer(this); - iConvertTimer->setInterval(10); - connect(iClearHistoryAction, SIGNAL(triggered()), this, SLOT(popupClearHistoryConfirmMessageBox())); connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)), this, SLOT(networkRequestNotified(IRQNetworkEvent))); connect(iModel, SIGNAL(modelChanged()), this, SLOT(modelChanged())); - connect(iConvertTimer, SIGNAL(timeout()), this, SLOT(convertAnother())); } void IRHistoryView::popupClearHistoryConfirmMessageBox() { @@ -83,8 +73,6 @@ */ IRHistoryView::~IRHistoryView() { - delete iLogoPreset; - iLogoPreset = NULL; } /* @@ -98,7 +86,6 @@ { Q_UNUSED(aReason); TIRHandleResult ret = IrAbstractListViewBase::handleCommand(aCommand, aReason); - int leftCount = 0; switch (aCommand) { @@ -109,33 +96,12 @@ break; case EIR_ViewCommand_ACTIVATED: - connect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset* )), - this, SLOT(presetLogoDownload(IRQPreset* ))); - connect(iIsdsClient, SIGNAL(presetLogoDownloadError()), - this, SLOT(presetLogoDownloadError())); - - leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } + iModel->startDownloadingLogo(); ret = EIR_NoDefault; break; case EIR_ViewCommand_DEACTIVATE: - - iModel->clearAndDestroyLogos(); - iConvertTimer->stop(); - iIsdsClient->isdsLogoDownCancelTransaction(); - - //iIconIndexArray must be cleared, because timer call back convertAnother() might be - //called after view is deactivated. In that case, iModel->getImgURL(aIndex); will crash - iIconIndexArray.clear(); - - disconnect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset*)), - this, SLOT(presetLogoDownload(IRQPreset* ))); - disconnect(iIsdsClient, SIGNAL(presetLogoDownloadError()), - this, SLOT(presetLogoDownloadError())); + iModel->stopDownloadingLogo(); ret = EIR_NoDefault; break; @@ -156,24 +122,21 @@ void IRHistoryView::handleItemSelected() { int index = iListView->currentIndex().row(); - IRQSongHistoryInfo *hisInfo = iModel->getHistoryInfo(index); - if (NULL == hisInfo) + IRQPreset *preset = iModel->getHistoryInfo(index); + if (NULL == preset) { return; } - IRQPreset preset; - convertStationHistory2Preset(*hisInfo, preset); - - if (hisInfo->getChannelType()) + if (preset->type) { // channel from isds server - iPlayController->connectToChannel(&preset, EIRQHistoryIsds); + iPlayController->connectToChannel(preset, EIRQHistoryIsds); } else { // user defined channel - iPlayController->connectToChannel(&preset,EIRQHistoryAdhoc); + iPlayController->connectToChannel(preset,EIRQHistoryAdhoc); } } @@ -183,7 +146,7 @@ aNeedNetwork = true; int index = iListView->currentIndex().row(); - iPlayController->setConnectingStationName(iModel->getHistoryInfo(index)->getChannelName()); + iPlayController->setConnectingStationName(iModel->getHistoryInfo(index)->nickName); } #endif @@ -220,19 +183,7 @@ if (iModel->checkHistoryUpdate()) { iListView->reset(); - iListView->setCurrentIndex(iModel->index(0)); - - //because we get all the history refreshed, so clear the icon array. - iIconIndexArray.clear(); - - //initialize the iconindices - for (int i = 0; i < iModel->rowCount(); ++i) - { - if (iModel->getImageUrl(i) != "") - { - iIconIndexArray.append(i); - } - } + iListView->setCurrentIndex(iModel->index(0)); } } @@ -247,10 +198,7 @@ { if (aAction == dialog->actions().at(0)) { - iIconIndexArray.clear(); - iModel->clearAllList(); - iConvertTimer->stop(); - iIsdsClient->isdsLogoDownCancelTransaction(); + iModel->clearAllHistory(); iListView->reset(); } } @@ -270,78 +218,6 @@ } } -void IRHistoryView::startConvert(int aIndex) -{ - QString url = iModel->getImageUrl(aIndex); - - IRQPreset tempPreset; - tempPreset.imgUrl = url; - tempPreset.type = IRQPreset::EIsds; - iIsdsClient->isdsLogoDownSendRequest(&tempPreset, 0, KBitmapSize, KBitmapSize); -} - -//if the logo is downloaded ok -void IRHistoryView::presetLogoDownload(IRQPreset* aPreset) -{ - if (NULL == aPreset) - { - presetLogoDownloadError(); - return; - } - - - delete iLogoPreset; - iLogoPreset = aPreset; - - if (iLogoPreset->logoData.size() > 0) - { - QPixmap tempMap; - bool ret = tempMap.loadFromData((const unsigned char*)iLogoPreset->logoData.constData(), iLogoPreset->logoData.size()); - if( ret ) - { - QIcon convertIcon(tempMap); - HbIcon *hbIcon = new HbIcon(convertIcon); - int index = iIconIndexArray[0]; - iModel->setLogo(hbIcon, index); - iIconIndexArray.removeAt(0); - int leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } - return; - } - } - - presetLogoDownloadError(); -} - - - -//if the logo download fails -void IRHistoryView::presetLogoDownloadError() -{ - // if the logo download fails, try to download the next - iIconIndexArray.removeAt(0); - int leftCount = 0; - leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } -} - -void IRHistoryView::convertAnother() -{ - iConvertTimer->stop(); - int leftCount = iIconIndexArray.count(); - - if (0 != leftCount) - { - startConvert(iIconIndexArray[0]); - } -} - void IRHistoryView::modelChanged() { #ifdef SUBTITLE_STR_BY_LOCID @@ -376,10 +252,8 @@ void IRHistoryView::addContextAction() { QModelIndex current = iListView->currentIndex(); - IRQSongHistoryInfo * currentInfo = iModel->getHistoryInfo(current.row()); - IRQPreset preset; - convertStationHistory2Preset(*currentInfo, preset); - int retValue = iFavorites->addPreset(preset); + IRQPreset * preset = iModel->getHistoryInfo(current.row()); + int retValue = iFavorites->addPreset(*preset); HbNotificationDialog *add2FavNote = new HbNotificationDialog(); add2FavNote->setModal(true); @@ -427,7 +301,7 @@ void IRHistoryView::deleteContextAction() { int current = iListView->currentIndex().row(); - bool ret = iModel->deleteOneItem(current); + bool ret = iModel->deleteHistory(current); if( !ret ) { #ifdef SUBTITLE_STR_BY_LOCID @@ -440,13 +314,10 @@ void IRHistoryView::detailsContextAction() { int selectedItemIndex = iListView->currentIndex().row(); - IRQSongHistoryInfo *channelDetailInfo = iModel->getHistoryInfo(selectedItemIndex); - - IRQPreset channelPreset; - convertStationHistory2Preset(*channelDetailInfo, channelPreset); + IRQPreset *channelPreset = iModel->getHistoryInfo(selectedItemIndex); IRStationDetailsView *stationDetailsView = static_cast(getViewManager()->getView(EIRView_StationDetailsView, true)); - stationDetailsView->setDetails(&channelPreset); + stationDetailsView->setDetails(channelPreset); getViewManager()->activateView(EIRView_StationDetailsView); } @@ -484,25 +355,6 @@ contextMenu->open(); } -void IRHistoryView::convertStationHistory2Preset(const IRQSongHistoryInfo& aHistoryInfo, IRQPreset& aPreset) -{ - IRQChannelServerURL url; - url.serverName = aHistoryInfo.getChannelName(); - url.url = aHistoryInfo.getStreamUrl(); - url.bitrate = aHistoryInfo.getBitrate(); - aPreset.name = aHistoryInfo.getChannelName(); - aPreset.insertChannelServer(url); - aPreset.type = aHistoryInfo.getChannelType(); - aPreset.presetId = aHistoryInfo.getChannelId(); - aPreset.shortDesc = aHistoryInfo.getChannelDesc(); - aPreset.imgUrl = aHistoryInfo.getImageUrl(); - aPreset.genreName = aHistoryInfo.getGenreName(); - aPreset.countryName = aHistoryInfo.getCountryName(); - aPreset.languageName = aHistoryInfo.getLanguageName(); - aPreset.description = aHistoryInfo.getChannelDesc(); - aPreset.musicStoreStatus = aHistoryInfo.getMusicStoreStatus(); -} - diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irlastplayedstationinfo.cpp --- a/qtinternetradio/ui/src/irlastplayedstationinfo.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irlastplayedstationinfo.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -64,7 +64,7 @@ #ifdef HS_WIDGET_ENABLED QSettings settings(KIrSettingOrganization, KIrSettingApplication); - settings.setValue(KIrSettingStationName,iLastPlayedStation->name); + settings.setValue(KIrSettingStationName,iLastPlayedStation->nickName); #endif QFile file(KFileName); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irlogoprovider.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/src/irlogoprovider.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -0,0 +1,123 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#include + +#include "irlogoprovider.h" +#include "imgwrapper.h" +#include "irqisdsclient.h" +#include "irqisdsdatastructure.h" +#include "iruidefines.h" + + +IRLogoProvider::IRLogoProvider(IRQIsdsClient *aIsdsClient) : iIsdsClient(aIsdsClient) +{ + +} + +IRLogoProvider::~IRLogoProvider() +{ +} + +void IRLogoProvider::getLogo(IRQPreset *aPreset) +{ + imgWrapper wrapper; + columnMap map; + + map.insert(channelId, QString::number(aPreset->presetId)); + map.insert(imgUrl, aPreset->imgUrl); + QList *dataSet = wrapper.getImg(&map); + if (dataSet) + { + //logo data has been saved into database + if (dataSet->count() > 0) + { + QVariant *row = dataSet->at(0); + QByteArray logo = row[sLogoGet].toByteArray(); + if (logo.size() > 0) + { + emit logoData(logo); + } + else + { + //logo data hasn't been saved into database, call isds client to get it + iIsdsClient->isdsLogoDownSendRequest(aPreset, 0, KBitmapSize, KBitmapSize); + } + } + else + { + //logo data hasn't been saved into database, call isds client to get it + iIsdsClient->isdsLogoDownSendRequest(aPreset, 0, KBitmapSize, KBitmapSize); + } + + while (!dataSet->isEmpty()) + { + delete []dataSet->takeFirst(); + } + delete dataSet; + } + else + { + //logo data hasn't been saved into database, call isds client to get it + iIsdsClient->isdsLogoDownSendRequest(aPreset, 0, KBitmapSize, KBitmapSize); + } +} + +void IRLogoProvider::activate(const QObject *aReceiver, const char *aFunc) +{ + connect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset* )), + this, SLOT(presetLogoDownload(IRQPreset* ))); + connect(iIsdsClient, SIGNAL(presetLogoDownloadError()), + this, SLOT(presetLogoDownloadError())); + connect(this, SIGNAL(logoData(const QByteArray&)), aReceiver, aFunc); +} + +void IRLogoProvider::deactivate() +{ + disconnect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset*)), + this, SLOT(presetLogoDownload(IRQPreset* ))); + disconnect(iIsdsClient, SIGNAL(presetLogoDownloadError()), + this, SLOT(presetLogoDownloadError())); + disconnect(SIGNAL(logoData(const QByteArray&))); +} + +void IRLogoProvider::presetLogoDownload(IRQPreset* aPreset) +{ + if (NULL == aPreset) + { + presetLogoDownloadError(); + return; + } + + //logo data is available, save it to database + imgWrapper wrapper; + columnMap rowData; + rowData.insert(imgUrl, aPreset->imgUrl); + + logoMap logo; + logo.insert(bLogo, QByteArray()); + logo.insert(sLogo, aPreset->logoData); + bool ret = wrapper.updateImg(&rowData, aPreset->presetId, &logo); + + emit logoData(aPreset->logoData); + delete aPreset; +} + +void IRLogoProvider::presetLogoDownloadError() +{ + QByteArray data; + emit logoData(data); +} diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irnowplayingview.cpp --- a/qtinternetradio/ui/src/irnowplayingview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irnowplayingview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -26,11 +26,6 @@ #include #include -#ifdef NOWPLAYING_VIEW_OPTION_B -#include -#include -#endif - #include "irviewmanager.h" #include "irapplication.h" #include "irplaycontroller.h" @@ -70,13 +65,11 @@ static const QString KSongColor("qtc_lcd_content_normal"); static const QString KStationColor("qtc_lcd_content_normal"); -#ifdef NOWPLAYING_VIEW_OPTION_B -static const QString KLcdGraphics("qtg_fr_lcd"); -#endif - #ifdef STATISTIC_REPORT_TEST_ENABLED -static const int KDummySongRecognitionUid = 0xE4EF7D71; -static const int KDummyMusicStoreUid = 0xE609761B; +static const int KDummySongRecognitionUid = 0xE4EF7D71; +static const int KIRMusicStoreUid = 0xE609761B; +#else +static const int KIRMusicStoreUid = 0; #endif static void saveStationLogo(const QPixmap &aStationLogo); @@ -255,17 +248,7 @@ iSongNameLabel->setTextColor(HbColorScheme::color(KSongColor)); iSongNameMarquee->setTextColor(HbColorScheme::color(KSongColor)); iStationName->setTextColor(HbColorScheme::color(KStationColor)); - -#ifdef NOWPLAYING_VIEW_OPTION_B - HbWidget * viewContainer = qobject_cast (iLoader.findObject(VIEW_CONTAINER)); - HbFrameDrawer* drawer = new HbFrameDrawer(KLcdGraphics, HbFrameDrawer::NinePieces); - HbFrameItem* backgroundItem = new HbFrameItem(drawer, viewContainer); - if (backgroundItem) - { - viewContainer->setBackgroundItem(backgroundItem); - } -#endif - + #ifdef ADV_ENABLED iAdvImage = qobject_cast (iLoader.findObject( NOW_PLAYING_VIEW_OBJECT_ADVERTISEMENT_IMAGE)); iAdvImage->setIcon(HbIcon(KDefaultStationLogo)); @@ -285,7 +268,7 @@ if(iPlayController->getNowPlayingPreset()) { - iStationName->setPlainText(iPlayController->getNowPlayingPreset()->name); + iStationName->setPlainText(iPlayController->getNowPlayingPreset()->nickName); } loadStationLogo(); } @@ -481,7 +464,7 @@ if (playList && 1 == playList->getNumberOfEntries()) { IRQPreset *preset = playList->getPresetForEntry(0); - iStationName->setPlainText(preset->name); + iStationName->setPlainText(preset->nickName); iFindinNmsAllowed = (0 == preset->musicStoreStatus.compare("yes",Qt::CaseInsensitive)); #ifdef HS_WIDGET_ENABLED iPlayController->reloadNowplayingPreset(preset,false,EIRQAdhocExternal); @@ -503,7 +486,7 @@ IRQPreset *lastPreset = lastPlayedStationInfo->getLastPlayedStation(); if (lastPreset) { - iStationName->setPlainText(lastPreset->name); + iStationName->setPlainText(lastPreset->nickName); iFindinNmsAllowed = (0 == lastPreset->musicStoreStatus.compare("yes",Qt::CaseInsensitive)); } else @@ -748,53 +731,59 @@ void IRNowPlayingView::handleMusicStoreAction() { LOG_METHOD; - - if(!iFindinNmsAllowed) - { -#ifdef STATISTIC_REPORT_TEST_ENABLED - if(IRQUtility::launchAppByUid(KDummyMusicStoreUid)) + + if (!IRQUtility::findAppByUid(KIRMusicStoreUid)) // if no music store, coming soon is shown. { - iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,iPlayController->getNowPlayingPreset()->presetId); - } -#else // STATISTIC_REPORT_TEST_ENABLED #ifdef SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("txt_irad_info_not_allowed_by_this_station"), HbMessageBox::MessageTypeInformation); -#else // SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("Not allowed by station"), HbMessageBox::MessageTypeInformation); -#endif // SUBTITLE_STR_BY_LOCID -#endif // STATISTIC_REPORT_TEST_ENABLED - return; + popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation); +#else + popupNote(hbTrId("Service Coming Soon"), HbMessageBox::MessageTypeInformation); +#endif + return; } - if(!iSongNameAvailable) - { -#ifdef STATISTIC_REPORT_TEST_ENABLED - if(IRQUtility::launchAppByUid(KDummyMusicStoreUid)) - { - iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,iPlayController->getNowPlayingPreset()->presetId); + bool launchResult = false; + if (iFindinNmsAllowed && iSongNameAvailable) + { + // TODO : launch music store with search result page + launchResult = IRQUtility::launchAppByUid(KIRMusicStoreUid); + if (launchResult) + { + if (iPlayController->getNowPlayingPreset()->type) + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsFind,iPlayController->getNowPlayingPreset()->presetId); + } + else + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsFind,0); + } + } } -#else // STATISTIC_REPORT_TEST_ENABLED -#ifdef SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("txt_irad_info_no_song_info"), HbMessageBox::MessageTypeInformation); -#else // SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("No song info"), HbMessageBox::MessageTypeInformation); -#endif // SUBTITLE_STR_BY_LOCID -#endif // STATISTIC_REPORT_TEST_ENABLED - return; + else + { + // TODO : lunch music store with homepage + launchResult = IRQUtility::launchAppByUid(KIRMusicStoreUid); + if (launchResult) + { + if (iPlayController->getNowPlayingPreset()->type) + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,iPlayController->getNowPlayingPreset()->presetId); + } + else + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,0); + } + } } -#ifdef STATISTIC_REPORT_TEST_ENABLED - if(IRQUtility::launchAppByUid(KDummyMusicStoreUid)) - { - iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsFind,iPlayController->getNowPlayingPreset()->presetId); + if (!launchResult) + { +#ifdef SUBTITLE_STR_BY_LOCID + popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation); +#else + popupNote(hbTrId("Music store not ready"), HbMessageBox::MessageTypeInformation); +#endif } -#else // STATISTIC_REPORT_TEST_ENABLED -#ifdef SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation); -#else // SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("Music store not ready"), HbMessageBox::MessageTypeInformation); -#endif // SUBTITLE_STR_BY_LOCID -#endif // STATISTIC_REPORT_TEST_ENABLED } void IRNowPlayingView::handleIdentifySongAction() diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/iropenwebaddressview.cpp --- a/qtinternetradio/ui/src/iropenwebaddressview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/iropenwebaddressview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -38,7 +38,7 @@ #include "irqenums.h" #include "iruidefines.h" #include "irqsettings.h" -static const int MAX_URL_CHARACTOR_NUMBER = 255; + static const int MAX_DATA_FORM_NUMBER_ROWS = 4; static const int MIN_DATA_FORM_NUMBER_ROWS = 1; @@ -101,7 +101,7 @@ connect(iPlayButton, SIGNAL(released()), this, SLOT(play())); HbStyleLoader::registerFilePath(OPEN_WEB_ADDRESS_VIEW_PUSH_BUTTON_CSS); HbStyleLoader::registerFilePath(OPEN_WEB_ADDRESS_VIEW_PUSH_BUTTON_WIDGETML); - + connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)), this, SLOT(networkRequestNotified(IRQNetworkEvent))); @@ -115,8 +115,8 @@ { if (iSettings) { - iSettings->setManuallyInputtedStationUrl(iUrl->contentWidgetData(QString("text")).toString()); - iSettings->setManuallyInputtedStationName(iName->contentWidgetData(QString("text")).toString()); + iSettings->setManuallyInputtedStationUrl(iUrlEditorPtr->text()); + iSettings->setManuallyInputtedStationName(iNameEditorPtr->text()); iSettings->closeInstance(); } } @@ -196,13 +196,13 @@ */ void IROpenWebAddressView::initUrlAndName() { - QString temp = iUrl->contentWidgetData(QString("text")).toString(); + QString temp = iUrlEditorPtr->text(); if (0 == temp.size()) { iUrl->setContentWidgetData(QString("text"), QString("http://")); } - temp = iName->contentWidgetData(QString("text")).toString(); + temp = iNameEditorPtr->text(); if (0 == temp.size()) { #ifdef SUBTITLE_STR_BY_LOCID @@ -223,7 +223,7 @@ #else iUrl = new HbDataFormModelItem(HbDataFormModelItem::TextItem, hbTrId("Station address")); #endif - iUrl->setContentWidgetData("maxLength",MAX_URL_CHARACTOR_NUMBER); + iUrl->setContentWidgetData("maxLength", KMaxLineEditLength); if (Qt::Horizontal == getViewManager()->orientation()) { iUrl->setContentWidgetData("maxRows", MIN_DATA_FORM_NUMBER_ROWS); @@ -237,7 +237,7 @@ iName = new HbDataFormModelItem( HbDataFormModelItem::TextItem, hbTrId("Station name")); #endif - iName->setContentWidgetData("maxLength", MAX_URL_CHARACTOR_NUMBER); + iName->setContentWidgetData("maxLength", KMaxLineEditLength); if (Qt::Horizontal == getViewManager()->orientation()) { iName->setContentWidgetData("maxRows", MIN_DATA_FORM_NUMBER_ROWS); @@ -313,7 +313,7 @@ { IRQChannelServerURL server; - server.url = iUrl->contentWidgetData(QString("text")).toString(); + server.url = iUrlEditorPtr->text(); server.url.remove(" "); // check the URL @@ -329,7 +329,7 @@ // Give it an initial value, supposed to be 32 kbps. server.bitrate = 32; - server.serverName = iName->contentWidgetData(QString("text")).toString(); + server.serverName = iNameEditorPtr->text(); if (0 == server.serverName.size()) { #ifdef SUBTITLE_STR_BY_LOCID @@ -341,8 +341,7 @@ aPreset.insertChannelServer(server); aPreset.name = server.serverName; - aPreset.description = hbTrId("txt_irad_info_added_station_description"); - aPreset.shortDesc = aPreset.description; + aPreset.description = ""; aPreset.type = 0; aPreset.presetId = 0; aPreset.uniqID = 0; @@ -395,9 +394,9 @@ && event->type() == QEvent::FocusIn ) { #ifdef SUBTITLE_STR_BY_LOCID - if(hbTrId("txt_irad_info_unnamed_station") == iName->contentWidgetData(QString("text")).toString()) + if(hbTrId("txt_irad_info_unnamed_station") == iNameEditorPtr->text()) #else - if(hbTrId("Unnamed station") == iName->contentWidgetData(QString("text")).toString()) + if(hbTrId("Unnamed station") == iNameEditorPtr->text()) #endif { iName->setContentWidgetData(QString("text"), QString("")); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irplaycontroller.cpp --- a/qtinternetradio/ui/src/irplaycontroller.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irplaycontroller.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -16,7 +16,7 @@ */ #include #include -#ifdef Q_CC_NOKIAX86 +#ifdef PLATSIM_DEBUG_CONF #include #include #endif @@ -30,19 +30,22 @@ #include "irviewmanager.h" #include "irqisdsdatastructure.h" #include "irlastplayedstationinfo.h" -#include "irqnetworkcontroller.h" -#include "irqsonghistoryengine.h" +#include "irqnetworkcontroller.h" #include "irqmetadata.h" #include "irqsettings.h" #include "irqfavoritesdb.h" #include "irqstatisticsreporter.h" #include "irenummapper.h" #include "irqlogger.h" +#include "irdbwrapper.h" +#include "urlinfowrapper.h" +#include "channelhistorywrapper.h" +#include "songhistorywrapper.h" #ifdef HS_WIDGET_ENABLED #include "irservicedef.h" #endif -#ifdef Q_CC_NOKIAX86 +#ifdef PLATSIM_DEBUG_CONF void getRadioServerAddress(QString & aUrl); #endif @@ -103,8 +106,7 @@ iConnectedFromBackup(EIRQIsds), iStationLogoAvailable(false), iStationLogoAvailableBackup(false), - iMetaData(NULL), - iSongHistoryEngine(NULL), + iMetaData(NULL), iPlayState(EIdle), iResuming(false), iTryingBitrate(0), @@ -112,7 +114,10 @@ iRealBitrate(0), iLastError(EIRQErrorNone), iStopReason(EIRQUnknownTermination), - iErrorNote(NULL) + iErrorNote(NULL), + iDbWrapper(NULL), + iHistoryWrapper(NULL), + iUrlInfoWrapper(NULL) { // use the last played station to initiliaze the backup value. // can regard the player is bootup, and initilize its LCD screen with last played station info if available. @@ -141,11 +146,11 @@ connectSignalSlot(); iStatisticsReporter = IRQStatisticsReporter::openInstance(); + - if( !iApplication->isEmbeddedInstance() ) - { - iSongHistoryEngine = IRQSongHistoryEngine::openInstance(); - } + iDbWrapper = new IRDBWrapper(); + iHistoryWrapper = new channelHistoryWrapper(); + iUrlInfoWrapper = new urlInfoWrapper(); } /* @@ -169,17 +174,21 @@ iErrorNote = NULL; saveStationLogoFlag(iStationLogoAvailable); - - if (iSongHistoryEngine) - { - iSongHistoryEngine->closeInstance(); - iSongHistoryEngine = NULL; - } + if (iStatisticsReporter) { iStatisticsReporter->closeInstance(); } + + delete iDbWrapper; + iDbWrapper = NULL; + + delete iHistoryWrapper; + iHistoryWrapper = NULL; + + delete iUrlInfoWrapper; + iUrlInfoWrapper = NULL; } /* @@ -249,7 +258,7 @@ if (iUrlArray) { firstTryUrl = iUrlArray->at(0); -#ifdef Q_CC_NOKIAX86 +#ifdef PLATSIM_DEBUG_CONF firstTryUrl = "http://172.28.205.171:8000"; getRadioServerAddress(firstTryUrl); #endif @@ -265,15 +274,30 @@ void IRPlayController::resume() { qDebug("IRPlayController::resume(), Entering"); - if (iMediaPlayer && (EStopped == iPlayState)) + if (iMediaPlayer && (EStopped == iPlayState) && iNowPlayingPreset) { iResuming = true; - - if (iLastPlayedUrl != "") + + //Check whether quality settings have been changed. + QString firstTryUrl = getFirstTryUrl(iNowPlayingPreset); + if (firstTryUrl.isEmpty()) { - qDebug("IRPlayController::resume(), iLastPlayedUrl is not empty, doPlay()"); + return; + } + else if( firstTryUrl==iLastPlayedUrl ) + { + qDebug("IRPlayController::resume(), play by iLastPlayedUrl, doPlay()"); + doPlay(iLastPlayedUrl); - } + } + else + { + iLastPlayedUrlBackup = iLastPlayedUrl; + iLastPlayedUrl = firstTryUrl; + + qDebug("IRPlayController::resume(), play by new url, doPlay()"); + doPlay(firstTryUrl); + } } qDebug("IRPlayController::resume(), Exiting"); } @@ -399,6 +423,23 @@ } } +void IRPlayController::saveSong2DB(const IRQMetaData& aMetaData, const IRQPreset& aPreset) +{ + if( iApplication->isEmbeddedInstance() ) + { + return; + } + + songHistoryWrapper songs; + columnMap map; + + map.insert(channelId, QString::number(aPreset.presetId)); + map.insert(songName, aMetaData.getSongName()); + map.insert(artistName, aMetaData.getArtistName()); + + songs.putSongHistory(&map); +} + /* * Description : get current volume setting from media player or * central repository @@ -586,8 +627,6 @@ if (iTryingBitrate != iRealBitrate) { iNowPlayingPreset->setUrlBitrate(0,iRealBitrate); - //when bitrate is available, it should be written to favorites db - iApplication->getFavoritesDB()->replaceUserDefinedPreset(*iNowPlayingPreset); iTryingBitrate = iRealBitrate; } } @@ -698,32 +737,29 @@ iPlayState = EPlaying; iApplication->stopLoadingAnimation(); - iApplication->getViewManager()->activateView(EIRView_PlayingView); + iApplication->getViewManager()->activateView(EIRView_PlayingView); + + emit playingStarted(); + + // Save the station information to database iNowPlayingPreset + saveStation2DB(iNowPlayingPreset); if( !iApplication->isEmbeddedInstance() ) { //update last played station IRLastPlayedStationInfo *lastPlayedStationInfo = iApplication->getLastPlayedStationInfo(); lastPlayedStationInfo->updateLastPlayedStation(iNowPlayingPreset,iConnectedFrom); - lastPlayedStationInfo->commitLastPlayedStation(); - } - - //increase the played times of current preset - iApplication->getFavoritesDB()->increasePlayedTimes(*iNowPlayingPreset); - - emit playingStarted(); - - // if the metadata is available, show it. - emit metaDataAvailable(iMetaData); - - if( !iApplication->isEmbeddedInstance() ) - { - // Save the station information to database - IRQMetaData tmpMetaData; - tmpMetaData.setBitrate(iRealBitrate); - tmpMetaData.setStreamUrl(iLastPlayedUrl); - iSongHistoryEngine->handleMetaDataReceived(tmpMetaData, *iNowPlayingPreset); + lastPlayedStationInfo->commitLastPlayedStation(); } + // if the metadata is available, show it. here, preset->nickName is already available + emit metaDataAvailable(iMetaData); + + //save the metadata to the db + if( NULL != iMetaData ) + { + saveSong2DB(*iMetaData,*iNowPlayingPreset); + } + // open stereo defaultly iMediaPlayer->enableStereoEffect(); } @@ -745,21 +781,16 @@ */ void IRPlayController::handleMetaDataReceived(IRQMetaData& aIRmetaData) { - iMetaData = &aIRmetaData; - //TO DO: there maybe a potential bug when the user cancel the play, - if ((aIRmetaData.getSongName().trimmed() != "") - || (aIRmetaData.getArtistName().trimmed() != "")) - { - //when we are play the musicplayer and get the metadata from lower layer, we save the - //song's metadata into the db. After we save it to db, we emit the next signal to notify the UI - iSongHistoryEngine->handleSongMetaDataReceived(*iMetaData, - *iNowPlayingPreset); - } + //when we get metadata, we just update the member but not save to song history db for + //if the preset is user-defined, we do not get the preset ID in current. + //just after the 100 percent progress, the play state will be playing + iMetaData = &aIRmetaData; if (EPlaying == iPlayState) { // This signal will cause addBanner() work. Sometimes the metadata will come before // the buffering is 100%, we need to avoid to show playing banner before 100% buffering. + saveSong2DB(*iMetaData, *iNowPlayingPreset); emit metaDataAvailable(iMetaData); } } @@ -927,25 +958,120 @@ void IRPlayController::startSession() { iGetServerResult = false; - - int channelId = 0; - if(iNowPlayingPreset) - { - channelId = iNowPlayingPreset->presetId; - } if(iStatisticsReporter) { - iStatisticsReporter->sessionStarted(channelId,MAP_TO_ENGINE_ConnectedFrom(iConnectedFrom)); + if (iNowPlayingPreset && iNowPlayingPreset->type) // for isds station, use the channel id + { + iStatisticsReporter->sessionStarted(iNowPlayingPreset->presetId,MAP_TO_ENGINE_ConnectedFrom(iConnectedFrom)); + } + else // for user defined station, use 0 as channel id instead of the id generated from IRDB + { + iStatisticsReporter->sessionStarted(0,MAP_TO_ENGINE_ConnectedFrom(iConnectedFrom)); + } } } -#ifdef _DEBUG -int IRPlayController::bitrateTrying() const +void IRPlayController::saveStation2DB(IRQPreset *aPreset) { - return iTryingBitrate; + if (NULL == aPreset) + { + return; + } + + columnMap stationInfoSet; + + stationInfoSet.insert(channelName,aPreset->name); + + if (aPreset->nickName.isEmpty()) + { + aPreset->nickName = aPreset->name; + } + stationInfoSet.insert(channelNickName,aPreset->nickName); + + if (aPreset->type) // isds station + { + stationInfoSet.insert(channelId, QString::number(aPreset->presetId)); + } + else + { + // for user defined station, should query its existence at first + // if not, since putHistoryInfo() does NOT allow url info, same user defined station + // can only have name and nick name info, which will leads to two different channel id generated. + QString userDefinedUrl; + if (EIRQErrorNone == aPreset->getChannelUrlAt(0,userDefinedUrl)) + { + stationInfoSet.insert(channelUrl,userDefinedUrl); + stationInfoSet.insert(channelType,QString::number(aPreset->type)); + QList *channelIdList = iDbWrapper->getChannelId(&stationInfoSet); + if (channelIdList && (channelIdList->count() > 0)) + { + aPreset->presetId = channelIdList->at(0); + stationInfoSet.insert(channelId, QString::number(channelIdList->at(0))); + + } + if (channelIdList) + { + channelIdList->clear(); + delete channelIdList; + channelIdList = NULL; + } + stationInfoSet.remove(channelType); + stationInfoSet.remove(channelUrl); + } + } + + stationInfoSet.insert(genreName, aPreset->genreName); + stationInfoSet.insert(genreId, aPreset->genreId); + stationInfoSet.insert(languageName, aPreset->languageName); + stationInfoSet.insert(languageCode, aPreset->languageCode); + + stationInfoSet.insert(countryName, aPreset->countryName); + stationInfoSet.insert(countryCode, aPreset->countryCode); + stationInfoSet.insert(description, aPreset->description); + stationInfoSet.insert(shortDesc, aPreset->shortDesc); + + stationInfoSet.insert(lastModified, aPreset->lastModified); + stationInfoSet.insert(musicStoreStatus, aPreset->musicStoreStatus); + + stationInfoSet.insert(imgUrl, aPreset->imgUrl); + + stationInfoSet.insert(advertisementUrl, aPreset->advertisementUrl); + stationInfoSet.insert(advertisementInUse, aPreset->advertisementInUse); + + // should remove url and channel type before put, otherwise false will be returned + stationInfoSet.remove(channelUrl); + stationInfoSet.remove(channelType); + + bool ret = false; + if (aPreset->type) // isds station + { + ret = iHistoryWrapper->putChannelHistory(&stationInfoSet); + } + else // fetch the channel id for user defined station, generated by DB + { + uint generatedChannelId = 0; + ret = iHistoryWrapper->putChannelHistory(&stationInfoSet,&generatedChannelId); + aPreset->presetId = generatedChannelId; + } + + if ((false == ret)||(0 == aPreset->presetId)) + { + return; + } + + columnUrlInfoInsertMap urlInfoSet; + QString url; + unsigned int bitrate; + for (int i=0; i < aPreset->getChannelURLCount(); i++) + { + aPreset->getChannelUrlAt(i,url); + aPreset->getChannelBitrate(i,bitrate); + urlInfoSet.insert(url,bitrate); + } + + iUrlInfoWrapper->resetUrlInfo(&urlInfoSet, aPreset->presetId); } -#endif void saveStationLogoFlag(bool aIsStationLogoAvailable) { @@ -956,7 +1082,7 @@ } //get IP address configuration of test radio server -#ifdef Q_CC_NOKIAX86 +#ifdef PLATSIM_DEBUG_CONF void getRadioServerAddress(QString & aUrl) { QFile file("C:\\data\\QTIRConfigure.txt"); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irplaylist.cpp --- a/qtinternetradio/ui/src/irplaylist.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irplaylist.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -108,8 +108,9 @@ preset->insertChannelServer(server); preset->name = item->title(); - preset->description = item->file(); - preset->shortDesc = item->file(); + preset->nickName = item->title(); + preset->description = ""; + preset->shortDesc = ""; preset->type = 0; preset->uniqID = 0; preset->presetId = 0; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irplsview.cpp --- a/qtinternetradio/ui/src/irplsview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irplsview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -92,8 +92,9 @@ IRQPreset preset; preset.insertChannelServer(server); preset.name = iPlsModel->getTitle(currentRow); - preset.description = iPlsModel->getFile(currentRow); - preset.shortDesc = iPlsModel->getFile(currentRow); + preset.nickName = iPlsModel->getTitle(currentRow); + preset.description = ""; + preset.shortDesc = ""; preset.type = 0; preset.uniqID = 0; preset.presetId = 0; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irqsonghistoryinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/src/irqsonghistoryinfo.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -0,0 +1,78 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#include "irqsonghistoryinfo.h" + +void IRQSongInfo::setSongName(const QString& aName) +{ + iSongName = aName; +} + +const QString& IRQSongInfo::getSongName() const +{ + return iSongName; +} + +void IRQSongInfo::setArtistName(const QString& aArtist) +{ + iSongArtist = aArtist; +} + +void IRQSongInfo::setStationName(const QString& aStationName) +{ + iStationName = aStationName; +} + +const QString& IRQSongInfo::getArtistName() const +{ + return iSongArtist; +} + +const QString& IRQSongInfo::getStationName() const +{ + return iStationName; +} +void IRQSongInfo::setMusicshopStatus(const QString& aStatus) +{ + iMusicshopStatus = aStatus; +} + +const QString& IRQSongInfo::getMusicshopStatus() const +{ + return iMusicshopStatus; +} + +void IRQSongInfo::setChannelID(const QString& aChannelID) +{ + iChannelID = aChannelID; +} + +const QString& IRQSongInfo::getChannelID() const +{ + return iChannelID; +} + +void IRQSongInfo::setAllInfo(const QString& aStationName, const QString& aSongName, const QString& aArtist, const QString& aStatus, const QString& aChannelID) +{ + iStationName = aStationName; + iSongName = aSongName; + iSongArtist = aArtist; + iMusicshopStatus = aStatus; + iChannelID = aChannelID; +} + + + diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irsearchchannelsview.cpp --- a/qtinternetradio/ui/src/irsearchchannelsview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irsearchchannelsview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,7 +15,6 @@ * */ -#include #include #include #include @@ -40,22 +39,18 @@ #include "irplaycontroller.h" #include "irqlogger.h" #include "irqsettings.h" - -const uint KBitmapSize = 59; IRSearchChannelsView::IRSearchChannelsView(IRApplication* aApplication, TIRViewId aViewId): IRBaseView(aApplication, aViewId), - iListView(NULL),iSearchPanelWidget(NULL),iSearchState(ESearch_init), - iChannelModel(NULL),iPreset(NULL),iLogoPreset(NULL), - iConvertTimer(NULL) + iHeadingLabel(NULL),iListView(NULL),iSearchPanelWidget(NULL),iSearchState(ESearch_init), + iChannelModel(NULL),iPreset(NULL),iFirstTime(true) { LOG_METHOD; - iSettings = IRQSettings::openInstance(); + iIRSettings = IRQSettings::openInstance(); loadLayout(); connectWidget(); switch2InitState(); initMenu(); - initTimer(); } void IRSearchChannelsView::initMenu() @@ -66,25 +61,14 @@ connect(exitAction, SIGNAL(triggered()), iApplication, SIGNAL(quit())); } -void IRSearchChannelsView::initTimer() -{ - LOG_METHOD; - iConvertTimer = new QTimer(this); - iConvertTimer->setInterval(10); - - connect(iConvertTimer, SIGNAL(timeout()), this, SLOT(convertAnother())); -} - - - IRSearchChannelsView::~IRSearchChannelsView() { LOG_METHOD; - if (iSettings) + if (iIRSettings) { - iSettings->setSearchText(iKeyText); - iSettings->closeInstance(); + iIRSettings->setSearchText(iKeyText); + iIRSettings->closeInstance(); } if( iPreset != NULL ) @@ -92,18 +76,6 @@ delete iPreset; iPreset = NULL; } - - if( iLogoPreset != NULL ) - { - delete iLogoPreset; - iLogoPreset = NULL; - } - - if( NULL != iChannelModel ) - { - iChannelModel->save2Cache(); - } - } void IRSearchChannelsView::loadLayout() @@ -118,9 +90,11 @@ iLoader.setObjectTree( roots ); iLoader.load(SEARCH_CHANNELS_VIEW_LAYOUT_FILENAME); + iHeadingLabel = qobject_cast(iLoader.findWidget(SEARCH_CHANNELS_VIEW_HEADINGTEXT_WIDGET)); + iSearchPanelWidget = qobject_cast(iLoader.findWidget(SEARCH_CHANNELS_VIEW_SEARCHPANEL_WIDGET)); QString searchText; - iSettings->getSearchText(searchText); + iIRSettings->getSearchText(searchText); iKeyText = searchText; iSearchPanelWidget->setCriteria(searchText); @@ -132,9 +106,7 @@ iListView->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded); iChannelModel = new IrChannelModel(this); - iChannelModel->initWithCache(); iListView->setModel(iChannelModel); - scrollbar->setValue(0.0); iListView->installEventFilter(this); @@ -165,13 +137,7 @@ connect(iIsdsClient, SIGNAL(operationException(IRQError)), this, SLOT(operationException(IRQError))); connect(iIsdsClient, SIGNAL(presetResponse(IRQPreset *)), - this, SLOT(presetResponse(IRQPreset *))); - connect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset* )), - this, SLOT(presetLogoDownload(IRQPreset* ))); - connect(iIsdsClient, SIGNAL(presetLogoDownloadError()), - this, SLOT(presetLogoDownloadError())); - - + this, SLOT(presetResponse(IRQPreset *))); } void IRSearchChannelsView::disconnectIsdsClient() @@ -183,10 +149,6 @@ SLOT(operationException(IRQError))); disconnect(iIsdsClient, SIGNAL(presetResponse(IRQPreset *)), this, SLOT(presetResponse(IRQPreset *))); - disconnect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset*)), - this, SLOT(presetLogoDownload(IRQPreset* ))); - disconnect(iIsdsClient, SIGNAL(presetLogoDownloadError()), - this, SLOT(presetLogoDownloadError())); } void IRSearchChannelsView::switch2InitState() @@ -201,7 +163,7 @@ LOG_METHOD; iSearchPanelWidget->clearFocus(); iListView->setFocus(); - iSearchState = ESearch_Loading; + iSearchState = ESearch_Loading; iApplication->startLoadingAnimation(this, SLOT(minimizeSearchPanel())); } @@ -243,7 +205,9 @@ if(EIR_UseNetwork_StartSearch == getUseNetworkReason()) { Q_ASSERT( !iKeyText.isEmpty() ); - iIsdsClient->isdsSearchRequest(iKeyText); + iChannelModel->stopDownloadingLogo(); + switch2LoadingState(); + iIsdsClient->isdsSearchRequest(iKeyText); } else if( EIR_UseNetwork_SelectItem == getUseNetworkReason() ) { @@ -281,11 +245,10 @@ if( ESearch_Loading == iSearchState ) { iIsdsClient->isdsCancelRequest(); - iConvertTimer->stop(); - iIsdsClient->isdsLogoDownCancelTransaction(); } - - + + iChannelModel->stopDownloadingLogo(); + setUseNetworkReason(EIR_UseNetwork_NoReason); switch2LoadingState(); iIsdsClient->isdsSearchRequest(iKeyText); @@ -295,16 +258,17 @@ { LOG_METHOD; switch2InitState(); - + QString errStr; switch(aError) { case EIRQErrorNotFound: -#ifdef SUBTITLE_STR_BY_LOCID +#ifdef SUBTITLE_STR_BY_LOCID errStr = hbTrId("txt_irad_info_no_matching_station_found"); #else - errStr = hbTrId("No matching station found"); + errStr = hbTrId("No matching station found"); #endif + iChannelModel->cleanupDatabase(); break; default: #ifdef SUBTITLE_STR_BY_LOCID @@ -316,7 +280,6 @@ } popupNote(errStr, HbMessageBox::MessageTypeWarning); - iChannelModel->cleanupDatabase(); } void IRSearchChannelsView::clickItem(const QModelIndex&) @@ -345,28 +308,17 @@ LOG_METHOD; delete iPreset; iPreset = aPreset; - + if (iPreset) { iPlayController->connectToChannel(iPreset,EIRQIsds); } } -void IRSearchChannelsView::convertAnother() -{ - LOG_METHOD; - iConvertTimer->stop(); - int leftCount = iIconIndexArray.count(); - - if( leftCount > 0 ) - { - startConvert(iIconIndexArray[0]); - } -} - void IRSearchChannelsView::dataChanged() { LOG_METHOD; + resetHeadingText(); switch2InitState(); iListView->reset(); if( iChannelModel->rowCount() ) @@ -377,98 +329,16 @@ //we move the focus to the listview and the search panel will //hide the virtual keyboard at the same time - iListView->setFocus(); - - iIconIndexArray.clear(); - //initialize the iconindices - for (int i = 0; i < iChannelModel->rowCount(); ++i) - { - if (iChannelModel->imageUrl(i) != "") - { - iIconIndexArray.append(i); - } - } - - if( iIconIndexArray.count() > 0 ) - { - iConvertTimer->start(); - } -} - -void IRSearchChannelsView::startConvert(int aIndex) -{ - LOG_METHOD; - QString url = iChannelModel->imageUrl(aIndex); - - IRQPreset tempPreset; - tempPreset.imgUrl = url; - tempPreset.type = IRQPreset::EIsds; - - bool cached = iIsdsClient->isdsIsLogoCached(&tempPreset, KBitmapSize, KBitmapSize); - - if( !cached ) - { - bool network = iNetworkController->getNetworkStatus(); - //if the network is not ready, some exception happens and we don't get the logos - //for they are not so important. - if( !network ) - { - return; - } - } - - iIsdsClient->isdsLogoDownSendRequest(&tempPreset, 0, KBitmapSize, KBitmapSize); + iListView->setFocus(); } -//if the logo is downloaded ok -void IRSearchChannelsView::presetLogoDownload(IRQPreset* aPreset) +void IRSearchChannelsView::resetHeadingText() { - LOG_METHOD; - if( NULL == aPreset ) - { - presetLogoDownloadError(); - return; - } - - - delete iLogoPreset; - iLogoPreset = aPreset; - - if (iLogoPreset->logoData.size() > 0) - { - QPixmap tempMap; - bool ret = tempMap.loadFromData((const unsigned char*)iLogoPreset->logoData.constData(), iLogoPreset->logoData.size()); - QIcon convertIcon(tempMap); - - if( ret ) - { - HbIcon *hbIcon = new HbIcon(convertIcon); - int index = iIconIndexArray[0]; - iChannelModel->setLogo(hbIcon, index); - iIconIndexArray.removeAt(0); - int leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } - return; - } - } - - presetLogoDownloadError(); -} - -//if the logo download fails -void IRSearchChannelsView::presetLogoDownloadError() -{ - LOG_METHOD; - // if the logo download fails, try to download the next - iIconIndexArray.removeAt(0); - int leftCount = iIconIndexArray.count(); - if( leftCount > 0 ) - { - iConvertTimer->start(); - } +#ifdef SUBTITLE_STR_BY_LOCID + iHeadingLabel->setHeading(hbTrId("txt_irad_subtitle_search_results") + " (" + QString::number(iChannelModel->rowCount()) + ")"); +#else + iHeadingLabel->setHeading(hbTrId("Search results") + " (" + QString::number(iChannelModel->rowCount()) + ")"); +#endif } void IRSearchChannelsView::minimizeSearchPanel() @@ -476,10 +346,8 @@ LOG_METHOD; if( ESearch_Loading == iSearchState ) { - iPlayController->cancelBuffering(); iIsdsClient->isdsCancelRequest(); - iConvertTimer->stop(); - iIsdsClient->isdsLogoDownCancelTransaction(); + iChannelModel->stopDownloadingLogo(); switch2InitState(); } @@ -509,8 +377,7 @@ switch (aCommand) { - case EIR_ViewCommand_ACTIVATED: - iIconIndexArray.clear(); + case EIR_ViewCommand_ACTIVATED: iListView->clearFocus(); iSearchPanelWidget->setFocusDelegation(FocusDelegationFirstChild); iSearchPanelWidget->setFocus(); @@ -520,13 +387,21 @@ showVkb(); } connectIsdsClient(); + if (iFirstTime) + { + iChannelModel->initWithCache(); + iFirstTime = false; + } + else + { + iChannelModel->startDownloadingLogo(); + } break; case EIR_ViewCommand_DEACTIVATE: disconnectIsdsClient(); iIsdsClient->isdsCancelRequest(); - iConvertTimer->stop(); - iIsdsClient->isdsLogoDownCancelTransaction(); + iChannelModel->stopDownloadingLogo(); switch2InitState(); break; diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irsearchresultdb.cpp --- a/qtinternetradio/ui/src/irsearchresultdb.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irsearchresultdb.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -15,31 +15,22 @@ * */ -#include -#include -#include -#include #include - +#include "searchrltwrapper.h" #include "irsearchresultdb.h" #include "irqisdsdatastructure.h" +const int KTruncateSize = 255; -IRSearchResultDB::IRSearchResultDB() +IRSearchResultDB::IRSearchResultDB() : iSearchRltWrapper(NULL) { - createDBConnection(); + iSearchRltWrapper = new searchRltWrapper(); } IRSearchResultDB::~IRSearchResultDB() { - if (iDB->isOpen()) - { - iDB->close(); - } - - delete iDB; - iDB = NULL; + delete iSearchRltWrapper; } @@ -52,42 +43,43 @@ return EIRQErrorBadParameter; } - if( iDB->isOpen() ) + if( iSearchRltWrapper ) { clearCache(); - + + //create column struct of table; + columnMap* pColMap = new columnMap(); + QString num, name, imageURL, shortDescription; + int chnlID; + bool initFlag = true; for(int i=0; icount(); i++) { IRQChannelItem* insertItem = aChannelList->at(i); - QString name = insertItem->channelName; - int channelID = insertItem->channelID; - QString imageURL = insertItem->imageURL; - QString description = insertItem->shortDescription; + name = insertItem->channelName; + chnlID = insertItem->channelID; + num.setNum(chnlID); + imageURL = insertItem->imageURL; + shortDescription = insertItem->shortDescription; //if some data overflows, we just skip it.note that //the VARCHAR is word-based, so here we use the real size - if( name.size()>= 256 || imageURL.size() >= 256 || description.size() >= 256 ) - { - continue; - } - - QSqlQuery query; - bool result; + name.truncate(KTruncateSize); + imageURL.truncate(KTruncateSize); + shortDescription.truncate(KTruncateSize); + + pColMap->clear(); + pColMap->insert(channelId, num); + pColMap->insert(channelName, name); + pColMap->insert(imgUrl, imageURL); + pColMap->insert(shortDesc, shortDescription); + + iSearchRltWrapper->addSearchRlt(pColMap, initFlag); + initFlag = false; - result = query.prepare("INSERT INTO searchresult (name, channelID, imageURL, description) " - "VALUES (:name, :channelID, :imageURL, :description)"); - query.bindValue(":name", name); - query.bindValue(":channelID",channelID); - query.bindValue(":imageURL", imageURL); - query.bindValue(":description", description); - - result = query.exec(); - if( !result ) - { - ret = EIRQErrorServiceUnavailable; - break; - } } + + iSearchRltWrapper->addSearchRltFinished(); + delete pColMap; } else { @@ -99,44 +91,52 @@ QList *IRSearchResultDB::getCahcedChannelList() { - if( !iDB->isOpen() ) + if( !iSearchRltWrapper ) { return NULL; } - + + QList* searchRlt = NULL; QList *channelList = new QList(); - QSqlQuery query("SELECT * FROM searchresult"); - QSqlRecord rec = query.record(); - int nameCol = rec.indexOf("name"); - int channelIDCol = rec.indexOf("channelID"); - int imageURLCol = rec.indexOf("imageURL"); - int descriptionCol = rec.indexOf("description"); - - while(query.next()) + searchRlt = iSearchRltWrapper->getSearchRlt(NULL, NULL); + + if (NULL == searchRlt) + { + return channelList; + } + + for(int i = 0; i < searchRlt->size(); i++) { IRQChannelItem *oneItem = new IRQChannelItem(); - oneItem->channelName = query.value(nameCol).toString(); - oneItem->channelID = query.value(channelIDCol).toInt(); - oneItem->imageURL = query.value(imageURLCol).toString(); - oneItem->shortDescription = query.value(descriptionCol).toString(); + oneItem->channelName = (*( searchRlt->at(i) + channelName) ).toString(); + oneItem->channelID = (*( searchRlt->at(i) + channelId)).toUInt(); + oneItem->imageURL = (*( searchRlt->at(i) + imgUrl) ).toString(); + oneItem->shortDescription = (*( searchRlt->at(i) + shortDesc) ).toString(); channelList->append(oneItem); } - + + while(false == searchRlt->isEmpty()) + { + delete []searchRlt->takeFirst(); + } + searchRlt->clear(); + delete searchRlt; + searchRlt = NULL; + return channelList; } IRQError IRSearchResultDB::clearCache() { IRQError ret = EIRQErrorNone; - if( !iDB->open()) + if( !iSearchRltWrapper) { ret = EIRQErrorServiceUnavailable; } else { - QSqlQuery query("DELETE FROM searchresult"); - bool ret = query.exec(); - if( !ret ) + bool retval = iSearchRltWrapper->deleteSearchRlt(NULL, NULL); + if (!retval) { ret = EIRQErrorServiceUnavailable; } @@ -144,37 +144,3 @@ return ret; } - -void IRSearchResultDB::createDBConnection() -{ - bool created = QFile::exists("searchresult.dat"); - QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); - iDB = new QSqlDatabase(db); - - iDB->setDatabaseName("searchresult.dat"); - - if (!iDB->open()) - { - return; - } - - - if (!created) - { - bool dbResult = false; - QSqlQuery query; - //note: the VARCHAR is word-based but not byte-based. and 255 - //means 255 unicode words. - dbResult = query.exec("CREATE TABLE searchresult (" - "id INTEGER PRIMARY KEY AUTOINCREMENT, " - "name VARCHAR(255) NOT NULL, " - "channelID INTEGER, " - "imageURL VARCHAR(255), " - "description VARCHAR(255) NOT NULL)"); - - if (!dbResult) - { - return; - } - } -} diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irsettingsview.cpp --- a/qtinternetradio/ui/src/irsettingsview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irsettingsview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -29,9 +29,8 @@ IRSettingsView::IRSettingsView(IRApplication *aApplication, TIRViewId aViewId) : IRBaseView(aApplication, aViewId), iForm(NULL),iModel(NULL) { - setFlag(EViewFlag_UnStackable); - + setTitle(hbTrId("txt_irad_title_internet_radio")); initView(); } @@ -42,6 +41,7 @@ void IRSettingsView::initView() { QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, this); + layout->setContentsMargins(0, 0, 0, 0); setLayout(layout); HbGroupBox * titleText = new HbGroupBox(); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irsonghistorymodel.cpp --- a/qtinternetradio/ui/src/irsonghistorymodel.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irsonghistorymodel.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -14,15 +14,16 @@ * Description: * */ -#include - +#include #include "irqsonghistoryinfo.h" -#include "irqsonghistoryengine.h" #include "irsonghistorymodel.h" +#include "songhistorywrapper.h" +#include "irdbviewstruct.h" -IRSongHistoryModel::IRSongHistoryModel(QObject *aParent) : QAbstractListModel(aParent) -{ - mHistoryEngine = IRQSongHistoryEngine::openInstance(); +IRSongHistoryModel::IRSongHistoryModel(QObject *aParent) : QAbstractListModel(aParent), + mHistoryWrapper(NULL) +{ + mHistoryWrapper = new songHistoryWrapper(); getAllList(); } @@ -31,13 +32,9 @@ while (!mSongHistoryList.isEmpty()) { delete mSongHistoryList.takeFirst(); - } + } - if (mHistoryEngine) - { - mHistoryEngine->closeInstance(); - mHistoryEngine = NULL; - } + delete mHistoryWrapper; } int IRSongHistoryModel::rowCount(const QModelIndex &aParent) const @@ -118,15 +115,14 @@ { IRQSongInfo *firstItem = mSongHistoryList.takeFirst(); delete firstItem; - } - - mHistoryEngine->clearAllSongHistory(); + } + mHistoryWrapper->deleteSongHistory(); emit modelChanged(); } bool IRSongHistoryModel::checkSongHistoryUpdate() -{ +{ getAllList(); return true; } @@ -134,8 +130,42 @@ void IRSongHistoryModel::getAllList() { - mHistoryEngine->getAllSongHistory(mSongHistoryList); + + QList *dataSet = mHistoryWrapper->getSongHistory(); + int dataCount = 0; + + if( NULL != dataSet ) + { + dataCount = dataSet->count(); + } + + while (!mSongHistoryList.isEmpty()) + { + IRQSongInfo *firstItem = mSongHistoryList.takeFirst(); + delete firstItem; + } + + QString stationsName, songsName, artistsName, status, channelsID; + if (0 < dataCount) + { + for (int i = 0; i < dataCount; ++i) + { + IRQSongInfo *songInfo = new IRQSongInfo(); + QVariant *row = dataSet->at(i); + stationsName = row[channelNickName].toString(); + songsName = row[songName].toString(); + artistsName = row[artistName].toString(); + status = row[musicStoreStatus].toString(); + channelsID = row[channelId].toString(); + songInfo->setAllInfo(stationsName, songsName, artistsName, status, channelsID); + + delete[] row; + mSongHistoryList.append(songInfo); + } + } + + delete dataSet; emit modelChanged(); } @@ -146,14 +176,28 @@ bool IRSongHistoryModel::deleteOneItem(int aIndex) { - bool ret = mHistoryEngine->deleteOneSongHistoryItem(aIndex); + if( aIndex < 0 || aIndex >= mSongHistoryList.count() ) + { + return false; + } + + IRQSongInfo *currentItem = mSongHistoryList.at(aIndex); + + columnMap map; + map.insert(songName, currentItem->getSongName()); + map.insert(artistName, currentItem->getArtistName()); + map.insert(channelId, currentItem->getChannelID()); + bool ret = mHistoryWrapper->deleteSongHistory(&map); + if( !ret ) { return false; } beginRemoveRows(QModelIndex(), aIndex, aIndex); + //delete the current item to avoid memory leaking + delete currentItem; mSongHistoryList.removeAt(aIndex); endRemoveRows(); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irsonghistoryview.cpp --- a/qtinternetradio/ui/src/irsonghistoryview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irsonghistoryview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -19,6 +19,7 @@ #include #include #include +#include #include "irviewmanager.h" #include "irapplication.h" @@ -31,12 +32,16 @@ #include "irqsettings.h" #include "irqutility.h" #include "iruidefines.h" +#include "irdbwrapper.h" +#include "irqisdsdatastructure.h" const QString KActionSearchInMusicStoreName("SearchInMusicStore"); const QString KActionDeleteName("Delete"); -#ifdef STATISTIC_REPORT_TEST_ENABLED -static const int KDummyMusicStoreUid = 0xE609761B; +#ifdef STATISTIC_REPORT_TEST_ENABLED +static const int KIRMusicStoreUid = 0xE609761B; +#else +static const int KIRMusicStoreUid = 0; #endif // public functions @@ -133,61 +138,85 @@ */ void IRSongHistoryView::handleItemSelected() { - // TODO : NEED preset id related to the song - int index = iListView->currentIndex().row(); - IRQSongInfo *hisInfo = iModel->getSongHistoryInfo(index); - - if( hisInfo && ( 0 != hisInfo->getMusicshopStatus().compare("yes",Qt::CaseInsensitive) ) ) + if (!IRQUtility::findAppByUid(KIRMusicStoreUid)) // if no music store, coming soon is shown. { -#ifdef STATISTIC_REPORT_TEST_ENABLED - if(IRQUtility::launchAppByUid(KDummyMusicStoreUid)) - { - iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,0); - } -#else // STATISTIC_REPORT_TEST_ENABLED #ifdef SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("txt_irad_info_not_allowed_by_this_station"), HbMessageBox::MessageTypeInformation); -#else // SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("Not allowed by station"), HbMessageBox::MessageTypeInformation); -#endif // SUBTITLE_STR_BY_LOCID -#endif // STATISTIC_REPORT_TEST_ENABLED + popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation); +#else + popupNote(hbTrId("Service Coming Soon"), HbMessageBox::MessageTypeInformation); +#endif return; } - if( (NULL == hisInfo) || - ( hisInfo->getSongName().isEmpty() && - hisInfo->getArtistName().isEmpty() - ) - ) + IRQSongInfo *hisInfo = iModel->getSongHistoryInfo(iListView->currentIndex().row()); + int presetType = 0; // user defined + + IRDBWrapper irDb; + columnMap selectCriteriaSet; + selectCriteriaSet.insert(channelId,hisInfo->getChannelID()); + + QList* dataSet = NULL; + dataSet = irDb.getIRDB(&selectCriteriaSet); + + if (dataSet && (dataSet->size()>0)) + { + presetType = (*(dataSet->at(0) + channelType)).toInt(); + } + + if (dataSet) + { + while(false == dataSet->isEmpty()) + { + delete []dataSet->takeFirst(); + } + dataSet->clear(); + + delete dataSet; + dataSet = NULL; + } + + bool launchResult = false; + if( hisInfo && ( 0 != hisInfo->getMusicshopStatus().compare("yes",Qt::CaseInsensitive) ) ) { -#ifdef STATISTIC_REPORT_TEST_ENABLED - // TODO : have to save preset id related to the song - if(IRQUtility::launchAppByUid(KDummyMusicStoreUid)) + // TODO : launch music store with search result page + launchResult = IRQUtility::launchAppByUid(KIRMusicStoreUid); + if (launchResult) { - iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,0); - } -#else // STATISTIC_REPORT_TEST_ENABLED + if (presetType) + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsFind,iPlayController->getNowPlayingPreset()->presetId); + } + else + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsFind,0); + } + } + } + else + { + // TODO : lunch music store with homepage + launchResult = IRQUtility::launchAppByUid(KIRMusicStoreUid); + if (launchResult) + { + if (presetType) + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,iPlayController->getNowPlayingPreset()->presetId); + } + else + { + iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsLaunch,0); + } + } + } + + if (!launchResult) + { #ifdef SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("txt_irad_info_no_song_info"), HbMessageBox::MessageTypeInformation); -#else // SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("No song info"), HbMessageBox::MessageTypeInformation); -#endif // SUBTITLE_STR_BY_LOCID -#endif // STATISTIC_REPORT_TEST_ENABLED - return; - } - -#ifdef STATISTIC_REPORT_TEST_ENABLED - if(IRQUtility::launchAppByUid(KDummyMusicStoreUid)) - { - iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRNmsFind,0); - } -#else // STATISTIC_REPORT_TEST_ENABLED -#ifdef SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation); -#else // SUBTITLE_STR_BY_LOCID - popupNote(hbTrId("Music store not ready"), HbMessageBox::MessageTypeInformation); -#endif // SUBTITLE_STR_BY_LOCID -#endif // STATISTIC_REPORT_TEST_ENABLED + popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation); +#else + popupNote(hbTrId("Music store not ready"), HbMessageBox::MessageTypeInformation); +#endif + } } diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irstationdetailsview.cpp --- a/qtinternetradio/ui/src/irstationdetailsview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irstationdetailsview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -52,9 +52,9 @@ /* * Description : update the station information. */ -void IRStationDetailsView::setDetails(IRQPreset * aPreset) +void IRStationDetailsView::setDetails(const IRQPreset * aPreset) { - iStationName->setPlainText(aPreset->name); + iStationName->setPlainText(aPreset->nickName); iGenres->setPlainText(aPreset->genreName); iLanguage->setPlainText(aPreset->languageName); iCountry->setPlainText(aPreset->countryName); @@ -80,7 +80,7 @@ void IRStationDetailsView::setDetails() { IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset(); - iStationName->setPlainText(nowPlayingPreset->name); + iStationName->setPlainText(nowPlayingPreset->nickName); iGenres->setPlainText(nowPlayingPreset->genreName); iLanguage->setPlainText(nowPlayingPreset->languageName); iCountry->setPlainText(nowPlayingPreset->countryName); diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irstationsview.cpp --- a/qtinternetradio/ui/src/irstationsview.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irstationsview.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -137,7 +137,7 @@ aNeedNetwork = true; int index = iListView->currentIndex().row(); - iPlayController->setConnectingStationName(iDataProvider->getChannelItemByIndex(index)->channelName); + iPlayController->setConnectingStationName(iDataProvider->getChannelItemByIndex(index)->channelName,true); } #endif diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/src/irviewmanager.cpp --- a/qtinternetradio/ui/src/irviewmanager.cpp Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/src/irviewmanager.cpp Mon Oct 04 00:07:46 2010 +0300 @@ -321,7 +321,7 @@ (EIRView_StationDetailsView == viewToHide->id()) ) { - setCurrentView(aView,true,Hb::ViewSwitchUseAltEvent); + setCurrentView(aView,true,Hb::ViewSwitchUseAltEvent | Hb::ViewSwitchCachedFullScreen); } else { diff -r 5723da102db1 -r 38bbf2dcd608 qtinternetradio/ui/ui.pro --- a/qtinternetradio/ui/ui.pro Fri Sep 17 08:27:59 2010 +0300 +++ b/qtinternetradio/ui/ui.pro Mon Oct 04 00:07:46 2010 +0300 @@ -59,10 +59,10 @@ ../irqcommon/inc \ ../irqstatisticsreporter/inc \ ../irqfavoritesdb/inc \ - ../irqnetworkcontroller/inc \ - ../irqsonghistory/inc \ + ../irqnetworkcontroller/inc \ ../irqsettings/inc \ - ../irqlogger/inc \ + ../irqlogger/inc \ + ../irdb/inc \ ../irqsystemeventhandler/inc CONFIG += hb service @@ -74,8 +74,7 @@ -lirqisdsclient \ -lirqmediaplayer \ -lirqutility \ - -lirqfavorites \ - -lirqsonghistory \ + -lirqfavorites \ -lirqsettings \ -lremconcoreapi \ -lremconinterfacebase \ @@ -86,6 +85,7 @@ -lxqsettingsmanager \ -lxqservice \ -lxqserviceutil \ + -lirdb \ -lhgcacheproxymodel symbian{ @@ -137,7 +137,10 @@ inc/irsearchresultdb.h \ inc/irfileviewservice.h \ inc/irplayingbanner.h \ - inc/irhbapplication.h + inc/irhbapplication.h \ + inc/irlogoprovider.h \ + inc/irqsonghistoryinfo.h + #source files list SOURCES += main.cpp \ @@ -178,7 +181,10 @@ irsearchresultdb.cpp \ irfileviewservice.cpp \ irplayingbanner.cpp \ - irhbapplication.cpp + irhbapplication.cpp \ + irlogoprovider.cpp \ + irqsonghistoryinfo.cpp + #docml DOCML += resources/layout/abstractlistviewbase.docml \