Media_Center_kernel
Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/ubuntu-media-center
Created: Date(2006-04-23T15:03:45Z) by Sébastien GRIPON
Contributors: Sébastien GRIPON, UbuntuMediaCenterTeam
Packages affected:
Summary
This is the specification of the kernel of the Ubuntu Media Center (MC). See UbuntuMediaCenter.
Rationale
Ubuntu MC kernel has to manage essential features of the software. These features are listed below :
- Initialization of the kernel: all resources and settings are initialized by the kernel. This initialization includes the loading of the default UI set up by the user.
- Initialization of additional modules: the kernel detects installed modules and launch initialization of active ones. Active modules are defined in the MC Control Panel.
- Management of the display engine: the kernel is able to create and display graphical objects. A set of graphical objects is available to additional modules in order to let them display their proper information. Theme management is encapsulated in the graphical objects: additional modules don't have worry about the theme.
OuattaraAziz : Wouldn't it be more efficient to have a UI module ? We might define an Interface for UI module so that other modules won't have to worry about the UI management.
- Management of user interaction: following the different commands received by the MC kernel, many actions can be done. A set of authorized commands is defined . These commands are mapped on active device actions: keyboard, mouse or remote control. Commands are treated by the kernel are redirected to additional modules following the current state of the MC.
OuattaraAziz : Controller Interface definition ? introducing a notion of controller modules.
- Management of modules: the kernel is able to run or stop the execution of modules. It can also ask a module to run in background, without any display or with a display in a thumbnail.
- Management of the main menu: once the MC is initialized, the main menu is displayed. The main menu contains buttons to run modules. It can also contain other information like date and time. Moreover, some parts of the main menu screen are reserved for the module running in background. For exemple, if the TV module is running in background, a screen area is reserved to display the TV playback.
Use cases
Scope
Design
- The display engine.
Screens of the user interface are described in XML files. The DTD for XML screen files will be available soon. A screen designer software will be developped in order to build extension modules very easibly and quickly. The display engine is made of a kernel and extensions plugins. A set of basic extensions plugins will be available with the first release and usable in the screen designer. There is several categories of extensions plugins : viewers, listers, ... A complete list will be defined later. The originality of the display engine is that it is very easy to extend its capacity building few files. For example, the TV module will define in the screen designer a "widget" on the screen where the TV image must be drawn. This widget is associated with a "Viewer" plugin: this plugin will display the TV in the widget area.
Implementation
=== Activity diagrams ===
- Going to the video context (UI may show the video menu )
attachment:ActivityDiagram_1.jpeg
Code
Data preservation and migration
Outstanding issues