--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vtuis/videotelui/src/features/prefs/cvtuicolortone.cpp Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,383 @@
+/*
+* Copyright (c) 2006 - 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: Color tone UI feature implementation.
+*
+*/
+
+
+#include <mvtengmedia.h>
+#include <cvtengmodel.h>
+#include <mvtengcamerapreferences.h>
+#include <cvtlogger.h>
+#include "cvtuicolortone.h"
+#include "tvtuifeatureids.h"
+#include <videotelui.rsg>
+#include "mvtuicomponentmanager.h"
+#include "cvtuifeaturemanager.h"
+#include "CVtUiAppUi.h"
+#include "tvtuilocalvariation.h"
+#include "cvtuifeaturemanager.h"
+#include "tvtuistates.h"
+#include "cvtuicommandmanager.h"
+
+// Implementation of TVtUiColorToneComponentState
+
+// ---------------------------------------------------------------------------
+// TVtUiColorToneComponentState::TVtUiColorToneComponentState
+// ---------------------------------------------------------------------------
+//
+TVtUiColorToneComponentState::TVtUiColorToneComponentState(
+ MVtUiComponent& aComponent ) :
+ TVtUiComponentState( aComponent,
+ TVtUiBlockListBitField(
+ MVtUiComponent::EComponentIdDialer |
+ MVtUiComponent::EComponentIdToolbar |
+ MVtUiComponent::EComponentIdNumberEntry ) )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::NewL
+// ---------------------------------------------------------------------------
+//
+CVtUiColorTone* CVtUiColorTone::NewL( CVtUiFeatureManager&
+ aFeatureManager )
+ {
+ __VTPRINTENTER( "UiColorTone.NewL" )
+ CVtUiColorTone* self =
+ new ( ELeave ) CVtUiColorTone( aFeatureManager );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ __VTPRINTEXIT( "UiColorTone.NewL" )
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::~CVtUiColorTone
+// ---------------------------------------------------------------------------
+//
+CVtUiColorTone::~CVtUiColorTone()
+ {
+ __VTPRINTENTER( "UiColorTone.~" )
+ // unregister layout change
+ iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration(
+ *this, MVtUiComponentManager::EUnregister );
+ // unregister component
+ iFeatureManager.ComponentManager().ChangeComponentRegistration(
+ iComponentState, MVtUiComponentManager::EUnregister );
+ __VTPRINTEXIT( "UiColorTone.~" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::StartL
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::StartL()
+ {
+ __VTPRINTENTER( "UiColorTone.StartL" )
+ if ( iFeatureState == MVtUiFeature::EReady )
+ {
+ iFeatureManager.AppUi().EnableCommandActivatingAndCleanupPushL();
+ iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse );
+ iFeatureManager.ComponentManager().
+ RequestActivationL ( MVtUiComponent::EComponentIdColorTone );
+ CleanupStack::Pop(); // EnableCommandActivatingAndCleanupPushL
+ // set state
+ iFeatureState = MVtUiFeature::EActive;
+ }
+ __VTPRINTEXIT( "UiColorTone.StartL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::Stop
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::Stop()
+ {
+ __VTPRINTENTER( "UiColorTone.Stop" )
+ iAsyncCallback->Cancel();
+ iAsyncCallback->Set( TCallBack( &DoStopL, this ) );
+ iAsyncCallback->CallBack();
+ __VTPRINTEXIT( "UiColorTone.Stop" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::InitFeatureL
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::InitFeatureL()
+ {
+ __VTPRINTENTER( "UiColorTone.InitFeatureL" )
+ CVtUiPrefSettingListBase::InitFeatureL();
+ User::LeaveIfError(
+ iFeatureManager.ComponentManager().ChangeComponentRegistration(
+ iComponentState, MVtUiComponentManager::ERegister ) );
+ User::LeaveIfError(
+ iFeatureManager.ComponentManager().ChangeLayoutChangeRegistration(
+ *this, MVtUiComponentManager::ERegister ) );
+ iFeatureState = EReady;
+ __VTPRINTEXIT( "UiColorTone.InitFeatureL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::ComponentId
+// ---------------------------------------------------------------------------
+//
+MVtUiComponent::TComponentId CVtUiColorTone::ComponentId() const
+ {
+ __VTPRINTENTER( "UiColorTone.ComponentId" )
+ __VTPRINTEXIT( "UiColorTone.ComponentId" )
+ return MVtUiComponent::EComponentIdColorTone;
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::ComponentAsControl
+// ---------------------------------------------------------------------------
+//
+CCoeControl* CVtUiColorTone::ComponentAsControl()
+ {
+ __VTPRINTENTER( "UiColorTone.ComponentAsControl" )
+ __VTPRINTEXIT( "UiColorTone.ComponentAsControl" )
+ return NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::DoActivateL
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::DoActivateL()
+ {
+ __VTPRINTENTER( "UiColorTone.DoActivateL" )
+ // get supported color tone modes
+ iCameraPref->GetSupportedColorTones( iSupportedModes );
+ __VTPRINT2( DEBUG_GEN, "UiColorTone.ConstructL=%d", iSupportedModes )
+ iFeatureManager.UiStates().SetColorToneModeOn( ETrue );
+ iAsyncCallback->Cancel();
+ iAsyncCallback->Set( TCallBack( &DoStartL, this ) );
+ iAsyncCallback->CallBack();
+ __VTPRINTEXIT( "UiColorTone.DoActivateL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::DoDeactivateL
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::DoDeactivateL()
+ {
+ __VTPRINTENTER( "UiColorTone.DoDeactivateL" )
+ iFeatureManager.UiStates().SetColorToneModeOn( EFalse );
+ CVtUiPrefSettingListBase::StopSettingPageL();
+ __VTPRINTEXIT( "UiColorTone.DoDeactivateL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::HandleLayoutChangeL
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::HandleLayoutChangeL()
+ {
+ __VTPRINTENTER( "UiColorTone.HandleLayoutChangeL" )
+ if ( iFeatureState == MVtUiFeature::EActive )
+ {
+ SizeChanged();
+ }
+ __VTPRINTEXIT( "UiColorTone.HandleLayoutChangeL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::CurrentSelection
+// ---------------------------------------------------------------------------
+//
+TInt CVtUiColorTone::CurrentSelection()
+ {
+ __VTPRINTENTER( "UiColorTone.CurrentSelection" )
+ // ask from engine which item is currently active
+ MVtEngCameraPreferences::TColorTone wb;
+ if ( iCameraPref->GetColorTone( wb ) )
+ {
+ __VTPRINTEXIT( "UiColorTone.CurrentSelectionERR" )
+ // if error occured return 0 i.e. first list item
+ return 0;
+ }
+ __VTPRINTEXIT( "UiColorTone.CurrentSelection" )
+ return MapCTEnumToArrayIndex( wb );
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::SetItemsL
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::SetItemsL( CDesCArray& aArray )
+ {
+ __VTPRINTENTER( "UiColorTone.SetItemsL<" )
+ __VTPRINT2( DEBUG_GEN, "UiColorTone.SetItemsL=%d", iSupportedModes )
+ // Normal mode allways supported
+ ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_CT_NORMAL_OPTION );
+ iActiveItems.Append( MVtEngCameraPreferences::ENormal );
+
+ if( iSupportedModes & MVtEngCameraPreferences::ESepia )
+ {
+ ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_SEPIA_OPTION );
+ iActiveItems.Append( MVtEngCameraPreferences::ESepia );
+ }
+ if( iSupportedModes & MVtEngCameraPreferences::EGrayscale )
+ {
+ ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_B_AND_W_OPTION );
+ iActiveItems.Append( MVtEngCameraPreferences::EGrayscale );
+ }
+ if( iSupportedModes & MVtEngCameraPreferences::ENegative )
+ {
+ ReadAndAppendItemL( aArray, R_VIDEOTELUI_QTN_INCAL_NEGATIVE_OPTION );
+ iActiveItems.Append( MVtEngCameraPreferences::ENegative );
+ }
+ __VTPRINTEXIT( "UiColorTone.SetItemsL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::SettingPageResId
+// ---------------------------------------------------------------------------
+//
+TInt CVtUiColorTone::SettingPageResId() const
+ {
+ __VTPRINTENTER( "UiColorTone.SettingPageResId" )
+ __VTPRINTEXIT( "UiColorTone.SettingPageResId" )
+ return R_VIDEOTELUI_COLOR_TONE_SETTING_PAGE;
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::SettingPageItemChanged
+// ---------------------------------------------------------------------------
+//
+void CVtUiColorTone::SettingPageItemChangedL( TInt aIndex )
+ {
+ __VTPRINTENTER( "CVtUiColorTone.SettingPageItemChangedL" )
+ __VTPRINT2( DEBUG_GEN, "CVtUiColorTone.index=%d", aIndex )
+ if ( iFeatureManager.UiStates().ExecState() == TVtUiStates::EExecStateResetting )
+ {
+ __VTPRINTEXIT( "CVtUiColorTone.SettingPageItemChangedL" )
+ return;
+ }
+ // Map index to right color tone value
+ MVtEngCameraPreferences::TColorTone ct = MapArrayIndexToCTEnum( aIndex );
+
+ // cast the parameter
+ TPtrC8 params( reinterpret_cast< TUint8* >( &ct ),
+ sizeof( MVtEngCameraPreferences::TColorTone ) );
+
+ // Adjust color tone
+ MVtEngMedia::TCameraId currentCamId;
+ iFeatureManager.AppUi().Model().Media().GetCurrentCameraId( currentCamId );
+ if( currentCamId == MVtEngMedia::ESecondaryCamera )
+ {
+ iFeatureManager.AppUi().DoExecuteCmdL( KVtEngSetColorTone, ¶ms );
+ iPendingSettingChangeCmd = EFalse;
+ }
+ else
+ iPendingSettingChangeCmd = ETrue;
+ __VTPRINTEXIT( "CVtUiColorTone.SettingPageItemChangedL" )
+ }
+
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::CVtUiColorTone
+// ---------------------------------------------------------------------------
+//
+CVtUiColorTone::CVtUiColorTone( CVtUiFeatureManager& aFeatureManager )
+ : CVtUiPrefSettingListBase( aFeatureManager, EVtUiFeatureIdColourTone ),
+ iComponentState( *this )
+ {
+ __VTPRINTENTER( "UiColorTone.UiColorTone" )
+ __VTPRINTEXIT( "UiColorTone.UiColorTone" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::MapCTEnumToArrayIndex
+// ---------------------------------------------------------------------------
+//
+TInt CVtUiColorTone::MapCTEnumToArrayIndex( MVtEngCameraPreferences::
+ TColorTone& aColorTone ) const
+ {
+ __VTPRINTENTER( "CVtUiColorTone.MapCTEnumToArrayIndex" )
+ __VTPRINT2( DEBUG_GEN, "CVtUiColorTone.cpunt=%d", iActiveItems.Count() )
+ for ( TInt i = 0; i < iActiveItems.Count(); ++i )
+ {
+ if ( iActiveItems [ i ] == aColorTone )
+ {
+ __VTPRINT2( DEBUG_GEN, "CVtUiColorTone.index=%d", i )
+ __VTPRINTEXIT( "CVtUiColorTone.MapCTEnumToArrayIndex" )
+ return i;
+ }
+ }
+ __VTPRINTEXIT( "CVtUiColorTone.MapCTEnumToArrayIndex" )
+ // not found
+ return KErrNotFound;
+ }
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::MapArrayIndexToCTEnum
+// ---------------------------------------------------------------------------
+//
+MVtEngCameraPreferences::TColorTone CVtUiColorTone::MapArrayIndexToCTEnum(
+ TInt aIndex) const
+ {
+ __VTPRINTENTER( "TColorTone.MapArrayIndexToCTEnum" )
+ __VTPRINT2( DEBUG_GEN, "TColorTone.index=%d", aIndex )
+ __VTPRINT2( DEBUG_GEN, "TColorTone.count=%d", iActiveItems.Count() )
+ const TInt count = iActiveItems.Count();
+ if ( count > 0 && aIndex < count && aIndex >= 0 )
+ {
+ __VTPRINTEXIT( "TColorTone.MapArrayIndexToCTEnum" )
+ return static_cast< MVtEngCameraPreferences::TColorTone >
+ ( iActiveItems[ aIndex ] );
+ }
+ else // not valid index return first item in the list
+ {
+ __VTPRINTEXIT( "TColorTone.MapArrayIndexToCTEnum_ERROR_INDEX" )
+ return static_cast< MVtEngCameraPreferences::TColorTone >
+ ( iActiveItems[ 0 ] );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::DoStop
+// ---------------------------------------------------------------------------
+//
+TInt CVtUiColorTone::DoStopL( TAny* aAny )
+ {
+ __VTPRINTENTER( "CVtUiColorTone.DoStopL" )
+ CVtUiColorTone* self = static_cast< CVtUiColorTone* >( aAny );
+ if ( self->iFeatureState == MVtUiFeature::EActive )
+ {
+ self->iFeatureManager.ComponentManager().
+ DeActivateComponentL ( MVtUiComponent::EComponentIdColorTone );
+ // set state
+ self->iFeatureState = MVtUiFeature::EReady;
+ }
+ __VTPRINTEXIT( "CVtUiColorTone.DoStopL" )
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiColorTone::DoStart
+// ---------------------------------------------------------------------------
+//
+TInt CVtUiColorTone::DoStartL( TAny* aAny )
+ {
+ __VTPRINTENTER( "CVtUiColorTone.DoStart" )
+ CVtUiColorTone* self = static_cast< CVtUiColorTone* >( aAny );
+ self->CVtUiPrefSettingListBase::StartSettingPageL();
+ self->iFeatureManager.UiStates().SetIsCommandActivating( EFalse );
+ __VTPRINTEXIT( "CVtUiColorTone.DoStart" )
+ return KErrNone;
+ }