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 - - - - - - - -