Client Viewfinder

This tutorial introduces to the Client Viewfinder API of the Ecam component.

Purpose

This documents provides a detailed description about the Client Viewfinder API.

Setup and Configuration Requirements

The following are the setup and configuration requirements you need to follow before Client Viewfinder implementation:

  • Client needs to implement the dedicated observer MclientViewFinderObserver to use the client viewfinder API.

    The Ecam implementation will issue the call-backs in this observer class, when the client viewfinder operations are ready to be notified.

  • Licensee must provide concrete implementation for an interface class McameraClientViewFinder and McameraViewFinder.

Client Viewfinder

Client Viewfinder Implementation

The following tasks will be covered during Client Viewfinder implementation:

Note:

Working with Client Viewfinder

The following steps describes working with client viewfinder:

  1. Before starting the client viewfinder, client has the following options:

  2. Use CCameraClientViewFinder::StartClientViewFinderL() to start client viewfinder and to retrieve viewfinder frames in the specified format and size. Client specifies the format and size for the viewfinder frames.

  3. ECam adaptation owns the buffer that passes the viewfinder frames to the client through McameraOberver2 notification. The client releases the buffers passed to it by the adaptation, when it has handled the viewfinder frame. The adaptation should not reuse the buffers passed, until the client releases them. The Ecam adaptation secures it against the clients that do not release the buffers within a specific time interval.

  4. Implementation issues callback ViewFinderBufferReady() to notify the client that viewfinder frames of client are available. Implementation passes the viewfinder handle along with the callback. Client identifies the actual client viewfinder object and retrieve the viewfinder data through CCameraClientViewFinder::GetViewFinderBufferL().

A client calls the following functions to control the view finder:

If the implementation finds any error during client viewfinder operation, it stops the specific client viewfinder and issue the callback MDirectViewFinderObserver::ViewFinderBufferReady() with the appropriate error code.

See also

Overview of Viewfinder API

The Viewfinder Tutorial

The Direct Viewfinder Tutorial