Initial contribution of the Adaptation Documentation.
<?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-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224" xml:lang="en"><title> Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>This section provides an overview of the Camera Framework. </p>
<section id="GUID-E7594254-F6E9-4462-B34B-0955939BAECC"><title>Purpose</title> <p>The ECam component supplies a header file
(<filepath>.h</filepath>) and library definition files (<filepath>.def</filepath>).
These specify the API and binary interfaces that device creators can implement.
They provide an interface for cross-platform, compatible camera clients to
access the camera on any given device. The Camera Framework supports any concrete
ECam implementation only as a ECom plug-in. The ROM plug-in with the highest
version number is selected at instantiation phase. The Symbian version of
ECam is a stub for easy replacement by an alternate implementation. </p> </section>
<section id="GUID-D5088EB7-2014-4D34-84DD-DE88188F9F31"><title>Required background</title> <p>ECam is a component of the
Multimedia subsystem. </p> </section>
<section id="GUID-F6CD9CCA-4508-42BE-A3DE-5F0A74CD1D20"><title>Architectural relationships</title> <p>Clients have specific
priorities and may pre-empt others in their interactions with the camera.
When a camera client needs to share the camera with another client, it creates
a handle to the camera and passes this handle to the component. Clients that
share with each other are called collaborative clients. </p> <p>Platform security
requires that applications have the <codeph>UserEnvironment</codeph> capability
to create a Camera object. Clients with the <codeph>MultimediaDD</codeph> capability
are given a higher priority. </p> <p> <b>Note</b>: The process by which a
client passes a handle to another client is beyond the scope of this Camera
Framework guide. </p> <p>Application developers and device creators implement
the ECam API for the camera hardware on their phone. All cameras are ECom
plug-ins sub-classed from the <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> class. </p> </section>
<section id="GUID-C8B479FA-6806-43D0-84D2-1F1627CBBE07"><title>API summary</title> <p>The Camera Framework includes the following
APIs. </p> <p><b>ECam APIs </b> </p> <ul>
<li id="GUID-A35FED19-B5AE-5134-8EB6-A00F0B7A53C9"><p>Camera </p> <p>This
provides functionality to control a digital camera and to request and receive
specific image data from it. </p> <p>See also <xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita#GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D/GUID-1AC509C3-E1D9-5DB4-9C09-90E0DCE576CB">Key
Onboard ECam API Classes</xref> </p> </li>
<li id="GUID-5327CE4E-6BA6-5602-8D17-0ADFDFBEA5DA"><p>Advanced Settings </p> <p>This
provides domain specific getters and setters for well known camera hardware
settings. This is used to query the camera for the list of supported and currently
active hardware settings. For a specific setting, clients can query the camera
for the list of supported values. </p> </li>
<li id="GUID-646EBF1D-FF4F-5C2E-8D87-DD1CE9072A00"><p>Camera Viewfinder </p> <p>This
provides the support for both direct and client viewfinder. It also provides
information regarding the current state of that direct viewfinder. The different
possible states are active, paused and inactive. </p> <p>See also <xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita#GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D/GUID-FD016694-527F-5009-81FC-B5D8AD1A3A05">Key Viewfinder Classes</xref> </p> <p> <b>Note</b>: The direct viewfinder
is applicable only for viewfinders that use Ccamera viewfinder methods. </p> </li>
<li id="GUID-F63B7492-08A2-5129-B89B-06CCC459EF04"><p>Camera Histogram </p> <p>This
gets the histogram data in a specified format for an image (for example, luminance
based histogram, average colour value histogram and so on). </p> </li>
<li id="GUID-EC209FE8-B8B2-59E0-80DA-13801366F03B"><p>Camera Overlay </p> <p>This
overlays an image onto the viewfinder, snapshots, still images and video.
A client can create multiple overlays, each one with different properties. </p> </li>
<li id="GUID-05130CA9-EFCD-59EA-871E-923E89122234"><p>Camera plug-in Support </p> <p>All
cameras are ECom plug-ins sub-classed from <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> class
and register support for the interface <xref href="GUID-ED2C5C88-0EBF-3793-A451-91C5F9030467.dita"><apiname>KUidOnboardCameraPlugin</apiname></xref> in
their resource file. Symbian introduced plug-in support for ECam from v9.1
onwards. Before that, device creators were supposed to re-implement ECam,
which was effectively reference code. </p> </li>
<li id="GUID-EB2D5447-2D4F-5413-B0A8-17AA86982B0A"><p>Camera Snap Shot </p> <p>Clients
can use snapshots to show captured images on the display almost instantly
(while in the background the image may be processed by using some compression
algorithm before storing the data). The client can specify the properties
of the snapshot, such as size, background colour and position to be used if
the snapshot has been scaled and so on. Snapshot object can be created specifically
for still images and video APIs. </p> </li>
</ul> </section>
<section id="GUID-1DA7183B-01F5-468B-8F59-1A817DDA0DC4"><title>Typical uses</title> <p><b>Camera Component Users </b> </p> <ul>
<li id="GUID-D2AD15FD-E2DE-5137-BE77-650CCD5DE9A6"><p>Camera plug-ins </p> </li>
<li id="GUID-77873CF0-7319-59D6-9EA6-0B922E7E3A3F"><p>Multimedia Framework
plug-ins </p> </li>
</ul> <p><b>Camera
Component tasks</b> </p> <p>The camera component is used for the following: </p> <ul>
<li id="GUID-4A7DF7A6-4E35-53DB-9F56-A5D0E2685FBA"><p>Onboard Camera </p> </li>
<li id="GUID-DF4050DA-AEC1-5C91-9466-FC685B21EBCC"><p>Camera plug-in Support </p> </li>
<li id="GUID-4D9B817A-666C-5A15-B285-5B292C209C5A"><p>Advanced Settings </p> </li>
<li id="GUID-E187EEC6-C048-5AB0-944B-BCBFC2CFD986"><p>Camera plug-in </p> </li>
<li id="GUID-DD4EB3CF-EEAC-5208-989D-1B9A94320CCF"><p>Histogram </p> </li>
<li id="GUID-4F24A091-31CE-592E-9447-A5424FA814C5"><p>Overlay </p> </li>
<li id="GUID-7F01D2E4-49E3-53C9-AE0A-D40BB6C8304E"><p>Snapshot </p> </li>
<li id="GUID-EBD1D801-E9FE-561D-A656-AE4095B878E4"><p>Viewfinder </p> </li>
</ul> <p><b> Onboard
Camera </b> </p> <p>The Onboard Camera provides functionality to control a
digital camera and to request and receive specific image data from it. </p> <p><b> Advanced Settings </b> </p> <p>The Advanced Settings gets or sets individual
setting value as well as retrieve their current ranges. </p> <p><b> Camera plug-in</b> </p> <p>This API, an ECom plug-in, is introduced as
an alternative to static linking. This allows the partners to replace the
camera implementation more easily. </p> <p><b> Histogram</b> </p> <p>The Histogram provides the functionality needed to work with histogram
data in a specified format for an image. </p> <p><b> Overlay</b> </p> <p>The Overlay is used to overlay an image onto the
viewfinder, snapshots, still images and video. </p> <p><b> Snapshot</b> </p> <p>The Snapshot allows the client to request snapshot
data in a specified image format for both still images and video. </p> <p><b> Viewfinder</b> </p> <p>The Viewfinder enables to pause and resume the
direct viewfinder which is currently active and has been started using Ccamera
methods. </p> </section>
<section id="GUID-47470D3B-FFA2-495C-BBCC-2267EFA839A7"><title>See also</title> <p><xref href="GUID-80EC80E2-E197-50F7-B1FD-720A00AC3B4D.dita">Onboard
Camera Overview</xref> </p> <p><xref href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita">Camera
Plug-in Support Overview</xref> </p> <p><xref href="GUID-176913BA-3877-58E2-9E12-3606EE697813.dita">Advanced
Camera Settings Overview</xref> </p> <p><xref href="GUID-3074D4E5-25EA-5DA0-877D-6E3086DCBDB5.dita">Histogram
Overview</xref> </p> <p><xref href="GUID-AB5BD17E-F482-54A1-AE6F-4AEC178B2E0E.dita">Overlay
API Overview</xref> </p> <p><xref href="GUID-0B24B36D-F4C5-508A-A65B-18E4E4C45C37.dita">Snapshot
API Overview</xref> </p> <p><xref href="GUID-367ADFD7-A0F5-59D3-BF83-913CB8126B9D.dita">Viewfinder
API Overview</xref> </p> </section>
</conbody></concept>