diff -r cce62ebc198e -r 93c594350b9a fmradio/fmradioengine/inc/fmradioenginecentralrepositoryhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fmradio/fmradioengine/inc/fmradioenginecentralrepositoryhandler.h Wed Sep 01 12:30:32 2010 +0100 @@ -0,0 +1,170 @@ +/* +* Copyright (c) 2005 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: Defines APIs to communicate with Central Repository +* +*/ + + +#ifndef FMRADIOENGINECENTRALREPOSITORYHANDLER_H +#define FMRADIOENGINECENTRALREPOSITORYHANDLER_H + +// INCLUDES +#include "fmradioregion.h" + +// CONSTANTS +const TInt KBufferLength = 20; +const TInt KStreamBufferSize = 100; + +// Forward declare implementation class +class TRadioSettings; +class CRepository; + +// CLASS DECLARATION + +/** +* it is a wrapper of Central Repository, responsible for the operations that need to access +* the central respositorhy. +* +* @lib FMRadioEngine.lib +* @since Series 60 3.0_version +*/ +class CCentralRepositoryHandler : public CBase + { + public: + /** + * Two-phased class constructor. + * @param aRadioSettings pointer to the CRadioSettings class + */ + static CCentralRepositoryHandler* NewL(TRadioSettings& aRadioSettings); + /** + * Destructor of CCentralRepositoryHandler class. + */ + virtual ~CCentralRepositoryHandler(); + public: + /** + * Save all engine related persistent info back to Central Repository + * @since Series 60 3.0 + * @return none + */ + void SaveEngineSettings(); + + TInt CountRegions() const; + CFMRadioRegion& Region( TInt aIndex ) const; + TInt RegionId() const; + TUint32 FrequencyStepSize() const; + TUint32 MaxFrequency() const; + TUint32 MinFrequency() const; + TInt DecimalCount() const; + + void SetRegionIdL( TInt aRegion ); + + /** + * Determines if RT+ interaction tutorial dialog has been shown. + * See CFMRadioEngine::MusicStoreNoteDisplayed(). + */ + TBool MusicStoreNoteDisplayed(); + /** + * Sets RT+ interaction tutorial dialog as displayed. + * See CFMRadioEngine::SetMusicStoreNoteDisplayed(). + */ + void SetMusicStoreNoteDisplayed(); + /** + * Gets supported RT+ interactions. See CFMradioEngine::GetRTPlusSupportLevel(). + */ + TInt GetRTPlusSupportLevel(); + + /** + * Checks if offine profile is current active profile + * @return true/false + */ + TBool IsOfflineProfileActiveL(); + /** + * Increases startup time by one and returns amount of program startups. + * Also updates count to the repository. + */ + void IncreaseStartupCount() const; + /* + * Save headset volume level to the repository + */ + void SaveHeadsetVolumeSetting() const; + /* + * Save speaker volume level to the repository + */ + void SaveSpeakerVolumeSetting() const; + + private: + /** + * Default class constructor. + * @param aRadioSettings - pointer to the CRadioSettings class + */ + CCentralRepositoryHandler(TRadioSettings& aRadioSettings); + /** + * Second phase class constructor. + */ + void ConstructL(); + /** + * Retrieves persistent settings from Central Repository. + */ + void RetrieveInitialSettings(); + /** + * Initializes the regions as defined in the resource file. + */ + void InitializeRegionsL(); + + /** + * Converts Region ID to index + * + * @param aRegionId The region ID that is wanted to convert + * @return The region index, KErrNotFound if no match found + */ + TInt RegionIndexForId( TInt aRegionId ) const; + + /** + * Updates the current region index + * + * @param aRegionId The new region ID + */ + void UpdateCurrentRegionIdx( TInt aRegionId ); + /* + * Set emulator networkinfo + * + */ + #ifdef __WINS__ + void SetInitialSettings(); + #endif //__WINS__ + /** + * Checks if frequency is in the current region range + * + * @param aFrequency Frequency to check + */ + TBool IsFrequencyValid( TUint32 aFrequency ) const; + + private: // data + + // Handle to Central Repository server + CRepository* iCentralRepository; + // Reference to RadioSetting object + TRadioSettings* iRadioSettings; + /** The current region. */ + TInt iCurrentRegionIdx; + /** The available regions. */ + RPointerArray iRegions; + + + + }; + +#endif // FMRADIOENGINECENTRALREPOSITORYHANDLER_H + +// end of file