MAFW Manual |
---|
MAFW is formed by the following components:
MAFW Library: The MAFW library contains the common classes and interfaces defined in the framework. These expose the major elements of the framework and how the developer can interact with them.
MAFW Shared: This package provides means for sharing components among different applications using MAFW. It is composed of:
libmafw-shared: A library to use the shared services, this means, to access the mafw-dbus-wrapper and the playlist daemon.
mafw-dbus-wrapper: A wrapper to use the shared extensions (sources and renderers).
mafw-playlist-daemon: A daemon in charge of storing and serving shared playlists.
MAFW Extension: These are the different backends/plugins that provide means for accessing and using multimedia resources. These extensions implement the interfaces defined in the MAFW library. There are two types of extensions:
Sources: They provide access to multimedia libraries, like a local hard drive with multimedia content or UPnP servers for example.
Renderers: They provide the means for controlling playback of the multimedia items served by the sources.
Extensions can be used in two forms:
In-process: The extension plugins are loaded in the same address space as the application that loads them. In this case the extensions are owned by the application and they not shared with other processes .
Out-of-process: The extension plugins are loaded by the mafw-dbus-wrapper in a separate process. Communication with the extensions is handled using DBUS, however this is hidden to the application developers: the MAFW registry (which is the responsible for making the plugins available for applications) provides proxies of the remote extensions that handle the DBUS communications transparently for them.