All of lore.kernel.org
 help / color / mirror / Atom feed
* Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
@ 2015-12-12 11:56 Vikas Patil
  2015-12-14  9:31 ` Friedrich, Eugen (ADITG/SW1)
  0 siblings, 1 reply; 7+ messages in thread
From: Vikas Patil @ 2015-12-12 11:56 UTC (permalink / raw)
  To: genivi-ivi-layer-management, meta-freescale, ntanibata,
	Carlos Rafael Giani, wayland mailing list

[-- Attachment #1: Type: text/plain, Size: 2141 bytes --]

Dear All,

I am using wayland video sink (i.e. imxeglvivsink) from
gstreamer1.0-plugins-imx [1] to play the video along with weston 1.8.0
and wayland-ivi-extenstion 1.4.0. I have modified “imxeglvivsink” to
have the ilm and touch input support [2]. Basically I am posting touch
events on GST bus and application want to have the touch can read the
messages and process the touch. This is working fine if I don’t load
the “ivi-input-controller.so”. If I load the “ivi-input-controller.so”
I am not able to get the touch event inside this plug-in. I have tried
setting touch input focus to the surface from this wayland video
plug-in using “LayermanagerControl” and ilm_setInputFocus” [3] but no
luck.


Also touch works fine even if I load “ivi-input-controller.so” with
other applications. So I suspect some modification are required to
”imxeglvivsink” [2] or “wayland-ivi-extension/weston”.

Do you know what might be going wrong? Could anyone here give some
suggestions/ideas to tryout and fix this?

Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
work for me. Any inputs for this?

I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
function in various ways but no luck and I think implementation is
correct (as it works well without ivi-input-controller)

Following is the platform setup and weston configuration.

i.MX6 Duallite
Linux 3.14.28
Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
gstreamer-imx plugin
QTwayland 5.4.2/Qt 5.4.2

Weston.ini contains:

[core]
shell=ivi-shell.so

[ivi-shell]
ivi-module=ivi-controller.so,ivi-input-controller.so
ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface


[1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
[2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
[3] http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input_Handling_APIs



Thanks & Regards,
Vikash

[-- Attachment #2: egl_platform_wayland.c --]
[-- Type: text/x-csrc, Size: 37283 bytes --]

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <poll.h>

#include <wayland-egl.h>

#include "egl_platform.h"
#include "egl_misc.h"
#include "gl_headers.h"

#define ILM_SUPPORT 1



#ifdef ILM_SUPPORT
#include "ilm/ilm_control.h"
#include "ilm/ilm_client.h"
#include "ilm/ilm_input.h"

//int           width = 800;
//int           height = 480;
t_ilm_layer   ilmLayerId = 1000;
t_ilm_surface ilmSurfaceId = 90;
#endif 


GST_DEBUG_CATEGORY_STATIC(imx_egl_platform_wl_debug);
#define GST_CAT_DEFAULT imx_egl_platform_wl_debug


struct _GstImxEglVivSinkEGLPlatform
{
	EGLNativeDisplayType native_display;
	EGLNativeWindowType native_main_window;
	EGLNativeWindowType native_window;
	EGLDisplay egl_display;
	EGLContext egl_context;
	EGLSurface egl_main_surface;
	EGLSurface egl_surface;
	
	GstElement* sink;
	
	GstImxEglVivSinkWindowResizedEventCallback window_resized_event_cb;
	GstImxEglVivSinkWindowRenderFrameCallback render_frame_cb;

	gpointer user_context;

	gboolean fullscreen;
	guint video_par_n, video_par_d;
	guint fixed_window_width, fixed_window_height, video_width, video_height;
	guint current_width, current_height;
	guint screen_width, screen_height;
	gint pending_x_coord, pending_y_coord;
	gint x_coord, y_coord;
	gboolean pending_subsurface_desync;

	GMutex mutex;

	struct wl_display *display;
	struct wl_registry *registry;
	int display_fd;
	struct wl_compositor *compositor;
	struct wl_subcompositor *subcompositor;
#ifndef ILM_SUPPORT
	struct wl_shell *shell;
#endif
	struct wl_output *output;

	struct wl_surface *main_surface;
	struct wl_surface *surface;
	struct wl_subsurface *subsurface;
#ifndef ILM_SUPPORT
	struct wl_shell_surface *shell_surface;
#endif


	struct wl_seat *seat;
	struct wl_touch *wl_touch;


	struct wl_callback *frame_cb;
	gboolean frame_callback_invoked;

	int ctrl_pipe[2];

	gboolean configured, do_render;
};

typedef enum
{
	TOUCH_HANDLE_DOWN,
	TOUCH_HANDLE_UP,
	TOUCH_HANDLE_MOTION,
	TOUCH_HANDLE_FRAME,
	TOUCH_HANDLE_CANCEL
};

#define EGL_PLATFORM_LOCK(platform) g_mutex_lock(&((platform)->mutex))
#define EGL_PLATFORM_UNLOCK(platform) g_mutex_unlock(&((platform)->mutex))


typedef enum
{
	GSTIMX_EGLWL_CMD_REDRAW,
	GSTIMX_EGLWL_CMD_CALL_RESIZE_CB,
	GSTIMX_EGLWL_CMD_STOP_MAINLOOP
}
GstImxEGLWLCmds;




static void log_handler(const char *format, va_list args)
{
	gst_debug_log_valist(imx_egl_platform_wl_debug, GST_LEVEL_LOG, __FILE__, __func__, __LINE__, NULL, format, args);
}


static void static_global_init(void)
{
	static gboolean initialized = FALSE;
	if (!initialized)
	{
		GST_DEBUG_CATEGORY_INIT(imx_egl_platform_wl_debug, "imxeglplatform_wl", 0, "imxeglvivsink Wayland platform");

		wl_log_set_handler_client(log_handler);

		initialized = TRUE;
	}
}




static void calculate_adjusted_window_size(GstImxEglVivSinkEGLPlatform *platform, guint *actual_width, guint *actual_height)
{
	gboolean b;
	guint window_par_n, window_par_d, display_ratio_n, display_ratio_d;

	window_par_n = 4;
	window_par_d = 3;

	b = gst_video_calculate_display_ratio(
		&display_ratio_n, &display_ratio_d,
		platform->video_width, platform->video_height,
		platform->video_par_n, platform->video_par_d,
		window_par_n, window_par_d
	);

	if (b)
	{
		*actual_width = platform->video_width * platform->video_par_n / platform->video_par_d;
		*actual_height = platform->video_height;
	}
	else
	{
		*actual_width = platform->video_width;
		*actual_height = platform->video_height;
	}

	GST_LOG(
		"calculate_adjusted_window_size:  video size: %dx%d  video ratio: %d/%d  display ratio: %d/%d  actual size: %ux%u",
		platform->video_width, platform->video_height,
		platform->video_par_n, platform->video_par_d,
		display_ratio_n, display_ratio_d,
		*actual_width, *actual_height
	);
}


static void resize_window_to_video(GstImxEglVivSinkEGLPlatform *platform)
{
	guint actual_width, actual_height;

	calculate_adjusted_window_size(platform, &actual_width, &actual_height);
	platform->current_width = ((platform->screen_width == 0) || (actual_width < platform->screen_width)) ? actual_width : platform->screen_width;
	platform->current_height = ((platform->screen_height == 0) || (actual_height < platform->screen_height)) ? actual_height : platform->screen_height;
	GST_LOG("final size: %dx%d", platform->current_width, platform->current_height);

	wl_egl_window_resize(platform->native_window, platform->current_width, platform->current_height, 0, 0);
	platform->pending_subsurface_desync = TRUE;
}




static void
touch_handle_down(void *data, struct wl_touch *wl_touch,
		  uint32_t serial, uint32_t time, struct wl_surface *surface,
		  int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
{
	//float x = wl_fixed_to_double(x_w);
	//float y = wl_fixed_to_double(y_w);
	
	int x = wl_fixed_to_int(x_w);
	int y = wl_fixed_to_int(y_w);
	
	GstMessage *message;
	GstStructure *structure;
	
	GstImxEglVivSinkEGLPlatform *platform = data;
	
	//printf("IMXEGLVIVSINK:touch_handle_down: (%d x %d), %d, %p \n", x, y, id, surface);
	GST_LOG("GSTIMXEGLVIVSINK:touch_handle_down: (%d x %d), %d, %p \n", x, y, id, surface);	
		
	structure = gst_structure_new("wl_touch_event",
								"type", G_TYPE_INT, TOUCH_HANDLE_DOWN,
								"id", G_TYPE_INT, id,
								"x-cord", G_TYPE_INT, x,
								"y-cord", G_TYPE_INT, y, NULL);  
									
	message = gst_message_new_element (GST_OBJECT (platform->sink), structure);
	gst_element_post_message (GST_ELEMENT (platform->sink), message);
}


static void
touch_handle_up(void *data, struct wl_touch *wl_touch,
		uint32_t serial, uint32_t time, int32_t id)
{
	GstMessage *message;
	GstStructure *structure;
	
	GstImxEglVivSinkEGLPlatform *platform = data;
	
	//printf("IMXEGLVIVSINK:touch_handle_up: %d \n", id);
	GST_LOG("GSTIMXEGLVIVSINK:touch_handle_up: %d \n", id);
	
	structure = gst_structure_new("wl_touch_event",
								"type", G_TYPE_INT, TOUCH_HANDLE_UP,
								"id", G_TYPE_INT, id, NULL);  
									
	message = gst_message_new_element (GST_OBJECT (platform->sink), structure);
	gst_element_post_message (GST_ELEMENT (platform->sink), message);
}

static void
touch_handle_motion(void *data, struct wl_touch *wl_touch,
		    uint32_t time, int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
{
	//float x = wl_fixed_to_double(x_w);
	//float y = wl_fixed_to_double(y_w);
	
	int x = wl_fixed_to_int(x_w);
	int y = wl_fixed_to_int(y_w);
	
	GstMessage *message;
	GstStructure *structure;
	GstImxEglVivSinkEGLPlatform *platform = data;
	
	//printf("IMXEGLVIVSINK:touch_handle_motion: (%d x %d), %d \n", x, y, id);
	GST_LOG("GSTIMXEGLVIVSINK:touch_handle_motion: (%d x %d), %d \n", x, y, id);
	
	structure = gst_structure_new("wl_touch_event",
								"type", G_TYPE_INT, TOUCH_HANDLE_MOTION,
								"id", G_TYPE_INT, id, 
								"x-cord", G_TYPE_INT, x,
								"y-cord", G_TYPE_INT, y, NULL);  
									
	message = gst_message_new_element (GST_OBJECT (platform->sink), structure);
	gst_element_post_message (GST_ELEMENT (platform->sink), message);
}

static void
touch_handle_frame(void *data, struct wl_touch *wl_touch)
{
	GstMessage *message;
	GstStructure *structure;
	GstImxEglVivSinkEGLPlatform *platform = data;
	
	//printf("IMXEGLVIVSINK:touch_handle_frame\n");
	GST_LOG("GSTIMXEGLVIVSINK:touch_handle_frame\n");
	
	structure = gst_structure_new("wl_touch_event",
								"type", G_TYPE_INT, TOUCH_HANDLE_FRAME, NULL);  
									
	message = gst_message_new_element (GST_OBJECT (platform->sink), structure);
	gst_element_post_message (GST_ELEMENT (platform->sink), message);
}

static void
touch_handle_cancel(void *data, struct wl_touch *wl_touch)
{
	GstMessage *message;
	GstStructure *structure;
	GstImxEglVivSinkEGLPlatform *platform = data;
	
	//printf("IMXEGLVIVSINK:touch_handle_cancel\n");
	GST_LOG("GSTIMXEGLVIVSINK:touch_handle_cancel\n");
	
	structure = gst_structure_new("wl_touch_event",
								"type", G_TYPE_INT, TOUCH_HANDLE_CANCEL, NULL);  
									
	message = gst_message_new_element (GST_OBJECT (platform->sink), structure);
	gst_element_post_message (GST_ELEMENT (platform->sink), message);
} 

static const struct wl_touch_listener touch_listener = {
	touch_handle_down,
	touch_handle_up,
	touch_handle_motion,
	touch_handle_frame,
	touch_handle_cancel,
};

static void
seat_handle_capabilities(void *data, struct wl_seat *wl_seat,
			 enum wl_seat_capability caps)
{
	GstImxEglVivSinkEGLPlatform *platform = data;
	
	if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !platform->wl_touch) {
		printf("Display has a touch screen\n");
		GST_INFO("Display has a touch screen\n");
		platform->wl_touch = wl_seat_get_touch(wl_seat);
		wl_touch_set_user_data(platform->wl_touch, platform);
		wl_touch_add_listener(platform->wl_touch, &touch_listener, platform);
	} else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && platform->wl_touch) {
		wl_touch_destroy(platform->wl_touch);
		platform->wl_touch = NULL;
	}
}

static const struct wl_seat_listener seat_listener = {
	seat_handle_capabilities,
};


static void registry_handle_global(void *data, struct wl_registry *registry, uint32_t id, char const *interface, G_GNUC_UNUSED uint32_t version)
{
	GstImxEglVivSinkEGLPlatform *platform = data;

	if (g_strcmp0(interface, "wl_compositor") == 0)
		platform->compositor = wl_registry_bind(registry, id, &wl_compositor_interface, 1);
#ifndef ILM_SUPPORT
	else if (g_strcmp0(interface, "wl_shell") == 0)
		platform->shell = wl_registry_bind(registry, id, &wl_shell_interface, 1);
#endif
	else if (g_strcmp0(interface, "wl_output") == 0)
		platform->output = wl_registry_bind(registry, id, &wl_output_interface, 2);
	else if (g_strcmp0(interface, "wl_subcompositor") == 0)
		platform->subcompositor = wl_registry_bind(registry, id,
			&wl_subcompositor_interface, 1);
	else if (g_strcmp0(interface, "wl_seat") == 0)
	{
		platform->seat = wl_registry_bind(registry, id, &wl_seat_interface, 1);
		wl_seat_add_listener(platform->seat, &seat_listener, platform);
	}
}

static void registry_handle_global_remove(G_GNUC_UNUSED void *data, G_GNUC_UNUSED struct wl_registry *registry, G_GNUC_UNUSED uint32_t name)
{
}

static const struct wl_registry_listener registry_listener =
{
	registry_handle_global,
	registry_handle_global_remove
};




static void output_geometry(G_GNUC_UNUSED void *data, G_GNUC_UNUSED struct wl_output *wl_output, G_GNUC_UNUSED int x, G_GNUC_UNUSED int y, G_GNUC_UNUSED int w, G_GNUC_UNUSED int h, G_GNUC_UNUSED int subpixel, G_GNUC_UNUSED const char *make, G_GNUC_UNUSED const char *model, G_GNUC_UNUSED int transform)
{
}

static void output_mode(G_GNUC_UNUSED void *data, G_GNUC_UNUSED struct wl_output *wl_output, G_GNUC_UNUSED unsigned int flags, int w, int h, G_GNUC_UNUSED int refresh)
{
	GstImxEglVivSinkEGLPlatform *platform = data;

	if (flags & WL_OUTPUT_MODE_CURRENT)
	{
		GST_LOG("reported screen size: %dx%d", w, h);

		platform->screen_width = w;
		platform->screen_height = h;

#if 0 /* This becomes unnecessary as the callback is dispatched before configuring the window. */
		/* resize again in case the window is set to the video size
		 * (this makes sure the window is not larger than the screen) */
		if (
			   !platform->fullscreen
			&& (platform->fixed_window_width == 0) && (platform->fixed_window_height == 0)
			&& (platform->video_width != 0) && (platform->video_height != 0)
			//&& (platform->parent_window != 0) // TODO
		)
		{
			resize_window_to_video(platform);

			if (platform->window_resized_event_cb != NULL)
			{
				char const cmd = GSTIMX_EGLWL_CMD_CALL_RESIZE_CB;
				write(platform->ctrl_pipe[1], &cmd, 1);
			}
		}
#endif
	}
}

static void output_done(G_GNUC_UNUSED void *data, G_GNUC_UNUSED struct wl_output *output)
{
}

static void output_scale(G_GNUC_UNUSED void *data, G_GNUC_UNUSED struct wl_output *output, G_GNUC_UNUSED int scale)
{
}

static const struct wl_output_listener output_listener =
{
	output_geometry,
	output_mode,
	output_done,
	output_scale
};




static void handle_ping(G_GNUC_UNUSED void *data, struct wl_shell_surface *shell_surface, uint32_t serial)
{
	wl_shell_surface_pong(shell_surface, serial);
}

static void handle_configure(void *data, G_GNUC_UNUSED struct wl_shell_surface *shell_surface, G_GNUC_UNUSED uint32_t edges, int32_t width, int32_t height)
{
	GstImxEglVivSinkEGLPlatform *platform = data;

	GST_LOG("reconfiguring window size to %dx%d pixels", width, height);

	platform->current_width = width;
	platform->current_height = height;

	if (platform->native_window != NULL)
		wl_egl_window_resize(platform->native_window, width, height, 0, 0);

	if (platform->window_resized_event_cb != NULL)
		platform->window_resized_event_cb(platform, width, height, platform->user_context);
	else
		glViewport(0, 0, width, height);

	platform->pending_subsurface_desync = TRUE;
}

static void handle_popup_done(G_GNUC_UNUSED void *data, G_GNUC_UNUSED struct wl_shell_surface *shell_surface)
{
}

static const struct wl_shell_surface_listener shell_surface_listener =
{
	handle_ping,
	handle_configure,
	handle_popup_done
};




static void frame_callback(void *data, struct wl_callback *callback, G_GNUC_UNUSED uint32_t time);

static const struct wl_callback_listener frame_listener =
{
	frame_callback
};

static void background_draw(GstImxEglVivSinkEGLPlatform *platform);

static void frame_callback(void *data, struct wl_callback *callback, G_GNUC_UNUSED uint32_t time)
{
	GstImxEglVivSinkEGLPlatform *platform = data;

	/* Cleanup old callback */
	if (callback != NULL)
		wl_callback_destroy(callback);

	platform->frame_callback_invoked = TRUE;
	GST_LOG("frame_callback_invoked set to TRUE");

	/* Setup new callback */
	platform->frame_cb = wl_surface_frame(platform->surface);
	wl_callback_add_listener(platform->frame_cb, &frame_listener, platform);
}




static void configure_callback(void *data, struct wl_callback *callback, uint32_t time)
{
	GstImxEglVivSinkEGLPlatform *platform = data;
	struct wl_region *input_region;

	wl_callback_destroy(callback);

	/* Position sub-surface. */
	if (!platform->fullscreen &&
		(platform->pending_x_coord != platform->x_coord ||
		 platform->pending_y_coord != platform->y_coord)) {

		platform->x_coord = platform->pending_x_coord;
		platform->y_coord = platform->pending_y_coord;
		wl_subsurface_set_position(platform->subsurface,
			platform->x_coord,
			platform->y_coord);
	}

	/* Set the input region carefully so that we only receive events on the sub-surface. */
	input_region = wl_compositor_create_region(platform->compositor);
	wl_region_add(input_region, platform->x_coord, platform->y_coord,
		platform->current_width, platform->current_height);
	wl_surface_set_input_region(platform->main_surface, input_region);
	wl_region_destroy(input_region);

	platform->configured = TRUE;
	background_draw(platform);
	if (platform->frame_cb == NULL)
		frame_callback(data, NULL, time);
}

static struct wl_callback_listener configure_callback_listener =
{
	configure_callback,
};


static void background_draw(GstImxEglVivSinkEGLPlatform *platform)
{
	if (!platform->configured || !platform->do_render)
		return;

	eglMakeCurrent(platform->egl_display,
		platform->egl_main_surface,
		platform->egl_main_surface,
		platform->egl_context);
	glClearColor(0, 0, 0, 0);
	glClear(GL_COLOR_BUFFER_BIT);
	eglSwapBuffers(platform->egl_display, platform->egl_main_surface);
}

static void redraw(GstImxEglVivSinkEGLPlatform *platform)
{
	struct wl_region *region;

	if (!platform->configured || !platform->do_render)
		return;

	eglMakeCurrent(platform->egl_display, platform->egl_surface, platform->egl_surface, platform->egl_context);
	/* The actual rendering */
	if (platform->render_frame_cb != NULL)
		platform->render_frame_cb(platform, platform->user_context);

	/* Define opaque region */
	region = wl_compositor_create_region(platform->compositor);
	wl_region_add(
		region,
		0, 0,
		platform->current_width,
		platform->current_height
	);
	wl_surface_set_opaque_region(platform->surface, region);
	wl_region_destroy(region);

	/* Finally, do the actual commit to the server */
	wl_surface_commit(platform->main_surface);
	eglSwapBuffers(platform->egl_display, platform->egl_surface);
}


GstImxEglVivSinkEGLPlatform* gst_imx_egl_viv_sink_egl_platform_create(gchar const *native_display_name, GstImxEglVivSinkWindowResizedEventCallback window_resized_event_cb, GstImxEglVivSinkWindowRenderFrameCallback render_frame_cb, gpointer user_context)
{
	EGLint ver_major, ver_minor;
	GstImxEglVivSinkEGLPlatform* platform;

	g_assert(window_resized_event_cb != NULL);
	g_assert(render_frame_cb != NULL);

	static_global_init();

	platform = (GstImxEglVivSinkEGLPlatform *)g_new0(GstImxEglVivSinkEGLPlatform, 1);
	platform->window_resized_event_cb = window_resized_event_cb;
	platform->render_frame_cb = render_frame_cb;
	platform->user_context = user_context;

	g_mutex_init(&(platform->mutex));

	platform->ctrl_pipe[0] = -1;
	platform->ctrl_pipe[1] = -1;
	if (pipe(platform->ctrl_pipe) == -1)
	{
		GST_ERROR("error creating POSIX pipe: %s", strerror(errno));
		goto cleanup;
	}

	platform->display = wl_display_connect(native_display_name);
	if (platform->display == NULL)
	{
		GST_ERROR("wl_display_connect failed: %s", strerror(errno));
		goto cleanup;
	}

	platform->registry = wl_display_get_registry(platform->display);
	wl_registry_add_listener(platform->registry, &registry_listener, platform);
	if (wl_display_dispatch(platform->display) == -1)
	{
		GST_ERROR("wl_display_dispatch failed: %s", strerror(errno));
		goto cleanup;
	}

	wl_output_add_listener(platform->output, &output_listener, platform);
	if (wl_display_dispatch(platform->display) == -1)
	{
		GST_ERROR("wl_display_dispatch failed: %s", strerror(errno));
		goto cleanup;
	}

	platform->display_fd = wl_display_get_fd(platform->display);

	platform->egl_display = eglGetDisplay(platform->display);
	if (platform->egl_display == EGL_NO_DISPLAY)
	{
		GST_ERROR("eglGetDisplay failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto cleanup;
	}

	if (!eglInitialize(platform->egl_display, &ver_major, &ver_minor))
	{
		GST_ERROR("eglInitialize failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto cleanup;
	}

	GST_INFO("Wayland EGL platform initialized, using EGL %d.%d", ver_major, ver_minor);

	return platform;


cleanup:
	/* either both are set, or none is */
	if (platform->ctrl_pipe[0] != -1)
	{
		close(platform->ctrl_pipe[0]);
		close(platform->ctrl_pipe[1]);
	}

	if (platform->display != NULL)
	{
		wl_display_flush(platform->display);
		wl_display_disconnect(platform->display);
	}

	g_mutex_clear(&(platform->mutex));

	g_free(platform);
	return NULL;
}


void gst_imx_egl_viv_sink_egl_platform_destroy(GstImxEglVivSinkEGLPlatform *platform)
{
	if (platform == NULL)
		return;

	eglMakeCurrent(platform->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

	if (platform->egl_display != EGL_NO_DISPLAY)
		eglTerminate(platform->egl_display);
#ifndef ILM_SUPPORT
	if (platform->shell != NULL)
		wl_shell_destroy(platform->shell);
#endif
	if (platform->subcompositor != NULL)
		wl_subcompositor_destroy(platform->subcompositor);

	if (platform->compositor != NULL)
		wl_compositor_destroy(platform->compositor);

	if (platform->output != NULL)
		wl_output_destroy(platform->output);

	wl_display_flush(platform->display);
	wl_display_disconnect(platform->display);

	/* either both are set, or none is */
	if (platform->ctrl_pipe[0] != -1)
	{
		close(platform->ctrl_pipe[0]);
		close(platform->ctrl_pipe[1]);
	}

	g_mutex_clear(&(platform->mutex));

	g_free(platform);
}

#ifdef ILM_SUPPORT
static int
create_ilm_surface(GstImxEglVivSinkEGLPlatform *platform)
{
    int s_width = 0;
    int s_height = 0;
    ilmErrorTypes rtnv = 0;

    s_width = platform->screen_width;
    s_height = platform->screen_height;
	
    ilm_initWithNativedisplay((t_ilm_nativedisplay)platform->display);

    /* Creates ilm surfce */
    rtnv = ilm_surfaceCreate((t_ilm_nativehandle)platform->main_surface,
                             s_width, s_height,
                             ILM_PIXELFORMAT_RGBA_8888, &ilmSurfaceId);
    if (rtnv != ILM_SUCCESS)
    {
	 printf("ilm_surfaceCreate Failed\n");
        return 1;
    }
	
    rtnv = ilm_layerCreateWithDimension(&ilmLayerId, s_width, s_height);
    rtnv = ilm_layerSetVisibility(ilmLayerId, ILM_TRUE);
    rtnv = ilm_displaySetRenderOrder((t_ilm_display) 0, &ilmLayerId, 1);
    rtnv = ilm_layerSetRenderOrder(ilmLayerId, &ilmSurfaceId, 1);
  
    rtnv = ilm_surfaceSetDestinationRectangle(ilmSurfaceId, 0, 0, s_width, s_height);
    rtnv = ilm_surfaceSetSourceRectangle(ilmSurfaceId, 0, 0, s_width, s_height);
    rtnv = ilm_surfaceSetVisibility(ilmSurfaceId, ILM_TRUE);
    rtnv = ilm_surfaceSetOpacity(ilmSurfaceId, 1.0f);
    rtnv = ilm_setInputFocus(&ilmSurfaceId, 1, ILM_INPUT_DEVICE_TOUCH, ILM_TRUE);
	
    rtnv =  ilm_layerAddSurface(ilmLayerId, ilmSurfaceId);
    rtnv = ilm_commitChanges();
	
    if(rtnv != ILM_SUCCESS)
    {
	printf("create_ilm_surface Failed\n");
       return 1;
    }
	
    printf("create_ilm_surface finished\n");
    return rtnv;
}
#endif 


gboolean gst_imx_egl_viv_sink_egl_platform_init_window(GstImxEglVivSinkEGLPlatform *platform, guintptr window_handle, gboolean event_handling, GstVideoInfo *video_info, gboolean fullscreen, gint x_coord, gint y_coord, guint width, guint height, G_GNUC_UNUSED gboolean borderless)
{
	EGLint num_configs;
	EGLConfig config;
	guint chosen_width, chosen_height;
	int actual_width, actual_height;

	static EGLint const eglconfig_attribs[] =
	{
		EGL_RED_SIZE, 1,
		EGL_GREEN_SIZE, 1,
		EGL_BLUE_SIZE, 1,
		EGL_ALPHA_SIZE, 1,
		EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
		EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
		EGL_NONE
	};

	static EGLint const ctx_attribs[] =
	{
		EGL_CONTEXT_CLIENT_VERSION, 2,
		EGL_NONE
	};


	EGL_PLATFORM_LOCK(platform);


	if (!eglChooseConfig(platform->egl_display, eglconfig_attribs, &config, 1, &num_configs))
	{
		GST_ERROR("eglChooseConfig failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto fail;
	}


	if (platform->compositor == NULL)
	{
		GST_ERROR("compositor pointer is NULL");
		goto fail;
	}

	if (platform->subcompositor == NULL)
	{
		GST_ERROR("subcompositor pointer is NULL");
		goto fail;
	}
#ifndef ILM_SUPPORT
	if (platform->shell == NULL)
	{
		GST_ERROR("shell pointer is NULL");
		goto fail;
	}
#endif 
	if ((platform->main_surface = wl_compositor_create_surface(platform->compositor)) == NULL)
	{
		GST_ERROR("creating main Wayland surface failed");
		goto fail;
	}

	if ((platform->surface = wl_compositor_create_surface(platform->compositor)) == NULL)
	{
		GST_ERROR("creating Wayland surface failed");
		goto fail;
	}

	if ((platform->subsurface = wl_subcompositor_get_subsurface(platform->subcompositor,
		platform->surface, platform->main_surface)) == NULL)
	{
		GST_ERROR("creating Wayland subsurface failed");
		goto fail;
	}
#ifndef ILM_SUPPORT
	if ((platform->shell_surface = wl_shell_get_shell_surface(platform->shell,
		platform->main_surface)) == NULL)
	{
		GST_ERROR("creating Wayland shell surface failed");
		goto fail;
	}

	wl_shell_surface_add_listener(platform->shell_surface, &shell_surface_listener, platform);
#endif
	platform->pending_subsurface_desync = TRUE;

	platform->fixed_window_width = width;
	platform->fixed_window_height = height;

	platform->video_par_n = GST_VIDEO_INFO_PAR_N(video_info);
	platform->video_par_d = GST_VIDEO_INFO_PAR_D(video_info);
	platform->video_width = GST_VIDEO_INFO_WIDTH(video_info);
	platform->video_height = GST_VIDEO_INFO_HEIGHT(video_info);
	platform->pending_x_coord = x_coord;
	platform->pending_y_coord = y_coord;
	platform->x_coord = -1;
	platform->y_coord = -1;

	platform->fullscreen = fullscreen;

	/* If either no fixed size is set, or fullscreen is requested, use the video frame size
	 * In the fullscreen case, the size is actually irrelevant, since it will be overwritten
	 * with the screen size. But passing zero for the width/height values is invalid, the
	 * video frame size is used. */
	if ((width == 0) || (height == 0) || fullscreen)
	{
		calculate_adjusted_window_size(platform, &chosen_width, &chosen_height);
		/*chosen_width = platform->video_width;
		chosen_height = platform->video_height;*/
	}
	else
	{
		chosen_width = width;
		chosen_height = height;
	}

	platform->native_main_window = wl_egl_window_create(platform->main_surface,
		platform->screen_width, platform->screen_height);
	if (platform->native_main_window == NULL)
	{
		GST_ERROR("wl_egl_window_create failed to create the background window");
		goto fail;
	}

	platform->native_window = wl_egl_window_create(platform->surface, chosen_width, chosen_height);
	if (platform->native_window == NULL)
	{
		GST_ERROR("wl_egl_window_create failed to create a  %dx%d window", width, height);
		goto fail;
	}

	if (!eglBindAPI(EGL_OPENGL_ES_API))
	{
		GST_ERROR("eglBindAPI failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto fail;
	}



	platform->egl_context = eglCreateContext(platform->egl_display, config, EGL_NO_CONTEXT, ctx_attribs);
	if (platform->egl_context == EGL_NO_CONTEXT)
	{
		GST_ERROR("eglCreateContext failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto fail;
	}

	platform->egl_main_surface = eglCreateWindowSurface(platform->egl_display, config, platform->native_main_window, NULL);
	if (platform->egl_main_surface == EGL_NO_SURFACE)
	{
		GST_ERROR("eglCreateWindowSurface failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto fail;
	}

	platform->egl_surface = eglCreateWindowSurface(platform->egl_display, config, platform->native_window, NULL);
	if (platform->egl_surface == EGL_NO_SURFACE)
	{
		GST_ERROR("eglCreateWindowSurface failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto fail;
	}

	if (!eglMakeCurrent(platform->egl_display, platform->egl_main_surface, platform->egl_main_surface, platform->egl_context))
	{
		GST_ERROR("eglMakeCurrent failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
		goto fail;
	}

#ifndef ILM_SUPPORT
	if (fullscreen)
		wl_shell_surface_set_fullscreen(platform->shell_surface, WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, NULL);
	else
		wl_shell_surface_set_toplevel(platform->shell_surface);
#endif
	{
		struct wl_callback *callback = wl_display_sync(platform->display);
		wl_callback_add_listener(callback, &configure_callback_listener, platform);
	}


	actual_width = chosen_width;
	actual_height = chosen_height;

	platform->current_width = actual_width;
	platform->current_height = actual_height;

	if (fullscreen || (platform->fixed_window_width != 0) || (platform->fixed_window_height != 0))
	{
		platform->fixed_window_width = actual_width;
		platform->fixed_window_height = actual_height;
	}

	if (platform->window_resized_event_cb != NULL)
		platform->window_resized_event_cb(platform, actual_width, actual_height, platform->user_context);
	else
		glViewport(0, 0, actual_width, actual_height);
	
#ifdef ILM_SUPPORT	
	create_ilm_surface(platform);
#endif

	EGL_PLATFORM_UNLOCK(platform);


	return TRUE;


fail:
	EGL_PLATFORM_UNLOCK(platform);
	return FALSE;
}


gboolean gst_imx_egl_viv_sink_egl_platform_shutdown_window(GstImxEglVivSinkEGLPlatform *platform)
{
	if (platform->native_window == NULL)
		return TRUE;


	if (platform->frame_cb != NULL)
	{
		wl_callback_destroy(platform->frame_cb);
		platform->frame_cb = NULL;
	}


	EGL_PLATFORM_LOCK(platform);
	
#ifdef ILM_SUPPORT
	if (ilmSurfaceId > 0)
		ilm_surfaceRemove(ilmSurfaceId);
	
	//if(ilmLayerId > 0)
		//ilm_layerRemove(ilmLayerId);
		
    	ilm_commitChanges();
	ilm_destroy();
#endif 

	eglMakeCurrent(platform->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

	if (platform->egl_context != EGL_NO_CONTEXT)
		eglDestroyContext(platform->egl_display, platform->egl_context);

	if (platform->egl_surface != EGL_NO_SURFACE)
		eglDestroySurface(platform->egl_display, platform->egl_surface);
	if (platform->egl_main_surface != EGL_NO_SURFACE)
		eglDestroySurface(platform->egl_display, platform->egl_main_surface);

	platform->egl_context = EGL_NO_CONTEXT;
	platform->egl_surface = EGL_NO_SURFACE;


	wl_egl_window_destroy(platform->native_window);
	wl_egl_window_destroy(platform->native_main_window);
#ifndef ILM_SUPPORT
	if (platform->shell_surface != NULL)
	{
		wl_shell_surface_destroy(platform->shell_surface);
		platform->shell_surface = NULL;
	}
#endif
	if (platform->subsurface != NULL)
	{
		wl_subsurface_destroy(platform->subsurface);
		platform->subsurface = NULL;
	}

	if (platform->surface != NULL)
	{
		wl_surface_destroy(platform->surface);
		platform->surface = NULL;
	}

	if (platform->main_surface != NULL)
	{
		wl_surface_destroy(platform->main_surface);
		platform->main_surface = NULL;
	}

	platform->native_window = NULL;
	platform->native_main_window = NULL;


	EGL_PLATFORM_UNLOCK(platform);


	return TRUE;
}


void gst_imx_egl_viv_sink_egl_platform_set_event_handling(GstImxEglVivSinkEGLPlatform *platform, gboolean event_handling)
{
}

gboolean gst_imx_egl_viv_sink_egl_platform_set_gstreamer_element(GstImxEglVivSinkEGLPlatform *platform, GstElement *sink)
{	
   EGL_PLATFORM_LOCK(platform);   
   
   platform->sink = sink;
   
   EGL_PLATFORM_UNLOCK(platform);   
   
}

void gst_imx_egl_viv_sink_egl_platform_set_video_info(GstImxEglVivSinkEGLPlatform *platform, GstVideoInfo *video_info)
{
	EGL_PLATFORM_LOCK(platform);


	if (platform->native_window == 0)
	{
		GST_LOG("window not open - cannot set video info");
		EGL_PLATFORM_UNLOCK(platform);
		return;
	}


	platform->video_par_n = GST_VIDEO_INFO_PAR_N(video_info);
	platform->video_par_d = GST_VIDEO_INFO_PAR_D(video_info);
	platform->video_width = GST_VIDEO_INFO_WIDTH(video_info);
	platform->video_height = GST_VIDEO_INFO_HEIGHT(video_info);


	if (platform->fullscreen || (platform->fixed_window_width != 0) || (platform->fixed_window_height != 0)/* || (platform->parent_window != 0)*/) // TODO
	{
	}
	else
	{
		resize_window_to_video(platform);
	}


	EGL_PLATFORM_UNLOCK(platform);


	/* even though the window itself might not have been resized, the callback
	 * still needs to be invoked, because it depends on both the window and the
	 * video frame sizes */
	if (platform->window_resized_event_cb != NULL)
	{
		// do not call the resize callback here directly; instead, notify the main loop about this change
		// because here, the EGL context is not and cannot be set
		char const cmd = GSTIMX_EGLWL_CMD_CALL_RESIZE_CB;
		write(platform->ctrl_pipe[1], &cmd, 1);
	}
}


gboolean gst_imx_egl_viv_sink_egl_platform_expose(GstImxEglVivSinkEGLPlatform *platform)
{
	char const cmd = GSTIMX_EGLWL_CMD_REDRAW;
	write(platform->ctrl_pipe[1], &cmd, 1);
	return TRUE;
}


GstImxEglVivSinkMainloopRetval gst_imx_egl_viv_sink_egl_platform_mainloop(GstImxEglVivSinkEGLPlatform *platform)
{
	struct pollfd fds[2];
	int const nfds = sizeof(fds) / sizeof(struct pollfd);
	gboolean continue_loop = TRUE;

	platform->do_render = TRUE;
#ifdef ILM_SUPPORT
	ilm_commitChanges();
#endif
	while (continue_loop)
	{
		int ret;
		gboolean do_redraw = FALSE;

		/* Watch the display FD and a pipe that is used when poll() shall wake up
		 * (for example, when the pipeline is being shut down and run_mainloop has been set to FALSE) */
		memset(&fds[0], 0, sizeof(fds));
		fds[0].fd = platform->ctrl_pipe[0];
		fds[0].events = POLLIN | POLLERR | POLLHUP;
		fds[1].fd = platform->display_fd;
		fds[1].events = POLLIN | POLLERR | POLLHUP;

		//EGL_PLATFORM_LOCK(platform);

		/* Start event handling; wl_display_prepare_read() announces the intention
		 * to read all events, taking care of race conditions that otherwise occur */
		while (wl_display_prepare_read(platform->display) != 0)
			wl_display_dispatch_pending(platform->display);

		/* Flush requests, sending them to the server; if not all data could be sent to
		 * the server, have poll() also let it wait until it the display FD is writable again */
		ret = wl_display_flush(platform->display);
		if (ret < 0)
		{
			if (errno == EAGAIN)
			{
				fds[1].events |= POLLOUT;
			}
			else
			{
				EGL_PLATFORM_UNLOCK(platform);
				GST_ERROR("error while flushing display: %s", strerror(errno));
				break;
			}
		}

		if (poll(&fds[0], nfds, -1) == -1)
		{
			GST_ERROR("error in poll() call: %s", strerror(errno));
			wl_display_cancel_read(platform->display);
			EGL_PLATFORM_UNLOCK(platform);
			return GST_IMX_EGL_VIV_SINK_MAINLOOP_RETVAL_ERROR;
		}

		/* If there is something to read from the display FD, handle events */
		if (fds[1].revents & POLLIN)
		{
			GST_LOG("There is something to read from the display FD - handling events");
			wl_display_read_events(platform->display);
			wl_display_dispatch(platform->display);
		}
		else
		{
			GST_LOG("Nothing to read from the display FD - canceling read");
			wl_display_cancel_read(platform->display);
		}

		/* Read messages from the control pipe
		 * Note that this is done *after* reading from the display FD
		 * above, to make sure the event read block is finished by the
		 * time this place is reached */
		if (fds[0].revents & POLLIN)
		{
			char cmd;
			read(fds[0].fd, &cmd, sizeof(cmd));

			GST_LOG("received cmd: %d", (int)cmd);

			/* Stop if requested */
			switch (cmd)
			{
				case GSTIMX_EGLWL_CMD_REDRAW:
					do_redraw = TRUE;
					break;

				case GSTIMX_EGLWL_CMD_STOP_MAINLOOP:
					continue_loop = FALSE;
					GST_LOG("Mainloop stop requested");
					break;

				case GSTIMX_EGLWL_CMD_CALL_RESIZE_CB:
					GST_LOG("Resize callback requested");
					if (platform->window_resized_event_cb != NULL)
						platform->window_resized_event_cb(platform, platform->current_width, platform->current_height, platform->user_context);
					break;

				default:
					break;
			}
		}

		if (do_redraw && platform->frame_callback_invoked)
		{
			redraw(platform);
			platform->frame_callback_invoked = FALSE;
			GST_LOG("frame_callback_invoked set to FALSE");
		}
		if (platform->pending_subsurface_desync)
		{
			wl_subsurface_set_desync(platform->subsurface);
			platform->pending_subsurface_desync = FALSE;
		}

		//EGL_PLATFORM_UNLOCK(platform);
	}

	/* At this point, the sink is shutting down. Disable rendering in the frame callback. */
	platform->do_render = FALSE;

	return GST_IMX_EGL_VIV_SINK_MAINLOOP_RETVAL_OK;
}


void gst_imx_egl_viv_sink_egl_platform_stop_mainloop(GstImxEglVivSinkEGLPlatform *platform)
{
	char cmd = GSTIMX_EGLWL_CMD_STOP_MAINLOOP;
	write(platform->ctrl_pipe[1], &cmd, 1);
}


gboolean gst_imx_egl_viv_sink_egl_platform_set_coords(GstImxEglVivSinkEGLPlatform *platform, gint x_coord, gint y_coord)
{
	EGL_PLATFORM_LOCK(platform);

	platform->pending_x_coord = x_coord;
	platform->pending_y_coord = y_coord;

	EGL_PLATFORM_UNLOCK(platform);
	return TRUE;
}


gboolean gst_imx_egl_viv_sink_egl_platform_set_size(GstImxEglVivSinkEGLPlatform *platform, guint width, guint height)
{
	EGL_PLATFORM_LOCK(platform);

	/* Only allow overwriting values if the window size can actually be modified */
	if ((platform->fullscreen)/* || (platform->parent_window != 0)*/) // TODO
	{
		platform->fixed_window_width = width;
		platform->fixed_window_height = height;
	}

	if ((platform->fullscreen)/* || (platform->parent_window != 0)*/) // TODO
	{
		// do nothing
	}
	else if ((width != 0) || (height != 0))
	{
		wl_egl_window_resize(platform->native_window, width, height, 0, 0);
		platform->pending_subsurface_desync = TRUE;
	}
	else
	{
		resize_window_to_video(platform);
	}

	EGL_PLATFORM_UNLOCK(platform);

	if (platform->window_resized_event_cb != NULL)
	{
		// do not call the resize callback here directly; instead, notify the main loop about this change
		// because here, the EGL context is not and cannot be set
		char const cmd = GSTIMX_EGLWL_CMD_CALL_RESIZE_CB;
		write(platform->ctrl_pipe[1], &cmd, 1);
	}

	return TRUE;
}


gboolean gst_imx_egl_viv_sink_egl_platform_set_borderless(G_GNUC_UNUSED GstImxEglVivSinkEGLPlatform *platform, G_GNUC_UNUSED gboolean borderless)
{
	/* Since borders are client-side in Wayland, nothing needs to be done here */
	return TRUE;
}


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
  2015-12-12 11:56 Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink Vikas Patil
@ 2015-12-14  9:31 ` Friedrich, Eugen (ADITG/SW1)
  2015-12-14  9:54   ` Vikas Patil
  0 siblings, 1 reply; 7+ messages in thread
From: Friedrich, Eugen (ADITG/SW1) @ 2015-12-14  9:31 UTC (permalink / raw)
  To: Vikas Patil, genivi-ivi-layer-management, meta-freescale,
	Tanibata, Nobuhiko (ADITJ/SWG),
	Carlos Rafael Giani, wayland mailing list

Hello Vikas,

Could you please add the WAYLAND_DEBUG=1 traces from you application, to see if the input events are reaching the client.

Also the output of the following API would be helpful:
ilm_getInputFocus,
ilm_getInputDevices,
ilm_getInputAcceptanceOn(with you surface id)

the API's will return a list of devices or surfaces, please print the complete list.


Best regards

Eugen Friedrich
Software Group I (ADITG/SW1)

Tel. +49 5121 49 6921

> -----Original Message-----
> From: genivi-ivi-layer-management-bounces@lists.genivi.org [mailto:genivi-
> ivi-layer-management-bounces@lists.genivi.org] On Behalf Of Vikas Patil
> Sent: Samstag, 12. Dezember 2015 12:57
> To: genivi-ivi-layer-management@lists.genivi.org; meta-
> freescale@yoctoproject.org; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael
> Giani; wayland mailing list
> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and
> wayland video sink
> 
> Dear All,
> 
> I am using wayland video sink (i.e. imxeglvivsink) from gstreamer1.0-plugins-
> imx [1] to play the video along with weston 1.8.0 and wayland-ivi-extenstion
> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input
> support [2]. Basically I am posting touch events on GST bus and application
> want to have the touch can read the messages and process the touch. This is
> working fine if I don’t load the “ivi-input-controller.so”. If I load the “ivi-input-
> controller.so”
> I am not able to get the touch event inside this plug-in. I have tried setting
> touch input focus to the surface from this wayland video plug-in using
> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck.
> 
> 
> Also touch works fine even if I load “ivi-input-controller.so” with other
> applications. So I suspect some modification are required to ”imxeglvivsink”
> [2] or “wayland-ivi-extension/weston”.
> 
> Do you know what might be going wrong? Could anyone here give some
> suggestions/ideas to tryout and fix this?
> 
> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
> work for me. Any inputs for this?
> 
> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
> function in various ways but no luck and I think implementation is correct (as
> it works well without ivi-input-controller)
> 
> Following is the platform setup and weston configuration.
> 
> i.MX6 Duallite
> Linux 3.14.28
> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2
> 
> Weston.ini contains:
> 
> [core]
> shell=ivi-shell.so
> 
> [ivi-shell]
> ivi-module=ivi-controller.so,ivi-input-controller.so
> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface
> 
> 
> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
> [3]
> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input
> _Handling_APIs
> 
> 
> 
> Thanks & Regards,
> Vikash

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
  2015-12-14  9:31 ` Friedrich, Eugen (ADITG/SW1)
