ivi-shell: add README for ivi-shell
[profile/ivi/weston-ivi-shell.git] / ivi-shell / README
1         In-vehicle infotainment (information and entertainment)
2         graphical environment support modules for Weston
3
4
5 IVI-shell is an alternative shell for Weston, a Wayland display server.
6 Window management and application interaction with the display server
7 are very different to that of a normal desktop, which is why this is
8 a separate shell and not an extension to the desktop-shell suite with
9 xdg_shell. As such, applications need to be specifically written to use
10 IVI-shell.
11
12 IVI-shell contains two main features:
13 - Common layout library for surface, which allow ivi-shell developer
14   to develop own shell, linking Common layout library.
15   For the time being, the library refers Genivi ilm interface.
16
17   http://projects.genivi.org/wayland-ivi-extension/
18
19 - Extension protocal; ivi-application to tie wl_surface and a given ID.
20   With this ID, shell can identify which wl_surface is drawn by which
21   application. In in-vehicle infortainment system, a shell has to update
22   a property of a wl_surface. E.g. there may be a use case when vehicle
23   starts to move, the wl_surface drawn by Car navigation is expected to
24   move top of surfaces.
25
26 The actual software components delivered with Weston are:
27
28 - ivi-application.xml:
29         Wayland protocol extension for IVI-applications; the public
30         shell protocol (the same concept as xdg_shell).
31         Implemented by ivi-shell.so.
32
33 - ivi-shell.so:
34         A Weston shell module that implements ivi-application.xml interfaces.
35         Loads ivi-layout.so.
36
37 - ivi-layout.so:
38         Implements the IVI window management concepts: Screen, Layer,
39         Surface, groups of Layers, groups of Surfaces, see:
40         http://projects.genivi.org/ivi-layer-management/node/13
41         Offers a stable API for writing IVI-controller modules like
42         hmi-controller.so against the IVI concepts. In other words,
43         it offers an API to write IVI window manager modules.
44
45 - hmi-controller.so:
46         A sample implementation of an IVI-controller module, usually
47         replaced by IVI system vendors.
48         Uses ivi-layout.so to perform essentially window manager tasks.
49         This implementation keeps all window management inside the module,
50         while IVI-systems may use another module that exposes all window
51         management via Wayland or other protocol for an external process
52         to control:
53         http://git.projects.genivi.org/?p=wayland-ivi-extension.git;a=summary
54
55 - ivi-hmi-controller.xml:
56         Wayland protocol extension for IVI display control; the private
57         shell protocol for weston-ivi-shell-user-interface client
58         (the same concept as desktop-shell.xml).
59         Implemented by hmi-controller.so, and usually replaced by IVI
60         system vendors.
61
62 - weston-ivi-shell-user-interface:
63         A sample implementation of an IVI shell helper client, usually
64         replaced by IVI system vendors.
65         A helper client for basic display content, similar to
66         weston-desktop-shell.
67
68
69 How to compile:
70 same as weston. To disable, use option: --disable-ivi-shell for configure.
71
72 How to configure weston.ini:
73 reference ini file will be generated in <build_dir>/ivi-shell.
74
75 How to run:
76 same as weston. exec weston.
77
78 How to use UI:
79 http://lists.freedesktop.org/archives/wayland-devel/attachments/20140625/abbfc064/attachment-0001.png