diff options
author | Marcus Fritzsch <marcus.fritzsch@xse.de> | 2014-07-28 09:58:52 +0200 |
---|---|---|
committer | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp> | 2014-08-12 22:15:12 +0900 |
commit | aeb980a31890466bb1e2f316a9082ac86272c038 (patch) | |
tree | d5c35137c5903e2404a932dcbb82616bb6002a5e | |
parent | 245733a685ec7c96af5d6106b468ec6c4fc5e1c4 (diff) | |
download | wayland-ivi-extension-aeb980a31890466bb1e2f316a9082ac86272c038.tar.gz |
ilmControl: Added display_roundtrip_queue()
Signed-off-by: Marcus Fritzsch <marcus.fritzsch@xse.de>
-rw-r--r-- | ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c index 07918b0..dcdcbbc 100644 --- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c +++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c @@ -359,6 +359,36 @@ struct ilm_control_context { uint32_t internal_id_surface; }; +static void roundtrip_done(void *data, struct wl_callback *callback, + uint32_t serial) +{ + (void) callback; + (void) serial; + + *(int *)data = 1; +} + +static struct wl_callback_listener roundtrip_listener = {roundtrip_done}; + +int display_roundtrip_queue(struct wl_display *display, + struct wl_event_queue *queue) +{ + int done = 0; + int ret = 0; + struct wl_callback *callback = wl_display_sync(display); + wl_proxy_set_queue((void *)callback, queue); + wl_callback_add_listener(callback, &roundtrip_listener, &done); + + while (ret != -1 && !done) + { + ret = wl_display_dispatch_queue(display, queue); + } + + wl_callback_destroy(callback); + + return ret; +} + static int create_controller_layer(struct wayland_context *ctx, t_ilm_uint width, t_ilm_uint height, t_ilm_layer layerid); static int32_t |