blob: 7f41291019682bfb47617ab63f2aabe5a2056815 [file] [log] [blame]
Nobuhiko Tanibata930faee2014-11-27 13:19:23 +09001 In-vehicle infotainment (information and entertainment)
2 graphical environment support modules for Weston
3
4
5IVI-shell is an alternative shell for Weston, a Wayland display server.
6Window management and application interaction with the display server
7are very different to that of a normal desktop, which is why this is
8a separate shell and not an extension to the desktop-shell suite with
9xdg_shell. As such, applications need to be specifically written to use
10IVI-shell.
11
12IVI-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
26The 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
69How to compile:
70same as weston. To disable, use option: --disable-ivi-shell for configure.
71
72How to configure weston.ini:
73reference ini file will be generated in <build_dir>/ivi-shell.
74
75How to run:
76same as weston. exec weston.
77
78How to use UI:
79http://lists.freedesktop.org/archives/wayland-devel/attachments/20140625/abbfc064/attachment-0001.png