Nobuhiko Tanibata | 930faee | 2014-11-27 13:19:23 +0900 | [diff] [blame] | 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 | |
Bryce Harrington | a86c3ee | 2015-03-18 18:42:00 -0700 | [diff] [blame^] | 19 | - Extension protocol; ivi-application to tie wl_surface and a given ID. |
Nobuhiko Tanibata | 930faee | 2014-11-27 13:19:23 +0900 | [diff] [blame] | 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 |