--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fmradio/fmradioengine/inc/fmradioenginecentralrepositoryhandler.h Tue Feb 02 00:17:10 2010 +0200
@@ -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<CFMRadioRegion> iRegions;
+
+
+
+ };
+
+#endif // FMRADIOENGINECENTRALREPOSITORYHANDLER_H
+
+// end of file