From c61fe1bf36fa5c47db79af85e47d654254a86d6f Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Thu, 29 May 2025 21:10:57 +0900 Subject: [PATCH] e_tizen_wl_shell: make e_tizen_wl_shell_screensaver.c file Move the screensaver impelementation to this e_tizen_ws_shell_screensaver.c file. Change-Id: Id684801812d9f29d32cddc82eb29f697ae2475f3 --- src/bin/Makefile.mk | 1 + src/bin/meson.build | 1 + src/bin/server/e_tizen_ws_shell_manager.c | 32 ++++++++-------- .../server/e_tizen_ws_shell_srv_screensaver.c | 38 +++++++++++++++++++ .../e_tizen_ws_shell_srv_screensaver_intern.h | 9 +++++ 5 files changed, 64 insertions(+), 17 deletions(-) create mode 100644 src/bin/server/e_tizen_ws_shell_srv_screensaver.c create mode 100644 src/bin/server/e_tizen_ws_shell_srv_screensaver_intern.h diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index 023b8ea111..51c332efee 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -210,6 +210,7 @@ src/bin/server/e_tizen_ws_shell_srv_cbhm.c \ src/bin/server/e_tizen_ws_shell_srv_indicator.c \ src/bin/server/e_tizen_ws_shell_srv_quickpanel.c \ src/bin/server/e_tizen_ws_shell_srv_screensaver_manager.c \ +src/bin/server/e_tizen_ws_shell_srv_screensaver.c \ src/bin/server/e_tizen_indicator.c \ src/bin/server/e_tizen_clipboard.c \ src/bin/server/e_surface_view.c \ diff --git a/src/bin/meson.build b/src/bin/meson.build index 168bc31073..9032f6a964 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -214,6 +214,7 @@ e_sources = [ 'server/e_tizen_ws_shell_srv_indicator.c', 'server/e_tizen_ws_shell_srv_quickpanel.c', 'server/e_tizen_ws_shell_srv_screensaver_manager.c', + 'server/e_tizen_ws_shell_srv_screensaver.c', 'server/e_tizen_indicator.c', 'server/e_tizen_clipboard.c', 'server/e_surface_view.c', diff --git a/src/bin/server/e_tizen_ws_shell_manager.c b/src/bin/server/e_tizen_ws_shell_manager.c index eb5eb73c9b..afaf11b076 100644 --- a/src/bin/server/e_tizen_ws_shell_manager.c +++ b/src/bin/server/e_tizen_ws_shell_manager.c @@ -19,6 +19,7 @@ #include "e_tizen_ws_shell_srv_indicator_intern.h" #include "e_tizen_ws_shell_srv_quickpanel_intern.h" #include "e_tizen_ws_shell_srv_screensaver_manager_intern.h" +#include "e_tizen_ws_shell_srv_screensaver_intern.h" #include @@ -827,23 +828,10 @@ _tzsh_srv_iface_cb_magnifier_get(struct wl_client *client, struct wl_resource *r wl_resource_set_implementation(res, &_tzsh_srv_magnifier_iface, tzsh_srv, NULL); } -////////////////////////////////////////////////////////////////////////////////////////////////////// -static void -_tzsh_srv_scrsaver_cb_release(struct wl_client *client EINA_UNUSED, struct wl_resource *resource) -{ - wl_resource_destroy(resource); -} - -static const struct tws_service_screensaver_interface _tzsh_srv_scrsaver_iface = -{ - _tzsh_srv_scrsaver_cb_release -}; - static void _tzsh_srv_iface_cb_scrsaver_get(struct wl_client *client, struct wl_resource *res_tzsh_srv, uint32_t id) { E_Tizen_Ws_Shell_Srv *tzsh_srv; - struct wl_resource *res; tzsh_srv = wl_resource_get_user_data(res_tzsh_srv); EINA_SAFETY_ON_NULL_RETURN(tzsh_srv); @@ -851,14 +839,24 @@ _tzsh_srv_iface_cb_scrsaver_get(struct wl_client *client, struct wl_resource *re if (!eina_list_data_find(g_tizen_ws_shell_mgr->tzsh_srvs, tzsh_srv)) return; - res = wl_resource_create(client, &tws_service_screensaver_interface, 1, id); - if (!res) + if (tzsh_srv->role != TZSH_SRV_ROLE_SCREENSAVER) { - wl_client_post_no_memory(client); + ERR("Could not find screensaver service"); + tizen_ws_shell_send_error(res_tzsh_srv, + TIZEN_WS_SHELL_ERROR_NO_SERVICE); return; } - wl_resource_set_implementation(res, &_tzsh_srv_scrsaver_iface, tzsh_srv, NULL); + tzsh_srv->client = client; + tzsh_srv->id = id; + + if (!e_tizen_ws_shell_srv_screensaver_init(tzsh_srv)) + { + ERR("e_tizen_ws_shell_srv_screensaver_init() failed."); + tizen_ws_shell_send_error(res_tzsh_srv, + TIZEN_WS_SHELL_ERROR_NOT_SUPPORTED); + return; + } } static void diff --git a/src/bin/server/e_tizen_ws_shell_srv_screensaver.c b/src/bin/server/e_tizen_ws_shell_srv_screensaver.c new file mode 100644 index 0000000000..0f2ed2f594 --- /dev/null +++ b/src/bin/server/e_tizen_ws_shell_srv_screensaver.c @@ -0,0 +1,38 @@ +#include "e_tizen_ws_shell_srv_screensaver_intern.h" + +#include + +static void +_tzsh_srv_scrsaver_cb_release(struct wl_client *client EINA_UNUSED, struct wl_resource *resource) +{ + wl_resource_destroy(resource); +} + +static const struct tws_service_screensaver_interface _tzsh_srv_scrsaver_iface = +{ + _tzsh_srv_scrsaver_cb_release +}; + +EINTERN Eina_Bool +e_tizen_ws_shell_srv_screensaver_init(E_Tizen_Ws_Shell_Srv *tzsh_srv) +{ + struct wl_client *client; + struct wl_resource *res; + uint32_t id; + + EINA_SAFETY_ON_NULL_RETURN_VAL(tzsh_srv, EINA_FALSE); + + client = tzsh_srv->client; + id = tzsh_srv->id; + + res = wl_resource_create(client, &tws_service_screensaver_interface, 1, id); + if (!res) + { + wl_client_post_no_memory(client); + return EINA_FALSE; + } + + wl_resource_set_implementation(res, &_tzsh_srv_scrsaver_iface, tzsh_srv, NULL); + + return EINA_TRUE; +} diff --git a/src/bin/server/e_tizen_ws_shell_srv_screensaver_intern.h b/src/bin/server/e_tizen_ws_shell_srv_screensaver_intern.h new file mode 100644 index 0000000000..6c24c44d9a --- /dev/null +++ b/src/bin/server/e_tizen_ws_shell_srv_screensaver_intern.h @@ -0,0 +1,9 @@ +#ifndef E_TIZEN_WS_SHELL_SRV_SCREENSAVER_INTERN_H +#define E_TIZEN_WS_SHELL_SRV_SCREENSAVER_INTERN_H + +#include "e_intern.h" +#include "e_tizen_ws_shell_manager_intern.h" + +EINTERN Eina_Bool e_tizen_ws_shell_srv_screensaver_init(E_Tizen_Ws_Shell_Srv *tzsh_srv); + +#endif -- 2.34.1