@ 2015-12-14  9:54   ` Vikas Patil
  2015-12-14  9:55     ` Vikas Patil
  0 siblings, 1 reply; 7+ messages in thread
From: Vikas Patil @ 2015-12-14  9:54 UTC (permalink / raw)
  To: Friedrich, Eugen (ADITG/SW1)
  Cc: meta-freescale, wayland mailing list, Tanibata,
	Nobuhiko (ADITJ/SWG),
	genivi-ivi-layer-management

Hi Eugen Friedrich

Thanks a lot for your quick reply.

Attached here the file with WAYLAND_DEBUG=1 log when the gstreamer
plug-in is in use. I can see "ivi_input@18.input_focus(90, 4, 0)" for
the surface from plug-in but no touch events.

Here is the output of APIs

root@linux-9939-a1:~# LayerManagerControl get input device default capabilities
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
pointer
keyboard
touch

root@linux-9939-a1:~# LayerManagerControl get surface 90 acceptance
Interpreter error: 'acceptance' not recognized.

root@orinoco-9939-a1:~# LayerManagerControl get input devices with all
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
default

root@linux-9939-a1:~# LayerManagerControl get input focus
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
failed to get surface context in ilmControl
surface 90:
surface 63:
surface 62:
surface 61:
surface 60: pointer keyboard


Thanks & Regards,
Vikas

