The Onboard Camera API provides functionality to control a digital camera and to request and receive specific image data from it. Still or video images may be captured. A camera may be controlled with its output media going into a non-Symbian OS sink (for example, into hardware), or it may be controlled with output going into Symbian OS.
The API defines basic common operations, but is also extensible to allow for proprietary properties.
The Onboard Camera API provides images to clients. A client may be an application with image requirements, or the Multimedia Framework.
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 component, it creates a handle to the camera and pass this handle to the component.
Platform security requires that users application have
UserEnvironment
capability to create a Camera object.
Licensees and partners implement the camera API for the camera hardware
on their phone. The implementation can be a static DLL or an ECom plug-in. All
cameras are ECom plugins sub-classed from the CCameraPlugin
class.
When a new camera object is required, the ECam library requests a camera plugin from the ECom framework. When more than one ROM based plugins have been registered on the platform, the one with the highest version defined in its resource file is selected.
Client Applications can use the API for a number of tasks, including:
The key classes that make up the Camera API are as follows.
CCamera
provides the base class for camera
devices. This is the interface that the client application uses to communicate
with the camera. It provides all the functions necessary to control, and
acquire images from, the camera.
MCameraObserver2
is an observer class which
permits access to picture data as descriptors, bitmaps or chunks. It defines an
event-handling interface that is called when events are generated from use of
the camera APIs, or from external sources such as the camera being plugged or
unplugged.
MCameraObserver
is an earlier version of this
callback interface.
TCameraInfo
provides information about the
camera. This includes: the version number and name of camera hardware, camera
orientation and whether the camera supports still image capture.
MCameraBuffer
is the buffer class used by
MCameraObserver2
to pass back view finder data, images and
video frames. It presents an API for the client to choose in which way it
accesses the picture data (descriptor, bitmap or kernel chunk).
TECAMEvent
is a simple event class, containing
a UID to identify the event and a status code, passed to
MCameraObserver2
on completion of requests, when control
of the camera switches, when camera hardware settings change, or due to
external events such as the camera being plugged in.