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

(Imaging and Sharing High Level Architecture)
(add table captions)
 
(6 intermediate revisions not shown)
Line 1: Line 1:
-
= 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.
Subsystems of Imaging and Sharing domain are implementing means to produce, review, change, and share photography content on the device.
Line 11: Line 9:
The diagram below shows the main interfaces of the domain.  
The diagram below shows the main interfaces of the domain.  
-
[[Image:Imaging_Sharing_sw_context.png|480px]] <br>
+
[[Image:Imaging_Sharing_sw_context.png|480px|Imaging and Sharing, Software Context]]
-
''Imaging and Sharing, Software Context''
+
-
 
+
==Interfaces provided==
==Interfaces provided==
-
{|border=1
+
 
-
|'''Interface'''
+
{| class="wikitable"
-
|'''Description'''
+
|+ Sharing interfaces
 +
|-
 +
! Interface !! Description
|-
|-
|Image Viewer UI
|Image Viewer UI
|The primary user interface for viewing still images and manipulating them.
|The primary user interface for viewing still images and manipulating them.
|-
|-
-
|Sharing UI
+
| [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in|Sharing UI]]
|The user interface for sharing content via internet services such as Nokia’s OVI.
|The user interface for sharing content via internet services such as Nokia’s OVI.
|-
|-
Line 32: Line 30:
|An abstraction over complex set of GStreamer pipelines used to perform still image and video capturing.
|An abstraction over complex set of GStreamer pipelines used to perform still image and video capturing.
|-
|-
-
|Sharing plug-in extensions
+
| [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in#Writing Sharing Plug-in for .22Send via Service.22|Sharing plug-in extensions]]
-
|An interface for external developers to extend Sharing subsystem's reach to internet services.
+
| An interface for external developers to extend Sharing subsystem's reach to internet services.
|-
|-
|Viewing capability
|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.
|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==
==System decomposition view==
===Camera application===
===Camera application===
-
{|border=1
 
-
|'''Name'''
 
-
|'''Camera application'''
 
-
|-
 
-
|'''Purpose'''
 
-
|Implements the camera UI interface
 
-
|-
 
-
|'''Responsibilities'''
 
-
|
 
-
*Implements camera controls for end user (e.g. open, close, capture, zoom)<br>
 
-
*Implements camera settings (e.g. scene modes, flash settings etc.)<br>
 
-
*Implements indicators (e.g. shake indicator)<br>
 
-
*Implements main power management for camera
 
-
|-
 
-
|'''License'''
 
-
|Nokia
 
-
|}
 
 +
;Purpose
 +
: Implements the camera UI interface
 +
;Responsibilities
 +
: <ul><li>Implements camera controls for end user (e.g. open, close, capture, zoom)</li><li>Implements camera settings (e.g. scene modes, flash settings etc.)</li><li>Implements indicators (e.g. shake indicator)</li><li>Implements main power management for camera</li></ul>
 +
;License
 +
: Nokia
====Interfaces provided====
====Interfaces provided====
-
{|border=1
+
 
-
|'''Interface name'''
+
{| class="wikitable"
-
|'''Dependency'''
+
|+ Camera interfaces
-
|'''Description'''
+
|-
|-
-
|GDigigcam
+
! Interface name !! Dependency !! Description
-
|GStreamer
+
-
|High-level model abstraction of a GStreamer-based pipelines to access camera features
+
|-
|-
-
|GDIGICAM facade
+
| GDigicam
-
|GDigicam
+
| GStreamer
-
|Facade to interact with media objects in Camera UI
+
| High-level model abstraction of a GStreamer-based pipelines to access camera features
|-
|-
-
|Gdigicam manager
+
| GDIGICAM facade
-
|GStreamer
+
| GDigicam
-
|Abstract interface over camera operations
+
| Facade to interact with media objects in Camera UI
|-
|-
-
|Camerabin
+
| Gdigicam manager
-
|Multimedia framework
+
| GStreamer
-
|Component to control camera pipeline on GStreamer level
+
| 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.
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===
===Image Viewer===
-
{|border=1
 
-
|'''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.  <br>
 
-
*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
 
-
|}
 
 +
;Description
 +
: A viewer like content management application.
 +
;Responsibilities
 +
: <ul><li>Implements a simple and fast interface for context sensitive user interface for viewing and selecting and categorizing the images.</li><li>Supports viewing of single images, snapshot views based on selectable categories and image presentations.</li></ul>
 +
;Notes
 +
: Image Viewer is a single instance application, only one viewer instance available at a time.
 +
;License
 +
: Nokia
====Interfaces provided====
====Interfaces provided====
-
{|border=1
+
 
-
|'''Interface'''
+
{| class="wikitable"
-
|'''Dependency'''
+
|+ Image viewer interfaces
-
|'''Description'''
+
|-
|-
-
|Viewing capability
+
! Interface !! Dependency !! Description
-
|User
+
-
|User interface to access Image Viewer application functionality
+
|-
|-
-
|Launch application
+
| Viewing capability
-
|D-Bus
+
| User
-
|D-Bus interface to open the Image Viewer application, used by Camera, Browser, File Manager, Email.
+
| 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===
 +
;Purpose
 +
: Sharing subsystem implements means to upload a content originating on the device to internet-based social services.
 +
;Responsibilities
 +
: <ul><li>Implements dialogs for uploading of images to supported internet services</li><li>Implements simple management (i.e. filtering, adding) of metadata for images to be shared</li><li>Implements an API for extensions to add support for new internet services</li></ul>
 +
;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
-
===Sharing===
+
====Interfaces provided====
-
{|border=1
+
 
-
|'''Name'''
+
{| class="wikitable"
-
|'''Sharing'''
+
|+ Sharing interfaces
|-
|-
-
|'''Purpose'''
+
! Interface name !! Dependency !! Description
-
|Sharing subsystem implements means to upload a content originating on the device to internet-based social services.
+
|-
|-
-
|'''Responsibilities'''
+
| Sharing plugins API
-
|
+
| Plugins API for sharing components
-
*Implements dialogs for uploading of images to supported internet services <br>
+
| An API for adding support for new internet services
-
*Implements simple management  (i.e. filtering, adding) of metadata for images to be shared <br>
+
-
*Implements an API for extensions to add support for new internet services<br>
+
-
|-
+
-
|'''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
+
|}
|}
-
 
+
[[Category:Development]]
-
====Interfaces provided====
+
[[Category:Documentation]]
-
{|border=1
+
[[Category:Fremantle]]
-
|'''Interface name'''
+
-
|'''Dependency'''
+
-
|'''Description'''
+
-
|-
+
-
|Sharing plugins API
+
-
|Plugins API for sharing components
+
-
|An API for adding support for new internet services
+
-
|}
+

Latest revision as of 10:42, 2 March 2011

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

Contents

[edit] Interfaces provided

Sharing interfaces
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.

[edit] System decomposition view

[edit] 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

[edit] Interfaces provided

Camera interfaces
Interface name Dependency Description
GDigicam 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.

[edit] 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

[edit] Interfaces provided

Image viewer interfaces
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.

[edit] 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

[edit] Interfaces provided

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