MCameraAdvancedSettings3 Class Reference

class MCameraAdvancedSettings3

Mixin class for implementation by providers of 'some of the enhanced functionalities' of the Advanced Settings Camera Extension API.

Member Functions Documentation

GetAFAssistantLightL(CCamera::CCameraAdvancedSettings::TAFAssistantLight &)

voidGetAFAssistantLightL(CCamera::CCameraAdvancedSettings::TAFAssistantLight &aAFAssistantLight)const [pure virtual]

Get the type ( and state) of AF assistant light currently set.

leave
May leave with any error.

Parameters

CCamera::CCameraAdvancedSettings::TAFAssistantLight & aAFAssistantLightA reference to AF assistant light. If EAFAssistantLightOff, then manual and auto assistant light are switched off. If EAFAssistantLightManualOn, manual assistant light is switched on. If EAFAssistantLightAuto, AF assistant light is set to auto.

GetDigitalZoomStepsForStillL(RArray< TInt > &, TValueInfo &, TInt, CCamera::TFormat, TBool &)

voidGetDigitalZoomStepsForStillL(RArray< TInt > &aDigitalZoomSteps,
TValueInfo &aInfo,
TIntaSizeIndex,
CCamera::TFormataFormat,
TBool &aIsInfluencePossible
)const [pure virtual]

Get the digital zoom steps for the still image when a particular image format and size are specified.

leave
KErrNoMemory Out of memory. May leave with any other error code.
Note:

This method retrieves the supported digital zoom steps irrespective of any stabilization influence. In case of stabilization etc. influence, the setting function should set the best possible digital zoom value and return error KErrECamDigitalZoomLimited along with dedicated event.

When camera device doesn't support this feature, empty array should be returned and TValueInfo should be ENotActive, and the corresponding getter/setters for this feature should not be used.

Implementation recommendation for old methods which are used to retrieve the supported digital zoom values, is to provide only safe values suitable in every cases.

Parameters

RArray< TInt > & aDigitalZoomStepsA reference to an empty array of TInt to hold digital zoom step values for still image and multiplied by KECamFineResolutionFactor to retain precision. If list returned is empty, this means feature is not supported.
TValueInfo & aInfoA reference to TValueInfo, which establishes the type of the returned data.
TInt aSizeIndexA value providing the size index which must be in the range 0 to TCameraInfo::iNumImageSizesSupported-1 inclusive.
CCamera::TFormat aFormatA value providing the image format which must be one of the formats supported. (see TCameraInfo::iImageFormatsSupported)
TBool & aIsInfluencePossibleIf True, signals that digital zoom step values may be influenced by some hardware factor like stabilization etc. If False, no influence possible.

GetDigitalZoomStepsForVideoL(RArray< TInt > &, TValueInfo &, TInt, TInt, CCamera::TFormat, TBool &, CCamera::TExposure)

voidGetDigitalZoomStepsForVideoL(RArray< TInt > &aDigitalZoomSteps,
TValueInfo &aInfo,
TIntaFrameRateIndex,
TIntaSizeIndex,
CCamera::TFormataFormat,
TBool &aIsInfluencePossible,
CCamera::TExposureaExposure
)const [pure virtual]

Get the digital zoom steps for the video when a particular video frame format, size and rate are specified.

leave
KErrNoMemory Out of memory. May leave with any other error code.
Note:

This method retrieves the supported digital zoom steps irrespective of any stabilization influence. In case of stabilization etc. influence, the setting function should set the best possible digital zoom value and return error KErrECamDigitalZoomLimited along with dedicated event.

When camera device doesn't support this, empty array should be returned and TValueInfo should be ENotActive, and the corresponding getter/setters for this feature should not be used.

Implementation recommendation for old methods which are used to retrieve the supported digital zoom values, is to provide only safe values suitable in every cases.

Parameters

