How has SHR been built?
Please refer to the attached picture explaining how we built this architecture.
There's a central daemon called phonefsod which handles events. It's using libframeworkd-glib which is mainly a glib wrapper for dbus calls to frameworkd. There's a libphone-ui package which describes primitives of what we consider "views" having to be shown to the user.
These screens are called either by phonefsod on events (e.g. incoming calls) or by the user when he initiates things (e.g. dialer, contacts... - via phoneui-apps).
phoneuid caches those views to speed up those applications.
There can be as many libraries implementing libphone-ui as you can think about. The one SHR is based on right now is libphone-ui-shr. It's an implementation of the libphone-ui headers, and it uses libframeworkd-glib.
SHR is build from the following parts:
- OE - build environment, linux base
- FSO - implementation of the FreeSmartPhone? API, does the lowlevel telephony work
- SHR-specific code - talks to FSO, provides GUI
There are currently two implementations of the FSO API:
- Frameworkd - the original, mostly python implementation
- Cornucopia/FSO2 - Vala/C implementation
SHR is in the process of progressively replacing parts of Frameworkd with parts from Cornucopia/FSO2.
|frameworkd||FSO||Original FSO API implementation||src|
|fsodeviced||FSO2||FSO device daemon||info src|
|fsotdld||FSO2||FSO time, data and location daemon||info src|
|fsogsmd||FSO2||GSM Communications Manager||info src|
|fsousaged||FSO2||Resource Manager||info src|