/*
* Copyright (c) 2007-2009 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: CameraUiConfigManager API header.
*
*/
#ifndef CAMERAUICONFIGMANAGER_H
#define CAMERAUICONFIGMANAGER_H
// INCLUDES
#include <eikenv.h>
// Photo/Video scene information
struct TSceneSettings
{
// Used for both image and video scene configuration.
TInt iSupported;
TInt iIdentifier;
TInt iExposureMode;
TInt iWhiteBalance;
TInt iFlash;
TInt iContrastMode;
TInt iFocalDistance;
/*
* The following 3 only used for image mode. In Video mode, we ignore this
*/
TInt iSharpnessMode;
TInt iLightSensitivityMode;
TInt iExposureCompensationValue;
/*
* 0 -> Read from ICM or else.. take the frame rate defined here into use
* only used in video. Ingored in image mode.
*/
TInt iFrameRate;
};
class CCameraUiConfigManagerImp;
// CCameraUiConfigManager API
class CCameraUiConfigManager : public CBase
{
// =========================================================================
public: // Constructors and destructor
/**
* Symbian two-phased constructor.
* @since 2.8
* @param aConfiguration
* engine changes.
*/
IMPORT_C static CCameraUiConfigManager* NewLC();
/**
* Symbian two-phased constructor.
* @since 2.8
* @param aConfiguration
* engine changes.
*/
IMPORT_C static CCameraUiConfigManager* NewL();
/*
* Constructor
*/
CCameraUiConfigManager();
/**
* Destructor.
*/
~CCameraUiConfigManager();
public:
/*
* Checking for Color feature support
*/
IMPORT_C TBool IsColorToneFeatureSupported() const;
/*
* To check for sharpness feature support
*/
IMPORT_C TBool IsSharpnessFeatureSupported() const;
/*
* To check for white balance feature support
*/
IMPORT_C TBool IsWhiteBalanceFeatureSupported() const;
/*
* Secondary camera support
*/
IMPORT_C TBool IsSecondaryCameraSupported() const;
/*
* Direct Screen View Finder feature support
* aPrimaryCamera = ETrue ( Direct screen access support for primary camera )
* aPrimaryCamera = EFalse ( Direct screen access support for secondary camera )
*/
IMPORT_C TBool IsDSAViewFinderSupported( TBool aPrimaryCamera = ETrue ) const;
/*
* Lens cover feature support
*/
IMPORT_C TBool IsLensCoverSupported() const;
/*
* Xenon flash feature support
*/
IMPORT_C TBool IsXenonFlashSupported() const;
/*
* Light sensitivity feature support
*/
IMPORT_C TBool IsISOSupported() const;
/*
* EV feature support
*/
IMPORT_C TBool IsEVSupported() const;
/*
* Flash mode feature support
*/
IMPORT_C TBool IsFlashModeSupported() const;
/*
* Contrast feature support
*/
IMPORT_C TBool IsContrastSupported() const;
/*
* Brightness feature support
*/
IMPORT_C TBool IsBrightnessSupported() const;
/*
* Flash mode feature support
*/
IMPORT_C TBool IsExtendedLightSensitivitySupported() const;
/*
* One click upload feature support
*/
IMPORT_C TBool IsOneClickUploadSupported() const;
/*
* Video Light feature support
*/
IMPORT_C TBool IsVideoLightSupported() const;
/*
* Auto focus feature support
*/
IMPORT_C TBool IsAutoFocusSupported() const;
/*
* Video Stabilization feature support
*/
IMPORT_C TBool IsVideoStabilizationSupported() const;
/*
* Orientation sensor feature support
*/
IMPORT_C TBool IsOrientationSensorSupported() const;
/*
* Face-tracking feature support
*/
IMPORT_C TBool IsFaceTrackingSupported() const;
/*
* Optical joy stick feature support
*/
IMPORT_C TBool IsOpticalJoyStickSupported() const;
/*
* location feature support
*/
IMPORT_C TBool IsLocationSupported() const;
/*
* keywatcher feature support
*/
IMPORT_C TBool IsKeyLockWatcherSupported() const;
/*
* Extended Digital Zoom feature support
*/
IMPORT_C TBool IsExtendedDigitalZoomSupported() const;
/*
* MC photos support available
*/
IMPORT_C TBool IsPhotosSupported() const;
/*
* Publish Zoom State support available
*/
IMPORT_C TBool IsPublishZoomStateSupported() const;
/*
* EFalse = HW/Adapation sets AF to Hyperfocal during startup
* ETrue = Should be handled in UI
*/
IMPORT_C TBool IsAutofocusSetInHyperfocalAtStartup() const;
/*
* Capture tone delay support available
*/
IMPORT_C TBool IsCaptureToneDelaySupported() const;
/*
* UI Orientation Override feature support
*/
IMPORT_C TBool IsUIOrientationOverrideSupported() const;
/*
* ThumbnailManager API feature support
*/
IMPORT_C TBool IsThumbnailManagerAPISupported() const;
/*
* Capture tone delay in milliseconds.
*/
IMPORT_C TInt CaptureToneDelay() const;
/*
* Required RAM memory for CameraApp
*/
IMPORT_C TInt RequiredRamMemory() const;
/*
* Critical Level RAM memory for CameraApp
*/
IMPORT_C TInt CriticalLevelRamMemory() const;
/*
* Required RAM memory for CameraApp when focus gained
*/
IMPORT_C TInt RequiredRamMemoryFocusGained() const;
/*
* Critical Level RAM memory for CameraApp when focus gained
*/
IMPORT_C TInt CriticalLevelRamMemoryFocusGained() const;
/*
* To get all supported color tone setting items
* aParam: aSupportedValues contain colortone setting enums supported by camera ui
* check camsettings.hrh for supported enums in camera ui
*/
IMPORT_C void SupportedColorToneSettingsL( RArray<TInt>& aSupportedValues );
/*
* To get all supported white balance setting items
* aParam: aSupportedValues contain white balance setting enums supported by camera ui
* check camsettings.hrh for supported enums in camera ui
*/
IMPORT_C void SupportedWhiteBalanceSettingsL(
RArray<TInt>& aSupportedValues );
/*
* To get all supported Sharpness setting items
* @aSupportedValues contains values ranging from MIN to MAX
*/
IMPORT_C void SupportedSharpnessSettingsL( RArray<TInt>& aSupportedValues );
/*
* Primary Camera Zoom-In Keys
* aParam: aSupportedValues will have key scan codes configured via cenrep
*/
IMPORT_C void SupportedPrimaryCameraZoomInKeysL( RArray<TInt>& aSupportedValues );
/*
* Primary Camera Zoom-Out Keys
* aParam: aSupportedValues will have key scan codes configured via cenrep
*/
IMPORT_C void SupportedPrimaryCameraZoomOutKeysL( RArray<TInt>& aSupportedValues );
/*
* Secondary Camera Zoom-In Keys
* aParam: aSupportedValues will have key scan codes configured via cenrep
*/
IMPORT_C void SupportedSecondaryCameraZoomInKeysL( RArray<TInt>& aSupportedValues );
/*
* Secondary Camera Zoom-Out Keys
* aParam: aSupportedValues will have key scan codes configured via cenrep
*/
IMPORT_C void SupportedSecondaryCameraZoomOutKeysL( RArray<TInt>& aSupportedValues );
/*
* EV compensation supported settings
* aSupportedValues contains the complete range of EV settings from MIN to MAX
* @e.g. -2,2,10 ( aSupportedValues[0] = MIN,
* aSupportedValues[1] = MAX,
* aSupportedValues[2] = Steps )
*/
IMPORT_C void SupportedEVSettingsL( RArray<TInt>& aSupportedValues );
/*
* Flash mode setting items
* aParam: aSupportedValues contain flash mode enums supported by camera ui
* check camsettings.hrh for supported enums in camera ui
*/
IMPORT_C void SupportedFlashModeSettingsL( RArray<TInt>& aSupportedValues );
/*
* Primary camera capture key
* aParam: aSupportedValues will have key mappings for capture key
*/
IMPORT_C void SupportedPrimaryCameraCaptureKeyL( RArray<TInt>& aSupportedValues );
/*
* Secondary camera capture key
* aParam: aSupportedValues will have key mappings for capture key
*/
IMPORT_C void SupportedSecondaryCameraCaptureKeyL( RArray<TInt>& aSupportedValues );
/*
* Primary camera AF key
* aParam: aSupportedValues will have key mappings for Autofocus key
*/
IMPORT_C void SupportedPrimaryCameraAutoFocusKeyL( RArray<TInt>& aSupportedValues );
/*
* Secondary camera AutoFocus key
* aParam: aSupportedValues will have key mappings for Autofocus key
*/
IMPORT_C void SupportedSecondaryCameraAutoFocusKeyL( RArray<TInt>& aSupportedValues );
/*
* Supported contrast setting range values
* aParam: aSupportedValues will have contrast values ranging
* from MIN - MAX and step size
* aSupportedValues[0] -> MIN value
* aSupportedValues[1] -> MAX value
* aSupportedValues[2] -> Steps
*/
IMPORT_C void SupportedContrastRangeL( RArray<TInt>& aSupportedValues );
/*
* Supported brightness setting range values
* aParam: aSupportedValues will have brightness values ranging
* from MIN - MAX and step size
* aSupportedValues[0] -> MIN value
* aSupportedValues[1] -> MAX value
* aSupportedValues[2] -> Steps
*/
IMPORT_C void SupportedBrightnessRangeL( RArray<TInt>& aSupportedValues );
/*
* To get all supported Max Zoom steps for all Image, Video resoultions for
* primary and second camera
* @ aSupportedValues[ 0] -> KMaxPhoto8MPZoomStep
* @ aSupportedValues[ 1] -> KMaxPhoto5MPZoomStep
* @ aSupportedValues[ 2] -> KMaxPhoto3MPZoomStep
* @ aSupportedValues[ 3] -> KMaxPhoto2MPZoomStep
* @ aSupportedValues[ 4] -> KMaxPhoto1_3MPZoomStep
* @ aSupportedValues[ 5] -> KMaxPhoto1MPZoomStep
* @ aSupportedValues[ 6] -> KMaxPhoto08MPZoomStep
* @ aSupportedValues[ 7] -> ?? no constant in UI
* @ aSupportedValues[ 8] -> KMaxPhotoVGAZoomStep
* @ aSupportedValues[ 9] -> KMaxVideoZoomStepHD
* @ aSupportedValues[10] -> KMaxVideoZoomStepWVGA
* @ aSupportedValues[11] -> KMaxVideoZoomStepNHD
* @ aSupportedValues[12] -> KMaxVideoZoomStepVGA
* @ aSupportedValues[13] -> KMaxVideoZoomStepQVGA
* @ aSupportedValues[14] -> KMaxVideoZoomStepCIF
* @ aSupportedValues[15] -> KMaxVideoZoomStepQCIF
* @ aSupportedValues[16] -> iMaxVideoStepSQCIF
* @ aSupportedValues[17] -> KMax2ndCamPhotoStep
* @ aSupportedValues[18] -> KMax2ndCamVideoStepCIF
* @ aSupportedValues[19] -> KMax2ndCamVideoStepQCIF
* @ aSupportedValues[20] -> iMax2ndCamVideoStepSQCIF
*/
IMPORT_C void SupportedMaxZoomStepsL( RArray<TInt>& aSupportedValues );
/*
* To get all supported photo specific MAX extended zoom steps w.r.t all photo
* resoultions ( only for main camera for now )
* aSupportedValues[0] -> 5MP max ext-zoom step
* aSupportedValues[n] -> lowest resolution for main camera MAX ext-zoom step
*/
IMPORT_C void SupportedMaxExtendedZoomStepsL(
RArray<TInt>& aSupportedValues );
/*
* Supported zoom bar Look and Feel ( LAF ) values
* @aSupportedValues[0] -> Time per zoom tick in milliseconds
* @aSupportedValues[1] -> Time per extended zoom tick in milliseconds
* @aSupportedValues[2] -> No of zoom steps per tick
* @aSupportedValues[3] -> No of extended zoom steps per tick
* @aSupportedValues[4] -> Secondary camera zoom steps per tick
*/
IMPORT_C void SupportedLAFZoomBarL(
RArray<TInt>& aSupportedValues );
/*
* Supported Image Scene modes and Scene specific settings
*/
IMPORT_C void SupportedSceneModesAndSettingsL(
RArray<TSceneSettings>& aSupportedValues,
TBool aPhotoScene = ETrue );
/*
* Determines device qwerty-mode state.
* This method is meant to be used with secondary camera.
* @return ETrue if qwerty keyboard is open
*/
IMPORT_C TInt IsQwerty2ndCamera() const;
/*
* Burst file size estimate correction factor
* in percent (100 = 100%).
* @return correction factor in percent
*/
IMPORT_C TInt BurstFileSizeEstimateFactor() const;
/*
* @aSupportedValues[0] -> Value for iCamZoomCooldown
* @aSupportedValues[1] -> Value for iCamMaxZoomCooldown
*/
IMPORT_C void SupportedZoomDelaysL(
RArray<TInt>& aSupportedValues );
/*
* BurstMode Support
*/
IMPORT_C TBool IsBurstModeSupported() const;
/*
* Continuous autofocus.
* @return ETrue if continuous autofocus feature is enabled
*/
IMPORT_C TBool IsContinuosAutofocusSupported() const;
/*
* @aSupportedValues[0] -> Value for iLandscapeScreenMode
* @aSupportedValues[1] -> Value for iPortraitScreenmode
*/
IMPORT_C void SupportedScreenModesL(
RArray<TInt>& aSupportedValues );
/*
* Custom capture button.
* @return ETrue if custom capture button is enabled
*/
IMPORT_C TBool IsCustomCaptureButtonSupported() const;
private:
void ConstructL();
private:
CCameraUiConfigManagerImp* iConfigManagerImp;
};
#endif // CAMERAUICONFIGMANAGER_H
// End of File