mmplugins/cameraplugins/source/testcamera/test_advanced_settings.h
author Shimizu Satoshi <s_shimizu@isb.co.jp>
Tue, 19 Oct 2010 11:48:59 +0900
branchRCL_3
changeset 64 92a82bc706f7
parent 0 40261b775718
permissions -rw-r--r--
Obtain an image of Webcamera from QEMU and add the Bitmap change display function.

// 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 the License "Symbian Foundation License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
// testadvancedsettings.h
// 
//

#ifndef TESTADVANCEDSETTINGS_H
#define TESTADVANCEDSETTINGS_H

#include "TestCamera.h"
#include <ecam/ecamadvsettingsintf.h>

const TInt KNumOfAdvSetExtensions = 3;
const TInt KNumOfPresetExtensions = 1;
const TInt KNumAvailableCameras = 1;
const TInt KFeatureNotSupported = 0;
const TInt KSupportedDriveModes = CCamera::CCameraAdvancedSettings::EDriveModeAuto | CCamera::CCameraAdvancedSettings::EDriveModeSingleShot | CCamera::CCameraAdvancedSettings::EDriveModeBurst;
const CCamera::CCameraAdvancedSettings::TDriveMode KDefaultDriveMode = CCamera::CCameraAdvancedSettings::EDriveModeSingleShot;
const TBool KDefaultRedEyeReduce = EFalse;
const TInt KFlashCompensationStep = 0;
const TBool KExternalFlashPresentState = EFalse;
const TInt KExposureCompensationStep = 0;
const TBool KApertureExposureLockOn = EFalse;
const TBool KShootClickOn = EFalse;
const TInt64 KTimeLapse = 0;
const CCamera::CCameraAdvancedSettings::TPixelAspectRatio KSupportedPixelAspectRatio = CCamera::CCameraAdvancedSettings::EPixelAspectUnknown;
const CCamera::CCameraAdvancedSettings::TYuvRange KSupportedYuvRange = CCamera::CCameraAdvancedSettings::EYuvRangeUnknown;
const TInt KBurstImages = 4;
const TInt KMaxBurstImages = 10;
const TBool KExposureLockOn = EFalse;
const TBool KAutoFocusLockOn = EFalse;
const TBool KAutomaticSizeSelectionChangeOn = EFalse;
const CCamera::CCameraAdvancedSettings::TStabilizationEffect KStabilizationEffect = CCamera::CCameraAdvancedSettings::EStabilizationOff;
const CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity KStabilizationComplexity = CCamera::CCameraAdvancedSettings::EStabilizationComplexityAuto;
const CCamera::CCameraAdvancedSettings::TWBUnits KSupportedWBUnits = CCamera::CCameraAdvancedSettings::EWBUnknown;
const TBool KFlashReadyState = EFalse;
const CCamera::CCameraAdvancedSettings::TPreCaptureWarning KPreCaptureWarning = CCamera::CCameraAdvancedSettings::EPCWNone;
const CCamera::CCameraAdvancedSettings::TAFAssistantLight KAFAssisstantLight = CCamera::CCameraAdvancedSettings::EAFAssistantLightOff;
const CCamera::CCameraAdvancedSettings::TISORateType KSupportedISORateTypes = CCamera::CCameraAdvancedSettings::EISOManual;	
const TInt KDefaultIsoRate = 200;
const TInt KDefaultAperture = 280;
const TInt KDefaultShutterSpeed = 100;
const TInt KDefaultFocusDistance = 100;

