diff -r 890b5dd735f8 -r f15ac8e65a02 vtuis/videotelui/src/features/prefs/cvtuiwhitebalance.cpp --- a/vtuis/videotelui/src/features/prefs/cvtuiwhitebalance.cpp Thu Aug 19 09:57:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -/* -* Copyright (c) 2007 - 2008 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 UI feature implementation. -* -*/ - - -#include -#include -#include -#include "cvtuiwhitebalance.h" -#include "tvtuifeatureids.h" -#include -#include -#include "mvtuicomponentmanager.h" -#include "cvtuifeaturemanager.h" -#include "CVtUiAppUi.h" -#include "tvtuilocalvariation.h" -#include "tvtuistates.h" -#include "cvtuifeaturemanager.h" -#include "cvtuicommandmanager.h" - -// Implementation of TVtUiWhiteBalanceComponentState - -// --------------------------------------------------------------------------- -// TVtUiWhiteBalanceComponentState::TVtUiWhiteBalanceComponentState -// --------------------------------------------------------------------------- -// -TVtUiWhiteBalanceComponentState::TVtUiWhiteBalanceComponentState( - MVtUiComponent& aComponent ) : - TVtUiComponentState( aComponent, - TVtUiBlockListBitField( - MVtUiComponent::EComponentIdToolbar | - MVtUiComponent::EComponentIdNumberEntry ) ) - { - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::NewL -// --------------------------------------------------------------------------- -// -CVtUiWhiteBalance* CVtUiWhiteBalance::NewL( CVtUiFeatureManager& - aFeatureManager ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.NewL" ) - CVtUiWhiteBalance* self = - new ( ELeave ) CVtUiWhiteBalance( aFeatureManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - __VTPRINTEXIT( "CVtUiWhiteBalance.NewL" ) - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::~CVtUiWhiteBalance -// --------------------------------------------------------------------------- -// -CVtUiWhiteBalance::~CVtUiWhiteBalance() - { - __VTPRINTENTER( "CVtUiWhiteBalance.~CVtUiWhiteBalance" ) - // unregister layout change - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::EUnregister ); - // unregister component - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::EUnregister ); - __VTPRINTEXIT( "CVtUiWhiteBalance.~CVtUiWhiteBalance" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::StartL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::StartL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.StartL" ) - if ( iFeatureState == MVtUiFeature::EReady ) - { - iFeatureManager.AppUi().EnableCommandActivatingAndCleanupPushL(); - iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse ); - iFeatureManager.ComponentManager(). - RequestActivationL ( MVtUiComponent::EComponentIdWhiteBalance ); - CleanupStack::Pop(); // EnableCommandActivatingAndCleanupPushL - // set state - iFeatureState = MVtUiFeature::EActive; - } - __VTPRINTEXIT( "CVtUiWhiteBalance.StartL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::Stop -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::Stop() - { - __VTPRINTENTER( "CVtUiWhiteBalance.Stop" ) - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoStopL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "CVtUiWhiteBalance.Stop" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::InitFeatureL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::InitFeatureL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.InitFeatureL" ) - CVtUiPrefSettingListBase::InitFeatureL(); - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeComponentRegistration( - iComponentState, MVtUiComponentManager::ERegister ) ); - User::LeaveIfError( - iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration( - *this, MVtUiComponentManager::ERegister ) ); - iFeatureState = EReady; - __VTPRINTEXIT( "CVtUiWhiteBalance.InitFeatureL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::ComponentId -// --------------------------------------------------------------------------- -// -MVtUiComponent::TComponentId CVtUiWhiteBalance::ComponentId() const - { - __VTPRINTENTER( "CVtUiWhiteBalance.ComponentId" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.ComponentId" ) - return MVtUiComponent::EComponentIdWhiteBalance; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::ComponentAsControl -// --------------------------------------------------------------------------- -// -CCoeControl* CVtUiWhiteBalance::ComponentAsControl() - { - __VTPRINTENTER( "CVtUiWhiteBalance.ComponentAsControl" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.ComponentAsControl" ) - return NULL; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoActivateL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::DoActivateL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoActivateL" ) - // get supported white balance modes - iCameraPref->GetSupportedWhiteBalanceModes( iSupportedModes ); - __VTPRINT2( DEBUG_GEN,"CVtUiWhiteBalance.DoActivateL=%d", iSupportedModes ) - iFeatureManager.UiStates().SetWhiteBalanceModeOn( ETrue ); - iAsyncCallback->Cancel(); - iAsyncCallback->Set( TCallBack( &DoStartL, this ) ); - iAsyncCallback->CallBack(); - __VTPRINTEXIT( "CVtUiWhiteBalance.DoActivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoDeactivateL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::DoDeactivateL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoDeactivateL" ) - iFeatureManager.UiStates().SetWhiteBalanceModeOn( EFalse ); - CVtUiPrefSettingListBase::StopSettingPageL(); - __VTPRINTEXIT( "CVtUiWhiteBalance.DoDeactivateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::HandleLayoutChangeL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::HandleLayoutChangeL() - { - __VTPRINTENTER( "CVtUiWhiteBalance.HandleLayoutChangeL" ) - if ( iFeatureState == MVtUiFeature::EActive ) - { - SizeChanged(); - } - __VTPRINTEXIT( "CVtUiWhiteBalance.HandleLayoutChangeL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::CurrentSelection -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::CurrentSelection() - { - __VTPRINTENTER( "CVtUiWhiteBalance.CurrentSelection" ) - // ask from engine which item is currently active - MVtEngCameraPreferences::TWhiteBalance wb; - if ( iCameraPref->GetWhiteBalance( wb ) ) - { - __VTPRINT( DEBUG_GEN, "CurrentSelection::error" ); - __VTPRINTEXIT( "CVtUiWhiteBalance.CurrentSelection" ) - // if error occured return 0 i.e. first list item - return 0; - } - __VTPRINTEXIT( "CVtUiWhiteBalance.CurrentSelection" ) - return MapWBEnumToArrayIndex( wb ); - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::SetItemsL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::SetItemsL( CDesCArray& aArray ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.SetItemsL" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.SetItemsL=%d", iSupportedModes ) - // Auto mode allways supported - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_AUTOMATIC_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EAuto ); - - if( iSupportedModes & MVtEngCameraPreferences::EDaylight ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_SUNNY_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EDaylight ); - } - if( iSupportedModes & MVtEngCameraPreferences::ECloudy ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_CLOUDY_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ECloudy ); - } - if( iSupportedModes & MVtEngCameraPreferences::ETungsten ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_INCANDESCENT_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::ETungsten ); - } - if( iSupportedModes & MVtEngCameraPreferences::EFluorescent ) - { - ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_FLUORESCENT_OPTION ); - iActiveItems.Append( MVtEngCameraPreferences::EFluorescent ); - } - __VTPRINTEXIT( "CVtUiWhiteBalance.SetItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::SettingPageResId -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::SettingPageResId() const - { - __VTPRINTENTER( "CVtUiWhiteBalance.SettingPageResId" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.SettingPageResId" ) - return R_VIDEOTELUI_WHITE_BALANCE_SETTING_PAGE; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::SettingPageItemChangedL -// --------------------------------------------------------------------------- -// -void CVtUiWhiteBalance::SettingPageItemChangedL( TInt aIndex ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.SettingPageItemChangedL" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.index=%d", aIndex ) - if ( iFeatureManager.UiStates().ExecState() == TVtUiStates::EExecStateResetting ) - { - __VTPRINTEXIT( "CVtUiWhiteBalance.SettingPageItemChangedL" ) - return; - } - // Map index to right white balance value - MVtEngCameraPreferences::TWhiteBalance wb = MapArrayIndexToWBEnum( aIndex ); - - // cast the parameter - TPtrC8 params( reinterpret_cast< TUint8* >( &wb ), - sizeof( MVtEngCameraPreferences::TWhiteBalance ) ); - - // Adjust white balance - MVtEngMedia::TCameraId camId; - iFeatureManager.AppUi().Model().Media().GetCurrentCameraId(camId); - - if( camId == MVtEngMedia::ESecondaryCamera ) - { - iFeatureManager.AppUi().DoExecuteCmdL( KVtEngSetWhiteBalance, ¶ms ); - iPendingSettingChangeCmd = EFalse; - } - else - iPendingSettingChangeCmd = ETrue; - __VTPRINTEXIT( "CVtUiWhiteBalance.SettingPageItemChangedL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::CVtUiWhiteBalance -// --------------------------------------------------------------------------- -// -CVtUiWhiteBalance::CVtUiWhiteBalance( CVtUiFeatureManager& aFeatureManager ) - : CVtUiPrefSettingListBase( aFeatureManager, EVtUiFeatureIdWhiteBalance ), - iComponentState( *this ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.CVtUiWhiteBalance" ) - __VTPRINTEXIT( "CVtUiWhiteBalance.CVtUiWhiteBalance" ) - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::MapWBEnumToArrayIndex -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::MapWBEnumToArrayIndex( MVtEngCameraPreferences:: - TWhiteBalance& aWhiteBalance ) const - { - __VTPRINTENTER( "CVtUiWhiteBalance.MapWBEnumToArrayIndex" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.cpunt=%d", iActiveItems.Count() ) - for ( TInt i = 0; i < iActiveItems.Count(); ++i ) - { - if ( iActiveItems [ i ] == aWhiteBalance ) - { - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.index=%d", i ) - __VTPRINTEXIT( "CVtUiWhiteBalance.MapWBEnumToArrayIndex" ) - return i; - } - } - // not found - __VTPRINTEXIT( "CVtUiWhiteBalance.MapWBEnumToArrayIndexNF" ) - return KErrNotFound; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::MapArrayIndexToWBEnum -// --------------------------------------------------------------------------- -// -MVtEngCameraPreferences::TWhiteBalance CVtUiWhiteBalance:: - MapArrayIndexToWBEnum( TInt aIndex) const - { - __VTPRINTENTER( "CVtUiWhiteBalance.MapArrayIndexToWBEnum" ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.index=%d", aIndex ) - __VTPRINT2( DEBUG_GEN, "CVtUiWhiteBalance.count=%d", iActiveItems.Count() ) - const TInt count = iActiveItems.Count(); - if ( count > 0 && aIndex < count && aIndex >= 0 ) - { - __VTPRINTEXIT( "CVtUiWhiteBalance.MapArrayIndexToWBEnum" ) - return static_cast< MVtEngCameraPreferences::TWhiteBalance > - ( iActiveItems[ aIndex ] ); - } - else // not valid index return first item in the list - { - __VTPRINTEXIT( "CVtUiWhiteBalance.MapArrayIndexToWBEnum_ERROR_INDEX" ) - return static_cast< MVtEngCameraPreferences::TWhiteBalance > - ( iActiveItems[ 0 ] ); - } - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoStop -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::DoStopL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoStopL" ) - CVtUiWhiteBalance* self = static_cast< CVtUiWhiteBalance* >( aAny ); - if ( self->iFeatureState == MVtUiFeature::EActive ) - { - __VTPRINT( DEBUG_GEN, "CVtUiWhiteBalance::Stop1" ); - self->iFeatureManager.ComponentManager(). - DeActivateComponentL ( MVtUiComponent::EComponentIdWhiteBalance ); - // set state - self->iFeatureState = MVtUiFeature::EReady; - } - __VTPRINTEXIT( "CVtUiWhiteBalance.DoStopL" ) - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CVtUiWhiteBalance::DoStart -// --------------------------------------------------------------------------- -// -TInt CVtUiWhiteBalance::DoStartL( TAny* aAny ) - { - __VTPRINTENTER( "CVtUiWhiteBalance.DoStart" ) - CVtUiWhiteBalance* self = static_cast< CVtUiWhiteBalance* >( aAny ); - self->CVtUiPrefSettingListBase::StartSettingPageL(); - self->iFeatureManager.UiStates().SetIsCommandActivating( EFalse ); - __VTPRINTEXIT( "CVtUiWhiteBalance.DoStart" ) - return KErrNone; - }