Camera Stub Plug-in Library Overview

This document introduces you to the Camera Stub Plug-in library overview.

Purpose

The purpose of this document is to provides a detailed description about the Camera Stub Plug-in implementation.

Camera Stub Plug-in library details

The DLL that provides the functionality and the library to which your code must link is identified below.

DLL LIB Short Description

EcamStubPlugin.dll

ECamStubPlugin.h

ecom/ecom.h

ecom/implementationproxy.h

ecamuids.hr

These files are used to implement the Camera Stub Plug-in functionalities.

Architecture

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.

Description

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.

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 CCameraPlugin instead of CCamera. A resource file also needs to be created so that the specific plug-in gets chosen. Device creators will have to link against ecampluginsupport.

ECamStubplugin 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.

APIs

The key classes that make up the Camera Plug-in API is CCameraPlugin.

Using Camera Stub Plug-in

The Camera Stub Plug-in is used to facilitate the creation of a new Camera Plug-ins component.

The following test code is used as an example to create a new Camera Plug-ins component:

// 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=”*”;
                    }
                };
            }
        };
    }