summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2020-02-19 17:30:25 +0900
committerhyunho <hhstark.kang@samsung.com>2020-02-19 18:49:40 +0900
commite9235adf15997c2b3bffafd0babbad6fab54eea4 (patch)
tree4f458c68a17a21d304cc8dfeedbfd737d10bb695
parentfab4e81582c849ba2ec96826acae9389a1302142 (diff)
downloadmedia-key-e9235adf15997c2b3bffafd0babbad6fab54eea4.tar.gz
media-key-e9235adf15997c2b3bffafd0babbad6fab54eea4.tar.bz2
media-key-e9235adf15997c2b3bffafd0babbad6fab54eea4.zip
Remove disconnecting wayland connection
Change-Id: I0fe82d2768f20ddce37f46d80657c4a3b2256916 Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--src/media_key.c59
1 files changed, 24 insertions, 35 deletions
diff --git a/src/media_key.c b/src/media_key.c
index 88cb176..6a901da 100644
--- a/src/media_key.c
+++ b/src/media_key.c
@@ -53,10 +53,9 @@ struct key_map media_keys[] = {
static media_key_event_cb _media_key_event_cb;
static void *_media_key_data;
static int _media_key_initialized;
-static Ecore_Wl2_Display *_wl2_dpy;
-static Ecore_Event_Handler *media_key_up;
-static Ecore_Event_Handler *media_key_down;
+static Ecore_Event_Handler *_media_key_up;
+static Ecore_Event_Handler *_media_key_down;
static int _media_key_init(void)
{
@@ -64,8 +63,7 @@ static int _media_key_init(void)
return 0;
ecore_wl2_init();
- _wl2_dpy = ecore_wl2_display_connect(NULL);
- if (!_wl2_dpy) {
+ if (!ecore_wl2_display_connect(NULL)) {
LOGE("Failed to connect to wl2 display");
ecore_wl2_shutdown();
return -1;
@@ -76,16 +74,6 @@ static int _media_key_init(void)
return 0;
}
-static void _media_key_fini(void)
-{
- if (_wl2_dpy) {
- ecore_wl2_display_disconnect(_wl2_dpy);
- _wl2_dpy = NULL;
- }
- ecore_wl2_shutdown();
- _media_key_initialized = 0;
-}
-
static void _media_key_handler(const char *key_str, media_key_e event)
{
int i;
@@ -181,24 +169,27 @@ int media_key_reserve(media_key_event_cb callback, void *user_data)
return MEDIA_KEY_ERROR_OPERATION_FAILED;
}
+ _media_key_event_cb = callback;
+ _media_key_data = user_data;
+ if (_media_key_down) {
+ LOGI("ecore event andler already added, just update callback");
+ return MEDIA_KEY_ERROR_NONE;
+ }
+
ret = _grab_media_key();
if (ret) {
LOGE("reserve media key error [%d]", ret);
return MEDIA_KEY_ERROR_OPERATION_FAILED;
}
- media_key_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _media_key_press_cb, NULL);
- if (!media_key_down)
+ _media_key_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _media_key_press_cb, NULL);
+ if (!_media_key_down)
LOGE("failed to register key down event handler");
-
- media_key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _media_key_release_cb, NULL);
- if (!media_key_down)
+ _media_key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _media_key_release_cb, NULL);
+ if (!_media_key_up)
LOGE("failed to register key up event handler");
- _media_key_event_cb = callback;
- _media_key_data = user_data;
-
return MEDIA_KEY_ERROR_NONE;
}
@@ -212,22 +203,20 @@ int media_key_release(void)
return MEDIA_KEY_ERROR_NONE;
}
- ret = _ungrab_media_key();
- if (ret) {
- LOGE("release media key error [%d]", ret);
- return MEDIA_KEY_ERROR_OPERATION_FAILED;
+ if (_media_key_down) {
+ ecore_event_handler_del(_media_key_down);
+ _media_key_down = NULL;
}
- _media_key_fini();
-
- if (media_key_down) {
- ecore_event_handler_del(media_key_down);
- media_key_down = NULL;
+ if (_media_key_up) {
+ ecore_event_handler_del(_media_key_up);
+ _media_key_up = NULL;
}
- if (media_key_up) {
- ecore_event_handler_del(media_key_up);
- media_key_up = NULL;
+ ret = _ungrab_media_key();
+ if (ret) {
+ LOGE("release media key error [%d]", ret);
+ return MEDIA_KEY_ERROR_OPERATION_FAILED;
}
_media_key_event_cb = NULL;