RArray< TInt > & aDigitalZoomStepsA reference to an empty array of TInt to hold digital zoom step values for video and multiplied by KECamFineResolutionFactor to retain precision. If list returned is empty, this means feature is not supported.
TValueInfo & aInfoA reference to TValueInfo, which establishes the type of the returned data.
TInt aFrameRateIndexA value providing the rate index must be in the range 0 to TCameraInfo::iNumVideoFrameRatesSupported-1 inclusive.
TInt aSizeIndexA value providing the size index which must be in the range 0 to TCameraInfo::iNumVideoFrameSizesSupported-1 inclusive.
CCamera::TFormat aFormatA value providing the format which must be one of the video frame formats supported. (see TCameraInfo::iVideoFrameFormatsSupported)
TBool & aIsInfluencePossibleIf True, signals that digital zoom step values may be influenced by some hardware factor like stabilization etc. If False, no influence possible.
CCamera::TExposure aExposureThe exposure mode.

GetISORateL(CCamera::CCameraAdvancedSettings::TISORateType &, TInt &, TInt &)

voidGetISORateL(CCamera::CCameraAdvancedSettings::TISORateType &aISORateType,
TInt &aParam,
TInt &aISORate
)const [pure virtual]

Get the type of ISO rate, exposure parameter and value set.

leave
May leave as a result of some other error.
Note:

Since camera hardware may be incapable of providing the actual ISO value when one of the auto ISO type has been set, then, in these cases, the 3rd argument should be retrieved as KErrNotFound.

Parameters

CCamera::CCameraAdvancedSettings::TISORateType & aISORateTypeA reference to the type of ISO rate set. EISONone means feature is not supported.
TInt & aParamDepending on the value of aISORateType, possible values of aParam are one of the following:- A reference to the redundant parameter in case of manual type of ISO rate(EISOManual) OR A reference to the redundant parameter in case of unprioritised type of auto ISO(EISOAutoUnPrioritised) OR A reference to the highest ISO rate that may be picked up in case of ISO prioritised type of auto ISO(EISOAutoISOPrioritised) OR A reference to the slowest shutter speed that may be picked up in case of shutter speed prioritised type of auto ISO(EISOAutoShutterSpeedPrioritised) OR A reference to the minimum aperture opening that may be picked up in case of aperture prioritised type of auto ISO(EISOAutoAperturePrioritised)
TInt & aISORateA reference to the value of ISO rate currently being used, if camera device is capable of doing that. Otherwise KErrNotFound should be retrieved indicating the incapability of camera.

GetPreCaptureWarningL(TInt &)

voidGetPreCaptureWarningL(TInt &aPreCaptureWarning)const [pure virtual]

Get the status of every warnings defined.

leave
May leave with any error.
Note:

This method may be called after receiving the event KUidECamEventCameraSettingPreCaptureWarning OR user may also opt for polling on this.

Parameters

TInt & aPreCaptureWarningA reference to the integer - bitfield representing all the TPreCaptureWarning types issued.

GetPreCaptureWarningSupportedL(CCamera::CCameraAdvancedSettings::TCameraMode, TInt &)

voidGetPreCaptureWarningSupportedL(CCamera::CCameraAdvancedSettings::TCameraModeaCameraMode,
TInt &aPreCaptureWarningSupported
)const [pure virtual]

Retrieves the pre capture warnings supported for a given camera mode

leave
May leave with any error.

Parameters

CCamera::CCameraAdvancedSettings::TCameraMode aCameraModeDesired camera mode for which the supported pre capture warnings may be retrieved.
TInt & aPreCaptureWarningSupportedA bitfield of all supported TPreCaptureWarning to be issued in the given camera mode. If no pre capture warning supported for the given camera mode, EPCWNone is retrieved.

GetSupportedAFAssistantLightL(TInt &)

voidGetSupportedAFAssistantLightL(TInt &aSupportedAFAssistantLight)const [pure virtual]

Retrieve the different supported AF assistant light.

leave
May leave with any error.

Parameters

TInt & aSupportedAFAssistantLightA reference to integer - bitfield indicating the supported AF assistant light. If EAFAssistantLightOff, this means AF assistant light is not supported. If EAFAssistantLightManualOn, then manual AF assistant light is supported. If EAFAssistantLightAuto, auto assistant light is supported. If combination of EAFAssistantLightManualOn||EAFAssistantLightAuto , then both manual and Auto assistant light are supported.

GetSupportedISORateTypeL(TInt &)

voidGetSupportedISORateTypeL(TInt &aSupportedISORateTypes)const [pure virtual]

Gets all supported ISO types on the device.

leave
May leave as a result of some error.

Parameters

TInt & aSupportedISORateTypesA reference to an integer which is a bitfield of all supported TISORateType values. EISONone means feature is not supported.

