diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita --- a/Symbian3/SDK/Source/GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita Wed Mar 31 11:11:55 2010 +0100 +++ b/Symbian3/SDK/Source/GUID-E9E21C82-13F6-50D4-A271-F9E5F1BD982F.dita Fri Jun 11 12:39:03 2010 +0100 @@ -1,42 +1,88 @@ - - - - - -Background Processing for EcamThis topic describes how to capture an image using standalone background processing in Ecam.

Before you start you should understand the Onboard Camera Overview topic.

The Ecam API has been extended for background processing by having it as a standalone process. In order to use standalone background processing you need to implement the MCameraObserver2, MPreImageCaptureControlObserver, MCaptureImageObserver interfaces and use with the CCamera API.

To prepare image capturing using the CCamera API call CCameraPreImageCaptureControl::GetSupportedProcessingOptionsL(Tint&) to get support for processing specified by TECamProcessingTypes. pass the EECamBackgroundProcessing option instead of the SetImageProcessingOptions value within the TPrepareImageParameters values to the required processing option specified in TECamProcessingOptions for the background processing. call CCameraPreImageCaptureControl::PrepareImageCapture(const - CCameraPreImageCaptureControl:: TPrepareImageParameters&, - MCaptureImageObserver&) to perform setup and allocation of memory for the image capture operation. This implementation creates a new CCameraImageCapture() object which internally implements the MCameraImageCapture() interface. If an error occurs while preparing an image, call CCameraPreImageCaptureControl::PrepareImageComplete(CCameraPreImageCaptureControl*, - TInt) to pass the aErrorCode value to CCamera. Call CCameraImageCapture::CaptureImage() to capture an image. This implements MCameraImageCapture(). Call CCameraPostImageCaptureControl::CreateL(CCameraImageCapture*, - TPostCaptureControlId) if you wish to capture another image. The CCameraPostImageCaptureControl object from the previous capture is preserved. This callback function creates a CCameraPostImageCaptureControl object for every individual image captured. Call MCaptureImageObserver::IndividualImageControlHandle(CCameraImageCapture&, - TPostCaptureControlId) to destroy the individual captured image. Call CCameraPostImageCaptureControl::~CCameraPostImageCaptureControl() to destroy any captured image objects created by CCameraPostImageCaptureControl::CreateL(). Call CCameraImageCapture::PauseProcessing(TUint) to pause any processing options associated with the relevant image capture function. Note: You can call PauseProcessing() for any processing options used during image capture. Call CCameraImageCapture::ResumeProcessingL(TUint) to resume any processing options associated with the relevant image capture function. Note: You can call ResumeProcessingL() for any processing options used during image capture. Call CCameraPostImageCaptureControl::GetImageStateL(TImageState&) to retrieve the image state of the individual image given by the CCameraPostImageCaptureControl object. Example

The following example shows you how to capture an image using standalone background processing in Ecam:

- -CCamera* camera; -MCameraObserver2* observer2; -camera = CCamera::New2L(*observer2, 0); -MPreImageCaptureControlObserver* preImageCaptureControlObserver; -CCamera::CCameraPreImageCaptureControl* preImgCapture = CCamera::CCameraPreImageCaptureControl::NewL(*camera, preImageCaptureControlObserver)); -TInt supportedProcessingOptions; -preImgCapture->GetSupportedProcessingOptionsL(supportedProcessingOptions); // provides supported image processing options -CCamera::CCameraPreImageCaptureControl::TPrepareImageParameters prepareImageParameters; -prepareImageParameters::iImageProcessingOptions = EECamBackgroundProcessing; -... -... -// Capture image -... -... -TUint processingOptions = EECamBackgroundProcessing; -imgCapture->PauseProcessing(processingOptions); // Pauses any background processing associated with this image capture -imgCapture->ResumeProcessingL(processingOptions); // Resumes any background processing associated with this image capture - - // Retrieve the information for any stage of captured image. -TImageState imgState; -postImgCapture->GetImageStateL(imgState); // Retrieves the stage of any processing on the current image - - -
Capturing Image
\ No newline at end of file + + + + + +Background +Processing for EcamThis topic describes how to capture an image using standalone background +processing in Ecam. +

Before you start +you should understand the Onboard +Camera Overview topic.

+

The Ecam API has +been extended for background processing by having it as a standalone process. +In order to use standalone background processing you need to implement the MCameraObserver2, MPreImageCaptureControlObserver, MCaptureImageObserver interfaces and use with the CCamera API.

+ + + To prepare image capturing +using the CCamera API + +Call CCamera::CCameraPreImageCaptureControl::GetSupportedProcessingOptionsL(TUint& +aECamProcessingOptionsSupported) const to get support for processing +specified by TECamProcessingTypes. + + +Pass the EECamBackgroundProcessing option instead of +the SetImageProcessingOptions value within the TPrepareImageParameters values +to the required processing option specified in TECamProcessingOptions for +the background processing. + + +Call CCamera::CCameraPreImageCaptureControl::PrepareImageCapture(const + CCameraPreImageCaptureControl::TPrepareImageParameters&, MCaptureImageObserver&) to +perform setup and allocation of memory for the image capture operation. This +implementation creates a new CCameraImageCapture() object +which internally implements the MCameraImageCapture() interface. +If an error occurs while preparing an image, call MPreImageCaptureControlObserver::PrepareImageComplete(CCamera::CCameraImageCapture +*,TInt) to pass the aErrorCode value to CCamera. + + + + +Call CCamera::CCameraImageCapture::CaptureImage() to +capture an image. This implements MCameraImageCapture. + + +Call CCamera::CCameraPostImageCaptureControl::CreateL(CCameraImageCapture*, + TPostCaptureControlId) if you wish to capture another +image. The CCameraPostImageCaptureControl object from the +previous capture is preserved. This callback function creates a CCameraPostImageCaptureControl object +for every individual image captured. + + +Call MCaptureImageObserver::IndividualImageControlHandle(CCamera::CCameraImageCapture +&,TPostCaptureControlId) to destroy the individual captured +image. + + +Call CCamera::CCameraPostImageCaptureControl::~CCameraPostImageCaptureControl() to +destroy any captured image objects created by CCameraPostImageCaptureControl::CreateL(). + + +Call CCamera::CCameraImageCapture::PauseProcessing(TUint) to +pause any processing options associated with the relevant image capture function. +Note: You can call PauseProcessing() for any processing +options used during image capture. + + +Call CCamera::CCameraImageCapture::ResumeProcessingL(TUint) to +resume any processing options associated with the relevant image capture function. +Note: You can call ResumeProcessingL() for any processing +options used during image capture. + + +Call CCamera::CCameraPostImageCaptureControl::GetImageStateL(TImageState +&)const to retrieve the image state of the individual +image given by the CCameraPostImageCaptureControl object. + + +
+Capturing +Still Images +
\ No newline at end of file