diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2020-02-19 17:30:25 +0900 |
---|---|---|
committer | hyunho <hhstark.kang@samsung.com> | 2020-02-19 18:49:40 +0900 |
commit | e9235adf15997c2b3bffafd0babbad6fab54eea4 (patch) | |
tree | 4f458c68a17a21d304cc8dfeedbfd737d10bb695 | |
parent | fab4e81582c849ba2ec96826acae9389a1302142 (diff) | |
download | media-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.c | 59 |
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; |