Documentation/Maemo 5 Developer Guide/Architecture/Imaging and Sharing

Maemo (Talk)
(Imaging and Sharing High Level Architecture)
Newer edit →

Revision as of 17:41, 5 October 2009

Contents

Imaging and Sharing High Level Architecture

Subsystems of Imaging and Sharing domain are implementing means to produce, review, change, and share photography content on the device.

Following user-accessible applications are provided by Imaging and Sharing domain:

  • Camera Application is a graphical interface to camera hardware. It accesses OMAP3 camera HW subsystem through a GStreamer-based middleware.
  • Image Viewer allows to view photographs and images and supports simple/basic image editing functionality.

Sharing subsystem provides direct integration to an extensible set of internet services like OVI, with simple interface for uploading (i.e. “sharing”) content e.g. images to those services.

The diagram below shows the main interfaces of the domain.


Imaging and Sharing, Software Context


Interfaces provided

Interface Description
Image Viewer UI The primary user interface for viewing still images and manipulating them.
Sharing UI The user interface for sharing content via internet services such as Nokia’s OVI.
Camera UI The primary user interface for using the device’s camera for capturing still images and video.
GDigicam An abstraction over complex set of GStreamer pipelines used to perform still image and video capturing.
Sharing plug-in extensions An interface for external developers to extend Sharing subsystem's reach to internet services.
Viewing capability Image Viewer application is the device’s primary means to view images, and it thus launched when user wants to handle the associated image files.


System decomposition view

Camera application

Name Camera application
Purpose Implements the camera UI interface
Responsibilities
  • Implements camera controls for end user (e.g. open, close, capture, zoom)
  • Implements camera settings (e.g. scene modes, flash settings etc.)
  • Implements indicators (e.g. shake indicator)
  • Implements main power management for camera
License Nokia


Interfaces provided

Interface name Dependency Description
GDigigcam GStreamer High-level model abstraction of a GStreamer-based pipelines to access camera features
GDIGICAM facade GDigicam Facade to interact with media objects in Camera UI
Gdigicam manager GStreamer Abstract interface over camera operations
Camerabin Multimedia framework Component to control camera pipeline on GStreamer level


GDigicam library and Camerabin GStreamer element are provided as Free Software under LGPL2.1 in order to allow alternative implementations of certain image processing steps.

Image Viewer

Name Image Viewer
Description A viewer like content management application.
Responsibilities
  • Implements a simple and fast interface for context sensitive user interface for viewing and selecting and categorizing the images.
  • Supports viewing of single images, snapshot views based on selectable categories and image presentations.
Notes Image Viewer is a single instance application, only one viewer instance available at a time.
License Nokia


Interfaces provided

Interface Dependency Description
Viewing capability User User interface to access Image Viewer application functionality
Launch application D-Bus D-Bus interface to open the Image Viewer application, used by Camera, Browser, File Manager, Email.


Sharing

Name Sharing
Purpose Sharing subsystem implements means to upload a content originating on the device to internet-based social services.
Responsibilities
  • Implements dialogs for uploading of images to supported internet services
  • Implements simple management (i.e. filtering, adding) of metadata for images to be shared
  • Implements an API for extensions to add support for new internet services
Notes Sharing subsystem contributes libraries which are used from within the context of other applications. Image Viewer is a primary consumer of these services within Imaging and Sharing domain.
License Nokia. Plug-in API is available under LGPL2.1


Interfaces provided

Interface name Dependency Description
Sharing plugins API Plugins API for sharing components An API for adding support for new internet services