diff -r f15ac8e65a02 -r 779871d1e4f4 vtuis/videotelui/inc/features/prefs/cvtuivideoquality.h --- /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 +#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