Symbian3/PDK/Source/GUID-A721FC4A-03C6-59F7-A0D2-565C4828E5E1.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"

<?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 xml:lang="en" id="GUID-A721FC4A-03C6-59F7-A0D2-565C4828E5E1"><title>Camera Stub Plug-in Library Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>This document introduces you to the Camera Stub Plug-in library overview. </p> <section><title>Purpose</title> <p>The purpose of this document is to provides a detailed description about the Camera Stub Plug-in implementation. </p> </section> <section><title>Camera Stub Plug-in library details</title> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-F04D49F6-7EDD-5FF3-B3F4-379266D7F4DB"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-5B53C229-F86B-32EA-9185-290EB508942A.dita"><apiname>EcamStubPlugin.dll</apiname></xref>  </p> </entry> <entry><p> <xref href="GUID-75314782-EFB5-3BBA-82CF-D40A986631CD.dita"><apiname>ECamStubPlugin.h</apiname></xref>  </p> <p> <xref href="GUID-36E234FB-4049-3601-92B6-ACC451A3A983.dita"><apiname>ecom/ecom.h</apiname></xref>  </p> <p> <xref href="GUID-78112462-7106-3990-8ADE-2F5378A65922.dita"><apiname>ecom/implementationproxy.h</apiname></xref>  </p> <p> <xref href="GUID-2C80914C-987C-3208-9FA5-FD9D29FD3D8E.dita"><apiname>ecamuids.hr</apiname></xref>  </p> </entry> <entry><p>These files are used to implement the Camera Stub Plug-in functionalities. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architecture</title> <p>The Symbian platform no longer supports re-implementation of ECam component. Device creators who re-implement ECam should complete their migration to the ECam plug-in framework. Device creators already using the ECam plug-in framework are unaffected. Clients of the interfaces are also unaffected. </p> </section> <section><title>Description</title> <p>Symbian introduced the plug-in support for ECam from v9.1 onwards. Before that, device creators were supposed to re-implement ecam.cpp, which was effectively reference code. </p> <p>Device creators who re-implement ECam should use the Symbian-provided implementations. These implementations are available through the affected cpp files. In particular, to complete migration to the ECam plug-in framework, device creators should derive their class from <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref> instead of <xref href="GUID-021C509B-C821-3401-B2F4-DE7F52BB16D4.dita"><apiname>CCamera</apiname></xref>. A resource file also needs to be created so that the specific plug-in gets chosen. Device creators will have to link against <codeph>ecampluginsupport</codeph>. </p> <p> <codeph>ECamStubplugin</codeph> is example code that helps in understanding the steps needed to migrate to the plug-in framework, and the API design is described in the ECam Design Onboard Camera API document. </p> </section> <section><title>APIs</title> <p>The key classes that make up the Camera Plug-in API is <xref href="GUID-A738B809-754B-3090-9209-0880687F173C.dita"><apiname>CCameraPlugin</apiname></xref>. </p> </section> <section><title>Using Camera Stub Plug-in</title> <p>The Camera Stub Plug-in is used to facilitate the creation of a new Camera Plug-ins component. </p> <p>The following test code is used as an example to create a new Camera Plug-ins component: </p> <codeblock id="GUID-93E2D806-8A6B-5498-BE38-E5C27168F6BB" xml:space="preserve">// 10207084.RSS
//

#include “Ecom\RegistryInfo.rh”
#include “EcamUids.hrh”

RESOURCE REGISTRY_INFO theInfo
    {
    dll_uid = KuidOnboardCameraTestDll;
    interfaces = 
        {
        INTERFACE_INFO
            {
            interface_uid = KuidOnboardCameraPlugin;
            implementations = 
                {
                IMPLEMENTATION_INFO
                    {
                    implementation_uid = KuidOnboardCameraTestPlugin;
                    version_no = 2;
                    display_name =”Ecam Test Plug-in”;
                    opaque_data = “0;”;
                    default_data=”*”;
                    }
                };
            },
        INTERFACE_INFO
            {
            interface_uid = KuidOnboardCameraInfoPlugin;
            implementations = 
                {
                IMPLEMENTATION_INFO
                    {
                    implementation_uid = KuidOnboardCameraTestInfo;
                    version_no = 2;
                    display_name = “Ecam Test InfoPlugin”;
                    opaque_data = “0;”;
                    default_data=”*”;
                    }
                };
            }
        };
    }</codeblock> </section> </conbody><related-links><link href="GUID-F25862A3-51E5-581A-9CC9-964791781E69.dita"><linktext>Camera Plug-in Support
                Overview</linktext> </link> <link href="GUID-93D08C5F-D864-59E3-963D-D836EBE88B4D.dita"><linktext>Camera Plug-in Support Tutorial</linktext> </link> <link href="GUID-36C3A2FD-F4F9-5B8C-91B7-40C29B3D2224.dita"><linktext>Camera
                Component Overview</linktext> </link> </related-links></concept>