From 628c465d381b2608f57b92795114f40198228bfb Mon Sep 17 00:00:00 2001 From: Kshitij Kadam Date: Wed, 19 Jan 2022 17:06:43 +0530 Subject: [PATCH] uwac-window: Make ivi surface-id configurable The ivi surface-id is made configurable by fetching it from the environment variables. An environment variable IVI_SURFACE_ID needs to be set to the required surface-id. In case it is not set then the code will take 1 as the default surface-id. Signed-off-by: Kshitij Kadam --- uwac/libuwac/uwac-window.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/uwac/libuwac/uwac-window.c b/uwac/libuwac/uwac-window.c index e57c5f509..4b065e1ba 100644 --- a/uwac/libuwac/uwac-window.c +++ b/uwac/libuwac/uwac-window.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "uwac-priv.h" #include "uwac-utils.h" @@ -486,9 +487,23 @@ UwacWindow* UwacCreateWindowShm(UwacDisplay* display, uint32_t width, uint32_t h wl_surface_set_user_data(w->surface, w); #if BUILD_IVI + uint32_t ivi_surface_id = 1; + char* env = getenv("IVI_SURFACE_ID"); + if (env) + { + unsigned long val; + char* endp; + + errno = 0; + val = strtoul(env, &endp, 10); + + if (!errno && val != 0 && val != ULONG_MAX) + ivi_surface_id = val; + } + if (display->ivi_application) { - w->ivi_surface = ivi_application_surface_create(display->ivi_application, 1, w->surface); + w->ivi_surface = ivi_application_surface_create(display->ivi_application, ivi_surface_id, w->surface); assert(w->ivi_surface); ivi_surface_add_listener(w->ivi_surface, &ivi_surface_listener, w); } else