Symbian3/SDK/Source/GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 0 89d6a7a84779
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and Bug 1522.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     6
<!-- Initial Contributors:
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     7
    Nokia Corporation - initial contribution.
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     8
Contributors: 
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     9
-->
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    10
<!DOCTYPE concept
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
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*
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
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>