#include "e_screensaver_intern.h"
#include "e_security_intern.h"
#include "e_privilege_intern.h"
-#include "e_magnifier_intern.h"
#include "e_config_intern.h"
#include "e_tizen_ws_shell_srv_cbhm_intern.h"
#include "e_tizen_ws_shell_srv_indicator_intern.h"
#include "e_tizen_ws_shell_srv_screensaver_manager_intern.h"
#include "e_tizen_ws_shell_srv_screensaver_intern.h"
#include "e_tizen_ws_shell_srv_softkey_intern.h"
+#include "e_tizen_ws_shell_srv_magnifier_intern.h"
#include <tzsh_server.h>
}
}
-static void
-_tzsh_srv_magnifier_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_resource *resource)
-{
- wl_resource_destroy(resource);
-}
-
-static void
-_tzsh_srv_magnifier_cb_zoom_geometry_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t angle, int32_t x, int32_t y, uint32_t w, uint32_t h)
-{
- E_Tizen_Ws_Shell_Srv *tzsh_srv;
- E_Client *ec;
-
- tzsh_srv = wl_resource_get_user_data(resource);
-
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv);
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->ec);
-
- ELOGF("TZSH", "[MAGNIFIER] Set Geometry. angle:%d, geo:%d,%d,%dx%d", tzsh_srv->ec, angle, x, y, w, h);
-
- ec = tzsh_srv->ec;
- // angle: 0, 90, 180, 270
- e_magnifier_zoom_obj_geometry_set(ec, angle, x, y, w, h);
-}
-
-static void
-_tzsh_srv_magnifier_cb_ratio_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, int32_t ratio)
-{
- E_Tizen_Ws_Shell_Srv *tzsh_srv;
- E_Client *ec;
-
- tzsh_srv = wl_resource_get_user_data(resource);
-
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv);
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->ec);
-
- ELOGF("TZSH", "[MAGNIFIER] Set Ratio. ratio:%d", tzsh_srv->ec, ratio);
-
- ec = tzsh_srv->ec;
- // ratio : 100 ~ 200 (each 10)
- e_magnifier_zoom_obj_ratio_set(ec, ratio);
-}
-
-static void
-_tzsh_srv_magnifier_cb_enable_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, int32_t enable)
-{
- E_Tizen_Ws_Shell_Srv *tzsh_srv;
- E_Client *ec;
-
- tzsh_srv = wl_resource_get_user_data(resource);
-
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv);
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
- EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->ec);
-
- ELOGF("TZSH", "[MAGNIFIER] Set Enable. enable:%d", tzsh_srv->ec, enable);
-
- ec = tzsh_srv->ec;
-
- if (enable)
- e_magnifier_show(ec);
- else
- e_magnifier_hide(ec);
-}
-
-static const struct tws_service_magnifier_interface _tzsh_srv_magnifier_iface =
-{
- _tzsh_srv_magnifier_cb_destroy,
- _tzsh_srv_magnifier_cb_zoom_geometry_set,
- _tzsh_srv_magnifier_cb_ratio_set,
- _tzsh_srv_magnifier_cb_enable_set,
-};
-
static void
_tzsh_srv_iface_cb_magnifier_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);
if (!eina_list_data_find(g_tizen_ws_shell_mgr->tzsh_srvs, tzsh_srv))
return;
- res = wl_resource_create(client, &tws_service_magnifier_interface, 1, id);
- if (!res)
+ if (tzsh_srv->role != TZSH_SRV_ROLE_MAGNIFIER)
{
- wl_client_post_no_memory(client);
+ ERR("Could not find magnifier service");
+ tizen_ws_shell_send_error(res_tzsh_srv,
+ TIZEN_WS_SHELL_ERROR_NO_SERVICE);
return;
}
- ELOGF("TZSH", "[MAGNIFIER] resource created. res:%p, res_tzsh_srv:%p, id:%d", NULL, res, res_tzsh_srv, id);
- wl_resource_set_implementation(res, &_tzsh_srv_magnifier_iface, tzsh_srv, NULL);
+ tzsh_srv->client = client;
+ tzsh_srv->id = id;
+
+ if (!e_tizen_ws_shell_srv_magnifier_init(tzsh_srv))
+ {
+ ERR("e_tizen_ws_shell_srv_magnifier_init() failed.");
+ tizen_ws_shell_send_error(res_tzsh_srv,
+ TIZEN_WS_SHELL_ERROR_NOT_SUPPORTED);
+ return;
+ }
}
static void
--- /dev/null
+#include "e_tizen_ws_shell_srv_magnifier_intern.h"
+#include "e_magnifier_intern.h"
+
+#include <tzsh_server.h>
+
+static void
+_tzsh_srv_magnifier_cb_destroy(struct wl_client *client EINA_UNUSED, struct wl_resource *resource)
+{
+ wl_resource_destroy(resource);
+}
+
+static void
+_tzsh_srv_magnifier_cb_zoom_geometry_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t angle, int32_t x, int32_t y, uint32_t w, uint32_t h)
+{
+ E_Tizen_Ws_Shell_Srv *tzsh_srv;
+ E_Client *ec;
+
+ tzsh_srv = wl_resource_get_user_data(resource);
+
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv);
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->ec);
+
+ ELOGF("TZSH", "[MAGNIFIER] Set Geometry. angle:%d, geo:%d,%d,%dx%d", tzsh_srv->ec, angle, x, y, w, h);
+
+ ec = tzsh_srv->ec;
+ // angle: 0, 90, 180, 270
+ e_magnifier_zoom_obj_geometry_set(ec, angle, x, y, w, h);
+}
+
+static void
+_tzsh_srv_magnifier_cb_ratio_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, int32_t ratio)
+{
+ E_Tizen_Ws_Shell_Srv *tzsh_srv;
+ E_Client *ec;
+
+ tzsh_srv = wl_resource_get_user_data(resource);
+
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv);
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->ec);
+
+ ELOGF("TZSH", "[MAGNIFIER] Set Ratio. ratio:%d", tzsh_srv->ec, ratio);
+
+ ec = tzsh_srv->ec;
+ // ratio : 100 ~ 200 (each 10)
+ e_magnifier_zoom_obj_ratio_set(ec, ratio);
+}
+
+static void
+_tzsh_srv_magnifier_cb_enable_set(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, int32_t enable)
+{
+ E_Tizen_Ws_Shell_Srv *tzsh_srv;
+ E_Client *ec;
+
+ tzsh_srv = wl_resource_get_user_data(resource);
+
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv);
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->tzsh);
+ EINA_SAFETY_ON_NULL_RETURN(tzsh_srv->ec);
+
+ ELOGF("TZSH", "[MAGNIFIER] Set Enable. enable:%d", tzsh_srv->ec, enable);
+
+ ec = tzsh_srv->ec;
+
+ if (enable)
+ e_magnifier_show(ec);
+ else
+ e_magnifier_hide(ec);
+}
+
+static const struct tws_service_magnifier_interface _tzsh_srv_magnifier_iface =
+{
+ _tzsh_srv_magnifier_cb_destroy,
+ _tzsh_srv_magnifier_cb_zoom_geometry_set,
+ _tzsh_srv_magnifier_cb_ratio_set,
+ _tzsh_srv_magnifier_cb_enable_set,
+};
+
+EINTERN Eina_Bool
+e_tizen_ws_shell_srv_magnifier_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_magnifier_interface, 1, id);
+ if (!res)
+ {
+ wl_client_post_no_memory(client);
+ return EINA_FALSE;
+ }
+
+ wl_resource_set_implementation(res, &_tzsh_srv_magnifier_iface, tzsh_srv, NULL);
+
+ ELOGF("TZSH", "[MAGNIFIER] resource created. res:%p, id:%d", NULL, res, id);
+
+ return EINA_TRUE;
+}