// Implementations of the MCameraAdvancedSettings class
class CTestCamAdvSet : 	public CBase, 
						public MCameraAdvancedSettings,
						public MCameraAdvancedSettings2,
						public MCameraAdvancedSettings3
	{
	friend class CTestCamera;
public:
	static CTestCamAdvSet* NewL(CTestCamera& aOwner);
	~CTestCamAdvSet();
	
protected:
	//from MCameraAdvancedSettings
	void Release();
  	CCamera::CCameraAdvancedSettings::TCameraType CameraType() const;
  	CCamera::CCameraAdvancedSettings::TCameraType CameraType(TInt aCameraIndex) const;
	TBool IsCameraPresent() const;
 	TBool IsCameraPresent(TInt aCameraIndex) const;
	TInt CameraIndex() const;	
    TInt SupportedStabilizationModes() const;
    CCamera::CCameraAdvancedSettings::TStabilizationMode StabilizationMode() const;
    void SetStabilizationMode(CCamera::CCameraAdvancedSettings::TStabilizationMode aStabilizationMode);
    TInt SupportedFocusModes() const;
    CCamera::CCameraAdvancedSettings::TFocusMode FocusMode() const;
  	void SetFocusMode(CCamera::CCameraAdvancedSettings::TFocusMode aFocusMode);
  	TInt SupportedFocusRanges() const;
    CCamera::CCameraAdvancedSettings::TFocusRange FocusRange() const;
    void SetFocusRange(CCamera::CCameraAdvancedSettings::TFocusRange aFocusRange);
    TInt SupportedAutoFocusTypes() const;
    CCamera::CCameraAdvancedSettings::TAutoFocusType AutoFocusType() const;
    void SetAutoFocusType(CCamera::CCameraAdvancedSettings::TAutoFocusType aAutoFocusType);
	TInt SupportedAutoFocusAreas() const;
    CCamera::CCameraAdvancedSettings::TAutoFocusArea AutoFocusArea() const;
    void SetAutoFocusArea(CCamera::CCameraAdvancedSettings::TAutoFocusArea aAutoFocusArea);
	TInt FocusDistance() const;
	void SetFocusDistance(TInt aDistance);
	TInt GetMinFocalLength() const;
	void GetSupportedIsoRatesL(RArray<TInt>& aSupportedIsoRates) const;
    TInt IsoRate() const;
    void SetIsoRate(TInt aRate);
    void GetAperturesL(RArray<TInt>& aFStops, TValueInfo& aInfo) const;
    TInt Aperture() const; 
    void SetAperture(TInt aFStop); 
	void GetShutterSpeedsL(RArray<TInt>& aShutterSpeeds, TValueInfo& aInfo) const; 
    TInt ShutterSpeed() const; 
    void SetShutterSpeed(TInt aShutterSpeed); 
    TInt SupportedMeteringModes() const;
    CCamera::CCameraAdvancedSettings::TMeteringMode MeteringMode() const;
    void SetMeteringMode(CCamera::CCameraAdvancedSettings::TMeteringMode aMeteringMode);
    TInt SupportedDriveModes() const;
    CCamera::CCameraAdvancedSettings::TDriveMode DriveMode() const;
    void SetDriveMode(CCamera::CCameraAdvancedSettings::TDriveMode aDriveMode);
    TInt SupportedBracketModes() const;
    CCamera::CCameraAdvancedSettings::TBracketMode BracketMode() const;
    void SetBracketMode(CCamera::CCameraAdvancedSettings::TBracketMode aBracketMode);
    TInt SupportedBracketParameters() const;
    CCamera::CCameraAdvancedSettings::TBracketParameter BracketParameter() const;
    void SetBracketParameter(CCamera::CCameraAdvancedSettings::TBracketParameter aBracketParameter);
    TInt SupportedBracketSteps() const;
    CCamera::CCameraAdvancedSettings::TBracketStep BracketStep() const;
    void SetBracketStep(CCamera::CCameraAdvancedSettings::TBracketStep aBracketStep);
	void GetBracketMerge(TInt& aStartIndex, TInt& aFrames) const;
	void SetBracketMerge(TInt aStartIndex, TInt aFrames);
    TInt SupportedFlashModes() const;
	CCamera::TFlash FlashMode() const;
	void SetFlashMode(CCamera::TFlash aMode);
    TBool RedEyeReduceOn() const;
    void SetRedEyeReduceOn(TBool aState);
	void GetFlashCompensationStepsL(RArray<TInt>& aFlashCompensationSteps, TValueInfo& aInfo) const; 
	TInt FlashCompensationStep() const;
	TInt GetFlashCompensationStep(TInt& aFlashCompensationStep) const;
	void SetFlashCompensationStep(TInt aFlashCompensationStep);
	void GetFlashCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const;
	TInt FlashCompensation() const;
	TInt GetFlashCompensation(TInt& aFlashCompensation) const;
	void SetFlashCompensation(TInt aFlashCompensationSteps);
	TBool IsExternalFlashPresent() const;
    void GetManualFlashPowerLevelsL(RArray<TInt>& aManualFlashPowerLevels, TValueInfo& aInfo) const;
    TInt ManualFlashPowerLevel() const;
    void SetManualFlashPowerLevel(TInt aManualFlashPowerLevel);
	TInt SupportedExposureModes() const;
	CCamera::TExposure ExposureMode() const;
	void SetExposureMode(CCamera::TExposure aExposureMode);
	void GetExposureCompensationStepsL(RArray<TInt>& aExposureCompensationSteps, TValueInfo& aInfo) const; 
	TInt ExposureCompensationStep() const;
	TInt GetExposureCompensationStep(TInt& aExposureCompensationStep) const;
	void SetExposureCompensationStep(TInt aExposureCompensationStep);
	void GetExposureCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const;
	TInt ExposureCompensation() const;
	TInt GetExposureCompensation(TInt& aExposureCompensation) const;
	void SetExposureCompensation(TInt aExposureCompensationSteps);
	TInt SupportedWhiteBalanceModes() const;
	CCamera::TWhiteBalance WhiteBalanceMode() const;
	void SetWhiteBalanceMode(CCamera::TWhiteBalance aWhiteBalanceMode);
	TBool ApertureExposureLockOn() const;
	void SetApertureExposureLockOn(TBool aAELock);
	TBool ShootClickOn() const;
	void SetShootClickOn(TBool aShootClickOn);
	void GetTimerIntervalsL(RArray<TInt>& aTimerIntervals, TValueInfo& aInfo) const;
    TInt TimerInterval() const;  
    void SetTimerInterval(TInt aTimerInterval); 
	void GetTimeLapsePeriodRange(TTime& aTimeLapseMin, TTime& aTimeLapseMax) const;
    void GetTimeLapse(TTime& aStart, TTime& aEnd, TTime& aInterval) const;  
    void SetTimeLapse(const TTime& aStart, const TTime& aEnd, const TTime& aInterval); 
    CCamera::CCameraAdvancedSettings::TPictureOrientation PictureOrientation() const;
    void SetPictureOrientation(CCamera::CCameraAdvancedSettings::TPictureOrientation aOrientation); 
    TInt SupportedPixelAspectRatios() const;
    CCamera::CCameraAdvancedSettings::TPixelAspectRatio PixelAspectRatio() const;
    void SetPixelAspectRatio(CCamera::CCameraAdvancedSettings::TPixelAspectRatio aPixelAspectRatio); 
    TInt SupportedYuvRanges() const;
    CCamera::CCameraAdvancedSettings::TYuvRange YuvRange() const;
    void SetYuvRange(CCamera::CCameraAdvancedSettings::TYuvRange aYuvRange);
    TInt BurstImages() const;
    void SetBurstImages(TInt aImages);	
	void GetOpticalZoomStepsL(RArray<TInt>& aOpticalZoomSteps, TValueInfo& aInfo) const;
	TInt OpticalZoom() const;
	void SetOpticalZoom(TInt aOpticalZoom);
	void GetDigitalZoomStepsL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo) const;
	TInt DigitalZoom() const;
	void SetDigitalZoom(TInt aDigitalZoom);
	TBool ExposureLockOn() const;
	void SetExposureLockOn(TBool aState);
	TBool AutoFocusLockOn() const;
	void SetAutoFocusLockOn(TBool aState);
    void GetSupportedSettingsL(RArray<TUid>& aSettings) const;
    void GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
    void GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
	TBool AutomaticSizeSelectionChangeOn() const;	
	void SetAutomaticSizeSelectionChangeOn(TBool aSetOn);	
    void GetSupportedContinuousAutoFocusTimeoutsL(RArray<TInt>& aTimeouts, TValueInfo& aInfo) const;
    TInt ContinuousAutoFocusTimeout() const; 
    void SetContinuousAutoFocusTimeout(TInt aTimeout);
	TInt SupportedStabilizationEffects() const;
	CCamera::CCameraAdvancedSettings::TStabilizationEffect StabilizationEffect() const;
    void SetStabilizationEffect(CCamera::CCameraAdvancedSettings::TStabilizationEffect aEffect);
	TInt SupportedStabilizationComplexityValues() const;
	CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity StabilizationComplexity() const;
	void SetStabilizationComplexity(CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity aComplexity);
    CCamera::CCameraAdvancedSettings::TWBUnits SupportedWBUnits() const;
    void GetWBRgbValue(TRgb& aValue) const;
    void SetWBRgbValue(const TRgb& aValue);
  	void GetWBSupportedColorTemperaturesL(RArray<TInt>& aWBColorTemperatures, TValueInfo& aInfo) const;
 	TInt WBColorTemperature() const;   
	void SetWBColorTemperature(TInt aWBColorTemperature);
	
	//from MCameraAdvancedSettings2
	TInt IsFlashReady(TBool& aReady) const;
	void GetCurrentFocusModeStepsL(RArray<TInt>& aFocusModeSteps, TValueInfo& aInfo) const;
	
	//from MCameraAdvancedSettings3
	void GetSupportedISORateTypeL(TInt& aSupportedISORateTypes) const;
	void SetISORate(CCamera::CCameraAdvancedSettings::TISORateType aISORateType, TInt aParam);
	void GetISORateL(CCamera::CCameraAdvancedSettings::TISORateType& aISORateType, TInt& aParam, TInt& aISORate) const;
	void SetReferenceScreen(CWsScreenDevice& aScreenDevice);
	void GetDigitalZoomStepsForStillL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aSizeIndex, 
					CCamera::TFormat aFormat, TBool& aIsInfluencePossible) const;
	void GetDigitalZoomStepsForVideoL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aFrameRateIndex, 
					TInt aSizeIndex, CCamera::TFormat aFormat, TBool& aIsInfluencePossible, CCamera::TExposure aExposure) const;
	void GetPreCaptureWarningSupportedL(CCamera::CCameraAdvancedSettings::TCameraMode aCameraMode, TInt& aPreCaptureWarningSupported) const;
	void SubscribeToPreCaptureWarningL(TInt aPreCaptureWarning);
	void UnSubscribePreCaptureWarningL();
	void GetPreCaptureWarningL(TInt& aPreCaptureWarning) const;
	void GetSupportedAFAssistantLightL(TInt& aSupportedAFAssistantLight) const;
	void GetAFAssistantLightL(CCamera::CCameraAdvancedSettings::TAFAssistantLight& aAFAssistantLight) const;
	void SetAFAssistantLight(CCamera::CCameraAdvancedSettings::TAFAssistantLight aAFAssistantLight);

