vtuis/videotelui/inc/features/prefs/cvtuiwhitebalance.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 23 Nov 2009 14:47:47 +0200
changeset 0 ed9695c8bcbe
permissions -rw-r--r--
Revision: 200948

/*
* 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:  White balance feature.
*
*/


#ifndef C_VTUIWHITEBALANCE_H
#define C_VTUIWHITEBALANCE_H

#include    <mvtengcamerapreferences.h>
#include    "cvtuiprefsettinglistbase.h"
#include    "tvtuicomponentstate.h"
#include    "mvtuicomponent.h"
#include    "mvtuilayoutchangeobserver.h"

/**
*  TVtUiWhiteBalanceComponentState
*
* Video quality componentstate definition.
*
*  @since S60 v3.2
*/
class TVtUiWhiteBalanceComponentState : public TVtUiComponentState
    {

public:

    /**
    * Constructor
    * @param aComponent Reference to component.
    */
    TVtUiWhiteBalanceComponentState( MVtUiComponent& aComponent );
    
    };
    
/**
*  CVtUiWhiteBalance
*
*  White balance UI feature definition.
*
*  @since S60 v3.2
*/
class CVtUiWhiteBalance : public CVtUiPrefSettingListBase,
    public MVtUiComponent, public MVtUiLayoutChangeObserver 
    {

public:

    /**
    * Static constructor
    * @param aFeatureManager Reference to feature manager.
    */
    static CVtUiWhiteBalance* NewL( CVtUiFeatureManager& aFeatureManager );

    /**
    * Destructor
    */
    ~CVtUiWhiteBalance();

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();

public: // from MVtUiComponentManager

    /**
    * @see MVtUiComponentManager::HandleLayoutChangeL
    */
    void HandleLayoutChangeL();
    
protected: // from base class
   
   	/**
    * @see CVtUiPrefSettingListBase::CurrentSelection
    */
    virtual TInt CurrentSelection();
    
    /**
    * @see CVtUiPrefSettingListBase::SetItemsL
    */
    virtual void SetItemsL( CDesCArray& aArray );
    
    /**
    * @see CVtUiPrefSettingListBase::SettingPageResId
    */
    virtual TInt SettingPageResId() const;
    
    /**
    * @see CVtUiPrefSettingListBase::SettingPageItemChangedL
    */
    virtual void SettingPageItemChangedL( TInt aIndex );

private:

    /**
    * Constructor
    */
    CVtUiWhiteBalance( CVtUiFeatureManager& aFeatureManager );

    // Maps white balance enum to array index
    TInt MapWBEnumToArrayIndex( MVtEngCameraPreferences::TWhiteBalance&
        aWhiteBalance ) const;
    
    // Maps arrya index to white balance enum 
    MVtEngCameraPreferences::TWhiteBalance MapArrayIndexToWBEnum( TInt aIndex) const;        

    // Callback function that stops the feature.
    static TInt DoStopL( TAny* aAny );
    
    // Callback function that starts the feature.
    static TInt DoStartL( TAny* aAny );    
    
private:

    // Component state
    TVtUiWhiteBalanceComponentState iComponentState;

    };

#endif // CVTUIWHITEBALANCE_H