28 #include <ecamadvsettingsuids.hrh> |
26 #include <ecamadvsettingsuids.hrh> |
29 #include <gdi.h> |
27 #include <gdi.h> |
30 #include <s32strm.h> |
28 #include <s32strm.h> |
31 #include <ecam/ecamconstants.h> |
29 #include <ecam/ecamconstants.h> |
32 #include <ecamimageprocessing.h> |
30 #include <ecamimageprocessing.h> |
|
31 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS |
|
32 #include <ecamadvsettingsconst.h> |
|
33 #include <ecamadvsettingsdef.h> |
|
34 #endif |
33 |
35 |
34 class MCameraPresets; |
36 class MCameraPresets; |
35 class MCameraAdvancedSettings; |
37 class MCameraAdvancedSettings; |
36 class MCameraAdvancedSettings2; |
38 class MCameraAdvancedSettings2; |
37 class MCameraAdvancedSettings3; |
39 class MCameraAdvancedSettings3; |
38 class MCameraAdvancedSettings4; |
40 class MCameraAdvancedSettings4; |
39 class MCameraPresets2; |
41 class MCameraPresets2; |
|
42 class MCameraContinuousZoom; |
40 |
43 |
41 /* General purpose constants */ |
44 /* General purpose constants */ |
42 |
45 |
43 /** |
46 |
44 The current Version of the TECamLEDSpecialEffectStep class. |
47 /** |
45 |
|
46 @internalTechnology |
|
47 */ |
|
48 static const TUint KECamLEDSpecialEffectStepCurrentVersion = 1; |
|
49 |
|
50 /** |
|
51 UID used to identify the CCamera Advanced Settings API. |
48 UID used to identify the CCamera Advanced Settings API. |
52 This API is used to control specific individual advanced settings of camera hardware. |
49 This API is used to control specific individual advanced settings of camera hardware. |
53 These settings directly relate to the image acquisition phase. |
50 These settings directly relate to the image acquisition phase. |
54 |
51 |
55 @see CCamera::CCameraAdvancedSettings |
52 @see CCamera::CCameraAdvancedSettings |
56 */ |
53 */ |
57 static const TUid KECamAdvancedSettingUid = {KECamAdvancedSettingUidValue}; |
54 static const TUid KECamAdvancedSettingUid = {KECamAdvancedSettingUidValue}; |
58 |
55 |
59 /** |
56 /** |
60 UID used to identify the CCamera Presets API. |
57 UID used to identify the CCamera Presets API. |
61 This API is used to simplify user - camera interaction by allowing simultaneous |
58 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. |
59 setting of various advanced camera hardware settings using a single predefined parameter. |
63 @see CCamera::CCameraPresets |
60 @see CCamera::CCameraPresets |
64 */ |
61 */ |
65 static const TUid KECamPresetsUid = {KECamPresetsUidValue}; |
62 static const TUid KECamPresetsUid = {KECamPresetsUidValue}; |
66 |
63 |
67 |
|
68 /** All clients receive these events, irrespective of camera index. */ |
64 /** All clients receive these events, irrespective of camera index. */ |
69 /** Camera slots in for 8 cameras. */ |
65 /** Camera slots in for 8 cameras. */ |
70 /** Camera with index 0 Plugged-in */ |
66 /** Camera with index 0 Plugged-in */ |
71 static const TUid KUidECamEventGlobalCamera00PluggedIn = {KUidECamEventGlobalCamera00PluggedInUidValue}; |
67 static const TUid KUidECamEventGlobalCamera00PluggedIn = {KUidECamEventGlobalCamera00PluggedInUidValue}; |
72 /** Camera with index 1 Plugged-in */ |
68 /** Camera with index 1 Plugged-in */ |
298 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
294 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
299 |
295 |
300 */ |
296 */ |
301 static const TUid KUidECamEventCameraSettingAFAssistantLight = {KUidECamEventCameraSettingAFAssistantLightUidValue}; |
297 static const TUid KUidECamEventCameraSettingAFAssistantLight = {KUidECamEventCameraSettingAFAssistantLightUidValue}; |
302 |
298 |
303 /** |
299 |
304 Notifies the client that continuous zoom limit has been reached. |
300 |
305 |
301 class CCameraContinuousZoom; |
306 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
302 /** |
307 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
303 A mixin class to be implemented by the client in order to use the Continuous Zoom API. The callbacks are invoked by the implementation |
308 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
304 whenever the continuous zoom operations are ready to be notified. |
309 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
305 |
310 |
306 @see CCameraContinuousZoom |
311 @publishedPartner |
307 |
|
308 @internalTechnology |
312 @prototype |
309 @prototype |
313 */ |
310 */ |
314 static const TUid KUidECamEventCameraSettingContinuousZoomReachedLimit = {KUidECamEventCameraSettingContinuousZoomReachedLimitUidValue}; |
311 class MContinuousZoomObserver |
315 |
312 { |
316 /** |
313 public: |
317 Notifies the client about the setting of performance operation preference. |
314 |
318 |
315 /** |
319 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
316 This callback is sent when a new zoom factor is achieved. Client may not receive a callback for every new zoom factor as it is up |
320 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
317 to the implementation to choose the zoom factors for which it will issue this callback. Should an error occur, this implies that the |
321 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
318 continuous zoom operation has been stopped. |
322 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
319 |
323 |
320 @param aContinuousZoomHandle |
324 @publishedPartner |
321 Reference to CCameraContinuousZoom class object which was used to start the continuous zoom operation. |
325 @prototype |
322 |
326 */ |
323 @param aZoomFactor |
327 static const TUid KUidECamEventCameraSettingOperationPreference = {KUidECamEventCameraSettingOperationPreferenceUidValue}; |
324 The new zoom factor value, multiplied by KECamFineResolutionFactor, which has been achieved. |
328 |
325 |
329 /** |
326 @param aError |
330 Notifies the client that the flicker removal value has been set. |
327 Appropriate error code. |
331 |
328 */ |
332 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
329 virtual void ContinuousZoomProgress(CCamera::CCameraContinuousZoom& aContinuousZoomHandle, TInt aZoomFactor, TInt aError)=0; |
333 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
330 |
334 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
331 /** |
335 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
332 Implementation sends this callback when the Continuous Zoom operation has been completed. This callback will be sent when |
336 |
333 target zoom factor is achieved. This zoom factor may in some cases be less than the target zoom factor due to the complexity |
337 @internalTechnology |
334 of the continuous zoom operation. Once this callback is received, client need not issue StopContinuousZoom() and can call |
338 */ |
335 StartContinuousZoom() again. |
339 static const TUid KUidECamEventCameraSettingFlickerRemovalValue = {KUidECamEventCameraSettingFlickerRemovalValueUidValue}; |
336 |
340 |
337 @param aContinuousZoomHandle |
341 /** |
338 Reference to CCameraContinuousZoom class object which was used to start the continuous zoom operation. |
342 Notifies the client about the setting of neutral density filter. |
339 |
343 |
340 @param aFinalZoomFactor |
344 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
341 The final zoom factor value once the continuous zoom operation has completed. This zoom factor may in some cases be |
345 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
342 less than the target zoom factor due to the complexity of the continuous zoom operation. |
346 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
343 |
347 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
344 @param aErrorCode |
348 |
345 Appropriate error code. |
349 @internalTechnology |
346 */ |
350 */ |
347 virtual void ContinuousZoomCompleted(CCamera::CCameraContinuousZoom& aContinuousZoomHandle, TInt aFinalZoomFactor, TInt aError)=0; |
351 static const TUid KUidECamEventCameraSettingNDFilter = {KUidECamEventCameraSettingNDFilterUidValue}; |
348 |
352 |
349 /** |
353 /** |
350 Gets a custom interface for future callbacks. This method will be called by the implementation to get a new interface |
354 Notifies the client about the setting of LED effect. |
351 which would support future callbacks. |
355 |
352 |
356 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
353 @param aInterface |
357 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
354 The Uid of the particular interface function required for callbacks. |
358 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
355 |
359 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
356 @param aPtrInterface |
360 |
357 The implementation has to type-cast the retrieved custom interface pointer to the appropriate type. |
361 @internalTechnology |
358 |
362 */ |
359 @return The error code. |
363 static const TUid KUidECamEventCameraSettingLEDEffect = {KUidECamEventCameraSettingLEDEffectUidValue}; |
360 */ |
364 |
361 virtual TInt CustomInterface(TUid aInterface, TAny*& aPtrInterface)=0; |
365 /** |
362 }; |
366 Notifies the client about the setting of LED 'custom' effect. |
363 |
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 |
364 |
401 /** |
365 /** |
402 CCamera advanced settings class exposes an API for controlling individually |
366 CCamera advanced settings class exposes an API for controlling individually |
403 digital camera advanced settings. These settings directly relate to the |
367 digital camera advanced settings. These settings directly relate to the |
404 image acquisition phase both for still images and video. |
368 image acquisition phase both for still images and video. |
564 /** Specifies the drive mode for the camera. This determines how and in what sucession are images |
528 /** Specifies the drive mode for the camera. This determines how and in what sucession are images |
565 shot. EDriveModeSingleShot is the default.*/ |
529 shot. EDriveModeSingleShot is the default.*/ |
566 enum TDriveMode |
530 enum TDriveMode |
567 { |
531 { |
568 /** Automatic. Default */ |
532 /** Automatic. Default */ |
569 EDriveModeAuto = 0x0000, |
533 EDriveModeAuto = 0x0000, |
570 /** Camera takes a single image/shot. */ |
534 /** Camera takes a single image/shot. */ |
571 EDriveModeSingleShot = 0x0001, |
535 EDriveModeSingleShot = 0x0001, |
572 /** Camera continuously captures images (as fast as it can) until stopped or out of storage medium. */ |
536 /** Camera continuously captures images (as fast as it can) until stopped or out of storage medium. */ |
573 EDriveModeContinuous = 0x0002, |
537 EDriveModeContinuous = 0x0002, |
574 /** Camera is in bracketing mode, producing individual frames. @see TBracketMode */ |
538 /** Camera is in bracketing mode, producing individual frames. @see TBracketMode */ |
575 EDriveModeBracket = 0x0004, |
539 EDriveModeBracket = 0x0004, |
576 /** Camera is in bracketing mode, but producing a single image. @see TBracketMode */ |
540 /** Camera is in bracketing mode, but producing a single image. @see TBracketMode */ |
577 EDriveModeBracketMerge = 0x0008, |
541 EDriveModeBracketMerge = 0x0008, |
578 /** camera captures a single shot after specified time period. @see Timer() */ |
542 /** camera captures a single shot after specified time period. @see Timer() */ |
579 EDriveModeTimed = 0x0010, |
543 EDriveModeTimed = 0x0010, |
580 /** Camera captures a set of images with an uniform interval between them. @see TimeLapse() */ |
544 /** Camera captures a set of images with an uniform interval between them. @see TimeLapse() */ |
581 EDriveModeTimeLapse = 0x0020, |
545 EDriveModeTimeLapse = 0x0020, |
582 /** Camera captures a set of images as fast as it can, but in batches(bursts). */ |
546 /** Camera captures a set of images as fast as it can, but in batches(bursts). */ |
583 EDriveModeBurst = 0x0040 |
547 EDriveModeBurst = 0x0040, |
|
548 /** Camera captures a set of images before and after camera capture key press event. Client can specify |
|
549 the amount of pre-capture and post-capture images to be saved via TDriveModeDependentAttributes. |
|
550 The total amount of images to be saved will be pre-capture images + 1 + post-capture images. |
|
551 |
|
552 @note This drive mode is only available to clients using the CCamera::New2L() or CCamera::NewDuplicate2L() |
|
553 in addition to the new image capture APIs ie. CCameraPreImageCaptureControl, CCameraImageCapture and |
|
554 CCameraPostImageCaptureControl. |
|
555 |
|
556 @publishedPartner |
|
557 @prototype |
|
558 */ |
|
559 EDriveModeTimeNudgeCapture = 0x0080 |
584 }; |
560 }; |
585 |
561 |
586 /** Specifies Bracket mode. */ |
562 /** Specifies Bracket mode. */ |
587 enum TBracketMode |
563 enum TBracketMode |
588 { |
564 { |
1005 TInt iFrequencyStep; |
981 TInt iFrequencyStep; |
1006 /** Time duration for which the particular LED special effect step would be valid. */ |
982 /** Time duration for which the particular LED special effect step would be valid. */ |
1007 TTimeIntervalMicroSeconds32 iDuration; |
983 TTimeIntervalMicroSeconds32 iDuration; |
1008 }; |
984 }; |
1009 |
985 |
|
986 /** |
|
987 Class used to provide supported continuous zoom information. |
|
988 |
|
989 @internalTechnology |
|
990 @prototype |
|
991 */ |
|
992 class TContinuousZoomSupportInfo |
|
993 { |
|
994 public: |
|
995 IMPORT_C TContinuousZoomSupportInfo(); |
|
996 |
|
997 IMPORT_C TUint Size() const; |
|
998 IMPORT_C TUint Version() const; |
|
999 |
|
1000 private: |
|
1001 //for future expansion |
|
1002 TUint iSize:24; |
|
1003 TUint iVersion:8; |
|
1004 |
|
1005 // reserved for future expansion |
|
1006 TInt iReserved1; |
|
1007 TInt iReserved2; |
|
1008 TInt iReserved3; |
|
1009 |
|
1010 public: |
|
1011 /** Maximum continuous zoom speed supported. Minimum speed is 0. */ |
|
1012 TInt iMaxSpeedSupported; |
|
1013 /** Minimum continuous zoom acceleration supported. A negative value signifies deceleration. */ |
|
1014 TInt iMinAccelerationSupported; |
|
1015 /** Maximum continuous zoom acceleration supported. */ |
|
1016 TInt iMaxAccelerationSupported; |
|
1017 /** Minimum continuous zoom value. For digital zoom, this could be 0 unless viewfinder frames are not cropped and scaled up by default. |
|
1018 Represented as a concrete value multiplied by KECamFineResolutionFactor. */ |
|
1019 TInt iContinuousZoomMinLimit; |
|
1020 /** Maximum continuous zoom value. Represented as a concrete value multiplied by KECamFineResolutionFactor. */ |
|
1021 TInt iContinuousZoomMaxLimit; |
|
1022 }; |
|
1023 |
|
1024 /** |
|
1025 Class used to provide essential parameters for continuous zoom operation. |
|
1026 |
|
1027 @internalTechnology |
|
1028 @prototype |
|
1029 */ |
|
1030 class TContinuousZoomParameters |
|
1031 { |
|
1032 public: |
|
1033 IMPORT_C TContinuousZoomParameters(); |
|
1034 |
|
1035 IMPORT_C TUint Size() const; |
|
1036 IMPORT_C TUint Version() const; |
|
1037 |
|
1038 private: |
|
1039 //for future expansion |
|
1040 TUint iSize:24; |
|
1041 TUint iVersion:8; |
|
1042 |
|
1043 // reserved for future expansion |
|
1044 TInt iReserved1; |
|
1045 TInt iReserved2; |
|
1046 TInt iReserved3; |
|
1047 |
|
1048 public: |
|
1049 /** Type of continuous zoom to be used. */ |
|
1050 TContinuousZoomType iContinuousZoomType; |
|
1051 /** Zoom direction to be used. */ |
|
1052 TZoomDirection iZoomDirection; |
|
1053 /** Continuous zoom speed to be used. Represented as a concrete value multiplied by KECamFineResolutionFactor. */ |
|
1054 TInt iContinuousZoomSpeed; |
|
1055 /** Continuous zoom acceleration to be used. Represented as a concrete value multiplied by KECamFineResolutionFactor. */ |
|
1056 TInt iContinuousZoomAcceleration; |
|
1057 /** Limit of continuous zoom range. Represented as a concrete value multiplied by KECamFineResolutionFactor. */ |
|
1058 TInt iContinuousZoomLimit; |
|
1059 }; |
1010 |
1060 |
1011 public: |
1061 public: |
1012 |
1062 |
1013 IMPORT_C static CCameraAdvancedSettings* NewL(CCamera& aCamera); |
1063 IMPORT_C static CCameraAdvancedSettings* NewL(CCamera& aCamera); |
1014 |
1064 |
1326 |
1372 |
1327 IMPORT_C void GetSupportedEventsL(RArray<TUid>& aSupportedEvents) const; |
1373 IMPORT_C void GetSupportedEventsL(RArray<TUid>& aSupportedEvents) const; |
1328 |
1374 |
1329 IMPORT_C void GetIndirectFeatureChangesL(TUid aRequestedSetting, RArray<TUid>& aIndirectFeatureChanges) const; |
1375 IMPORT_C void GetIndirectFeatureChangesL(TUid aRequestedSetting, RArray<TUid>& aIndirectFeatureChanges) const; |
1330 |
1376 |
|
1377 IMPORT_C void CreateContinuousZoomL(MContinuousZoomObserver& aObserver, TContinuousZoomType aContinuousZoomType, CCameraContinuousZoom*& aContinuousZoom); |
|
1378 |
1331 private: |
1379 private: |
1332 IMPORT_C CCameraAdvancedSettings(CCamera& aOwner); |
1380 IMPORT_C CCameraAdvancedSettings(CCamera& aOwner); |
1333 IMPORT_C void ConstructL(); |
1381 IMPORT_C void ConstructL(); |
1334 |
1382 |
1335 private: |
1383 private: |
|
1384 enum TECAMEventFilterScheme |
|
1385 { |
|
1386 /** Black listing will mean not to receive specific events */ |
|
1387 EECAMEventFilterSchemeBlackList, |
|
1388 /** White listing will mean to receive only specific events */ |
|
1389 EECAMEventFilterSchemeWhiteList |
|
1390 }; |
|
1391 |
1336 void RegisterEventsL(TECAMEventFilterScheme aEventFilter, const RArray<TUid>& aEvents); |
1392 void RegisterEventsL(TECAMEventFilterScheme aEventFilter, const RArray<TUid>& aEvents); |
1337 void GetRegisterEventsL(TECAMEventFilterScheme aEventFilter, RArray<TUid>& aEvents, TValueInfo& aInfo) const; |
1393 void GetRegisterEventsL(TECAMEventFilterScheme aEventFilter, RArray<TUid>& aEvents, TValueInfo& aInfo) const; |
1338 |
1394 |
1339 void GetSupportedFlickerRemovalValueL(TUint& aSupportedFlickerRemovalValue) const; |
1395 void GetSupportedFlickerRemovalValueL(TUint& aSupportedFlickerRemovalValue) const; |
1340 void GetFlickerRemovalValueL(TFlickerRemoval& aFlickerRemovalValue) const; |
1396 void GetFlickerRemovalValueL(TFlickerRemoval& aFlickerRemovalValue) const; |
1487 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
1543 This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or |
1488 CCamera::NewDuplicate2L(). |
1544 CCamera::NewDuplicate2L(). |
1489 |
1545 |
1490 */ |
1546 */ |
1491 static const TUid KUidECamPresetAmbienceMood = {KUidECamPresetAmbienceMoodUidValue}; |
1547 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 |
1548 |
1560 /** |
1549 /** |
1561 This API is used to simplify user - camera interaction by allowing simultaneous |
1550 This API is used to simplify user - camera interaction by allowing simultaneous |
1562 setting of various advanced camera hardware settings using a single parameter. |
1551 setting of various advanced camera hardware settings using a single parameter. |
1563 |
1552 |
1616 private: |
1605 private: |
1617 CCamera& iOwner; |
1606 CCamera& iOwner; |
1618 MCameraPresets* iImpl; // not owned |
1607 MCameraPresets* iImpl; // not owned |
1619 MCameraPresets2* iImpl2; // not owned |
1608 MCameraPresets2* iImpl2; // not owned |
1620 }; |
1609 }; |
1621 |
1610 |
|
1611 |
|
1612 /** |
|
1613 This API is used to provide advanced continuous zoom support to the user. |
|
1614 |
|
1615 This class is not directly created by the client but instead created via |
|
1616 CCameraAdvancedSettings::CreateContinuousZoomL(). Ownership of the object |
|
1617 is passed back to the client. |
|
1618 |
|
1619 @note This class is not intended for sub-classing and used to standardise existing |
|
1620 varieties of implementations. |
|
1621 |
|
1622 @note If the class methods leave, the output type parameter value is not guaranteed to be valid. |
|
1623 |
|
1624 @internalTechnology |
|
1625 @prototype |
|
1626 */ |
|
1627 class CCamera::CCameraContinuousZoom : public CBase |
|
1628 { |
|
1629 friend void CCamera::CCameraAdvancedSettings::CreateContinuousZoomL(MContinuousZoomObserver& aObserver, TContinuousZoomType aContinuousZoomType, CCameraContinuousZoom*& aContinuousZoom); |
|
1630 |
|
1631 public: |
|
1632 IMPORT_C void StartContinuousZoomL(CCamera::CCameraAdvancedSettings::TContinuousZoomParameters aContinuousZoomParameters); |
|
1633 |
|
1634 IMPORT_C void StopContinuousZoom(); |
|
1635 |
|
1636 IMPORT_C void GetContinuousZoomSupportInfoL(CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo& aContinuousZoomInfo) const; |
|
1637 |
|
1638 IMPORT_C void GetContinuousZoomId(TInt& aZoomId) const; |
|
1639 |
|
1640 IMPORT_C ~CCameraContinuousZoom(); |
|
1641 |
|
1642 private: |
|
1643 static CCameraContinuousZoom* CreateL(MContinuousZoomObserver& aObserver, CCamera::CCameraAdvancedSettings::TContinuousZoomType aContinuousZoomType, const MImplementationFactory& aImplFactory); |
|
1644 |
|
1645 CCameraContinuousZoom(); |
|
1646 void ConstructL(MContinuousZoomObserver& aObserver, CCamera::CCameraAdvancedSettings::TContinuousZoomType aContinuousZoomType, const MImplementationFactory& aImplFactory); |
|
1647 |
|
1648 private: |
|
1649 MCameraContinuousZoom* iImpl; |
|
1650 }; |
|
1651 |
1622 #endif // ECAMADVSETTINGS_H |
1652 #endif // ECAMADVSETTINGS_H |
|
1653 |
|
1654 |
|
1655 |