Symbian3/SDK/Source/GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 12:39:03 +0100
changeset 8 ae94777fff8f
parent 0 89d6a7a84779
child 13 48780e181b38
permissions -rw-r--r--
Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-6A7F8298-F3E9-513C-8C1F-D057AC62E5E3" xml:lang="en"><title>Advanced
Settings for Focus, Drive Modes, and Bracket Modes </title><shortdesc>This document provides a detailed description of various advanced
settings of Ecam component. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-B66B827F-F291-5A87-A96F-0281B5FB2722"><title>Introduction</title> <p>The
advanced settings class, <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-E31AEB11-B7A0-3637-BB31-866306F78118"><apiname>CCamera::CCameraAdvancedSettings</apiname></xref>,
provides access to common camera hardware settings related to image acquisition
for still images and video. </p> <p id="GUID-79C320F6-1B2A-5A91-AEB2-356BB7C0B160"><b>Focus
mode</b> </p> <p>The high level steps to set the Camera focus mode are shown
here: </p> <ul>
<li id="GUID-8FEE544B-043C-5A2E-8D1F-29A8336F0CA9"><p>Get the information
about the supported focus modes on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-B122389A-2B0F-3D93-BC22-0BCEB8494929"><apiname>CCamera::CCameraAdvancedSettings::SupportedFocusModes()
const</apiname></xref> method. </p> </li>
<li id="GUID-8B66ECEA-605D-55BC-BA40-679BA9CF1A96"><p>Set a specific focus
mode on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-FAC15061-9DE7-3196-969E-70C0752C9253"><apiname>CCamera::CCameraAdvancedSettings::SetFocusMode(TFocusMode
aFocusMode)</apiname></xref> method. </p> </li>
<li id="GUID-80E965EA-7C42-564E-9FE6-1B04B89359C4"><p>Get the current focus
mode on the camera using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D057397E-E483-3082-B1E1-B50CF8D3DD2B"><apiname>CCamera::CCameraAdvancedSettings::FocusMode()</apiname></xref> method. </p> <p>The
enumerated type <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-877A6E33-8F63-3EFC-8D8C-F77857457B80"><apiname>CCamera::CCameraAdvancedSettings::TFocusMode</apiname></xref> defines
four supported focus modes: </p> <table id="GUID-02C2468E-DBBF-5137-ACEB-C23FFAFBB468">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Enum Value</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusModeUnknown</codeph>  </p> </entry>
<entry><p>Focus mode is unknown </p> </entry>
</row>
<row>
<entry><p> <codeph>EStabilizationComplexityLow</codeph> </p> </entry>
<entry><p>Focus mode is automatic </p> </entry>
</row>
<row>
<entry><p> <codeph>EStabilizationComplexityMedium</codeph>  </p> </entry>
<entry><p>Focus is fixed </p> </entry>
</row>
<row>
<entry><p><codeph>EStabilizationComplexityHigh</codeph>  </p> </entry>
<entry><p>Focus is manually set </p> </entry>
</row>
</tbody>
</tgroup>
</table> </li>
</ul> <p>The following example shows how to change the focus mode: </p> <codeblock id="GUID-24781D9D-62F0-5A3A-8AE1-A3666AED78E2" xml:space="preserve">    // Assigns the focus mode to be set    
    CCamera::CCameraAdvancedSettings::TFocusMode focusMode = CCamera::CCameraAdvancedSettings::EFocusModeFixed;
    
    // Gets the supported modes
    TInt suppFocusModes = settings-&gt;SupportedFocusModes();// Checks if the focus mode is supported before setting it
    if (focusMode &amp; suppFocusModes)
        {
           // Sets the focus mode if it is supported
        settings-&gt;SetFocusMode(focusMode);
        }</codeblock> <p id="GUID-20148E50-5531-595D-AED3-BACF2F5D69A3"><b>Focus