Release()

voidRelease()[pure virtual]

Releases the interface.

SetAFAssistantLight(CCamera::CCameraAdvancedSettings::TAFAssistantLight)

voidSetAFAssistantLight(CCamera::CCameraAdvancedSettings::TAFAssistantLightaAFAssistantLight)[pure virtual]

Set a particular type ( and state) of AF assistant light.

Note:

Triggers KUidECamEventCameraSettingAFAssistantLight to all MCameraObserver2 clients of the camera. Uses HandleEvent to report the result or any possible error.

Parameters

CCamera::CCameraAdvancedSettings::TAFAssistantLight aAFAssistantLightType of AF assistant light to be set. If EAFAssistantLightOff, switch off the manual or auto assistant light. If EAFAssistantLightManualOn, manually switch on the assistant light. If EAFAssistantLightAuto, camera will automatically switch it on/off as per the conditions.

SetISORate(CCamera::CCameraAdvancedSettings::TISORateType, TInt)

voidSetISORate(CCamera::CCameraAdvancedSettings::TISORateTypeaISORateType,
TIntaParam
)[pure virtual]

Set the type of ISO rate and the exposure parameter or value specified.

Note:

Triggers KUidECamEventCameraSettingIsoRateType to all MCameraObserver2 clients of the camera. Uses HandleEvent to report the result or any possible error.

Parameters

CCamera::CCameraAdvancedSettings::TISORateType aISORateTypeThe type of ISO rate to be set.
TInt aParamDepending on the value of aISORateType, possible values of aParam are one of the following:- The value of ISO rate to be used in case of manual type of ISO rate (EISOManual). OR Redundant parameter in case of unprioritised type of auto ISO (EISOAutoUnPrioritised). It is left to the camera hardware/firmware to decide how the ISO rate is selected. No priority regarding exposure is specified. OR Highest ISO rate to be picked by the camera while deciding for the best exposure in case of ISO prioritised type of auto ISO (EISOAutoISOPrioritised). ISO rate closest to this (and lower) may be used so that best possible exposure is achieved. OR Slowest shutter speed to be picked by the camera while deciding for the best exposure in case of shutter speed prioritised type of auto ISO (EISOAutoShutterSpeedPrioritised). After using this shutter speed, ISO rate is chosen by the camera to achieve proper exposure. Shutter speed closest to this (and faster) may be used so that best possible exposure is achieved. OR Minimum aperture opening (deepest depth of field) to be picked by the camera while deciding for the best exposure in case of aperture prioritised type of auto ISO (EISOAutoAperturePrioritised). After using this aperture opening, ISO rate is chosen by the camera to achieve proper exposure. Aperture opening closest to this (and wider) may be used to achieve best possible exposure.

SetReferenceScreen(CWsScreenDevice &)

voidSetReferenceScreen(CWsScreenDevice &aScreenDevice)[pure virtual]

Provide reference screen for orientation information.

Note:

For consistency, when DSA view finder runs, it also provides a screen device. So, the DSA view finder's internal implementation should call this method with the screen device passed ( 2nd argument to DSA view finder) to avoid disparity in knowing the refeence screen. Triggers KUidECamEventCameraSettingReferenceScreen to all MCameraObserver2 clients of the camera. Uses HandleEvent to report the result or any possible error.

Parameters

CWsScreenDevice & aScreenDeviceA reference to the screen device.

SubscribeToPreCaptureWarningL(TInt)

voidSubscribeToPreCaptureWarningL(TIntaPreCaptureWarning)[pure virtual]

Subscribe in order to receive event which indicates warnings on occurrence of some specific unfavourable conditions before image/video capture.

Note:

When any of the subscribed warnings (represented by aPreCaptureWarning) get generated by the camera device, event KUidECamEventCameraSettingPreCaptureWarning is issued. TECAMEvent2 class should be used in order to provide the status of every PreCaptureWarning.

leave
May leave with any error.

Parameters

TInt aPreCaptureWarningA bitfield specifying all the TPreCaptureWarning types to be subscribed for.

UnSubscribePreCaptureWarningL()

voidUnSubscribePreCaptureWarningL()[pure virtual]

Unsubscribe so that further events are not received when warnings get issued.

leave
May leave with any error.