On Mon, Dec 14, 2015 at 3:01 PM, Friedrich, Eugen (ADITG/SW1)
<efriedrich@de.adit-jv.com> wrote:
> Hello Vikas,
>
> Could you please add the WAYLAND_DEBUG=1 traces from you application, to see if the input events are reaching the client.
>
> Also the output of the following API would be helpful:
> ilm_getInputFocus,
> ilm_getInputDevices,
> ilm_getInputAcceptanceOn(with you surface id)
>
> the API's will return a list of devices or surfaces, please print the complete list.
>
>
> Best regards
>
> Eugen Friedrich
> Software Group I (ADITG/SW1)
>
> Tel. +49 5121 49 6921
>
>> -----Original Message-----
>> From: genivi-ivi-layer-management-bounces@lists.genivi.org [mailto:genivi-
>> ivi-layer-management-bounces@lists.genivi.org] On Behalf Of Vikas Patil
>> Sent: Samstag, 12. Dezember 2015 12:57
>> To: genivi-ivi-layer-management@lists.genivi.org; meta-
>> freescale@yoctoproject.org; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael
>> Giani; wayland mailing list
>> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and
>> wayland video sink
>>
>> Dear All,
>>
>> I am using wayland video sink (i.e. imxeglvivsink) from gstreamer1.0-plugins-
>> imx [1] to play the video along with weston 1.8.0 and wayland-ivi-extenstion
>> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input
>> support [2]. Basically I am posting touch events on GST bus and application
>> want to have the touch can read the messages and process the touch. This is
>> working fine if I don’t load the “ivi-input-controller.so”. If I load the “ivi-input-
>> controller.so”
>> I am not able to get the touch event inside this plug-in. I have tried setting
>> touch input focus to the surface from this wayland video plug-in using
>> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck.
>>
>>
>> Also touch works fine even if I load “ivi-input-controller.so” with other
>> applications. So I suspect some modification are required to ”imxeglvivsink”
>> [2] or “wayland-ivi-extension/weston”.
>>
>> Do you know what might be going wrong? Could anyone here give some
>> suggestions/ideas to tryout and fix this?
>>
>> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
>> work for me. Any inputs for this?
>>
>> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
>> function in various ways but no luck and I think implementation is correct (as
>> it works well without ivi-input-controller)
>>
>> Following is the platform setup and weston configuration.
>>
>> i.MX6 Duallite
>> Linux 3.14.28
>> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
>> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
>> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2
>>
>> Weston.ini contains:
>>
>> [core]
>> shell=ivi-shell.so
>>
>> [ivi-shell]
>> ivi-module=ivi-controller.so,ivi-input-controller.so
>> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface
>>
>>
>> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
>> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
>> [3]
>> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input
>> _Handling_APIs
>>
>>
>>
>> Thanks & Regards,
>> Vikash


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
  2015-12-14  9:54   ` Vikas Patil
@ 2015-12-14  9:55     ` Vikas Patil
  2015-12-14 15:23       ` Vikas Patil
  0 siblings, 1 reply; 7+ messages in thread
From: Vikas Patil @ 2015-12-14  9:55 UTC (permalink / raw)
  To: Friedrich, Eugen (ADITG/SW1)
  Cc: meta-freescale, wayland mailing list, Tanibata,
	Nobuhiko (ADITJ/SWG),
	genivi-ivi-layer-management

[-- Attachment #1: Type: text/plain, Size: 5168 bytes --]

Sorry. Forgot to attach the log file. Attached here.

Thanks & Regards,
Vikas

On Mon, Dec 14, 2015 at 3:24 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
> Hi Eugen Friedrich
>
> Thanks a lot for your quick reply.
>
> Attached here the file with WAYLAND_DEBUG=1 log when the gstreamer
> plug-in is in use. I can see "ivi_input@18.input_focus(90, 4, 0)" for
> the surface from plug-in but no touch events.
>
> Here is the output of APIs
>
> root@linux-9939-a1:~# LayerManagerControl get input device default capabilities
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> pointer
> keyboard
> touch
>
> root@linux-9939-a1:~# LayerManagerControl get surface 90 acceptance
> Interpreter error: 'acceptance' not recognized.
>
> root@orinoco-9939-a1:~# LayerManagerControl get input devices with all
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> default
>
> root@linux-9939-a1:~# LayerManagerControl get input focus
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> failed to get surface context in ilmControl
> surface 90:
> surface 63:
> surface 62:
> surface 61:
> surface 60: pointer keyboard
>
>
> Thanks & Regards,
> Vikas
>
> On Mon, Dec 14, 2015 at 3:01 PM, Friedrich, Eugen (ADITG/SW1)
> <efriedrich@de.adit-jv.com> wrote:
>> Hello Vikas,
>>
>> Could you please add the WAYLAND_DEBUG=1 traces from you application, to see if the input events are reaching the client.
>>
>> Also the output of the following API would be helpful:
>> ilm_getInputFocus,
>> ilm_getInputDevices,
>> ilm_getInputAcceptanceOn(with you surface id)
>>
>> the API's will return a list of devices or surfaces, please print the complete list.
>>
>>
>> Best regards
>>
>> Eugen Friedrich
>> Software Group I (ADITG/SW1)
>>
>> Tel. +49 5121 49 6921
>>
>>> -----Original Message-----
>>> From: genivi-ivi-layer-management-bounces@lists.genivi.org [mailto:genivi-
>>> ivi-layer-management-bounces@lists.genivi.org] On Behalf Of Vikas Patil
>>> Sent: Samstag, 12. Dezember 2015 12:57
>>> To: genivi-ivi-layer-management@lists.genivi.org; meta-
>>> freescale@yoctoproject.org; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael
>>> Giani; wayland mailing list
>>> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and
>>> wayland video sink
>>>
>>> Dear All,
>>>
>>> I am using wayland video sink (i.e. imxeglvivsink) from gstreamer1.0-plugins-
>>> imx [1] to play the video along with weston 1.8.0 and wayland-ivi-extenstion
>>> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input
>>> support [2]. Basically I am posting touch events on GST bus and application
>>> want to have the touch can read the messages and process the touch. This is
>>> working fine if I don’t load the “ivi-input-controller.so”. If I load the “ivi-input-
>>> controller.so”
>>> I am not able to get the touch event inside this plug-in. I have tried setting
>>> touch input focus to the surface from this wayland video plug-in using
>>> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck.
>>>
>>>
>>> Also touch works fine even if I load “ivi-input-controller.so” with other
>>> applications. So I suspect some modification are required to ”imxeglvivsink”
>>> [2] or “wayland-ivi-extension/weston”.
>>>
>>> Do you know what might be going wrong? Could anyone here give some
>>> suggestions/ideas to tryout and fix this?
>>>
>>> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
>>> work for me. Any inputs for this?
>>>
>>> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
>>> function in various ways but no luck and I think implementation is correct (as
>>> it works well without ivi-input-controller)
>>>
>>> Following is the platform setup and weston configuration.
>>>
>>> i.MX6 Duallite
>>> Linux 3.14.28
>>> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
>>> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
>>> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2
>>>
>>> Weston.ini contains:
>>>
>>> [core]
>>> shell=ivi-shell.so
>>>
>>> [ivi-shell]
>>> ivi-module=ivi-controller.so,ivi-input-controller.so
>>> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface
>>>
>>>
>>> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
>>> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
>>> [3]
>>> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input
>>> _Handling_APIs
>>>
>>>
>>>
>>> Thanks & Regards,
>>> Vikash

[-- Attachment #2: wldebug.log --]
[-- Type: application/octet-stream, Size: 114359 bytes --]

Got message #63 from element "qtdemux0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #64 from element "filesrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
[3924937.183]  -> wl_display@1.sync(new id wl_callback@13)
[3925205.519]  -> wl_display@1.get_registry(new id wl_registry@14)
Got message #65 from element "pipeline0" (state-changed): [3925205.630]  -> wl_display@1.sync(new id wl_callback@15)
GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #75 from element "imxeglvivsink0" (tag): GstMessageTag, taglist=(taglist)"taglist\,\ video-codec\=\(string\)H.264\,\ maximum-bitrate\=\(uint\)1254568\,\ bitrate\=\(uint\)562704\,\ minimum-bitrate\=\(uint\)91000\;";
[3925206.271] wl_display@1.delete_id(13Got message #79 from element "imxeglvivsink0" (tag): )
[3925206.370] wl_display@1.delete_id(15)
GstMessageTag, taglist=(taglist)"taglist\,\ video-codec\=\(string\)H.264\,\ maximum-bitrate\=\(uint\)1254568\,\ bitrate\=\(uint\)562704\,\ minimum-bitrate\=\(uint\)26600\;";
[3925206.430] wl_registry@14.global(1, "wl_compositor", 3)
[3925206.666] wl_registry@14.global(2, "wl_subcompositor", 1)
[3925206.769] wl_registry@14.global(3, "wl_scaler", 2)
[3925206.862] wl_registry@14.global(4, "presentation", 1)
[3925206.953] wl_registry@14.global(5, "wl_text_input_manager", 1)
[3925207.043] wl_registry@14.global(6, "wl_data_device_manager", 2)
[3925207.132] wl_registry@14.global(7, "wl_shm", 1)
[3925207.404] wl_registry@14.global(8, "wl_output", 2)
[3925207.587]  -> wl_registry@14.bind(8, "wl_output", 1, new id [unknown]@16)
[3925207.719] wl_registry@14.global(9, "wl_viv", 1)
[3925207.813] wl_registry@14.global(10, "wl_seat", 4)
[3925207.903] wl_registry@14.global(11, "wl_input_method", 1)
[3925208.031] wl_registry@14.global(12, "wl_input_panel", 1)
[3925208.123] wl_registry@14.global(13, "ivi_application", 1)
[3925208.212] wl_registry@14.global(14, "ivi_controller", 1)
[3925208.473]  -> wl_registry@14.bind(14, "ivi_controller", 1, new id [unknown]@17)
[3925208.603] wl_registry@14.global(15, "ivi_input", 1)
[3925208.697]  -> wl_registry@14.bind(15, "ivi_input", 1, new id [unknown]@18)
[3925208.818] wl_callback@15.done(3)
[3925208.877]  -> wl_display@1.sync(new id wl_callback@15)
[3925209.363] wl_display@1.delete_id(15)
[3925209.437] wl_output@16.geometry(0, 0, -1, -1, 0, "unknown", "DISP3 BG", 0)
[3925209.622] wl_output@16.mode(3, 800, 480, 62532)
[3925209.731] ivi_controller@17.screen(16, new id ivi_controller_screen@20860800)
[3925209.813] ivi_controller@17.layer(1000)
[3925209.974]  -> ivi_controller@17.layer_create(1000, 0, 0, new id ivi_controller_layer@19)
[3925210.103] ivi_controller@17.surface(60)
failed to get surface context in ilmControl
[3925210.402]  -> ivi_controller@17.surface_create(60, new id ivi_controller_surface@20)
[3925210.497] ivi_controller@17.surface(61)
failed to get surface context in ilmControl
[3925210.568]  -> ivi_controller@17.surface_create(61, new id ivi_controller_surface@21)
[3925210.655] ivi_controller@17.surface(62)
failed to get surface context in ilmControl
[3925210.759]  -> ivi_controller@17.surface_create(62, new id ivi_controller_surface@22)
[3925210.844] ivi_controller@17.surface(63)
failed to get surface context in ilmControl
[3925210.914]  -> ivi_controller@17.surface_create(63, new id ivi_controller_surface@23)
[3925211.000] ivi_input@18.seat_created("default", 7)
[3925211.075] ivi_input@18.input_focus(63, 0, 1)
[3925211.244] ivi_input@18.input_focus(62, 0, 1)
[3925211.336] ivi_input@18.input_focus(61, 0, 1)
[3925211.425] ivi_input@18.input_focus(60, 3, 1)
[3925211.513] ivi_input@18.input_acceptance(63, "default", 1)
[3925211.606] ivi_input@18.input_acceptance(62, "default", 1)
[3925211.698] ivi_input@18.input_acceptance(61, "default", 1)
[3925212.040] ivi_input@18.input_acceptance(60, "default", 1)
[3925544.236] wl_callback@15.done(3)
[3925544.318]  -> wl_display@1.sync(new id wl_callback@15)
[3925544.888] wl_display@1.delete_id(15)
[3925544.971] ivi_controller_layer@19.opacity(1.000000)
[3925545.294] ivi_controller_layer@19.source_rectangle(0, 0, 800, 480)
[3925545.411] ivi_controller_layer@19.destination_rectangle(0, 0, 800, 480)
[3925545.520] ivi_controller_layer@19.orientation(0)
[3925545.572] ivi_controller_layer@19.visibility(1)
[3925545.623] ivi_controller_layer@19.screen(nil)
[3925545.672] ivi_controller_layer@19.screen(nil)
[3925545.722] ivi_controller_layer@19.screen(nil)
[3925545.771] ivi_controller_layer@19.screen(wl_output@16)
[3925545.823] ivi_controller_surface@20.opacity(1.000000)
[3925545.878] ivi_controller_surface@20.source_rectangle(0, 0, 800, 480)
[3925546.051] ivi_controller_surface@20.destination_rectangle(0, 0, 800, 480)
[3925546.162] ivi_controller_surface@20.orientation(0)
[3925546.214] ivi_controller_surface@20.visibility(1)
[3925546.335] ivi_controller_surface@20.layer(nil)
[3925546.389] ivi_controller_surface@20.layer(nil)
[3925546.440] ivi_controller_surface@20.layer(nil)
[3925546.490] ivi_controller_surface@20.layer(ivi_controller_layer@19)
[3925546.542] ivi_controller_surface@21.opacity(1.000000)
[3925546.739] ivi_controller_surface@21.source_rectangle(0, 72, 800, 408)
[3925546.882] ivi_controller_surface@21.destination_rectangle(0, 72, 800, 408)
[3925546.991] ivi_controller_surface@21.orientation(0)
[3925547.044] ivi_controller_surface@21.visibility(1)
[3925547.170] ivi_controller_surface@21.layer(nil)
[3925547.224] ivi_controller_surface@21.layer(nil)
[3925547.275] ivi_controller_surface@21.layer(nil)
[3925547.325] ivi_controller_surface@21.layer(ivi_controller_layer@19)
[3925547.377] ivi_controller_surface@22.opacity(1.000000)
[3925547.430] ivi_controller_surface@22.source_rectangle(0, 408, 800, 72)
[3925547.537] ivi_controller_surface@22.destination_rectangle(0, 408, 800, 72)
[3925547.644] ivi_controller_surface@22.orientation(0)
[3925547.695] ivi_controller_surface@22.visibility(1)
[3925547.747] ivi_controller_surface@22.layer(nil)
[3925547.796] ivi_controller_surface@22.layer(nil)
[3925547.844] ivi_controller_surface@22.layer(nil)
[3925547.893] ivi_controller_surface@22.layer(ivi_controller_layer@19)
[3925547.945] ivi_controller_surface@23.opacity(1.000000)
[3925547.998] ivi_controller_surface@23.source_rectangle(2, 2, 798, 478)
[3925548.104] ivi_controller_surface@23.destination_rectangle(2, 2, 798, 478)
[3925548.226] ivi_controller_surface@23.orientation(0)
[3925548.280] ivi_controller_surface@23.visibility(0)
[3925548.332] ivi_controller_surface@23.layer(nil)
[3925548.381] ivi_controller_surface@23.layer(nil)
[3925548.431] ivi_controller_surface@23.layer(nil)
[3925549.507] ivi_controller_surface@23.layer(ivi_controller_layer@19)
[3925549.619] wl_callback@15.done(3)
[3925549.870]  -> wl_display@1.get_registry(new id wl_registry@15)
[3925549.993]  -> wl_display@1.sync(new id wl_callback@24)
[3925551.564] wl_display@1.delete_id(24)
[3925551.842] wl_registry@15.global(1, "wl_compositor", 3)
[3925551.943] wl_registry@15.global(2, "wl_subcompositor", 1)
[3925552.110] wl_registry@15.global(3, "wl_scaler", 2)
[3925552.205] wl_registry@15.global(4, "presentation", 1)
[3925552.296] wl_registry@15.global(5, "wl_text_input_manager", 1)
[3925552.410] wl_registry@15.global(6, "wl_data_device_manager", 2)
[3925552.755] wl_registry@15.global(7, "wl_shm", 1)
[3925552.854] wl_registry@15.global(8, "wl_output", 2)
[3925552.955] wl_registry@15.global(9, "wl_viv", 1)
[3925553.795] wl_registry@15.global(10, "wl_seat", 4)
[3925553.909] wl_registry@15.global(11, "wl_input_method", 1)
[3925554.182] wl_registry@15.global(12, "wl_input_panel", 1)
[3925554.866] wl_registry@15.global(13, "ivi_application", 1)
[3925555.001]  -> wl_registry@15.bind(13, "ivi_application", 1, new id [unknown]@25)
[3925885.921] wl_registry@15.global(14, "ivi_controller", 1)
[3925886.076] wl_registry@15.global(15, "ivi_input", 1)
[3925886.172] wl_callback@24.done(3)
[3925887.144]  -> wl_display@1.get_registry(new id wl_registry@2)
[3925887.491] wl_registry@2.global(1, "wl_compositor", 3)
[3925887.608] wl_registry@2.global(2, "wl_subcompositor", 1)
[3925887.753] wl_registry@2.global(3, "wl_scaler", 2)
[3925887.849] wl_registry@2.global(4, "presentation", 1)
[3925887.941] wl_registry@2.global(5, "wl_text_input_manager", 1)
[3925888.031] wl_registry@2.global(6, "wl_data_device_manager", 2)
[3925888.121] wl_registry@2.global(7, "wl_shm", 1)
[3925888.211] wl_registry@2.global(8, "wl_output", 2)
[3925888.307]  -> wl_registry@2.bind(8, "wl_output", 1, new id [unknown]@3)
[3925888.547] wl_registry@2.global(9, "wl_viv", 1)
[3925888.646] wl_registry@2.global(10, "wl_seat", 4)
[3925888.737] wl_registry@2.global(11, "wl_input_method", 1)
[3925888.834] wl_registry@2.global(12, "wl_input_panel", 1)
[3925890.382] wl_registry@2.global(13, "ivi_application", 1)
[3925890.497] wl_registry@2.global(14, "ivi_controller", 1)
[3925890.590] wl_registry@2.global(15, "ivi_input", 1)
[3925890.695]  -> wl_display@1.sync(new id wl_callback@4)
[3925890.941] wl_display@1.delete_id(4)
[3925891.013] wl_output@3.geometry(0, 0, -1, -1, 0, "unknown", "DISP3 BG", 0)
[3925891.199] wl_output@3.mode(3, 800, 480, 62532)
[3925891.422] wl_callback@4.done(3)
[3925891.490]  -> wl_display@1.sync(new id wl_callback@24)
[3925892.014] wl_display@1.delete_id(24)
[3925892.106] wl_callback@24.done(3)
[3925892.420]  -> ivi_application@25.surface_create(90, wl_surface@9, new id ivi_surface@24)
[3925892.584]  -> wl_display@1.sync(new id wl_callback@26)
[3925893.507] wl_display@1.delete_id(26)
[3925893.929] ivi_controller@17.surface(90)
failed to get surface context in ilmControl
[3925894.195]  -> ivi_controller@17.surface_create(90, new id ivi_controller_surface@27)
[3925894.299] ivi_input@18.input_acceptance(90, "default", 1)
[3925894.405] wl_callback@26.done(3)
layerid=1000 is already used.
[3925894.490]  -> wl_display@1.sync(new id wl_callback@26)
[3925894.858] wl_display@1.delete_id(26)
[3925894.943] ivi_controller_surface@27.opacity(1.000000)
[3925895.004] ivi_controller_surface@27.source_rectangle(0, 0, 0, 0)
[3925895.115] ivi_controller_surface@27.destination_rectangle(0, 0, 1, 1)
[3925895.229] ivi_controller_surface@27.orientation(0)
[3925895.284] ivi_controller_surface@27.visibility(0)
[3925895.374] wl_callback@26.done(3)
[3925895.450]  -> ivi_controller_layer@19.set_visibility(1)
[3925895.639]  -> wl_display@1.sync(new id wl_callback@26)
[3925895.857] wl_display@1.delete_id(26)
[3925895.927] wl_callback@26.done(3)
[3925895.988]  -> ivi_controller_screen@4278190080.set_render_order(array)
[3925896.056]  -> wl_display@1.sync(new id wl_callback@26)
[3925896.231] wl_display@1.delete_id(26)
[3925896.296] wl_callback@26.done(3)
[3925896.355]  -> ivi_controller_layer@19.set_render_order(array)
[3925896.419]  -> wl_display@1.sync(new id wl_callback@26)
[3925896.586] wl_display@1.delete_id(26)
[3925896.650] wl_callback@26.done(3)
[3925896.708]  -> ivi_controller_surface@27.set_destination_rectangle(0, 0, 800, 480)
[3925896.865]  -> wl_display@1.sync(new id wl_callback@26)
[3925897.366] wl_display@1.delete_id(26)
[3925897.443] wl_callback@26.done(3)
[3925897.501]  -> ivi_controller_surface@27.set_source_rectangle(0, 0, 800, 480)
[3925897.624]  -> wl_display@1.sync(new id wl_callback@26)
[3925897.798] wl_display@1.delete_id(26)
[3925897.862] wl_callback@26.done(3)
[3925897.918]  -> ivi_controller_surface@27.set_visibility(1)
[3925897.983]  -> wl_display@1.sync(new id wl_callback@26)
[3925898.142] wl_display@1.delete_id(26)
[3925898.206] wl_callback@26.done(3)
[3925898.263]  -> ivi_controller_surface@27.set_opacity(1.000000)
[3925898.328]  -> wl_display@1.sync(new id wl_callback@26)
[3926230.467] wl_display@1.delete_id(26)
[3926230.550] wl_callback@26.done(3)
[3926230.612]  -> ivi_controller_layer@19.add_surface(ivi_controller_surface@27)
[3926230.687]  -> wl_display@1.sync(new id wl_callback@26)
[3926230.986] wl_display@1.delete_id(26)
[3926231.055] wl_callback@26.done(3)
[3926231.113]  -> ivi_controller@17.commit_changes()
[3926231.159]  -> wl_display@1.sync(new id wl_callback@26)
[3926232.415] wl_display@1.delete_id(26)
[3926232.500] ivi_controller_layer@19.visibility(1)
[3926232.556] ivi_controller_layer@19.screen(wl_output@16)
[3926232.610] ivi_controller_surface@20.layer(ivi_controller_layer@19)
[3926232.666] ivi_controller_surface@21.layer(ivi_controller_layer@19)
[3926232.718] ivi_controller_surface@22.layer(ivi_controller_layer@19)
[3926232.771] ivi_controller_surface@23.layer(ivi_controller_layer@19)
[3926232.845] ivi_controller_surface@27.opacity(1.000000)
[3926232.905] ivi_controller_surface@27.source_rectangle(0, 0, 800, 480)
[3926233.393] ivi_controller_surface@27.destination_rectangle(0, 0, 800, 480)
[3926233.512] ivi_controller_surface@27.visibility(1)
[3926233.566] ivi_controller_surface@27.layer(ivi_controller_layer@19)
[3926233.620] wl_callback@26.done(3)
create_ilm_surface finished
[3926277.202]  -> wl_display@1.sync(new id wl_callback@26)
[3926277.688] wl_display@1.delete_id(26)
[3926278.189] wl_callback@26.done(3)
[3926278.268]  -> ivi_controller@17.commit_changes()
[3926278.321]  -> wl_display@1.sync(new id wl_callback@26)
[3926278.651] wl_display@1.delete_id(26)
[3926278.732] wl_callback@26.done(3)
[3926278.841] wl_callback@13.done(3)
[3926278.908]  -> wl_subsurface@12.set_position(0, 0)
[3926279.306]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926279.381]  -> wl_region@13.add(0, 0, 640, 352)
[3926279.491]  -> wl_surface@9.set_input_region(wl_region@13)
[3926279.545]  -> wl_region@13.destroy()
[3926280.340]  -> wl_viv@10.create_buffer(new id wl_buffer@26, 800, 480, 3200, 212, 19, 6, 1536000)
[3926281.651]  -> wl_surface@11.frame(new id wl_callback@28)
[3926282.280]  -> wl_surface@9.frame(new id wl_callback@29)
[3926282.448]  -> wl_surface@9.attach(wl_buffer@26, 0, 0)
[3926282.592]  -> wl_surface@9.damage(0, 0, 800, 480)
[3926282.744]  -> wl_surface@9.commit()
[3926283.612] wl_display@1.delete_id(13)
[3926283.770] ivi_controller_surface@27.opacity(1.000000)
[3926283.843] ivi_controller_surface@27.source_rectangle(0, 0, 800, 480)
[3926284.041] ivi_controller_surface@27.destination_rectangle(0, 0, 800, 480)
[3926284.549] ivi_controller_surface@27.orientation(0)
[3926284.715] ivi_controller_surface@27.visibility(1)
[3926284.906] ivi_controller_surface@27.layer(nil)
[3926285.106] ivi_controller_surface@27.layer(ivi_controller_layer@19)
[3926291.666] wl_display@1.delete_id(29)
[3926294.455]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926294.659]  -> wl_region@13.add(0, 0, 640, 352)
[3926294.796]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926294.861]  -> wl_region@13.destroy()
[3926294.914]  -> wl_surface@9.commit()
[3926295.813]  -> wl_viv@10.create_buffer(new id wl_buffer@30, 640, 352, 2560, 212, 21, 6, 901120)
[3926296.652]  -> wl_subsurface@12.set_desync()
[3926304.668]  -> wl_surface@11.frame(new id wl_callback@31)
[3926304.850]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3926304.951]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926305.062]  -> wl_surface@11.commit()
[3926306.507] wl_display@1.delete_id(13)
[3926317.472] wl_display@1.delete_id(28)
[3926317.632] wl_display@1.delete_id(31)
[3926317.719] wl_callback@28.done(538275)
[3926317.797]  -> wl_surface@11.frame(new id wl_callback@28)
[3926356.728]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926356.881]  -> wl_region@13.add(0, 0, 640, 352)
[3926356.998]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926357.055]  -> wl_region@13.destroy()
[3926357.099]  -> wl_surface@9.commit()
[3926357.265]  -> wl_viv@10.create_buffer(new id wl_buffer@32, 640, 352, 2560, 212, 22, 9, 901120)
[3926361.580] wl_callback@29.done(538245)
[3926361.710] wl_callback@31.done(538275)
[3926361.774]  -> wl_surface@11.frame(new id wl_callback@31)
[3926361.842]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3926361.936]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926362.044]  -> wl_surface@11.commit()
[3926371.081] wl_display@1.delete_id(13)
[3926371.255] wl_display@1.delete_id(28)
[3926371.316] wl_display@1.delete_id(31)
[3926372.311] wl_callback@28.done(538329)
[3926372.412]  -> wl_surface@11.frame(new id wl_callback@28)
[3926392.938]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926393.092]  -> wl_region@13.add(0, 0, 640, 352)
[3926393.299]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926393.367]  -> wl_region@13.destroy()
[3926393.416]  -> wl_surface@9.commit()
[3926393.561] wl_buffer@30.release()
[3926398.215] wl_callback@31.done(538329)
[3926400.112]  -> wl_surface@11.frame(new id wl_callback@31)
[3926400.215]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3926400.314]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926400.424]  -> wl_surface@11.commit()
[3926419.561] wl_display@1.delete_id(13)
[3926420.181] wl_display@1.delete_id(28)
[3926420.246] wl_display@1.delete_id(31)
[3926420.655] wl_callback@28.done(538377)
[3926420.765]  -> wl_surface@11.frame(new id wl_callback@28)
[3926435.405]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926435.565]  -> wl_region@13.add(0, 0, 640, 352)
[3926435.699]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926435.774]  -> wl_region@13.destroy()
[3926435.826]  -> wl_surface@9.commit()
[3926436.005] wl_buffer@32.release()
[3926439.278] wl_callback@31.done(538377)
[3926439.391]  -> wl_surface@11.frame(new id wl_callback@31)
[3926439.465]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3926439.559]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926439.665]  -> wl_surface@11.commit()
[3926444.218] wl_display@1.delete_id(13)
[3926444.367] wl_display@1.delete_id(28)
[3926444.425] wl_display@1.delete_id(31)
[3926444.504] wl_callback@28.done(538401)
[3926444.577]  -> wl_surface@11.frame(new id wl_callback@28)
[3926473.832]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926474.183]  -> wl_region@13.add(0, 0, 640, 352)
[3926474.870]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926474.934]  -> wl_region@13.destroy()
[3926474.979]  -> wl_surface@9.commit()
[3926475.287] wl_buffer@30.release()
[3926477.795] wl_callback@31.done(538401)
[3926477.893]  -> wl_surface@11.frame(new id wl_callback@31)
[3926477.963]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3926810.914]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926811.047]  -> wl_surface@11.commit()
[3926820.488] wl_display@1.delete_id(13)
[3926820.648] wl_display@1.delete_id(28)
[3926820.706] wl_display@1.delete_id(31)
[3926820.796] wl_callback@28.done(538778)
[3926820.890]  -> wl_surface@11.frame(new id wl_callback@28)
[3926836.570]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926836.718]  -> wl_region@13.add(0, 0, 640, 352)
[3926836.836]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926837.120]  -> wl_region@13.destroy()
[3926837.181]  -> wl_surface@9.commit()
[3926837.400] wl_buffer@32.release()
[3926840.028] wl_callback@31.done(538778)
[3926840.130]  -> wl_surface@11.frame(new id wl_callback@31)
[3926840.202]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3926840.294]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926840.400]  -> wl_surface@11.commit()
[3926844.430] wl_display@1.delete_id(13)
[3926844.583] wl_display@1.delete_id(28)
[3926844.641] wl_display@1.delete_id(31)
[3926844.719] wl_callback@28.done(538802)
[3926844.796]  -> wl_surface@11.frame(new id wl_callback@28)
[3926871.824]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926871.975]  -> wl_region@13.add(0, 0, 640, 352)
[3926872.090]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926872.148]  -> wl_region@13.destroy()
[3926872.211]  -> wl_surface@9.commit()
[3926872.374] wl_buffer@30.release()
[3926875.734] wl_callback@31.done(538802)
[3926875.852]  -> wl_surface@11.frame(new id wl_callback@31)
[3926875.924]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3926876.017]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926876.126]  -> wl_surface@11.commit()
[3926882.197] wl_display@1.delete_id(13)
[3926882.362] wl_display@1.delete_id(28)
[3926882.433] wl_display@1.delete_id(31)
[3926882.528] wl_callback@28.done(538839)
[3926882.626]  -> wl_surface@11.frame(new id wl_callback@28)
[3926916.198]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926916.554]  -> wl_region@13.add(0, 0, 640, 352)
[3926916.717]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926916.775]  -> wl_region@13.destroy()
[3926916.819]  -> wl_surface@9.commit()
[3926917.035] wl_buffer@32.release()
[3926919.498] wl_callback@31.done(538839)
[3926919.602]  -> wl_surface@11.frame(new id wl_callback@31)
[3926919.675]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3926919.769]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926919.878]  -> wl_surface@11.commit()
[3926927.211] wl_display@1.delete_id(13)
[3926927.439] wl_display@1.delete_id(28)
[3926927.520] wl_display@1.delete_id(31)
[3926927.627] wl_callback@28.done(538884)
[3926927.773]  -> wl_surface@11.frame(new id wl_callback@28)
[3926952.358]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926952.504]  -> wl_region@13.add(0, 0, 640, 352)
[3926952.620]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926952.676]  -> wl_region@13.destroy()
[3926952.988]  -> wl_surface@9.commit()
[3926953.501] wl_buffer@30.release()
[3926956.612] wl_callback@31.done(538884)
[3926956.736]  -> wl_surface@11.frame(new id wl_callback@31)
[3926956.808]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3926956.900]  -> wl_surface@11.damage(0, 0, 640, 352)
[3926957.008]  -> wl_surface@11.commit()
[3926962.841] wl_display@1.delete_id(13)
[3926963.006] wl_display@1.delete_id(28)
[3926963.062] wl_display@1.delete_id(31)
[3926963.143] wl_callback@28.done(538920)
[3926963.326]  -> wl_surface@11.frame(new id wl_callback@28)
[3926996.191]  -> wl_compositor@3.create_region(new id wl_region@13)
[3926996.339]  -> wl_region@13.add(0, 0, 640, 352)
[3926996.892]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3926996.972]  -> wl_region@13.destroy()
[3926997.017]  -> wl_surface@9.commit()
[3926997.341] wl_buffer@32.release()
[3926999.946] wl_callback@31.done(538920)
[3927000.063]  -> wl_surface@11.frame(new id wl_callback@31)
[3927000.135]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3927000.229]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927000.336]  -> wl_surface@11.commit()
[3927010.611] wl_display@1.delete_id(13)
[3927010.766] wl_display@1.delete_id(28)
[3927010.826] wl_display@1.delete_id(31)
[3927010.908] wl_callback@28.done(538965)
[3927010.985]  -> wl_surface@11.frame(new id wl_callback@28)
[3927033.803]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927033.922]  -> wl_region@13.add(0, 0, 640, 352)
[3927034.168]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927034.227]  -> wl_region@13.destroy()
[3927034.295]  -> wl_surface@9.commit()
[3927034.533] wl_buffer@30.release()
[3927037.467] wl_callback@31.done(538965)
[3927037.588]  -> wl_surface@11.frame(new id wl_callback@31)
[3927037.667]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3927037.761]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927037.869]  -> wl_surface@11.commit()
[3927044.086] wl_display@1.delete_id(13)
[3927044.276] wl_display@1.delete_id(28)
[3927044.347] wl_display@1.delete_id(31)
[3927044.472] wl_callback@28.done(539001)
[3927044.556]  -> wl_surface@11.frame(new id wl_callback@28)
[3927075.666]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927075.841]  -> wl_region@13.add(0, 0, 640, 352)
[3927075.976]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927076.039]  -> wl_region@13.destroy()
[3927076.084]  -> wl_surface@9.commit()
[3927076.231] wl_buffer@32.release()
[3927079.077] wl_callback@31.done(539001)
[3927079.187]  -> wl_surface@11.frame(new id wl_callback@31)
[3927079.260]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3927079.356]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927079.463]  -> wl_surface@11.commit()
[3927085.653] wl_display@1.delete_id(13)
[3927085.812] wl_display@1.delete_id(28)
[3927085.873] wl_display@1.delete_id(31)
[3927085.952] wl_callback@28.done(539043)
[3927086.031]  -> wl_surface@11.frame(new id wl_callback@28)
[3927112.474]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927112.762]  -> wl_region@13.add(0, 0, 640, 352)
[3927112.880]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927113.511]  -> wl_region@13.destroy()
[3927113.561]  -> wl_surface@9.commit()
[3927113.793] wl_buffer@30.release()
[3927116.448] wl_callback@31.done(539043)
[3927116.563]  -> wl_surface@11.frame(new id wl_callback@31)
[3927116.660]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3927116.754]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927116.861]  -> wl_surface@11.commit()
[3927123.767] wl_display@1.delete_id(13)
[3927123.966] wl_display@1.delete_id(28)
[3927124.036] wl_display@1.delete_id(31)
[3927124.125] wl_callback@28.done(539081)
[3927124.215]  -> wl_surface@11.frame(new id wl_callback@28)
[3927155.506]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927155.681]  -> wl_region@13.add(0, 0, 640, 352)
[3927155.819]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927155.883]  -> wl_region@13.destroy()
[3927155.931]  -> wl_surface@9.commit()
[3927156.109] wl_buffer@32.release()
[3927159.321] wl_callback@31.done(539081)
[3927159.434]  -> wl_surface@11.frame(new id wl_callback@31)
[3927159.506]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3927159.599]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927159.708]  -> wl_surface@11.commit()
[3927165.459] wl_display@1.delete_id(28)
[3927165.436] wl_display@1.delete_id(13[3927165.597] wl_display@1.delete_id(31)
)
[3927165.819] wl_callback@28.done(539123)
[3927165.893]  -> wl_surface@11.frame(new id wl_callback@28)
[3927193.468]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927193.784]  -> wl_region@13.add(0, 0, 640, 352)
[3927193.900]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927193.959]  -> wl_region@13.destroy()
[3927194.005]  -> wl_surface@9.commit()
[3927194.229] wl_buffer@30.release()
[3927196.762] wl_callback@31.done(539123)
[3927196.871]  -> wl_surface@11.frame(new id wl_callback@31)
[3927196.945]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3927197.040]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927197.147]  -> wl_surface@11.commit()
[3927203.721] wl_display@1.delete_id(13)
[3927203.912] wl_display@1.delete_id(28)
[3927204.021] wl_display@1.delete_id(31)
[3927204.252] wl_callback@28.done(539161)
[3927204.345]  -> wl_surface@11.frame(new id wl_callback@28)
[3927543.101]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927543.399]  -> wl_region@13.add(0, 0, 640, 352)
[3927543.523]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927543.580]  -> wl_region@13.destroy()
[3927543.623]  -> wl_surface@9.commit()
[3927544.193] wl_buffer@32.release()
[3927547.735] wl_callback@31.done(539161)
[3927547.879]  -> wl_surface@11.frame(new id wl_callback@31)
[3927547.957]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3927548.052]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927548.159]  -> wl_surface@11.commit()
[3927554.469] wl_display@1.delete_id(13)
[3927554.627] wl_display@1.delete_id(28)
[3927554.690] wl_display@1.delete_id(31)
[3927554.771] wl_callback@28.done(539511)
[3927554.849]  -> wl_surface@11.frame(new id wl_callback@28)
[3927594.090]  -> wl_compositor@3.create_region(new id wl_region@13)
[3927594.214]  -> wl_region@13.add(0, 0, 640, 352)
[3927594.328]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3927594.408]  -> wl_region@13.destroy()
[3927594.451]  -> wl_surface@9.commit()
[3927594.685] wl_buffer@30.release()
[3927597.724] wl_callback@31.done(539511)
[3927597.839]  -> wl_surface@11.frame(new id wl_callback@31)
[3927597.911]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3927598.005]  -> wl_surface@11.damage(0, 0, 640, 352)
[3927598.113]  -> wl_surface@11.commit()
[3927604.293] wl_display@1.delete_id(13)
[3927604.461] wl_display@1.delete_id(28)
[3927604.520] wl_display@1.delete_id(31)
[3927604.600] wl_callback@28.done(539562)
[3927604.679]  -> wl_surface@11.frame(new id wl_callback@28)
[3927612.074] ivi_input@18.input_focus(90, 4, 0)
[3927612.213] ivi_input@18.input_focus(63, 4, 0)
[3927612.309] ivi_input@18.input_focus(62, 4, 0)
[3927612.400] ivi_input@18.input_focus(61, 4, 0)
[3927612.489] ivi_input@18.input_focus(60, 4, 0)
[3928019.722] ivi_input@18.input_focus(90, 4, 0)
[3928019.905] ivi_input@18.input_focus(63, 4, 0)
[3928020.000] ivi_input@18.input_focus(62, 4, 0)
[3928021.071] ivi_input@18.input_focus(61, 4, 0)
[3928021.190] ivi_input@18.input_focus(60, 4, 0)
[3928025.271]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928025.428]  -> wl_region@13.add(0, 0, 640, 352)
[3928025.578]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928025.635]  -> wl_region@13.destroy()
[3928025.681]  -> wl_surface@9.commit()
[3928025.814] wl_buffer@32.release()
[3928029.752] wl_callback@31.done(539562)
[3928029.903]  -> wl_surface@11.frame(new id wl_callback@31)
[3928029.979]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928030.082]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928030.397]  -> wl_surface@11.commit()
[3928035.918] wl_display@1.delete_id(13)
[3928036.108] wl_display@1.delete_id(28)
[3928036.177] wl_display@1.delete_id(31)
[3928036.258] wl_callback@28.done(539993)
[3928036.338]  -> wl_surface@11.frame(new id wl_callback@28)
[3928072.840]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928073.563]  -> wl_region@13.add(0, 0, 640, 352)
[3928073.712]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928074.135]  -> wl_region@13.destroy()
[3928074.209]  -> wl_surface@9.commit()
[3928074.759] wl_buffer@30.release()
[3928077.425] wl_callback@31.done(539993)
[3928077.533]  -> wl_surface@11.frame(new id wl_callback@31)
[3928077.604]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928077.698]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928077.806]  -> wl_surface@11.commit()
[3928084.453] wl_display@1.delete_id(13)
[3928084.766] wl_display@1.delete_id(28)
[3928084.832] wl_display@1.delete_id(31)
[3928084.942] wl_callback@28.done(540042)
[3928085.026]  -> wl_surface@11.frame(new id wl_callback@28)
[3928116.322]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928116.481]  -> wl_region@13.add(0, 0, 640, 352)
[3928116.597]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928116.653]  -> wl_region@13.destroy()
[3928116.698]  -> wl_surface@9.commit()
[3928117.048] wl_buffer@32.release()
[3928119.635] wl_callback@31.done(540042)
[3928119.763]  -> wl_surface@11.frame(new id wl_callback@31)
[3928119.867]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928119.964]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928120.098]  -> wl_surface@11.commit()
[3928126.440] wl_display@1.delete_id(13)
[3928126.611] wl_display@1.delete_id(28)
[3928126.677] wl_display@1.delete_id(31)
[3928126.766] wl_callback@28.done(540084)
[3928127.202]  -> wl_surface@11.frame(new id wl_callback@28)
[3928152.871]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928153.692]  -> wl_region@13.add(0, 0, 640, 352)
[3928153.825]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928153.881]  -> wl_region@13.destroy()
[3928153.923]  -> wl_surface@9.commit()
[3928154.177] wl_buffer@30.release()
[3928156.645] wl_callback@31.done(540084)
[3928156.748]  -> wl_surface@11.frame(new id wl_callback@31)
[3928156.820]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928156.918]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928157.025]  -> wl_surface@11.commit()
[3928164.377] wl_display@1.delete_id(13)
[3928164.577] wl_display@1.delete_id(28)
[3928164.638] wl_display@1.delete_id(31)
[3928164.717] wl_callback@28.done(540121)
[3928164.796]  -> wl_surface@11.frame(new id wl_callback@28)
[3928192.847]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928193.409]  -> wl_region@13.add(0, 0, 640, 352)
[3928193.535]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928193.591]  -> wl_region@13.destroy()
[3928193.636]  -> wl_surface@9.commit()
[3928195.183] wl_buffer@32.release()
[3928198.048] wl_callback@31.done(540121)
[3928198.169]  -> wl_surface@11.frame(new id wl_callback@31)
[3928198.244]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928198.337]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928198.444]  -> wl_surface@11.commit()
[3928205.371] wl_display@1.delete_id(13)
[3928205.638] wl_display@1.delete_id(28)
[3928205.717] wl_display@1.delete_id(31)
[3928205.807] wl_callback@28.done(540162)
[3928205.902]  -> wl_surface@11.frame(new id wl_callback@28)
[3928233.680]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928233.839]  -> wl_region@13.add(0, 0, 640, 352)
[3928234.011]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928234.077]  -> wl_region@13.destroy()
[3928234.122]  -> wl_surface@9.commit()
[3928234.359] wl_buffer@30.release()
[3928236.989] wl_callback@31.done(540162)
[3928237.093]  -> wl_surface@11.frame(new id wl_callback@31)
[3928237.166]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928237.262]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928237.372]  -> wl_surface@11.commit()
[3928244.484] wl_display@1.delete_id(13)
[3928244.652] wl_display@1.delete_id(28)
[3928244.712] wl_display@1.delete_id(31)
[3928244.883] wl_callback@28.done(540201)
[3928244.972]  -> wl_surface@11.frame(new id wl_callback@28)
[3928276.351]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928276.750]  -> wl_region@13.add(0, 0, 640, 352)
[3928276.886]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928277.156]  -> wl_region@13.destroy()
[3928277.219]  -> wl_surface@9.commit()
[3928277.455] wl_buffer@32.release()
[3928280.545] wl_callback@31.done(540201)
[3928280.656]  -> wl_surface@11.frame(new id wl_callback@31)
[3928280.728]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928280.821]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928280.929]  -> wl_surface@11.commit()
[3928287.310] wl_display@1.delete_id(13)
[3928287.497] wl_display@1.delete_id(28)
[3928287.569] wl_display@1.delete_id(31)
[3928287.664] wl_callback@28.done(540244)
[3928287.747]  -> wl_surface@11.frame(new id wl_callback@28)
[3928313.623]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928313.774]  -> wl_region@13.add(0, 0, 640, 352)
[3928313.895]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928313.956]  -> wl_region@13.destroy()
[3928314.003]  -> wl_surface@9.commit()
[3928314.231] wl_buffer@30.release()
[3928316.848] wl_callback@31.done(540244)
[3928316.953]  -> wl_surface@11.frame(new id wl_callback@31)
[3928317.024]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928317.230]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928317.367]  -> wl_surface@11.commit()
[3928323.711] wl_display@1.delete_id(13)
[3928323.902] wl_display@1.delete_id(28)
[3928324.017] wl_display@1.delete_id(31)
[3928324.247] wl_callback@28.done(540281)
[3928324.344]  -> wl_surface@11.frame(new id wl_callback@28)
[3928355.184]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928355.340]  -> wl_region@13.add(0, 0, 640, 352)
[3928355.459]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928355.515]  -> wl_region@13.destroy()
[3928355.559]  -> wl_surface@9.commit()
[3928356.113] wl_buffer@32.release()
[3928359.298] wl_callback@31.done(540281)
[3928359.417]  -> wl_surface@11.frame(new id wl_callback@31)
[3928359.491]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928359.618]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928360.012]  -> wl_surface@11.commit()
[3928366.164] wl_display@1.delete_id(13)
[3928366.319] wl_display@1.delete_id(28)
[3928366.386] wl_display@1.delete_id(31)
[3928366.479] wl_callback@28.done(540324)
[3928366.564]  -> wl_surface@11.frame(new id wl_callback@28)
[3928394.369]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928394.986]  -> wl_region@13.add(0, 0, 640, 352)
[3928395.195]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928395.261]  -> wl_region@13.destroy()
[3928395.305]  -> wl_surface@9.commit()
[3928395.534] wl_buffer@30.release()
[3928398.183] wl_callback@31.done(540324)
[3928398.286]  -> wl_surface@11.frame(new id wl_callback@31)
[3928398.360]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928398.458]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928399.039]  -> wl_surface@11.commit()
[3928404.941] wl_display@1.delete_id(13)
[3928405.125] wl_display@1.delete_id(28)
[3928405.188] wl_display@1.delete_id(31)
[3928405.306] wl_callback@28.done(540362)
[3928405.396]  -> wl_surface@11.frame(new id wl_callback@28)
[3928418.746] ivi_input@18.input_focus(90, 4, 0)
[3928418.903] ivi_input@18.input_focus(63, 4, 0)
[3928419.194] ivi_input@18.input_focus(62, 4, 0)
[3928419.291] ivi_input@18.input_focus(61, 4, 0)
[3928419.381] ivi_input@18.input_focus(60, 4, 0)
[3928814.260] ivi_input@18.input_focus(90, 4, 0)
[3928814.479] ivi_input@18.input_focus(63, 4, 0)
[3928815.606] ivi_input@18.input_focus(62, 4, 0)
[3928815.735] ivi_input@18.input_focus(61, 4, 0)
[3928815.828] ivi_input@18.input_focus(60, 4, 0)
[3928821.636]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928822.384]  -> wl_region@13.add(0, 0, 640, 352)
[3928822.528]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928822.588]  -> wl_region@13.destroy()
[3928822.632]  -> wl_surface@9.commit()
[3928822.919] wl_buffer@32.release()
[3928825.979] wl_callback@31.done(540362)
[3928826.095]  -> wl_surface@11.frame(new id wl_callback@31)
[3928826.168]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928826.262]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928826.378]  -> wl_surface@11.commit()
[3928832.668] wl_display@1.delete_id(13)
[3928832.848] wl_display@1.delete_id(28)
[3928832.913] wl_display@1.delete_id(31)
[3928834.521] wl_callback@28.done(540790)
[3928834.716]  -> wl_surface@11.frame(new id wl_callback@28)
[3928872.457]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928872.606]  -> wl_region@13.add(0, 0, 640, 352)
[3928872.745]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928872.856]  -> wl_region@13.destroy()
[3928872.911]  -> wl_surface@9.commit()
[3928873.374] wl_buffer@30.release()
[3928876.555] wl_callback@31.done(540790)
[3928876.762]  -> wl_surface@11.frame(new id wl_callback@31)
[3928876.872]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928876.971]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928877.189]  -> wl_surface@11.commit()
[3928882.845] wl_display@1.delete_id(13)
[3928883.009] wl_display@1.delete_id(28)
[3928883.070] wl_display@1.delete_id(31)
[3928883.154] wl_callback@28.done(540840)
[3928883.359]  -> wl_surface@11.frame(new id wl_callback@28)
[3928916.181]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928916.325]  -> wl_region@13.add(0, 0, 640, 352)
[3928916.478]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928916.549]  -> wl_region@13.destroy()
[3928916.818]  -> wl_surface@9.commit()
[3928917.106] wl_buffer@32.release()
[3928919.683] wl_callback@31.done(540840)
[3928919.792]  -> wl_surface@11.frame(new id wl_callback@31)
[3928919.864]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928919.959]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928920.066]  -> wl_surface@11.commit()
[3928930.145] wl_display@1.delete_id(13)
[3928930.312] wl_display@1.delete_id(28)
[3928930.375] wl_display@1.delete_id(31)
[3928930.456] wl_callback@28.done(540884)
[3928930.534]  -> wl_surface@11.frame(new id wl_callback@28)
[3928952.806]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928953.050]  -> wl_region@13.add(0, 0, 640, 352)
[3928953.233]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928953.306]  -> wl_region@13.destroy()
[3928953.354]  -> wl_surface@9.commit()
[3928953.586] wl_buffer@30.release()
[3928956.579] wl_callback@31.done(540884)
[3928956.690]  -> wl_surface@11.frame(new id wl_callback@31)
[3928956.763]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3928956.856]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928956.963]  -> wl_surface@11.commit()
[3928962.989] wl_display@1.delete_id(13)
[3928963.268] wl_display@1.delete_id(28)
[3928963.347] wl_display@1.delete_id(31)
[3928963.452] wl_callback@28.done(540920)
[3928963.534]  -> wl_surface@11.frame(new id wl_callback@28)
[3928995.905]  -> wl_compositor@3.create_region(new id wl_region@13)
[3928996.075]  -> wl_region@13.add(0, 0, 640, 352)
[3928996.198]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3928996.256]  -> wl_region@13.destroy()
[3928996.300]  -> wl_surface@9.commit()
[3928996.450] wl_buffer@32.release()
[3928999.514] wl_callback@31.done(540920)
[3928999.637]  -> wl_surface@11.frame(new id wl_callback@31)
[3928999.710]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3928999.804]  -> wl_surface@11.damage(0, 0, 640, 352)
[3928999.911]  -> wl_surface@11.commit()
[3929006.056] wl_display@1.delete_id(13)
[3929006.200] wl_display@1.delete_id(28)
[3929006.257] wl_display@1.delete_id(31)
[3929006.334] wl_callback@28.done(540963)
[3929006.430]  -> wl_surface@11.frame(new id wl_callback@28)
[3929033.518]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929033.840]  -> wl_region@13.add(0, 0, 640, 352)
[3929034.083]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929034.146]  -> wl_region@13.destroy()
[3929034.192]  -> wl_surface@9.commit()
[3929034.443] wl_buffer@30.release()
[3929037.118] wl_callback@31.done(540963)
[3929037.229]  -> wl_surface@11.frame(new id wl_callback@31)
[3929037.302]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929037.394]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929037.501]  -> wl_surface@11.commit()
[3929044.582] wl_display@1.delete_id(13)
[3929044.882] wl_display@1.delete_id(28)
[3929044.963] wl_display@1.delete_id(31)
[3929045.053] wl_callback@28.done(541001)
[3929045.140]  -> wl_surface@11.frame(new id wl_callback@28)
[3929077.525]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929077.674]  -> wl_region@13.add(0, 0, 640, 352)
[3929077.828]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929077.897]  -> wl_region@13.destroy()
[3929077.942]  -> wl_surface@9.commit()
[3929078.089] wl_buffer@32.release()
[3929080.820] wl_callback@31.done(541001)
[3929080.938]  -> wl_surface@11.frame(new id wl_callback@31)
[3929081.012]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929081.113]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929081.224]  -> wl_surface@11.commit()
[3929089.680] wl_display@1.delete_id(13)
[3929089.873] wl_display@1.delete_id(28)
[3929089.943] wl_display@1.delete_id(31)
[3929090.010] wl_callback@28.done(541045)
[3929090.086]  -> wl_surface@11.frame(new id wl_callback@28)
[3929113.566]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929113.714]  -> wl_region@13.add(0, 0, 640, 352)
[3929113.831]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929114.142]  -> wl_region@13.destroy()
[3929114.210]  -> wl_surface@9.commit()
[3929114.438] wl_buffer@30.release()
[3929116.873] wl_callback@31.done(541045)
[3929117.003]  -> wl_surface@11.frame(new id wl_callback@31)
[3929117.075]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929117.293]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929117.410]  -> wl_surface@11.commit()
[3929123.889] wl_display@1.delete_id(13)
[3929124.157] wl_display@1.delete_id(28)
[3929124.222] wl_display@1.delete_id(31)
[3929124.548] wl_callback@28.done(541081)
[3929124.654]  -> wl_surface@11.frame(new id wl_callback@28)
[3929153.885]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929155.278]  -> wl_region@13.add(0, 0, 640, 352)
[3929155.417]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929155.474]  -> wl_region@13.destroy()
[3929155.518]  -> wl_surface@9.commit()
[3929155.783] wl_buffer@32.release()
[3929158.882] wl_callback@31.done(541081)
[3929159.000]  -> wl_surface@11.frame(new id wl_callback@31)
[3929159.073]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929159.168]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929159.275]  -> wl_surface@11.commit()
[3929165.125] wl_display@1.delete_id(13)
[3929165.326] wl_display@1.delete_id(28)
[3929165.399] wl_display@1.delete_id(31)
[3929165.489] wl_callback@28.done(541123)
[3929165.576]  -> wl_surface@11.frame(new id wl_callback@28)
[3929192.624]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929192.775]  -> wl_region@13.add(0, 0, 640, 352)
[3929193.045]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929193.110]  -> wl_region@13.destroy()
[3929193.157]  -> wl_surface@9.commit()
[3929193.841] wl_buffer@30.release()
[3929196.408] wl_callback@31.done(541123)
[3929196.520]  -> wl_surface@11.frame(new id wl_callback@31)
[3929196.592]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929196.685]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929196.792]  -> wl_surface@11.commit()
[3929204.468] wl_display@1.delete_id(13)
[3929204.818] wl_display@1.delete_id(28)
[3929204.903] wl_display@1.delete_id(31)
[3929205.016] wl_callback@28.done(541161)
[3929205.096]  -> wl_surface@11.frame(new id wl_callback@28)
[3929207.856] ivi_input@18.input_focus(90, 4, 0)
[3929208.039] ivi_input@18.input_focus(63, 4, 0)
[3929208.135] ivi_input@18.input_focus(62, 4, 0)
[3929208.225] ivi_input@18.input_focus(61, 4, 0)
[3929208.313] ivi_input@18.input_focus(60, 4, 0)
[3929671.307] ivi_input@18.input_focus(90, 4, 0)
[3929671.494] ivi_input@18.input_focus(63, 4, 0)
[3929671.595] ivi_input@18.input_focus(62, 4, 0)
[3929671.693] ivi_input@18.input_focus(61, 4, 0)
[3929671.786] ivi_input@18.input_focus(60, 4, 0)
[3929672.631]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929672.769]  -> wl_region@13.add(0, 0, 640, 352)
[3929672.907]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929672.965]  -> wl_region@13.destroy()
[3929673.009]  -> wl_surface@9.commit()
[3929673.586] wl_buffer@32.release()
[3929677.982] wl_callback@31.done(541161)
[3929678.121]  -> wl_surface@11.frame(new id wl_callback@31)
[3929678.207]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929678.357]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929678.511]  -> wl_surface@11.commit()
[3929682.992] wl_display@1.delete_id(13)
[3929683.145] wl_display@1.delete_id(28)
[3929683.317] wl_display@1.delete_id(31)
[3929683.406] wl_callback@28.done(541640)
[3929683.487]  -> wl_surface@11.frame(new id wl_callback@28)
[3929716.230]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929716.378]  -> wl_region@13.add(0, 0, 640, 352)
[3929716.496]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929716.553]  -> wl_region@13.destroy()
[3929716.623]  -> wl_surface@9.commit()
[3929716.762] wl_buffer@30.release()
[3929719.692] wl_callback@31.done(541640)
[3929719.848]  -> wl_surface@11.frame(new id wl_callback@31)
[3929719.947]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929720.043]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929720.150]  -> wl_surface@11.commit()
[3929726.026] wl_display@1.delete_id(13)
[3929726.181] wl_display@1.delete_id(28)
[3929726.242] wl_display@1.delete_id(31)
[3929726.321] wl_callback@28.done(541684)
[3929731.119]  -> wl_surface@11.frame(new id wl_callback@28)
[3929753.268]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929753.596]  -> wl_region@13.add(0, 0, 640, 352)
[3929754.205]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929754.272]  -> wl_region@13.destroy()
[3929754.317]  -> wl_surface@9.commit()
[3929754.553] wl_buffer@32.release()
[3929757.548] wl_callback@31.done(541684)
[3929757.654]  -> wl_surface@11.frame(new id wl_callback@31)
[3929757.748]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929757.840]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929757.948]  -> wl_surface@11.commit()
[3929764.385] wl_display@1.delete_id(13)
[3929764.547] wl_display@1.delete_id(28)
[3929764.605] wl_display@1.delete_id(31)
[3929764.683] wl_callback@28.done(541722)
[3929764.790]  -> wl_surface@11.frame(new id wl_callback@28)
[3929795.302]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929795.462]  -> wl_region@13.add(0, 0, 640, 352)
[3929795.579]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929795.656]  -> wl_region@13.destroy()
[3929795.906]  -> wl_surface@9.commit()
[3929796.146] wl_buffer@30.release()
[3929798.828] wl_callback@31.done(541722)
[3929798.932]  -> wl_surface@11.frame(new id wl_callback@31)
[3929799.004]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929799.186]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929799.431]  -> wl_surface@11.commit()
[3929805.601] wl_display@1.delete_id(13)
[3929805.758] wl_display@1.delete_id(28)
[3929805.842] wl_display@1.delete_id(31)
[3929805.935] wl_callback@28.done(541763)
[3929806.016]  -> wl_surface@11.frame(new id wl_callback@28)
[3929832.620]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929832.775]  -> wl_region@13.add(0, 0, 640, 352)
[3929832.897]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929832.956]  -> wl_region@13.destroy()
[3929833.001]  -> wl_surface@9.commit()
[3929833.848] wl_buffer@32.release()
[3929837.006] wl_callback@31.done(541763)
[3929837.120]  -> wl_surface@11.frame(new id wl_callback@31)
[3929837.192]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929837.286]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929837.392]  -> wl_surface@11.commit()
[3929843.595] wl_display@1.delete_id(13)
[3929844.223] wl_display@1.delete_id(28)
[3929844.293] wl_display@1.delete_id(31)
[3929844.375] wl_callback@28.done(541801)
[3929844.460]  -> wl_surface@11.frame(new id wl_callback@28)
[3929876.067]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929876.214]  -> wl_region@13.add(0, 0, 640, 352)
[3929876.368]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929876.432]  -> wl_region@13.destroy()
[3929876.481]  -> wl_surface@9.commit()
[3929876.706] wl_buffer@30.release()
[3929879.334] wl_callback@31.done(541801)
[3929879.447]  -> wl_surface@11.frame(new id wl_callback@31)
[3929879.519]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929879.613]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929879.719]  -> wl_surface@11.commit()
[3929889.565] wl_display@1.delete_id(13)
[3929889.739] wl_display@1.delete_id(28)
[3929889.798] wl_display@1.delete_id(31)
[3929890.623] wl_callback@28.done(541844)
[3929890.786]  -> wl_surface@11.frame(new id wl_callback@28)
[3929912.634]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929912.775]  -> wl_region@13.add(0, 0, 640, 352)
[3929912.892]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929912.953]  -> wl_region@13.destroy()
[3929913.000]  -> wl_surface@9.commit()
[3929913.130] wl_buffer@32.release()
[3929916.370] wl_callback@31.done(541844)
[3929916.501]  -> wl_surface@11.frame(new id wl_callback@31)
[3929916.576]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929916.670]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929916.798]  -> wl_surface@11.commit()
[3929922.756] wl_display@1.delete_id(13)
[3929922.927] wl_display@1.delete_id(28)
[3929922.988] wl_display@1.delete_id(31)
[3929923.070] wl_callback@28.done(541880)
[3929923.149]  -> wl_surface@11.frame(new id wl_callback@28)
[3929956.351]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929956.527]  -> wl_region@13.add(0, 0, 640, 352)
[3929956.895]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929956.968]  -> wl_region@13.destroy()
[3929957.016]  -> wl_surface@9.commit()
[3929957.262] wl_buffer@30.release()
[3929959.893] wl_callback@31.done(541880)
[3929960.003]  -> wl_surface@11.frame(new id wl_callback@31)
[3929960.074]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3929960.168]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929960.275]  -> wl_surface@11.commit()
[3929970.966] wl_display@1.delete_id(13)
[3929971.055] wl_display@1.delete_id(28)
[3929971.208] wl_display@1.delete_id(31)
[3929971.264] wl_callback@28.done(541924)
[3929971.461]  -> wl_surface@11.frame(new id wl_callback@28)
[3929992.727]  -> wl_compositor@3.create_region(new id wl_region@13)
[3929992.877]  -> wl_region@13.add(0, 0, 640, 352)
[3929992.993]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3929993.401]  -> wl_region@13.destroy()
[3929993.459]  -> wl_surface@9.commit()
[3929993.697] wl_buffer@32.release()
[3929996.300] wl_callback@31.done(541924)
[3929996.406]  -> wl_surface@11.frame(new id wl_callback@31)
[3929996.480]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3929996.572]  -> wl_surface@11.damage(0, 0, 640, 352)
[3929996.679]  -> wl_surface@11.commit()
[3930003.449] wl_display@1.delete_id(13)
[3930003.724] wl_display@1.delete_id(28)
[3930003.795] wl_display@1.delete_id(31)
[3930003.884] wl_callback@28.done(541960)
[3930003.974]  -> wl_surface@11.frame(new id wl_callback@28)
[3930035.431]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930035.587]  -> wl_region@13.add(0, 0, 640, 352)
[3930036.060]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930036.127]  -> wl_region@13.destroy()
[3930036.176]  -> wl_surface@9.commit()
[3930036.414] wl_buffer@30.release()
[3930039.299] wl_callback@31.done(541960)
[3930039.408]  -> wl_surface@11.frame(new id wl_callback@31)
[3930039.481]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3930039.577]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930039.721]  -> wl_surface@11.commit()
[3930045.708] wl_display@1.delete_id(13)
[3930045.855] wl_display@1.delete_id(28)
[3930045.913] wl_display@1.delete_id(31)
[3930045.992] wl_callback@28.done(542003)
[3930046.069]  -> wl_surface@11.frame(new id wl_callback@28)
[3930073.068]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930073.321]  -> wl_region@13.add(0, 0, 640, 352)
[3930073.457]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930073.521]  -> wl_region@13.destroy()
[3930073.754]  -> wl_surface@9.commit()
[3930074.106] wl_buffer@32.release()
[3930076.588] wl_callback@31.done(542003)
[3930076.697]  -> wl_surface@11.frame(new id wl_callback@31)
[3930076.792]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3930076.888]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930409.365]  -> wl_surface@11.commit()
[3930409.648] wl_display@1.delete_id(13)
[3930409.743] ivi_input@18.input_focus(90, 4, 0)
[3930409.842] ivi_input@18.input_focus(63, 4, 0)
[3930409.931] ivi_input@18.input_focus(62, 4, 0)
[3930410.020] ivi_input@18.input_focus(61, 4, 0)
[3930410.133] ivi_input@18.input_focus(60, 4, 0)
[3930419.259] wl_display@1.delete_id(28[3930419.287] wl_display@1.delete_id(31)
)
[3930420.078] wl_callback@28.done(542376)
[3930420.250]  -> wl_surface@11.frame(new id wl_callback@28)
[3930429.014]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930429.205]  -> wl_region@13.add(0, 0, 640, 352)
[3930429.341]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930429.411]  -> wl_region@13.destroy()
[3930429.465]  -> wl_surface@9.commit()
[3930429.671] wl_buffer@30.release()
[3930435.469] wl_callback@31.done(542376)
[3930435.613]  -> wl_surface@11.frame(new id wl_callback@31)
[3930435.860]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3930435.960]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930436.068]  -> wl_surface@11.commit()
[3930443.041] wl_display@1.delete_id(13)
[3930443.309] wl_display@1.delete_id(28)
[3930443.495] wl_display@1.delete_id(31)
[3930443.673] wl_callback@28.done(542400)
[3930444.092]  -> wl_surface@11.frame(new id wl_callback@28)
[3930472.892]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930473.603]  -> wl_region@13.add(0, 0, 640, 352)
[3930473.732]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930473.797]  -> wl_region@13.destroy()
[3930473.847]  -> wl_surface@9.commit()
[3930474.111] wl_buffer@32.release()
[3930477.137] wl_callback@31.done(542400)
[3930477.245]  -> wl_surface@11.frame(new id wl_callback@31)
[3930477.317]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3930477.411]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930477.519]  -> wl_surface@11.commit()
[3930484.245] wl_display@1.delete_id(13)
[3930484.423] wl_display@1.delete_id(28)
[3930484.484] wl_display@1.delete_id(31)
[3930484.623] wl_callback@28.done(542441)
[3930484.710]  -> wl_surface@11.frame(new id wl_callback@28)
[3930516.269]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930516.459]  -> wl_region@13.add(0, 0, 640, 352)
[3930516.580]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930516.641]  -> wl_region@13.destroy()
[3930516.689]  -> wl_surface@9.commit()
[3930517.141] wl_buffer@30.release()
[3930520.172] wl_callback@31.done(542441)
[3930520.307]  -> wl_surface@11.frame(new id wl_callback@31)
[3930520.419]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3930520.514]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930520.622]  -> wl_surface@11.commit()
[3930526.572] wl_display@1.delete_id(13)
[3930526.773] wl_display@1.delete_id(28)
[3930527.435] wl_display@1.delete_id(31)
[3930527.565] wl_callback@28.done(542484)
[3930527.662]  -> wl_surface@11.frame(new id wl_callback@28)
[3930553.008]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930553.605]  -> wl_region@13.add(0, 0, 640, 352)
[3930554.091]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930554.157]  -> wl_region@13.destroy()
[3930554.202]  -> wl_surface@9.commit()
[3930554.439] wl_buffer@32.release()
[3930557.403] wl_callback@31.done(542484)
[3930557.511]  -> wl_surface@11.frame(new id wl_callback@31)
[3930557.601]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3930557.705]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930557.815]  -> wl_surface@11.commit()
[3930563.950] wl_display@1.delete_id(13)
[3930564.135] wl_display@1.delete_id(28)
[3930564.201] wl_display@1.delete_id(31)
[3930564.294] wl_callback@28.done(542521)
[3930564.380]  -> wl_surface@11.frame(new id wl_callback@28)
[3930594.281]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930594.491]  -> wl_region@13.add(0, 0, 640, 352)
[3930594.694]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930594.762]  -> wl_region@13.destroy()
[3930594.810]  -> wl_surface@9.commit()
[3930595.548] wl_buffer@30.release()
[3930598.467] wl_callback@31.done(542521)
[3930598.578]  -> wl_surface@11.frame(new id wl_callback@31)
[3930598.651]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3930598.745]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930598.853]  -> wl_surface@11.commit()
[3930604.941] wl_display@1.delete_id(13)
[3930605.084] wl_display@1.delete_id(28)
[3930605.142] wl_display@1.delete_id(31)
[3930605.223] wl_callback@28.done(542562)
[3930605.296]  -> wl_surface@11.frame(new id wl_callback@28)
[3930633.527]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930633.706]  -> wl_region@13.add(0, 0, 640, 352)
[3930634.178]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930634.247]  -> wl_region@13.destroy()
[3930634.291]  -> wl_surface@9.commit()
[3930634.585] wl_buffer@32.release()
[3930637.498] wl_callback@31.done(542562)
[3930637.596]  -> wl_surface@11.frame(new id wl_callback@31)
[3930637.670]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3930637.764]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930637.872]  -> wl_surface@11.commit()
[3930644.265] wl_display@1.delete_id(13[3930644.367] wl_display@1.delete_id(28)
)
[3930644.535] wl_display@1.delete_id(31)
[3930644.549] wl_callback@28.done(542602)
[3930644.796]  -> wl_surface@11.frame(new id wl_callback@28)
[3930676.158]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930676.557]  -> wl_region@13.add(0, 0, 640, 352)
[3930676.673]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930676.732]  -> wl_region@13.destroy()
[3930676.775]  -> wl_surface@9.commit()
[3930676.993] wl_buffer@30.release()
[3930679.586] wl_callback@31.done(542602)
[3930679.689]  -> wl_surface@11.frame(new id wl_callback@31)
[3930679.761]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3930680.431]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930680.550]  -> wl_surface@11.commit()
[3930686.282] wl_display@1.delete_id(13)
[3930686.450] wl_display@1.delete_id(28)
[3930686.516] wl_display@1.delete_id(31)
[3930686.608] wl_callback@28.done(542644)
[3930686.695]  -> wl_surface@11.frame(new id wl_callback@28)
[3930712.579]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930712.756]  -> wl_region@13.add(0, 0, 640, 352)
[3930712.877]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930712.942]  -> wl_region@13.destroy()
[3930712.992]  -> wl_surface@9.commit()
[3930713.788] wl_buffer@32.release()
[3930716.829] wl_callback@31.done(542644)
[3930717.062]  -> wl_surface@11.frame(new id wl_callback@31)
[3930717.147]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3930717.241]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930717.348]  -> wl_surface@11.commit()
[3930723.522] wl_display@1.delete_id(13)
[3930724.082] wl_display@1.delete_id(28)
[3930724.160] wl_display@1.delete_id(31)
[3930724.239] wl_callback@28.done(542681)
[3930724.317]  -> wl_surface@11.frame(new id wl_callback@28)
[3930755.974]  -> wl_compositor@3.create_region(new id wl_region@13)
[3930756.137]  -> wl_region@13.add(0, 0, 640, 352)
[3930756.270]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3930756.340]  -> wl_region@13.destroy()
[3930756.386]  -> wl_surface@9.commit()
[3930756.548] wl_buffer@30.release()
[3930759.176] wl_callback@31.done(542681)
[3930759.278]  -> wl_surface@11.frame(new id wl_callback@31)
[3930759.350]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3930759.443]  -> wl_surface@11.damage(0, 0, 640, 352)
[3930759.551]  -> wl_surface@11.commit()
[3930766.148] wl_display@1.delete_id(13)
[3930766.302] wl_display@1.delete_id(28)
[3930766.363] wl_display@1.delete_id(31)
[3930766.464] wl_callback@28.done(542723)
[3930766.554]  -> wl_surface@11.frame(new id wl_callback@28)
[3930787.422] ivi_input@18.input_focus(90, 4, 0)
[3930787.626] ivi_input@18.input_focus(63, 4, 0)
[3930787.935] ivi_input@18.input_focus(62, 4, 0)
[3930788.029] ivi_input@18.input_focus(61, 4, 0)
[3930788.131] ivi_input@18.input_focus(60, 4, 0)
[3931307.306] ivi_input@18.input_focus(90, 4, 0)
[3931307.498] ivi_input@18.input_focus(63, 4, 0)
[3931307.595] ivi_input@18.input_focus(62, 4, 0)
[3931307.685] ivi_input@18.input_focus(61, 4, 0)
[3931307.774] ivi_input@18.input_focus(60, 4, 0)
[3931317.852]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931318.148]  -> wl_region@13.add(0, 0, 640, 352)
[3931318.287]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931318.347]  -> wl_region@13.destroy()
[3931318.390]  -> wl_surface@9.commit()
[3931318.635] wl_buffer@32.release()
[3931321.695] wl_callback@31.done(542723)
[3931321.797]  -> wl_surface@11.frame(new id wl_callback@31)
[3931321.868]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3931321.962]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931322.069]  -> wl_surface@11.commit()
[3931328.242] wl_display@1.delete_id(13)
[3931328.423] wl_display@1.delete_id(28)
[3931328.494] wl_display@1.delete_id(31)
[3931328.594] wl_callback@28.done(543286)
[3931328.685]  -> wl_surface@11.frame(new id wl_callback@28)
[3931353.976]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931354.156]  -> wl_region@13.add(0, 0, 640, 352)
[3931354.275]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931354.333]  -> wl_region@13.destroy()
[3931354.376]  -> wl_surface@9.commit()
[3931354.776] wl_buffer@30.release()
[3931357.487] wl_callback@31.done(543286)
[3931357.599]  -> wl_surface@11.frame(new id wl_callback@31)
[3931357.671]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3931357.764]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931357.871]  -> wl_surface@11.commit()
[3931364.934] wl_display@1.delete_id(13)
[3931365.100] wl_display@1.delete_id(28)
[3931365.161] wl_display@1.delete_id(31)
[3931365.243] wl_callback@28.done(543322)
[3931365.322]  -> wl_surface@11.frame(new id wl_callback@28)
[3931396.271]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931396.467]  -> wl_region@13.add(0, 0, 640, 352)
[3931396.585]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931396.644]  -> wl_region@13.destroy()
[3931396.689]  -> wl_surface@9.commit()
[3931397.050] wl_buffer@32.release()
[3931400.051] wl_callback@31.done(543322)
[3931400.165]  -> wl_surface@11.frame(new id wl_callback@31)
[3931400.237]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3931400.332]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931400.438]  -> wl_surface@11.commit()
[3931406.380] wl_display@1.delete_id(13)
[3931406.550] wl_display@1.delete_id(28)
[3931406.615] wl_display@1.delete_id(31)
[3931406.701] wl_callback@28.done(543364)
[3931406.784]  -> wl_surface@11.frame(new id wl_callback@28)
[3931432.885]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931435.320]  -> wl_region@13.add(0, 0, 640, 352)
[3931435.463]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931435.523]  -> wl_region@13.destroy()
[3931435.566]  -> wl_surface@9.commit()
[3931436.287] wl_buffer@30.release()
[3931440.294] wl_callback@31.done(543364)
[3931440.414]  -> wl_surface@11.frame(new id wl_callback@31)
[3931440.491]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3931440.586]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931440.693]  -> wl_surface@11.commit()
[3931445.767] wl_display@1.delete_id(13)
[3931445.949] wl_display@1.delete_id(28)
[3931446.017] wl_display@1.delete_id(31)
[3931446.106] wl_callback@28.done(543403)
[3931446.204]  -> wl_surface@11.frame(new id wl_callback@28)
[3931476.452]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931476.621]  -> wl_region@13.add(0, 0, 640, 352)
[3931476.753]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931476.818]  -> wl_region@13.destroy()
[3931476.869]  -> wl_surface@9.commit()
[3931477.096] wl_buffer@32.release()
[3931480.153] wl_callback@31.done(543403)
[3931480.269]  -> wl_surface@11.frame(new id wl_callback@31)
[3931480.342]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3931480.436]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931480.543]  -> wl_surface@11.commit()
[3931486.448] wl_display@1.delete_id(13)
[3931486.607] wl_display@1.delete_id(28)
[3931486.675] wl_display@1.delete_id(31)
[3931489.718] wl_callback@28.done(543444)
[3931490.888]  -> wl_surface@11.frame(new id wl_callback@28)
[3931513.650]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931514.140]  -> wl_region@13.add(0, 0, 640, 352)
[3931514.260]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931514.319]  -> wl_region@13.destroy()
[3931514.361]  -> wl_surface@9.commit()
[3931514.589] wl_buffer@30.release()
[3931517.570] wl_callback@31.done(543444)
[3931517.720]  -> wl_surface@11.frame(new id wl_callback@31)
[3931517.799]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3931517.893]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931518.061]  -> wl_surface@11.commit()
[3931524.003] wl_display@1.delete_id(13)
[3931524.210] wl_display@1.delete_id(28)
[3931524.282] wl_display@1.delete_id(31)
[3931524.368] wl_callback@28.done(543481)
[3931524.452]  -> wl_surface@11.frame(new id wl_callback@28)
[3931556.350]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931556.498]  -> wl_region@13.add(0, 0, 640, 352)
[3931556.612]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931556.668]  -> wl_region@13.destroy()
[3931556.738]  -> wl_surface@9.commit()
[3931556.882] wl_buffer@32.release()
[3931559.850] wl_callback@31.done(543481)
[3931559.973]  -> wl_surface@11.frame(new id wl_callback@31)
[3931560.045]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3931560.140]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931560.247]  -> wl_surface@11.commit()
[3931566.166] wl_display@1.delete_id(13)
[3931566.314] wl_display@1.delete_id(28)
[3931566.378] wl_display@1.delete_id(31)
[3931566.468] wl_callback@28.done(543524)
[3931566.553]  -> wl_surface@11.frame(new id wl_callback@28)
[3931592.400]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931592.580]  -> wl_region@13.add(0, 0, 640, 352)
[3931592.709]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931592.771]  -> wl_region@13.destroy()
[3931592.816]  -> wl_surface@9.commit()
[3931592.969] wl_buffer@30.release()
[3931596.257] wl_callback@31.done(543524)
[3931596.371]  -> wl_surface@11.frame(new id wl_callback@31)
[3931596.443]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3931596.537]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931596.661]  -> wl_surface@11.commit()
[3931603.316] wl_display@1.delete_id(13)
[3931603.505] wl_display@1.delete_id(28)
[3931603.578] wl_display@1.delete_id(31)
[3931603.665] wl_callback@28.done(543561)
[3931604.188]  -> wl_surface@11.frame(new id wl_callback@28)
[3931635.367]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931635.542]  -> wl_region@13.add(0, 0, 640, 352)
[3931636.129]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931636.195]  -> wl_region@13.destroy()
[3931636.240]  -> wl_surface@9.commit()
[3931636.465] wl_buffer@32.release()
[3931638.993] wl_callback@31.done(543561)
[3931639.103]  -> wl_surface@11.frame(new id wl_callback@31)
[3931639.174]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3931639.269]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931639.470]  -> wl_surface@11.commit()
[3931645.801] wl_display@1.delete_id(13)
[3931645.961] wl_display@1.delete_id(28)
[3931646.020] wl_display@1.delete_id(31)
[3931646.099] wl_callback@28.done(543603)
[3931646.178]  -> wl_surface@11.frame(new id wl_callback@28)
[3931672.525]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931672.681]  -> wl_region@13.add(0, 0, 640, 352)
[3931672.797]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931672.854]  -> wl_region@13.destroy()
[3931672.898]  -> wl_surface@9.commit()
[3931673.523] wl_buffer@30.release()
[3931676.421] wl_callback@31.done(543603)
[3931676.532]  -> wl_surface@11.frame(new id wl_callback@31)
[3931676.604]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3931676.699]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931676.806]  -> wl_surface@11.commit()
[3931682.975] wl_display@1.delete_id(13)
[3931683.132] wl_display@1.delete_id(28)
[3931683.305] wl_display@1.delete_id(31)
[3931683.414] wl_callback@28.done(543640)
[3931683.495]  -> wl_surface@11.frame(new id wl_callback@28)
[3931714.620]  -> wl_compositor@3.create_region(new id wl_region@13)
[3931714.768]  -> wl_region@13.add(0, 0, 640, 352)
[3931714.881]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3931714.937]  -> wl_region@13.destroy()
[3931715.009]  -> wl_surface@9.commit()
[3931715.155] wl_buffer@32.release()
[3931717.880] wl_callback@31.done(543640)
[3931717.984]  -> wl_surface@11.frame(new id wl_callback@31)
[3931718.060]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3931718.154]  -> wl_surface@11.damage(0, 0, 640, 352)
[3931718.260]  -> wl_surface@11.commit()
[3932049.980] wl_display@1.delete_id(13)
[3932050.102] ivi_input@18.input_focus(90, 4, 0)
[3932050.204] ivi_input@18.input_focus(63, 4, 0)
[3932050.295] ivi_input@18.input_focus(62, 4, 0)
[3932050.386] ivi_input@18.input_focus(61, 4, 0)
[3932050.475] ivi_input@18.input_focus(60, 4, 0)
[3932059.667] wl_display@1.delete_id(28)
[3932059.877] wl_display@1.delete_id(31)
[3932059.980] wl_callback@28.done(544017)
[3932060.089]  -> wl_surface@11.frame(new id wl_callback@28)
[3932073.147]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932073.424]  -> wl_region@13.add(0, 0, 640, 352)
[3932073.554]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932073.629]  -> wl_region@13.destroy()
[3932073.682]  -> wl_surface@9.commit()
[3932073.881] wl_buffer@30.release()
[3932077.996] wl_callback@31.done(544017)
[3932078.146]  -> wl_surface@11.frame(new id wl_callback@31)
[3932078.227]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932078.322]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932078.953]  -> wl_surface@11.commit()
[3932083.640] wl_display@1.delete_id(13)
[3932084.241] wl_display@1.delete_id(28)
[3932084.304] wl_display@1.delete_id(31)
[3932084.384] wl_callback@28.done(544041)
[3932084.462]  -> wl_surface@11.frame(new id wl_callback@28)
[3932115.168]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932115.322]  -> wl_region@13.add(0, 0, 640, 352)
[3932115.441]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932115.498]  -> wl_region@13.destroy()
[3932115.542]  -> wl_surface@9.commit()
[3932116.065] wl_buffer@32.release()
[3932118.870] wl_callback@31.done(544041)
[3932119.016]  -> wl_surface@11.frame(new id wl_callback@31)
[3932119.089]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3932119.183]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932119.290]  -> wl_surface@11.commit()
[3932125.504] wl_display@1.delete_id(13)
[3932125.645] wl_display@1.delete_id(28)
[3932125.702] wl_display@1.delete_id(31)
[3932125.781] wl_callback@28.done(544083)
[3932125.859]  -> wl_surface@11.frame(new id wl_callback@28)
[3932157.083]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932157.231]  -> wl_region@13.add(0, 0, 640, 352)
[3932157.347]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932157.541]  -> wl_region@13.destroy()
[3932157.598]  -> wl_surface@9.commit()
[3932157.861] wl_buffer@30.release()
[3932161.031] wl_callback@31.done(544083)
[3932161.846]  -> wl_surface@11.frame(new id wl_callback@31)
[3932161.947]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932162.075]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932162.191]  -> wl_surface@11.commit()
[3932167.157] wl_display@1.delete_id(13)
[3932167.319] wl_display@1.delete_id(28)
[3932167.382] wl_display@1.delete_id(31)
[3932167.458] wl_callback@28.done(544125)
[3932167.534]  -> wl_surface@11.frame(new id wl_callback@28)
[3932195.195]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932195.351]  -> wl_region@13.add(0, 0, 640, 352)
[3932195.475]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932195.540]  -> wl_region@13.destroy()
[3932195.590]  -> wl_surface@9.commit()
[3932195.771] wl_buffer@32.release()
[3932199.175] wl_callback@31.done(544125)
[3932199.293]  -> wl_surface@11.frame(new id wl_callback@31)
[3932199.364]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3932199.457]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932199.590]  -> wl_surface@11.commit()
[3932205.286] wl_display@1.delete_id(13)
[3932205.434] wl_display@1.delete_id(28)
[3932205.492] wl_display@1.delete_id(31)
[3932205.569] wl_callback@28.done(544163)
[3932205.650]  -> wl_surface@11.frame(new id wl_callback@28)
[3932233.717]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932233.867]  -> wl_region@13.add(0, 0, 640, 352)
[3932234.191]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932234.259]  -> wl_region@13.destroy()
[3932234.309]  -> wl_surface@9.commit()
[3932234.624] wl_buffer@30.release()
[3932237.244] wl_callback@31.done(544163)
[3932237.343]  -> wl_surface@11.frame(new id wl_callback@31)
[3932237.414]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932237.512]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932237.621]  -> wl_surface@11.commit()
[3932244.121] wl_display@1.delete_id(13)
[3932244.317] wl_display@1.delete_id(28)
[3932244.387] wl_display@1.delete_id(31)
[3932244.476] wl_callback@28.done(544201)
[3932244.578]  -> wl_surface@11.frame(new id wl_callback@28)
[3932272.910]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932273.073]  -> wl_region@13.add(0, 0, 640, 352)
[3932274.146]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932274.226]  -> wl_region@13.destroy()
[3932274.278]  -> wl_surface@9.commit()
[3932274.462] wl_buffer@32.release()
[3932278.105] wl_callback@31.done(544201)
[3932278.234]  -> wl_surface@11.frame(new id wl_callback@31)
[3932278.307]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3932278.402]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932278.510]  -> wl_surface@11.commit()
[3932284.300] wl_display@1.delete_id(13)
[3932284.467] wl_display@1.delete_id(28)
[3932284.537] wl_display@1.delete_id(31)
[3932284.627] wl_callback@28.done(544241)
[3932284.722]  -> wl_surface@11.frame(new id wl_callback@28)
[3932313.801]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932314.148]  -> wl_region@13.add(0, 0, 640, 352)
[3932314.273]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932314.457]  -> wl_region@13.destroy()
[3932314.509]  -> wl_surface@9.commit()
[3932314.752] wl_buffer@30.release()
[3932317.489] wl_callback@31.done(544241)
[3932317.599]  -> wl_surface@11.frame(new id wl_callback@31)
[3932317.673]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932317.767]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932317.875]  -> wl_surface@11.commit()
[3932324.801] wl_display@1.delete_id(13)
[3932324.967] wl_display@1.delete_id(28)
[3932325.026] wl_display@1.delete_id(31)
[3932325.107] wl_callback@28.done(544282)
[3932325.183]  -> wl_surface@11.frame(new id wl_callback@28)
[3932355.445]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932355.598]  -> wl_region@13.add(0, 0, 640, 352)
[3932355.720]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932355.782]  -> wl_region@13.destroy()
[3932355.829]  -> wl_surface@9.commit()
[3932355.991] wl_buffer@32.release()
[3932359.235] wl_callback@31.done(544282)
[3932359.350]  -> wl_surface@11.frame(new id wl_callback@31)
[3932359.422]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3932359.515]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932359.621]  -> wl_surface@11.commit()
[3932365.558] wl_display@1.delete_id(13)
[3932365.702] wl_display@1.delete_id(28)
[3932365.759] wl_display@1.delete_id(31)
[3932365.834] wl_callback@28.done(544323)
[3932365.911]  -> wl_surface@11.frame(new id wl_callback@28)
[3932392.776]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932393.563]  -> wl_region@13.add(0, 0, 640, 352)
[3932393.701]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932393.762]  -> wl_region@13.destroy()
[3932393.806]  -> wl_surface@9.commit()
[3932394.197] wl_buffer@30.release()
[3932397.164] wl_callback@31.done(544323)
[3932397.275]  -> wl_surface@11.frame(new id wl_callback@31)
[3932397.348]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932397.441]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932397.552]  -> wl_surface@11.commit()
[3932405.327] wl_display@1.delete_id(13)
[3932405.498] wl_display@1.delete_id(28)
[3932405.558] wl_display@1.delete_id(31)
[3932406.019] wl_callback@28.done(544362)
[3932406.151]  -> wl_surface@11.frame(new id wl_callback@28)
[3932437.766]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932437.930]  -> wl_region@13.add(0, 0, 640, 352)
[3932438.283]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932438.363]  -> wl_region@13.destroy()
[3932438.422]  -> wl_surface@9.commit()
[3932438.607] wl_buffer@32.release()
[3932441.952] wl_callback@31.done(544362)
[3932442.084]  -> wl_surface@11.frame(new id wl_callback@31)
[3932442.162]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3932442.255]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932442.363]  -> wl_surface@11.commit()
[3932450.305] wl_display@1.delete_id(13)
[3932450.463] wl_display@1.delete_id(28)
[3932450.522] wl_display@1.delete_id(31)
[3932450.604] wl_callback@28.done(544406)
[3932450.776]  -> wl_surface@11.frame(new id wl_callback@28)
[3932790.564]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932790.736]  -> wl_region@13.add(0, 0, 640, 352)
[3932790.867]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932790.938]  -> wl_region@13.destroy()
[3932790.990]  -> wl_surface@9.commit()
[3932791.177] wl_buffer@30.release()
[3932794.881] wl_callback@31.done(544406)
[3932795.053]  -> wl_surface@11.frame(new id wl_callback@31)
[3932795.140]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932795.241]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932795.360]  -> wl_surface@11.commit()
[3932802.647] wl_display@1.delete_id(13)
[3932802.825] wl_display@1.delete_id(28)
[3932802.884] wl_display@1.delete_id(31)
[3932802.995] wl_callback@28.done(544758)
[3932803.076]  -> wl_surface@11.frame(new id wl_callback@28)
[3932835.475]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932835.666]  -> wl_region@13.add(0, 0, 640, 352)
[3932835.808]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932835.871]  -> wl_region@13.destroy()
[3932835.921]  -> wl_surface@9.commit()
[3932836.560] wl_buffer@32.release()
[3932839.016] wl_callback@31.done(544758)
[3932839.130]  -> wl_surface@11.frame(new id wl_callback@31)
[3932839.202]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3932839.296]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932839.402]  -> wl_surface@11.commit()
[3932845.940] wl_display@1.delete_id(13)
[3932846.091] wl_display@1.delete_id(28)
[3932846.149] wl_display@1.delete_id(31)
[3932846.229] wl_callback@28.done(544803)
[3932846.307]  -> wl_surface@11.frame(new id wl_callback@28)
[3932872.620]  -> wl_compositor@3.create_region(new id wl_region@13)
[3932872.771]  -> wl_region@13.add(0, 0, 640, 352)
[3932873.589]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3932873.654]  -> wl_region@13.destroy()
[3932873.699]  -> wl_surface@9.commit()
[3932874.076] wl_buffer@30.release()
[3932876.619] wl_callback@31.done(544803)
[3932876.731]  -> wl_surface@11.frame(new id wl_callback@31)
[3932876.805]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3932876.897]  -> wl_surface@11.damage(0, 0, 640, 352)
[3932877.005]  -> wl_surface@11.commit()
[3932883.670] wl_display@1.delete_id(13)
[3932883.873] wl_display@1.delete_id(28)
[3932883.939] wl_display@1.delete_id(31)
[3932884.032] wl_callback@28.done(544841)
[3932884.118]  -> wl_surface@11.frame(new id wl_callback@28)
[3932903.097] ivi_input@18.input_focus(90, 4, 0)
[3932903.294] ivi_input@18.input_focus(63, 4, 0)
[3932903.396] ivi_input@18.input_focus(62, 4, 0)
[3932903.491] ivi_input@18.input_focus(61, 4, 0)
[3932903.582] ivi_input@18.input_focus(60, 4, 0)
[3933431.526] ivi_input@18.input_focus(90, 4, 0)
[3933431.875] ivi_input@18.input_focus(63, 4, 0)
[3933432.234] ivi_input@18.input_focus(62, 4, 0)
[3933432.331] ivi_input@18.input_focus(61, 4, 0)
[3933432.452] ivi_input@18.input_focus(60, 4, 0)
[3933437.421]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933437.601]  -> wl_region@13.add(0, 0, 640, 352)
[3933437.753]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933437.818]  -> wl_region@13.destroy()
[3933437.866]  -> wl_surface@9.commit()
[3933438.300] wl_buffer@32.release()
[3933442.252] wl_callback@31.done(544841)
[3933442.396]  -> wl_surface@11.frame(new id wl_callback@31)
[3933442.495]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3933442.599]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933442.733]  -> wl_surface@11.commit()
[3933447.955] wl_display@1.delete_id(13)
[3933448.124] wl_display@1.delete_id(28)
[3933448.185] wl_display@1.delete_id(31)
[3933448.264] wl_callback@28.done(545405)
[3933448.346]  -> wl_surface@11.frame(new id wl_callback@28)
[3933474.451]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933474.697]  -> wl_region@13.add(0, 0, 640, 352)
[3933475.238]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933475.308]  -> wl_region@13.destroy()
[3933475.355]  -> wl_surface@9.commit()
[3933476.067] wl_buffer@30.release()
[3933478.536] wl_callback@31.done(545405)
[3933478.653]  -> wl_surface@11.frame(new id wl_callback@31)
[3933478.725]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3933478.818]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933478.924]  -> wl_surface@11.commit()
[3933485.620] wl_display@1.delete_id(13)
[3933485.840] wl_display@1.delete_id(28)
[3933485.937] wl_display@1.delete_id(31)
[3933486.354] wl_callback@28.done(545443)
[3933486.477]  -> wl_surface@11.frame(new id wl_callback@28)
[3933513.630]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933513.800]  -> wl_region@13.add(0, 0, 640, 352)
[3933514.164]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933514.230]  -> wl_region@13.destroy()
[3933514.273]  -> wl_surface@9.commit()
[3933514.510] wl_buffer@32.release()
[3933517.543] wl_callback@31.done(545443)
[3933517.659]  -> wl_surface@11.frame(new id wl_callback@31)
[3933517.732]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3933517.827]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933517.934]  -> wl_surface@11.commit()
[3933524.615] wl_display@1.delete_id(13)
[3933524.817] wl_display@1.delete_id(28)
[3933524.891] wl_display@1.delete_id(31)
[3933524.980] wl_callback@28.done(545481)
[3933525.067]  -> wl_surface@11.frame(new id wl_callback@28)
[3933555.625]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933558.280]  -> wl_region@13.add(0, 0, 640, 352)
[3933558.410]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933558.468]  -> wl_region@13.destroy()
[3933558.512]  -> wl_surface@9.commit()
[3933558.784] wl_buffer@30.release()
[3933561.619] wl_callback@31.done(545481)
[3933561.729]  -> wl_surface@11.frame(new id wl_callback@31)
[3933561.801]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3933561.969]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933562.087]  -> wl_surface@11.commit()
[3933570.383] wl_display@1.delete_id(28)
[3933570.353] wl_display@1.delete_id(13)
[3933570.548] wl_display@1.delete_id([3933570.620] wl_callback@28.done(545526)
31)
[3933570.707]  -> wl_surface@11.frame(new id wl_callback@28)
[3933591.855]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933592.001]  -> wl_region@13.add(0, 0, 640, 352)
[3933592.118]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933592.175]  -> wl_region@13.destroy()
[3933592.340]  -> wl_surface@9.commit()
[3933592.500] wl_buffer@32.release()
[3933597.633] wl_callback@31.done(545526)
[3933597.888]  -> wl_surface@11.frame(new id wl_callback@31)
[3933597.992]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3933598.091]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933598.199]  -> wl_surface@11.commit()
[3933618.606] wl_display@1.delete_id(13)
[3933618.792] wl_display@1.delete_id(28)
[3933618.868] wl_display@1.delete_id(31)
[3933618.959] wl_callback@28.done(545576)
[3933619.051]  -> wl_surface@11.frame(new id wl_callback@28)
[3933634.589]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933634.708]  -> wl_region@13.add(0, 0, 640, 352)
[3933634.822]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933634.879]  -> wl_region@13.destroy()
[3933634.921]  -> wl_surface@9.commit()
[3933635.217] wl_buffer@30.release()
[3933637.741] wl_callback@31.done(545576)
[3933637.879]  -> wl_surface@11.frame(new id wl_callback@31)
[3933637.959]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3933638.059]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933638.169]  -> wl_surface@11.commit()
[3933643.420] wl_display@1.delete_id(13)
[3933643.567] wl_display@1.delete_id(28)
[3933643.626] wl_display@1.delete_id(31)
[3933643.760] wl_callback@28.done(545601)
[3933643.840]  -> wl_surface@11.frame(new id wl_callback@28)
[3933672.303]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933672.448]  -> wl_region@13.add(0, 0, 640, 352)
[3933672.568]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933672.627]  -> wl_region@13.destroy()
[3933672.669]  -> wl_surface@9.commit()
[3933672.810] wl_buffer@32.release()
[3933675.875] wl_callback@31.done(545601)
[3933675.991]  -> wl_surface@11.frame(new id wl_callback@31)
[3933676.073]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3933676.169]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933676.276]  -> wl_surface@11.commit()
[3933682.984] wl_display@1.delete_id(13)
[3933683.144] wl_display@1.delete_id(28)
[3933683.321] wl_display@1.delete_id(31)
[3933683.429] wl_callback@28.done(545640)
[3933683.514]  -> wl_surface@11.frame(new id wl_callback@28)
[3933715.657]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933715.818]  -> wl_region@13.add(0, 0, 640, 352)
[3933715.939]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933716.002]  -> wl_region@13.destroy()
[3933716.049]  -> wl_surface@9.commit()
[3933716.364] wl_buffer@30.release()
[3933718.982] wl_callback@31.done(545640)
[3933719.116]  -> wl_surface@11.frame(new id wl_callback@31)
[3933719.187]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3933719.281]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933719.388]  -> wl_surface@11.commit()
[3933726.319] wl_display@1.delete_id(13)
[3933726.498] wl_display@1.delete_id(28)
[3933726.566] wl_display@1.delete_id(31)
[3933726.660] wl_callback@28.done(545683)
[3933726.747]  -> wl_surface@11.frame(new id wl_callback@28)
[3933751.945]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933752.087]  -> wl_region@13.add(0, 0, 640, 352)
[3933752.204]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933752.261]  -> wl_region@13.destroy()
[3933752.305]  -> wl_surface@9.commit()
[3933752.443] wl_buffer@32.release()
[3933755.377] wl_callback@31.done(545683)
[3933755.493]  -> wl_surface@11.frame(new id wl_callback@31)
[3933755.565]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3933755.658]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933755.767]  -> wl_surface@11.commit()
[3933762.545] wl_display@1.delete_id(13)
[3933762.716] wl_display@1.delete_id(28)
[3933762.777] wl_display@1.delete_id(31)
[3933762.858] wl_callback@28.done(545719)
[3933762.935]  -> wl_surface@11.frame(new id wl_callback@28)
[3933795.602]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933796.146]  -> wl_region@13.add(0, 0, 640, 352)
[3933796.477]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933796.568]  -> wl_region@13.destroy()
[3933796.620]  -> wl_surface@9.commit()
[3933796.874] wl_buffer@30.release()
[3933799.470] wl_callback@31.done(545719)
[3933799.575]  -> wl_surface@11.frame(new id wl_callback@31)
[3933799.646]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3933799.739]  -> wl_surface@11.damage(0, 0, 640, 352)
[3933799.882]  -> wl_surface@11.commit()
[3933806.306] wl_display@1.delete_id(28)
[3933810.790] wl_display@1.delete_id(31)
[3933806.278] wl_display@1.delete_id(13)
[3933811.063] wl_callback@28.done(545764)
[3933811.164]  -> wl_surface@11.frame(new id wl_callback@28)
[3933833.072]  -> wl_compositor@3.create_region(new id wl_region@13)
[3933833.356]  -> wl_region@13.add(0, 0, 640, 352)
[3933833.492]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3933833.554]  -> wl_region@13.destroy()
[3933833.600]  -> wl_surface@9.commit()
[3933833.737] wl_buffer@32.release()
[3933836.425] wl_callback@31.done(545764)
[3933836.540]  -> wl_surface@11.frame(new id wl_callback@31)
[3933836.611]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3933836.705]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934169.440]  -> wl_surface@11.commit()
[3934169.826] wl_display@1.delete_id(13)
[3934169.908] ivi_input@18.input_focus(90, 4, 0)
[3934170.004] ivi_input@18.input_focus(63, 4, 0)
[3934170.094] ivi_input@18.input_focus(62, 4, 0)
[3934170.311] ivi_input@18.input_focus(61, 4, 0)
[3934170.417] ivi_input@18.input_focus(60, 4, 0)
[3934179.476] wl_display@1.delete_id(31)
[3934179.269] wl_display@1.delete_id(28)
[3934180.085] wl_callback@28.done(546136)
[3934180.162]  -> wl_surface@11.frame(new id wl_callback@28)
[3934188.510]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934188.704]  -> wl_region@13.add(0, 0, 640, 352)
[3934189.388]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934189.636]  -> wl_region@13.destroy()
[3934189.708]  -> wl_surface@9.commit()
[3934190.024] wl_buffer@30.release()
[3934195.205] wl_callback@31.done(546136)
[3934195.366]  -> wl_surface@11.frame(new id wl_callback@31)
[3934195.461]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3934195.560]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934195.669]  -> wl_surface@11.commit()
[3934202.646] wl_display@1.delete_id(13)
[3934202.804] wl_display@1.delete_id(28)
[3934202.866] wl_display@1.delete_id(31)
[3934202.952] wl_callback@28.done(546160)
[3934203.033]  -> wl_surface@11.frame(new id wl_callback@28)
[3934232.761]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934232.948]  -> wl_region@13.add(0, 0, 640, 352)
[3934233.082]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934233.330]  -> wl_region@13.destroy()
[3934233.406]  -> wl_surface@9.commit()
[3934233.616] wl_buffer@32.release()
[3934237.072] wl_callback@31.done(546160)
[3934237.185]  -> wl_surface@11.frame(new id wl_callback@31)
[3934237.256]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3934237.351]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934237.459]  -> wl_surface@11.commit()
[3934243.150] wl_display@1.delete_id(13)
[3934243.428] wl_display@1.delete_id(28)
[3934243.490] wl_display@1.delete_id(31)
[3934243.573] wl_callback@28.done(546201)
[3934243.653]  -> wl_surface@11.frame(new id wl_callback@28)
[3934274.254]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934274.885]  -> wl_region@13.add(0, 0, 640, 352)
[3934275.098]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934275.167]  -> wl_region@13.destroy()
[3934275.217]  -> wl_surface@9.commit()
[3934275.490] wl_buffer@30.release()
[3934278.581] wl_callback@31.done(546201)
[3934278.710]  -> wl_surface@11.frame(new id wl_callback@31)
[3934278.784]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3934278.878]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934278.985]  -> wl_surface@11.commit()
[3934285.069] wl_display@1.delete_id(13)
[3934285.212] wl_display@1.delete_id(28)
[3934285.273] wl_display@1.delete_id(31)
[3934285.351] wl_callback@28.done(546243)
[3934285.427]  -> wl_surface@11.frame(new id wl_callback@28)
[3934313.882]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934314.456]  -> wl_region@13.add(0, 0, 640, 352)
[3934314.594]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934314.652]  -> wl_region@13.destroy()
[3934314.698]  -> wl_surface@9.commit()
[3934314.937] wl_buffer@32.release()
[3934317.812] wl_callback@31.done(546243)
[3934317.911]  -> wl_surface@11.frame(new id wl_callback@31)
[3934317.981]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3934318.075]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934318.187]  -> wl_surface@11.commit()
[3934324.468] wl_display@1.delete_id(13)
[3934324.640] wl_display@1.delete_id(28)
[3934324.699] wl_display@1.delete_id(31)
[3934324.779] wl_callback@28.done(546282)
[3934324.862]  -> wl_surface@11.frame(new id wl_callback@28)
[3934339.725] ivi_input@18.input_focus(90, 4, 0)
[3934339.890] ivi_input@18.input_focus(63, 4, 0)
[3934339.985] ivi_input@18.input_focus(62, 4, 0)
[3934340.076] ivi_input@18.input_focus(61, 4, 0)
[3934340.165] ivi_input@18.input_focus(60, 4, 0)
[3934796.127] ivi_input@18.input_focus(90, 4, 0)
[3934796.310] ivi_input@18.input_focus(63, 4, 0)
[3934796.404] ivi_input@18.input_focus(62, 4, 0)
[3934796.494] ivi_input@18.input_focus(61, 4, 0)
[3934796.585] ivi_input@18.input_focus(60, 4, 0)
[3934804.483]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934804.682]  -> wl_region@13.add(0, 0, 640, 352)
[3934804.800]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934804.893]  -> wl_region@13.destroy()
[3934804.944]  -> wl_surface@9.commit()
[3934805.234] wl_buffer@30.release()
[3934808.213] wl_callback@31.done(546282)
[3934808.336]  -> wl_surface@11.frame(new id wl_callback@31)
[3934808.408]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3934808.505]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934808.613]  -> wl_surface@11.commit()
[3934815.912] wl_display@1.delete_id(13)
[3934816.086] wl_display@1.delete_id(28)
[3934816.154] wl_display@1.delete_id(31)
[3934816.245] wl_callback@28.done(546772)
[3934816.333]  -> wl_surface@11.frame(new id wl_callback@28)
[3934836.642]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934836.800]  -> wl_region@13.add(0, 0, 640, 352)
[3934836.917]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934836.975]  -> wl_region@13.destroy()
[3934837.019]  -> wl_surface@9.commit()
[3934837.166] wl_buffer@32.release()
[3934839.931] wl_callback@31.done(546772)
[3934840.040]  -> wl_surface@11.frame(new id wl_callback@31)
[3934840.112]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3934840.204]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934840.312]  -> wl_surface@11.commit()
[3934848.418] wl_display@1.delete_id(13)
[3934848.605] wl_display@1.delete_id(28)
[3934848.673] wl_display@1.delete_id(31)
[3934848.757] wl_callback@28.done(546805)
[3934848.838]  -> wl_surface@11.frame(new id wl_callback@28)
[3934875.484]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934875.634]  -> wl_region@13.add(0, 0, 640, 352)
[3934876.301]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934876.385]  -> wl_region@13.destroy()
[3934876.444]  -> wl_surface@9.commit()
[3934876.857] wl_buffer@30.release()
[3934882.555] wl_callback@31.done(546805)
[3934882.708]  -> wl_surface@11.frame(new id wl_callback@31)
[3934882.809]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3934882.913]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934883.024]  -> wl_surface@11.commit()
[3934886.933] wl_display@1.delete_id(28)
[3934886.908] wl_display@1.delete_id([3934887.105] wl_display@1.delete_id(31)
13)
[3934887.238] wl_callback@28.done(546844)
[3934887.310]  -> wl_surface@11.frame(new id wl_callback@28)
[3934916.317]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934916.727]  -> wl_region@13.add(0, 0, 640, 352)
[3934916.857]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934916.920]  -> wl_region@13.destroy()
[3934916.968]  -> wl_surface@9.commit()
[3934917.205] wl_buffer@32.release()
[3934920.054] wl_callback@31.done(546844)
[3934920.156]  -> wl_surface@11.frame(new id wl_callback@31)
[3934920.228]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3934920.322]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934920.429]  -> wl_surface@11.commit()
[3934927.261] wl_display@1.delete_id(13)
[3934928.161] wl_display@1.delete_id(28)
[3934928.243] wl_display@1.delete_id(31)
[3934928.304] wl_callback@28.done(546884)
[3934928.372]  -> wl_surface@11.frame(new id wl_callback@28)
[3934952.886]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934953.635]  -> wl_region@13.add(0, 0, 640, 352)
[3934953.758]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934953.815]  -> wl_region@13.destroy()
[3934953.858]  -> wl_surface@9.commit()
[3934954.106] wl_buffer@30.release()
[3934956.713] wl_callback@31.done(546884)
[3934956.841]  -> wl_surface@11.frame(new id wl_callback@31)
[3934956.915]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3934957.013]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934957.123]  -> wl_surface@11.commit()
[3934963.679] wl_display@1.delete_id(13)
[3934963.872] wl_display@1.delete_id(28)
[3934963.981] wl_display@1.delete_id(31)
[3934964.219] wl_callback@28.done(546921)
[3934964.317]  -> wl_surface@11.frame(new id wl_callback@28)
[3934995.632]  -> wl_compositor@3.create_region(new id wl_region@13)
[3934995.935]  -> wl_region@13.add(0, 0, 640, 352)
[3934996.073]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3934996.133]  -> wl_region@13.destroy()
[3934996.179]  -> wl_surface@9.commit()
[3934996.412] wl_buffer@32.release()
[3934999.567] wl_callback@31.done(546921)
[3934999.694]  -> wl_surface@11.frame(new id wl_callback@31)
[3934999.773]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3934999.871]  -> wl_surface@11.damage(0, 0, 640, 352)
[3934999.987]  -> wl_surface@11.commit()
[3935006.247] wl_display@1.delete_id(13)
[3935010.846] wl_display@1.delete_id(28)
[3935010.982] wl_display@1.delete_id(31)
[3935011.101] wl_callback@28.done(546964)
[3935011.218]  -> wl_surface@11.frame(new id wl_callback@28)
[3935033.808]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935034.120]  -> wl_region@13.add(0, 0, 640, 352)
[3935034.452]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935034.516]  -> wl_region@13.destroy()
[3935034.561]  -> wl_surface@9.commit()
[3935034.777] wl_buffer@30.release()
[3935037.326] wl_callback@31.done(546964)
[3935037.422]  -> wl_surface@11.frame(new id wl_callback@31)
[3935037.496]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935037.609]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935037.725]  -> wl_surface@11.commit()
[3935044.160] wl_display@1.delete_id(13)
[3935044.360] wl_display@1.delete_id(28)
[3935044.432] wl_display@1.delete_id(31)
[3935044.511] wl_callback@28.done(547002)
[3935044.591]  -> wl_surface@11.frame(new id wl_callback@28)
[3935075.105]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935075.261]  -> wl_region@13.add(0, 0, 640, 352)
[3935075.377]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935075.434]  -> wl_region@13.destroy()
[3935075.478]  -> wl_surface@9.commit()
[3935075.626] wl_buffer@32.release()
[3935078.975] wl_callback@31.done(547002)
[3935079.098]  -> wl_surface@11.frame(new id wl_callback@31)
[3935079.173]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935079.273]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935079.382]  -> wl_surface@11.commit()
[3935084.918] wl_display@1.delete_id(13)
[3935085.061] wl_display@1.delete_id(28)
[3935085.121] wl_display@1.delete_id(31)
[3935085.203] wl_callback@28.done(547042)
[3935085.281]  -> wl_surface@11.frame(new id wl_callback@28)
[3935113.950]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935114.125]  -> wl_region@13.add(0, 0, 640, 352)
[3935114.251]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935114.311]  -> wl_region@13.destroy()
[3935114.565]  -> wl_surface@9.commit()
[3935114.818] wl_buffer@30.release()
[3935117.335] wl_callback@31.done(547042)
[3935117.432]  -> wl_surface@11.frame(new id wl_callback@31)
[3935117.504]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935117.598]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935117.706]  -> wl_surface@11.commit()
[3935124.639] wl_display@1.delete_id(28)
[3935124.629] wl_display@1.delete_id(13[3935124.829] wl_display@1.delete_id(31)
)
[3935125.023] wl_callback@28.done(547082)
[3935125.101]  -> wl_surface@11.frame(new id wl_callback@28)
[3935156.099]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935156.257]  -> wl_region@13.add(0, 0, 640, 352)
[3935156.602]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935156.670]  -> wl_region@13.destroy()
[3935156.715]  -> wl_surface@9.commit()
[3935156.947] wl_buffer@32.release()
[3935159.929] wl_callback@31.done(547082)
[3935160.037]  -> wl_surface@11.frame(new id wl_callback@31)
[3935160.109]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935160.203]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935160.310]  -> wl_surface@11.commit()
[3935166.233] wl_display@1.delete_id(13)
[3935170.515] wl_display@1.delete_id(31)
[3935169.736] wl_display@1.delete_id(28)
[3935170.767] wl_callback@28.done(547124)
[3935170.850]  -> wl_surface@11.frame(new id wl_callback@28)
[3935193.139]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935193.644]  -> wl_region@13.add(0, 0, 640, 352)
[3935193.769]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935193.831]  -> wl_region@13.destroy()
[3935193.879]  -> wl_surface@9.commit()
[3935194.252] wl_buffer@30.release()
[3935197.226] wl_callback@31.done(547124)
[3935197.331]  -> wl_surface@11.frame(new id wl_callback@31)
[3935197.403]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935197.497]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935530.651]  -> wl_surface@11.commit()
[3935540.335] wl_display@1.delete_id(13)
[3935540.530] wl_display@1.delete_id(28)
[3935540.604] wl_display@1.delete_id(31)
[3935540.670] wl_callback@28.done(547497)
[3935540.741]  -> wl_surface@11.frame(new id wl_callback@28)
[3935554.680]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935554.838]  -> wl_region@13.add(0, 0, 640, 352)
[3935554.962]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935555.025]  -> wl_region@13.destroy()
[3935555.075]  -> wl_surface@9.commit()
[3935555.534] wl_buffer@32.release()
[3935558.343] wl_callback@31.done(547497)
[3935558.465]  -> wl_surface@11.frame(new id wl_callback@31)
[3935558.539]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935558.634]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935558.746]  -> wl_surface@11.commit()
[3935564.182] wl_display@1.delete_id(13)
[3935564.335] wl_display@1.delete_id(28)
[3935564.395] wl_display@1.delete_id(31)
[3935564.474] wl_callback@28.done(547521)
[3935564.552]  -> wl_surface@11.frame(new id wl_callback@28)
[3935591.813]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935591.982]  -> wl_region@13.add(0, 0, 640, 352)
[3935592.114]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935592.178]  -> wl_region@13.destroy()
[3935592.228]  -> wl_surface@9.commit()
[3935593.507] wl_buffer@30.release()
[3935597.232] wl_callback@31.done(547521)
[3935597.345]  -> wl_surface@11.frame(new id wl_callback@31)
[3935597.417]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935597.511]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935597.618]  -> wl_surface@11.commit()
[3935603.145] wl_display@1.delete_id(13)
[3935603.432] wl_display@1.delete_id(28)
[3935603.493] wl_display@1.delete_id(31)
[3935603.577] wl_callback@28.done(547560)
[3935603.658]  -> wl_surface@11.frame(new id wl_callback@28)
[3935634.352]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935634.649]  -> wl_region@13.add(0, 0, 640, 352)
[3935634.778]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935635.170]  -> wl_region@13.destroy()
[3935635.252]  -> wl_surface@9.commit()
[3935635.555] wl_buffer@32.release()
[3935638.141] wl_callback@31.done(547560)
[3935638.235]  -> wl_surface@11.frame(new id wl_callback@31)
[3935638.307]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935638.400]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935638.510]  -> wl_surface@11.commit()
[3935645.124] wl_display@1.delete_id(13)
[3935645.279] wl_display@1.delete_id(28)
[3935645.337] wl_display@1.delete_id(31)
[3935645.416] wl_callback@28.done(547603)
[3935645.493]  -> wl_surface@11.frame(new id wl_callback@28)
[3935672.270]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935672.416]  -> wl_region@13.add(0, 0, 640, 352)
[3935672.531]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935672.589]  -> wl_region@13.destroy()
[3935672.842]  -> wl_surface@9.commit()
[3935673.376] wl_buffer@30.release()
[3935676.239] wl_callback@31.done(547603)
[3935676.345]  -> wl_surface@11.frame(new id wl_callback@31)
[3935676.418]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935676.511]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935676.619]  -> wl_surface@11.commit()
[3935683.088] wl_display@1.delete_id(13)
[3935683.412] wl_display@1.delete_id(28)
[3935683.488] wl_display@1.delete_id(31)
[3935683.608] wl_callback@28.done(547640)
[3935684.152]  -> wl_surface@11.frame(new id wl_callback@28)
[3935712.910]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935713.069]  -> wl_region@13.add(0, 0, 640, 352)
[3935716.358]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935716.544]  -> wl_region@13.destroy()
[3935716.590]  -> wl_surface@9.commit()
[3935716.883] wl_buffer@32.release()
[3935719.365] wl_callback@31.done(547640)
[3935719.493]  -> wl_surface@11.frame(new id wl_callback@31)
[3935719.565]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935719.658]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935719.764]  -> wl_surface@11.commit()
[3935726.205] wl_display@1.delete_id(13)
[3935726.359] wl_display@1.delete_id(28)
[3935726.427] wl_display@1.delete_id(31)
[3935726.519] wl_callback@28.done(547684)
[3935726.604]  -> wl_surface@11.frame(new id wl_callback@28)
[3935751.935]  -> wl_compositor@3.create_region(new id wl_region@13)
[3935752.097]  -> wl_region@13.add(0, 0, 640, 352)
[3935752.213]  -> wl_surface@11.set_opaque_region(wl_region@13)
[3935752.272]  -> wl_region@13.destroy()
[3935752.316]  -> wl_surface@9.commit()
[3935752.783] wl_buffer@30.release()
[3935755.486] wl_callback@31.done(547684)
[3935755.630]  -> wl_surface@11.frame(new id wl_callback@31)
[3935755.703]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935755.814]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935755.932]  -> wl_surface@11.commit()
[3935763.642] wl_display@1.delete_id(13)
[3935763.835] wl_display@1.delete_id(31)
[3935763.907] wl_callback@28.done(547720)
[3935763.670] wl_display@1.delete_id(28)
[3935764.207]  -> wl_surface@11.frame(new id wl_callback@13)
[3935796.086]  -> wl_compositor@3.create_region(new id wl_region@28)
[3935796.263]  -> wl_region@28.add(0, 0, 640, 352)
[3935796.622]  -> wl_surface@11.set_opaque_region(wl_region@28)
[3935796.715]  -> wl_region@28.destroy()
[3935796.767]  -> wl_surface@9.commit()
[3935797.007] wl_buffer@32.release()
[3935799.585] wl_callback@31.done(547720)
[3935799.684]  -> wl_surface@11.frame(new id wl_callback@31)
[3935799.755]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935799.849]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935799.993]  -> wl_surface@11.commit()
[3935807.441] wl_display@1.delete_id(28)
[3935807.626] wl_display@1.delete_id(13)
[3935807.697] wl_display@1.delete_id(31)
[3935807.785] wl_callback@13.done(547764)
[3935807.867]  -> wl_surface@11.frame(new id wl_callback@13)
[3935832.835]  -> wl_compositor@3.create_region(new id wl_region@28)
[3935832.996]  -> wl_region@28.add(0, 0, 640, 352)
[3935833.749]  -> wl_surface@11.set_opaque_region(wl_region@28)
[3935833.815]  -> wl_region@28.destroy()
[3935833.861]  -> wl_surface@9.commit()
[3935834.097] wl_buffer@30.release()
[3935836.679] wl_callback@31.done(547764)
[3935836.790]  -> wl_surface@11.frame(new id wl_callback@31)
[3935836.861]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935836.953]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935837.062]  -> wl_surface@11.commit()
[3935843.573] wl_display@1.delete_id(28)
[3935844.201] wl_display@1.delete_id(13)
[3935844.267] wl_display@1.delete_id(31)
[3935844.351] wl_callback@13.done(547801)
[3935844.471]  -> wl_surface@11.frame(new id wl_callback@13)
[3935877.000]  -> wl_compositor@3.create_region(new id wl_region@28)
[3935877.177]  -> wl_region@28.add(0, 0, 640, 352)
[3935877.311]  -> wl_surface@11.set_opaque_region(wl_region@28)
[3935877.372]  -> wl_region@28.destroy()
[3935877.418]  -> wl_surface@9.commit()
[3935877.574] wl_buffer@32.release()
[3935880.378] wl_callback@31.done(547801)
[3935880.482]  -> wl_surface@11.frame(new id wl_callback@31)
[3935880.553]  -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3935880.649]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935880.794]  -> wl_surface@11.commit()
[3935888.503] wl_display@1.delete_id(28)
[3935888.696] wl_display@1.delete_id(13)
[3935888.759] wl_display@1.delete_id(31)
[3935888.848] wl_callback@13.done(547845)
[3935888.932]  -> wl_surface@11.frame(new id wl_callback@13)
[3935913.686]  -> wl_compositor@3.create_region(new id wl_region@28)
[3935914.075]  -> wl_region@28.add(0, 0, 640, 352)
[3935914.200]  -> wl_surface@11.set_opaque_region(wl_region@28)
[3935914.258]  -> wl_region@28.destroy()
[3935914.302]  -> wl_surface@9.commit()
[3935914.529] wl_buffer@30.release()
[3935917.100] wl_callback@31.done(547845)
[3935917.207]  -> wl_surface@11.frame(new id wl_callback@31)
[3935917.285]  -> wl_surface@11.attach(wl_buffer@30, 0, 0)
[3935917.378]  -> wl_surface@11.damage(0, 0, 640, 352)
[3935917.486]  -> wl_surface@11.commit()
[3935924.249] wl_display@1.delete_id(28)
[3935924.4^C -> wl_surface@11.attach(wl_buffer@32, 0, 0)
[3936264.403]  -> wl_surface@11.damage(0, 0, 640, 352)
[3936264.537]  -> wl_surface@11.commit()
handling interrupt.
Got message #356 from element "pipeline0" (application): GstLaunchInterrupt, message=(string)"Pipeline\ interrupted";
Interrupt: Stopping pipeline ...
Execution ended after 0:00:11.397089002
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
[3936272.195]  -> wl_display@1.sync(new id wl_callback@29)
[3936274.781] wl_display@1.delete_id(29)
[3936274.969] wl_display@1.delete_id(13)
[3936275.374] wl_display@1.delete_id(31)
[3936275.492] wl_display@1.delete_id(28)
[3936275.561] wl_callback@29.done(3)
[3936275.629]  -> ivi_surface@24.destroy()
[3936275.690]  -> wl_display@1.sync(new id wl_callback@29)
[3936276.280] wl_display@1.delete_id(24)
[3936276.366] wl_display@1.delete_id(29)
[3936276.422] wl_callback@29.done(3)
[3936277.267]  -> ivi_controller@17.commit_changes()
[3936277.364]  -> wl_display@1.sync(new id wl_callback@29)
[3936277.691] wl_display@1.delete_id(29)
[3936278.250] wl_callback@29.done(3)
[3936278.708]  -> ivi_controller_surface@27.destroy(0)
[3936278.811]  -> ivi_controller_surface@23.destroy(0)
[3936278.869]  -> ivi_controller_surface@22.destroy(0)
[3936278.926]  -> ivi_controller_surface@21.destroy(0)
[3936278.981]  -> ivi_controller_surface@20.destroy(0)
[3936279.036]  -> ivi_controller_screen@4278190080.destroy()
[3936291.365]  -> wl_buffer@30.destroy()
[3936291.458]  -> wl_buffer@32.destroy()
[3936291.509]  -> wl_buffer@26.destroy()
[3936291.574]  -> wl_subsurface@12.destroy()
[3936291.621]  -> wl_surface@11.destroy()
[3936291.664]  -> wl_surface@9.destroy()
[3936298.529]  -> wl_subcompositor@4.destroy()
Freeing pipeline ...
root@linux-9939-a1:~#

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
  2015-12-14  9:55     ` Vikas Patil