range</b> </p> <p>Get the supported focus range using the enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AE5EC95A-7BDD-34F9-83DA-BFC79BFD38F2"><apiname>CCamera::CCameraAdvancedSettings:TFocusRange</apiname></xref>.
This defines eight supported focus ranges: </p> <table id="GUID-45890051-4539-57F0-A07E-17F4530415D3">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Enum Value</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeAuto</codeph>  </p> </entry>
<entry><p>Automatic </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeMacro</codeph>  </p> </entry>
<entry><p>Focus operates in close range </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeMacro</codeph>  </p> </entry>
<entry><p>Normal operation </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeMacro</codeph>  </p> </entry>
<entry><p>Extended (tele) operation </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangePortrait</codeph>  </p> </entry>
<entry><p>Focus at larger areas at short to medium distance </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeSuperMacro</codeph>  </p> </entry>
<entry><p>Optimized macro operation, where depth of field is very shallow
and observation area changes quickly </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeHyperfocal</codeph>  </p> </entry>
<entry><p>All objects at distances from half of the hyperfocal distance out
to infinity will be in focus. This gives maximum depth of field. </p> </entry>
</row>
<row>
<entry><p> <codeph>EFocusRangeInfinite</codeph>  </p> </entry>
<entry><p>Infinite range, when there is a near obstacle or better focus wanted
for far away objects. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>The following example shows how to change the focus range: </p> <codeblock id="GUID-D65E3CD4-BD93-5D87-AB07-3596BBFFCF21" xml:space="preserve">    // Assigns the focus range to EFocusRangeHyperfocal and checks if it is supported
    CCamera::CCameraAdvancedSettings::TFocusRange focusRange = CCamera::CCameraAdvancedSettings::EFocusRangeHyperfocal;
        
    // Gets the supported ranges            
    TInt suppRanges = settings-&gt;SupportedFocusRanges();
    
    // Checks if the focus range is supported before setting it.
    if (focusRange &amp; suppRanges) 
        {
        // Sets the focus range if it is supported
        settings-&gt;SetFocusRange(focusRange);
        }</codeblock> <p>The result of <codeph>SetFocusRange</codeph> is notified
to the client asynchronously through <codeph>MCameraObserver2::HandleEvent()</codeph> and
with UID <codeph>KUidECamEventCameraSettingFocusRange2</codeph>. </p> <p id="GUID-13C7E377-B9DB-5382-8D2C-C182D1849AEC"><b> Autofocus</b> </p><p>Autofocus
support for camera applications is controlled through the <codeph>CCameraAdvancedSettings</codeph> class. </p><fig id="GUID-BD935125-B7F9-4223-BC94-0B4A663DE13C">
<title>Implementation of autofocus</title>
<image href="GUID-57C10E91-F0CD-494E-96CE-92FB1E06CB53_d0e292667_href.png" placement="inline"/>
</fig><p>Pressing the camera shutter key on the device halfway down generates
additional key events. The key events can be used to activate autofocus if
the camera hardware supports the functionality. Shutter release (image capture)
can be triggered by pressing the key all the way down. The key presses generate
separate key events. To capture other than autofocus key events from the shutter
key, you need the <codeph>SwEvent</codeph> <xref href="GUID-6971B0A2-F79B-4E05-8AF3-BB1FC1932A22.dita">capability</xref>.</p><p>The
settings you can use in your application depend on the camera hardware on
the device. The Camera API allows you to query almost all features of the
device camera. For example, to get a list of supported advanced settings,
use the <xref href="GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF.dita#GUID-67DF1203-B840-3C25-8EB5-3F0C8F28A4FF/GUID-D266F5CF-75DE-3032-BE3A-359C7D021696"><apiname>CCameraAdvancedSettings::GetSupportedSettingsL(RArray&lt;TUid&gt;&amp;
aSettings) const</apiname></xref> method.</p><p>Get the supported autofocus types
using the enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-AE09FE2C-D173-38AA-9867-75B7788ACD6E"><apiname>CCamera::CCameraAdvancedSettings:TAutoFocusType</apiname></xref>.
This defines three supported focus types: </p> <table id="GUID-3535B88E-68BA-5DAF-B367-24E856B76A8B">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Enum</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p> <codeph>EAutoFocusTypeOff</codeph>  </p> </entry>
<entry><p>Autofocus is switched off.</p> </entry>
</row>
<row>
<entry><p> <codeph>EAutoFocusTypeSingle</codeph>  </p> </entry>
<entry><p>Operates on a single shot, consumes less power. </p> </entry>
</row>
<row>
<entry><p> <codeph>EAutoFocusTypeContinuous</codeph>  </p> </entry>
<entry><p>Continuous autofocus, more precise but consumes more power. This
is also known as AF Servo. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>The following example shows how to change the autofocus type: </p> <codeblock id="GUID-9FE120BA-04B9-58A4-A319-B820F3274066" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TAutoFocusType focusType = CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff;
    
    // Gets the supported focus types
    TInt suppFocusTypes = settings-&gt;SupportedAutoFocusTypes();
    
    // Checks if the focus type is supported before setting it.
    if (focusType &amp; suppFocusTypes)
        {
        // Sets the focus type if it is supported
        settings-&gt;SetAutoFocusType(focusType);
        }</codeblock> <p>The result of <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-668C3353-AC24-39D9-BED8-0AB1E813FD53"><apiname>CCamera::CCameraAdvancedSettings::SetAutoFocusType(TAutoFocusType
