Hi,

Thanks to review comments from mainling list. I refine patch series to view them clearly. I think some review comments remained there to be fixed. I will use this thread.

BR,
Nobuhiko

2014-03-06 18:19 に nobuhiko_tanibata さんは書きました:
Hi,

This patch series adds a reference implementation of a shell for
In-Vehicle Infotainment system; IVI, libraries on the shell to manage
layout of User interface; UI, and samples how to use them. Before
stepping in overview of patches, please let me explain background and
purpose of this contribution.

Background)
I am working for prototyping a shell for In-Vehicle Infotainment; IVI
in TIZEN IVI. This prototyping is being integrated to the TIZEN IVI.

https://review.tizen.org/git/?p=profile/ivi/weston-ivi-shell.git;a=summary

I am also working for GENIVI wayland-ivi-extension and several private
projects with several Car Makers to apply a shell to its use case. The
main use case on them is very similar with each other, which is based
on a concept of Layer Management.

http://projects.genivi.org/ivi-layer-management/node/13

Purpose)
I am contributing a reference for common use case of IVI mentioned in
Background to avoid implementing same one for each user. The main use
case is Layer Management to manage properties of surfaces and layer.
Layer is used for grouping surfaces. In this patch series, I am
contributing libweston-layout.so to support Layer management features
with a set of interfaces which are defined based on
ivi-layer-management from GENIVI. With libweston-layout.so, each shell
developer of IVI can easily implement own shell.

Overview)
This patch series are mainly applied to new folder “ivi-shell” like
“desktop-shell”. This patch series consists of 5 major parts,

- ivi-shell.so : support ivi-application.xml protocol and
initialization of libweston-layout.so. The ivi-application.xml defines
simple interfaces; “ivi_application::surface_create”. An interface
ivi_application::surface_create” is used to tie ID to wl_surface from
application. In IVI use case, such IDs are predefined at system design
phase to control surface with business logic. For example, TV
application shall be invisible in case of speed restriction.

- libweston-layout.so: this shall be linked to ivi-shell.so to support
layer management APIs internally. These APIs allows us to manage
surfaces and layer by e.g. setting properties; position, visibility,
opacity and rectangle of source to crop, and so on. This APIs
internally uses weston_view as abstraction layer of compositor.

- hmi-controller.so: a reference implementation how to use
libweston-layout.so. It implement several protocols defined by
ivi-hmi-controller.xml,

1/Requesting which surface is a part of User interfaces, e.g. a
surface draw an icon from PNG files. According to request,
hmi-controller layouts specified surfaces on a Screen by using
libweston-layout.so.
2/Requesting layout change. There are 4 types of layout for a
reference; tiling, side by side, full screen, and random.
3/Requesting displaying launchers. There are several pages to group
icons which can be selected by motion of input.
4/Requesting animation moving from one page to another by motion of input.
A reference how to use these protocols are implemented in
hmi-controller-homescreen. A pthread sets up parts of UI and triggers
layout change, showing launchers, and allowing hmi-controller to
select pages of launchers by using ivi-hmi-controller.xml. This can be
implemented in separated process, e.g. desktop-shell.c, as well.

- Supporting ivi-application protocol to example in “clients” folder.
Add macro to compile ivi-application separately. Basically it uses the
same code. For example, add macro: ENABLE_IVI_CLIENT to simple-egl.c
for compiling weston-simple-egl-ivi at the same time.

- Add reference weston.ini.in for ivi-shell in ivi-shell folder as
well. It is referred by ivi-shell and hmi-controller.so to define
several configurations. E.g. setting cursor, ID of surfaces and layers
to be used by hmi-controller-homescreen, launchers; path to icons,
binary, ID which page they are located.


I am enclosing a pdf for overview of ivi-shell related parts. The pdf
also mentions ivi-controller.so maintained here to keep compatibility
with IVI layer manager.

http://git.projects.genivi.org/?p=wayland-ivi-extension.git;a=summary

It allow GENIVI graphic application to manage surfaces/layer outside
of Weston process. However it is not purpose to do animation. Ideally,
business logic shall be implemented inside of Weston process to reduce
dispatch of process as much as possible.


Best regards,
Nobuhiko
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to