dswayland-server: update latest wayland protocols 28/255928/1 accepted/tizen/unified/20210331.053946 submit/tizen/20210325.053856
authorJunseok, Kim <juns.kim@samsung.com>
Thu, 25 Mar 2021 05:25:29 +0000 (14:25 +0900)
committerJunseok, Kim <juns.kim@samsung.com>
Thu, 25 Mar 2021 05:25:29 +0000 (14:25 +0900)
    update following wayland protocols

    - wayland
    - tizen-extension
    - input-method
    - tzsh

Change-Id: I3f605811dbbe73e2c9122440fb4c9f79e9437c88
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
src/DSWaylandServer/dswayland-server-input-method.cpp
src/DSWaylandServer/dswayland-server-input-method.h
src/DSWaylandServer/dswayland-server-tizen-extension.cpp
src/DSWaylandServer/dswayland-server-tizen-extension.h
src/DSWaylandServer/dswayland-server-tzsh.cpp
src/DSWaylandServer/dswayland-server-tzsh.h
src/DSWaylandServer/dswayland-server-wayland.h

index b9c41ac..005ffd1 100644 (file)
@@ -207,7 +207,9 @@ namespace DSWaylandServer {
         wl_input_method_context::handle_input_panel_event,
         wl_input_method_context::handle_commit_content,
         wl_input_method_context::handle_update_candidate_state,
-        wl_input_method_context::handle_reshow_input_panel
+        wl_input_method_context::handle_reshow_input_panel,
+        wl_input_method_context::handle_set_floating_panel,
+        wl_input_method_context::handle_set_floating_drag_enabled
     };
 
     void wl_input_method_context::input_method_context_destroy(Resource *)