aAutoFocusType)</apiname></xref> is notified to the client asynchronously through <codeph>MCameraObserver2::HandleEvent()</codeph> and
with uid <codeph>KUidECamEventCameraSettingAutoFocusType2</codeph>. </p><p>For
more information on how to easily use the device camera with zoom and autofocus,
see <xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">S60 Platform: Camera
Example</xref>. The Camera Wrapper provides a unified interface for various
Symbian camera APIs. The example application supports the use of both the
keypad and touch UI. The application can be self-signed, but it also provides
an option to use the dedicated camera key (Symbian signing required).</p> <p id="GUID-6A1C1EAC-092F-59FE-B0FA-74991872A42D"><b> Drive modes</b> </p> <p>Get
the supported drive modes for the camera using the enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-8A12E8C7-6930-3BFA-B543-C1984CA7AC47"><apiname>CCamera::CCameraAdvancedSettings:TDriveMode</apiname></xref> that
determines how and in what succession images are captured. This defines eight
supported drive modes for the camera with the following Enum Values: </p> <table id="GUID-4D90CBA3-7721-5785-92C2-282EE7996588">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Enum Value</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeAuto</codeph>  </p> </entry>
<entry><p>Automatic </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeSingleShot</codeph>  </p> </entry>
<entry><p>Camera takes a single image or shot </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeContinuous</codeph>  </p> </entry>
<entry><p>Camera continuously captures images as fast as it can until it is
stopped or it exceeds the storage space. </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeBracket</codeph>  </p> </entry>
<entry><p>Camera is in bracketing mode, producing individual frames. </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeBracketMerge</codeph>  </p> </entry>
<entry><p>Camera is in bracketing mode, but producing a single image. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-2E5A785B-A468-3BD9-9F69-DEC6057F0EF2"><apiname>CCamera::CCameraAdvancedSettings::SetBracketMerge(TInt
aStartIndex, TInt aFrames)</apiname></xref> method to work in this drive mode. </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeTimed</codeph>  </p> </entry>
<entry><p>Camera captures a single shot after specified time period. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-D730C647-E4B8-3115-AFDF-1F327CF1F978"><apiname>CCamera::CCameraAdvancedSettings::SetTimerInterval(TInt
aTimerInterval)</apiname></xref> method to work in this drive mode. </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeTimeLapse</codeph>  </p> </entry>
<entry><p>Camera captures a set of images with an uniform interval between
them. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-B1DCD5D8-873A-34CF-B576-719A20798D79"><apiname>CCamera::CCameraAdvancedSettings::SetTimeLapse(const TTime&amp;
aStart, const TTime&amp; aEnd, const TTime&amp; aInterval)</apiname></xref> method
to work in this drive mode. </p> </entry>
</row>
<row>
<entry><p> <codeph>EDriveModeBurst</codeph>  </p> </entry>
<entry><p>Camera captures a set of images as fast as it can in batches or
bursts. Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-4B4E2FA2-68CA-33F0-AB76-9731D92B51D6"><apiname>CCamera::CCameraAdvancedSettings::SetBurstImages(TInt
aImages)</apiname></xref> method to set the number of burst images before capturing
the image. </p> <p> <b>Note</b>: There are chances that the actual number
of images captured may be less important due to memory or image size limitations. </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>The following example shows how to change the drive mode: </p> <codeblock id="GUID-9FB24CA2-8107-560F-80DA-4ACDE5E93049" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TDriveMode driveMode = CCamera::CCameraAdvancedSettings::EDriveModeSingleShot;
    
    // Gets the supported drive modes
    TInt suppDriveModes = settings-&gt;SupportedDriveModes();
    
    // Checks if the drive mode is supported before setting it.
    if (driveMode &amp; suppDriveModes) 
        {
        // Sets the drive mode
        settings-&gt;(driveMode);
        }</codeblock> <p>The result of <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-00B45E4F-AB03-3523-A0AB-2D766F34B021"><apiname>CCamera::CCameraAdvancedSettings::SetDriveMode(TDriveMode
