This tutorial describes how to perform continuous digital zooming using the Ecam API.
For advanced camera settings, the continuous digital zooming API provides a greater control over continuous zoom by allowing you to specify the speed and acceleration of each continuous zoom operation. The minimum speed for zooming is zero and the minimum acceleration is a negative value (which means deceleration).
For continuous zooming, you need to provide a concrete implementation of MCameraContinuousZoom.
Before you start you should understand the following topics:
CCameraAdvancedSettings
. ContinuousZoomProgress()
or ContinuousZoomCompleted()
) is associated with which continuous zoom object. The following example shows you how to perform continuous digital zooming using the Ecam API:
CCamera* camera; MCameraObserver2* observer2; Camera = CCamera::New2L(*observer2, 0); CCamera::CCameraAdvancedSettings* settings = CCamera::CCameraAdvancedSettings::NewL(*camera); TUint supportedContinuousZoomType; settings->GetSupportedContinuousZoomTypeL(supportedContinuousZoomType); CCamera::CCameraAdvancedSettings::TContinuousZoomType continuousZoomType = CCamera::CCameraAdvancedSettings::EContinuousZoomMixed; MContinuousZoomObserver* continuousZoomObserver; CCamera::CCameraContinuousZoom* continuousZoom = NULL; settings->CreateContinuousZoomL(*continuousZoomObserver, continuousZoomType, continuousZoom); CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo info; continuousZoom->GetContinuousZoomSupportInfoL(info); CCamera::CCameraAdvancedSettings::TContinuousZoomParameters param; param.iContinuousZoomType = continuousZoomType; param.iContinuousZoomAcceleration = 0; param.iContinuousZoomSpeed = 1; param.iContinuousZoomLimit = 5; param.iZoomDirection = CCamera::CCameraAdvancedSettings::EZoomDirectionWide; continuousZoom->StartContinuousZoomL(param);