mediasettings/mediasettingsengine/inc/MPSettingsModelForROP.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mediasettings/mediasettingsengine/inc/MPSettingsModelForROP.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,504 @@
+/*
+* 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 the License "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:    MMF ROP plugin specific settings model.*
+*/
+
+
+
+// Version : %version: 6 %
+
+
+
+
+#ifndef MPSETTINGSMODELFORROP_H
+#define MPSETTINGSMODELFORROP_H
+
+//  INCLUDES
+#include    <e32base.h> 
+#include    <centralrepository.h>
+#include    <mmf/common/mmfcontroller.h>
+#include    "mpsettingsmodel.h"
+
+class CMPRopSettingItem;
+class CMPSettingsRopConfigParser;
+class CCommsDatabase;
+class CApUtils;
+
+// CLASS DECLARATION
+
+/**
+*  CMPSettingsModelForROP
+*  MMF ROP plugin specific settings model.
+*
+*  @lib MPSettEngine.dll
+*  @since 2.0
+*/
+class CMPSettingsModelForROP : public CMPSettingsModel
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CMPSettingsModelForROP* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CMPSettingsModelForROP();
+
+    public: // Functions from base classes
+
+        /**
+        * From MMPSettingsModel, provides uid of the MMF controller,
+        * which settings this class handles
+        * @since 2.0
+        * @return MMF controller UID
+        */
+        const TUid MMFControllerID();
+        
+        /**
+        * From MMPSettingsModel,
+        * @since 2.0
+        */
+        void LoadSettingsL(TInt aConfigVersion);
+
+        /**
+        * From MMPSettingsModel, 
+        * @since 2.0
+        */
+        void StoreSettingsL();
+
+        /**
+        * From MMPSettingsModel, sets video contrast
+        * @since 2.0
+        * @param aContrast Contrast level
+        * @return Error value.
+        */
+        TInt SetVideoContrast(TInt aContrast);
+
+        /**
+        * From MMPSettingsModel, returns video contrast level.
+        * @since 2.0
+        * @param aContrast Contrast level:
+        * @return Error value.
+        */
+        TInt GetVideoContrast(TInt& aContrast);
+
+        /**
+        * From MMPSettingsModel, sets proxy mode..
+        * @since 2.0
+        * @param aMode Proxy mode.
+        * @return Error value.
+        */
+        TInt SetProxyMode(TInt aMode);
+        
+        /**
+        * From MMPSettingsModel, returns proxy mode.
+        * @since 2.0
+        * @param aMode Proxy mode:
+        *         0:    Disabled
+        *         1:    Enabled
+        * @return Error value.
+        */
+        TInt GetProxyMode(TInt& aMode);
+
+        /**
+        * From MMPSettingsModel, sets Proxy host name.
+        * @since 2.0
+        * @param aHostName Proxy host name.
+        * @return Error value.
+        */
+        TInt SetProxyHostNameL(const TDesC& aHostName);
+        
+        /**
+        * From MMPSettingsModel, returns proxy host name.
+        * @since 2.0
+        * @param aHostName Proxy host name.
+        * @return Error value.
+        */
+        TInt GetProxyHostName(TDes& aHostName);
+
+        /**
+        * From MMPSettingsModel, sets proxy port number.
+        * @since 2.0
+        * @param aPort Proxy port number.
+        * @return Error value.
+        */
+        TInt SetProxyPort(TInt aPort);
+        
+        /**
+        * From MMPSettingsModel, returns proxy port number..
+        * @since 2.0
+        * @return Integer: Proxy port number.
+        * @return Error value.
+        */
+        TInt GetProxyPort(TInt& aPort);
+        
+        /**
+        * From MMPSettingsModel, sets default access point.
+        * @since 2.0
+        * @param aApId Access point ID.
+        * @return Error value.
+        */
+        TInt SetDefaultAp(TUint32 aApId);
+
+        /**
+        * From MMPSettingsModel, returns default access point ID.
+        * @since 2.0
+        * @param aApId Access point ID.
+        * @return Error value.
+        */
+        TInt GetDefaultAp(TUint32& aApId);
+
+        /**
+        * Sets bandwidth control mode.
+        * @since 2.0
+        * @param aMode bandwidth control mode.
+        * @return Error value.
+        */
+        TInt SetBandwidthControlMode(TInt aMode);
+        
+        /**
+        * Returns bandwidth control mode.
+        * @since 2.0
+        * @param aMode bandwidth control mode:
+        *           0: Use dynamic bw control if possible
+        *           1: Use static bw control
+        * @return Error value.
+        */
+        TInt GetBandwidthControlMode(TInt& aMode);
+
+        /**
+        * From MMPSettingsModel, sets maximum bandwidth.
+        * @since 2.0
+        * @param aMaxBw Maximum bandwidth.
+        * @param aBearer Bearer, which max bw is set.
+        * @return Error value.
+        */
+        TInt SetMaxBandwidth(TInt aMaxBw, TDataBearer aBearer);
+        
+        /**
+        * From MMPSettingsModel, returns maximum bandwidth.
+        * @since 2.0
+        * @param aMaxBw Maximum bandwidth.
+        * @param aBearer Bearer, which max bw is enquired.
+        * @return Error value.
+        */
+        TInt GetMaxBandwidth(TInt& aMaxBw, TDataBearer aBearer);
+
+        /**
+        * From MMPSettingsModel, sets connection timeout.
+        * @since 2.0
+        * @param aTimeout Timeout in minutes.
+        * @return Error value.
+        */
+        TInt SetConnectionTimeout(TInt aTimeout);
+        
+        /**
+        * From MMPSettingsModel, returns connection timeout.
+        * @since 2.0
+        * @param aTimeout Timeout in minutes.
+        * @return Error value.
+        */
+        TInt GetConnectionTimeout(TInt& aTimeout);
+        
+        /**
+        * From MMPSettingsModel, sets server timout.
+        * @since 2.0
+        * @param aTimeout Timeout in minutes.
+        * @return Error value.
+        */
+        TInt SetServerTimeout(TInt aTimeout);
+        
+        /**
+        * From MMPSettingsModel, returns server timeout.
+        * @since 2.0
+        * @param aTimeout Timeout in minutes.
+        * @return Error value.
+        */
+        TInt GetServerTimeout(TInt& aTimeout);
+
+        /**
+        * From MMPSettingsModel, sets minimum UDP port number.
+        * @since 2.0
+        * @param aPort minimum port number.
+        * @return Error value.
+        */
+        TInt SetMinUDPPort(TInt aPort);
+
+        /**
+        * From MMPSettingsModel, returns minimum UDP port number.
+        * @since 2.0
+        * @param aPort minimum UDP port number in minutes.
+        * @return Error value.
+        */
+        TInt GetMinUDPPort(TInt& aPort);
+
+        /**
+        * From MMPSettingsModel, sets maximum UDP port number.
+        * @since 2.0
+        * @param aPort maximum port number.
+        * @return Error value.
+        */
+        TInt SetMaxUDPPort(TInt aPort);
+
+        /**
+        * From MMPSettingsModel, returns maximum UDP port number.
+        * @since 2.0
+        * @param aPort maximum UDP port number in minutes.
+        * @return Error value.
+        */
+        TInt GetMaxUDPPort(TInt& aPort);
+
+        /**
+        * Provides MMF controller version information.
+        * @since 2.0
+        * @param aVersion Controller version number.
+        * @return Error value.
+        */
+        TInt GetControllerVersionInfo(TDes& aVersion);
+            
+        /**
+        * Provides MMF controller's build date.
+        * @since 2.0
+        * @param aBldDate Controller build date.
+        * @return Error value.
+        */
+        TInt GetControllerBuildDate(TDes& aBldDate);
+
+        /**
+        * Provides additional information about MMF controller.
+        * @since 2.0
+        * @param aAdditionalInfo Additional controller information.
+        * @return Error value.
+        */
+        TInt GetControllerAdditionalInfo(TDes& aAdditionalInfo);
+
+        /**
+        * Sets demand bandwidth factor.
+        * @since 2.1
+        * @param aFactor Demand bandwidth factor.
+        * @return Error value.
+        */
+        TInt SetDemandBwFactor(TInt aFactor);
+
+        /**
+        * Returns demand factor bandwidth.
+        * @since 2.1
+        * @param aFactor Demand bandwidth factor.
+        * @return Error value.
+        */
+        TInt GetDemandBwFactor(TInt& aFactor); 
+
+        /**
+        * Sets sustainable bandwidth.
+        * @since 2.1
+        * @param aSustainBw Sustainable bandwidth.
+        * @param aBearer Bearer, which max bw is set.
+        * @return Error value.
+        */
+        TInt SetSustainBandwidth(TInt aSustainBw, TDataBearer aBearer);
+        
+        /**
+        * Returns sustainable bandwidth.
+        * @since 2.1
+        * @param aSustainBw Sustainable bandwidth.
+        * @param aBearer Bearer, which max bw is enquired.
+        * @return Error value.
+        */
+        TInt GetSustainBandwidth(TInt& aSustainBw, TDataBearer aBearer);
+
+        /**
+        * Returns an array of the fixed sustainable bandwidth values.
+        * @since 2.1
+        * @param aBwArray Fixed sustain bandwidth values are copied to this array.
+        * @param aBearer Bearer, which fixed sustain bw values is enquired.
+        * @return Error value.
+        */
+        TInt GetSustainBwPresetsL(RArray<TInt>& aBwArray, TDataBearer aBearer);
+
+        /**
+        * Returns an array of the fixed max bandwidth values.
+        * @since 2.1
+        * @param aBwArray Fixed max bandwidth values are copied to this array.
+        * @param aBearer Bearer, which fixed max bw values is enquired.
+        * @return Error value.
+        */
+        TInt GetMaxBwPresetsL(RArray<TInt>& aBwArray, TDataBearer aBearer);
+
+     public:  // value to / from MediaPlayer Repository
+	/**
+        * Returns video repeat mode.
+        * @since 2.0
+        * @return ETrue:    On
+        *         EFalse:   Off
+        */
+        TBool IsVideoRepeatOnL();
+
+        /**
+        * Sets video repeat mode. Deprecated.
+        * @since 2.0
+        * @param aRepeat Repeat mode.
+        */
+        void SetVideoRepeatL(const TBool aRepeat);
+
+		/**
+        * Returns default view mode. Deprecated.
+        * @since 3.2
+        * @return ETrue:    On  (Normal-screen view)
+        *         EFalse:   Off (Full-screen view)
+        */
+        TBool IsDefaultViewOnL();
+
+        /**
+        * Sets default view mode.
+        * @since 3.2
+        * @param aView Default view mode.
+        */
+        void SetDefaultViewL(const TBool aView);
+
+		/**
+        * Returns if Rocker Keys Feature is supported
+        * @since 3.2
+        * @return ETrue:    - Rocker Keys feature is supported
+        *         EFalse:   - Rocker Keys feature is not supported
+        */
+        TBool IsRockerKeysSupportedL();
+
+        /**
+        * Sets rocker keys mode.
+        * @since 3.2
+        * @param aRockerKeys rocker keys mode.
+        */
+        void SetRockerKeysL(const TBool aRockerKeys);
+
+		/**
+        * Returns Rocker Keys mode
+        * @since 3.2
+        * @return ETrue:    Show (Rocker Keys are shown)
+        *         EFalse:   Hide (Rocker Keys are hidden)
+        */
+		TBool ShowRockerKeysL();
+
+	/**
+        * Sets Media Player auto disconnection time.
+        * @since 2.0
+        * @param aTime Auto disconnection time.
+        */
+        void SetAutoDisconTimeL(const TInt aTime);
+
+        /**
+        * Returns Media Player auto disconnection time.
+        * @since 2.0
+        * @return 0:    Unlimited time
+        *         1-99: Time in minutes
+        */
+        TInt AutoDisconTimeL();
+
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CMPSettingsModelForROP();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private:
+
+        /**
+        * Function for setting an integer value to iItems
+        * array according to item id.
+        */
+        TInt SetIntegerValue(TInt aId, TInt aValue);
+
+        /**
+        * Function for getting an integer value from iItems
+        * array according to item id.
+        */
+        TInt GetIntegerValue(TInt aId, TInt& aValue);
+
+        /**
+        * Function for getting an string value from iItems
+        * array according to item id.
+        */
+        TInt GetStringValue(TInt aId, TDes& aString);
+
+        /**
+        * Resets aArray and populates it with values from iIntArray.
+        * aId is the id of an item from iItems, which iIntArray
+        * is copied.
+        */
+        TInt GetArrayL(TInt aId, RArray<TInt>& aArray);
+
+        /**
+        * Finds item from iItems according to it's id.
+        */
+        TInt GetItem(TInt aId, CMPRopSettingItem*& aItem);
+
+        /**
+        * Locates the resource file searching from y: to a: and then z: last.
+        *
+        * @param aFileName Full path to resource file.
+        * @param aFs File server session.
+        */
+        void LocateResourceFileL( TFileName& aFileName, RFs& aFs );
+    
+        /**
+         * Gets WAP id from IAP id. Leaves with KErrNotFound if no record with given 
+         * IAP id is found.
+         * 
+         * @return WAP id matching the given IAP id.
+         */
+        TUint32 WapIdFromIapIdL( TUint32 aIapId );
+
+        /**
+         * Gets WAP id from IAP id. Leaves with KErrNotFound if no record with given 
+         * IAP id is found.
+         * 
+         * @return WAP id matching the given IAP id.
+         */
+        TUint32 IapIdFromWapIdL( TUint32 aWapId );        
+        
+    private: // new
+           
+	void InitializeCentralRepositoryL();
+	void UninitializeCentralRepository();
+
+
+    private:    // Data
+
+        //Central repository objects
+        CRepository* iClient;
+		CRepository* iMediaPlayerClient;
+
+        CArrayPtr<CMPRopSettingItem>* iItems;
+        CMPSettingsRopConfigParser* iParser;
+
+        HBufC8* iROPSettings;
+        HBufC8* iROPHeader;
+
+        RMMFController iMMFController;      
+        CCommsDatabase* iCommDb;
+        CApUtils* iApUtils;
+    };
+
+#endif      // MPSETTINGSMODELFORROP_H   
+            
+// End of File