This document describes about the preset support provided as part of Ecam component.
The following steps allows the clients to receive notification about possible changes in supported values and ranges, when camera operates in a particular preset mode.
Create a new UID KUidECamEventRangeRestricted to notify the clients about the possible range restrictions, when camera operates in a particular preset mode.
Use TECAMEvent class to report this event to the client.
Client gets the list of UIDs for which range has been restricted using CCamera::CCameraPresets::GetFeatureRestrictedSettingsL method.
Notify the client about the restricted features using the UID KUidECamEventFeatureRestricted invoked by ECAM implementation, when camera works in a specific preset mode.
Client retrieves the list of uids representing the settings which do not support few feature values using GetFeatureRestrictedSettingsL method. An array of TUid aFeatureRestrictedSettings, retrieves the settings for which the current preset has imposed feature value restrictions. If no restrictions have been imposed, an empty array will be returned.
Clients can retrieve information if the preset unlock feature is supported using CCamera::CCameraPresets::IsPresetUnlockSupportedL method.
Unlocking preset settings of the camera that worked in a particular preset mode earlier, helps to make changes to the settings subsequently. This can be done as follows:
ECAM implementation uses appropriate settings in the camera, to meet the specific preset requirements requested by the client, and the camera with the specific preset is in locked state.
By default, the client cannot customise this preset value, without unlocking the preset.
Unlock the preset using CCamera::CCameraPresets::UnlockPresetL(), to change the settings.
Make sure to lock the preset using CCamera::CCameraPresets::LockPresetL(), when the changes are made. This prevents further changes in settings.
Whenever client customizes the camera settings after putting the camera in a particular preset, the ECam implementation realises that the preset to be KUidECamPresetNone instead of the preset previously set by the client. So CCamera::CCameraPresets::Preset() will always retrieve KUidECamPresetNone, when client customises the actual preset settings.