From ee78c7d1cb676f997dd479720853e9a482a270c8 Mon Sep 17 00:00:00 2001 From: Kazumasa Mitsunari Date: Sat, 9 Jun 2018 23:23:27 +0900 Subject: Get pid from callback Add new function into wayland_ivi_wm Get surface properties function. Change-Id: Id2d98d7751c02de59dd118cffddfdf1b6bf0814e Signed-off-by: Kazumasa Mitsunari --- src/wayland_ivi_wm.cpp | 10 +++++++++- src/wayland_ivi_wm.hpp | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/wayland_ivi_wm.cpp b/src/wayland_ivi_wm.cpp index 5cc16b2..b26ce7e 100644 --- a/src/wayland_ivi_wm.cpp +++ b/src/wayland_ivi_wm.cpp @@ -534,6 +534,14 @@ void controller::create_screen(struct wl_output *output) this->screen = std::make_unique(0, this, output); } +void controller::get_surface_properties(uint32_t surface_id, int param) +{ + if(param == 0){ + param = IVI_WM_PARAM_OPACITY | IVI_WM_PARAM_VISIBILITY | IVI_WM_PARAM_SIZE; + } + ivi_wm_surface_get(this->proxy.get(), surface_id, param); +} + void controller::layer_created(uint32_t id) { HMI_DEBUG("wm", "compositor::controller @ %p layer %u (%x)", this->proxy.get(), id, id); @@ -608,6 +616,7 @@ void controller::surface_stats_received(struct surface *s, uint32_t surface_id, { HMI_DEBUG("wm", "compositor::surface %s @ %d f %u pid %u", __func__, surface_id, frame_count, pid); + this->sprops[s->id].id = pid; } void controller::surface_created(uint32_t id) @@ -624,7 +633,6 @@ void controller::surface_created(uint32_t id) // Set surface type:IVI_WM_SURFACE_TYPE_DESKTOP) // for resizing wayland surface when switching from split to full surface. ivi_wm_set_surface_type(this->proxy.get(), id, IVI_WM_SURFACE_TYPE_DESKTOP); - // Set source reactangle even if we should not need to set it // for enable setting for destination region. this->surfaces[id]->set_source_rectangle(0, 0, this->output_size.w, this->output_size.h); diff --git a/src/wayland_ivi_wm.hpp b/src/wayland_ivi_wm.hpp index cd69623..ffbfd70 100644 --- a/src/wayland_ivi_wm.hpp +++ b/src/wayland_ivi_wm.hpp @@ -166,6 +166,7 @@ struct surface_properties int32_t orientation; int32_t visibility; float opacity; + uint32_t pid; }; /** @@ -289,6 +290,7 @@ struct controller : public wayland_proxy void layer_create(uint32_t id, int32_t w, int32_t h); void surface_create(uint32_t id); void create_screen(struct wl_output *output); + void get_surface_properties(uint32_t surface_id, int param = 0); // Events void surface_visibility_changed(struct surface *s, int32_t visibility); -- cgit 1.2.3-korg