private:
	CTestCamAdvSet(CTestCamera& aOwner);
	void Init();
	void ConstructL();
	
private:
	CTestCamera& iOwner;
	
	TInt iRefCount;
	
	CCamera::CCameraAdvancedSettings::TCameraType iCameraTypes[KNumAvailableCameras];
	TInt iFocusDistance;
	RArray<TInt> iSupportedISORates;
	TInt iIsoRate;
	CCamera::CCameraAdvancedSettings::TISORateType iISORateType;
	RArray<TInt> iSupportedApertures;
	TInt iAperture;
	RArray<TInt> iSupportedShutterSpeeds;
	TInt iShutterSpeed;
	};
	
// Implementations of the MCameraPresets class
class CTestCamPresets : public CBase, 
						public MCameraPresets
	{
	//friend class CTestCamera;
public:
	static CTestCamPresets* NewL(CTestCamera& aOwner);
	~CTestCamPresets();
	
protected:
	//from MCameraPresets
	void Release();
	void GetSupportedPresetsL(RArray<TUid>& aPresets) const;
    void SetPreset(TUid aPreset);
    TUid Preset() const;
    void GetAffectedSettingsL(RArray<TUid>& aSettings) const;
	void GetAssociatedSettingsL(TUid aPreset, RArray<TUid>& aSettings) const;
	
private:
	CTestCamPresets(CTestCamera& aOwner);
	void ConstructL();
	
private:
	CTestCamera& iOwner;
	
	TInt iRefCount;
	
	RArray<TUid> iSupportedPresets;
	TUid iCurrentPreset;
	
	RArray<TUid> iFactoryPresetAffectSettings;
	};

#endif // TESTADVANCEDSETTINGS_H