Symbian3/PDK/Source/GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Tue, 30 Mar 2010 11:56:28 +0100
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
permissions -rw-r--r--
Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     6
<!-- Initial Contributors:
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     7
    Nokia Corporation - initial contribution.
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     8
Contributors: 
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
     9
-->
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    10
<!DOCTYPE concept
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
f345bda72bc4 Week 12 contribution of PDK documentation_content. See release notes for details. Fixes Bug 2054, Bug 1583, Bug 381, Bug 390, Bug 463, Bug 1897, Bug 344, Bug 1319, Bug 394, Bug 1520, Bug 1522, Bug 1892"
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents: 3
diff changeset
    12
<concept xml:lang="en" id="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E"><title>Advanced Camera Settings</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This tutorial gives you information about Advanced Camera Settings. </p> <section><title>Purpose</title> <p>The purpose of this tutorial is to provide detailed descriptions of various advanced settings of Camera. </p> <p><b>Introduction</b> </p> <p>Every individual camera setting is identified by a UID to facilitate integration in the camera messaging mechanism. Each change of a parameter value causes an event notification containing the UID of the setting to be sent to all <codeph>MCameraObserver2</codeph> clients of the camera. If additional information is required, clients would use the related getter function to identify the new value of the setting. Some settings may have a dependency on others. In this respect a particular setting value may disable a related supported setting. </p> </section> <section><title>Using Advanced Camera Settings </title> <p>The Following tasks will be covered in this tutorial: </p> <ul><li id="GUID-B729949E-B77E-5905-B72D-FF56B1E58495"><p>Creating the <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita"><apiname>CCameraAdvancedSettings</apiname></xref> object </p> </li> <li id="GUID-A6EEAB43-E51E-546E-8BFF-BFBCDF318677"><p>Setting Camera Details </p> </li> <li id="GUID-8D716D56-9143-5695-A25B-E493C6D8B850"><p>Operating in stabilization mode </p> </li> <li id="GUID-0283EFB5-6B41-55DA-AE6A-7475DDD03AB6"><p>Operating in Flash Mode </p> </li> <li id="GUID-00389D42-E64A-50A4-92D9-1A9E25A9C385"><p>Operating in Focus Mode. </p> </li> </ul> <p><b>Basic Procedure for Creating the Advance Settings Object</b> </p> <p>The high level steps to perform specific advance settings are shown here: </p> <ul><li id="GUID-AD1B9FE6-5BD8-52D4-8D56-BE622B34B216"><p>Create the <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita"><apiname>CCameraAdvancedSettings</apiname></xref> object. </p> </li> <li id="GUID-FE4DDF73-35E5-5B1E-896B-FC22D6E5E277"><p>Provide a reference to a <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref> object. This returns a pointer to a fully constructed <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita"><apiname>CCameraAdvancedSettings</apiname></xref> object. </p> <p> <codeph>CCamera::CCameraAdvancedSettings*
1
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    13
                  CCamera::CCameraAdvancedSettings::NewL</codeph>. </p> <p> <b>Note</b>: Creation of <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita"><apiname>CCameraAdvancedSettings</apiname></xref> also involves creation of the corresponding M classes; <xref href="GUID-8B30B504-513B-387D-9389-4C26DCEE8372.dita"><apiname>MCameraAdvancedSettings</apiname></xref>, <xref href="GUID-6CC4140E-1061-31E9-B477-089B1342A8A5.dita"><apiname>MCameraAdvancedSettings2</apiname></xref>, <xref href="GUID-73E02E93-8618-37F9-AA4E-13D53BF60609.dita"><apiname>MCameraAdvancedSettings3</apiname></xref> and <xref href="GUID-1E82B9DC-C853-335C-BE03-B2FD4D917CB9.dita"><apiname>MCameraAdvancedSettings4</apiname></xref> derived classes. Licensee provide concrete implementation for these M classes. <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita"><apiname>CCameraAdvancedSettings</apiname></xref> is a facade which forwards the setting calls to respective M classes methods. </p> </li> </ul> <p> </p> <p> <b>Note</b>: Clients using <xref href="GUID-F2DC0AB8-A896-3F7A-BBED-848A3F463853.dita"><apiname>MCameraObserver</apiname></xref> are not recommended to use this extension class, since they cannot handle events. </p> <p><b>Basic Procedure for Setting Camera Details</b> </p> <p>The high level steps to set Camera details are shown here: </p> <ul><li id="GUID-DB312A12-D840-5032-8A0F-4DD74A67EA41"><p>Get the information about the type of the Camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-6C99156B-A23F-32C8-AA84-F7005EDEBD3E"><apiname>CCamera::CCameraAdvancedSettings::TCameraType</apiname></xref>. </p> </li> <li id="GUID-32F54779-C4EC-56A2-A168-3083F1207078"><p>Check whether the current camera is present using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-9FDAFDB4-1F00-3F6E-8285-C7DF3BCF9A0D"><apiname>CCamera::CCameraAdvancedSettings::IsCameraPresent()</apiname></xref>. </p> </li> <li id="GUID-62959E45-6CF1-551D-B5DC-4C831B6CE6AC"><p>Get the unique index of the current camera that identifies the camera on the device using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-709070F9-C1C0-3A1B-933F-E06C98264CD8"><apiname>CCamera::CCameraAdvancedSettings::CameraIndex().</apiname></xref>. </p> </li> </ul> <p><b>Basic Procedure for operating in Stabilization Mode</b> </p> <p>The high level steps to set Camera in stabilization mode are shown here: </p> <ul><li id="GUID-654F95E4-3CB0-5217-B567-5CDA68545BD0"><p>Get all the supported stabilization modes on the camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-374DE9A9-8523-3CE7-B276-903C09905CE5"><apiname>CCamera::CCameraAdvancedSettings::SupportedStabilizationModes()</apiname></xref>. </p> </li> <li id="GUID-DAD7736E-7C86-57C2-8A2A-4718CE41E4D2"><p>Get current stabilization mode on the camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-7F60B6AD-F188-3437-B6C5-38F5AAE0465D"><apiname>CCamera::CCameraAdvancedSettings::StabilizationMode()</apiname></xref>. </p> </li> <li id="GUID-70DF64DC-FCC9-5EEE-A9CD-71F3B808B231"><p>Set a specific stabilization mode on the camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-4E16E533-067E-3090-A407-59FCE1BD7E38"><apiname>CCamera::CCameraAdvancedSettings::SetStabilizationMode()</apiname></xref>. </p> <p>The client receives the notifications of the settings asynchronously through <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita#GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F/GUID-AA5629D4-6228-3EAE-86DB-CE8A735557B0"><apiname>MCameraObserver2::HandleEvent()</apiname></xref> with UID <xref href="GUID-CD67A688-8E6C-3774-AE34-6F2CAFD30733.dita"><apiname>KUidECamEventCameraSettingStabilizationMode</apiname></xref>. </p> <p> <b>Note</b>: <xref href="GUID-8B30B504-513B-387D-9389-4C26DCEE8372.dita#GUID-8B30B504-513B-387D-9389-4C26DCEE8372/GUID-62E8BCC8-76CB-3FF4-A1BF-B322F35F9002"><apiname>MCameraAdvancedSettings::SetStabilizationMode()</apiname></xref> concrete implementation implements the actual setting of stabilization mode. </p> </li> </ul> <p><b>Basic Procedure for operating in Flash Mode</b> </p> <p>The high level steps to set Camera in flash mode are shown here: </p> <ul><li id="GUID-89535F4F-162C-5CBA-873F-BF6C8768CC71"><p>Get the list of supported flash mode using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-34EC67ED-9810-30F6-B6A9-4F106DE4C2AD"><apiname>CCamera::CCameraAdvancedSettings::SupportedFlashModes()</apiname></xref> method and get the current flash mode using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-C6CF3333-C7D8-3A8F-B6B0-097E99E387BC"><apiname>CCamera::CCameraAdvancedSettings::FlashMode()</apiname></xref> method. </p> </li> <li id="GUID-FACB7B1D-D328-5FEA-A8E3-FCB538B93E7F"><p>Set the flash mode using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-13227745-5E7B-33F3-A785-16676B37D52E"><apiname>CCamera::CCameraAdvancedSettings::SetFlashMode()</apiname></xref>. This triggers a <xref href="GUID-F5771285-A08F-3CBE-8F3F-83CFD2E13ED1.dita"><apiname>KUidECamEventCameraSettingFlashMode</apiname></xref> event to all camera <xref href="GUID-09C6DDB6-A208-3C81-9F54-697D4865D99F.dita"><apiname>MCameraObserver2</apiname></xref> clients. </p> </li> <li id="GUID-9983601E-5A55-5CDB-98E1-8A2198DB0A81"><p>Check if the flash red eye reduction is switched on using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-CFCBE1CC-97ED-31D2-965C-BDCB2F5CAB9F"><apiname>CCamera::CCameraAdvancedSettings::RedEyeReduceOn()</apiname></xref>. It returns <i>ETrue</i> for switched ON and <i>EFalse</i> for switched OFF at current state. </p> <p>Red Eye Reduce is a special mode of flash that can be set in two ways: </p> <ul><li id="GUID-C37A7F7F-6473-5920-82F0-A771E71BD5D0"><p> <codeph>CCamera::CCameraAdvancedSettings::SetFlashMode(CCamera::EFlashRedEyeReduce)</codeph> </p> </li> <li id="GUID-4696BEB7-A5F3-571D-9592-0778FC06316F"><p> <codeph>CCamera::CCameraAdvancedSettings::SetRedEyeReduceOn(ETrue)</codeph> </p> </li> </ul> <p>This allows the client to set two flashes simultaneously. In such scenario, if <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-C6CF3333-C7D8-3A8F-B6B0-097E99E387BC"><apiname>CCamera::CCameraAdvancedSettings::FlashMode()</apiname></xref> is used, the flash mode set using <xref href="GUID-0926A429-8151-36D2-83D3-C63245A50006.dita"><apiname>SetFlashMode()</apiname></xref> is retrieved. </p> </li> <li id="GUID-E6B7C1E1-B269-5150-A482-D7DF3BBCD80F"><p>Set the flash type as listed under <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-36ED3D9F-B246-3CCC-8BDB-53141F8FB423"><apiname>CCamera::Tflash</apiname></xref> to <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-30D25AA3-2885-3702-AF8C-62ED42202014"><apiname>CCamera::EFlashVideoLight</apiname></xref> to have constant emission of light during video mode. </p> </li> <li id="GUID-E0E8A4C4-1F7A-5506-A2D1-E75D5435DF1B"><p>Use <xref href="GUID-E2D461B6-9373-31B2-95C8-EB929C7B1E6A.dita"><apiname>EPCWFlashOverheated</apiname></xref> method to indicate that flash is overheated. </p> </li> <li id="GUID-C79BC6D4-B087-542C-8159-2CBD916B3B60"><p>Use <xref href="GUID-76B142E7-C617-3521-9C44-B0D1FA7BECBB.dita"><apiname>EPCWFlashNotNeeded</apiname></xref> method to indicate that flash cannot be used because of enough ambient light. </p> </li> </ul> <p>When the clients subscribe for PreCaptureWarnings, concrete implementation issues PreCaptureWarnings. <xref href="GUID-1D6F9085-1DAD-3B43-B496-6C43A83EF5CF.dita"><apiname>SubscribeToPreCaptureWarningL</apiname></xref> is one such method that is used for subscription. </p> <p>Subsequent to subscription, if Ecam adaptation identifies any unfavourable conditions prior to image or video capture, it issues the event <xref href="GUID-AAF5EF91-7192-3ED8-B15A-64E0C167EB45.dita"><apiname>KUidECamEventCameraSettingPreCaptureWarning</apiname></xref>. <xref href="GUID-6A60F684-76BF-3001-ABB8-E6A8DB32663B.dita"><apiname>TECAMEvent2</apiname></xref> class should be used to provide the status of every PreCaptureWarning. </p> </section> <section><title>See also</title> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Overview</xref> for the advanced settings of Camera </p> <p><xref href="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita">Advanced Settings for Focus, Drive Modes, and Bracket Modes</xref>  </p> </section> </conbody></concept>