vtuis/videotelui/inc/features/prefs/cvtuivideoquality.h
branchRCL_3
changeset 25 779871d1e4f4
parent 0 ed9695c8bcbe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vtuis/videotelui/inc/features/prefs/cvtuivideoquality.h	Wed Sep 01 12:29:12 2010 +0100
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2007 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:  Video quality feature.
+*
+*/
+
+
+#ifndef C_VTUIVIDEOQUALITY_H
+#define C_VTUIVIDEOQUALITY_H
+
+#include    <gulicon.h>
+#include    "cvtuifeaturebase.h"
+#include    "mvtuicomponent.h"
+#include    "tvtuicomponentstate.h"
+#include    "videotelui.hrh"
+
+/**
+*  TVtUiVideoQualityComponentState
+*
+* Video quality componentstate definition.
+*
+*  @since S60 v3.2
+*/
+class TVtUiVideoQualityComponentState : public TVtUiComponentState
+    {
+
+public:
+
+    /**
+    * Constructor
+    * @param aComponent Reference to component.
+    */
+    TVtUiVideoQualityComponentState( MVtUiComponent& aComponent );
+    
+    };
+
+/**
+*  CVtUiVideoQuality
+*
+*  Video quality UI feature definition.
+*
+*  @since S60 v3.2
+*/
+class CVtUiVideoQuality : public CVtUiFeatureBase,
+    public MVtUiComponent
+    {
+
+public:
+
+    /**
+    * Static constructor
+    * @param aFeatureManager Reference to feature manager.
+    */
+    static CVtUiVideoQuality* NewL( CVtUiFeatureManager& aFeatureManager );
+
+    /**
+    * Destructor
+    */
+    ~CVtUiVideoQuality();
+
+public: // from MVtUiFeature
+
+    /** 
+    * @see MVtUiFeature::StartL
+    */
+    void StartL();
+
+    /** 
+    * @see MVtUiFeature::Stop 
+    */
+    void Stop();
+    
+    /** 
+    * @see MVtUiFeature::InitFeatureL
+    */
+    void InitFeatureL();
+
+public: // from MVtUiComponent
+
+    /**
+    * @see MVtUiComponent::ComponentId
+    */
+    MVtUiComponent::TComponentId ComponentId() const;
+
+    /**
+    * @see MVtUiComponent::ComponentAsControl
+    */
+    CCoeControl* ComponentAsControl();
+
+    /**
+    * @see MVtUiComponent::DoActivateL
+    */
+    void DoActivateL();
+
+    /**
+    * @see MVtUiComponent::DoDeactivateL
+    */
+    void DoDeactivateL();
+
+private:
+    
+    // Creates icons for list
+    CGulIcon* CreateIconLC( TVtUiBitmapId aIconId, TVtUiBitmapId aMaskId );
+
+    // Shows the selection list
+    void ShowSelectionListL();
+    
+    // Async the selection list
+    static TInt AsyncShowSelectionList( TAny* aPtr );
+    
+    // Reads items from source to target array and updates the selection icon
+    // if needed.
+    void SetItemsL( CDesCArray& aTarget,const CDesCArray& aSource );
+    
+    // Return curretly active item.
+    TInt ActiveItem() const;
+    
+    // Item selected, adjust video quality.
+    void ItemSelectedL( TInt aItemIndex );
+    
+private:
+
+    /**
+    * Constructor
+    */
+    CVtUiVideoQuality( CVtUiFeatureManager& aFeatureManager );
+
+    /**
+    * 2nd constructor
+    */
+    void ConstructL();
+    
+    /**
+    * Callback function that stops the feature.
+    * @param aAny pointer to an instance of the class.
+    * @return always KErrNone.
+    */
+    static TInt DoStop( TAny* aAny );
+
+private:
+
+    // Component state
+    TVtUiVideoQualityComponentState iComponentState;
+    
+    // Async callback for selection list
+    CAsyncCallBack* iShowSelectionListCallback;
+    };
+
+#endif // CVTUIVIDEOQUALITY_H