@ 2015-12-14 15:23       ` Vikas Patil
  2015-12-15 14:54         ` Vikas Patil
  0 siblings, 1 reply; 7+ messages in thread
From: Vikas Patil @ 2015-12-14 15:23 UTC (permalink / raw)
  To: Friedrich, Eugen (ADITG/SW1)
  Cc: meta-freescale, wayland mailing list, Tanibata,
	Nobuhiko (ADITJ/SWG),
	genivi-ivi-layer-management

I am hitting else part of below code for this issue. Any ideas?

touch_grab_down() from ivi-input-controller.c

 /* Touches set touch focus */
        if (grab->touch->num_tp == 1) {
            if (surf == grab->touch->focus->surface) {
                surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH;
                send_input_focus(seat->input_ctx,

interface->get_id_of_surface(surf_ctx->layout_surface),
                                 ILM_INPUT_DEVICE_TOUCH, ILM_TRUE);
            } else {
                surf_ctx->focus &= ~ILM_INPUT_DEVICE_TOUCH;
<----------------------------------------------------------
                send_input_focus(seat->input_ctx,

interface->get_id_of_surface(surf_ctx->layout_surface),
                                 ILM_INPUT_DEVICE_TOUCH, ILM_FALSE);
            }
        }

        /* This code below is slightly redundant, since we have already
         * decided only one surface has touch focus */
        if (!(surf_ctx->focus & ILM_INPUT_DEVICE_TOUCH))
            continue;
