1.1 --- a/epoc32/include/ecamadvsettings.h Tue Nov 24 13:55:44 2009 +0000
1.2 +++ b/epoc32/include/ecamadvsettings.h Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -1,1 +1,1622 @@
1.4 -ecamadvsettings.h
1.5 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
1.6 +// All rights reserved.
1.7 +// This component and the accompanying materials are made available
1.8 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.9 +// which accompanies this distribution, and is available
1.10 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.11 +//
1.12 +// Initial Contributors:
1.13 +// Nokia Corporation - initial contribution.
1.14 +//
1.15 +// Contributors:
1.16 +//
1.17 +// Description:
1.18 +//
1.19 +
1.20 +
1.21 +
1.22 +/**
1.23 + @file
1.24 + @publishedAll
1.25 + @released
1.26 +*/
1.27 +#ifndef ECAMADVSETTINGS_H
1.28 +#define ECAMADVSETTINGS_H
1.29 +
1.30 +#include <e32base.h>
1.31 +#include <ecam.h>
1.32 +#include <ecamadvsettingsuids.hrh>
1.33 +#include <gdi.h>
1.34 +#include <s32strm.h>
1.35 +#include <ecam/ecamconstants.h>
1.36 +#include <ecamimageprocessing.h>
1.37 +
1.38 +class MCameraPresets;
1.39 +class MCameraAdvancedSettings;
1.40 +class MCameraAdvancedSettings2;
1.41 +class MCameraAdvancedSettings3;
1.42 +class MCameraAdvancedSettings4;
1.43 +class MCameraPresets2;
1.44 +
1.45 +/* General purpose constants */
1.46 +
1.47 +/**
1.48 +The current Version of the TECamLEDSpecialEffectStep class.
1.49 +
1.50 +@internalTechnology
1.51 +*/
1.52 +static const TUint KECamLEDSpecialEffectStepCurrentVersion = 1;
1.53 +
1.54 +/**
1.55 + UID used to identify the CCamera Advanced Settings API.
1.56 + This API is used to control specific individual advanced settings of camera hardware.
1.57 + These settings directly relate to the image acquisition phase.
1.58 +
1.59 + @see CCamera::CCameraAdvancedSettings
1.60 +*/
1.61 +static const TUid KECamAdvancedSettingUid = {KECamAdvancedSettingUidValue};
1.62 +
1.63 +/**
1.64 + UID used to identify the CCamera Presets API.
1.65 + This API is used to simplify user - camera interaction by allowing simultaneous
1.66 + setting of various advanced camera hardware settings using a single predefined parameter.
1.67 + @see CCamera::CCameraPresets
1.68 +*/
1.69 +static const TUid KECamPresetsUid = {KECamPresetsUidValue};
1.70 +
1.71 +
1.72 +/** All clients receive these events, irrespective of camera index. */
1.73 +/** Camera slots in for 8 cameras. */
1.74 +/** Camera with index 0 Plugged-in */
1.75 +static const TUid KUidECamEventGlobalCamera00PluggedIn = {KUidECamEventGlobalCamera00PluggedInUidValue};
1.76 +/** Camera with index 1 Plugged-in */
1.77 +static const TUid KUidECamEventGlobalCamera01PluggedIn = {KUidECamEventGlobalCamera01PluggedInUidValue};
1.78 +/** Camera with index 2 Plugged-in */
1.79 +static const TUid KUidECamEventGlobalCamera02PluggedIn = {KUidECamEventGlobalCamera02PluggedInUidValue};
1.80 +/** Camera with index 3 Plugged-in */
1.81 +static const TUid KUidECamEventGlobalCamera03PluggedIn = {KUidECamEventGlobalCamera03PluggedInUidValue};
1.82 +/** Camera with index 4 Plugged-in */
1.83 +static const TUid KUidECamEventGlobalCamera04PluggedIn = {KUidECamEventGlobalCamera04PluggedInUidValue};
1.84 +/** Camera with index 5 Plugged-in */
1.85 +static const TUid KUidECamEventGlobalCamera05PluggedIn = {KUidECamEventGlobalCamera05PluggedInUidValue};
1.86 +/** Camera with index 6 Plugged-in */
1.87 +static const TUid KUidECamEventGlobalCamera06PluggedIn = {KUidECamEventGlobalCamera06PluggedInUidValue};
1.88 +/** Camera with index 7 Plugged-in */
1.89 +static const TUid KUidECamEventGlobalCamera07PluggedIn = {KUidECamEventGlobalCamera07PluggedInUidValue};
1.90 +
1.91 +/** Camera slots plugged out for 8 cameras. */
1.92 +/** Camera with index 0 Plugged-out */
1.93 +static const TUid KUidECamEventGlobalCamera00PluggedOut = {KUidECamEventGlobalCamera00PluggedOutUidValue};
1.94 +/** Camera with index 1 Plugged-out */
1.95 +static const TUid KUidECamEventGlobalCamera01PluggedOut = {KUidECamEventGlobalCamera01PluggedOutUidValue};
1.96 +/** Camera with index 2 Plugged-out */
1.97 +static const TUid KUidECamEventGlobalCamera02PluggedOut = {KUidECamEventGlobalCamera02PluggedOutUidValue};
1.98 +/** Camera with index 3 Plugged-out */
1.99 +static const TUid KUidECamEventGlobalCamera03PluggedOut = {KUidECamEventGlobalCamera03PluggedOutUidValue};
1.100 +/** Camera with index 4 Plugged-out */
1.101 +static const TUid KUidECamEventGlobalCamera04PluggedOut = {KUidECamEventGlobalCamera04PluggedOutUidValue};
1.102 +/** Camera with index 5 Plugged-out */
1.103 +static const TUid KUidECamEventGlobalCamera05PluggedOut = {KUidECamEventGlobalCamera05PluggedOutUidValue};
1.104 +/** Camera with index 6 Plugged-out */
1.105 +static const TUid KUidECamEventGlobalCamera06PluggedOut = {KUidECamEventGlobalCamera06PluggedOutUidValue};
1.106 +/** Camera with index 7 Plugged-out */
1.107 +static const TUid KUidECamEventGlobalCamera07PluggedOut = {KUidECamEventGlobalCamera07PluggedOutUidValue};
1.108 +
1.109 +/** Camera slots available for 8 cameras. */
1.110 +/** Signals a camera previously has been reserved and then released again.
1.111 + In this way available clients may attempt to reserve the camera */
1.112 +/** Camera with index 0 Available. */
1.113 +static const TUid KUidECamEventGlobalCamera00Available = {KUidECamEventGlobalCamera00AvailableUidValue};
1.114 +/** Camera with index 1 Available. */
1.115 +static const TUid KUidECamEventGlobalCamera01Available = {KUidECamEventGlobalCamera01AvailableUidValue};
1.116 +/** Camera with index 2 Available. */
1.117 +static const TUid KUidECamEventGlobalCamera02Available = {KUidECamEventGlobalCamera02AvailableUidValue};
1.118 +/** Camera with index 3 Available. */
1.119 +static const TUid KUidECamEventGlobalCamera03Available = {KUidECamEventGlobalCamera03AvailableUidValue};
1.120 +/** Camera with index 4 Available. */
1.121 +static const TUid KUidECamEventGlobalCamera04Available = {KUidECamEventGlobalCamera04AvailableUidValue};
1.122 +/** Camera with index 5 Available. */
1.123 +static const TUid KUidECamEventGlobalCamera05Available = {KUidECamEventGlobalCamera05AvailableUidValue};
1.124 +/** Camera with index 6 Available. */
1.125 +static const TUid KUidECamEventGlobalCamera06Available = {KUidECamEventGlobalCamera06AvailableUidValue};
1.126 +/** Camera with index 7 Available. */
1.127 +static const TUid KUidECamEventGlobalCamera07Available = {KUidECamEventGlobalCamera07AvailableUidValue};
1.128 +
1.129 +/** Individual camera events. These are used by the camera to signal its observers. */
1.130 +/** Lens changed. */
1.131 +static const TUid KUidECamEventLensChanged = {KUidECamEventLensChangedUidValue};
1.132 +/** Flash source added. */
1.133 +static const TUid KUidECamEventFlashSourceAdded = {KUidECamEventFlashSourceAddedUidValue};
1.134 +/** Flash source removed. */
1.135 +static const TUid KUidECamEventFlashSourceRemoved = {KUidECamEventFlashSourceRemovedUidValue};
1.136 +/** Image resolution changed. */
1.137 +static const TUid KUidECamEventCameraSettingImageSize = {KUidECamEventCameraSettingImageSizeUidValue};
1.138 +/** Image Format changed. */
1.139 +static const TUid KUidECamEventCameraSettingImageFormat = {KUidECamEventCameraSettingImageFormatUidValue};
1.140 +/** Camera orientation changed. */
1.141 +static const TUid KUidECamEventCameraSettingCameraOrientation = {KUidECamEventCameraSettingCameraOrientationUidValue};
1.142 +/** Optimal focus */
1.143 +static const TUid KUidECamEventCameraSettingsOptimalFocus = {KUidECamEventCameraSettingsOptimalFocusUidValue};
1.144 +
1.145 +/** Advanced settings. */
1.146 +/** Stabilization mode. */
1.147 +static const TUid KUidECamEventCameraSettingStabilizationMode = {KUidECamEventCameraSettingStabilizationModeUidValue};
1.148 +/** Focus mode. */
1.149 +static const TUid KUidECamEventCameraSettingFocusMode = {KUidECamEventCameraSettingFocusModeUidValue};
1.150 +/** Focus range.
1.151 +@deprecated
1.152 +
1.153 +Replaced by KUidECamEventCameraSettingFocusRange2
1.154 +
1.155 +In the first release of this event, KUidECamEventCameraSettingFocusRange was incorrectly given an already existing uid.
1.156 +In order to preserve compatibility this event is marked as deprecated and has been replaced by KUidECamEventCameraSettingFocusRange2.
1.157 +Camera servers predating this API change will continue to send the original event which is indistinguishable by value.
1.158 +Caching the old value and comparing it with the current value, will allow the client to determine that the value has changed.
1.159 +Camera servers which have been updated should send both KUidECamEventCameraSettingFocusRange and KUidECamEventCameraSettingFocusRange2 on a focus range change.
1.160 +Camera clients should therefore process both events(old and new).
1.161 +
1.162 +@see KUidECamEventCameraSettingFocusRange2
1.163 +*/
1.164 +static const TUid KUidECamEventCameraSettingFocusRange = {KUidECamEventCameraSettingFocusRangeUidValue};
1.165 +/** Autofocus type.
1.166 +@deprecated
1.167 +
1.168 +Replaced by KUidECamEventCameraSettingAutoFocusType2
1.169 +
1.170 +In the first release of this event, KUidECamEventCameraSettingAutoFocusType was incorrectly given an already existing uid.
1.171 +In order to preserve compatibility this event is marked as deprecated and has been replaced by KUidECamEventCameraSettingAutoFocusType2.
1.172 +Camera servers predating this API change will continue to send the original event which is indistinguishable by value.
1.173 +Caching the old value and comparing it with the current value, will allow the client to determine that the value has changed.
1.174 +Camera servers which have been updated should send both KUidECamEventCameraSettingAutoFocusType and KUidECamEventCameraSettingAutoFocusType2 on a focus range change.
1.175 +Camera clients should therefore process both events(old and new).
1.176 +
1.177 +@see KUidECamEventCameraSettingAutoFocusType2*/
1.178 +static const TUid KUidECamEventCameraSettingAutoFocusType = {KUidECamEventCameraSettingAutoFocusTypeUidValue};
1.179 +/** Autofocus area. */
1.180 +static const TUid KUidECamEventCameraSettingAutoFocusArea = {KUidECamEventCameraSettingAutoFocusAreaUidValue};
1.181 +/** Autofocus lock state. */
1.182 +static const TUid KUidECamEventCameraSettingAutoFocusLock = {KUidECamEventCameraSettingAutoFocusLockUidValue};
1.183 +/** Focus distance */
1.184 +static const TUid KUidECamEventCameraSettingFocusDistance = {KUidECamEventCameraSettingFocusDistanceUidValue};
1.185 +/** Sensitivity - ISO rate. */
1.186 +static const TUid KUidECamEventCameraSettingIsoRate = {KUidECamEventCameraSettingIsoRateUidValue};
1.187 +/** Aperture. */
1.188 +static const TUid KUidECamEventCameraSettingAperture = {KUidECamEventCameraSettingApertureUidValue};
1.189 +/** Aperture range. */
1.190 +static const TUid KUidECamEventCameraSettingApertureRange = {KUidECamEventCameraSettingApertureRangeUidValue};
1.191 +/** Shutter speed. */
1.192 +static const TUid KUidECamEventCameraSettingShutterSpeed = {KUidECamEventCameraSettingShutterSpeedUidValue};
1.193 +/** Shutter speed range. */
1.194 +static const TUid KUidECamEventCameraSettingShutterSpeedRange = {KUidECamEventCameraSettingShutterSpeedRangeUidValue};
1.195 +/** Metering mode. */
1.196 +static const TUid KUidECamEventCameraSettingMeteringMode = {KUidECamEventCameraSettingMeteringModeUidValue};
1.197 +/** Drive mode. */
1.198 +static const TUid KUidECamEventCameraSettingDriveMode = {KUidECamEventCameraSettingDriveModeUidValue};
1.199 +/** Braket mode. */
1.200 +static const TUid KUidECamEventCameraSettingBracketMode = {KUidECamEventCameraSettingBracketModeUidValue};
1.201 +/** Bracket step. */
1.202 +static const TUid KUidECamEventCameraSettingBracketStep = {KUidECamEventCameraSettingBracketStepUidValue};
1.203 +/** Bracket parameter. */
1.204 +static const TUid KUidECamEventCameraSettingBracketParameter = {KUidECamEventCameraSettingBracketParameterUidValue};
1.205 +/** Bracket merge. */
1.206 +static const TUid KUidECamEventBracketMerge = {KUidECamEventBracketMergeUidValue};
1.207 +/** Picture orientation. */
1.208 +static const TUid KUidECamEventCameraSettingPictureOrientation = {KUidECamEventCameraSettingPictureOrientationUidValue};
1.209 +/** Automatic size selection option */
1.210 +static const TUid KUidECamEventCameraSettingAutomaticSizeSelection = {KUidECamEventCameraSettingAutomaticSizeSelectionUidValue};
1.211 +/** Flash setting. */
1.212 +static const TUid KUidECamEventCameraSettingFlashMode = {KUidECamEventCameraSettingFlashModeUidValue};
1.213 +/** Flash compensation step. */
1.214 +static const TUid KUidECamEventCameraSettingFlashCompensationStep = {KUidECamEventCameraSettingFlashCompensationStepUidValue};
1.215 +/** Flash compensation. */
1.216 +static const TUid KUidECamEventCameraSettingFlashCompensation = {KUidECamEventCameraSettingFlashCompensationUidValue};
1.217 +/** Manual flash power. */
1.218 +static const TUid KUidECamEventCameraSettingFlashManualPower = {KUidECamEventCameraSettingFlashManualPowerUidValue};
1.219 +/** Red eye reduce mode. */
1.220 +static const TUid KUidECamEventCameraSettingFlashRedEyeReduce = {KUidECamEventCameraSettingFlashRedEyeReduceUidValue};
1.221 +/** Exposure mode setting. */
1.222 +static const TUid KUidECamEventCameraSettingExposureMode = {KUidECamEventCameraSettingExposureModeUidValue};
1.223 +/** Exposure compensation step. */
1.224 +static const TUid KUidECamEventCameraSettingExposureCompensationStep = {KUidECamEventCameraSettingExposureCompensationStepUidValue};
1.225 +/** Exposure compensation. */
1.226 +static const TUid KUidECamEventCameraSettingExposureCompensation = {KUidECamEventCameraSettingExposureCompensationUidValue};
1.227 +/** Exposure lock state. */
1.228 +static const TUid KUidECamEventCameraSettingExposureLock = {KUidECamEventCameraSettingExposureLockUidValue};
1.229 +/** AE lock option. */
1.230 +static const TUid KUidECamEventAELock = {KUidECamEventAELockUidValue};
1.231 +/** White balance. */
1.232 +static const TUid KUidECamEventCameraSettingWhiteBalanceMode = {KUidECamEventCameraSettingWhiteBalanceModeUidValue};
1.233 +/** Timer changed. */
1.234 +static const TUid KUidECamEventCameraSettingTimerInterval = {KUidECamEventCameraSettingTimerIntervalUidValue};
1.235 +/** Timer lapse period. */
1.236 +static const TUid KUidECamEventCameraSettingTimeLapse = {KUidECamEventCameraSettingTimeLapseUidValue};
1.237 +/** Optical zoom. */
1.238 +static const TUid KUidECamEventCameraSettingOpticalZoom = {KUidECamEventCameraSettingOpticalZoomUidValue};
1.239 +/** Optical zoom range. */
1.240 +static const TUid KUidECamEventCameraSettingOpticalZoomRange = {KUidECamEventCameraSettingOpticalZoomRangeUidValue};
1.241 +/** Digital zoom. */
1.242 +static const TUid KUidECamEventCameraSettingDigitalZoom = {KUidECamEventCameraSettingDigitalZoomUidValue};
1.243 +/** Digital zoom range. */
1.244 +static const TUid KUidECamEventCameraSettingDigitalZoomRange = {KUidECamEventCameraSettingDigitalZoomRangeUidValue};
1.245 +/** Clicking sound state. */
1.246 +static const TUid KUidECamEventSoundClick = {KUidECamEventSoundClickUidValue};
1.247 +/** Pixel aspect ratio. */
1.248 +static const TUid KUidECamEventPixelAspectRatio = {KUidECamEventPixelAspectRatioUidValue};
1.249 +/** Yuv range. */
1.250 +static const TUid KUidECamEventYuvRange = {KUidECamEventYuvRangeUidValue};
1.251 +/** Burst images. */
1.252 +static const TUid KUidECamEventBurstImages = {KUidECamEventBurstImagesUidValue};
1.253 +/** Stabilization effect - magnitude of stabilization */
1.254 +static const TUid KUidECamEventCameraSettingsStabilizationEffect = {KUidECamEventCameraSettingsStabilizationEffectUidValue};
1.255 +/** Stabilization algorithm */
1.256 +static const TUid KUidECamEventSettingsStabilizationAlgorithmComplexity = {KUidECamEventSettingsStabilizationAlgorithmComplexityUidValue};
1.257 +/** Continuous Autofocus timeout */
1.258 +static const TUid KUidECamEventCameraSettingsContinuousAutoFocusTimeout = {KUidECamEventCameraSettingsContinuousAutoFocusTimeoutUidValue};
1.259 +/** White Balance manual setting */
1.260 +static const TUid KUidECamEventCameraSettingsWBValue = {KUidECamEventCameraSettingsWBValueUidValue};
1.261 +/** Flash ready */
1.262 +static const TUid KUidECamEventFlashReady = {KUidECamEventFlashReadyUidValue};
1.263 +/** Flash not ready */
1.264 +static const TUid KUidECamEventFlashNotReady = {KUidECamEventFlashNotReadyUidValue};
1.265 +/** Focus range.
1.266 +This is the new UID value to notify change on focus range and takes immediate effect as previous UID KUidECamEventCameraSettingFocusRange has been deprecated.
1.267 +@see KUidECamEventCameraSettingFocusRange */
1.268 +static const TUid KUidECamEventCameraSettingFocusRange2 = {KUidECamEventCameraSettingFocusRange2UidValue};
1.269 +/** Autofocus type.
1.270 +This is the new UID value to notify change on autofocus type and takes immediate effect as previous UID KUidECamEventCameraSettingAutoFocusType has been deprecated.
1.271 +@see KUidECamEventCameraSettingAutoFocusType */
1.272 +static const TUid KUidECamEventCameraSettingAutoFocusType2 = {KUidECamEventCameraSettingAutoFocusType2UidValue};
1.273 +
1.274 +/**
1.275 +ISO Rate type.
1.276 +
1.277 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.278 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.279 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.280 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.281 +
1.282 +*/
1.283 +static const TUid KUidECamEventCameraSettingIsoRateType = {KUidECamEventCameraSettingIsoRateTypeUidValue};
1.284 +
1.285 +/**
1.286 +Reference Screen setting.
1.287 +
1.288 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.289 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.290 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.291 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.292 +
1.293 +*/
1.294 +static const TUid KUidECamEventCameraSettingReferenceScreen = {KUidECamEventCameraSettingReferenceScreenUidValue};
1.295 +
1.296 +/**
1.297 +Pre Capture Warning indication.
1.298 +
1.299 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.300 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.301 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.302 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.303 +
1.304 +*/
1.305 +static const TUid KUidECamEventCameraSettingAFAssistantLight = {KUidECamEventCameraSettingAFAssistantLightUidValue};
1.306 +
1.307 +/**
1.308 +Notifies the client that continuous zoom limit has been reached.
1.309 +
1.310 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.311 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.312 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.313 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.314 +
1.315 +@publishedPartner
1.316 +@prototype
1.317 +*/
1.318 +static const TUid KUidECamEventCameraSettingContinuousZoomReachedLimit = {KUidECamEventCameraSettingContinuousZoomReachedLimitUidValue};
1.319 +
1.320 +/**
1.321 +Notifies the client about the setting of performance operation preference.
1.322 +
1.323 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.324 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.325 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.326 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.327 +
1.328 +@publishedPartner
1.329 +@prototype
1.330 +*/
1.331 +static const TUid KUidECamEventCameraSettingOperationPreference = {KUidECamEventCameraSettingOperationPreferenceUidValue};
1.332 +
1.333 +/**
1.334 +Notifies the client that the flicker removal value has been set.
1.335 +
1.336 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.337 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.338 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.339 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.340 +
1.341 +@internalTechnology
1.342 +*/
1.343 +static const TUid KUidECamEventCameraSettingFlickerRemovalValue = {KUidECamEventCameraSettingFlickerRemovalValueUidValue};
1.344 +
1.345 +/**
1.346 +Notifies the client about the setting of neutral density filter.
1.347 +
1.348 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.349 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.350 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.351 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.352 +
1.353 +@internalTechnology
1.354 +*/
1.355 +static const TUid KUidECamEventCameraSettingNDFilter = {KUidECamEventCameraSettingNDFilterUidValue};
1.356 +
1.357 +/**
1.358 +Notifies the client about the setting of LED effect.
1.359 +
1.360 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.361 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.362 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.363 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.364 +
1.365 +@internalTechnology
1.366 +*/
1.367 +static const TUid KUidECamEventCameraSettingLEDEffect = {KUidECamEventCameraSettingLEDEffectUidValue};
1.368 +
1.369 +/**
1.370 +Notifies the client about the setting of LED 'custom' effect.
1.371 +
1.372 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.373 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.374 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.375 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.376 +
1.377 +@internalTechnology
1.378 +*/
1.379 +static const TUid KUidECamEventCameraSettingLEDCustomEffect = {KUidECamEventCameraSettingLEDCustomEffectUidValue};
1.380 +
1.381 +/**
1.382 +Notifies the client about the white balance lock setting.
1.383 +
1.384 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.385 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.386 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.387 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.388 +
1.389 +@internalTechnology
1.390 +*/
1.391 +static const TUid KUidECamEventCameraSettingLockWhiteBalance = {KUidECamEventCameraSettingLockWhiteBalanceUidValue};
1.392 +
1.393 +/**
1.394 +Instructs the client to restore its original priority.
1.395 +
1.396 +This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
1.397 +void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.398 +void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.399 +void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.400 +
1.401 +@internalTechnology
1.402 +*/
1.403 +static const TUid KUidECamEventCameraSettingRestoreClientPriority = {KUidECamEventCameraSettingRestoreClientPriorityUidValue};
1.404 +
1.405 +/**
1.406 +CCamera advanced settings class exposes an API for controlling individually
1.407 +digital camera advanced settings. These settings directly relate to the
1.408 +image acquisition phase both for still images and video.
1.409 +
1.410 +@note This class is not intended for sub-classing and used to standardise existing
1.411 + varieties of implementations.
1.412 +
1.413 +@note If the class methods leave, the output type parameter value is not guaranteed to be valid.
1.414 +
1.415 +@publishedAll
1.416 +@released
1.417 +*/
1.418 +class CCamera::CCameraAdvancedSettings : public CBase
1.419 + {
1.420 + /* so can use internal factory functions etc. */
1.421 + friend class CCamera;
1.422 +
1.423 +public:
1.424 +
1.425 + /** Specifies camera type. */
1.426 + enum TCameraType
1.427 + {
1.428 + /** Unable to identify. */
1.429 + ECameraUnknown = 0x00,
1.430 + /** Camera is non-detachable from device. Camera is always present. */
1.431 + ECameraOnBoard = 0x01,
1.432 + /** Camera is detachable from device. Camera is not always present. */
1.433 + ECameraPluggable = 0x02
1.434 + };
1.435 +
1.436 + /** Specifies stabilization mode of the camera. */
1.437 + enum TStabilizationMode
1.438 + {
1.439 + /** Not present or switched off, default */
1.440 + EStabilizationModeOff = 0x00,
1.441 + /** Stabilization only in horizontal direction. */
1.442 + EStabilizationModeHorizontal = 0x01,
1.443 + /** Stabilization only in vertical direction. */
1.444 + EStabilizationModeVertical = 0x02,
1.445 + /** Rotational stabilization. */
1.446 + EStabilizationModeRotation = 0x04,
1.447 + /** Automatic stabilization. */
1.448 + EStabilizationModeAuto = 0x08,
1.449 + /** Manual stabilization. */
1.450 + EStabilizationModeManual = 0x10
1.451 + };
1.452 +
1.453 + /** Supported magnitudes of stabilization effect when in manual mode. */
1.454 + enum TStabilizationEffect
1.455 + {
1.456 + /** Stabilization effect is off. */
1.457 + EStabilizationOff = 0x00,
1.458 + /** Stabilization effect is automatic, default. */
1.459 + EStabilizationAuto = 0x01,
1.460 + /** Stabilization effect is very small in magnitude. */
1.461 + EStabilizationFine = 0x02,
1.462 + /** Stabilization effect is average in magnitude. */
1.463 + EStabilizationMedium = 0x04,
1.464 + /** Stabilization effect is large in magnitude. */
1.465 + EStabilizationStrong = 0x08
1.466 + };
1.467 +
1.468 + /** Supported stabilization algorithms, graded on complexity. */
1.469 + enum TStabilizationAlgorithmComplexity
1.470 + {
1.471 + /** Stabilization algorithm selection is automatic, default. */
1.472 + EStabilizationComplexityAuto = 0x00,
1.473 + /** Stabilization algorithm is simple - less precise but fast. */
1.474 + EStabilizationComplexityLow = 0x01,
1.475 + /** Stabilization algorithm is of medium complexity. */
1.476 + EStabilizationComplexityMedium = 0x02,
1.477 + /** Stabilization algorithm is of high complexity. */
1.478 + EStabilizationComplexityHigh = 0x04
1.479 + };
1.480 +
1.481 + /** Supported focus modes. */
1.482 + enum TFocusMode
1.483 + {
1.484 + /** Focus mode is unknown. */
1.485 + EFocusModeUnknown = 0x00,
1.486 + /** Focus is automatic, default. */
1.487 + EFocusModeAuto = 0x01,
1.488 + /** Focus is fixed. */
1.489 + EFocusModeFixed = 0x02,
1.490 + /** Focus is manually set. */
1.491 + EFocusModeManual = 0x04
1.492 + };
1.493 +
1.494 + /** Supported focus ranges. */
1.495 + enum TFocusRange
1.496 + {
1.497 + /** Auto. Default */
1.498 + EFocusRangeAuto = 0x00,
1.499 + /** Focus operates in close range (macro). */
1.500 + EFocusRangeMacro = 0x01,
1.501 + /** Normal operation. */
1.502 + EFocusRangeNormal = 0x02,
1.503 + /** Extended (tele) operation. */
1.504 + EFocusRangeTele = 0x04,
1.505 + /** Focus at larger areas at short to medium distance. */
1.506 + EFocusRangePortrait = 0x08,
1.507 + /** Optimised macro operation,
1.508 + where depth of field is very shallow and observation area changes quickly. */
1.509 + EFocusRangeSuperMacro = 0x10,
1.510 + /**
1.511 + All objects at distances from half of the hyperfocal distance out to infinity will be in focus.
1.512 + This gives gives maximum depth of field.
1.513 +
1.514 + This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.515 + CCamera::NewDuplicate2L().
1.516 +
1.517 + */
1.518 + EFocusRangeHyperfocal = 0x20,
1.519 + /**
1.520 + When there is a near obstacle or better focus wanted for far away objects.
1.521 +
1.522 + This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.523 + CCamera::NewDuplicate2L().
1.524 +
1.525 + */
1.526 + EFocusRangeInfinite = 0x40
1.527 + };
1.528 +
1.529 + /** Specifies the supported autofocus types. */
1.530 + enum TAutoFocusType
1.531 + {
1.532 + /** Autofocus is switched off. */
1.533 + EAutoFocusTypeOff = 0x00,
1.534 + /** Operates on a single shot, consumes less power. */
1.535 + EAutoFocusTypeSingle = 0x01,
1.536 + /** Continious autofocus, more precise but consumes more power.
1.537 + also known as AF Servo. */
1.538 + EAutoFocusTypeContinuous = 0x02
1.539 + };
1.540 +
1.541 + /** Specifies the autofocus area. */
1.542 + enum TAutoFocusArea
1.543 + {
1.544 + /** Automatic. Default value */
1.545 + EAutoFocusTypeAuto = 0x00,
1.546 + /** Single area, suitable for relatively flat surfaces and portrait. */
1.547 + EAutoFocusTypeSingleArea = 0x01,
1.548 + /** Multiple points of an object, more weighting for centre points. */
1.549 + EAutoFocusTypeMultiAreaCentered = 0x02
1.550 + };
1.551 +
1.552 + /** Specifies the Metering mode for the camera.
1.553 + EMeteringModeAuto is the default value. */
1.554 + enum TMeteringMode
1.555 + {
1.556 + /** Automatic mode, default. */
1.557 + EMeteringModeAuto = 0x0000,
1.558 + /** Metering in which the center is given a weighted priority. */
1.559 + EMeteringModeCenterWeighted = 0x0001,
1.560 + /** Metering of a central area/spot only, also known as partial. */
1.561 + EMeteringModeSpot = 0x0002,
1.562 + /** Metering is evaluated over a matrix(several spots) and calculated
1.563 + as a function of that. Usually best but with increased
1.564 + power consumption. Alternative name multi-metering mode. */
1.565 + EMeteringModeEvaluative = 0x0004
1.566 + };
1.567 +
1.568 + /** Specifies the drive mode for the camera. This determines how and in what sucession are images
1.569 + shot. EDriveModeSingleShot is the default.*/
1.570 + enum TDriveMode
1.571 + {
1.572 + /** Automatic. Default */
1.573 + EDriveModeAuto = 0x0000,
1.574 + /** Camera takes a single image/shot. */
1.575 + EDriveModeSingleShot = 0x0001,
1.576 + /** Camera continuously captures images (as fast as it can) until stopped or out of storage medium. */
1.577 + EDriveModeContinuous = 0x0002,
1.578 + /** Camera is in bracketing mode, producing individual frames. @see TBracketMode */
1.579 + EDriveModeBracket = 0x0004,
1.580 + /** Camera is in bracketing mode, but producing a single image. @see TBracketMode */
1.581 + EDriveModeBracketMerge = 0x0008,
1.582 + /** camera captures a single shot after specified time period. @see Timer() */
1.583 + EDriveModeTimed = 0x0010,
1.584 + /** Camera captures a set of images with an uniform interval between them. @see TimeLapse() */
1.585 + EDriveModeTimeLapse = 0x0020,
1.586 + /** Camera captures a set of images as fast as it can, but in batches(bursts). */
1.587 + EDriveModeBurst = 0x0040
1.588 + };
1.589 +
1.590 + /** Specifies Bracket mode. */
1.591 + enum TBracketMode
1.592 + {
1.593 + /** Bracket mode is switched off. Default value. */
1.594 + EBracketModeOff = 0x0000,
1.595 + /** Bracket mode on. Three consecutive pictures are taken in order
1.596 + under (-1), on (0), over (+1), where correction magnitude
1.597 + is defined by bracket step size and by TBracketParameter
1.598 + @see TBracketStep
1.599 + @see TBracketParameter */
1.600 + EBracketMode3Image = 0x0001,
1.601 + /** Bracket mode on. Five consecutive pictures are taken in order
1.602 + under (-2),under (-1), on (0), over (+1), over (+2), where correction magnitude
1.603 + is defined by bracket step size and by TBracketParameter
1.604 + @see TBracketStep
1.605 + @see TBracketParameter */
1.606 + EBracketMode5Image = 0x0002
1.607 + };
1.608 +
1.609 + /** Supported parameters used for bracketing.
1.610 + @note Bracket mode parameter value changes by
1.611 + a selected uniform step between successive image shots.
1.612 + @see TBracketStep
1.613 + @see TBracketMode. */
1.614 + enum TBracketParameter
1.615 + {
1.616 + /** None. */
1.617 + EBracketParameterNone = 0x0000,
1.618 + /** Exposure settings change. */
1.619 + EBracketParameterExposure = 0x0001,
1.620 + /** Flash power change. */
1.621 + EBracketParameterFlashPower = 0x0002,
1.622 + /** Colour balance settings change. */
1.623 + EBracketParameterColourBalance = 0x0004,
1.624 + /** Aperture settings change. */
1.625 + BracketParameterAperture = 0x0008,
1.626 + /** Autofocus settings change. */
1.627 + BracketParameterAutoFocus = 0x0010
1.628 + };
1.629 +
1.630 + /** Specifies the magnitude of bracketing step.
1.631 + The actual value and availability is parameter dependent.
1.632 + @see TBracketParameter
1.633 + */
1.634 + enum TBracketStep
1.635 + {
1.636 + /** Not supported. */
1.637 + EBracketStepNonConfig = 0x00,
1.638 + /** Small value. */
1.639 + EBracketStepSmall = 0x01,
1.640 + /** Medium value. */
1.641 + EBracketStepMedium = 0x02,
1.642 + /** Large value. */
1.643 + EBracketStepLarge = 0x04
1.644 + };
1.645 +
1.646 + /** Specifies the orientation of the picture. */
1.647 + enum TPictureOrientation
1.648 + {
1.649 + /** No information about picture orientation. */
1.650 + EPictureOrientationUnknown = 0x00,
1.651 + /** Portrait - height larger than width. */
1.652 + EPictureOrientationPortrait = 0x01,
1.653 + /** Landscape width larger than height. */
1.654 + EPictureOrientationLandscape = 0x02,
1.655 + /** Square width equals the height. */
1.656 + EPictureOrientationSquare = 0x04
1.657 + };
1.658 +
1.659 + /** Specifies the pixel aspect ratio
1.660 + @note It is specified as a fraction of
1.661 + (x) horizontal pixel size divided by vertical (y) pixel size.
1.662 + The pixel aspect ratio for square pixels is 1/1.
1.663 + */
1.664 + enum TPixelAspectRatio
1.665 + {
1.666 + /** Pixel ratio undetermined */
1.667 + EPixelAspectUnknown = 0x00,
1.668 + /** Pixel Ratio 1:1. */
1.669 + EPixelAspect1To1 = 0x01,
1.670 + /** Pixel Ratio 12:11 */
1.671 + EPixelAspect12To11 = 0x02,
1.672 + /** Pixel Ratio 11:10. */
1.673 + EEPixelAspect11To10 = 0x04,
1.674 + /** Pixel Ratio 59:54. */
1.675 + EEPixelAspect59To54 = 0x08,
1.676 + /** Pixel Ratio 16:11.
1.677 + @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L()
1.678 + */
1.679 + EEPixelAspect16To11 = 0x10,
1.680 + /** Pixel Ratio 10:11.
1.681 + @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L()
1.682 + */
1.683 + EEPixelAspect10To11 = 0x20,
1.684 + /** Pixel Ratio 40:33.
1.685 + @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L()
1.686 + */
1.687 + EEPixelAspect40To33 = 0x40
1.688 + };
1.689 +
1.690 + /** Specifies YUV colour space dynamic range.
1.691 + @note video compressors often use narrower than the default range.
1.692 + The nominal Y range is [16:235] and the U and V ranges [16:240].
1.693 + */
1.694 + enum TYuvRange
1.695 + {
1.696 + /** Yuv range undetermined */
1.697 + EYuvRangeUnknown = 0x00,
1.698 + /** Yuv Full Range. The nominal Y,U and V colours range is [0:255]. */
1.699 + EYuvRangeFull = 0x01,
1.700 + /** Yuv Cropped Range. The nominal Y range is [16:235] and the U and V ranges [16:240]. */
1.701 + EYuvRangeVideoCropped = 0x02
1.702 + };
1.703 +
1.704 + /** Specifies the units supported by the camera for manual white balance setting.
1.705 + */
1.706 + enum TWBUnits
1.707 + {
1.708 + /** The units type is undetermined or not supported. */
1.709 + EWBUnknown,
1.710 + /** The white balance is represented as temperature degrees in Kelvin. */
1.711 + EWBColorTemperature,
1.712 + /** The white balance is represented as RGB triples. */
1.713 + EWBRgb
1.714 + };
1.715 +
1.716 + /**
1.717 + Specifies the ISO type supported by the camera. ISO refers to the sensivity of the
1.718 + image sensor and is one of the factors influencing the exposure.
1.719 +
1.720 + */
1.721 + enum TISORateType
1.722 + {
1.723 + /** ISO Not supported. Camera uses a fixed ISO rate internally and never reveals this information. */
1.724 + EISONone = 0x00,
1.725 + /** Camera gives a list of manual ISO rates to the user to set. Recommendation is to start camera in the manual ISO mode, by default. */
1.726 + EISOManual = 0x01,
1.727 + /** Camera chooses the ISO on its own without prioritising any particular exposure parameters. */
1.728 + EISOAutoUnPrioritised = 0x02,
1.729 + /** Camera chooses the ISO on its own by prioritising ISO. */
1.730 + EISOAutoISOPrioritised = 0x04,
1.731 + /** Camera chooses the ISO on its own after prioritising shutter speed. */
1.732 + EISOAutoShutterSpeedPrioritised = 0x08,
1.733 + /** Camera chooses the ISO on its own after prioritising aperture opening. */
1.734 + EISOAutoAperturePrioritised = 0x10
1.735 + };
1.736 +
1.737 + /**
1.738 + Specifies the unfavourable circumstances as pre capture warnings which may be issued before image/video capture.
1.739 +
1.740 + */
1.741 + enum TPreCaptureWarning
1.742 + {
1.743 + /** No warnings */
1.744 + EPCWNone = 0x0000,
1.745 + /** warning to indicate that camera sensor is over exposed */
1.746 + EPCWOverExposure = 0x0001,
1.747 + /** warning to indicate that camera sensor is under exposed */
1.748 + EPCWUnderExposure = 0x0002,
1.749 + /** warning to indicate that camera operates under insufficient lightning conditions */
1.750 + EPCWLowLight = 0x0004,
1.751 + /** warning to indicate that focussing is not optimum. This is valid for manual/fixed focus only */
1.752 + EPCWBadFocus = 0x0008,
1.753 + /** warning to indicate that camera might not be firmly gripped (Tripod required). This is same as long exposure */
1.754 + EPCWHandShakePossible = 0x0010,
1.755 + /** warning to indicate that camera has not enough power to survive the flash operations (battery discharged) */
1.756 + EPCWNotEnoughPowerForFlash = 0x0020,
1.757 + /** warning to indicate that the current white balance is not the desired one */
1.758 + EPCWWrongWhiteBalanceValue = 0x0040,
1.759 + /** warning to indicate that the current flash value is not the desired one */
1.760 + EPCWWrongFlashValue = 0x0080,
1.761 + /** warning to indicate that the current digital zoom value is not the desired one */
1.762 + EPCWWrongDigiZoomValue = 0x0100,
1.763 + /** warning to indicate that the desired digital zoom affects the quality of image */
1.764 + EPCWDigiZoomBadQuality = 0x0200,
1.765 + /** warning to indicate that flash is not ready. Recommendation: user may subscribe for this warning or issue
1.766 + IsFlashReady() also. Using both options is not encouraged */
1.767 + EPCWFlashNotReady = 0x0400,
1.768 + /** unknown reason */
1.769 + EPCWGeneralWarning = 0x0800,
1.770 + /** warning to indicate that flash has been overheated.
1.771 +
1.772 + @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L()
1.773 +
1.774 + @publishedPartner
1.775 + @prototype
1.776 + */
1.777 + EPCWFlashOverheated = 0x1000,
1.778 + /** warning to indicate that flash will not be fired because of enough ambient light.
1.779 +
1.780 + @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L()
1.781 +
1.782 + @publishedPartner
1.783 + @prototype
1.784 + */
1.785 + EPCWFlashNotNeeded = 0x2000
1.786 + };
1.787 +
1.788 + /**
1.789 + Describes the camera mode.
1.790 +
1.791 + */
1.792 + enum TCameraMode
1.793 + {
1.794 + /** Camera is Idle */
1.795 + EModeIdle = 0x00,
1.796 + /** DSA based Viewfinder runs */
1.797 + EModeDSAViewFinder = 0x01,
1.798 + /** Client based Viewfinder runs */
1.799 + EModeClientViewFinder = 0x02
1.800 + };
1.801 +
1.802 + /**
1.803 + Specifies the different types of auto focus assistant light
1.804 + */
1.805 + enum TAFAssistantLight
1.806 + {
1.807 + /** switch off the AF assistant light from either of 'manual on' or 'auto' mode */
1.808 + EAFAssistantLightOff = 0x00,
1.809 + /** switch on the AF assistant light manually */
1.810 + EAFAssistantLightManualOn = 0x01,
1.811 + /** Put the AF assistant light in auto mode. It will be automatically decided when to switch on or off. */
1.812 + EAFAssistantLightAuto = 0x02
1.813 + };
1.814 +
1.815 + /**
1.816 + Specifies the different types of continuous zoom supported.
1.817 + The enumeration list may be extended in future.
1.818 +
1.819 + @publishedPartner
1.820 + @prototype
1.821 + */
1.822 + enum TContinuousZoomType
1.823 + {
1.824 + /** Continuous zoom not supported */
1.825 + EContinuousZoomNotSupported = 0x00,
1.826 + /** Continuous zoom 'Optical' only, No 'Digital' */
1.827 + EContinuousZoomOpticalOnly = 0x01,
1.828 + /** Continuous zoom 'Optical' and 'Digital' */
1.829 + EContinuousZoomMixed = 0x02,
1.830 + /** Continuous zoom 'Digital' only, No 'Optical' */
1.831 + EContinuousZoomDigitalOnly = 0x04
1.832 + };
1.833 +
1.834 + /**
1.835 + Specifies the zoom direction for continuous zoom operation.
1.836 + The enumeration list may be extended in future.
1.837 +
1.838 + @publishedPartner
1.839 + @prototype
1.840 + */
1.841 + enum TZoomDirection
1.842 + {
1.843 + /** Implies that feature not supported. */
1.844 + EZoomDirectionNone =0x00,
1.845 + /** Implies zooming out. */
1.846 + EZoomDirectionWide =0x01,
1.847 + /** Implies zooming in. */
1.848 + EZoomDirectionTele =0x02
1.849 + };
1.850 +
1.851 + /**
1.852 + Different levels for performance vectors like speed, quality, low memory consumption and low power consumption.
1.853 + The enumeration list may be extended in future.
1.854 +
1.855 + @publishedPartner
1.856 + @prototype
1.857 + */
1.858 + enum TPerformanceLevel
1.859 + {
1.860 + /** High level preference. */
1.861 + ELevelHigh = 1,
1.862 + /** Medium level preference. */
1.863 + ELevelMedium = 2,
1.864 + /** Low level preference. */
1.865 + ELevelLow = 3,
1.866 + /** Dont care (No preference). */
1.867 + ELevelDontCare = 4
1.868 + };
1.869 +
1.870 + /**
1.871 + Specifies flicker removal options.
1.872 + The enumeration list may be extended in future.
1.873 +
1.874 + @internalTechnology
1.875 + */
1.876 + enum TFlickerRemoval
1.877 + {
1.878 + /** Not Supported. */
1.879 + EFlickerRemovalNone = 0x00,
1.880 + /** Flicker removal for Field frequency of 50Hz. */
1.881 + EFlickerRemoval50Hz = 0x01,
1.882 + /** Flicker removal for Field frequency of 60Hz. */
1.883 + EFlickerRemoval60Hz = 0x02,
1.884 + /** Auto flicker removal. */
1.885 + EFlickerRemovalAuto = 0x04,
1.886 + /** Switch Off flicker removal. */
1.887 + EFlickerRemovalSwitchOff = 0x08
1.888 + };
1.889 +
1.890 + /**
1.891 + Specifes the type of neutral density filters available.
1.892 + The enumeration list may be extended in future.
1.893 +
1.894 + @internalTechnology
1.895 + */
1.896 + enum TNDFilter
1.897 + {
1.898 + /** Not Supported. */
1.899 + ENDFilterNone = 0x00,
1.900 + /** Auto ND Filter. */
1.901 + ENDFilterAuto = 0x01,
1.902 + /** Switched off ND Filter. */
1.903 + ENDFilterSwitchedOff = 0x02,
1.904 + /** High level ND Filter. */
1.905 + ENDFilterHigh = 0x04,
1.906 + /** Medium level ND Filter. */
1.907 + ENDFilterMedium = 0x08,
1.908 + /** Low level ND Filter. */
1.909 + ENDFilterLow = 0x10,
1.910 + /** General ND Filter. */
1.911 + ENDFilterGeneral = 0x20
1.912 + };
1.913 +
1.914 + /**
1.915 + Specifies the various events for which the LED effects could be used.
1.916 + The enumeration list may be extended in future.
1.917 +
1.918 + @internalTechnology
1.919 + */
1.920 + enum TLEDEvent
1.921 + {
1.922 + /** Not supported. */
1.923 + ELEDEventNone = 0x00,
1.924 + /** LED effect needed for self timer. */
1.925 + ELEDEventSelfTimer = 0x01,
1.926 + /** LED effect needed for starting of viewfinder. */
1.927 + ELEDEventViewfinderStart = 0x02,
1.928 + /** LED effect needed for stoping of viewfinder. */
1.929 + ELEDEventViewfinderStop = 0x04,
1.930 + /** LED effect needed for still image capture. */
1.931 + ELEDEventStillImageCapture = 0x08,
1.932 + /** LED effect needed for video recording. */
1.933 + ELEDEventVideoRecording = 0x10
1.934 + };
1.935 +
1.936 + /**
1.937 + Specifes the type of LED effects available.
1.938 + The enumeration list may be extended in future.
1.939 +
1.940 + @internalTechnology
1.941 + */
1.942 + enum TLEDEffect
1.943 + {
1.944 + /** Not supported. */
1.945 + ELEDEffectNone =0x00,
1.946 + /** LED always on. */
1.947 + ELEDEffectHardwired =0x01,
1.948 + /** LED auto. */
1.949 + ELEDEffectAuto =0x02,
1.950 + /** LED Effect manually switched on. */
1.951 + ELEDEffectManualSwitchOn =0x04,
1.952 + /** LED Effect switched off. */
1.953 + ELEDEffectSwitchOff =0x08,
1.954 + /** LED Custom Effect. */
1.955 + ELEDEffectCustom =0x10
1.956 + };
1.957 +
1.958 + /**
1.959 + Color channels on which manual gain can be selectively applied.
1.960 + The enumeration list may be extended in future.
1.961 +
1.962 + @internalTechnology
1.963 + */
1.964 + enum TColorChannel
1.965 + {
1.966 + /** Red Color Channel (RGB model). */
1.967 + EColorChannelRed,
1.968 + /** Green Color Channel (RGB model). */
1.969 + EColorChannelGreen,
1.970 + /** Blue Color Channel (RGB model). */
1.971 + EColorChannelBlue,
1.972 + /** Luminance Y component (YUV model). */
1.973 + EChannelLumaY,
1.974 + /** Chrominance U component (YUV model). */
1.975 + EChannelChromaU,
1.976 + /** Chrominance V component (YUV model). */
1.977 + EChannelChromaV
1.978 + };
1.979 +
1.980 + /**
1.981 + Class used to provide a particular custom LED effect.
1.982 +
1.983 + @internalTechnology
1.984 + */
1.985 + class TECamLEDSpecialEffectStep
1.986 + {
1.987 + public:
1.988 + TECamLEDSpecialEffectStep();
1.989 +
1.990 + TUint Size() const;
1.991 + TUint Version() const;
1.992 +
1.993 + private:
1.994 + //for future expansion
1.995 + TUint iSize:24;
1.996 + TUint iVersion:8;
1.997 +
1.998 + // reserved for future expansion.
1.999 + TInt iReserved1;
1.1000 + TInt iReserved2;
1.1001 + TInt iReserved3;
1.1002 +
1.1003 + public:
1.1004 + /** Blinking frequency of LED in Hertz. */
1.1005 + TUint iBlinkingFrequency;
1.1006 + /** Represents the intensity of LED in millicandela. */
1.1007 + TUint iIntensity;
1.1008 + /** Frequency step with which the blinking frequency changes with time. May be positive as well as negative. */
1.1009 + TInt iFrequencyStep;
1.1010 + /** Time duration for which the particular LED special effect step would be valid. */
1.1011 + TTimeIntervalMicroSeconds32 iDuration;
1.1012 + };
1.1013 +
1.1014 +
1.1015 +public:
1.1016 +
1.1017 + IMPORT_C static CCameraAdvancedSettings* NewL(CCamera& aCamera);
1.1018 +
1.1019 + IMPORT_C TCameraType CameraType() const;
1.1020 +
1.1021 + IMPORT_C TCameraType CameraType(TInt aCameraIndex);
1.1022 +
1.1023 + IMPORT_C TBool IsCameraPresent() const;
1.1024 +
1.1025 + IMPORT_C TBool IsCameraPresent(TInt aCameraIndex);
1.1026 +
1.1027 + IMPORT_C TInt CameraIndex() const;
1.1028 +
1.1029 + IMPORT_C TInt SupportedStabilizationModes() const;
1.1030 +
1.1031 + IMPORT_C TStabilizationMode StabilizationMode() const;
1.1032 +
1.1033 + IMPORT_C void SetStabilizationMode(TStabilizationMode aStabilizationMode);
1.1034 +
1.1035 + IMPORT_C TInt SupportedFocusModes() const;
1.1036 +
1.1037 + IMPORT_C TFocusMode FocusMode() const;
1.1038 +
1.1039 + IMPORT_C void SetFocusMode(TFocusMode aFocusMode);
1.1040 +
1.1041 + IMPORT_C TInt SupportedFocusRanges() const;
1.1042 +
1.1043 + IMPORT_C TFocusRange FocusRange() const;
1.1044 +
1.1045 + IMPORT_C void SetFocusRange(TFocusRange aFocusRange);
1.1046 +
1.1047 + IMPORT_C TInt SupportedAutoFocusTypes() const;
1.1048 +
1.1049 + IMPORT_C TAutoFocusType AutoFocusType() const;
1.1050 +
1.1051 + IMPORT_C void SetAutoFocusType(TAutoFocusType aAutoFocusType);
1.1052 +
1.1053 + IMPORT_C TInt SupportedAutoFocusAreas() const;
1.1054 +
1.1055 + IMPORT_C TAutoFocusArea AutoFocusArea() const;
1.1056 +
1.1057 + IMPORT_C void SetAutoFocusArea(TAutoFocusArea aAutoFocusArea);
1.1058 +
1.1059 + IMPORT_C TInt FocusDistance() const;
1.1060 +
1.1061 + IMPORT_C void SetFocusDistance(TInt aDistance);
1.1062 +
1.1063 + IMPORT_C TInt GetMinFocalLength() const;
1.1064 +
1.1065 + IMPORT_C void GetSupportedIsoRatesL(RArray<TInt>& aSupportedIsoRates) const;
1.1066 +
1.1067 + IMPORT_C TInt IsoRate() const;
1.1068 +
1.1069 + IMPORT_C void SetIsoRate(TInt aRate);
1.1070 +
1.1071 + IMPORT_C void GetAperturesL(RArray<TInt>& aFStops, TValueInfo& aInfo) const;
1.1072 +
1.1073 + IMPORT_C TInt Aperture() const;
1.1074 +
1.1075 + IMPORT_C void SetAperture(TInt aFStop);
1.1076 +
1.1077 + IMPORT_C void GetShutterSpeedsL(RArray<TInt>& aShutterSpeeds, TValueInfo& aInfo) const;
1.1078 +
1.1079 + IMPORT_C TInt ShutterSpeed() const;
1.1080 +
1.1081 + IMPORT_C void SetShutterSpeed(TInt aShutterSpeed);
1.1082 +
1.1083 + IMPORT_C TInt SupportedMeteringModes() const;
1.1084 +
1.1085 + IMPORT_C TMeteringMode MeteringMode() const;
1.1086 +
1.1087 + IMPORT_C void SetMeteringMode(TMeteringMode aMeteringMode);
1.1088 +
1.1089 + IMPORT_C TInt SupportedDriveModes() const;
1.1090 +
1.1091 + IMPORT_C TDriveMode DriveMode() const;
1.1092 +
1.1093 + IMPORT_C void SetDriveMode(TDriveMode aDriveMode);
1.1094 +
1.1095 + IMPORT_C TInt SupportedBracketModes() const;
1.1096 +
1.1097 + IMPORT_C TBracketMode BracketMode() const;
1.1098 +
1.1099 + IMPORT_C void SetBracketMode(TBracketMode aBracketMode);
1.1100 +
1.1101 + IMPORT_C TInt SupportedBracketParameters() const;
1.1102 +
1.1103 + IMPORT_C TBracketParameter BracketParameter() const;
1.1104 +
1.1105 + IMPORT_C void SetBracketParameter(TBracketParameter aBracketParameter);
1.1106 +
1.1107 + IMPORT_C TInt SupportedBracketSteps() const;
1.1108 +
1.1109 + IMPORT_C TBracketStep BracketStep() const;
1.1110 +
1.1111 + IMPORT_C void SetBracketStep(TBracketStep aBracketStep);
1.1112 +
1.1113 + IMPORT_C void GetBracketMerge(TInt& aStartIndex, TInt& aFrames) const;
1.1114 +
1.1115 + IMPORT_C void SetBracketMerge(TInt aStartIndex, TInt aFrames);
1.1116 +
1.1117 + IMPORT_C TInt SupportedFlashModes() const;
1.1118 +
1.1119 + IMPORT_C CCamera::TFlash FlashMode() const;
1.1120 +
1.1121 + IMPORT_C void SetFlashMode(CCamera::TFlash aMode);
1.1122 +
1.1123 + IMPORT_C TBool RedEyeReduceOn() const;
1.1124 +
1.1125 + IMPORT_C void SetRedEyeReduceOn(TBool aState);
1.1126 +
1.1127 + IMPORT_C void GetFlashCompensationStepsL(RArray<TInt>& aFlashCompensationSteps, TValueInfo& aInfo) const;
1.1128 +
1.1129 + IMPORT_C TInt FlashCompensationStep() const;
1.1130 +
1.1131 + IMPORT_C TInt GetFlashCompensationStep(TInt& aFlashCompensationStep) const;
1.1132 +
1.1133 + IMPORT_C void SetFlashCompensationStep(TInt aFlashCompensationStep);
1.1134 +
1.1135 + IMPORT_C void GetFlashCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const;
1.1136 +
1.1137 + IMPORT_C TInt FlashCompensation() const;
1.1138 +
1.1139 + IMPORT_C TInt GetFlashCompensation(TInt& aFlashCompensation) const;
1.1140 +
1.1141 + IMPORT_C void SetFlashCompensation(TInt aFlashCompensationInSteps);
1.1142 +
1.1143 + IMPORT_C TBool IsExternalFlashPresent() const;
1.1144 +
1.1145 + IMPORT_C void GetManualFlashPowerLevelsL(RArray<TInt>& aManualFlashPowerLevels, TValueInfo& aInfo) const;
1.1146 +
1.1147 + IMPORT_C TInt ManualFlashPowerLevel() const;
1.1148 +
1.1149 + IMPORT_C void SetManualFlashPowerLevel(TInt aManualFlashPowerLevel);
1.1150 +
1.1151 + IMPORT_C TInt SupportedExposureModes() const;
1.1152 +
1.1153 + IMPORT_C CCamera::TExposure ExposureMode() const;
1.1154 +
1.1155 + IMPORT_C void SetExposureMode(CCamera::TExposure aExposureMode);
1.1156 +
1.1157 + IMPORT_C void GetExposureCompensationStepsL(RArray<TInt>& aExposureCompensationSteps, TValueInfo& aInfo) const;
1.1158 +
1.1159 + IMPORT_C TInt ExposureCompensationStep() const;
1.1160 +
1.1161 + IMPORT_C TInt GetExposureCompensationStep(TInt& aExposureCompensationStep) const;
1.1162 +
1.1163 + IMPORT_C void SetExposureCompensationStep(TInt aExposureCompensationStep);
1.1164 +
1.1165 + IMPORT_C void GetExposureCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const;
1.1166 +
1.1167 + IMPORT_C TInt ExposureCompensation() const;
1.1168 +
1.1169 + IMPORT_C TInt GetExposureCompensation(TInt& aExposureCompensation) const;
1.1170 +
1.1171 + IMPORT_C void SetExposureCompensation(TInt aExposureCompensationInSteps);
1.1172 +
1.1173 + IMPORT_C TInt SupportedWhiteBalanceModes() const;
1.1174 +
1.1175 + IMPORT_C CCamera::TWhiteBalance WhiteBalanceMode() const;
1.1176 +
1.1177 + IMPORT_C void SetWhiteBalanceMode(CCamera::TWhiteBalance aWhiteBalanceMode);
1.1178 +
1.1179 + IMPORT_C TBool ApertureExposureLockOn() const;
1.1180 +
1.1181 + IMPORT_C void SetApertureExposureLockOn(TBool aAELock);
1.1182 +
1.1183 + IMPORT_C TBool ShootClickOn() const;
1.1184 +
1.1185 + IMPORT_C void SetShootClickOn(TBool aShootClickOn);
1.1186 +
1.1187 + IMPORT_C void GetTimerIntervalsL(RArray<TInt>& aTimerIntervals, TValueInfo& aInfo) const;
1.1188 +
1.1189 + IMPORT_C TInt TimerInterval() const;
1.1190 +
1.1191 + IMPORT_C void SetTimerInterval(TInt aTimerInterval);
1.1192 +
1.1193 + IMPORT_C void GetTimeLapsePeriodRange(TTime& aTimeLapseMin, TTime& aTimeLapseMax) const;
1.1194 +
1.1195 + IMPORT_C void GetTimeLapse(TTime& aStart, TTime& aEnd, TTime& aInterval) const;
1.1196 +
1.1197 + IMPORT_C void SetTimeLapse(const TTime& aStart, const TTime& aEnd, const TTime& aInterval);
1.1198 +
1.1199 + IMPORT_C TPictureOrientation PictureOrientation() const;
1.1200 +
1.1201 + IMPORT_C void SetPictureOrientation(TPictureOrientation aOrientation);
1.1202 +
1.1203 + IMPORT_C TInt SupportedPixelAspectRatios() const;
1.1204 +
1.1205 + IMPORT_C TPixelAspectRatio PixelAspectRatio() const;
1.1206 +
1.1207 + IMPORT_C void SetPixelAspectRatio(TPixelAspectRatio aPixelAspectRatio);
1.1208 +
1.1209 + IMPORT_C TInt SupportedYuvRanges() const;
1.1210 +
1.1211 + IMPORT_C TYuvRange YuvRange() const;
1.1212 +
1.1213 + IMPORT_C void SetYuvRange(TYuvRange aYuvRange);
1.1214 +
1.1215 + IMPORT_C TInt BurstImages() const;
1.1216 +
1.1217 + IMPORT_C void SetBurstImages(TInt aImages);
1.1218 +
1.1219 + IMPORT_C void GetOpticalZoomStepsL(RArray<TInt>& aOpticalZoomSteps, TValueInfo& aInfo) const;
1.1220 +
1.1221 + IMPORT_C TInt OpticalZoom() const;
1.1222 +
1.1223 + IMPORT_C void SetOpticalZoom(TInt aOpticalZoom);
1.1224 +
1.1225 + IMPORT_C void GetDigitalZoomStepsL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo) const;
1.1226 +
1.1227 + IMPORT_C TInt DigitalZoom() const;
1.1228 +
1.1229 + IMPORT_C void SetDigitalZoom(TInt aDigitalZoom);
1.1230 +
1.1231 + IMPORT_C TBool ExposureLockOn() const;
1.1232 +
1.1233 + IMPORT_C void SetExposureLockOn(TBool aState);
1.1234 +
1.1235 + IMPORT_C TBool AutoFocusLockOn() const;
1.1236 +
1.1237 + IMPORT_C void SetAutoFocusLockOn(TBool aState);
1.1238 +
1.1239 + IMPORT_C void GetSupportedSettingsL(RArray<TUid>& aSettings) const;
1.1240 +
1.1241 + IMPORT_C void GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
1.1242 +
1.1243 + IMPORT_C void GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
1.1244 +
1.1245 + IMPORT_C TBool AutomaticSizeSelectionChangeOn() const;
1.1246 +
1.1247 + IMPORT_C void SetAutomaticSizeSelectionChangeOn(TBool aSetOn);
1.1248 +
1.1249 + IMPORT_C void GetSupportedContinuousAutoFocusTimeoutsL(RArray<TInt>& aTimeouts, TValueInfo& aInfo) const;
1.1250 +
1.1251 + IMPORT_C TInt ContinuousAutoFocusTimeout() const;
1.1252 +
1.1253 + IMPORT_C void SetContinuousAutoFocusTimeout(TInt aTimeout);
1.1254 +
1.1255 + IMPORT_C TInt SupportedStabilizationEffects() const;
1.1256 +
1.1257 + IMPORT_C TStabilizationEffect StabilizationEffect() const;
1.1258 +
1.1259 + IMPORT_C void SetStabilizationEffect(TStabilizationEffect aEffect);
1.1260 +
1.1261 + IMPORT_C TInt SupportedStabilizationComplexityValues() const;
1.1262 +
1.1263 + IMPORT_C TStabilizationAlgorithmComplexity StabilizationComplexity() const;
1.1264 +
1.1265 + IMPORT_C void SetStabilizationComplexity(TStabilizationAlgorithmComplexity aComplexity);
1.1266 +
1.1267 + IMPORT_C TWBUnits SupportedWBUnits() const;
1.1268 +
1.1269 + IMPORT_C void GetWBRgbValue(TRgb& aValue) const;
1.1270 +
1.1271 + IMPORT_C void SetWBRgbValue(const TRgb& aValue);
1.1272 +
1.1273 + IMPORT_C void GetWBSupportedColorTemperaturesL(RArray<TInt>& aWBColorTemperatures, TValueInfo& aInfo) const;
1.1274 +
1.1275 + IMPORT_C TInt WBColorTemperature() const;
1.1276 +
1.1277 + IMPORT_C void SetWBColorTemperature(TInt aWBColorTemperature);
1.1278 +
1.1279 + IMPORT_C ~CCameraAdvancedSettings();
1.1280 +
1.1281 + IMPORT_C TInt IsFlashReady(TBool& aReady) const;
1.1282 +
1.1283 + IMPORT_C void GetCurrentFocusModeStepsL(RArray<TInt>& aFocusModeSteps, TValueInfo& aInfo) const;
1.1284 +
1.1285 + IMPORT_C void GetSupportedISORateTypeL(TInt& aSupportedISORateTypes) const;
1.1286 +
1.1287 + IMPORT_C void SetISORateL(TISORateType aISORateType, TInt aParam);
1.1288 +
1.1289 + IMPORT_C void GetISORateL(TISORateType& aISORateType, TInt& aParam, TInt& aISORate) const;
1.1290 +
1.1291 + IMPORT_C void SetReferenceScreenL(CWsScreenDevice& aScreenDevice);
1.1292 +
1.1293 + IMPORT_C void GetDigitalZoomStepsForStillL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aSizeIndex,
1.1294 + CCamera::TFormat aFormat, TBool& aIsInfluencePossible) const;
1.1295 +
1.1296 + IMPORT_C void GetDigitalZoomStepsForVideoL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aFrameRateIndex,
1.1297 + TInt aSizeIndex, CCamera::TFormat aFormat, TBool& aIsInfluencePossible, CCamera::TExposure aExposure) const;
1.1298 +
1.1299 + IMPORT_C void GetPreCaptureWarningSupportedL(TCameraMode aCameraMode, TInt& aPreCaptureWarningSupported) const;
1.1300 +
1.1301 + IMPORT_C void SubscribeToPreCaptureWarningL(TInt aPreCaptureWarning);
1.1302 +
1.1303 + IMPORT_C void UnSubscribePreCaptureWarningL();
1.1304 +
1.1305 + IMPORT_C void GetPreCaptureWarningL(TInt& aPreCaptureWarning) const;
1.1306 +
1.1307 + IMPORT_C void GetSupportedAFAssistantLightL(TInt& aSupportedAFAssistantLight) const;
1.1308 +
1.1309 + IMPORT_C void GetAFAssistantLightL(TAFAssistantLight& aAFAssistantLight) const;
1.1310 +
1.1311 + IMPORT_C void SetAFAssistantLightL(TAFAssistantLight aAFAssistantLight);
1.1312 +
1.1313 + IMPORT_C void GetSupportedContinuousZoomTypeL(TUint& aSupportedContinuousZoomType) const;
1.1314 +
1.1315 + IMPORT_C void StartContinuousZoomL(TContinuousZoomType aContinuousZoomType, TZoomDirection aZoomDirection);
1.1316 +
1.1317 + IMPORT_C void StopContinuousZoom();
1.1318 +
1.1319 + IMPORT_C void GetFocalLengthInfoL(TInt& aMinFocalLength, TInt& aCurrentFocalLength, TInt& aMaxFocalLength) const;
1.1320 +
1.1321 + IMPORT_C void GetNumOperationPreferenceL(TUint& aNumOperationPreferenceSupported) const;
1.1322 +
1.1323 + IMPORT_C void EnumerateOperationPreferenceL(TUint aOperationPreferenceIndex, TPerformanceLevel& aSpeedLevel,
1.1324 + TPerformanceLevel& aQualityLevel, TPerformanceLevel& aLowMemoryConsumptionLevel,
1.1325 + TPerformanceLevel& aLowPowerConsumptionLevel) const;
1.1326 +
1.1327 + IMPORT_C void SetOperationPreferenceL(TUint aOperationPreferenceIndex);
1.1328 +
1.1329 + IMPORT_C void GetOperationPreferenceL(TInt& aOperationPreferenceIndex) const;
1.1330 +
1.1331 + IMPORT_C void GetSupportedEventsL(RArray<TUid>& aSupportedEvents) const;
1.1332 +
1.1333 + IMPORT_C void GetIndirectFeatureChangesL(TUid aRequestedSetting, RArray<TUid>& aIndirectFeatureChanges) const;
1.1334 +
1.1335 +private:
1.1336 + IMPORT_C CCameraAdvancedSettings(CCamera& aOwner);
1.1337 + IMPORT_C void ConstructL();
1.1338 +
1.1339 +private:
1.1340 + void RegisterEventsL(TECAMEventFilterScheme aEventFilter, const RArray<TUid>& aEvents);
1.1341 + void GetRegisterEventsL(TECAMEventFilterScheme aEventFilter, RArray<TUid>& aEvents, TValueInfo& aInfo) const;
1.1342 +
1.1343 + void GetSupportedFlickerRemovalValueL(TUint& aSupportedFlickerRemovalValue) const;
1.1344 + void GetFlickerRemovalValueL(TFlickerRemoval& aFlickerRemovalValue) const;
1.1345 + void SetFlickerRemovalValueL(TFlickerRemoval aFlickerRemovalValue);
1.1346 +
1.1347 + void GetSupportedNDFilterL(TUint& aSupportedNDFilter) const;
1.1348 + void GetNDFilterL(TNDFilter& aNDFilter) const;
1.1349 + void SetNDFilterL(TNDFilter aNDFilter);
1.1350 +
1.1351 + void GetLEDEffectL(TLEDEvent aLEDEvent, TLEDEffect& aLEDEffect) const;
1.1352 + void SetLEDEffectL(TLEDEvent aLEDEvent, TLEDEffect aLEDEffect);
1.1353 + void SetLEDCustomEffectL(TLEDEvent aLEDEvent, const RArray<TECamLEDSpecialEffectStep>& aLEDSpecialEffectSteps);
1.1354 +
1.1355 + void ReserveL(const TTimeIntervalMicroSeconds32& aMaxTimeToWait, TBool aKickOut);
1.1356 + void SetClientPriorityL(TInt aPriority);
1.1357 + void RestoreClientPriorityL();
1.1358 +
1.1359 + void GetSupportedManualGainL(RArray<TInt>& aSupportedManualGain, TColorChannel aColorChannel) const;
1.1360 + void GetManualGainL(TInt& aManualGain, TColorChannel aColorChannel) const;
1.1361 + void SetManualGainL(TInt aManualGain, TColorChannel aColorChannel);
1.1362 +
1.1363 + void SetWhiteBalanceLockL(TBool aEnableLock);
1.1364 + void GetWhiteBalanceLockStateL(TBool& aIsLocked) const;
1.1365 +
1.1366 + void EnableStateSavingL(RWriteStream& aLatestCameraState);
1.1367 + void DisableStateSavingL();
1.1368 + void RestoreLatestStateL(RReadStream& aLatestCameraState);
1.1369 + void SaveCameraStateL(RWriteStream& aCustomCameraState);
1.1370 + void DisableCameraStateSavingL(RWriteStream& aCustomCameraState);
1.1371 + void RestoreCameraStateL(RReadStream& aCustomCameraState);
1.1372 +
1.1373 +private:
1.1374 + CCamera& iOwner;
1.1375 + MCameraAdvancedSettings* iImpl; // not owned
1.1376 + MCameraAdvancedSettings2* iImpl2; // not owned
1.1377 +
1.1378 + MCameraAdvancedSettings3* iImpl3; // not owned
1.1379 +
1.1380 + MCameraAdvancedSettings4* iImpl4; // not owned
1.1381 + };
1.1382 +
1.1383 +/**
1.1384 +Supported presets with the assumption for scope and outcome
1.1385 +*/
1.1386 +
1.1387 +/** Default settings */
1.1388 +static const TUid KUidECamPresetFactoryDefault = {KUidECamPresetFactoryDefaultUidValue};
1.1389 +/** Daytime shot with normal exposure time, one shot autofocus,
1.1390 +medium ISO rating and no flash. */
1.1391 +static const TUid KUidECamPresetOutdoor = {KUidECamPresetOutdoorUidValue};
1.1392 +/** Daytime shot with short exposure time, continuous autofocus,
1.1393 +high Iso rating and no flash. */
1.1394 +static const TUid KUidECamPresetOutdoorSport = {KUidECamPresetOutdoorSportUidValue};
1.1395 +/** Daytime shot with very short exposure time, high shutter speed,
1.1396 +high Iso rating and no flash. */
1.1397 +static const TUid KUidECamPresetSnow = {KUidECamPresetSnowUidValue};
1.1398 +/** Daytime shot with very short exposure time, high shutter speed,
1.1399 +high contrast, reflections and no flash. */
1.1400 +static const TUid KUidECamPresetBeach = {KUidECamPresetBeachUidValue};
1.1401 +/** Night time shot with long central exposure time and high flash power. */
1.1402 +static const TUid KUidECamPresetNightPortrait = {KUidECamPresetNightPortraitUidValue};
1.1403 +/** Night time shot with long exposure time and no flash. */
1.1404 +static const TUid KUidECamPresetNightFireworks = {KUidECamPresetNightFireworksUidValue};
1.1405 +/** Daytime shot with medium exposure time, medium to high Iso rating,
1.1406 +overcast daylight, low contrast, fill-in flash. */
1.1407 +static const TUid KUidECamPresetFog = {KUidECamPresetFogUidValue};
1.1408 +/** Fluorescent lightning with medium exposure time,
1.1409 +medium to low shutter speed with flash. */
1.1410 +static const TUid KUidECamPresetIndoor = {KUidECamPresetIndoorUidValue};
1.1411 +/** Fluorescent lightning with continuous autofocus, wide aperture,
1.1412 +high Iso rating with flash. */
1.1413 +static const TUid KUidECamPresetIndoorSport = {KUidECamPresetIndoorSportUidValue};
1.1414 +/**
1.1415 +Used in low light situations. Tries to capture all the photons from a low light scene.
1.1416 +The image may be processed longer to achieve this. This case may cause blurring, but that could be a
1.1417 +wanted effect.
1.1418 +
1.1419 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1420 +CCamera::NewDuplicate2L().
1.1421 +
1.1422 +*/
1.1423 +static const TUid KUidECamPresetNightPartyIndoor = {KUidECamPresetNightPartyIndoorUidValue};
1.1424 +/**
1.1425 +Used to capture images of things which can't be seen by eye.
1.1426 +For example: snowflakes, underwater photography, small insect photos
1.1427 +
1.1428 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1429 +CCamera::NewDuplicate2L().
1.1430 +
1.1431 +*/
1.1432 +static const TUid KUidECamPresetNightCloseUp = {KUidECamPresetNightCloseUpUidValue};
1.1433 +/**
1.1434 +Used for revealing assumed details. For example: business card photos, small written text photos,
1.1435 +underwater photography, insect photos.
1.1436 +
1.1437 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1438 +CCamera::NewDuplicate2L().
1.1439 +
1.1440 +*/
1.1441 +static const TUid KUidECamPresetNightMacro = {KUidECamPresetNightMacroUidValue};
1.1442 +/**
1.1443 +Used for taking clear pictures of text or drawings. Also used to capture business cards or of a whiteboard.
1.1444 +Aim is to optimise text and drawing readability and user expectation of "white" paper.
1.1445 +Camera shake may reduce quality in case no flash available or not adequate(distance too much from subject).
1.1446 +
1.1447 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1448 +CCamera::NewDuplicate2L().
1.1449 +
1.1450 +*/
1.1451 +static const TUid KUidECamPresetTextDocument = {KUidECamPresetTextDocumentUidValue};
1.1452 +/**
1.1453 +Used for providing clear pictures of barcode. Aim is to convert barcode into some form which can be easily decoded.
1.1454 +Camera shake may reduce this barcode readability and hence, barcode conversion accuracy and reliability.
1.1455 +
1.1456 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1457 +CCamera::NewDuplicate2L().
1.1458 +
1.1459 +*/
1.1460 +static const TUid KUidECamPresetBarcode = {KUidECamPresetBarcodeUidValue};
1.1461 +/**
1.1462 +Used when factory default preset in certain cases may not be available or is too restrictive.
1.1463 +Automatic preset expects the hardware to use automatic detection for most of the features.
1.1464 +
1.1465 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1466 +CCamera::NewDuplicate2L().
1.1467 +
1.1468 +*/
1.1469 +static const TUid KUidECamPresetAuto = {KUidECamPresetAutoUidValue};
1.1470 +/**
1.1471 +Used for portraits of human subjects in good lighting conditions. Focuses on the people and captures natural
1.1472 +skin tones. Background details may not be softened.
1.1473 +
1.1474 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1475 +CCamera::NewDuplicate2L().
1.1476 +
1.1477 +*/
1.1478 +static const TUid KUidECamPresetPortrait = {KUidECamPresetPortraitUidValue};
1.1479 +/**
1.1480 +Used for sharp landscape shots with clear outlines, colours and contrast, for example forest, sky.
1.1481 +The main aim is to get the details of the scene.
1.1482 +
1.1483 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1484 +CCamera::NewDuplicate2L().
1.1485 +
1.1486 +*/
1.1487 +static const TUid KUidECamPresetLandscape = {KUidECamPresetLandscapeUidValue};
1.1488 +/**
1.1489 +Used to retain the ambience/mood produced by, for example, warm lighting conditions like sunset, candlelight etc.
1.1490 +
1.1491 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1492 +CCamera::NewDuplicate2L().
1.1493 +
1.1494 +*/
1.1495 +static const TUid KUidECamPresetAmbienceMood = {KUidECamPresetAmbienceMoodUidValue};
1.1496 +/**
1.1497 +Used to for video telephony.
1.1498 +
1.1499 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1500 +CCamera::NewDuplicate2L().
1.1501 +
1.1502 +@publishedPartner
1.1503 +@prototype
1.1504 +*/
1.1505 +static const TUid KUidECamPresetVideoTelephony = {KUidECamPresetVideoTelephonyUidValue};
1.1506 +
1.1507 +/**
1.1508 +Used to clarify that camera is not under any preset mode. Possible scenario: client sets camera in a particular preset
1.1509 +mode and then makes some setting changes on top of it. Then theoretically camera is out of that preset. Hence,
1.1510 +KUidECamPresetNone will be used in such cases.
1.1511 +
1.1512 +This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or
1.1513 +CCamera::NewDuplicate2L().
1.1514 +
1.1515 +@publishedPartner
1.1516 +@prototype
1.1517 +*/
1.1518 +static const TUid KUidECamPresetNone = {KUidECamPresetNoneUidValue};
1.1519 +
1.1520 +/** Notifications related to presets */
1.1521 +/**
1.1522 +Used to notify clients about possible range restrictions, when camera works under a particular preset mode.
1.1523 +This is not a particular preset uid.
1.1524 +
1.1525 +@note Call CCamera::CCameraPresets::GetRangeRestrictedSettingsL(RArray<TUid>& aRangeRestrictedSettings) to retrieve
1.1526 + the list of settings whose range have been restricted.
1.1527 +
1.1528 +@publishedPartner
1.1529 +@prototype
1.1530 +*/
1.1531 +static const TUid KUidECamEventRangeRestricted = {KUidECamEventRangeRestrictedUidValue};
1.1532 +
1.1533 +/**
1.1534 +Used to notify clients about possible feature restrictions, when camera works under a particular preset mode.
1.1535 +This is not a particular preset uid.
1.1536 +
1.1537 +@note Call CCamera::CCameraPresets::GetFeatureRestrictedSettingsL(RArray<TUid>& aFeatureRestrictedSettings) to retrieve
1.1538 + the list of settings which have been restricted.
1.1539 +
1.1540 +@publishedPartner
1.1541 +@prototype
1.1542 +*/
1.1543 +static const TUid KUidECamEventFeatureRestricted = {KUidECamEventFeatureRestrictedUidValue};
1.1544 +
1.1545 +/**
1.1546 +Used to notify clients that locking of the preset operation has completed, when camera works under a particular preset mode.
1.1547 +This is not a particular preset uid.
1.1548 +
1.1549 +@publishedPartner
1.1550 +@prototype
1.1551 +*/
1.1552 +static const TUid KUidECamEventPresetLocked = {KUidECamEventPresetLockedUidValue};
1.1553 +
1.1554 +/**
1.1555 +Used to notify clients that unlocking of the preset operation has completed, when camera works under a particular preset mode.
1.1556 +This is not a particular preset uid.
1.1557 +
1.1558 +@publishedPartner
1.1559 +@prototype
1.1560 +*/
1.1561 +static const TUid KUidECamEventPresetUnlocked = {KUidECamEventPresetUnlockedUidValue};
1.1562 +
1.1563 +
1.1564 +/**
1.1565 +This API is used to simplify user - camera interaction by allowing simultaneous
1.1566 +setting of various advanced camera hardware settings using a single parameter.
1.1567 +
1.1568 +Preset is identified by a single UID and relates to a known predefined outcome.
1.1569 +For example the 'Night' Preset will be used to set the camera into a night mode
1.1570 +so that the user can take night photos.
1.1571 +
1.1572 +The particular set of settings associated with the specific preset and their specific values
1.1573 +and ranges are camera hardware specific and outside the scope of this API.
1.1574 +
1.1575 +@note This class is not intended for sub-classing and used to standardise existing
1.1576 + varieties of implementations.
1.1577 +
1.1578 +@note If the class methods leave, the output type parameter value is not guaranteed to be valid.
1.1579 +
1.1580 +@publishedAll
1.1581 +@released
1.1582 +*/
1.1583 +class CCamera::CCameraPresets : public CBase
1.1584 + {
1.1585 + /** allow access to private constructors. */
1.1586 + friend class CCamera;
1.1587 +
1.1588 +public:
1.1589 +
1.1590 + IMPORT_C static CCameraPresets* NewL(CCamera& aCamera);
1.1591 +
1.1592 + IMPORT_C void GetSupportedPresetsL(RArray<TUid>& aPresets) const;
1.1593 +
1.1594 + IMPORT_C void SetPreset(TUid aPreset);
1.1595 +
1.1596 + IMPORT_C TUid Preset() const;
1.1597 +
1.1598 + IMPORT_C void GetAffectedSettingsL(RArray<TUid>& aSettings) const;
1.1599 +
1.1600 + IMPORT_C void GetAssociatedSettingsL(TUid aPreset, RArray<TUid>& aSettings) const;
1.1601 +
1.1602 + IMPORT_C ~CCameraPresets();
1.1603 +
1.1604 + IMPORT_C void GetRangeRestrictedSettingsL(RArray<TUid>& aRangeRestrictedSettings) const;
1.1605 +
1.1606 + IMPORT_C void GetFeatureRestrictedSettingsL(RArray<TUid>& aFeatureRestrictedSettings) const;
1.1607 +
1.1608 + IMPORT_C void IsPresetUnlockSupportedL(TBool& aUnlockSupported) const;
1.1609 +
1.1610 + IMPORT_C void LockPresetL();
1.1611 +
1.1612 + IMPORT_C void UnlockPresetL();
1.1613 +
1.1614 +private:
1.1615 + IMPORT_C CCameraPresets(CCamera& aOwner);
1.1616 + IMPORT_C void ConstructL();
1.1617 +
1.1618 + void FilterUnrecognisedUids(RArray<TUid>& aUids, const TInt aBaselineUid) const;
1.1619 +
1.1620 +private:
1.1621 + CCamera& iOwner;
1.1622 + MCameraPresets* iImpl; // not owned
1.1623 + MCameraPresets2* iImpl2; // not owned
1.1624 + };
1.1625 +
1.1626 +#endif // ECAMADVSETTINGS_H