[PATCH weston-ivi-shell 00/15] a reference shell for In-Vehicle Infotainment system

Nobuhiko Tanibata nobuhiko_tanibata at xddp.denso.co.jp
Sun Mar 16 23:17:38 PDT 2014


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 


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

More information about the wayland-devel mailing list