1 ecamadvsettings.h |
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // 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 |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 |
|
17 |
|
18 /** |
|
19 @file |
|
20 @publishedAll |
|
21 @released |
|
22 */ |
|
23 #ifndef ECAMADVSETTINGS_H |
|
24 #define ECAMADVSETTINGS_H |
|
25 |
|
26 #include <e32base.h> |
|
27 #include <ecam.h> |
|
28 #include <ecamadvsettingsuids.hrh> |
|
29 #include <gdi.h> |
|
30 #include <s32strm.h> |
|
31 #include <ecam/ecamconstants.h> |
|
32 #include <ecamimageprocessing.h> |
|
33 |
|
34 class MCameraPresets; |
|
35 class MCameraAdvancedSettings; |
|
36 class MCameraAdvancedSettings2; |
|
37 class MCameraAdvancedSettings3; |
|
38 class MCameraAdvancedSettings4; |
|
39 class MCameraPresets2; |
|
40 |
|
41 /* General purpose constants */ |
|
42 |
|
43 /** |
|
44 The current Version of the TECamLEDSpecialEffectStep class. |
|
45 |
|
46 @internalTechnology |
|
47 */ |
|
48 static const TUint KECamLEDSpecialEffectStepCurrentVersion = 1; |
|
49 |
|
50 /** |
|
51 UID used to identify the CCamera Advanced Settings API. |
|
52 This API is used to control specific individual advanced settings of camera hardware. |
|
53 These settings directly relate to the image acquisition phase. |
|
54 |
|
55 @see CCamera::CCameraAdvancedSettings |
|
56 */ |
|
57 static const TUid KECamAdvancedSettingUid = {KECamAdvancedSettingUidValue}; |
|
58 |
|
59 /** |
|
60 UID used to identify the CCamera Presets API. |
|
61 This API is used to simplify user - camera interaction by allowing simultaneous |
|
62 setting of various advanced camera hardware settings using a single predefined parameter. |
|
63 @see CCamera::CCameraPresets |
|
64 */ |
|
65 static const TUid KECamPresetsUid = {KECamPresetsUidValue}; |
|
66 |
|
67 |
|
68 /** All clients receive these events, irrespective of camera index. */ |
|
69 /** Camera slots in for 8 cameras. */ |
|
70 /** Camera with index 0 Plugged-in */ |
|
71 static const TUid KUidECamEventGlobalCamera00PluggedIn = {KUidECamEventGlobalCamera00PluggedInUidValue}; |
|
72 /** Camera with index 1 Plugged-in */ |
|
73 static const TUid KUidECamEventGlobalCamera01PluggedIn = {KUidECamEventGlobalCamera01PluggedInUidValue}; |
|
74 /** Camera with index 2 Plugged-in */ |
|
75 static const TUid KUidECamEventGlobalCamera02PluggedIn = {KUidECamEventGlobalCamera02PluggedInUidValue}; |
|
76 /** Camera with index 3 Plugged-in */ |
|
77 static const TUid KUidECamEventGlobalCamera03PluggedIn = {KUidECamEventGlobalCamera03PluggedInUidValue}; |
|
78 /** Camera with index 4 Plugged-in */ |
|
79 static const TUid KUidECamEventGlobalCamera04PluggedIn = {KUidECamEventGlobalCamera04PluggedInUidValue}; |
|
80 /** Camera with index 5 Plugged-in */ |
|
81 static const TUid KUidECamEventGlobalCamera05PluggedIn = {KUidECamEventGlobalCamera05PluggedInUidValue}; |
|
82 /** Camera with index 6 Plugged-in */ |
|
83 static const TUid KUidECamEventGlobalCamera06PluggedIn = {KUidECamEventGlobalCamera06PluggedInUidValue}; |
|
84 /** Camera with index 7 Plugged-in */ |
|
85 static const TUid KUidECamEventGlobalCamera07PluggedIn = {KUidECamEventGlobalCamera07PluggedInUidValue}; |
|
86 |
|
87 /** Camera slots plugged out for 8 cameras. */ |
|
88 /** Camera with index 0 Plugged-out */ |
|
89 static const TUid KUidECamEventGlobalCamera00PluggedOut = {KUidECamEventGlobalCamera00PluggedOutUidValue}; |
|
90 /** Camera with index 1 Plugged-out */ |
|
91 static const TUid KUidECamEventGlobalCamera01PluggedOut = {KUidECamEventGlobalCamera01PluggedOutUidValue}; |
|
92 /** Camera with index 2 Plugged-out */ |
|
93 static const TUid KUidECamEventGlobalCamera02PluggedOut = {KUidECamEventGlobalCamera02PluggedOutUidValue}; |
|
94 /** Camera with index 3 Plugged-out */ |
|
95 static const TUid KUidECamEventGlobalCamera03PluggedOut = {KUidECamEventGlobalCamera03PluggedOutUidValue}; |
|
96 /** Camera with index 4 Plugged-out */ |
|
97 static const TUid KUidECamEventGlobalCamera04PluggedOut = {KUidECamEventGlobalCamera04PluggedOutUidValue}; |
|
98 /** Camera with index 5 Plugged-out */ |
|
99 static const TUid KUidECamEventGlobalCamera05PluggedOut = {KUidECamEventGlobalCamera05PluggedOutUidValue}; |
|
100 /** Camera with index 6 Plugged-out */ |
|
101 static const TUid KUidECamEventGlobalCamera06PluggedOut = {KUidECamEventGlobalCamera06PluggedOutUidValue}; |
|
102 /** Camera with index 7 Plugged-out */ |
|
103 static const TUid KUidECamEventGlobalCamera07PluggedOut = {KUidECamEventGlobalCamera07PluggedOutUidValue}; |
|
104 |
|
105 /** Camera slots available for 8 cameras. */ |
|
106 /** Signals a camera previously has been reserved and then released again. |
|
107 In this way available clients may attempt to reserve the camera */ |
|
108 /** Camera with index 0 Available. */ |
|
109 static const TUid KUidECamEventGlobalCamera00Available = {KUidECamEventGlobalCamera00AvailableUidValue}; |
|
110 /** Camera with index 1 Available. */ |
|
111 static const TUid KUidECamEventGlobalCamera01Available = {KUidECamEventGlobalCamera01AvailableUidValue}; |
|
112 /** Camera with index 2 Available. */ |
|
113 static const TUid KUidECamEventGlobalCamera02Available = {KUidECamEventGlobalCamera02AvailableUidValue}; |
|
114 /** Camera with index 3 Available. */ |
|
115 static const TUid KUidECamEventGlobalCamera03Available = {KUidECamEventGlobalCamera03AvailableUidValue}; |
|
116 /** Camera with index 4 Available. */ |
|
117 static const TUid KUidECamEventGlobalCamera04Available = {KUidECamEventGlobalCamera04AvailableUidValue}; |
|
118 /** Camera with index 5 Available. */ |
|
119 static const TUid KUidECamEventGlobalCamera05Available = {KUidECamEventGlobalCamera05AvailableUidValue}; |
|
120 /** Camera with index 6 Available. */ |
|
121 static const TUid KUidECamEventGlobalCamera06Available = {KUidECamEventGlobalCamera06AvailableUidValue}; |
|
122 /** Camera with index 7 Available. */ |
|
123 static const TUid KUidECamEventGlobalCamera07Available = {KUidECamEventGlobalCamera07AvailableUidValue}; |
|
124 |
|
125 /** Individual camera events. These are used by the camera to signal its observers. */ |
|
126 /** Lens changed. */ |
|
127 static const TUid KUidECamEventLensChanged = {KUidECamEventLensChangedUidValue}; |
|
128 /** Flash source added. */ |
|
129 static const TUid KUidECamEventFlashSourceAdded = {KUidECamEventFlashSourceAddedUidValue}; |
|
130 /** Flash source removed. */ |
|
131 static const TUid KUidECamEventFlashSourceRemoved = {KUidECamEventFlashSourceRemovedUidValue}; |
|
132 /** Image resolution changed. */ |
|
133 static const TUid KUidECamEventCameraSettingImageSize = {KUidECamEventCameraSettingImageSizeUidValue}; |
|
134 /** Image Format changed. */ |
|
135 static const TUid KUidECamEventCameraSettingImageFormat = {KUidECamEventCameraSettingImageFormatUidValue}; |
|
136 /** Camera orientation changed. */ |
|
137 static const TUid KUidECamEventCameraSettingCameraOrientation = {KUidECamEventCameraSettingCameraOrientationUidValue}; |
|
138 /** Optimal focus */ |
|
139 static const TUid KUidECamEventCameraSettingsOptimalFocus = {KUidECamEventCameraSettingsOptimalFocusUidValue}; |
|
140 |
|
141 /** Advanced settings. */ |
|
142 /** Stabilization mode. */ |
|
143 static const TUid KUidECamEventCameraSettingStabilizationMode = {KUidECamEventCameraSettingStabilizationModeUidValue}; |
|
144 /** Focus mode. */ |
|
145 static const TUid KUidECamEventCameraSettingFocusMode = {KUidECamEventCameraSettingFocusModeUidValue}; |
|
146 /** Focus range. |
|
147 @deprecated |
|
148 |
|
149 Replaced by KUidECamEventCameraSettingFocusRange2 |
|
150 |
|
151 In the first release of this event, KUidECamEventCameraSettingFocusRange was incorrectly given an already existing uid. |
|
152 In order to preserve compatibility this event is marked as deprecated and has been replaced by KUidECamEventCameraSettingFocusRange2. |
|
153 Camera servers predating this API change will continue to send the original event which is indistinguishable by value. |
|
154 Caching the old value and comparing it with the current value, will allow the client to determine that the value has changed. |
|
155 Camera servers which have been updated should send both KUidECamEventCameraSettingFocusRange and KUidECamEventCameraSettingFocusRange2 on a focus range change. |
|
156 Camera clients should therefore process both events(old and new). |
|
157 |
|
158 @see KUidECamEventCameraSettingFocusRange2 |
|
159 */ |
|
160 static const TUid KUidECamEventCameraSettingFocusRange = {KUidECamEventCameraSettingFocusRangeUidValue}; |
|
161 /** Autofocus type. |
|
162 @deprecated |
|
163 |
|
164 Replaced by KUidECamEventCameraSettingAutoFocusType2 |
|
165 |
|
166 In the first release of this event, KUidECamEventCameraSettingAutoFocusType was incorrectly given an already existing uid. |
|
167 In order to preserve compatibility this event is marked as deprecated and has been replaced by KUidECamEventCameraSettingAutoFocusType2. |
|
168 Camera servers predating this API change will continue to send the original event which is indistinguishable by value. |
|
169 Caching the old value and comparing it with the current value, will allow the client to determine that the value has changed. |
|
170 Camera servers which have been updated should send both KUidECamEventCameraSettingAutoFocusType and KUidECamEventCameraSettingAutoFocusType2 on a focus range change. |
|
171 Camera clients should therefore process both events(old and new). |
|
172 |
|
173 @see KUidECamEventCameraSettingAutoFocusType2*/ |
|
174 static const TUid KUidECamEventCameraSettingAutoFocusType = {KUidECamEventCameraSettingAutoFocusTypeUidValue}; |
|
175 /** Autofocus area. */ |
|
176 static const TUid KUidECamEventCameraSettingAutoFocusArea = {KUidECamEventCameraSettingAutoFocusAreaUidValue}; |
|
177 /** Autofocus lock state. */ |
|
178 static const TUid KUidECamEventCameraSettingAutoFocusLock = {KUidECamEventCameraSettingAutoFocusLockUidValue}; |
|
179 /** Focus distance */ |
|
180 static const TUid KUidECamEventCameraSettingFocusDistance = {KUidECamEventCameraSettingFocusDistanceUidValue}; |
|
181 /** Sensitivity - ISO rate. */ |
|
182 static const TUid KUidECamEventCameraSettingIsoRate = {KUidECamEventCameraSettingIsoRateUidValue}; |
|
183 /** Aperture. */ |
|
184 static const TUid KUidECamEventCameraSettingAperture = {KUidECamEventCameraSettingApertureUidValue}; |
|
185 /** Aperture range. */ |
|
186 static const TUid KUidECamEventCameraSettingApertureRange = {KUidECamEventCameraSettingApertureRangeUidValue}; |
|
187 /** Shutter speed. */ |
|
188 static const TUid KUidECamEventCameraSettingShutterSpeed = {KUidECamEventCameraSettingShutterSpeedUidValue}; |
|
189 /** Shutter speed range. */ |
|
190 static const TUid KUidECamEventCameraSettingShutterSpeedRange = {KUidECamEventCameraSettingShutterSpeedRangeUidValue}; |
|
191 /** Metering mode. */ |
|
192 static const TUid KUidECamEventCameraSettingMeteringMode = {KUidECamEventCameraSettingMeteringModeUidValue}; |
|
193 /** Drive mode. */ |
|
194 static const TUid KUidECamEventCameraSettingDriveMode = {KUidECamEventCameraSettingDriveModeUidValue}; |
|
195 /** Braket mode. */ |
|
196 static const TUid KUidECamEventCameraSettingBracketMode = {KUidECamEventCameraSettingBracketModeUidValue}; |
|
197 /** Bracket step. */ |
|
198 static const TUid KUidECamEventCameraSettingBracketStep = {KUidECamEventCameraSettingBracketStepUidValue}; |
|
199 /** Bracket parameter. */ |
|
200 static const TUid KUidECamEventCameraSettingBracketParameter = {KUidECamEventCameraSettingBracketParameterUidValue}; |
|
201 /** Bracket merge. */ |
|
202 static const TUid KUidECamEventBracketMerge = {KUidECamEventBracketMergeUidValue}; |
|
203 /** Picture orientation. */ |
|
204 static const TUid KUidECamEventCameraSettingPictureOrientation = {KUidECamEventCameraSettingPictureOrientationUidValue}; |
|
205 /** Automatic size selection option */ |
|
206 static const TUid KUidECamEventCameraSettingAutomaticSizeSelection = {KUidECamEventCameraSettingAutomaticSizeSelectionUidValue}; |
|
207 /** Flash setting. */ |
|
208 static const TUid KUidECamEventCameraSettingFlashMode = {KUidECamEventCameraSettingFlashModeUidValue}; |
|
209 /** Flash compensation step. */ |
|
210 static const TUid KUidECamEventCameraSettingFlashCompensationStep = {KUidECamEventCameraSettingFlashCompensationStepUidValue}; |
|
211 /** Flash compensation. */ |
|
212 static const TUid KUidECamEventCameraSettingFlashCompensation = {KUidECamEventCameraSettingFlashCompensationUidValue}; |
|
213 /** Manual flash power. */ |
|
214 static const TUid KUidECamEventCameraSettingFlashManualPower = {KUidECamEventCameraSettingFlashManualPowerUidValue}; |
|
215 /** Red eye reduce mode. */ |
|
216 static const TUid KUidECamEventCameraSettingFlashRedEyeReduce = {KUidECamEventCameraSettingFlashRedEyeReduceUidValue}; |
|
217 /** Exposure mode setting. */ |
|
218 static const TUid KUidECamEventCameraSettingExposureMode = {KUidECamEventCameraSettingExposureModeUidValue}; |
|
219 /** Exposure compensation step. */ |
|
220 static const TUid KUidECamEventCameraSettingExposureCompensationStep = {KUidECamEventCameraSettingExposureCompensationStepUidValue}; |
|
221 /** Exposure compensation. */ |
|
222 static const TUid KUidECamEventCameraSettingExposureCompensation = {KUidECamEventCameraSettingExposureCompensationUidValue}; |
|
223 /** Exposure lock state. */ |
|
224 static const TUid KUidECamEventCameraSettingExposureLock = {KUidECamEventCameraSettingExposureLockUidValue}; |
|
225 /** AE lock option. */ |
|
226 static const TUid KUidECamEventAELock = {KUidECamEventAELockUidValue}; |
|
227 /** White balance. */ |
|
228 static const TUid KUidECamEventCameraSettingWhiteBalanceMode = {KUidECamEventCameraSettingWhiteBalanceModeUidValue}; |
|
229 /** Timer changed. */ |
|
230 static const TUid KUidECamEventCameraSettingTimerInterval = {KUidECamEventCameraSettingTimerIntervalUidValue}; |
|
231 /** Timer lapse period. */ |
|
232 static const TUid KUidECamEventCameraSettingTimeLapse = {KUidECamEventCameraSettingTimeLapseUidValue}; |
|
233 /** Optical zoom. */ |
|
234 static const TUid KUidECamEventCameraSettingOpticalZoom = {KUidECamEventCameraSettingOpticalZoomUidValue}; |
|
235 /** Optical zoom range. */ |
|
236 static const TUid KUidECamEventCameraSettingOpticalZoomRange = {KUidECamEventCameraSettingOpticalZoomRangeUidValue}; |
|
237 /** Digital zoom. */ |
|
238 static const TUid KUidECamEventCameraSettingDigitalZoom = {KUidECamEventCameraSettingDigitalZoomUidValue}; |
|
239 /** Digital zoom range. */ |
|
240 static const TUid KUidECamEventCameraSettingDigitalZoomRange = {KUidECamEventCameraSettingDigitalZoomRangeUidValue}; |
|
241 /** Clicking sound state. */ |
|
242 static const TUid KUidECamEventSoundClick = {KUidECamEventSoundClickUidValue}; |
|
243 /** Pixel aspect ratio. */ |
|
244 static const TUid KUidECamEventPixelAspectRatio = {KUidECamEventPixelAspectRatioUidValue}; |
|
245 /** Yuv range. */ |
|
246 static const TUid KUidECamEventYuvRange = {KUidECamEventYuvRangeUidValue}; |
|
247 /** Burst images. */ |
|
248 static const TUid KUidECamEventBurstImages = {KUidECamEventBurstImagesUidValue}; |
|
249 /** Stabilization effect - magnitude of stabilization */ |
|
250 static const TUid KUidECamEventCameraSettingsStabilizationEffect = {KUidECamEventCameraSettingsStabilizationEffectUidValue}; |
|
251 /** Stabilization algorithm */ |
|
252 static const TUid KUidECamEventSettingsStabilizationAlgorithmComplexity = {KUidECamEventSettingsStabilizationAlgorithmComplexityUidValue}; |
|
253 /** Continuous Autofocus timeout */ |
|
254 static const TUid KUidECamEventCameraSettingsContinuousAutoFocusTimeout = {KUidECamEventCameraSettingsContinuousAutoFocusTimeoutUidValue}; |
|
255 /** White Balance manual setting */ |
|
256 static const TUid KUidECamEventCameraSettingsWBValue = {KUidECamEventCameraSettingsWBValueUidValue}; |
|
257 /** Flash ready */ |
|
258 static const TUid KUidECamEventFlashReady = {KUidECamEventFlashReadyUidValue}; |
|
259 /** Flash not ready */ |
|
260 static const TUid KUidECamEventFlashNotReady = {KUidECamEventFlashNotReadyUidValue}; |
|
261 /** Focus range. |
|
262 This is the new UID value to notify change on focus range and takes immediate effect as previous UID KUidECamEventCameraSettingFocusRange has been deprecated. |
|
263 @see KUidECamEventCameraSettingFocusRange */ |
|
264 static const TUid KUidECamEventCameraSettingFocusRange2 = {KUidECamEventCameraSettingFocusRange2UidValue}; |
|
265 /** Autofocus type. |
|
266 This is the new UID value to notify change on autofocus type and takes immediate effect as previous UID KUidECamEventCameraSettingAutoFocusType has been deprecated. |
|
267 @see KUidECamEventCameraSettingAutoFocusType */ |
|
268 static const TUid KUidECamEventCameraSettingAutoFocusType2 = {KUidECamEventCameraSettingAutoFocusType2UidValue}; |
|
269 |
|
270 /** |
|
271 ISO Rate type. |
|
272 |
|
273 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
274 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
275 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
276 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
277 |
|
278 */ |
|
279 static const TUid KUidECamEventCameraSettingIsoRateType = {KUidECamEventCameraSettingIsoRateTypeUidValue}; |
|
280 |
|
281 /** |
|
282 Reference Screen setting. |
|
283 |
|
284 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
285 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
286 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
287 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
288 |
|
289 */ |
|
290 static const TUid KUidECamEventCameraSettingReferenceScreen = {KUidECamEventCameraSettingReferenceScreenUidValue}; |
|
291 |
|
292 /** |
|
293 Pre Capture Warning indication. |
|
294 |
|
295 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
296 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
297 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
298 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
299 |
|
300 */ |
|
301 static const TUid KUidECamEventCameraSettingAFAssistantLight = {KUidECamEventCameraSettingAFAssistantLightUidValue}; |
|
302 |
|
303 /** |
|
304 Notifies the client that continuous zoom limit has been reached. |
|
305 |
|
306 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
307 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
308 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
309 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
310 |
|
311 @publishedPartner |
|
312 @prototype |
|
313 */ |
|
314 static const TUid KUidECamEventCameraSettingContinuousZoomReachedLimit = {KUidECamEventCameraSettingContinuousZoomReachedLimitUidValue}; |
|
315 |
|
316 /** |
|
317 Notifies the client about the setting of performance operation preference. |
|
318 |
|
319 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
320 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
321 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
322 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
323 |
|
324 @publishedPartner |
|
325 @prototype |
|
326 */ |
|
327 static const TUid KUidECamEventCameraSettingOperationPreference = {KUidECamEventCameraSettingOperationPreferenceUidValue}; |
|
328 |
|
329 /** |
|
330 Notifies the client that the flicker removal value has been set. |
|
331 |
|
332 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
333 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
334 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
335 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
336 |
|
337 @internalTechnology |
|
338 */ |
|
339 static const TUid KUidECamEventCameraSettingFlickerRemovalValue = {KUidECamEventCameraSettingFlickerRemovalValueUidValue}; |
|
340 |
|
341 /** |
|
342 Notifies the client about the setting of neutral density filter. |
|
343 |
|
344 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
345 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
346 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
347 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
348 |
|
349 @internalTechnology |
|
350 */ |
|
351 static const TUid KUidECamEventCameraSettingNDFilter = {KUidECamEventCameraSettingNDFilterUidValue}; |
|
352 |
|
353 /** |
|
354 Notifies the client about the setting of LED effect. |
|
355 |
|
356 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
357 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
358 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
359 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
360 |
|
361 @internalTechnology |
|
362 */ |
|
363 static const TUid KUidECamEventCameraSettingLEDEffect = {KUidECamEventCameraSettingLEDEffectUidValue}; |
|
364 |
|
365 /** |
|
366 Notifies the client about the setting of LED 'custom' effect. |
|
367 |
|
368 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
369 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
370 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
371 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
372 |
|
373 @internalTechnology |
|
374 */ |
|
375 static const TUid KUidECamEventCameraSettingLEDCustomEffect = {KUidECamEventCameraSettingLEDCustomEffectUidValue}; |
|
376 |
|
377 /** |
|
378 Notifies the client about the white balance lock setting. |
|
379 |
|
380 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
381 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
382 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
383 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
384 |
|
385 @internalTechnology |
|
386 */ |
|
387 static const TUid KUidECamEventCameraSettingLockWhiteBalance = {KUidECamEventCameraSettingLockWhiteBalanceUidValue}; |
|
388 |
|
389 /** |
|
390 Instructs the client to restore its original priority. |
|
391 |
|
392 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
393 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
394 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
395 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
396 |
|
397 @internalTechnology |
|
398 */ |
|
399 static const TUid KUidECamEventCameraSettingRestoreClientPriority = {KUidECamEventCameraSettingRestoreClientPriorityUidValue}; |
|
400 |
|
401 /** |
|
402 CCamera advanced settings class exposes an API for controlling individually |
|
403 digital camera advanced settings. These settings directly relate to the |
|
404 image acquisition phase both for still images and video. |
|
405 |
|
406 @note This class is not intended for sub-classing and used to standardise existing |
|
407 varieties of implementations. |
|
408 |
|
409 @note If the class methods leave, the output type parameter value is not guaranteed to be valid. |
|
410 |
|
411 @publishedAll |
|
412 @released |
|
413 */ |
|
414 class CCamera::CCameraAdvancedSettings : public CBase |
|
415 { |
|
416 /* so can use internal factory functions etc. */ |
|
417 friend class CCamera; |
|
418 |
|
419 public: |
|
420 |
|
421 /** Specifies camera type. */ |
|
422 enum TCameraType |
|
423 { |
|
424 /** Unable to identify. */ |
|
425 ECameraUnknown = 0x00, |
|
426 /** Camera is non-detachable from device. Camera is always present. */ |
|
427 ECameraOnBoard = 0x01, |
|
428 /** Camera is detachable from device. Camera is not always present. */ |
|
429 ECameraPluggable = 0x02 |
|
430 }; |
|
431 |
|
432 /** Specifies stabilization mode of the camera. */ |
|
433 enum TStabilizationMode |
|
434 { |
|
435 /** Not present or switched off, default */ |
|
436 EStabilizationModeOff = 0x00, |
|
437 /** Stabilization only in horizontal direction. */ |
|
438 EStabilizationModeHorizontal = 0x01, |
|
439 /** Stabilization only in vertical direction. */ |
|
440 EStabilizationModeVertical = 0x02, |
|
441 /** Rotational stabilization. */ |
|
442 EStabilizationModeRotation = 0x04, |
|
443 /** Automatic stabilization. */ |
|
444 EStabilizationModeAuto = 0x08, |
|
445 /** Manual stabilization. */ |
|
446 EStabilizationModeManual = 0x10 |
|
447 }; |
|
448 |
|
449 /** Supported magnitudes of stabilization effect when in manual mode. */ |
|
450 enum TStabilizationEffect |
|
451 { |
|
452 /** Stabilization effect is off. */ |
|
453 EStabilizationOff = 0x00, |
|
454 /** Stabilization effect is automatic, default. */ |
|
455 EStabilizationAuto = 0x01, |
|
456 /** Stabilization effect is very small in magnitude. */ |
|
457 EStabilizationFine = 0x02, |
|
458 /** Stabilization effect is average in magnitude. */ |
|
459 EStabilizationMedium = 0x04, |
|
460 /** Stabilization effect is large in magnitude. */ |
|
461 EStabilizationStrong = 0x08 |
|
462 }; |
|
463 |
|
464 /** Supported stabilization algorithms, graded on complexity. */ |
|
465 enum TStabilizationAlgorithmComplexity |
|
466 { |
|
467 /** Stabilization algorithm selection is automatic, default. */ |
|
468 EStabilizationComplexityAuto = 0x00, |
|
469 /** Stabilization algorithm is simple - less precise but fast. */ |
|
470 EStabilizationComplexityLow = 0x01, |
|
471 /** Stabilization algorithm is of medium complexity. */ |
|
472 EStabilizationComplexityMedium = 0x02, |
|
473 /** Stabilization algorithm is of high complexity. */ |
|
474 EStabilizationComplexityHigh = 0x04 |
|
475 }; |
|
476 |
|
477 /** Supported focus modes. */ |
|
478 enum TFocusMode |
|
479 { |
|
480 /** Focus mode is unknown. */ |
|
481 EFocusModeUnknown = 0x00, |
|
482 /** Focus is automatic, default. */ |
|
483 EFocusModeAuto = 0x01, |
|
484 /** Focus is fixed. */ |
|
485 EFocusModeFixed = 0x02, |
|
486 /** Focus is manually set. */ |
|
487 EFocusModeManual = 0x04 |
|
488 }; |
|
489 |
|
490 /** Supported focus ranges. */ |
|
491 enum TFocusRange |
|
492 { |
|
493 /** Auto. Default */ |
|
494 EFocusRangeAuto = 0x00, |
|
495 /** Focus operates in close range (macro). */ |
|
496 EFocusRangeMacro = 0x01, |
|
497 /** Normal operation. */ |
|
498 EFocusRangeNormal = 0x02, |
|
499 /** Extended (tele) operation. */ |
|
500 EFocusRangeTele = 0x04, |
|
501 /** Focus at larger areas at short to medium distance. */ |
|
502 EFocusRangePortrait = 0x08, |
|
503 /** Optimised macro operation, |
|
504 where depth of field is very shallow and observation area changes quickly. */ |
|
505 EFocusRangeSuperMacro = 0x10, |
|
506 /** |
|
507 All objects at distances from half of the hyperfocal distance out to infinity will be in focus. |
|
508 This gives gives maximum depth of field. |
|
509 |
|
510 This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
511 CCamera::NewDuplicate2L(). |
|
512 |
|
513 */ |
|
514 EFocusRangeHyperfocal = 0x20, |
|
515 /** |
|
516 When there is a near obstacle or better focus wanted for far away objects. |
|
517 |
|
518 This enum value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
519 CCamera::NewDuplicate2L(). |
|
520 |
|
521 */ |
|
522 EFocusRangeInfinite = 0x40 |
|
523 }; |
|
524 |
|
525 /** Specifies the supported autofocus types. */ |
|
526 enum TAutoFocusType |
|
527 { |
|
528 /** Autofocus is switched off. */ |
|
529 EAutoFocusTypeOff = 0x00, |
|
530 /** Operates on a single shot, consumes less power. */ |
|
531 EAutoFocusTypeSingle = 0x01, |
|
532 /** Continious autofocus, more precise but consumes more power. |
|
533 also known as AF Servo. */ |
|
534 EAutoFocusTypeContinuous = 0x02 |
|
535 }; |
|
536 |
|
537 /** Specifies the autofocus area. */ |
|
538 enum TAutoFocusArea |
|
539 { |
|
540 /** Automatic. Default value */ |
|
541 EAutoFocusTypeAuto = 0x00, |
|
542 /** Single area, suitable for relatively flat surfaces and portrait. */ |
|
543 EAutoFocusTypeSingleArea = 0x01, |
|
544 /** Multiple points of an object, more weighting for centre points. */ |
|
545 EAutoFocusTypeMultiAreaCentered = 0x02 |
|
546 }; |
|
547 |
|
548 /** Specifies the Metering mode for the camera. |
|
549 EMeteringModeAuto is the default value. */ |
|
550 enum TMeteringMode |
|
551 { |
|
552 /** Automatic mode, default. */ |
|
553 EMeteringModeAuto = 0x0000, |
|
554 /** Metering in which the center is given a weighted priority. */ |
|
555 EMeteringModeCenterWeighted = 0x0001, |
|
556 /** Metering of a central area/spot only, also known as partial. */ |
|
557 EMeteringModeSpot = 0x0002, |
|
558 /** Metering is evaluated over a matrix(several spots) and calculated |
|
559 as a function of that. Usually best but with increased |
|
560 power consumption. Alternative name multi-metering mode. */ |
|
561 EMeteringModeEvaluative = 0x0004 |
|
562 }; |
|
563 |
|
564 /** Specifies the drive mode for the camera. This determines how and in what sucession are images |
|
565 shot. EDriveModeSingleShot is the default.*/ |
|
566 enum TDriveMode |
|
567 { |
|
568 /** Automatic. Default */ |
|
569 EDriveModeAuto = 0x0000, |
|
570 /** Camera takes a single image/shot. */ |
|
571 EDriveModeSingleShot = 0x0001, |
|
572 /** Camera continuously captures images (as fast as it can) until stopped or out of storage medium. */ |
|
573 EDriveModeContinuous = 0x0002, |
|
574 /** Camera is in bracketing mode, producing individual frames. @see TBracketMode */ |
|
575 EDriveModeBracket = 0x0004, |
|
576 /** Camera is in bracketing mode, but producing a single image. @see TBracketMode */ |
|
577 EDriveModeBracketMerge = 0x0008, |
|
578 /** camera captures a single shot after specified time period. @see Timer() */ |
|
579 EDriveModeTimed = 0x0010, |
|
580 /** Camera captures a set of images with an uniform interval between them. @see TimeLapse() */ |
|
581 EDriveModeTimeLapse = 0x0020, |
|
582 /** Camera captures a set of images as fast as it can, but in batches(bursts). */ |
|
583 EDriveModeBurst = 0x0040 |
|
584 }; |
|
585 |
|
586 /** Specifies Bracket mode. */ |
|
587 enum TBracketMode |
|
588 { |
|
589 /** Bracket mode is switched off. Default value. */ |
|
590 EBracketModeOff = 0x0000, |
|
591 /** Bracket mode on. Three consecutive pictures are taken in order |
|
592 under (-1), on (0), over (+1), where correction magnitude |
|
593 is defined by bracket step size and by TBracketParameter |
|
594 @see TBracketStep |
|
595 @see TBracketParameter */ |
|
596 EBracketMode3Image = 0x0001, |
|
597 /** Bracket mode on. Five consecutive pictures are taken in order |
|
598 under (-2),under (-1), on (0), over (+1), over (+2), where correction magnitude |
|
599 is defined by bracket step size and by TBracketParameter |
|
600 @see TBracketStep |
|
601 @see TBracketParameter */ |
|
602 EBracketMode5Image = 0x0002 |
|
603 }; |
|
604 |
|
605 /** Supported parameters used for bracketing. |
|
606 @note Bracket mode parameter value changes by |
|
607 a selected uniform step between successive image shots. |
|
608 @see TBracketStep |
|
609 @see TBracketMode. */ |
|
610 enum TBracketParameter |
|
611 { |
|
612 /** None. */ |
|
613 EBracketParameterNone = 0x0000, |
|
614 /** Exposure settings change. */ |
|
615 EBracketParameterExposure = 0x0001, |
|
616 /** Flash power change. */ |
|
617 EBracketParameterFlashPower = 0x0002, |
|
618 /** Colour balance settings change. */ |
|
619 EBracketParameterColourBalance = 0x0004, |
|
620 /** Aperture settings change. */ |
|
621 BracketParameterAperture = 0x0008, |
|
622 /** Autofocus settings change. */ |
|
623 BracketParameterAutoFocus = 0x0010 |
|
624 }; |
|
625 |
|
626 /** Specifies the magnitude of bracketing step. |
|
627 The actual value and availability is parameter dependent. |
|
628 @see TBracketParameter |
|
629 */ |
|
630 enum TBracketStep |
|
631 { |
|
632 /** Not supported. */ |
|
633 EBracketStepNonConfig = 0x00, |
|
634 /** Small value. */ |
|
635 EBracketStepSmall = 0x01, |
|
636 /** Medium value. */ |
|
637 EBracketStepMedium = 0x02, |
|
638 /** Large value. */ |
|
639 EBracketStepLarge = 0x04 |
|
640 }; |
|
641 |
|
642 /** Specifies the orientation of the picture. */ |
|
643 enum TPictureOrientation |
|
644 { |
|
645 /** No information about picture orientation. */ |
|
646 EPictureOrientationUnknown = 0x00, |
|
647 /** Portrait - height larger than width. */ |
|
648 EPictureOrientationPortrait = 0x01, |
|
649 /** Landscape width larger than height. */ |
|
650 EPictureOrientationLandscape = 0x02, |
|
651 /** Square width equals the height. */ |
|
652 EPictureOrientationSquare = 0x04 |
|
653 }; |
|
654 |
|
655 /** Specifies the pixel aspect ratio |
|
656 @note It is specified as a fraction of |
|
657 (x) horizontal pixel size divided by vertical (y) pixel size. |
|
658 The pixel aspect ratio for square pixels is 1/1. |
|
659 */ |
|
660 enum TPixelAspectRatio |
|
661 { |
|
662 /** Pixel ratio undetermined */ |
|
663 EPixelAspectUnknown = 0x00, |
|
664 /** Pixel Ratio 1:1. */ |
|
665 EPixelAspect1To1 = 0x01, |
|
666 /** Pixel Ratio 12:11 */ |
|
667 EPixelAspect12To11 = 0x02, |
|
668 /** Pixel Ratio 11:10. */ |
|
669 EEPixelAspect11To10 = 0x04, |
|
670 /** Pixel Ratio 59:54. */ |
|
671 EEPixelAspect59To54 = 0x08, |
|
672 /** Pixel Ratio 16:11. |
|
673 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() |
|
674 */ |
|
675 EEPixelAspect16To11 = 0x10, |
|
676 /** Pixel Ratio 10:11. |
|
677 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() |
|
678 */ |
|
679 EEPixelAspect10To11 = 0x20, |
|
680 /** Pixel Ratio 40:33. |
|
681 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() |
|
682 */ |
|
683 EEPixelAspect40To33 = 0x40 |
|
684 }; |
|
685 |
|
686 /** Specifies YUV colour space dynamic range. |
|
687 @note video compressors often use narrower than the default range. |
|
688 The nominal Y range is [16:235] and the U and V ranges [16:240]. |
|
689 */ |
|
690 enum TYuvRange |
|
691 { |
|
692 /** Yuv range undetermined */ |
|
693 EYuvRangeUnknown = 0x00, |
|
694 /** Yuv Full Range. The nominal Y,U and V colours range is [0:255]. */ |
|
695 EYuvRangeFull = 0x01, |
|
696 /** Yuv Cropped Range. The nominal Y range is [16:235] and the U and V ranges [16:240]. */ |
|
697 EYuvRangeVideoCropped = 0x02 |
|
698 }; |
|
699 |
|
700 /** Specifies the units supported by the camera for manual white balance setting. |
|
701 */ |
|
702 enum TWBUnits |
|
703 { |
|
704 /** The units type is undetermined or not supported. */ |
|
705 EWBUnknown, |
|
706 /** The white balance is represented as temperature degrees in Kelvin. */ |
|
707 EWBColorTemperature, |
|
708 /** The white balance is represented as RGB triples. */ |
|
709 EWBRgb |
|
710 }; |
|
711 |
|
712 /** |
|
713 Specifies the ISO type supported by the camera. ISO refers to the sensivity of the |
|
714 image sensor and is one of the factors influencing the exposure. |
|
715 |
|
716 */ |
|
717 enum TISORateType |
|
718 { |
|
719 /** ISO Not supported. Camera uses a fixed ISO rate internally and never reveals this information. */ |
|
720 EISONone = 0x00, |
|
721 /** 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. */ |
|
722 EISOManual = 0x01, |
|
723 /** Camera chooses the ISO on its own without prioritising any particular exposure parameters. */ |
|
724 EISOAutoUnPrioritised = 0x02, |
|
725 /** Camera chooses the ISO on its own by prioritising ISO. */ |
|
726 EISOAutoISOPrioritised = 0x04, |
|
727 /** Camera chooses the ISO on its own after prioritising shutter speed. */ |
|
728 EISOAutoShutterSpeedPrioritised = 0x08, |
|
729 /** Camera chooses the ISO on its own after prioritising aperture opening. */ |
|
730 EISOAutoAperturePrioritised = 0x10 |
|
731 }; |
|
732 |
|
733 /** |
|
734 Specifies the unfavourable circumstances as pre capture warnings which may be issued before image/video capture. |
|
735 |
|
736 */ |
|
737 enum TPreCaptureWarning |
|
738 { |
|
739 /** No warnings */ |
|
740 EPCWNone = 0x0000, |
|
741 /** warning to indicate that camera sensor is over exposed */ |
|
742 EPCWOverExposure = 0x0001, |
|
743 /** warning to indicate that camera sensor is under exposed */ |
|
744 EPCWUnderExposure = 0x0002, |
|
745 /** warning to indicate that camera operates under insufficient lightning conditions */ |
|
746 EPCWLowLight = 0x0004, |
|
747 /** warning to indicate that focussing is not optimum. This is valid for manual/fixed focus only */ |
|
748 EPCWBadFocus = 0x0008, |
|
749 /** warning to indicate that camera might not be firmly gripped (Tripod required). This is same as long exposure */ |
|
750 EPCWHandShakePossible = 0x0010, |
|
751 /** warning to indicate that camera has not enough power to survive the flash operations (battery discharged) */ |
|
752 EPCWNotEnoughPowerForFlash = 0x0020, |
|
753 /** warning to indicate that the current white balance is not the desired one */ |
|
754 EPCWWrongWhiteBalanceValue = 0x0040, |
|
755 /** warning to indicate that the current flash value is not the desired one */ |
|
756 EPCWWrongFlashValue = 0x0080, |
|
757 /** warning to indicate that the current digital zoom value is not the desired one */ |
|
758 EPCWWrongDigiZoomValue = 0x0100, |
|
759 /** warning to indicate that the desired digital zoom affects the quality of image */ |
|
760 EPCWDigiZoomBadQuality = 0x0200, |
|
761 /** warning to indicate that flash is not ready. Recommendation: user may subscribe for this warning or issue |
|
762 IsFlashReady() also. Using both options is not encouraged */ |
|
763 EPCWFlashNotReady = 0x0400, |
|
764 /** unknown reason */ |
|
765 EPCWGeneralWarning = 0x0800, |
|
766 /** warning to indicate that flash has been overheated. |
|
767 |
|
768 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() |
|
769 |
|
770 @publishedPartner |
|
771 @prototype |
|
772 */ |
|
773 EPCWFlashOverheated = 0x1000, |
|
774 /** warning to indicate that flash will not be fired because of enough ambient light. |
|
775 |
|
776 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() |
|
777 |
|
778 @publishedPartner |
|
779 @prototype |
|
780 */ |
|
781 EPCWFlashNotNeeded = 0x2000 |
|
782 }; |
|
783 |
|
784 /** |
|
785 Describes the camera mode. |
|
786 |
|
787 */ |
|
788 enum TCameraMode |
|
789 { |
|
790 /** Camera is Idle */ |
|
791 EModeIdle = 0x00, |
|
792 /** DSA based Viewfinder runs */ |
|
793 EModeDSAViewFinder = 0x01, |
|
794 /** Client based Viewfinder runs */ |
|
795 EModeClientViewFinder = 0x02 |
|
796 }; |
|
797 |
|
798 /** |
|
799 Specifies the different types of auto focus assistant light |
|
800 */ |
|
801 enum TAFAssistantLight |
|
802 { |
|
803 /** switch off the AF assistant light from either of 'manual on' or 'auto' mode */ |
|
804 EAFAssistantLightOff = 0x00, |
|
805 /** switch on the AF assistant light manually */ |
|
806 EAFAssistantLightManualOn = 0x01, |
|
807 /** Put the AF assistant light in auto mode. It will be automatically decided when to switch on or off. */ |
|
808 EAFAssistantLightAuto = 0x02 |
|
809 }; |
|
810 |
|
811 /** |
|
812 Specifies the different types of continuous zoom supported. |
|
813 The enumeration list may be extended in future. |
|
814 |
|
815 @publishedPartner |
|
816 @prototype |
|
817 */ |
|
818 enum TContinuousZoomType |
|
819 { |
|
820 /** Continuous zoom not supported */ |
|
821 EContinuousZoomNotSupported = 0x00, |
|
822 /** Continuous zoom 'Optical' only, No 'Digital' */ |
|
823 EContinuousZoomOpticalOnly = 0x01, |
|
824 /** Continuous zoom 'Optical' and 'Digital' */ |
|
825 EContinuousZoomMixed = 0x02, |
|
826 /** Continuous zoom 'Digital' only, No 'Optical' */ |
|
827 EContinuousZoomDigitalOnly = 0x04 |
|
828 }; |
|
829 |
|
830 /** |
|
831 Specifies the zoom direction for continuous zoom operation. |
|
832 The enumeration list may be extended in future. |
|
833 |
|
834 @publishedPartner |
|
835 @prototype |
|
836 */ |
|
837 enum TZoomDirection |
|
838 { |
|
839 /** Implies that feature not supported. */ |
|
840 EZoomDirectionNone =0x00, |
|
841 /** Implies zooming out. */ |
|
842 EZoomDirectionWide =0x01, |
|
843 /** Implies zooming in. */ |
|
844 EZoomDirectionTele =0x02 |
|
845 }; |
|
846 |
|
847 /** |
|
848 Different levels for performance vectors like speed, quality, low memory consumption and low power consumption. |
|
849 The enumeration list may be extended in future. |
|
850 |
|
851 @publishedPartner |
|
852 @prototype |
|
853 */ |
|
854 enum TPerformanceLevel |
|
855 { |
|
856 /** High level preference. */ |
|
857 ELevelHigh = 1, |
|
858 /** Medium level preference. */ |
|
859 ELevelMedium = 2, |
|
860 /** Low level preference. */ |
|
861 ELevelLow = 3, |
|
862 /** Dont care (No preference). */ |
|
863 ELevelDontCare = 4 |
|
864 }; |
|
865 |
|
866 /** |
|
867 Specifies flicker removal options. |
|
868 The enumeration list may be extended in future. |
|
869 |
|
870 @internalTechnology |
|
871 */ |
|
872 enum TFlickerRemoval |
|
873 { |
|
874 /** Not Supported. */ |
|
875 EFlickerRemovalNone = 0x00, |
|
876 /** Flicker removal for Field frequency of 50Hz. */ |
|
877 EFlickerRemoval50Hz = 0x01, |
|
878 /** Flicker removal for Field frequency of 60Hz. */ |
|
879 EFlickerRemoval60Hz = 0x02, |
|
880 /** Auto flicker removal. */ |
|
881 EFlickerRemovalAuto = 0x04, |
|
882 /** Switch Off flicker removal. */ |
|
883 EFlickerRemovalSwitchOff = 0x08 |
|
884 }; |
|
885 |
|
886 /** |
|
887 Specifes the type of neutral density filters available. |
|
888 The enumeration list may be extended in future. |
|
889 |
|
890 @internalTechnology |
|
891 */ |
|
892 enum TNDFilter |
|
893 { |
|
894 /** Not Supported. */ |
|
895 ENDFilterNone = 0x00, |
|
896 /** Auto ND Filter. */ |
|
897 ENDFilterAuto = 0x01, |
|
898 /** Switched off ND Filter. */ |
|
899 ENDFilterSwitchedOff = 0x02, |
|
900 /** High level ND Filter. */ |
|
901 ENDFilterHigh = 0x04, |
|
902 /** Medium level ND Filter. */ |
|
903 ENDFilterMedium = 0x08, |
|
904 /** Low level ND Filter. */ |
|
905 ENDFilterLow = 0x10, |
|
906 /** General ND Filter. */ |
|
907 ENDFilterGeneral = 0x20 |
|
908 }; |
|
909 |
|
910 /** |
|
911 Specifies the various events for which the LED effects could be used. |
|
912 The enumeration list may be extended in future. |
|
913 |
|
914 @internalTechnology |
|
915 */ |
|
916 enum TLEDEvent |
|
917 { |
|
918 /** Not supported. */ |
|
919 ELEDEventNone = 0x00, |
|
920 /** LED effect needed for self timer. */ |
|
921 ELEDEventSelfTimer = 0x01, |
|
922 /** LED effect needed for starting of viewfinder. */ |
|
923 ELEDEventViewfinderStart = 0x02, |
|
924 /** LED effect needed for stoping of viewfinder. */ |
|
925 ELEDEventViewfinderStop = 0x04, |
|
926 /** LED effect needed for still image capture. */ |
|
927 ELEDEventStillImageCapture = 0x08, |
|
928 /** LED effect needed for video recording. */ |
|
929 ELEDEventVideoRecording = 0x10 |
|
930 }; |
|
931 |
|
932 /** |
|
933 Specifes the type of LED effects available. |
|
934 The enumeration list may be extended in future. |
|
935 |
|
936 @internalTechnology |
|
937 */ |
|
938 enum TLEDEffect |
|
939 { |
|
940 /** Not supported. */ |
|
941 ELEDEffectNone =0x00, |
|
942 /** LED always on. */ |
|
943 ELEDEffectHardwired =0x01, |
|
944 /** LED auto. */ |
|
945 ELEDEffectAuto =0x02, |
|
946 /** LED Effect manually switched on. */ |
|
947 ELEDEffectManualSwitchOn =0x04, |
|
948 /** LED Effect switched off. */ |
|
949 ELEDEffectSwitchOff =0x08, |
|
950 /** LED Custom Effect. */ |
|
951 ELEDEffectCustom =0x10 |
|
952 }; |
|
953 |
|
954 /** |
|
955 Color channels on which manual gain can be selectively applied. |
|
956 The enumeration list may be extended in future. |
|
957 |
|
958 @internalTechnology |
|
959 */ |
|
960 enum TColorChannel |
|
961 { |
|
962 /** Red Color Channel (RGB model). */ |
|
963 EColorChannelRed, |
|
964 /** Green Color Channel (RGB model). */ |
|
965 EColorChannelGreen, |
|
966 /** Blue Color Channel (RGB model). */ |
|
967 EColorChannelBlue, |
|
968 /** Luminance Y component (YUV model). */ |
|
969 EChannelLumaY, |
|
970 /** Chrominance U component (YUV model). */ |
|
971 EChannelChromaU, |
|
972 /** Chrominance V component (YUV model). */ |
|
973 EChannelChromaV |
|
974 }; |
|
975 |
|
976 /** |
|
977 Class used to provide a particular custom LED effect. |
|
978 |
|
979 @internalTechnology |
|
980 */ |
|
981 class TECamLEDSpecialEffectStep |
|
982 { |
|
983 public: |
|
984 TECamLEDSpecialEffectStep(); |
|
985 |
|
986 TUint Size() const; |
|
987 TUint Version() const; |
|
988 |
|
989 private: |
|
990 //for future expansion |
|
991 TUint iSize:24; |
|
992 TUint iVersion:8; |
|
993 |
|
994 // reserved for future expansion. |
|
995 TInt iReserved1; |
|
996 TInt iReserved2; |
|
997 TInt iReserved3; |
|
998 |
|
999 public: |
|
1000 /** Blinking frequency of LED in Hertz. */ |
|
1001 TUint iBlinkingFrequency; |
|
1002 /** Represents the intensity of LED in millicandela. */ |
|
1003 TUint iIntensity; |
|
1004 /** Frequency step with which the blinking frequency changes with time. May be positive as well as negative. */ |
|
1005 TInt iFrequencyStep; |
|
1006 /** Time duration for which the particular LED special effect step would be valid. */ |
|
1007 TTimeIntervalMicroSeconds32 iDuration; |
|
1008 }; |
|
1009 |
|
1010 |
|
1011 public: |
|
1012 |
|
1013 IMPORT_C static CCameraAdvancedSettings* NewL(CCamera& aCamera); |
|
1014 |
|
1015 IMPORT_C TCameraType CameraType() const; |
|
1016 |
|
1017 IMPORT_C TCameraType CameraType(TInt aCameraIndex); |
|
1018 |
|
1019 IMPORT_C TBool IsCameraPresent() const; |
|
1020 |
|
1021 IMPORT_C TBool IsCameraPresent(TInt aCameraIndex); |
|
1022 |
|
1023 IMPORT_C TInt CameraIndex() const; |
|
1024 |
|
1025 IMPORT_C TInt SupportedStabilizationModes() const; |
|
1026 |
|
1027 IMPORT_C TStabilizationMode StabilizationMode() const; |
|
1028 |
|
1029 IMPORT_C void SetStabilizationMode(TStabilizationMode aStabilizationMode); |
|
1030 |
|
1031 IMPORT_C TInt SupportedFocusModes() const; |
|
1032 |
|
1033 IMPORT_C TFocusMode FocusMode() const; |
|
1034 |
|
1035 IMPORT_C void SetFocusMode(TFocusMode aFocusMode); |
|
1036 |
|
1037 IMPORT_C TInt SupportedFocusRanges() const; |
|
1038 |
|
1039 IMPORT_C TFocusRange FocusRange() const; |
|
1040 |
|
1041 IMPORT_C void SetFocusRange(TFocusRange aFocusRange); |
|
1042 |
|
1043 IMPORT_C TInt SupportedAutoFocusTypes() const; |
|
1044 |
|
1045 IMPORT_C TAutoFocusType AutoFocusType() const; |
|
1046 |
|
1047 IMPORT_C void SetAutoFocusType(TAutoFocusType aAutoFocusType); |
|
1048 |
|
1049 IMPORT_C TInt SupportedAutoFocusAreas() const; |
|
1050 |
|
1051 IMPORT_C TAutoFocusArea AutoFocusArea() const; |
|
1052 |
|
1053 IMPORT_C void SetAutoFocusArea(TAutoFocusArea aAutoFocusArea); |
|
1054 |
|
1055 IMPORT_C TInt FocusDistance() const; |
|
1056 |
|
1057 IMPORT_C void SetFocusDistance(TInt aDistance); |
|
1058 |
|
1059 IMPORT_C TInt GetMinFocalLength() const; |
|
1060 |
|
1061 IMPORT_C void GetSupportedIsoRatesL(RArray<TInt>& aSupportedIsoRates) const; |
|
1062 |
|
1063 IMPORT_C TInt IsoRate() const; |
|
1064 |
|
1065 IMPORT_C void SetIsoRate(TInt aRate); |
|
1066 |
|
1067 IMPORT_C void GetAperturesL(RArray<TInt>& aFStops, TValueInfo& aInfo) const; |
|
1068 |
|
1069 IMPORT_C TInt Aperture() const; |
|
1070 |
|
1071 IMPORT_C void SetAperture(TInt aFStop); |
|
1072 |
|
1073 IMPORT_C void GetShutterSpeedsL(RArray<TInt>& aShutterSpeeds, TValueInfo& aInfo) const; |
|
1074 |
|
1075 IMPORT_C TInt ShutterSpeed() const; |
|
1076 |
|
1077 IMPORT_C void SetShutterSpeed(TInt aShutterSpeed); |
|
1078 |
|
1079 IMPORT_C TInt SupportedMeteringModes() const; |
|
1080 |
|
1081 IMPORT_C TMeteringMode MeteringMode() const; |
|
1082 |
|
1083 IMPORT_C void SetMeteringMode(TMeteringMode aMeteringMode); |
|
1084 |
|
1085 IMPORT_C TInt SupportedDriveModes() const; |
|
1086 |
|
1087 IMPORT_C TDriveMode DriveMode() const; |
|
1088 |
|
1089 IMPORT_C void SetDriveMode(TDriveMode aDriveMode); |
|
1090 |
|
1091 IMPORT_C TInt SupportedBracketModes() const; |
|
1092 |
|
1093 IMPORT_C TBracketMode BracketMode() const; |
|
1094 |
|
1095 IMPORT_C void SetBracketMode(TBracketMode aBracketMode); |
|
1096 |
|
1097 IMPORT_C TInt SupportedBracketParameters() const; |
|
1098 |
|
1099 IMPORT_C TBracketParameter BracketParameter() const; |
|
1100 |
|
1101 IMPORT_C void SetBracketParameter(TBracketParameter aBracketParameter); |
|
1102 |
|
1103 IMPORT_C TInt SupportedBracketSteps() const; |
|
1104 |
|
1105 IMPORT_C TBracketStep BracketStep() const; |
|
1106 |
|
1107 IMPORT_C void SetBracketStep(TBracketStep aBracketStep); |
|
1108 |
|
1109 IMPORT_C void GetBracketMerge(TInt& aStartIndex, TInt& aFrames) const; |
|
1110 |
|
1111 IMPORT_C void SetBracketMerge(TInt aStartIndex, TInt aFrames); |
|
1112 |
|
1113 IMPORT_C TInt SupportedFlashModes() const; |
|
1114 |
|
1115 IMPORT_C CCamera::TFlash FlashMode() const; |
|
1116 |
|
1117 IMPORT_C void SetFlashMode(CCamera::TFlash aMode); |
|
1118 |
|
1119 IMPORT_C TBool RedEyeReduceOn() const; |
|
1120 |
|
1121 IMPORT_C void SetRedEyeReduceOn(TBool aState); |
|
1122 |
|
1123 IMPORT_C void GetFlashCompensationStepsL(RArray<TInt>& aFlashCompensationSteps, TValueInfo& aInfo) const; |
|
1124 |
|
1125 IMPORT_C TInt FlashCompensationStep() const; |
|
1126 |
|
1127 IMPORT_C TInt GetFlashCompensationStep(TInt& aFlashCompensationStep) const; |
|
1128 |
|
1129 IMPORT_C void SetFlashCompensationStep(TInt aFlashCompensationStep); |
|
1130 |
|
1131 IMPORT_C void GetFlashCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const; |
|
1132 |
|
1133 IMPORT_C TInt FlashCompensation() const; |
|
1134 |
|
1135 IMPORT_C TInt GetFlashCompensation(TInt& aFlashCompensation) const; |
|
1136 |
|
1137 IMPORT_C void SetFlashCompensation(TInt aFlashCompensationInSteps); |
|
1138 |
|
1139 IMPORT_C TBool IsExternalFlashPresent() const; |
|
1140 |
|
1141 IMPORT_C void GetManualFlashPowerLevelsL(RArray<TInt>& aManualFlashPowerLevels, TValueInfo& aInfo) const; |
|
1142 |
|
1143 IMPORT_C TInt ManualFlashPowerLevel() const; |
|
1144 |
|
1145 IMPORT_C void SetManualFlashPowerLevel(TInt aManualFlashPowerLevel); |
|
1146 |
|
1147 IMPORT_C TInt SupportedExposureModes() const; |
|
1148 |
|
1149 IMPORT_C CCamera::TExposure ExposureMode() const; |
|
1150 |
|
1151 IMPORT_C void SetExposureMode(CCamera::TExposure aExposureMode); |
|
1152 |
|
1153 IMPORT_C void GetExposureCompensationStepsL(RArray<TInt>& aExposureCompensationSteps, TValueInfo& aInfo) const; |
|
1154 |
|
1155 IMPORT_C TInt ExposureCompensationStep() const; |
|
1156 |
|
1157 IMPORT_C TInt GetExposureCompensationStep(TInt& aExposureCompensationStep) const; |
|
1158 |
|
1159 IMPORT_C void SetExposureCompensationStep(TInt aExposureCompensationStep); |
|
1160 |
|
1161 IMPORT_C void GetExposureCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const; |
|
1162 |
|
1163 IMPORT_C TInt ExposureCompensation() const; |
|
1164 |
|
1165 IMPORT_C TInt GetExposureCompensation(TInt& aExposureCompensation) const; |
|
1166 |
|
1167 IMPORT_C void SetExposureCompensation(TInt aExposureCompensationInSteps); |
|
1168 |
|
1169 IMPORT_C TInt SupportedWhiteBalanceModes() const; |
|
1170 |
|
1171 IMPORT_C CCamera::TWhiteBalance WhiteBalanceMode() const; |
|
1172 |
|
1173 IMPORT_C void SetWhiteBalanceMode(CCamera::TWhiteBalance aWhiteBalanceMode); |
|
1174 |
|
1175 IMPORT_C TBool ApertureExposureLockOn() const; |
|
1176 |
|
1177 IMPORT_C void SetApertureExposureLockOn(TBool aAELock); |
|
1178 |
|
1179 IMPORT_C TBool ShootClickOn() const; |
|
1180 |
|
1181 IMPORT_C void SetShootClickOn(TBool aShootClickOn); |
|
1182 |
|
1183 IMPORT_C void GetTimerIntervalsL(RArray<TInt>& aTimerIntervals, TValueInfo& aInfo) const; |
|
1184 |
|
1185 IMPORT_C TInt TimerInterval() const; |
|
1186 |
|
1187 IMPORT_C void SetTimerInterval(TInt aTimerInterval); |
|
1188 |
|
1189 IMPORT_C void GetTimeLapsePeriodRange(TTime& aTimeLapseMin, TTime& aTimeLapseMax) const; |
|
1190 |
|
1191 IMPORT_C void GetTimeLapse(TTime& aStart, TTime& aEnd, TTime& aInterval) const; |
|
1192 |
|
1193 IMPORT_C void SetTimeLapse(const TTime& aStart, const TTime& aEnd, const TTime& aInterval); |
|
1194 |
|
1195 IMPORT_C TPictureOrientation PictureOrientation() const; |
|
1196 |
|
1197 IMPORT_C void SetPictureOrientation(TPictureOrientation aOrientation); |
|
1198 |
|
1199 IMPORT_C TInt SupportedPixelAspectRatios() const; |
|
1200 |
|
1201 IMPORT_C TPixelAspectRatio PixelAspectRatio() const; |
|
1202 |
|
1203 IMPORT_C void SetPixelAspectRatio(TPixelAspectRatio aPixelAspectRatio); |
|
1204 |
|
1205 IMPORT_C TInt SupportedYuvRanges() const; |
|
1206 |
|
1207 IMPORT_C TYuvRange YuvRange() const; |
|
1208 |
|
1209 IMPORT_C void SetYuvRange(TYuvRange aYuvRange); |
|
1210 |
|
1211 IMPORT_C TInt BurstImages() const; |
|
1212 |
|
1213 IMPORT_C void SetBurstImages(TInt aImages); |
|
1214 |
|
1215 IMPORT_C void GetOpticalZoomStepsL(RArray<TInt>& aOpticalZoomSteps, TValueInfo& aInfo) const; |
|
1216 |
|
1217 IMPORT_C TInt OpticalZoom() const; |
|
1218 |
|
1219 IMPORT_C void SetOpticalZoom(TInt aOpticalZoom); |
|
1220 |
|
1221 IMPORT_C void GetDigitalZoomStepsL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo) const; |
|
1222 |
|
1223 IMPORT_C TInt DigitalZoom() const; |
|
1224 |
|
1225 IMPORT_C void SetDigitalZoom(TInt aDigitalZoom); |
|
1226 |
|
1227 IMPORT_C TBool ExposureLockOn() const; |
|
1228 |
|
1229 IMPORT_C void SetExposureLockOn(TBool aState); |
|
1230 |
|
1231 IMPORT_C TBool AutoFocusLockOn() const; |
|
1232 |
|
1233 IMPORT_C void SetAutoFocusLockOn(TBool aState); |
|
1234 |
|
1235 IMPORT_C void GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
1236 |
|
1237 IMPORT_C void GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
1238 |
|
1239 IMPORT_C void GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
1240 |
|
1241 IMPORT_C TBool AutomaticSizeSelectionChangeOn() const; |
|
1242 |
|
1243 IMPORT_C void SetAutomaticSizeSelectionChangeOn(TBool aSetOn); |
|
1244 |
|
1245 IMPORT_C void GetSupportedContinuousAutoFocusTimeoutsL(RArray<TInt>& aTimeouts, TValueInfo& aInfo) const; |
|
1246 |
|
1247 IMPORT_C TInt ContinuousAutoFocusTimeout() const; |
|
1248 |
|
1249 IMPORT_C void SetContinuousAutoFocusTimeout(TInt aTimeout); |
|
1250 |
|
1251 IMPORT_C TInt SupportedStabilizationEffects() const; |
|
1252 |
|
1253 IMPORT_C TStabilizationEffect StabilizationEffect() const; |
|
1254 |
|
1255 IMPORT_C void SetStabilizationEffect(TStabilizationEffect aEffect); |
|
1256 |
|
1257 IMPORT_C TInt SupportedStabilizationComplexityValues() const; |
|
1258 |
|
1259 IMPORT_C TStabilizationAlgorithmComplexity StabilizationComplexity() const; |
|
1260 |
|
1261 IMPORT_C void SetStabilizationComplexity(TStabilizationAlgorithmComplexity aComplexity); |
|
1262 |
|
1263 IMPORT_C TWBUnits SupportedWBUnits() const; |
|
1264 |
|
1265 IMPORT_C void GetWBRgbValue(TRgb& aValue) const; |
|
1266 |
|
1267 IMPORT_C void SetWBRgbValue(const TRgb& aValue); |
|
1268 |
|
1269 IMPORT_C void GetWBSupportedColorTemperaturesL(RArray<TInt>& aWBColorTemperatures, TValueInfo& aInfo) const; |
|
1270 |
|
1271 IMPORT_C TInt WBColorTemperature() const; |
|
1272 |
|
1273 IMPORT_C void SetWBColorTemperature(TInt aWBColorTemperature); |
|
1274 |
|
1275 IMPORT_C ~CCameraAdvancedSettings(); |
|
1276 |
|
1277 IMPORT_C TInt IsFlashReady(TBool& aReady) const; |
|
1278 |
|
1279 IMPORT_C void GetCurrentFocusModeStepsL(RArray<TInt>& aFocusModeSteps, TValueInfo& aInfo) const; |
|
1280 |
|
1281 IMPORT_C void GetSupportedISORateTypeL(TInt& aSupportedISORateTypes) const; |
|
1282 |
|
1283 IMPORT_C void SetISORateL(TISORateType aISORateType, TInt aParam); |
|
1284 |
|
1285 IMPORT_C void GetISORateL(TISORateType& aISORateType, TInt& aParam, TInt& aISORate) const; |
|
1286 |
|
1287 IMPORT_C void SetReferenceScreenL(CWsScreenDevice& aScreenDevice); |
|
1288 |
|
1289 IMPORT_C void GetDigitalZoomStepsForStillL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aSizeIndex, |
|
1290 CCamera::TFormat aFormat, TBool& aIsInfluencePossible) const; |
|
1291 |
|
1292 IMPORT_C void GetDigitalZoomStepsForVideoL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aFrameRateIndex, |
|
1293 TInt aSizeIndex, CCamera::TFormat aFormat, TBool& aIsInfluencePossible, CCamera::TExposure aExposure) const; |
|
1294 |
|
1295 IMPORT_C void GetPreCaptureWarningSupportedL(TCameraMode aCameraMode, TInt& aPreCaptureWarningSupported) const; |
|
1296 |
|
1297 IMPORT_C void SubscribeToPreCaptureWarningL(TInt aPreCaptureWarning); |
|
1298 |
|
1299 IMPORT_C void UnSubscribePreCaptureWarningL(); |
|
1300 |
|
1301 IMPORT_C void GetPreCaptureWarningL(TInt& aPreCaptureWarning) const; |
|
1302 |
|
1303 IMPORT_C void GetSupportedAFAssistantLightL(TInt& aSupportedAFAssistantLight) const; |
|
1304 |
|
1305 IMPORT_C void GetAFAssistantLightL(TAFAssistantLight& aAFAssistantLight) const; |
|
1306 |
|
1307 IMPORT_C void SetAFAssistantLightL(TAFAssistantLight aAFAssistantLight); |
|
1308 |
|
1309 IMPORT_C void GetSupportedContinuousZoomTypeL(TUint& aSupportedContinuousZoomType) const; |
|
1310 |
|
1311 IMPORT_C void StartContinuousZoomL(TContinuousZoomType aContinuousZoomType, TZoomDirection aZoomDirection); |
|
1312 |
|
1313 IMPORT_C void StopContinuousZoom(); |
|
1314 |
|
1315 IMPORT_C void GetFocalLengthInfoL(TInt& aMinFocalLength, TInt& aCurrentFocalLength, TInt& aMaxFocalLength) const; |
|
1316 |
|
1317 IMPORT_C void GetNumOperationPreferenceL(TUint& aNumOperationPreferenceSupported) const; |
|
1318 |
|
1319 IMPORT_C void EnumerateOperationPreferenceL(TUint aOperationPreferenceIndex, TPerformanceLevel& aSpeedLevel, |
|
1320 TPerformanceLevel& aQualityLevel, TPerformanceLevel& aLowMemoryConsumptionLevel, |
|
1321 TPerformanceLevel& aLowPowerConsumptionLevel) const; |
|
1322 |
|
1323 IMPORT_C void SetOperationPreferenceL(TUint aOperationPreferenceIndex); |
|
1324 |
|
1325 IMPORT_C void GetOperationPreferenceL(TInt& aOperationPreferenceIndex) const; |
|
1326 |
|
1327 IMPORT_C void GetSupportedEventsL(RArray<TUid>& aSupportedEvents) const; |
|
1328 |
|
1329 IMPORT_C void GetIndirectFeatureChangesL(TUid aRequestedSetting, RArray<TUid>& aIndirectFeatureChanges) const; |
|
1330 |
|
1331 private: |
|
1332 IMPORT_C CCameraAdvancedSettings(CCamera& aOwner); |
|
1333 IMPORT_C void ConstructL(); |
|
1334 |
|
1335 private: |
|
1336 void RegisterEventsL(TECAMEventFilterScheme aEventFilter, const RArray<TUid>& aEvents); |
|
1337 void GetRegisterEventsL(TECAMEventFilterScheme aEventFilter, RArray<TUid>& aEvents, TValueInfo& aInfo) const; |
|
1338 |
|
1339 void GetSupportedFlickerRemovalValueL(TUint& aSupportedFlickerRemovalValue) const; |
|
1340 void GetFlickerRemovalValueL(TFlickerRemoval& aFlickerRemovalValue) const; |
|
1341 void SetFlickerRemovalValueL(TFlickerRemoval aFlickerRemovalValue); |
|
1342 |
|
1343 void GetSupportedNDFilterL(TUint& aSupportedNDFilter) const; |
|
1344 void GetNDFilterL(TNDFilter& aNDFilter) const; |
|
1345 void SetNDFilterL(TNDFilter aNDFilter); |
|
1346 |
|
1347 void GetLEDEffectL(TLEDEvent aLEDEvent, TLEDEffect& aLEDEffect) const; |
|
1348 void SetLEDEffectL(TLEDEvent aLEDEvent, TLEDEffect aLEDEffect); |
|
1349 void SetLEDCustomEffectL(TLEDEvent aLEDEvent, const RArray<TECamLEDSpecialEffectStep>& aLEDSpecialEffectSteps); |
|
1350 |
|
1351 void ReserveL(const TTimeIntervalMicroSeconds32& aMaxTimeToWait, TBool aKickOut); |
|
1352 void SetClientPriorityL(TInt aPriority); |
|
1353 void RestoreClientPriorityL(); |
|
1354 |
|
1355 void GetSupportedManualGainL(RArray<TInt>& aSupportedManualGain, TColorChannel aColorChannel) const; |
|
1356 void GetManualGainL(TInt& aManualGain, TColorChannel aColorChannel) const; |
|
1357 void SetManualGainL(TInt aManualGain, TColorChannel aColorChannel); |
|
1358 |
|
1359 void SetWhiteBalanceLockL(TBool aEnableLock); |
|
1360 void GetWhiteBalanceLockStateL(TBool& aIsLocked) const; |
|
1361 |
|
1362 void EnableStateSavingL(RWriteStream& aLatestCameraState); |
|
1363 void DisableStateSavingL(); |
|
1364 void RestoreLatestStateL(RReadStream& aLatestCameraState); |
|
1365 void SaveCameraStateL(RWriteStream& aCustomCameraState); |
|
1366 void DisableCameraStateSavingL(RWriteStream& aCustomCameraState); |
|
1367 void RestoreCameraStateL(RReadStream& aCustomCameraState); |
|
1368 |
|
1369 private: |
|
1370 CCamera& iOwner; |
|
1371 MCameraAdvancedSettings* iImpl; // not owned |
|
1372 MCameraAdvancedSettings2* iImpl2; // not owned |
|
1373 |
|
1374 MCameraAdvancedSettings3* iImpl3; // not owned |
|
1375 |
|
1376 MCameraAdvancedSettings4* iImpl4; // not owned |
|
1377 }; |
|
1378 |
|
1379 /** |
|
1380 Supported presets with the assumption for scope and outcome |
|
1381 */ |
|
1382 |
|
1383 /** Default settings */ |
|
1384 static const TUid KUidECamPresetFactoryDefault = {KUidECamPresetFactoryDefaultUidValue}; |
|
1385 /** Daytime shot with normal exposure time, one shot autofocus, |
|
1386 medium ISO rating and no flash. */ |
|
1387 static const TUid KUidECamPresetOutdoor = {KUidECamPresetOutdoorUidValue}; |
|
1388 /** Daytime shot with short exposure time, continuous autofocus, |
|
1389 high Iso rating and no flash. */ |
|
1390 static const TUid KUidECamPresetOutdoorSport = {KUidECamPresetOutdoorSportUidValue}; |
|
1391 /** Daytime shot with very short exposure time, high shutter speed, |
|
1392 high Iso rating and no flash. */ |
|
1393 static const TUid KUidECamPresetSnow = {KUidECamPresetSnowUidValue}; |
|
1394 /** Daytime shot with very short exposure time, high shutter speed, |
|
1395 high contrast, reflections and no flash. */ |
|
1396 static const TUid KUidECamPresetBeach = {KUidECamPresetBeachUidValue}; |
|
1397 /** Night time shot with long central exposure time and high flash power. */ |
|
1398 static const TUid KUidECamPresetNightPortrait = {KUidECamPresetNightPortraitUidValue}; |
|
1399 /** Night time shot with long exposure time and no flash. */ |
|
1400 static const TUid KUidECamPresetNightFireworks = {KUidECamPresetNightFireworksUidValue}; |
|
1401 /** Daytime shot with medium exposure time, medium to high Iso rating, |
|
1402 overcast daylight, low contrast, fill-in flash. */ |
|
1403 static const TUid KUidECamPresetFog = {KUidECamPresetFogUidValue}; |
|
1404 /** Fluorescent lightning with medium exposure time, |
|
1405 medium to low shutter speed with flash. */ |
|
1406 static const TUid KUidECamPresetIndoor = {KUidECamPresetIndoorUidValue}; |
|
1407 /** Fluorescent lightning with continuous autofocus, wide aperture, |
|
1408 high Iso rating with flash. */ |
|
1409 static const TUid KUidECamPresetIndoorSport = {KUidECamPresetIndoorSportUidValue}; |
|
1410 /** |
|
1411 Used in low light situations. Tries to capture all the photons from a low light scene. |
|
1412 The image may be processed longer to achieve this. This case may cause blurring, but that could be a |
|
1413 wanted effect. |
|
1414 |
|
1415 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1416 CCamera::NewDuplicate2L(). |
|
1417 |
|
1418 */ |
|
1419 static const TUid KUidECamPresetNightPartyIndoor = {KUidECamPresetNightPartyIndoorUidValue}; |
|
1420 /** |
|
1421 Used to capture images of things which can't be seen by eye. |
|
1422 For example: snowflakes, underwater photography, small insect photos |
|
1423 |
|
1424 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1425 CCamera::NewDuplicate2L(). |
|
1426 |
|
1427 */ |
|
1428 static const TUid KUidECamPresetNightCloseUp = {KUidECamPresetNightCloseUpUidValue}; |
|
1429 /** |
|
1430 Used for revealing assumed details. For example: business card photos, small written text photos, |
|
1431 underwater photography, insect photos. |
|
1432 |
|
1433 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1434 CCamera::NewDuplicate2L(). |
|
1435 |
|
1436 */ |
|
1437 static const TUid KUidECamPresetNightMacro = {KUidECamPresetNightMacroUidValue}; |
|
1438 /** |
|
1439 Used for taking clear pictures of text or drawings. Also used to capture business cards or of a whiteboard. |
|
1440 Aim is to optimise text and drawing readability and user expectation of "white" paper. |
|
1441 Camera shake may reduce quality in case no flash available or not adequate(distance too much from subject). |
|
1442 |
|
1443 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1444 CCamera::NewDuplicate2L(). |
|
1445 |
|
1446 */ |
|
1447 static const TUid KUidECamPresetTextDocument = {KUidECamPresetTextDocumentUidValue}; |
|
1448 /** |
|
1449 Used for providing clear pictures of barcode. Aim is to convert barcode into some form which can be easily decoded. |
|
1450 Camera shake may reduce this barcode readability and hence, barcode conversion accuracy and reliability. |
|
1451 |
|
1452 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1453 CCamera::NewDuplicate2L(). |
|
1454 |
|
1455 */ |
|
1456 static const TUid KUidECamPresetBarcode = {KUidECamPresetBarcodeUidValue}; |
|
1457 /** |
|
1458 Used when factory default preset in certain cases may not be available or is too restrictive. |
|
1459 Automatic preset expects the hardware to use automatic detection for most of the features. |
|
1460 |
|
1461 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1462 CCamera::NewDuplicate2L(). |
|
1463 |
|
1464 */ |
|
1465 static const TUid KUidECamPresetAuto = {KUidECamPresetAutoUidValue}; |
|
1466 /** |
|
1467 Used for portraits of human subjects in good lighting conditions. Focuses on the people and captures natural |
|
1468 skin tones. Background details may not be softened. |
|
1469 |
|
1470 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1471 CCamera::NewDuplicate2L(). |
|
1472 |
|
1473 */ |
|
1474 static const TUid KUidECamPresetPortrait = {KUidECamPresetPortraitUidValue}; |
|
1475 /** |
|
1476 Used for sharp landscape shots with clear outlines, colours and contrast, for example forest, sky. |
|
1477 The main aim is to get the details of the scene. |
|
1478 |
|
1479 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1480 CCamera::NewDuplicate2L(). |
|
1481 |
|
1482 */ |
|
1483 static const TUid KUidECamPresetLandscape = {KUidECamPresetLandscapeUidValue}; |
|
1484 /** |
|
1485 Used to retain the ambience/mood produced by, for example, warm lighting conditions like sunset, candlelight etc. |
|
1486 |
|
1487 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1488 CCamera::NewDuplicate2L(). |
|
1489 |
|
1490 */ |
|
1491 static const TUid KUidECamPresetAmbienceMood = {KUidECamPresetAmbienceMoodUidValue}; |
|
1492 /** |
|
1493 Used to for video telephony. |
|
1494 |
|
1495 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1496 CCamera::NewDuplicate2L(). |
|
1497 |
|
1498 @publishedPartner |
|
1499 @prototype |
|
1500 */ |
|
1501 static const TUid KUidECamPresetVideoTelephony = {KUidECamPresetVideoTelephonyUidValue}; |
|
1502 |
|
1503 /** |
|
1504 Used to clarify that camera is not under any preset mode. Possible scenario: client sets camera in a particular preset |
|
1505 mode and then makes some setting changes on top of it. Then theoretically camera is out of that preset. Hence, |
|
1506 KUidECamPresetNone will be used in such cases. |
|
1507 |
|
1508 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
|
1509 CCamera::NewDuplicate2L(). |
|
1510 |
|
1511 @publishedPartner |
|
1512 @prototype |
|
1513 */ |
|
1514 static const TUid KUidECamPresetNone = {KUidECamPresetNoneUidValue}; |
|
1515 |
|
1516 /** Notifications related to presets */ |
|
1517 /** |
|
1518 Used to notify clients about possible range restrictions, when camera works under a particular preset mode. |
|
1519 This is not a particular preset uid. |
|
1520 |
|
1521 @note Call CCamera::CCameraPresets::GetRangeRestrictedSettingsL(RArray<TUid>& aRangeRestrictedSettings) to retrieve |
|
1522 the list of settings whose range have been restricted. |
|
1523 |
|
1524 @publishedPartner |
|
1525 @prototype |
|
1526 */ |
|
1527 static const TUid KUidECamEventRangeRestricted = {KUidECamEventRangeRestrictedUidValue}; |
|
1528 |
|
1529 /** |
|
1530 Used to notify clients about possible feature restrictions, when camera works under a particular preset mode. |
|
1531 This is not a particular preset uid. |
|
1532 |
|
1533 @note Call CCamera::CCameraPresets::GetFeatureRestrictedSettingsL(RArray<TUid>& aFeatureRestrictedSettings) to retrieve |
|
1534 the list of settings which have been restricted. |
|
1535 |
|
1536 @publishedPartner |
|
1537 @prototype |
|
1538 */ |
|
1539 static const TUid KUidECamEventFeatureRestricted = {KUidECamEventFeatureRestrictedUidValue}; |
|
1540 |
|
1541 /** |
|
1542 Used to notify clients that locking of the preset operation has completed, when camera works under a particular preset mode. |
|
1543 This is not a particular preset uid. |
|
1544 |
|
1545 @publishedPartner |
|
1546 @prototype |
|
1547 */ |
|
1548 static const TUid KUidECamEventPresetLocked = {KUidECamEventPresetLockedUidValue}; |
|
1549 |
|
1550 /** |
|
1551 Used to notify clients that unlocking of the preset operation has completed, when camera works under a particular preset mode. |
|
1552 This is not a particular preset uid. |
|
1553 |
|
1554 @publishedPartner |
|
1555 @prototype |
|
1556 */ |
|
1557 static const TUid KUidECamEventPresetUnlocked = {KUidECamEventPresetUnlockedUidValue}; |
|
1558 |
|
1559 |
|
1560 /** |
|
1561 This API is used to simplify user - camera interaction by allowing simultaneous |
|
1562 setting of various advanced camera hardware settings using a single parameter. |
|
1563 |
|
1564 Preset is identified by a single UID and relates to a known predefined outcome. |
|
1565 For example the 'Night' Preset will be used to set the camera into a night mode |
|
1566 so that the user can take night photos. |
|
1567 |
|
1568 The particular set of settings associated with the specific preset and their specific values |
|
1569 and ranges are camera hardware specific and outside the scope of this API. |
|
1570 |
|
1571 @note This class is not intended for sub-classing and used to standardise existing |
|
1572 varieties of implementations. |
|
1573 |
|
1574 @note If the class methods leave, the output type parameter value is not guaranteed to be valid. |
|
1575 |
|
1576 @publishedAll |
|
1577 @released |
|
1578 */ |
|
1579 class CCamera::CCameraPresets : public CBase |
|
1580 { |
|
1581 /** allow access to private constructors. */ |
|
1582 friend class CCamera; |
|
1583 |
|
1584 public: |
|
1585 |
|
1586 IMPORT_C static CCameraPresets* NewL(CCamera& aCamera); |
|
1587 |
|
1588 IMPORT_C void GetSupportedPresetsL(RArray<TUid>& aPresets) const; |
|
1589 |
|
1590 IMPORT_C void SetPreset(TUid aPreset); |
|
1591 |
|
1592 IMPORT_C TUid Preset() const; |
|
1593 |
|
1594 IMPORT_C void GetAffectedSettingsL(RArray<TUid>& aSettings) const; |
|
1595 |
|
1596 IMPORT_C void GetAssociatedSettingsL(TUid aPreset, RArray<TUid>& aSettings) const; |
|
1597 |
|
1598 IMPORT_C ~CCameraPresets(); |
|
1599 |
|
1600 IMPORT_C void GetRangeRestrictedSettingsL(RArray<TUid>& aRangeRestrictedSettings) const; |
|
1601 |
|
1602 IMPORT_C void GetFeatureRestrictedSettingsL(RArray<TUid>& aFeatureRestrictedSettings) const; |
|
1603 |
|
1604 IMPORT_C void IsPresetUnlockSupportedL(TBool& aUnlockSupported) const; |
|
1605 |
|
1606 IMPORT_C void LockPresetL(); |
|
1607 |
|
1608 IMPORT_C void UnlockPresetL(); |
|
1609 |
|
1610 private: |
|
1611 IMPORT_C CCameraPresets(CCamera& aOwner); |
|
1612 IMPORT_C void ConstructL(); |
|
1613 |
|
1614 void FilterUnrecognisedUids(RArray<TUid>& aUids, const TInt aBaselineUid) const; |
|
1615 |
|
1616 private: |
|
1617 CCamera& iOwner; |
|
1618 MCameraPresets* iImpl; // not owned |
|
1619 MCameraPresets2* iImpl2; // not owned |
|
1620 }; |
|
1621 |
|
1622 #endif // ECAMADVSETTINGS_H |