aDriveMode)</apiname></xref> is notified to the client asynchronously through <codeph>MCameraObserver2::HandleEvent()</codeph> and
with uid <codeph>KUidECamEventCameraSettingDriveMode</codeph>. </p> <p id="GUID-C3CB9300-39D5-5891-8E13-2DDFEFD0D695"><b>Bracket
modes</b> </p> <p>Bracket mode is a type of drive mode, which is called using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-38F5BF2D-2B72-33F7-803A-274DA455CAD5"><apiname>CCamera::CCameraAdvancedSettings::EDriveModeBracket</apiname></xref>. </p> <p>Bracket mode involves the camera taking a sequence of pictures,
while automatically varying a camera setting, such as exposure, over a range
of values. The enumerated type <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-8AFEA294-03F8-3E1F-8745-1597B417FB87"><apiname>CCamera::CCameraAdvancedSettings:TBracketMode</apiname></xref> defines
three supported bracket modes for the camera. The setting that is varied is
called the bracket parameter, and is represented by the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-9982989C-660D-3D16-B3EB-36ED285A6C5B"><apiname>CCamera::CCameraAdvancedSettings:TBracketParameter</apiname></xref> enumeration,
while the scale of the change to the setting to make for each new picture
is called the bracket step, and is represented by the <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-B37822DF-182E-3829-9E76-807CAA76F160"><apiname>CCamera::CCameraAdvancedSettings:TBracketStep</apiname></xref> enumeration.
The possible bracket modes are: </p> <table id="GUID-0A4D293B-F3F0-5FC4-A29D-D180CE4FF947">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Enum Value</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p> <codeph>EBracketModeOff</codeph>  </p> </entry>
<entry><p>Bracket mode is switched off. This is the default value. </p> </entry>
</row>
<row>
<entry><p> <codeph>EBracketMode3Image</codeph>  </p> </entry>
<entry><p>Bracket mode on. Three consecutive pictures are taken in order,
with the setting at under (-1), on (0), and over (+1). </p> </entry>
</row>
<row>
<entry><p> <codeph>EBracketMode5Image</codeph>  </p> </entry>
<entry><p>Bracket mode on. Five consecutive pictures are taken in order, with
the setting at under (-2), under (-1), on (0), over (+1), and over (+2). </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>The following example shows how to change the bracket mode: </p> <codeblock id="GUID-381BFE03-77E1-555B-9389-ACDC97DA7261" xml:space="preserve">    CCamera::CCameraAdvancedSettings::TBracketMode bracketMode = CCamera::CCameraAdvancedSettings::EBracketMode3Image;
    
    // Gets the supported bracket modes
    TInt suppBracketModes = settings-&gt;SupportedBracketModes();
    
    // Checks if the bracket mode is supported before setting it.
    if (bracketMode &amp; suppBracketModes) 
        {
        settings-&gt;SetBracketMode(bracketMode);    
        }</codeblock> <p><b>Zoom Mode</b> </p> <p>The high level steps to