@@ -318,6 +320,14 @@ namespace DSWaylandServer {
     {
     }
 
+    void wl_input_method_context::input_method_context_set_floating_panel(Resource *, uint32_t )
+    {
+    }
+
+    void wl_input_method_context::input_method_context_set_floating_drag_enabled(Resource *, uint32_t )
+    {
+    }
+
 
     void wl_input_method_context::handle_destroy(
         ::wl_client *client,
@@ -723,6 +733,30 @@ namespace DSWaylandServer {
             r);
     }
 
+    void wl_input_method_context::handle_set_floating_panel(
+        ::wl_client *client,
+        struct wl_resource *resource,
+        uint32_t state)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<wl_input_method_context *>(r->input_method_context_object)->input_method_context_set_floating_panel(
+            r,
+            state);
+    }
+
+    void wl_input_method_context::handle_set_floating_drag_enabled(
+        ::wl_client *client,
+        struct wl_resource *resource,
+        uint32_t enabled)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<wl_input_method_context *>(r->input_method_context_object)->input_method_context_set_floating_drag_enabled(
+            r,
+            enabled);
+    }
+
     void wl_input_method_context::send_reset()
     {
         DS_ASSERT_X(m_resource, "wl_input_method_context::reset", "Uninitialised resource");
@@ -1704,9 +1738,7 @@ namespace DSWaylandServer {
     const struct ::wl_input_panel_surface_interface wl_input_panel_surface::m_wl_input_panel_surface_interface = {
         wl_input_panel_surface::handle_set_toplevel,
         wl_input_panel_surface::handle_set_overlay_panel,
-        wl_input_panel_surface::handle_set_ready,
-        wl_input_panel_surface::handle_set_floating_panel,
-        wl_input_panel_surface::handle_set_floating_drag_enabled
+        wl_input_panel_surface::handle_set_ready
     };
 
     void wl_input_panel_surface::input_panel_surface_set_toplevel(Resource *, struct ::wl_resource *, uint32_t )
@@ -1721,14 +1753,6 @@ namespace DSWaylandServer {
     {
     }
 
-    void wl_input_panel_surface::input_panel_surface_set_floating_panel(Resource *, uint32_t )
-    {
-    }
-
-    void wl_input_panel_surface::input_panel_surface_set_floating_drag_enabled(Resource *, uint32_t )
-    {
-    }
-
 
     void wl_input_panel_surface::handle_set_toplevel(
         ::wl_client *client,
@@ -1766,30 +1790,6 @@ namespace DSWaylandServer {
             state);
     }
 
-    void wl_input_panel_surface::handle_set_floating_panel(
-        ::wl_client *client,
-        struct wl_resource *resource,
-        uint32_t state)
-    {
-        DS_UNUSED(client);
-        Resource *r = Resource::fromResource(resource);
-        static_cast<wl_input_panel_surface *>(r->input_panel_surface_object)->input_panel_surface_set_floating_panel(
-            r,
-            state);
-    }
-
-    void wl_input_panel_surface::handle_set_floating_drag_enabled(
-        ::wl_client *client,
-        struct wl_resource *resource,
-        uint32_t enabled)
-    {
-        DS_UNUSED(client);
-        Resource *r = Resource::fromResource(resource);
-        static_cast<wl_input_panel_surface *>(r->input_panel_surface_object)->input_panel_surface_set_floating_drag_enabled(
-            r,
-            enabled);
-    }
-
     wl_input_method_manager::wl_input_method_manager(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
index 0f9a071..03c49a7 100644 (file)
@@ -139,6 +139,8 @@ namespace DSWaylandServer {
         virtual void input_method_context_commit_content(Resource *resource, uint32_t serial, const std::string &content, const std::string &description, const std::string &mime_types);
         virtual void input_method_context_update_candidate_state(Resource *resource, uint32_t state);
         virtual void input_method_context_reshow_input_panel(Resource *resource);
+        virtual void input_method_context_set_floating_panel(Resource *resource, uint32_t state);
+        virtual void input_method_context_set_floating_drag_enabled(Resource *resource, uint32_t enabled);
 
     private:
         static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
@@ -298,6 +300,14 @@ namespace DSWaylandServer {
         static void handle_reshow_input_panel(
             ::wl_client *client,
             struct wl_resource *resource);
+        static void handle_set_floating_panel(
+            ::wl_client *client,
+            struct wl_resource *resource,
+            uint32_t state);
+        static void handle_set_floating_drag_enabled(
+            ::wl_client *client,
+            struct wl_resource *resource,
+            uint32_t enabled);
 
         std::multimap<struct ::wl_client*, Resource*> m_resource_map;
         Resource *m_resource;
@@ -538,8 +548,6 @@ namespace DSWaylandServer {
         virtual void input_panel_surface_set_toplevel(Resource *resource, struct ::wl_resource *output, uint32_t position);
         virtual void input_panel_surface_set_overlay_panel(Resource *resource);
         virtual void input_panel_surface_set_ready(Resource *resource, uint32_t state);
-        virtual void input_panel_surface_set_floating_panel(Resource *resource, uint32_t state);
-        virtual void input_panel_surface_set_floating_drag_enabled(Resource *resource, uint32_t enabled);
 
     private:
         static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
@@ -563,14 +571,6 @@ namespace DSWaylandServer {
             ::wl_client *client,
             struct wl_resource *resource,
             uint32_t state);
-        static void handle_set_floating_panel(
-            ::wl_client *client,
-            struct wl_resource *resource,
-            uint32_t state);
-        static void handle_set_floating_drag_enabled(
-            ::wl_client *client,
-            struct wl_resource *resource,
-            uint32_t enabled);
 
         std::multimap<struct ::wl_client*, Resource*> m_resource_map;
         Resource *m_resource;
index 15a014c..3236c91 100644 (file)
@@ -603,7 +603,9 @@ namespace DSWaylandServer {
         tizen_policy::handle_ack_conformant_region,
         tizen_policy::handle_destroy,
         tizen_policy::handle_has_video,
-        tizen_policy::handle_set_appid
+        tizen_policy::handle_set_appid,
+        tizen_policy::handle_show,
+        tizen_policy::handle_hide
     };
 
     void tizen_policy::tizen_policy_get_visibility(Resource *, uint32_t, struct ::wl_resource *)
@@ -766,6 +768,14 @@ namespace DSWaylandServer {
     {
     }
 
+    void tizen_policy::tizen_policy_show(Resource *, struct ::wl_resource *)
+    {
+    }
+
+    void tizen_policy::tizen_policy_hide(Resource *, struct ::wl_resource *)
+    {
+    }
+
 
     void tizen_policy::handle_get_visibility(
         ::wl_client *client,
@@ -1293,6 +1303,30 @@ namespace DSWaylandServer {
             std::string(appid));
     }
 
+    void tizen_policy::handle_show(
+        ::wl_client *client,
+        struct wl_resource *resource,
+        struct ::wl_resource *surface)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<tizen_policy *>(r->tizen_policy_object)->tizen_policy_show(
+            r,
+            surface);
+    }
+
+    void tizen_policy::handle_hide(
+        ::wl_client *client,
+        struct wl_resource *resource,
+        struct ::wl_resource *surface)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<tizen_policy *>(r->tizen_policy_object)->tizen_policy_hide(
+            r,
+            surface);
+    }
+
     void tizen_policy::send_conformant(struct ::wl_resource *surface, uint32_t is_conformant)
     {
         DS_ASSERT_X(m_resource, "tizen_policy::conformant", "Uninitialised resource");
@@ -1971,6 +2005,7 @@ namespace DSWaylandServer {
             y);
     }
 
+
     tizen_move_resize::tizen_move_resize(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -2201,6 +2236,7 @@ namespace DSWaylandServer {
             error_state);
     }
 
+
     tizen_gesture::tizen_gesture(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -2839,6 +2875,7 @@ namespace DSWaylandServer {
             error);
     }
 
+
     tizen_keyrouter::tizen_keyrouter(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -3357,6 +3394,7 @@ namespace DSWaylandServer {
             mode);
     }
 
+
     tizen_screenshooter::tizen_screenshooter(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -3604,6 +3642,7 @@ namespace DSWaylandServer {
             noti);
     }
 
+
     tizen_screenmirror::tizen_screenmirror(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -3914,6 +3953,7 @@ namespace DSWaylandServer {
             resource);
     }
 
+
     tizen_video::tizen_video(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -4143,6 +4183,7 @@ namespace DSWaylandServer {
             format);
     }
 
+
     tizen_video_object::tizen_video_object(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -4443,6 +4484,7 @@ namespace DSWaylandServer {
             prefer_align);
     }
 
+
     tizen_subsurface_watcher::tizen_subsurface_watcher(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -4634,6 +4676,7 @@ namespace DSWaylandServer {
             value);
     }
 
+
     tizen_viewport::tizen_viewport(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -5003,6 +5046,7 @@ namespace DSWaylandServer {
             height);
     }
 
+
     tizen_destination_mode::tizen_destination_mode(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -5508,6 +5552,7 @@ namespace DSWaylandServer {
             sock_fd);
     }
 
+
     tizen_input_device_manager::tizen_input_device_manager(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -5672,7 +5717,8 @@ namespace DSWaylandServer {
         tizen_input_device_manager::handle_pointer_warp,
         tizen_input_device_manager::handle_init_generator_with_name,
         tizen_input_device_manager::handle_destroy,
-        tizen_input_device_manager::handle_generate_axis
+        tizen_input_device_manager::handle_generate_axis,
+        tizen_input_device_manager::handle_set_touch_count
     };
 
     void tizen_input_device_manager::tizen_input_device_manager_block_events(Resource *, uint32_t , uint32_t , uint32_t )
@@ -5719,6 +5765,11 @@ namespace DSWaylandServer {
     {
     }
 
+    void tizen_input_device_manager::tizen_input_device_manager_set_touch_count(Resource *, int32_t )
+    {
+    }
+
+
     void tizen_input_device_manager::handle_block_events(
         ::wl_client *client,
         struct wl_resource *resource,
@@ -5875,6 +5926,18 @@ namespace DSWaylandServer {
             value);
     }
 
+    void tizen_input_device_manager::handle_set_touch_count(
+        ::wl_client *client,
+        struct wl_resource *resource,
+        int32_t max_count)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<tizen_input_device_manager *>(r->tizen_input_device_manager_object)->tizen_input_device_manager_set_touch_count(
+            r,
+            max_count);
+    }
+
     void tizen_input_device_manager::send_device_add(uint32_t serial, const std::string &identifier, struct ::wl_resource *device, struct ::wl_resource *seat)
     {
         DS_ASSERT_X(m_resource, "tizen_input_device_manager::device_add", "Uninitialised resource");
@@ -5964,6 +6027,31 @@ namespace DSWaylandServer {
             resource);
     }
 
+
+    void tizen_input_device_manager::send_max_touch_count(uint32_t serial, int32_t max_count, struct ::wl_resource *seat)
+    {
+        DS_ASSERT_X(m_resource, "tizen_input_device_manager::max_touch_count", "Uninitialised resource");
+        if (DS_UNLIKELY(!m_resource)) {
+            WRN("could not call tizen_input_device_manager::max_touch_count as it's not initialised");
+            return;
+        }
+        send_max_touch_count(
+            m_resource->handle,
+            serial,
+            max_count,
+            seat);
+    }
+
+    void tizen_input_device_manager::send_max_touch_count(struct ::wl_resource *resource, uint32_t serial, int32_t max_count, struct ::wl_resource *seat)
+    {
+        tizen_input_device_manager_send_max_touch_count(
+            resource,
+            serial,
+            max_count,
+            seat);
+    }
+
+
     tizen_input_device::tizen_input_device(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -6224,6 +6312,7 @@ namespace DSWaylandServer {
             value);
     }
 
+
     tizen_launchscreen::tizen_launchscreen(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -6874,6 +6963,7 @@ namespace DSWaylandServer {
             type);
     }
 
+
     tizen_display_policy::tizen_display_policy(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -7088,6 +7178,7 @@ namespace DSWaylandServer {
             error_state);
     }
 
+
     tizen_indicator::tizen_indicator(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -7338,6 +7429,7 @@ namespace DSWaylandServer {
             type);
     }
 
+
     tizen_clipboard::tizen_clipboard(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -7600,6 +7692,7 @@ namespace DSWaylandServer {
             allowed);
     }
 
+
     tizen_screen_rotation::tizen_screen_rotation(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -7810,5 +7903,386 @@ namespace DSWaylandServer {
             ignore);
     }
 
+
+    tizen_renderer::tizen_renderer(struct ::wl_client *client, uint32_t id, int version)
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+        init(client, id, version);
+    }
+
+    tizen_renderer::tizen_renderer(struct ::wl_display *display, int version)
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+        init(display, version);
+    }
+
+    tizen_renderer::tizen_renderer(struct ::wl_resource *resource)
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+        init(resource);
+    }
+
+    tizen_renderer::tizen_renderer()
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+    }
+
+    tizen_renderer::~tizen_renderer()
+    {
+        std::multimap<struct ::wl_client*, tizen_renderer::Resource*>::iterator it;
+        for (it = m_resource_map.begin() ; it != m_resource_map.end() ; it++) {
+            tizen_renderer::Resource *resource = (*it).second;
+            wl_resource_set_implementation(resource->handle, NULL, NULL, NULL);
+        }
+
+        if (m_global) {
+            wl_global_destroy(m_global);
+            wl_list_remove(&m_displayDestroyedListener.link);
+        }
+    }
+
+    void tizen_renderer::init(struct ::wl_client *client, uint32_t id, int version)
+    {
+        m_resource = bind(client, id, version);
+    }
+
+    void tizen_renderer::init(struct ::wl_resource *resource)
+    {
+        m_resource = bind(resource);
+    }
+
+    tizen_renderer::Resource *tizen_renderer::add(struct ::wl_client *client, int version)
+    {
+        Resource *resource = bind(client, 0, version);
+        m_resource_map.insert(std::pair<struct ::wl_client*, Resource*>(client, resource));
+        return resource;
+    }
+
+    tizen_renderer::Resource *tizen_renderer::add(struct ::wl_client *client, uint32_t id, int version)
+    {
+        Resource *resource = bind(client, id, version);
+        m_resource_map.insert(std::pair<struct ::wl_client*, Resource*>(client, resource));
+        return resource;
+    }
+
+    void tizen_renderer::init(struct ::wl_display *display, int version)
+    {
+        m_global = wl_global_create(display, &::tizen_renderer_interface, version, this, bind_func);
+        m_globalVersion = version;
+        m_displayDestroyedListener.notify = tizen_renderer::display_destroy_func;
+        m_displayDestroyedListener.parent = this;
+        wl_display_add_destroy_listener(display, &m_displayDestroyedListener);
+    }
+
+    const struct wl_interface *tizen_renderer::interface()
+    {
+        return &::tizen_renderer_interface;
+    }
+
+    tizen_renderer::Resource *tizen_renderer::tizen_renderer_allocate()
+    {
+        return new Resource;
+    }
+
+    void tizen_renderer::tizen_renderer_bind_resource(Resource *)
+    {
+    }
+
+    void tizen_renderer::tizen_renderer_destroy_resource(Resource *)
+    {
+    }
+
+    void tizen_renderer::bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id)
+    {
+        tizen_renderer *that = static_cast<tizen_renderer *>(data);
+        that->add(client, id, std::min(that->m_globalVersion, version));
+    }
+
+    void tizen_renderer::display_destroy_func(struct ::wl_listener *listener, void *data)
+    {
+        DS_UNUSED(data);
+        tizen_renderer *that = static_cast<tizen_renderer::DisplayDestroyedListener *>(listener)->parent;
+        that->m_global = NULL;
+    }
+
+    void tizen_renderer::destroy_func(struct ::wl_resource *client_resource)
+    {
+        Resource *resource = Resource::fromResource(client_resource);
+        DS_ASSERT(resource);
+        tizen_renderer *that = resource->tizen_renderer_object;
+        that->m_resource_map.erase(resource->client());
+        that->tizen_renderer_destroy_resource(resource);
+        delete resource;
+    }
+
+    tizen_renderer::Resource *tizen_renderer::bind(struct ::wl_client *client, uint32_t id, int version)
+    {
+        DS_ASSERT_X(!wl_client_get_object(client, id), "DSWaylandObject bind", "binding to object %u more than once", id);
+        struct ::wl_resource *handle = wl_resource_create(client, &::tizen_renderer_interface, version, id);
+        return bind(handle);
+    }
+
+    tizen_renderer::Resource *tizen_renderer::bind(struct ::wl_resource *handle)
+    {
+        Resource *resource = tizen_renderer_allocate();
+        resource->tizen_renderer_object = this;
+
+        wl_resource_set_implementation(handle, &m_tizen_renderer_interface, resource, destroy_func);
+        resource->handle = handle;
+        tizen_renderer_bind_resource(resource);
+        return resource;
+    }
+    tizen_renderer::Resource *tizen_renderer::Resource::fromResource(struct ::wl_resource *resource)
+    {
+        if (DS_UNLIKELY(!resource))
+            return NULL;
+        if (wl_resource_instance_of(resource, &::tizen_renderer_interface, &m_tizen_renderer_interface))
+            return static_cast<Resource *>(wl_resource_get_user_data(resource));
+        return NULL;
+    }
+
+    const struct ::tizen_renderer_interface tizen_renderer::m_tizen_renderer_interface = {
+        tizen_renderer::handle_get_renderer_surface,
+        tizen_renderer::handle_destroy
+    };
+
+    void tizen_renderer::tizen_renderer_get_renderer_surface(Resource *, uint32_t, struct ::wl_resource *)
+    {
+    }
+
+    void tizen_renderer::tizen_renderer_destroy(Resource *)
+    {
+    }
+
+
+    void tizen_renderer::handle_get_renderer_surface(
+        ::wl_client *client,
+        struct wl_resource *resource,
+        uint32_t id,
+        struct ::wl_resource *surface)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<tizen_renderer *>(r->tizen_renderer_object)->tizen_renderer_get_renderer_surface(
+            r,
+            id,
+            surface);
+    }
+
+    void tizen_renderer::handle_destroy(
+        ::wl_client *client,
+        struct wl_resource *resource)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<tizen_renderer *>(r->tizen_renderer_object)->tizen_renderer_destroy(
+            r);
+    }
+
+    tizen_renderer_surface::tizen_renderer_surface(struct ::wl_client *client, uint32_t id, int version)
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+        init(client, id, version);
+    }
+
+    tizen_renderer_surface::tizen_renderer_surface(struct ::wl_display *display, int version)
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+        init(display, version);
+    }
+
+    tizen_renderer_surface::tizen_renderer_surface(struct ::wl_resource *resource)
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+        init(resource);
+    }
+
+    tizen_renderer_surface::tizen_renderer_surface()
+        : m_resource_map()
+        , m_resource(NULL)
+        , m_global(NULL)
+        , m_globalVersion(0)
+        , m_displayDestroyedListener()
+    {
+    }
+
+    tizen_renderer_surface::~tizen_renderer_surface()
+    {
+        std::multimap<struct ::wl_client*, tizen_renderer_surface::Resource*>::iterator it;
+        for (it = m_resource_map.begin() ; it != m_resource_map.end() ; it++) {
+            tizen_renderer_surface::Resource *resource = (*it).second;
+            wl_resource_set_implementation(resource->handle, NULL, NULL, NULL);
+        }
+
+        if (m_global) {
+            wl_global_destroy(m_global);
+            wl_list_remove(&m_displayDestroyedListener.link);
+        }
+    }
+
+    void tizen_renderer_surface::init(struct ::wl_client *client, uint32_t id, int version)
+    {
+        m_resource = bind(client, id, version);
+    }
+
+    void tizen_renderer_surface::init(struct ::wl_resource *resource)
+    {
+        m_resource = bind(resource);
+    }
+
+    tizen_renderer_surface::Resource *tizen_renderer_surface::add(struct ::wl_client *client, int version)
+    {
+        Resource *resource = bind(client, 0, version);
+        m_resource_map.insert(std::pair<struct ::wl_client*, Resource*>(client, resource));
+        return resource;
+    }
+
+    tizen_renderer_surface::Resource *tizen_renderer_surface::add(struct ::wl_client *client, uint32_t id, int version)
+    {
+        Resource *resource = bind(client, id, version);
+        m_resource_map.insert(std::pair<struct ::wl_client*, Resource*>(client, resource));
+        return resource;
+    }
+
+    void tizen_renderer_surface::init(struct ::wl_display *display, int version)
+    {
+        m_global = wl_global_create(display, &::tizen_renderer_surface_interface, version, this, bind_func);
+        m_globalVersion = version;
+        m_displayDestroyedListener.notify = tizen_renderer_surface::display_destroy_func;
+        m_displayDestroyedListener.parent = this;
+        wl_display_add_destroy_listener(display, &m_displayDestroyedListener);
+    }
+
+    const struct wl_interface *tizen_renderer_surface::interface()
+    {
+        return &::tizen_renderer_surface_interface;
+    }
+
+    tizen_renderer_surface::Resource *tizen_renderer_surface::tizen_renderer_surface_allocate()
+    {
+        return new Resource;
+    }
+
+    void tizen_renderer_surface::tizen_renderer_surface_bind_resource(Resource *)
+    {
+    }
+
+    void tizen_renderer_surface::tizen_renderer_surface_destroy_resource(Resource *)
+    {
+    }
+
+    void tizen_renderer_surface::bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id)
+    {
+        tizen_renderer_surface *that = static_cast<tizen_renderer_surface *>(data);
+        that->add(client, id, std::min(that->m_globalVersion, version));
+    }
+
+    void tizen_renderer_surface::display_destroy_func(struct ::wl_listener *listener, void *data)
+    {
+        DS_UNUSED(data);
+        tizen_renderer_surface *that = static_cast<tizen_renderer_surface::DisplayDestroyedListener *>(listener)->parent;
+        that->m_global = NULL;
+    }
+
+    void tizen_renderer_surface::destroy_func(struct ::wl_resource *client_resource)
+    {
+        Resource *resource = Resource::fromResource(client_resource);
+        DS_ASSERT(resource);
+        tizen_renderer_surface *that = resource->tizen_renderer_surface_object;
+        that->m_resource_map.erase(resource->client());
+        that->tizen_renderer_surface_destroy_resource(resource);
+        delete resource;
+    }
+
+    tizen_renderer_surface::Resource *tizen_renderer_surface::bind(struct ::wl_client *client, uint32_t id, int version)
+    {
+        DS_ASSERT_X(!wl_client_get_object(client, id), "DSWaylandObject bind", "binding to object %u more than once", id);
+        struct ::wl_resource *handle = wl_resource_create(client, &::tizen_renderer_surface_interface, version, id);
+        return bind(handle);
+    }
+
+    tizen_renderer_surface::Resource *tizen_renderer_surface::bind(struct ::wl_resource *handle)
+    {
+        Resource *resource = tizen_renderer_surface_allocate();
+        resource->tizen_renderer_surface_object = this;
+
+        wl_resource_set_implementation(handle, &m_tizen_renderer_surface_interface, resource, destroy_func);
+        resource->handle = handle;
+        tizen_renderer_surface_bind_resource(resource);
+        return resource;
+    }
+    tizen_renderer_surface::Resource *tizen_renderer_surface::Resource::fromResource(struct ::wl_resource *resource)
+    {
+        if (DS_UNLIKELY(!resource))
+            return NULL;
+        if (wl_resource_instance_of(resource, &::tizen_renderer_surface_interface, &m_tizen_renderer_surface_interface))
+            return static_cast<Resource *>(wl_resource_get_user_data(resource));
+        return NULL;
+    }
+
+    const struct ::tizen_renderer_surface_interface tizen_renderer_surface::m_tizen_renderer_surface_interface = {
+        tizen_renderer_surface::handle_destroy
+    };
+
+    void tizen_renderer_surface::tizen_renderer_surface_destroy(Resource *)
+    {
+    }
+
+
+    void tizen_renderer_surface::handle_destroy(
+        ::wl_client *client,
+        struct wl_resource *resource)
+    {
+        DS_UNUSED(client);
+        Resource *r = Resource::fromResource(resource);
+        static_cast<tizen_renderer_surface *>(r->tizen_renderer_surface_object)->tizen_renderer_surface_destroy(
+            r);
+    }
+
+    void tizen_renderer_surface::send_redraw_request()
+    {
+        DS_ASSERT_X(m_resource, "tizen_renderer_surface::redraw_request", "Uninitialised resource");
+        if (DS_UNLIKELY(!m_resource)) {
+            WRN("could not call tizen_renderer_surface::redraw_request as it's not initialised");
+            return;
+        }
+        send_redraw_request(
+            m_resource->handle);
+    }
+
+    void tizen_renderer_surface::send_redraw_request(struct ::wl_resource *resource)
+    {
+        tizen_renderer_surface_send_redraw_request(
+            resource);
+    }
+
 }
 /*LCOV_EXCL_STOP*/