<-----------------------------------------------------------------------------


Thanks & Regards,
Vikash

On Mon, Dec 14, 2015 at 3:25 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
> Sorry. Forgot to attach the log file. Attached here.
>
> Thanks & Regards,
> Vikas
>
> On Mon, Dec 14, 2015 at 3:24 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
>> Hi Eugen Friedrich
>>
>> Thanks a lot for your quick reply.
>>
>> Attached here the file with WAYLAND_DEBUG=1 log when the gstreamer
>> plug-in is in use. I can see "ivi_input@18.input_focus(90, 4, 0)" for
>> the surface from plug-in but no touch events.
>>
>> Here is the output of APIs
>>
>> root@linux-9939-a1:~# LayerManagerControl get input device default capabilities
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> pointer
>> keyboard
>> touch
>>
>> root@linux-9939-a1:~# LayerManagerControl get surface 90 acceptance
>> Interpreter error: 'acceptance' not recognized.
>>
>> root@orinoco-9939-a1:~# LayerManagerControl get input devices with all
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> default
>>
>> root@linux-9939-a1:~# LayerManagerControl get input focus
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> failed to get surface context in ilmControl
>> surface 90:
>> surface 63:
>> surface 62:
>> surface 61:
>> surface 60: pointer keyboard
>>
>>
>> Thanks & Regards,
>> Vikas
>>
>> On Mon, Dec 14, 2015 at 3:01 PM, Friedrich, Eugen (ADITG/SW1)
>> <efriedrich@de.adit-jv.com> wrote:
>>> Hello Vikas,
>>>
>>> Could you please add the WAYLAND_DEBUG=1 traces from you application, to see if the input events are reaching the client.
>>>
>>> Also the output of the following API would be helpful:
>>> ilm_getInputFocus,
>>> ilm_getInputDevices,
>>> ilm_getInputAcceptanceOn(with you surface id)
>>>
>>> the API's will return a list of devices or surfaces, please print the complete list.
>>>
>>>
>>> Best regards
>>>
>>> Eugen Friedrich
>>> Software Group I (ADITG/SW1)
>>>
>>> Tel. +49 5121 49 6921
>>>
>>>> -----Original Message-----
>>>> From: genivi-ivi-layer-management-bounces@lists.genivi.org [mailto:genivi-
>>>> ivi-layer-management-bounces@lists.genivi.org] On Behalf Of Vikas Patil
>>>> Sent: Samstag, 12. Dezember 2015 12:57
>>>> To: genivi-ivi-layer-management@lists.genivi.org; meta-
>>>> freescale@yoctoproject.org; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael
>>>> Giani; wayland mailing list
>>>> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and
>>>> wayland video sink
>>>>
>>>> Dear All,
>>>>
>>>> I am using wayland video sink (i.e. imxeglvivsink) from gstreamer1.0-plugins-
>>>> imx [1] to play the video along with weston 1.8.0 and wayland-ivi-extenstion
>>>> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input
>>>> support [2]. Basically I am posting touch events on GST bus and application
>>>> want to have the touch can read the messages and process the touch. This is
>>>> working fine if I don’t load the “ivi-input-controller.so”. If I load the “ivi-input-
>>>> controller.so”
>>>> I am not able to get the touch event inside this plug-in. I have tried setting
>>>> touch input focus to the surface from this wayland video plug-in using
>>>> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck.
>>>>
>>>>
>>>> Also touch works fine even if I load “ivi-input-controller.so” with other
>>>> applications. So I suspect some modification are required to ”imxeglvivsink”
>>>> [2] or “wayland-ivi-extension/weston”.
>>>>
>>>> Do you know what might be going wrong? Could anyone here give some
>>>> suggestions/ideas to tryout and fix this?
>>>>
>>>> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
>>>> work for me. Any inputs for this?
>>>>
>>>> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
>>>> function in various ways but no luck and I think implementation is correct (as
>>>> it works well without ivi-input-controller)
>>>>
>>>> Following is the platform setup and weston configuration.
>>>>
>>>> i.MX6 Duallite
>>>> Linux 3.14.28
>>>> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
>>>> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
>>>> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2
>>>>
>>>> Weston.ini contains:
>>>>
>>>> [core]
>>>> shell=ivi-shell.so
>>>>
>>>> [ivi-shell]
>>>> ivi-module=ivi-controller.so,ivi-input-controller.so
>>>> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface
>>>>
>>>>
>>>> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
>>>> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
>>>> [3]
>>>> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input
>>>> _Handling_APIs
>>>>
>>>>
>>>>
>>>> Thanks & Regards,
>>>> Vikash


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
  2015-12-14 15:23       ` Vikas Patil
@ 2015-12-15 14:54         ` Vikas Patil
  2016-07-13 13:26           ` Vikas Patil
  0 siblings, 1 reply; 7+ messages in thread
From: Vikas Patil @ 2015-12-15 14:54 UTC (permalink / raw)
  To: Friedrich, Eugen (ADITG/SW1)
  Cc: meta-freescale, wayland mailing list, Tanibata,
	Nobuhiko (ADITJ/SWG),
	genivi-ivi-layer-management

If I force to pass the if condition as follows using the surface id
even though surfaces doesn't match, it is working. Does this might be
due to the way I created the surface 90? Surface 90 also has
subsurface, does it anyway related to subsurface?

Alos "grab->touch->focus->surface" what this surface is and who creates it?

surfID = interface->get_id_of_surface(surf_ctx->layout_surface);

        /* Touches set touch focus */

        if (grab->touch->num_tp == 1) {

            if (surf == grab->touch->focus->surface ||  surfID == 90) {

                surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH;

                send_input_focus(seat->input_ctx,


interface->get_id_of_surface(surf_ctx->layout_surface),

                                 ILM_INPUT_DEVICE_TOUCH, ILM_TRUE);

            }


Thanks & Regards,
Vikash

On Mon, Dec 14, 2015 at 8:53 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
> I am hitting else part of below code for this issue. Any ideas?
>
> touch_grab_down() from ivi-input-controller.c
>
>  /* Touches set touch focus */
>         if (grab->touch->num_tp == 1) {
>             if (surf == grab->touch->focus->surface) {
>                 surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH;
>                 send_input_focus(seat->input_ctx,
>
> interface->get_id_of_surface(surf_ctx->layout_surface),
>                                  ILM_INPUT_DEVICE_TOUCH, ILM_TRUE);
>             } else {
>                 surf_ctx->focus &= ~ILM_INPUT_DEVICE_TOUCH;
> <----------------------------------------------------------
>                 send_input_focus(seat->input_ctx,
>
> interface->get_id_of_surface(surf_ctx->layout_surface),
>                                  ILM_INPUT_DEVICE_TOUCH, ILM_FALSE);
>             }
>         }
>
>         /* This code below is slightly redundant, since we have already
>          * decided only one surface has touch focus */
>         if (!(surf_ctx->focus & ILM_INPUT_DEVICE_TOUCH))
>             continue;
> <-----------------------------------------------------------------------------
>
>
> Thanks & Regards,
> Vikash
>
> On Mon, Dec 14, 2015 at 3:25 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
>> Sorry. Forgot to attach the log file. Attached here.
>>
>> Thanks & Regards,
>> Vikas
>>
>> On Mon, Dec 14, 2015 at 3:24 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
>>> Hi Eugen Friedrich
>>>
>>> Thanks a lot for your quick reply.
>>>
>>> Attached here the file with WAYLAND_DEBUG=1 log when the gstreamer
>>> plug-in is in use. I can see "ivi_input@18.input_focus(90, 4, 0)" for
>>> the surface from plug-in but no touch events.
>>>
>>> Here is the output of APIs
>>>
>>> root@linux-9939-a1:~# LayerManagerControl get input device default capabilities
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> pointer
>>> keyboard
>>> touch
>>>
>>> root@linux-9939-a1:~# LayerManagerControl get surface 90 acceptance
>>> Interpreter error: 'acceptance' not recognized.
>>>
>>> root@orinoco-9939-a1:~# LayerManagerControl get input devices with all
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> default
>>>
>>> root@linux-9939-a1:~# LayerManagerControl get input focus
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> failed to get surface context in ilmControl
>>> surface 90:
>>> surface 63:
>>> surface 62:
>>> surface 61:
>>> surface 60: pointer keyboard
>>>
>>>
>>> Thanks & Regards,
>>> Vikas
>>>
>>> On Mon, Dec 14, 2015 at 3:01 PM, Friedrich, Eugen (ADITG/SW1)
>>> <efriedrich@de.adit-jv.com> wrote:
>>>> Hello Vikas,
>>>>
>>>> Could you please add the WAYLAND_DEBUG=1 traces from you application, to see if the input events are reaching the client.
>>>>
>>>> Also the output of the following API would be helpful:
>>>> ilm_getInputFocus,
>>>> ilm_getInputDevices,
>>>> ilm_getInputAcceptanceOn(with you surface id)
>>>>
>>>> the API's will return a list of devices or surfaces, please print the complete list.
>>>>
>>>>
>>>> Best regards
>>>>
>>>> Eugen Friedrich
>>>> Software Group I (ADITG/SW1)
>>>>
>>>> Tel. +49 5121 49 6921
>>>>
>>>>> -----Original Message-----
>>>>> From: genivi-ivi-layer-management-bounces@lists.genivi.org [mailto:genivi-
>>>>> ivi-layer-management-bounces@lists.genivi.org] On Behalf Of Vikas Patil
>>>>> Sent: Samstag, 12. Dezember 2015 12:57
>>>>> To: genivi-ivi-layer-management@lists.genivi.org; meta-
>>>>> freescale@yoctoproject.org; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael
>>>>> Giani; wayland mailing list
>>>>> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and
>>>>> wayland video sink
>>>>>
>>>>> Dear All,
>>>>>
>>>>> I am using wayland video sink (i.e. imxeglvivsink) from gstreamer1.0-plugins-
>>>>> imx [1] to play the video along with weston 1.8.0 and wayland-ivi-extenstion
>>>>> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input
>>>>> support [2]. Basically I am posting touch events on GST bus and application
>>>>> want to have the touch can read the messages and process the touch. This is
>>>>> working fine if I don’t load the “ivi-input-controller.so”. If I load the “ivi-input-
>>>>> controller.so”
>>>>> I am not able to get the touch event inside this plug-in. I have tried setting
>>>>> touch input focus to the surface from this wayland video plug-in using
>>>>> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck.
>>>>>
>>>>>
>>>>> Also touch works fine even if I load “ivi-input-controller.so” with other
>>>>> applications. So I suspect some modification are required to ”imxeglvivsink”
>>>>> [2] or “wayland-ivi-extension/weston”.
>>>>>
>>>>> Do you know what might be going wrong? Could anyone here give some
>>>>> suggestions/ideas to tryout and fix this?
>>>>>
>>>>> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
>>>>> work for me. Any inputs for this?
>>>>>
>>>>> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
>>>>> function in various ways but no luck and I think implementation is correct (as
>>>>> it works well without ivi-input-controller)
>>>>>
>>>>> Following is the platform setup and weston configuration.
>>>>>
>>>>> i.MX6 Duallite
>>>>> Linux 3.14.28
>>>>> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
>>>>> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
>>>>> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2
>>>>>
>>>>> Weston.ini contains:
>>>>>
>>>>> [core]
>>>>> shell=ivi-shell.so
>>>>>
>>>>> [ivi-shell]
>>>>> ivi-module=ivi-controller.so,ivi-input-controller.so
>>>>> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface
>>>>>
>>>>>
>>>>> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
>>>>> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
>>>>> [3]
>>>>> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input
>>>>> _Handling_APIs
>>>>>
>>>>>
>>>>>
>>>>> Thanks & Regards,
>>>>> Vikash


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink
  2015-12-15 14:54         ` Vikas Patil
