struct
{
Eina_Bool init;
- int ref_count;
-
struct wl_display *dpy;
- struct wl_registry *reg;
-
struct wl_event_queue *queue;
struct
{
struct tizen_input_device_manager *devicemgr;
int request_notified;
- Eina_List *device_list;
} devmgr;
struct
{
{
{
EINA_FALSE,
- 0,
- NULL, NULL, NULL,
+ NULL, NULL,
{ NULL, NULL, NULL }, /* tizen_policy protocol */
{ NULL, NULL, NULL, NULL, NULL, 0 }, /* screenshooter protocol */
{ NULL, -1 } /* tizen_input_device_manager protocol */
static Eina_List *_cb_info_list_get(int idx);
static Efl_Util_Callback_Info *_cb_info_find_by_win(Evas_Object *win, int idx);
static Eina_Bool _wl_init(void);
-static void _wl_shutdown(void);
-
static void _cb_wl_reg_global(void *data, struct wl_registry *reg, unsigned int name, const char *interface, unsigned int version);
static void _cb_wl_reg_global_remove(void *data, struct wl_registry *reg, unsigned int name);
static void _cb_wl_reg_screenshooter_global(void *data, struct wl_registry *reg, unsigned int name, const char *interface, unsigned int version);
static Eina_Bool
_wl_init(void)
{
- _eflutil.wl.ref_count++;
+ struct wl_registry *reg = NULL;
if (_eflutil.wl.init) return EINA_TRUE;
_eflutil.wl.queue = wl_display_create_queue(_eflutil.wl.dpy);
EINA_SAFETY_ON_NULL_GOTO(_eflutil.wl.queue, fail);
- _eflutil.wl.reg = wl_display_get_registry(_eflutil.wl.dpy);
- EINA_SAFETY_ON_NULL_GOTO(_eflutil.wl.reg, fail);
+ reg = wl_display_get_registry(_eflutil.wl.dpy);
+ EINA_SAFETY_ON_NULL_GOTO(reg, fail);
- wl_proxy_set_queue((struct wl_proxy*)_eflutil.wl.reg, _eflutil.wl.queue);
- wl_registry_add_listener(_eflutil.wl.reg, &_wl_reg_listener, NULL);
+ wl_proxy_set_queue((struct wl_proxy*)reg, _eflutil.wl.queue);
+ wl_registry_add_listener(reg, &_wl_reg_listener, NULL);
_eflutil.wl.init = EINA_TRUE;
_eflutil.wl.queue = NULL;
}
- if (_eflutil.wl.reg)
- {
- wl_registry_destroy(_eflutil.wl.reg);
- _eflutil.wl.reg = NULL;
- }
-
- _eflutil.wl.dpy = NULL;
-
ecore_wl_shutdown();
return EINA_FALSE;
}
static void
-_wl_shutdown(void)
-{
- Eina_List *l, *ll;
- struct tizen_input_device *data;
- Efl_Util_Wl_Output_Info *output;
-
- if (!_eflutil.wl.init) return;
-
- _eflutil.wl.ref_count--;
- if (_eflutil.wl.ref_count > 0)
- return;
-
- // tizen_policy
- if (_eflutil.wl.policy.proto)
- tizen_policy_destroy(_eflutil.wl.policy.proto);
- _eflutil.wl.policy.proto = NULL;
-
- eina_hash_free(_eflutil.wl.policy.hash_noti_lv);
- _eflutil.wl.policy.hash_noti_lv = NULL;
- eina_hash_free(_eflutil.wl.policy.hash_scr_mode);
- _eflutil.wl.policy.hash_scr_mode = NULL;
-
- // wl_output
- if (_eflutil.wl.shot.output_list)
- {
- EINA_LIST_FREE(_eflutil.wl.shot.output_list, output)
- {
- wl_output_destroy(output->output);
- free(output);
- }
- }
- _eflutil.wl.shot.output_list = NULL;
-
- // screenshooter
- if (_eflutil.wl.shot.screenshooter)
- screenshooter_destroy(_eflutil.wl.shot.screenshooter);
- _eflutil.wl.shot.screenshooter = NULL;
-
- // tizen_input_device_manager
- EINA_LIST_FOREACH_SAFE(_eflutil.wl.devmgr.device_list, l, ll, data)
- {
- tizen_input_device_release(data);
- _eflutil.wl.devmgr.device_list = eina_list_remove_list(_eflutil.wl.devmgr.device_list, l);
- }
- if (_eflutil.wl.devmgr.devicemgr)
- tizen_input_device_manager_destroy(_eflutil.wl.devmgr.devicemgr);
- _eflutil.wl.devmgr.devicemgr = NULL;
-
- // tizen_display_policy
- if (_eflutil.wl.display_policy.proto)
- tizen_display_policy_destroy(_eflutil.wl.display_policy.proto);
- _eflutil.wl.display_policy.proto = NULL;
-
- eina_hash_free(_eflutil.wl.display_policy.hash_brightness);
- _eflutil.wl.display_policy.hash_brightness = NULL;
-
- if (_eflutil.wl.reg)
- {
- wl_proxy_set_queue((struct wl_proxy*)_eflutil.wl.reg, NULL);
- wl_registry_destroy(_eflutil.wl.reg);
- _eflutil.wl.reg = NULL;
- }
-
- if (_eflutil.wl.queue)
- {
- wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- wl_event_queue_destroy(_eflutil.wl.queue);
- _eflutil.wl.queue = NULL;
- }
-
- _eflutil.wl.dpy = NULL;
- _eflutil.wl.init = EINA_FALSE;
-
- ecore_wl_shutdown();
-}
-
-static void
_cb_wl_output_geometry(void *data, struct wl_output *wl_output, int x, int y,
int physical_width, int physical_height, int subpixel,
const char *make, const char *model, int transform)
struct wl_registry *reg,
unsigned int name)
{
- Eina_List *l, *ll;
- struct tizen_input_device *ddata;
- Efl_Util_Wl_Output_Info *output;
-
- // tizen_policy
- if (_eflutil.wl.policy.proto)
- tizen_policy_destroy(_eflutil.wl.policy.proto);
_eflutil.wl.policy.proto = NULL;
-
eina_hash_free(_eflutil.wl.policy.hash_noti_lv);
- _eflutil.wl.policy.hash_noti_lv = NULL;
eina_hash_free(_eflutil.wl.policy.hash_scr_mode);
- _eflutil.wl.policy.hash_scr_mode = NULL;
-
- // wl_output
- if (_eflutil.wl.shot.output_list)
- {
- EINA_LIST_FREE(_eflutil.wl.shot.output_list, output)
- {
- wl_output_destroy(output->output);
- free(output);
- }
- }
- _eflutil.wl.shot.output_list = NULL;
-
- // screenshooter
- if (_eflutil.wl.shot.screenshooter)
- screenshooter_destroy(_eflutil.wl.shot.screenshooter);
- _eflutil.wl.shot.screenshooter = NULL;
-
- // tizen_input_device_manager
- EINA_LIST_FOREACH_SAFE(_eflutil.wl.devmgr.device_list, l, ll, ddata)
- {
- tizen_input_device_release(ddata);
- _eflutil.wl.devmgr.device_list = eina_list_remove_list(_eflutil.wl.devmgr.device_list, l);
- }
- if (_eflutil.wl.devmgr.devicemgr)
- tizen_input_device_manager_destroy(_eflutil.wl.devmgr.devicemgr);
- _eflutil.wl.devmgr.devicemgr = NULL;
- // tizen_display_policy
- if (_eflutil.wl.display_policy.proto)
- tizen_display_policy_destroy(_eflutil.wl.display_policy.proto);
_eflutil.wl.display_policy.proto = NULL;
-
eina_hash_free(_eflutil.wl.display_policy.hash_brightness);
- _eflutil.wl.display_policy.hash_brightness = NULL;
}
/* LCOV_EXCL_STOP */
return;
eina_hash_del(_eflutil.wl.policy.hash_noti_lv, &lv_info->surface, lv_info);
-
- eina_hash_population(_eflutil.wl.policy.hash_noti_lv);
-
- if (eina_hash_population(_eflutil.wl.policy.hash_noti_lv) == 0)
- {
- _wl_shutdown();
- }
-}
-
-static Eina_Bool
-_init_tizen_policy_proto(void)
-{
- int ret = 0;
-
- if (!_eflutil.wl.policy.proto)
- {
- ret = _wl_init();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EINA_FALSE);
-
- ret = 0;
- while (!_eflutil.wl.policy.proto && ret != -1)
- ret = wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
-
- EINA_SAFETY_ON_NULL_RETURN_VAL(_eflutil.wl.policy.proto, EINA_FALSE);
- }
-
- return EINA_TRUE;
}
API int
efl_util_set_notification_window_level(Evas_Object *window,
efl_util_notification_level_e level)
{
- Eina_Bool ret;
- Elm_Win_Type type;
- Ecore_Wl_Window *wlwin;
- struct wl_surface *surface;
- Efl_Util_Wl_Surface_Lv_Info *lv_info;
- Ecore_Wl_Window_Type wl_type;
+ Eina_Bool res;
EINA_SAFETY_ON_NULL_RETURN_VAL(window, EFL_UTIL_ERROR_INVALID_PARAMETER);
EINA_SAFETY_ON_FALSE_RETURN_VAL((level >= EFL_UTIL_NOTIFICATION_LEVEL_NONE) &&
"DEPRECATION WARNING: EFL_UTIL_NOTIFICATION_LEVEL_3 is deprecated and will be removed from next release. Use EFL_UTIL_NOTIFICATION_LEVEL_TOP instead.");
}
+ Elm_Win_Type type;
+ Ecore_Wl_Window *wlwin;
+ struct wl_surface *surface;
+ Efl_Util_Wl_Surface_Lv_Info *lv_info;
+ Ecore_Wl_Window_Type wl_type;
+
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
+
wlwin = elm_win_wl_window_get(window);
EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE);
EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE);
}
- ret = _init_tizen_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
+ while (!_eflutil.wl.policy.proto)
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
surface = ecore_wl_window_surface_get(wlwin);
EINA_SAFETY_ON_NULL_RETURN_VAL(surface,
efl_util_get_notification_window_level(Evas_Object *window,
efl_util_notification_level_e *level)
{
- Eina_Bool ret;
+ Eina_Bool res;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(window, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(level, EFL_UTIL_ERROR_INVALID_PARAMETER);
+
Elm_Win_Type type;
Ecore_Wl_Window *wlwin;
struct wl_surface *surface;
Efl_Util_Wl_Surface_Lv_Info *lv_info;
Ecore_Wl_Window_Type wl_type;
- EINA_SAFETY_ON_NULL_RETURN_VAL(window, EFL_UTIL_ERROR_INVALID_PARAMETER);
- EINA_SAFETY_ON_NULL_RETURN_VAL(level, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
wlwin = elm_win_wl_window_get(window);
EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE);
EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE);
}
+ while (!_eflutil.wl.policy.proto)
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
+
surface = ecore_wl_window_surface_get(wlwin);
EINA_SAFETY_ON_NULL_RETURN_VAL(surface,
EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE);
- ret = _init_tizen_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
-
lv_info = eina_hash_find(_eflutil.wl.policy.hash_noti_lv, &surface);
if (lv_info)
{
efl_util_set_window_opaque_state(Evas_Object *window,
int opaque)
{
- Eina_Bool ret;
- Ecore_Wl_Window *wlwin;
- struct wl_surface *surface;
+ Eina_Bool res;
EINA_SAFETY_ON_NULL_RETURN_VAL(window, EFL_UTIL_ERROR_INVALID_PARAMETER);
EINA_SAFETY_ON_FALSE_RETURN_VAL(((opaque >= 0) && (opaque <= 1)),
EFL_UTIL_ERROR_INVALID_PARAMETER);
+ Ecore_Wl_Window *wlwin;
+ struct wl_surface *surface;
+
+ if (!_eflutil.wl.policy.proto)
+ {
+ int ret = 0;
+
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
+
+ while (!_eflutil.wl.policy.proto && ret != -1)
+ ret = wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(_eflutil.wl.policy.proto, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ }
+
wlwin = elm_win_wl_window_get(window);
if (!wlwin)
return EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE;
if (!surface)
return EFL_UTIL_ERROR_NOT_SUPPORTED_WINDOW_TYPE;
- ret = _init_tizen_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
-
tizen_policy_set_opaque_state(_eflutil.wl.policy.proto, surface, opaque);
return EFL_UTIL_ERROR_NONE;
Ecore_Wl_Window *wlwin;
struct wl_surface *surface;
Efl_Util_Wl_Surface_Scr_Mode_Info *scr_mode_info;
- Eina_Bool ret;
+ Eina_Bool res;
- wlwin = elm_win_wl_window_get(window);
- EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EFL_UTIL_ERROR_INVALID_PARAMETER);
-
- surface = ecore_wl_window_surface_get(wlwin);
- EINA_SAFETY_ON_NULL_RETURN_VAL(surface, EFL_UTIL_ERROR_INVALID_PARAMETER);
-
- ret = _init_tizen_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
- scr_mode_info = eina_hash_find(_eflutil.wl.policy.hash_scr_mode, &surface);
- if (!scr_mode_info)
+ wlwin = elm_win_wl_window_get(window);
+ if (wlwin)
{
- scr_mode_info = calloc(1, sizeof(Efl_Util_Wl_Surface_Scr_Mode_Info));
- EINA_SAFETY_ON_NULL_RETURN_VAL(scr_mode_info, EFL_UTIL_ERROR_OUT_OF_MEMORY);
+ while (!_eflutil.wl.policy.proto)
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- scr_mode_info->surface = surface;
- scr_mode_info->mode = (unsigned int)mode;
- scr_mode_info->wait_for_done = EINA_TRUE;
- scr_mode_info->state = TIZEN_POLICY_ERROR_STATE_NONE;
+ surface = ecore_wl_window_surface_get(wlwin);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(surface,
+ EFL_UTIL_ERROR_INVALID_PARAMETER);
- eina_hash_add(_eflutil.wl.policy.hash_scr_mode,
- &surface,
- scr_mode_info);
- }
- else
- {
- scr_mode_info->mode = (unsigned int)mode;
- scr_mode_info->wait_for_done = EINA_TRUE;
- scr_mode_info->state = TIZEN_POLICY_ERROR_STATE_NONE;
- }
+ scr_mode_info = eina_hash_find(_eflutil.wl.policy.hash_scr_mode, &surface);
+ if (!scr_mode_info)
+ {
+ scr_mode_info = calloc(1, sizeof(Efl_Util_Wl_Surface_Scr_Mode_Info));
+ EINA_SAFETY_ON_NULL_RETURN_VAL(scr_mode_info, EFL_UTIL_ERROR_OUT_OF_MEMORY);
- tizen_policy_set_window_screen_mode(_eflutil.wl.policy.proto,
- surface, (unsigned int)mode);
- if (scr_mode_info->wait_for_done)
- {
- int count = 0;
- while (scr_mode_info->wait_for_done && (count < 3))
+ scr_mode_info->surface = surface;
+ scr_mode_info->mode = (unsigned int)mode;
+ scr_mode_info->wait_for_done = EINA_TRUE;
+ scr_mode_info->state = TIZEN_POLICY_ERROR_STATE_NONE;
+
+ eina_hash_add(_eflutil.wl.policy.hash_scr_mode,
+ &surface,
+ scr_mode_info);
+ }
+ else
{
- ecore_wl_flush();
- wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- count++;
+ scr_mode_info->mode = (unsigned int)mode;
+ scr_mode_info->wait_for_done = EINA_TRUE;
+ scr_mode_info->state = TIZEN_POLICY_ERROR_STATE_NONE;
}
+ tizen_policy_set_window_screen_mode(_eflutil.wl.policy.proto,
+ surface, (unsigned int)mode);
if (scr_mode_info->wait_for_done)
{
- return EFL_UTIL_ERROR_INVALID_PARAMETER;
- }
- else
- {
- if (scr_mode_info->state == TIZEN_POLICY_ERROR_STATE_PERMISSION_DENIED)
+ int count = 0;
+ while (scr_mode_info->wait_for_done && (count < 3))
{
- return EFL_UTIL_ERROR_PERMISSION_DENIED;
+ ecore_wl_flush();
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
+ count++;
+ }
+
+ if (scr_mode_info->wait_for_done)
+ {
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
+ }
+ else
+ {
+ if (scr_mode_info->state == TIZEN_POLICY_ERROR_STATE_PERMISSION_DENIED)
+ {
+ return EFL_UTIL_ERROR_PERMISSION_DENIED;
+ }
}
}
- }
- return EFL_UTIL_ERROR_NONE;
+ return EFL_UTIL_ERROR_NONE;
+ }
+ else
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
}
API int
Ecore_Wl_Window *wlwin;
struct wl_surface *surface;
Efl_Util_Wl_Surface_Scr_Mode_Info *scr_mode_info;
- Eina_Bool ret;
+ Eina_Bool res;
- wlwin = elm_win_wl_window_get(window);
- EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
- surface = ecore_wl_window_surface_get(wlwin);
- EINA_SAFETY_ON_NULL_RETURN_VAL(surface, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ wlwin = elm_win_wl_window_get(window);
+ if (wlwin)
+ {
+ while (!_eflutil.wl.policy.proto)
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- ret = _init_tizen_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
+ surface = ecore_wl_window_surface_get(wlwin);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(surface,
+ EFL_UTIL_ERROR_INVALID_PARAMETER);
- scr_mode_info = eina_hash_find(_eflutil.wl.policy.hash_scr_mode, &surface);
- if (scr_mode_info)
- {
- if (scr_mode_info->wait_for_done)
+ scr_mode_info = eina_hash_find(_eflutil.wl.policy.hash_scr_mode, &surface);
+ if (scr_mode_info)
{
- while (scr_mode_info->wait_for_done)
+ if (scr_mode_info->wait_for_done)
{
- ecore_wl_flush();
- wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
+ while (scr_mode_info->wait_for_done)
+ {
+ ecore_wl_flush();
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
+ }
}
- }
- switch (scr_mode_info->mode)
+ switch (scr_mode_info->mode)
+ {
+ case TIZEN_POLICY_MODE_DEFAULT: *mode = EFL_UTIL_SCREEN_MODE_DEFAULT; break;
+ case TIZEN_POLICY_MODE_ALWAYS_ON: *mode = EFL_UTIL_SCREEN_MODE_ALWAYS_ON; break;
+ default: *mode = EFL_UTIL_SCREEN_MODE_DEFAULT;
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
+ }
+ return EFL_UTIL_ERROR_NONE;
+ }
+ else
{
- case TIZEN_POLICY_MODE_DEFAULT:
- *mode = EFL_UTIL_SCREEN_MODE_DEFAULT;
- break;
-
- case TIZEN_POLICY_MODE_ALWAYS_ON:
- *mode = EFL_UTIL_SCREEN_MODE_ALWAYS_ON;
- break;
-
- default:
- *mode = EFL_UTIL_SCREEN_MODE_DEFAULT;
- return EFL_UTIL_ERROR_INVALID_PARAMETER;
+ *mode = EFL_UTIL_SCREEN_MODE_DEFAULT;
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
}
-
- return EFL_UTIL_ERROR_NONE;
}
else
- {
- *mode = EFL_UTIL_SCREEN_MODE_DEFAULT;
- return EFL_UTIL_ERROR_INVALID_PARAMETER;
- }
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
}
#ifndef TIZEN_WEARABLE
}
#endif
-static Eina_Bool
-_init_tizen_display_policy_proto(void)
-{
- int ret = 0;
-
- if (!_eflutil.wl.display_policy.proto)
- {
- ret = _wl_init();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EINA_FALSE);
-
- ret = 0;
- while (!_eflutil.wl.display_policy.proto && ret != -1)
- ret = wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
-
- EINA_SAFETY_ON_NULL_RETURN_VAL(_eflutil.wl.display_policy.proto, EINA_FALSE);
- }
-
- return EINA_TRUE;
-}
-
API int
efl_util_set_window_brightness(Evas_Object *window, int brightness)
{
Ecore_Wl_Window *wlwin;
struct wl_surface *surface;
Efl_Util_Wl_Surface_Brightness_Info *brightness_info;
- Eina_Bool ret;
+ Eina_Bool res;
EINA_SAFETY_ON_NULL_RETURN_VAL(window, EFL_UTIL_ERROR_INVALID_PARAMETER);
EINA_SAFETY_ON_FALSE_RETURN_VAL(brightness <= 100, EFL_UTIL_ERROR_INVALID_PARAMETER);
- wlwin = elm_win_wl_window_get(window);
- EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EFL_UTIL_ERROR_INVALID_PARAMETER);
-
- surface = ecore_wl_window_surface_get(wlwin);
- EINA_SAFETY_ON_NULL_RETURN_VAL(surface, EFL_UTIL_ERROR_INVALID_PARAMETER);
-
- ret = _init_tizen_display_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
-
- brightness_info = eina_hash_find(_eflutil.wl.display_policy.hash_brightness, &surface);
- if (!brightness_info)
- {
- brightness_info = calloc(1, sizeof(Efl_Util_Wl_Surface_Brightness_Info));
- EINA_SAFETY_ON_NULL_RETURN_VAL(brightness_info, EFL_UTIL_ERROR_OUT_OF_MEMORY);
-
- brightness_info->surface = surface;
- brightness_info->brightness = brightness;
- brightness_info->wait_for_done = EINA_TRUE;
- brightness_info->state = TIZEN_DISPLAY_POLICY_ERROR_STATE_NONE;
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
- eina_hash_add(_eflutil.wl.display_policy.hash_brightness,
- &surface,
- brightness_info);
- }
- else
+ wlwin = elm_win_wl_window_get(window);
+ if (wlwin)
{
- brightness_info->brightness = brightness;
- brightness_info->wait_for_done = EINA_TRUE;
- brightness_info->state = TIZEN_DISPLAY_POLICY_ERROR_STATE_NONE;
- }
+ while (!_eflutil.wl.display_policy.proto)
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- tizen_display_policy_set_window_brightness(_eflutil.wl.display_policy.proto,
- surface, brightness);
- if (brightness_info->wait_for_done)
- {
- int count = 0;
- while (brightness_info->wait_for_done && (count < 3))
- {
- ecore_wl_flush();
- wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- count++;
- }
+ surface = ecore_wl_window_surface_get(wlwin);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(surface,
+ EFL_UTIL_ERROR_INVALID_PARAMETER);
- if (brightness_info->wait_for_done)
+ brightness_info = eina_hash_find(_eflutil.wl.display_policy.hash_brightness, &surface);
+ if (!brightness_info)
{
- return EFL_UTIL_ERROR_INVALID_PARAMETER;
- }
- else
- {
- if (brightness_info->state == TIZEN_DISPLAY_POLICY_ERROR_STATE_PERMISSION_DENIED)
- {
- return EFL_UTIL_ERROR_PERMISSION_DENIED;
- }
- }
+ brightness_info = calloc(1, sizeof(Efl_Util_Wl_Surface_Brightness_Info));
+ EINA_SAFETY_ON_NULL_RETURN_VAL(brightness_info, EFL_UTIL_ERROR_OUT_OF_MEMORY);
+
+ brightness_info->surface = surface;
+ brightness_info->brightness = brightness;
+ brightness_info->wait_for_done = EINA_TRUE;
+ brightness_info->state = TIZEN_DISPLAY_POLICY_ERROR_STATE_NONE;
+
+ eina_hash_add(_eflutil.wl.display_policy.hash_brightness,
+ &surface,
+ brightness_info);
+ }
+ else
+ {
+ brightness_info->brightness = brightness;
+ brightness_info->wait_for_done = EINA_TRUE;
+ brightness_info->state = TIZEN_DISPLAY_POLICY_ERROR_STATE_NONE;
+ }
+
+ tizen_display_policy_set_window_brightness(_eflutil.wl.display_policy.proto,
+ surface, brightness);
+ if (brightness_info->wait_for_done)
+ {
+ int count = 0;
+ while (brightness_info->wait_for_done && (count < 3))
+ {
+ ecore_wl_flush();
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
+ count++;
+ }
+
+ if (brightness_info->wait_for_done)
+ {
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
+ }
+ else
+ {
+ if (brightness_info->state == TIZEN_DISPLAY_POLICY_ERROR_STATE_PERMISSION_DENIED)
+ {
+ return EFL_UTIL_ERROR_PERMISSION_DENIED;
+ }
+ }
+ }
+ return EFL_UTIL_ERROR_NONE;
}
-
- return EFL_UTIL_ERROR_NONE;
+ else
+ return EFL_UTIL_ERROR_INVALID_PARAMETER;
}
API int
Ecore_Wl_Window *wlwin;
struct wl_surface *surface;
Efl_Util_Wl_Surface_Brightness_Info *brightness_info;
- Eina_Bool ret;
+ Eina_Bool res;
EINA_SAFETY_ON_NULL_RETURN_VAL(window, EFL_UTIL_ERROR_INVALID_PARAMETER);
EINA_SAFETY_ON_NULL_RETURN_VAL(brightness, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ res = _wl_init();
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, EFL_UTIL_ERROR_INVALID_PARAMETER);
+
wlwin = elm_win_wl_window_get(window);
- EINA_SAFETY_ON_NULL_RETURN_VAL(wlwin, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ if (!wlwin) return EFL_UTIL_ERROR_INVALID_PARAMETER;
- surface = ecore_wl_window_surface_get(wlwin);
- EINA_SAFETY_ON_NULL_RETURN_VAL(surface, EFL_UTIL_ERROR_INVALID_PARAMETER);
+ while (!_eflutil.wl.display_policy.proto)
+ wl_display_dispatch_queue(_eflutil.wl.dpy, _eflutil.wl.queue);
- ret = _init_tizen_display_policy_proto();
- EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_UTIL_ERROR_NOT_SUPPORTED);
+ surface = ecore_wl_window_surface_get(wlwin);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(surface,
+ EFL_UTIL_ERROR_INVALID_PARAMETER);
brightness_info = eina_hash_find(_eflutil.wl.display_policy.hash_brightness, &surface);
if (brightness_info)
struct tizen_input_device_manager *tizen_input_device_manager EINA_UNUSED,
uint32_t serial EINA_UNUSED,
const char *identifier EINA_UNUSED,
- struct tizen_input_device *device,
+ struct tizen_input_device *device EINA_UNUSED,
struct wl_seat *seat EINA_UNUSED)
{
- Eina_List *l;
- struct tizen_input_device *ddata;
-
- EINA_LIST_FOREACH(_eflutil.wl.devmgr.device_list, l, ddata)
- {
- if (device == ddata) return;
- }
-
- _eflutil.wl.devmgr.device_list = eina_list_append(_eflutil.wl.devmgr.device_list, device);
+ ;
}
/* LCOV_EXCL_START */
struct tizen_input_device_manager *tizen_input_device_manager EINA_UNUSED,
uint32_t serial EINA_UNUSED,
const char *identifier EINA_UNUSED,
- struct tizen_input_device *device,
+ struct tizen_input_device *device EINA_UNUSED,
struct wl_seat *seat EINA_UNUSED)
{
- Eina_List *l, *ll;
- struct tizen_input_device *ddata;
-
- EINA_LIST_FOREACH_SAFE(_eflutil.wl.devmgr.device_list, l, ll, ddata)
- {
- if (device == ddata)
- {
- _eflutil.wl.devmgr.device_list = eina_list_remove_list(_eflutil.wl.devmgr.device_list, l);
- }
- }
+ ;
}
/* LCOV_EXCL_STOP */
ret = _efl_util_input_convert_input_generator_error(_eflutil.wl.devmgr.request_notified);
_eflutil.wl.devmgr.request_notified = -1;
- _wl_shutdown();
-
return ret;
}
_screenshot_mutex_unlock();
_screenshot_mutex_destory();
- _wl_shutdown();
-
return EFL_UTIL_ERROR_NONE;
}