index cdc2b1f..26b8301 100644 (file)
@@ -356,6 +356,8 @@ namespace DSWaylandServer {
         virtual void tizen_policy_destroy(Resource *resource);
         virtual void tizen_policy_has_video(Resource *resource, struct ::wl_resource *surface, uint32_t has);
         virtual void tizen_policy_set_appid(Resource *resource, int32_t pid, const std::string &appid);
+        virtual void tizen_policy_show(Resource *resource, struct ::wl_resource *surface);
+        virtual void tizen_policy_hide(Resource *resource, struct ::wl_resource *surface);
 
     private:
         static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
@@ -550,6 +552,14 @@ namespace DSWaylandServer {
             struct wl_resource *resource,
             int32_t pid,
             const char *appid);
+        static void handle_show(
+            ::wl_client *client,
+            struct wl_resource *resource,
+            struct ::wl_resource *surface);
+        static void handle_hide(
+            ::wl_client *client,
+            struct wl_resource *resource,
+            struct ::wl_resource *surface);
 
         std::multimap<struct ::wl_client*, Resource*> m_resource_map;
         Resource *m_resource;
@@ -2172,6 +2182,7 @@ namespace DSWaylandServer {
             error_invalid_parameter = 5, // argument is invalid
             error_invalid_surface = 6, // the given surface is not visible or pointer is not on the given surface
             error_no_pointer_available = 7, // there is no pointer available to warp
+            error_not_allowed = 8, // this request is not allowed in this system
         };
 
         enum pointer_event_type {
@@ -2199,6 +2210,8 @@ namespace DSWaylandServer {
         void send_error(struct ::wl_resource *resource, uint32_t errorcode);
         void send_block_expired();
         void send_block_expired(struct ::wl_resource *resource);
+        void send_max_touch_count(uint32_t serial, int32_t max_count, struct ::wl_resource *seat);
+        void send_max_touch_count(struct ::wl_resource *resource, uint32_t serial, int32_t max_count, struct ::wl_resource *seat);
 
     protected:
         virtual Resource *tizen_input_device_manager_allocate();
@@ -2217,6 +2230,7 @@ namespace DSWaylandServer {
         virtual void tizen_input_device_manager_init_generator_with_name(Resource *resource, uint32_t clas, const std::string &name);
         virtual void tizen_input_device_manager_destroy(Resource *resource);
         virtual void tizen_input_device_manager_generate_axis(Resource *resource, uint32_t type, wl_fixed_t value);
+        virtual void tizen_input_device_manager_set_touch_count(Resource *resource, int32_t max_count);
 
     private:
         static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
@@ -2284,6 +2298,10 @@ namespace DSWaylandServer {
             struct wl_resource *resource,
             uint32_t type,
             wl_fixed_t value);
+        static void handle_set_touch_count(
+            ::wl_client *client,
+            struct wl_resource *resource,
+            int32_t max_count);
 
         std::multimap<struct ::wl_client*, Resource*> m_resource_map;
         Resource *m_resource;
@@ -3114,6 +3132,177 @@ namespace DSWaylandServer {
         };
         DisplayDestroyedListener m_displayDestroyedListener;
     };
+
+    class  tizen_renderer
+    {
+    public:
+        tizen_renderer(struct ::wl_client *client, uint32_t id, int version);
+        tizen_renderer(struct ::wl_display *display, int version);
+        tizen_renderer(struct ::wl_resource *resource);
+        tizen_renderer();
+
+        virtual ~tizen_renderer();
+
+        class Resource
+        {
+        public:
+            Resource() : tizen_renderer_object(NULL), handle(NULL) {}
+            virtual ~Resource() {}
+
+            tizen_renderer *tizen_renderer_object;
+            tizen_renderer *object() { return tizen_renderer_object; } 
+            struct ::wl_resource *handle;
+
+            struct ::wl_client *client() const { return wl_resource_get_client(handle); }
+            int version() const { return wl_resource_get_version(handle); }
+
+            static Resource *fromResource(struct ::wl_resource *resource);
+        };
+
+        void init(struct ::wl_client *client, uint32_t id, int version);
+        void init(struct ::wl_display *display, int version);
+        void init(struct ::wl_resource *resource);
+
+        Resource *add(struct ::wl_client *client, int version);
+        Resource *add(struct ::wl_client *client, uint32_t id, int version);
+        Resource *add(struct wl_list *resource_list, struct ::wl_client *client, uint32_t id, int version);
+
+        Resource *resource() { return m_resource; }
+        const Resource *resource() const { return m_resource; }
+
+        std::multimap<struct ::wl_client*, Resource*> resourceMap() { return m_resource_map; }
+        const std::multimap<struct ::wl_client*, Resource*> resourceMap() const { return m_resource_map; }
+
+        bool isGlobal() const { return m_global != NULL; }
+        bool isResource() const { return m_resource != NULL; }
+
+        static const struct ::wl_interface *interface();
+        static std::string interfaceName() { return interface()->name; }
+        static int interfaceVersion() { return interface()->version; }
+
+
+    protected:
+        virtual Resource *tizen_renderer_allocate();
+
+        virtual void tizen_renderer_bind_resource(Resource *resource);
+        virtual void tizen_renderer_destroy_resource(Resource *resource);
+
+        virtual void tizen_renderer_get_renderer_surface(Resource *resource, uint32_t id, struct ::wl_resource *surface);
+        virtual void tizen_renderer_destroy(Resource *resource);
+
+    private:
+        static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
+        static void destroy_func(struct ::wl_resource *client_resource);
+        static void display_destroy_func(struct ::wl_listener *listener, void *data);
+
+        Resource *bind(struct ::wl_client *client, uint32_t id, int version);
+        Resource *bind(struct ::wl_resource *handle);
+
+        static const struct ::tizen_renderer_interface m_tizen_renderer_interface;
+
+        static void handle_get_renderer_surface(
+            ::wl_client *client,
+            struct wl_resource *resource,
+            uint32_t id,
+            struct ::wl_resource *surface);
+        static void handle_destroy(
+            ::wl_client *client,
+            struct wl_resource *resource);
+
+        std::multimap<struct ::wl_client*, Resource*> m_resource_map;
+        Resource *m_resource;
+        struct ::wl_global *m_global;
+        uint32_t m_globalVersion;
+        struct DisplayDestroyedListener : ::wl_listener {
+            tizen_renderer *parent;
+            DisplayDestroyedListener(): parent(NULL) {}
+        };
+        DisplayDestroyedListener m_displayDestroyedListener;
+    };
+
+    class  tizen_renderer_surface
+    {
+    public:
+        tizen_renderer_surface(struct ::wl_client *client, uint32_t id, int version);
+        tizen_renderer_surface(struct ::wl_display *display, int version);
+        tizen_renderer_surface(struct ::wl_resource *resource);
+        tizen_renderer_surface();
+
+        virtual ~tizen_renderer_surface();
+
+        class Resource
+        {
+        public:
+            Resource() : tizen_renderer_surface_object(NULL), handle(NULL) {}
+            virtual ~Resource() {}
+
+            tizen_renderer_surface *tizen_renderer_surface_object;
+            tizen_renderer_surface *object() { return tizen_renderer_surface_object; } 
+            struct ::wl_resource *handle;
+
+            struct ::wl_client *client() const { return wl_resource_get_client(handle); }
+            int version() const { return wl_resource_get_version(handle); }
+
+            static Resource *fromResource(struct ::wl_resource *resource);
+        };
+
+        void init(struct ::wl_client *client, uint32_t id, int version);
+        void init(struct ::wl_display *display, int version);
+        void init(struct ::wl_resource *resource);
+
+        Resource *add(struct ::wl_client *client, int version);
+        Resource *add(struct ::wl_client *client, uint32_t id, int version);
+        Resource *add(struct wl_list *resource_list, struct ::wl_client *client, uint32_t id, int version);
+
+        Resource *resource() { return m_resource; }
+        const Resource *resource() const { return m_resource; }
+
+        std::multimap<struct ::wl_client*, Resource*> resourceMap() { return m_resource_map; }
+        const std::multimap<struct ::wl_client*, Resource*> resourceMap() const { return m_resource_map; }
+
+        bool isGlobal() const { return m_global != NULL; }
+        bool isResource() const { return m_resource != NULL; }
+
+        static const struct ::wl_interface *interface();
+        static std::string interfaceName() { return interface()->name; }
+        static int interfaceVersion() { return interface()->version; }
+
+
+        void send_redraw_request();
+        void send_redraw_request(struct ::wl_resource *resource);
+
+    protected:
+        virtual Resource *tizen_renderer_surface_allocate();
+
+        virtual void tizen_renderer_surface_bind_resource(Resource *resource);
+        virtual void tizen_renderer_surface_destroy_resource(Resource *resource);
+
+        virtual void tizen_renderer_surface_destroy(Resource *resource);
+
+    private:
+        static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
+        static void destroy_func(struct ::wl_resource *client_resource);
+        static void display_destroy_func(struct ::wl_listener *listener, void *data);
+
+        Resource *bind(struct ::wl_client *client, uint32_t id, int version);
+        Resource *bind(struct ::wl_resource *handle);
+
+        static const struct ::tizen_renderer_surface_interface m_tizen_renderer_surface_interface;
+
+        static void handle_destroy(
+            ::wl_client *client,
+            struct wl_resource *resource);
+
+        std::multimap<struct ::wl_client*, Resource*> m_resource_map;
+        Resource *m_resource;
+        struct ::wl_global *m_global;
+        uint32_t m_globalVersion;
+        struct DisplayDestroyedListener : ::wl_listener {
+            tizen_renderer_surface *parent;
+            DisplayDestroyedListener(): parent(NULL) {}
+        };
+        DisplayDestroyedListener m_displayDestroyedListener;
+    };
 }
 /*LCOV_EXCL_STOP*/
 
index ae8c2a1..d6b1d66 100644 (file)
@@ -185,7 +185,6 @@ namespace DSWaylandServer {
         tizen_ws_shell::handle_service_create,
         tizen_ws_shell::handle_region_create,
         tizen_ws_shell::handle_quickpanel_get,
-        tizen_ws_shell::handle_tvsrv_get,
         tizen_ws_shell::handle_extension_get,
         tizen_ws_shell::handle_softkey_get,
         tizen_ws_shell::handle_shared_widget_launch_get
@@ -207,10 +206,6 @@ namespace DSWaylandServer {
     {
     }
 
-    void tizen_ws_shell::tizen_ws_shell_tvsrv_get(Resource *, uint32_t, uint32_t )
-    {
-    }
-
     void tizen_ws_shell::tizen_ws_shell_extension_get(Resource *, uint32_t, const std::string &)
     {
     }
@@ -276,20 +271,6 @@ namespace DSWaylandServer {
             win);
     }
 
-    void tizen_ws_shell::handle_tvsrv_get(
-        ::wl_client *client,
-        struct wl_resource *resource,
-        uint32_t id,
-        uint32_t win)
-    {
-        DS_UNUSED(client);
-        Resource *r = Resource::fromResource(resource);
-        static_cast<tizen_ws_shell *>(r->tizen_ws_shell_object)->tizen_ws_shell_tvsrv_get(
-            r,
-            id,
-            win);
-    }
-
     void tizen_ws_shell::handle_extension_get(
         ::wl_client *client,
         struct wl_resource *resource,
@@ -719,208 +700,6 @@ namespace DSWaylandServer {
     }
 
 
-    tws_tvsrv::tws_tvsrv(struct ::wl_client *client, uint32_t id, int version)
-        : m_resource_map()
-        , m_resource(NULL)
-        , m_global(NULL)
-        , m_globalVersion(0)
-        , m_displayDestroyedListener()
-    {
-        init(client, id, version);
-    }
-
-    tws_tvsrv::tws_tvsrv(struct ::wl_display *display, int version)
-        : m_resource_map()
-        , m_resource(NULL)
-        , m_global(NULL)
-        , m_globalVersion(0)
-        , m_displayDestroyedListener()
-    {
-        init(display, version);
-    }
-
-    tws_tvsrv::tws_tvsrv(struct ::wl_resource *resource)
-        : m_resource_map()
-        , m_resource(NULL)
-        , m_global(NULL)
-        , m_globalVersion(0)
-        , m_displayDestroyedListener()
-    {
-        init(resource);
-    }
-
-    tws_tvsrv::tws_tvsrv()
-        : m_resource_map()
-        , m_resource(NULL)
-        , m_global(NULL)
-        , m_globalVersion(0)
-        , m_displayDestroyedListener()
-    {
-    }
-
-    tws_tvsrv::~tws_tvsrv()
-    {
-        std::multimap<struct ::wl_client*, tws_tvsrv::Resource*>::iterator it;
-        for (it = m_resource_map.begin() ; it != m_resource_map.end() ; it++) {
-            tws_tvsrv::Resource *resource = (*it).second;
-            wl_resource_set_implementation(resource->handle, NULL, NULL, NULL);
-        }
-
-        if (m_global) {
-            wl_global_destroy(m_global);
-            wl_list_remove(&m_displayDestroyedListener.link);
-        }
-    }
-
-    void tws_tvsrv::init(struct ::wl_client *client, uint32_t id, int version)
-    {
-        m_resource = bind(client, id, version);
-    }
-
-    void tws_tvsrv::init(struct ::wl_resource *resource)
-    {
-        m_resource = bind(resource);
-    }
-
-    tws_tvsrv::Resource *tws_tvsrv::add(struct ::wl_client *client, int version)
-    {
-        Resource *resource = bind(client, 0, version);
-        m_resource_map.insert(std::pair<struct ::wl_client*, Resource*>(client, resource));
-        return resource;
-    }
-
-    tws_tvsrv::Resource *tws_tvsrv::add(struct ::wl_client *client, uint32_t id, int version)
-    {
-        Resource *resource = bind(client, id, version);
-        m_resource_map.insert(std::pair<struct ::wl_client*, Resource*>(client, resource));
-        return resource;
-    }
-
-    void tws_tvsrv::init(struct ::wl_display *display, int version)
-    {
-        m_global = wl_global_create(display, &::tws_tvsrv_interface, version, this, bind_func);
-        m_globalVersion = version;
-        m_displayDestroyedListener.notify = tws_tvsrv::display_destroy_func;
-        m_displayDestroyedListener.parent = this;
-        wl_display_add_destroy_listener(display, &m_displayDestroyedListener);
-    }
-
-    const struct wl_interface *tws_tvsrv::interface()
-    {
-        return &::tws_tvsrv_interface;
-    }
-
-    tws_tvsrv::Resource *tws_tvsrv::tws_tvsrv_allocate()
-    {
-        return new Resource;
-    }
-
-    void tws_tvsrv::tws_tvsrv_bind_resource(Resource *)
-    {
-    }
-
-    void tws_tvsrv::tws_tvsrv_destroy_resource(Resource *)
-    {
-    }
-
-    void tws_tvsrv::bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id)
-    {
-        tws_tvsrv *that = static_cast<tws_tvsrv *>(data);
-        that->add(client, id, std::min(that->m_globalVersion, version));
-    }
-
-    void tws_tvsrv::display_destroy_func(struct ::wl_listener *listener, void *data)
-    {
-        DS_UNUSED(data);
-        tws_tvsrv *that = static_cast<tws_tvsrv::DisplayDestroyedListener *>(listener)->parent;
-        that->m_global = NULL;
-    }
-
-    void tws_tvsrv::destroy_func(struct ::wl_resource *client_resource)
-    {
-        Resource *resource = Resource::fromResource(client_resource);
-        DS_ASSERT(resource);
-        tws_tvsrv *that = resource->tws_tvsrv_object;
-        that->m_resource_map.erase(resource->client());
-        that->tws_tvsrv_destroy_resource(resource);
-        delete resource;
-    }
-
-    tws_tvsrv::Resource *tws_tvsrv::bind(struct ::wl_client *client, uint32_t id, int version)
-    {
-        DS_ASSERT_X(!wl_client_get_object(client, id), "DSWaylandObject bind", "binding to object %u more than once", id);
-        struct ::wl_resource *handle = wl_resource_create(client, &::tws_tvsrv_interface, version, id);
-        return bind(handle);
-    }
-
-    tws_tvsrv::Resource *tws_tvsrv::bind(struct ::wl_resource *handle)
-    {
-        Resource *resource = tws_tvsrv_allocate();
-        resource->tws_tvsrv_object = this;
-
-        wl_resource_set_implementation(handle, &m_tws_tvsrv_interface, resource, destroy_func);
-        resource->handle = handle;
-        tws_tvsrv_bind_resource(resource);
-        return resource;
-    }
-    tws_tvsrv::Resource *tws_tvsrv::Resource::fromResource(struct ::wl_resource *resource)
-    {
-        if (DS_UNLIKELY(!resource))
-            return NULL;
-        if (wl_resource_instance_of(resource, &::tws_tvsrv_interface, &m_tws_tvsrv_interface))
-            return static_cast<Resource *>(wl_resource_get_user_data(resource));
-        return NULL;
-    }
-
-    const struct ::tws_tvsrv_interface tws_tvsrv::m_tws_tvsrv_interface = {
-        tws_tvsrv::handle_release,
-        tws_tvsrv::handle_bind,
-        tws_tvsrv::handle_unbind
-    };
-
-    void tws_tvsrv::tws_tvsrv_release(Resource *)
-    {
-    }
-
-    void tws_tvsrv::tws_tvsrv_bind(Resource *)
-    {
-    }
-
-    void tws_tvsrv::tws_tvsrv_unbind(Resource *)
-    {
-    }
-
-
-    void tws_tvsrv::handle_release(
-        ::wl_client *client,
-        struct wl_resource *resource)
-    {
-        DS_UNUSED(client);
-        Resource *r = Resource::fromResource(resource);
-        static_cast<tws_tvsrv *>(r->tws_tvsrv_object)->tws_tvsrv_release(
-            r);
-    }
-
-    void tws_tvsrv::handle_bind(
-        ::wl_client *client,
-        struct wl_resource *resource)
-    {
-        DS_UNUSED(client);
-        Resource *r = Resource::fromResource(resource);
-        static_cast<tws_tvsrv *>(r->tws_tvsrv_object)->tws_tvsrv_bind(
-            r);
-    }
-
-    void tws_tvsrv::handle_unbind(
-        ::wl_client *client,
-        struct wl_resource *resource)
-    {
-        DS_UNUSED(client);
-        Resource *r = Resource::fromResource(resource);
-        static_cast<tws_tvsrv *>(r->tws_tvsrv_object)->tws_tvsrv_unbind(
-            r);
-    }
-
     tws_region::tws_region(struct ::wl_client *client, uint32_t id, int version)
         : m_resource_map()
         , m_resource(NULL)
@@ -2062,7 +1841,7 @@ namespace DSWaylandServer {
     {
     }
 
-    void tws_service_screensaver_manager::tws_service_screensaver_manager_state_get(Resource *)
+    void tws_service_screensaver_manager::tws_service_screensaver_manager_state_get(Resource *, uint32_t )
     {
     }
 
@@ -2111,12 +1890,14 @@ namespace DSWaylandServer {
 
     void tws_service_screensaver_manager::handle_state_get(
         ::wl_client *client,
-        struct wl_resource *resource)
+        struct wl_resource *resource,
+        uint32_t state_type)
     {
         DS_UNUSED(client);
         Resource *r = Resource::fromResource(resource);
         static_cast<tws_service_screensaver_manager *>(r->tws_service_screensaver_manager_object)->tws_service_screensaver_manager_state_get(
-            r);
+            r,
+            state_type);
     }
 
     void tws_service_screensaver_manager::send_idle()
@@ -3139,11 +2920,11 @@ namespace DSWaylandServer {
     {
     }
 
-    void tws_softkey::tws_softkey_state_set(Resource *)
+    void tws_softkey::tws_softkey_state_set(Resource *, int32_t , int32_t )
     {
     }
 
-    void tws_softkey::tws_softkey_state_get(Resource *)
+    void tws_softkey::tws_softkey_state_get(Resource *, int32_t )
     {
     }
 
@@ -3190,22 +2971,28 @@ namespace DSWaylandServer {
 
     void tws_softkey::handle_state_set(
         ::wl_client *client,
-        struct wl_resource *resource)
+        struct wl_resource *resource,
+        int32_t type,
+        int32_t val)
     {
         DS_UNUSED(client);
         Resource *r = Resource::fromResource(resource);
         static_cast<tws_softkey *>(r->tws_softkey_object)->tws_softkey_state_set(
-            r);
+            r,
+            type,
+            val);
     }
 
     void tws_softkey::handle_state_get(
         ::wl_client *client,
-        struct wl_resource *resource)
+        struct wl_resource *resource,
+        int32_t type)
     {
         DS_UNUSED(client);
         Resource *r = Resource::fromResource(resource);
         static_cast<tws_softkey *>(r->tws_softkey_object)->tws_softkey_state_get(
-            r);
+            r,
+            type);
     }
 
     void tws_softkey::send_support_check_done(int32_t support)
index 3b94e6c..0d347b8 100644 (file)
@@ -95,7 +95,6 @@ namespace DSWaylandServer {
         virtual void tizen_ws_shell_service_create(Resource *resource, uint32_t id, uint32_t win, const std::string &name);
         virtual void tizen_ws_shell_region_create(Resource *resource, uint32_t id);
         virtual void tizen_ws_shell_quickpanel_get(Resource *resource, uint32_t id, uint32_t win);
-        virtual void tizen_ws_shell_tvsrv_get(Resource *resource, uint32_t id, uint32_t win);
         virtual void tizen_ws_shell_extension_get(Resource *resource, uint32_t id, const std::string &name);
         virtual void tizen_ws_shell_softkey_get(Resource *resource, uint32_t id, uint32_t win);
         virtual void tizen_ws_shell_shared_widget_launch_get(Resource *resource, uint32_t id, uint32_t win);
@@ -128,11 +127,6 @@ namespace DSWaylandServer {
             struct wl_resource *resource,
             uint32_t id,
             uint32_t win);
-        static void handle_tvsrv_get(
-            ::wl_client *client,
-            struct wl_resource *resource,
-            uint32_t id,
-            uint32_t win);
         static void handle_extension_get(
             ::wl_client *client,
             struct wl_resource *resource,
@@ -236,6 +230,7 @@ namespace DSWaylandServer {
             type_value_unknown = 0,
             type_value_system_default = 1,
             type_value_context_menu = 2,
+            type_value_apps_menu = 3,
         };
 
         void send_state_get_done(int32_t type, int32_t value, uint32_t error_state);
@@ -307,99 +302,6 @@ namespace DSWaylandServer {
         DisplayDestroyedListener m_displayDestroyedListener;
     };
 
-    class  tws_tvsrv
-    {
-    public:
-        tws_tvsrv(struct ::wl_client *client, uint32_t id, int version);
-        tws_tvsrv(struct ::wl_display *display, int version);
-        tws_tvsrv(struct ::wl_resource *resource);
-        tws_tvsrv();
-
-        virtual ~tws_tvsrv();
-
-        class Resource
-        {
-        public:
-            Resource() : tws_tvsrv_object(NULL), handle(NULL) {}
-            virtual ~Resource() {}
-
-            tws_tvsrv *tws_tvsrv_object;
-            tws_tvsrv *object() { return tws_tvsrv_object; } 
-            struct ::wl_resource *handle;
-
-            struct ::wl_client *client() const { return wl_resource_get_client(handle); }
-            int version() const { return wl_resource_get_version(handle); }
-
-            static Resource *fromResource(struct ::wl_resource *resource);
-        };
-
-        void init(struct ::wl_client *client, uint32_t id, int version);
-        void init(struct ::wl_display *display, int version);
-        void init(struct ::wl_resource *resource);
-
-        Resource *add(struct ::wl_client *client, int version);
-        Resource *add(struct ::wl_client *client, uint32_t id, int version);
-        Resource *add(struct wl_list *resource_list, struct ::wl_client *client, uint32_t id, int version);
-
-        Resource *resource() { return m_resource; }
-        const Resource *resource() const { return m_resource; }
-
-        std::multimap<struct ::wl_client*, Resource*> resourceMap() { return m_resource_map; }
-        const std::multimap<struct ::wl_client*, Resource*> resourceMap() const { return m_resource_map; }
-
-        bool isGlobal() const { return m_global != NULL; }
-        bool isResource() const { return m_resource != NULL; }
-
-        static const struct ::wl_interface *interface();
-        static std::string interfaceName() { return interface()->name; }
-        static int interfaceVersion() { return interface()->version; }
-
-
-        enum error {
-            error_request_rejected = 0, // given request is denied
-        };
-
-    protected:
-        virtual Resource *tws_tvsrv_allocate();
-
-        virtual void tws_tvsrv_bind_resource(Resource *resource);
-        virtual void tws_tvsrv_destroy_resource(Resource *resource);
-
-        virtual void tws_tvsrv_release(Resource *resource);
-        virtual void tws_tvsrv_bind(Resource *resource);
-        virtual void tws_tvsrv_unbind(Resource *resource);
-
-    private:
-        static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
-        static void destroy_func(struct ::wl_resource *client_resource);
-        static void display_destroy_func(struct ::wl_listener *listener, void *data);
-
-        Resource *bind(struct ::wl_client *client, uint32_t id, int version);
-        Resource *bind(struct ::wl_resource *handle);
-
-        static const struct ::tws_tvsrv_interface m_tws_tvsrv_interface;
-
-        static void handle_release(
-            ::wl_client *client,
-            struct wl_resource *resource);
-        static void handle_bind(
-            ::wl_client *client,
-            struct wl_resource *resource);
-        static void handle_unbind(
-            ::wl_client *client,
-            struct wl_resource *resource);
-
-        std::multimap<struct ::wl_client*, Resource*> m_resource_map;
-        Resource *m_resource;
-        struct ::wl_global *m_global;
-        uint32_t m_globalVersion;
-        struct DisplayDestroyedListener : ::wl_listener {
-            tws_tvsrv *parent;
-            DisplayDestroyedListener(): parent(NULL) {}
-        };
-        DisplayDestroyedListener m_displayDestroyedListener;
-    };
-
     class  tws_region
     {
     public:
@@ -893,7 +795,7 @@ namespace DSWaylandServer {
         virtual void tws_service_screensaver_manager_enable(Resource *resource);
         virtual void tws_service_screensaver_manager_disable(Resource *resource);
         virtual void tws_service_screensaver_manager_idle_time_set(Resource *resource, uint32_t id);
-        virtual void tws_service_screensaver_manager_state_get(Resource *resource);
+        virtual void tws_service_screensaver_manager_state_get(Resource *resource, uint32_t state_type);
 
     private:
         static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
@@ -920,7 +822,8 @@ namespace DSWaylandServer {
             uint32_t id);
         static void handle_state_get(
             ::wl_client *client,
-            struct wl_resource *resource);
+            struct wl_resource *resource,
+            uint32_t state_type);
 
         std::multimap<struct ::wl_client*, Resource*> m_resource_map;
         Resource *m_resource;
@@ -1382,8 +1285,8 @@ namespace DSWaylandServer {
         virtual void tws_softkey_support_check(Resource *resource);
         virtual void tws_softkey_show(Resource *resource);
         virtual void tws_softkey_hide(Resource *resource);
-        virtual void tws_softkey_state_set(Resource *resource);
-        virtual void tws_softkey_state_get(Resource *resource);
+        virtual void tws_softkey_state_set(Resource *resource, int32_t type, int32_t val);
+        virtual void tws_softkey_state_get(Resource *resource, int32_t type);
 
     private:
         static void bind_func(struct ::wl_client *client, void *data, uint32_t version, uint32_t id);
@@ -1409,10 +1312,13 @@ namespace DSWaylandServer {
             struct wl_resource *resource);
         static void handle_state_set(
             ::wl_client *client,
-            struct wl_resource *resource);
+            struct wl_resource *resource,
+            int32_t type,
+            int32_t val);
         static void handle_state_get(
             ::wl_client *client,
-            struct wl_resource *resource);
+            struct wl_resource *resource,
+            int32_t type);
 
         std::multimap<struct ::wl_client*, Resource*> m_resource_map;
         Resource *m_resource;
index 0cdfa52..4bf6c30 100644 (file)
@@ -1300,6 +1300,7 @@ namespace DSWaylandServer {
         enum error {
             error_invalid_scale = 0, // buffer scale value is invalid
             error_invalid_transform = 1, // buffer transform value is invalid
+            error_invalid_size = 2, // buffer size is invalid
         };
 
         void send_enter(struct ::wl_resource *output);
@@ -1446,6 +1447,10 @@ namespace DSWaylandServer {
             capability_touch = 4, // the seat has touch devices
         };
 
+        enum error {
+            error_missing_capability = 0, // get_pointer, get_keyboard or get_touch called on seat without the matching capability
+        };
+
         void send_capabilities(uint32_t capabilities);
         void send_capabilities(struct ::wl_resource *resource, uint32_t capabilities);
         void send_name(const std::string &name);