ivi-shell supports a type of shell for In-Vehicle Infotainment system.

In-Vehicle Infotainment system traditionally manages surfaces with global
identification. A protocol, ivi_application, supports such a feature by
implementing a request, ivi_application::surface_creation defined in
ivi_application.xml. Additionally, it initialize a library, weston-layout,
to manage properties of surfaces and group surfaces in layer. In detail,
refer library, weston_layout.

The weston-layout internal api:

API set of controlling properties of surface and layer which groups
surfaces. An unique ID whose type is integer is required to create
surface and layer. With the unique ID, surface and layer are identified
to control them. The API set consists of APIs to control properties of
surface and layers about followings,

- visibility.
- opacity.
- clipping (x,y,width,height).
- position and size of it to be displayed.
- orientation per 90 degree.
- add or remove surfaces to a layer.
- order of surfaces/layers in layer/screen to be displayed.
- commit to apply property changes.
- notifications of property change.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
A reference protocol of ivi hmi controller to set up IVI style UI.

The reference protocol is used between hmi-controller and
hmi-controller-homescreen.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
A reference implementation how to use weston-layout library.

The library is used to manage layout of surfaces/layers. Layout change is
triggered by ivi-hmi-controller protocol, ivi-hmi-controller.xml. A reference
how to use the protocol, see hmi-controller-homescreen.

In-Vehicle Infotainment system usually manage properties of surfaces/layers
by only a central component which decide where surfaces/layers shall be. This
reference show examples to implement the central component as a module of
weston.

Default Scene graph of UI is defined in hmi_controller_create. It consists of
- In the bottom, a base layer to group surfaces of background, panel,
  and buttons
- Next, a application layer to show application surfaces.
- Workspace background layer to show a surface of background image.
- Workspace layer to show launcher to launch application with icons. Paths to
  binary and icon are defined in weston.ini. The width of this layer is longer
  than the size of screen because a workspace has several pages and is
  controlled by motion of input.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
A reference implementation of UI client how to use ivi-hmi-controller.

This is launched from hmi-controller by using hmi_client_start and create a
pthread.

The basic flow is as followed,
1/ create pthread
2/ read configuration from weston.ini.
3/ draw png file to surface according to configuration of weston.ini
4/ set up UI by using ivi-hmi-controller protocol
5/ Enter event loop
6/ If a surface receives touch/pointer event, followings are invoked according
   to type of event and surface
6-1/ If a surface to launch ivi_application receive touch up, it execs
     ivi-application configured in weston.ini.
6-2/ If a surface to switch layout mode receive touch up, it sends a request,
     ivi_hmi_controller_switch_mode, to hmi-controller.
6-3/ If a surface to show workspace having launchers, it sends a request,
     ivi_hmi_controller_home, to hmi-controller.
6-4/ If touch down events happens in workspace,
     ivi_hmi_controller_workspace_control is sent to slide workspace.
     When control finished, event: ivi_hmi_controller_workspace_end_control
     is received.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Add refernce image files for ivi-hmi-controller

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Add a reference of weston.ini for ivi-shell and ivi-hmi-controller.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Modify example clients to support ivi-application.xml

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Bug fix: missing initialization of link of surface.

weston_layout_layerSetRenderOrder shall initialize link of layer and
surface at the begging of the method. This is because the API shall
reorder surfaces in a layer from scratch.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Bug fix: weston_layout_screenSetRenderOrder

- weston_layout_layerSetRenderOrder shall initialize link of both screen
and layer at the begging of the method. This is because the API shall
reorder layers in a screen from scratch.
- layers shall be inserted to a screen to support multiply display.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reference implementation of input panel for ivi-shell.

The basement of this code is from input-panel.c of desktop shell.

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Add client example, weston-editor-ivi, to verify input-panel for ivi-shell

Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Avoid segv when application is terminated.

Change-Id: Iee24b7b8d101333c72f9bbf4165bf48f26e7fbad
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
ingnore data/wayland.png

Change-Id: I2f74d8e7842c9cb481f7758e0412875c069926f4
Support simple-shm

Change-Id: Ie5698620d07bbcc1b249f6d8019efb61020199e8
simple-egl support

Change-Id: I09383fe08222a9cc5e30dc53f703774f2ef3cf4b
Support window

Change-Id: Ic01c78cab538f3ad602763b56255a930367da5bc
hmi-controller

Change-Id: I21f11bcd4274bcbf21ca87f883a31eae21573f82