--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vtengines/videoteleng/Src/Extensions/CVtEngCameraPreferences.cpp Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,437 @@
+/*
+* Copyright (c) 2006 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: Videoteleng Camera Preferences extension
+*
+*/
+
+
+// INCLUDE FILES
+#include "CVtEngCameraPreferences.h"
+#include "VtEngPanic.h"
+#include "CVtEngSettings.h"
+#include "VtEngUtils.h"
+#include "mvtengcamerapreferencesobserver.h"
+
+#include <capivideosource.h>
+#include <cvtlogger.h>
+
+// LOCAL CONSTANTS AND MACROS
+
+// ============================ MEMBER FUNCTIONS ==============================
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::CVtEngCameraPreferences
+// C++ constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------------------------------
+//
+CVtEngCameraPreferences::CVtEngCameraPreferences():
+ CVtEngExtensionBase(
+ KVtEngExtensionCameraPreferences )
+ {
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::ConstructL
+// Symbian 2nd phase constructor can leave.
+// ----------------------------------------------------------------------------
+//
+void CVtEngCameraPreferences::ConstructL()
+ {
+ __VTPRINTENTER( "CVtEngCameraPreferences.ConstructL" )
+ __VTPRINTEXIT( "CVtEngCameraPreferences.ConstructL" )
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::NewL
+// Two-phased constructor.
+// ----------------------------------------------------------------------------
+//
+CVtEngCameraPreferences* CVtEngCameraPreferences::NewL()
+ {
+ CVtEngCameraPreferences* self = new( ELeave ) CVtEngCameraPreferences;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::~CVtEngCameraPreferences
+// Destructor. Cannot leave.
+// ----------------------------------------------------------------------------
+//
+CVtEngCameraPreferences::~CVtEngCameraPreferences()
+ {
+ __VTPRINTENTER( "CameraPreferences.~" )
+ if ( iObserver )
+ {
+ iObserver->Detach( *this );
+ }
+ __VTPRINTEXIT( "CameraPreferences.~" )
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetInterface
+//
+// ----------------------------------------------------------------------------
+//
+TAny* CVtEngCameraPreferences::GetInterface()
+ {
+ __VTPRINTENTER( "CameraPreferences.GetInterface")
+ // Cast first as API MVtEngCameraPreferences* class
+ // and after that to TAny*
+ __VTPRINTEXIT( "CameraPreferences.GetInterface" )
+ return reinterpret_cast< TAny* >( ( MVtEngCameraPreferences* ) this );
+
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::HandleL
+//
+// ----------------------------------------------------------------------------
+//
+TBool CVtEngCameraPreferences::HandleL( CVtEngOperation* aOp )
+ {
+ __VTPRINTENTER( "CameraPreferences.HandleL" )
+ const TVtEngCommandId id( aOp->Command() );
+ __VTPRINT2( DEBUG_GEN, "CVtEngCameraPreferences.HandleL CMD ID[%d] ", id )
+
+ // Check provider
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR( "CVtEngCameraPreferences.HandleL iProvider [%d]",
+ ( TInt )iProvider )
+ User::Leave( KErrNotReady );
+ }
+ // Check which command and call
+ // active provider with operation params
+ switch ( id )
+ {
+ case KVtEngSetContrast:
+ {
+ TInt contrast = 0;
+ TVtEngOpParamUtil< TInt >::Set( contrast, *aOp );
+ iProvider->SetContrastL( contrast );
+ if ( iObserver )
+ {
+ iObserver->ContrastUpdated( contrast );
+ }
+ break;
+ }
+ case KVtEngSetBrightness:
+ {
+ TInt brightness = 0;
+ TVtEngOpParamUtil< TInt >::Set( brightness, *aOp );
+ iProvider->SetBrightnessL( brightness );
+ if ( iObserver )
+ {
+ iObserver->BrightnessUpdated( brightness );
+ }
+ break;
+ }
+ case KVtEngSetWhiteBalance:
+ {
+ CCamera::TWhiteBalance whitebalance = CCamera::EWBAuto;
+ TVtEngOpParamUtil< CCamera::TWhiteBalance >::Set( whitebalance,
+ *aOp );
+ iProvider->SetWhiteBalanceL( whitebalance );
+ if ( iObserver )
+ {
+ iObserver->WhiteBalanceUpdated( TWhiteBalance( whitebalance ) );
+ }
+ break;
+ }
+ case KVtEngSetColorTone:
+ {
+ CCamera::CCameraImageProcessing::TEffect colortone =
+ CCamera::CCameraImageProcessing::EEffectNone;
+ TVtEngOpParamUtil< CCamera::CCameraImageProcessing::TEffect >::Set(
+ colortone, *aOp );
+ iProvider->SetColorToneL( colortone );
+ if ( iObserver )
+ {
+ iObserver->ColorToneUpdated( TColorTone( colortone ) );
+ }
+ break;
+ }
+ //Not supported command
+ default:
+ __VTPRINTEXITR(
+ "CVtEngCameraPreferences.HandleL NOT SUPPORTED CMD[%d]", id )
+ return EFalse;
+ }
+ __VTPRINTEXIT( "CameraPreferences.HandleL" )
+ return ETrue;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::ValidateCommand
+//
+// ----------------------------------------------------------------------------
+
+TBool CVtEngCameraPreferences::ValidateCommand(
+ const TVtEngCommandId aCommandId )
+ {
+ __VTPRINTENTER( "CameraPreferences.ValidateCommand" )
+ // Check provider
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR(
+ "CVtEngCameraPreferences.ValidateCommand iProvider [%d]",
+ ( TInt ) iProvider)
+ return EFalse;
+ }
+ // Take provider info is needed down below
+ TVSDataProviderInfo info;
+ iProvider->ProviderInfo( info );
+
+ // local or hw support
+ // set as False
+ TBool hworlocalsupport = EFalse;
+
+ // Check which command and check if
+ // if provider and local variation supports
+ __VTPRINT2( DEBUG_GEN,
+ "CVtEngCameraPreferences.ValidateCommand CMD ID[%d] ", aCommandId )
+ switch ( aCommandId )
+ {
+ case KVtEngSetContrast:
+ {
+ if ( info.iOptionsSupported & TCameraInfo::EContrastSupported )
+ {
+ hworlocalsupport = ETrue;
+ }
+ break;
+ }
+ case KVtEngSetBrightness:
+ {
+ if ( info.iOptionsSupported & TCameraInfo::EBrightnessSupported )
+ {
+ hworlocalsupport = ETrue;
+ }
+ break;
+ }
+ case KVtEngSetWhiteBalance:
+ {
+ if ( info.iWhiteBalanceModesSupported != CCamera::EWBAuto )
+ {
+ hworlocalsupport = ETrue;
+ }
+ break;
+ }
+ case KVtEngSetColorTone:
+ {
+ if ( info.iSupportedColorTones !=
+ CCamera::CCameraImageProcessing::EEffectNone )
+ {
+ hworlocalsupport = ETrue;
+ }
+ break;
+ }
+ // Not supported command
+ default:
+ {
+ __VTPRINT2( DEBUG_GEN,
+ "CVtEngCameraPreferences.ValidateCommand NOT SUPPORTED CMD[%d]",
+ aCommandId)
+ hworlocalsupport = EFalse;
+ }
+ }
+ __VTPRINTEXITR( "CVtEngCameraPreferences.ValidateCommand return value[%d]",
+ hworlocalsupport)
+ return hworlocalsupport;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetColorTone
+//
+// ----------------------------------------------------------------------------
+//
+TInt CVtEngCameraPreferences::GetColorTone(
+ MVtEngCameraPreferences::TColorTone& aColortone ) const
+ {
+ __VTPRINTENTER( "CameraPreferences.GetColorTone" )
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR( "CVtEngCameraPreferences.GetColorTone iProvider[%d]",
+ ( TInt )iProvider)
+ return KErrNotReady;
+ }
+ TInt error;
+ CCamera::CCameraImageProcessing::TEffect colortone;
+ error = iProvider->GetColorTone( colortone );
+ aColortone = ( MVtEngCameraPreferences::TColorTone ) colortone;
+ __VTPRINTEXITR( "CameraPreferences.GetColorTone error [%d]",error )
+ return error;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetSupportedColorTones
+//
+// ----------------------------------------------------------------------------
+//
+TInt CVtEngCameraPreferences::GetSupportedColorTones(
+ TUint32& aSupportedColorTones ) const
+ {
+ __VTPRINTENTER( "CameraPreferences.GetSupportedColorTones" )
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR(
+ "CVtEngCameraPreferences.GetSupportedColorTones iProvider[%d]",
+ ( TInt )iProvider)
+ return KErrNotReady;
+ }
+
+ TVSDataProviderInfo info;
+ iProvider->ProviderInfo( info );
+ aSupportedColorTones = info.iSupportedColorTones;
+ __VTPRINTEXITR( "CameraPreferences.GetSupportedColorTones [%b]",
+ info.iSupportedColorTones)
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetWhiteBalance
+//
+// ----------------------------------------------------------------------------
+//
+TInt CVtEngCameraPreferences::GetWhiteBalance(
+ MVtEngCameraPreferences::TWhiteBalance& aWhiteBalance ) const
+ {
+ __VTPRINTENTER( "CameraPreferences.GetWhiteBalance" )
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR(
+ "CVtEngCameraPreferences.GetWhiteBalance iProvider [%d]",
+ ( TInt )iProvider )
+ return KErrNotReady;
+ }
+ TInt error;
+ CCamera::TWhiteBalance whitebalance;
+ error = iProvider->GetWhiteBalance( whitebalance );
+ aWhiteBalance = (MVtEngCameraPreferences::TWhiteBalance) whitebalance;
+ __VTPRINTEXITR( "CameraPreferences.GetWhiteBalance error [%d]",error )
+ return error;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetSupportedWhiteBalanceModes
+//
+// ----------------------------------------------------------------------------
+//
+TInt CVtEngCameraPreferences::GetSupportedWhiteBalanceModes(
+ TUint32& aWhiteBalance ) const
+ {
+ __VTPRINTENTER( "CameraPreferences.GetSupportedWhiteBalanceModes" )
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR(
+ "CVtEngCameraPreferences.GetSupportedWhiteBalanceModes iProvider [%d]",
+ ( TInt )iProvider)
+ return KErrNotReady;
+ }
+
+ TVSDataProviderInfo info;
+ iProvider->ProviderInfo( info );
+ aWhiteBalance = info.iWhiteBalanceModesSupported;
+ __VTPRINTEXITR( "CameraPreferences.GetSupportedWhiteBalanceModes [%b]",
+ info.iWhiteBalanceModesSupported)
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetBrightness
+//
+// ----------------------------------------------------------------------------
+//
+TInt CVtEngCameraPreferences::GetBrightness( TInt& aBrightness ) const
+ {
+ __VTPRINTENTER( "CameraPreferences.GetBrightness" )
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR( "CVtEngCameraPreferences.GetBrightness iProvider [%d]",
+ ( TInt )iProvider)
+
+ return KErrNotReady;
+ }
+ TInt error;
+ error = iProvider->GetBrightness( aBrightness );
+ __VTPRINTEXITR( "CameraPreferences.GetBrightness error [%d]",error )
+ return error;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::GetContrast
+//
+// ----------------------------------------------------------------------------
+//
+TInt CVtEngCameraPreferences::GetContrast( TInt& aContrast ) const
+ {
+ __VTPRINTENTER( "CameraPreferences.GetContrast" )
+ if ( iProvider == NULL )
+ {
+ __VTPRINTEXITR( "CVtEngCameraPreferences.GetContrast iProvider [%d]",
+ ( TInt )iProvider)
+ return KErrNotReady;
+ }
+ TInt error;
+ error = iProvider->GetContrast( aContrast );
+ __VTPRINTEXITR( "CameraPreferences.GetContrast error [%d]",error )
+
+ return error;
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::SetProvider
+//
+// ----------------------------------------------------------------------------
+//
+void CVtEngCameraPreferences::SetProvider( CVSDataProvider* aProvider,
+ MVtEngCameraPreferencesObserver& aObserver )
+ {
+ __VTPRINTENTER( "CameraPreferences.SetProvider" )
+ if ( iObserver )
+ {
+ iObserver->Detach( *this );
+ iObserver = NULL;
+ }
+ iProvider = aProvider;
+ iObserver = &aObserver;
+ if ( iObserver )
+ {
+ iObserver->Attach( *this );
+ }
+ __VTPRINTEXIT( "CameraPreferences.SetProvider" )
+ }
+
+// ----------------------------------------------------------------------------
+// CVtEngCameraPreferences::Detach
+//
+// ----------------------------------------------------------------------------
+//
+void CVtEngCameraPreferences::Detach( MVtEngCameraPreferencesObserver&
+ aObserver )
+ {
+ __VTPRINTENTER( "CameraPreferences.Detach" )
+ if ( iObserver == &aObserver )
+ {
+ iObserver = NULL;
+ }
+ __VTPRINTEXITR( "CameraPreferences.Detach $%x", TInt( iObserver ) )
+ }
+
+
+
+// End of File