fmradio/fmradioengine/inc/fmradioenginecentralrepositoryhandler.h
branchRCL_3
changeset 20 93c594350b9a
parent 0 f3d95d9c00ab
--- /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<CFMRadioRegion> iRegions;
+    	
+    	
+        
+    };
+
+#endif  // FMRADIOENGINECENTRALREPOSITORYHANDLER_H
+
+// end of file