Understanding waylaid-ivi-extension 1.9.0 APIs usage

Ucan, Emre (ADITG/SW1) eucan at de.adit-jv.com
Wed Mar 9 04:53:55 EST 2016

Hello Vikas,

My answers are below

> -----Original Message-----
> From: genivi-ivi-layer-management-bounces at lists.genivi.org [mailto:genivi-
> ivi-layer-management-bounces at lists.genivi.org] On Behalf Of Vikas Patil
> Sent: Dienstag, 8. März 2016 11:25
> To: genivi-ivi-layer-management at lists.genivi.org; genivi-meta-
> ivi at lists.genivi.org
> Subject: Understanding waylaid-ivi-extension 1.9.0 APIs usage
> Dear All,
> I am trying to upgrade as follows. With this I am trying to run the simple-egl
> (weston example test) (which I have modified to include apis from ilmClient,
> ilmControl and ilmCommon to avoid the need for using any commands using
> "LayermanagerControl"
> to get it working correctly and displaying). It was working fine previously but
> after upgrade it is not working as expected.
> upgrade:
> - from wayland/weston 1.8.0/18.0   to   1.9.0/1.9.0
> - from wayland-ivi-extension 1.4.0   to   1.9.0
> However I was able to make work my sample app working in two ways 1.
> After using the layer-add-surface.
> 2. Using
> "ilm_surfaceAddNotification(ilmSurfaceId,&surfaceCallbackFunction)"
> and doing all surface related calls after configure event.
> I think I know bit and pieces (after looking at the commit logs) but not the
> complete design and flow. Could you please elaborate what exactly has been
> changed and how should it be used?
> It would be very helpful if someone can answer following queries too:
> 1. How to use ilmClient and ilmControl within single source/process?
> 2. Will LayermanagerControl also works if I use the client and control in single
> process?
> 3. How to decide which following apis to use ? Could it be used in single
> process?
> ilmClient_init()

This API is only required when you want to create surfaces.
> ilm_init()
> ilm_initWithNativedisplay()

These are basically very similar. Ilm_initWithNativedisplay uses the pregiven wl_display and ilm_init creates a wl_display itself

> ilmControl_init()
You should not call this API directly. Ilm_init and ilm_initWithNativedisplay calls this API internally.

If you want to have ilmClient and ilmControl API in one precess, you have to call:
- ilmClient_init
- ilm_init or ilm_initWithNativedisplay

> 4. Is it must to use following apis to add surface to layer and changing other
> surface properties as shown in layer-add-surface.c? or Without this also I can
> use the client and control APIs and make application working properly?
> ilm_surfaceAddNotification()
> ilm_registerNotification()

You need this API to notify your HMI for creation of surfaces/layers.

If your HMI is creating its own surfaces, you do not need to use these APIs.
> Sometime I also see following error when trying LayermanagerControl while
> using (ilm_initWithNativedisplay(), ilmControl_init()) inside application, what
> does it signifies?
> LayerManagerControl analyze surface 70
> unknown object (17), message layer(?o)
> Failed to initialize wayland connection: Invalid argument [Warning] The
> ilm_control_context is already destroyed Interpreter error: failed

This error means that the wayland compositor does not respond.

> Thanks & Regards,
> Vikash
> _______________________________________________
> genivi-ivi-layer-management mailing list genivi-ivi-layer-
> management at lists.genivi.org
> https://lists.genivi.org/mailman/listinfo/genivi-ivi-layer-management

Best regards

Emre Ucan
Software Group I (ADITG/SW1)

Tel. +49 5121 49 6937

More information about the genivi-ivi-layer-management mailing list