@ 2016-07-13 13:26           ` Vikas Patil
  0 siblings, 0 replies; 7+ messages in thread
From: Vikas Patil @ 2016-07-13 13:26 UTC (permalink / raw)
  To: Friedrich, Eugen (ADITG/SW1)
  Cc: meta-freescale, wayland mailing list, Tanibata,
	Nobuhiko (ADITJ/SWG),
	genivi-ivi-layer-management

Dear All,

Seeing the below wayland log without above workaround focus is going 0
to surface. I think it means surface is failing to grab the touch
focus. What could be the reasons of focus not getting setup?

I think this [3687363.407] ivi_input@19.input_focus(90, 4, 0) need to
be [3687363.407] ivi_input@19.input_focus(90, 4, 1) for touch to work.
any ideas here?



[3687298.588]  -> wl_surface@9.commit()
[3687314.601] wl_buffer@30.release()
[3687314.718] wl_callback@29.done(299298)
[3687314.793]  -> wl_surface@12.frame(new id wl_callback@29)
[3687314.910]  -> wl_surface@12.attach(wl_buffer@28, 0, 0)
[3687315.022]  -> wl_surface@12.damage(0, 0, 800, 480)
[3687315.140]  -> wl_surface@12.commit()
[3687340.439] wl_display@1.delete_id(14)
[3687340.620] wl_display@1.delete_id(26)
[3687340.690] wl_display@1.delete_id(29)
[3687340.811] wl_callback@26.done(299368)
[3687341.024]  -> wl_surface@12.frame(new id wl_callback@26)
[3687363.407] ivi_input@19.input_focus(90, 4, 0)
[3687366.986]  -> wl_compositor@3.create_region(new id wl_region@14)
[3687367.165]  -> wl_region@14.add(0, 0, 800, 480)
[3687367.286]  -> wl_surface@12.set_opaque_region(wl_region@14)
[3687367.347]  -> wl_region@14.destroy()
[3687367.394]  -> wl_surface@9.commit()
[3687376.888] wl_buffer@27.release()
[3687376.987] wl_callback@29.done(299368)
[3687377.077]  -> wl_surface@12.frame(new id wl_callback@29)
[3687377.161]  -> wl_surface@12.attach(wl_buffer@30, 0, 0)


Thanks & Regards,
Vikash

On Tue, Dec 15, 2015 at 8:24 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
> If I force to pass the if condition as follows using the surface id
> even though surfaces doesn't match, it is working. Does this might be
> due to the way I created the surface 90? Surface 90 also has
> subsurface, does it anyway related to subsurface?
>
> Alos "grab->touch->focus->surface" what this surface is and who creates it?
>
> surfID = interface->get_id_of_surface(surf_ctx->layout_surface);
>
>         /* Touches set touch focus */
>
>         if (grab->touch->num_tp == 1) {
>
>             if (surf == grab->touch->focus->surface ||  surfID == 90) {
>
>                 surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH;
>
>                 send_input_focus(seat->input_ctx,
>
>
> interface->get_id_of_surface(surf_ctx->layout_surface),
>
>                                  ILM_INPUT_DEVICE_TOUCH, ILM_TRUE);
>
>             }
>
>
> Thanks & Regards,
> Vikash
>
> On Mon, Dec 14, 2015 at 8:53 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
>> I am hitting else part of below code for this issue. Any ideas?
>>
>> touch_grab_down() from ivi-input-controller.c
>>
>>  /* Touches set touch focus */
>>         if (grab->touch->num_tp == 1) {
>>             if (surf == grab->touch->focus->surface) {
>>                 surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH;
>>                 send_input_focus(seat->input_ctx,
>>
>> interface->get_id_of_surface(surf_ctx->layout_surface),
>>                                  ILM_INPUT_DEVICE_TOUCH, ILM_TRUE);
>>             } else {
>>                 surf_ctx->focus &= ~ILM_INPUT_DEVICE_TOUCH;
>> <----------------------------------------------------------
>>                 send_input_focus(seat->input_ctx,
>>
>> interface->get_id_of_surface(surf_ctx->layout_surface),
>>                                  ILM_INPUT_DEVICE_TOUCH, ILM_FALSE);
>>             }
>>         }
>>
>>         /* This code below is slightly redundant, since we have already
>>          * decided only one surface has touch focus */
>>         if (!(surf_ctx->focus & ILM_INPUT_DEVICE_TOUCH))
>>             continue;
>> <-----------------------------------------------------------------------------
>>
>>
>> Thanks & Regards,
>> Vikash
>>
>> On Mon, Dec 14, 2015 at 3:25 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
>>> Sorry. Forgot to attach the log file. Attached here.
>>>
>>> Thanks & Regards,
>>> Vikas
>>>
>>> On Mon, Dec 14, 2015 at 3:24 PM, Vikas Patil <vikasmpatil@gmail.com> wrote:
>>>> Hi Eugen Friedrich
>>>>
>>>> Thanks a lot for your quick reply.
>>>>
>>>> Attached here the file with WAYLAND_DEBUG=1 log when the gstreamer
>>>> plug-in is in use. I can see "ivi_input@18.input_focus(90, 4, 0)" for
>>>> the surface from plug-in but no touch events.
>>>>
>>>> Here is the output of APIs
>>>>
>>>> root@linux-9939-a1:~# LayerManagerControl get input device default capabilities
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> pointer
>>>> keyboard
>>>> touch
>>>>
>>>> root@linux-9939-a1:~# LayerManagerControl get surface 90 acceptance
>>>> Interpreter error: 'acceptance' not recognized.
>>>>
>>>> root@orinoco-9939-a1:~# LayerManagerControl get input devices with all
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> default
>>>>
>>>> root@linux-9939-a1:~# LayerManagerControl get input focus
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> failed to get surface context in ilmControl
>>>> surface 90:
>>>> surface 63:
>>>> surface 62:
>>>> surface 61:
>>>> surface 60: pointer keyboard
>>>>
>>>>
>>>> Thanks & Regards,
>>>> Vikas
>>>>
>>>> On Mon, Dec 14, 2015 at 3:01 PM, Friedrich, Eugen (ADITG/SW1)
>>>> <efriedrich@de.adit-jv.com> wrote:
>>>>> Hello Vikas,
>>>>>
>>>>> Could you please add the WAYLAND_DEBUG=1 traces from you application, to see if the input events are reaching the client.
>>>>>
>>>>> Also the output of the following API would be helpful:
>>>>> ilm_getInputFocus,
>>>>> ilm_getInputDevices,
>>>>> ilm_getInputAcceptanceOn(with you surface id)
>>>>>
>>>>> the API's will return a list of devices or surfaces, please print the complete list.
>>>>>
>>>>>
>>>>> Best regards
>>>>>
>>>>> Eugen Friedrich
>>>>> Software Group I (ADITG/SW1)
>>>>>
>>>>> Tel. +49 5121 49 6921
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: genivi-ivi-layer-management-bounces@lists.genivi.org [mailto:genivi-
>>>>>> ivi-layer-management-bounces@lists.genivi.org] On Behalf Of Vikas Patil
>>>>>> Sent: Samstag, 12. Dezember 2015 12:57
>>>>>> To: genivi-ivi-layer-management@lists.genivi.org; meta-
>>>>>> freescale@yoctoproject.org; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael
>>>>>> Giani; wayland mailing list
>>>>>> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and
>>>>>> wayland video sink
>>>>>>
>>>>>> Dear All,
>>>>>>
>>>>>> I am using wayland video sink (i.e. imxeglvivsink) from gstreamer1.0-plugins-
>>>>>> imx [1] to play the video along with weston 1.8.0 and wayland-ivi-extenstion
>>>>>> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input
>>>>>> support [2]. Basically I am posting touch events on GST bus and application
>>>>>> want to have the touch can read the messages and process the touch. This is
>>>>>> working fine if I don’t load the “ivi-input-controller.so”. If I load the “ivi-input-
>>>>>> controller.so”
>>>>>> I am not able to get the touch event inside this plug-in. I have tried setting
>>>>>> touch input focus to the surface from this wayland video plug-in using
>>>>>> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck.
>>>>>>
>>>>>>
>>>>>> Also touch works fine even if I load “ivi-input-controller.so” with other
>>>>>> applications. So I suspect some modification are required to ”imxeglvivsink”
>>>>>> [2] or “wayland-ivi-extension/weston”.
>>>>>>
>>>>>> Do you know what might be going wrong? Could anyone here give some
>>>>>> suggestions/ideas to tryout and fix this?
>>>>>>
>>>>>> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to
>>>>>> work for me. Any inputs for this?
>>>>>>
>>>>>> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop”
>>>>>> function in various ways but no luck and I think implementation is correct (as
>>>>>> it works well without ivi-input-controller)
>>>>>>
>>>>>> Following is the platform setup and weston configuration.
>>>>>>
>>>>>> i.MX6 Duallite
>>>>>> Linux 3.14.28
>>>>>> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer)
>>>>>> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, ivi-input-controller.so
>>>>>> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2
>>>>>>
>>>>>> Weston.ini contains:
>>>>>>
>>>>>> [core]
>>>>>> shell=ivi-shell.so
>>>>>>
>>>>>> [ivi-shell]
>>>>>> ivi-module=ivi-controller.so,ivi-input-controller.so
>>>>>> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface
>>>>>>
>>>>>>
>>>>>> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink
>>>>>> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink
>>>>>> [3]
>>>>>> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input
>>>>>> _Handling_APIs
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thanks & Regards,
>>>>>> Vikash


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-07-13 13:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-12 11:56 Touch events not reviving with wayland-ivi-extenssion 1.4.0 and wayland video sink Vikas Patil
2015-12-14  9:31 ` Friedrich, Eugen (ADITG/SW1)
2015-12-14  9:54   ` Vikas Patil
2015-12-14  9:55     ` Vikas Patil
2015-12-14 15:23       ` Vikas Patil
2015-12-15 14:54         ` Vikas Patil
2016-07-13 13:26           ` Vikas Patil

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.