perform various operations in zoom mode are listed below: </p> <ul>
<li id="GUID-0F61E199-4297-505B-BC1F-D6F5FE6B073B"><p>Get the continuous zoom
types supported by the camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-6B95F570-6FAC-38C0-98D8-32F2A759CAB6"><apiname>CCamera::CCameraAdvancedSettings::GetSupportedContinuousZoomTypeL(TUint&amp;
aSupportedContinuousZoomType) const</apiname></xref> method. </p> </li>
<li id="GUID-CAB0F4ED-DFFD-5C8B-B6E0-0B232CDCDD27"><p>Start continuous zoom
using <xref href="GUID-2A98C0B4-DBA4-32B9-B35D-8CFF69A0313C.dita#GUID-2A98C0B4-DBA4-32B9-B35D-8CFF69A0313C/GUID-59D734B0-15D2-39CB-A089-F468D81AAB22"><apiname>CCamera::CCameraAdvancedSettings::StartContinuousZoomL(CCamera::CCameraAdvancedSettings::TContinuousZoomParameters
aContinuousZoomParameters)()</apiname></xref> method with specified continuous zoom
type and the zoom direction. </p> </li>
<li id="GUID-03EFA212-975F-5A77-BAFE-C410C015EC18"><p>Notify the client about
the extent of continuous zoom achieved using event <codeph>KUidECamEvent2CameraSettingContinuousZoomPercentageCompletion</codeph>.
When continuous zoom reached its limit, notify the client using event <codeph>KUidECamEventCameraSettingContinuousZoomReachedLimit</codeph>. </p> </li>
<li id="GUID-710E7302-2333-51DC-820D-7F05E8CE5A36"><p>Stop continuous zoom
using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-1EA4029D-502F-378E-8E6B-0D15D9C98031"><apiname>CCamera::CCameraAdvancedSettings::StopContinuousZoom()</apiname></xref> method. </p> </li>
</ul> <p><b>Extending Pixel Aspect Ratio</b> </p> <p>You can use the pixel
aspect ratio to provide settings for PAL, NTSC and NTSC4:3. For this, you
need to extend the enumeration of enum <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-D97EB1D7-8C88-3A0C-BCB4-8EA01CF20C4E"><apiname>CCamera::CCameraAdvancedSettings:TPixelAspectRatio</apiname></xref> as
follows: </p> <table id="GUID-DD24C53C-8C60-5EAF-9B7A-05A3A34018F3">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p> <b>Enum Value</b>  </p> </entry>
<entry><p> <b>Description</b>  </p> </entry>
</row>
<row>
<entry><p><codeph>TPixelAspectRatio::EEPixelAspect16:11 </codeph></p> </entry>
<entry><p>PAL </p> </entry>
</row>
<row>
<entry><p><codeph>TPixelAspectRatio::EEPixelAspect40:33</codeph> </p> </entry>
<entry><p>NTSC </p> </entry>
</row>
<row>
<entry><p><codeph>TPixelAspectRatio::EEPixelAspect10:11</codeph> </p> </entry>
<entry><p>NTSC4:3 </p> </entry>
</row>
</tbody>
</tgroup>
</table> <p>Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-429847B5-ED64-39BB-9094-A966BDF1796F"><apiname>CCamera::CCameraAdvancedSettings::PixelAspectRatio()</apiname></xref> method
to get the current pixel aspect ratio. </p> <p>Use <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-F92198EA-8E1B-3C2A-A1CE-DED77112AA72"><apiname>CCamera::CCameraAdvancedSettings::SetPixelAspectRatio(TPixelAspectRatio
aPixelAspectRatio)</apiname></xref> method to set the pixel aspect ratio. Notify <codeph>MCameraObserver2</codeph> clients
with <codeph>KUidECamEventPixelAspectRatio</codeph> event. </p> </section>
<section id="GUID-A7312910-7CBC-4ADB-BDB6-4EABF809BDB8"><title>Miscellaneous</title> <p>This
section details the miscellaneous APIs used in <codeph>CCameraAdvancedSettings</codeph> class. </p> <ul>
<li id="GUID-95245D67-3B97-52CE-B0E5-40C8143BB63A"><p> <b> ISO rates </b>:
ISO indicates the sensitivity of the image sensor and is also a parameter
that influences the exposure. </p> <ul>
<li id="GUID-8376DD53-898A-5CB2-A580-681A14707207"><p>Get the set of camera
supported ISO rates using the<xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-988DB2DC-9598-3F07-8DA5-1C1005D775C8"><apiname>CCamera::CCameraAdvancedSettings::GetSupportedIsoRatesL(RArray&lt;TInt&gt;&amp;
aSupportedIsoRates) const</apiname></xref> method. The enum value <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita#GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4/GUID-0CFA8FBA-1EF7-31A3-BD2F-AA26DA953574"><apiname>CCamera::CCameraAdvancedSettings:TISORateType</apiname></xref> specifies
the ISO type supported by the camera. </p> </li>
<li id="GUID-5DBE8988-FE71-54C3-80DD-A72DEA495F20"><p>When camera device does
not reveal the ISO supported rates, it has to be assumed that camera will
work only on the permanently set value. If this value is not known, returns
empty array and corresponding getter or setters for this feature should not
be used in such a case. </p> </li>
<li id="GUID-1F3848E6-6763-591A-9514-091ECEBFBAD0"><p>Set the type of ISO
rate and the exposure parameter or specific value using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-637DA561-D767-3D28-859C-23E91D22754B"><apiname>CCamera::CCameraAdvancedSettings::SetISORateL(TISORateType
aISORateType, TInt aParam)</apiname></xref> method. </p> </li>
<li id="GUID-60604442-D930-5C55-8D2F-F23C891A6590"><p>Get the type of ISO
rate, exposure parameter and the value set using the <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-A4E38716-4298-34B6-A831-CCCB580D5277"><apiname>CCamera::CCameraAdvancedSettings::GetISORateL(TISORateType&amp;
aISORateType, TInt&amp; aParam, TInt&amp; aISORate) const</apiname></xref> method. </p> </li>
<li id="GUID-5BEE22FB-1B43-5B83-ABA9-E9BEEA17D30F"><p>Get current ISO rate
using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-C652575D-5A50-3527-A56D-0545141A8D3C"><apiname>CCamera::CCameraAdvancedSettings::IsoRate() const</apiname></xref>. </p> </li>
</ul> </li>
<li id="GUID-963323CA-0ABE-5DDF-A0C9-6667FD98D20B"><p>Get current aperture
value using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-4221E82B-B223-3F99-B750-1846C3751425"><apiname>CCamera::CCameraAdvancedSettings::Aperture() const</apiname></xref>.
For example, the function returns 280 for the actual aperture of F2.8. If
the value returned is negative, indicates the error case (system wide error
code) and positive represents the current aperture value. </p> </li>
<li id="GUID-B8F1D3F3-64AB-53B6-B836-36899A5806EC"><p>Get the current shutter
speed in microseconds using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-742C86DB-2D66-3538-BEBF-A72081F579E5"><apiname>CCamera::CCameraAdvancedSettings::ShutterSpeed()
const</apiname></xref>. If the value returned is negative, indicates the error case
(system wide error code) and positive represents the current shutter speed. </p> </li>
<li id="GUID-C7ECE3F7-F3A9-5397-B745-AFA20F8D8DC4"><p>Get all supported metering
modes on this camera using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-57CD617B-C0BD-3338-A8D1-740BA235CF09"><apiname>CCamera::CCameraAdvancedSettings::SupportedMeteringModes()
const</apiname></xref>. </p> </li>
<li id="GUID-E3E794F1-2773-5C10-8EF1-ED7538C4CFE1"><p>Get all supported drive
modes as bitfields of <codeph>TDriveMode</codeph> type using <xref href="GUID-E31AEB11-B7A0-3637-BB31-866306F78118.dita#GUID-E31AEB11-B7A0-3637-BB31-866306F78118/GUID-8F453942-2CE0-3FD0-AA78-11B0DDA164C7"><apiname>CCamera::CCameraAdvancedSettings::SupportedDriveModes()
const</apiname></xref>. </p> </li>
<li id="GUID-D2CDDC69-DDA0-5682-852D-EB984B84F6A5"><p>Get the currently set
flash mode using <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>. </p> </li>
</ul> </section>
<section id="GUID-C2683A31-5432-4780-B9AF-CB952A0B8087"><title>See also</title> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Overview</xref> for the advanced
settings of Camera </p> <p>The <xref href="GUID-0FD204B8-4207-577B-AF3A-6E210D63F78E.dita">Advanced
Camera Settings</xref> tutorials. </p><p>The <xref href="GUID-55BF8452-F9FF-5CF3-9D74-3BC7F5447551.dita">S60
Platform: Camera Example</xref>.</p> </section>
</conbody></concept>