From: Gwanglim Lee Date: Sat, 25 Jul 2015 07:59:21 +0000 (+0900) Subject: Fix coding conventions and change code simpler. X-Git-Tag: submit/tizen/20150909.054443~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ec02e478e38e8b30fbfc2c87584fcb874568c7d4;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-keyrouter.git Fix coding conventions and change code simpler. Change-Id: I16cc8a25a35ba1aef7b46d91886fbbddf6e04eae --- diff --git a/src/e_mod_keyrouter_list.c b/src/e_mod_keyrouter_list.c index 5e1320b..2ff210c 100644 --- a/src/e_mod_keyrouter_list.c +++ b/src/e_mod_keyrouter_list.c @@ -4,95 +4,58 @@ #include static int _e_keyrouter_find_duplicated_client(E_Client *ec, struct wl_client *wc, uint32_t key, uint32_t mode); +static const char *_mode_str_get(uint32_t mode); -/* Function for adding a new key grab information into the keyrouting list */ +/* add a new key grab info to the list */ int e_keyrouter_set_keygrab_in_list(struct wl_resource *surface, struct wl_client *client, uint32_t key, uint32_t mode) { - E_Pixmap *ep = NULL; + E_Pixmap *cp = NULL; E_Client *ec = NULL; - int res = TIZEN_KEYROUTER_ERROR_NONE; + EINA_SAFETY_ON_FALSE_RETURN_VAL + (((mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE) || + (mode == TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE) || + (mode == TIZEN_KEYROUTER_MODE_TOPMOST) || + (mode == TIZEN_KEYROUTER_MODE_SHARED)), + TIZEN_KEYROUTER_ERROR_INVALID_MODE); + + if (mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE) + { + EINA_SAFETY_ON_TRUE_RETURN_VAL + (krt->HardKeys[key].excl_ptr, + TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY); + } + if (surface) { - if (!(ep = wl_resource_get_user_data(surface))) - { - KLDBG("Surface is valid and e_pixmap pointer from the surface is invalid ! Return error !\n"); - return TIZEN_KEYROUTER_ERROR_INVALID_SURFACE; - } + cp = wl_resource_get_user_data(surface); + EINA_SAFETY_ON_NULL_RETURN_VAL + (cp, TIZEN_KEYROUTER_ERROR_INVALID_SURFACE); - if (!(ec = e_pixmap_client_get(ep))) - { - KLDBG("e_client pointer from e_pixmap pointer from surface is invalid ! Return error !\n"); - return TIZEN_KEYROUTER_ERROR_INVALID_SURFACE; - } + ec = e_pixmap_client_get(cp); + EINA_SAFETY_ON_NULL_RETURN_VAL + (cp, TIZEN_KEYROUTER_ERROR_INVALID_SURFACE); } - switch(mode) + if (mode == TIZEN_KEYROUTER_MODE_TOPMOST) { - case TIZEN_KEYROUTER_MODE_EXCLUSIVE: - if (krt->HardKeys[key].excl_ptr) - { - KLDBG("key(%d) is already exclusive grabbed\n", key); - return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY; - } - if (ec) - { - res = e_keyrouter_prepend_to_keylist(ec, NULL, key, mode); - } - else - { - res = e_keyrouter_prepend_to_keylist(NULL, client, key, mode); - } - CHECK_ERR_VAL(res); - - break; - - case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: - if (ec) - { - res = e_keyrouter_prepend_to_keylist(ec, NULL, key, mode); - } - else - { - res = e_keyrouter_prepend_to_keylist(NULL, client, key, mode); - } - CHECK_ERR_VAL(res); - - KLDBG("Succeed to set keygrab information (E_Client:%p, key:%d, mode:OR_EXCLUSIVE)\n", ec, key); - break; - - case TIZEN_KEYROUTER_MODE_TOPMOST: - res = e_keyrouter_prepend_to_keylist(ec, NULL, key, mode); - CHECK_ERR_VAL(res); - - KLDBG("Succeed to set keygrab information (E_Client:%p, key:%d, mode:TOPMOST)\n", ec, key); - break; - - case TIZEN_KEYROUTER_MODE_SHARED: - if (ec) - { - res = e_keyrouter_prepend_to_keylist(ec, NULL, key, mode); - } - else - { - res = e_keyrouter_prepend_to_keylist(NULL, client, key, mode); - } - CHECK_ERR_VAL(res); - - KLDBG("Succeed to set keygrab information (E_Client:%p, key:%d, mode:SHARED)\n", ec, key); - break; - - default: - KLDBG("Unknown key(%d) grab mode(%d)\n", key, mode); - return TIZEN_KEYROUTER_ERROR_INVALID_MODE; + EINA_SAFETY_ON_NULL_RETURN_VAL + (ec, TIZEN_KEYROUTER_ERROR_INVALID_SURFACE); } - //KLDBG("krt->HardKeys[%d].keycode: %d\n", key, krt->HardKeys[key].keycode); - return TIZEN_KEYROUTER_ERROR_NONE; -} + res = e_keyrouter_prepend_to_keylist(ec, + ec ? NULL : client, + key, + mode); + EINA_SAFETY_ON_FALSE_RETURN_VAL(res == TIZEN_KEYROUTER_ERROR_NONE, res); + + KLDBG("Succeed to set keygrab info ec:%p key:%d mode:%s\n", + ec, key, _mode_str_get(mode)); + return res; +} /* Function for checking whether the key has been grabbed already by the same wl_surface or not */ static int @@ -103,49 +66,50 @@ _e_keyrouter_find_duplicated_client(E_Client *ec, struct wl_client *wc, uint32_t switch(mode) { - case TIZEN_KEYROUTER_MODE_EXCLUSIVE: - return TIZEN_KEYROUTER_ERROR_NONE; + case TIZEN_KEYROUTER_MODE_EXCLUSIVE: + return TIZEN_KEYROUTER_ERROR_NONE; - case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: - keylist_ptr = krt->HardKeys[key].or_excl_ptr; - break; + case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: + keylist_ptr = krt->HardKeys[key].or_excl_ptr; + break; - case TIZEN_KEYROUTER_MODE_TOPMOST: - keylist_ptr = krt->HardKeys[key].top_ptr; - break; + case TIZEN_KEYROUTER_MODE_TOPMOST: + keylist_ptr = krt->HardKeys[key].top_ptr; + break; - case TIZEN_KEYROUTER_MODE_SHARED: - keylist_ptr = krt->HardKeys[key].shared_ptr; - break; + case TIZEN_KEYROUTER_MODE_SHARED: + keylist_ptr = krt->HardKeys[key].shared_ptr; + break; - case TIZEN_KEYROUTER_MODE_PRESSED: - keylist_ptr = krt->HardKeys[key].press_ptr; - break; + case TIZEN_KEYROUTER_MODE_PRESSED: + keylist_ptr = krt->HardKeys[key].press_ptr; + break; - default: - KLDBG("Unknown key(%d) and grab mode(%d)\n", key, mode); - return TIZEN_KEYROUTER_ERROR_INVALID_MODE; + default: + KLDBG("Unknown key(%d) and grab mode(%d)\n", key, mode); + return TIZEN_KEYROUTER_ERROR_INVALID_MODE; } EINA_LIST_FOREACH(keylist_ptr, l, key_node_data) { - if (key_node_data) + if (!key_node_data) continue; + + if (ec) { - if (ec) + if (key_node_data->ec == ec) { - if (key_node_data->ec == ec) - { - KLDBG("The key(%d) is already grabbed same mode(%d) on the same E_Client(%p)\n", key, mode, ec); - return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY; - } + KLDBG("The key(%d) is already grabbed same mode(%d) on the same ec %p\n", + key, mode, ec); + return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY; } - else + } + else + { + if (key_node_data->wc == wc) { - if (key_node_data->wc == wc) - { - KLDBG("The key(%d) is already grabbed same mode(%d) on the same Wl_Client(%p)\n", key, mode, wc); - return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY; - } + KLDBG("The key(%d) is already grabbed same mode(%d) on the same wl_client %p\n", + key, mode, wc); + return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY; } } } @@ -184,78 +148,78 @@ e_keyrouter_prepend_to_keylist(E_Client *ec, struct wl_client *wc, uint32_t key, switch(mode) { - case TIZEN_KEYROUTER_MODE_EXCLUSIVE: - krt->HardKeys[key].excl_ptr = eina_list_prepend(krt->HardKeys[key].excl_ptr, new_keyptr); - - if (ec) - { - KLDBG("Succeed to set keygrab information (e_client:%p, wl_client:NULL, key:%d, mode:EXCLUSIVE)\n", ec, key); - } - else - { - KLDBG("Succeed to set keygrab information (e_client:NULL, wl_client:%p, key:%d, mode:EXCLUSIVE)\n", wc, key); - } - break; - - case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: - krt->HardKeys[key].or_excl_ptr= eina_list_prepend(krt->HardKeys[key].or_excl_ptr, new_keyptr); - - if (ec) - { - KLDBG("TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); - } - else - { - KLDBG("TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); - } - break; - - case TIZEN_KEYROUTER_MODE_TOPMOST: - krt->HardKeys[key].top_ptr = eina_list_prepend(krt->HardKeys[key].top_ptr, new_keyptr); - - if (ec) - { - KLDBG("TIZEN_KEYROUTER_MODE_TOPMOST, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); - } - else - { - KLDBG("TIZEN_KEYROUTER_MODE_TOPMOST, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); - } - break; - - case TIZEN_KEYROUTER_MODE_SHARED: - krt->HardKeys[key].shared_ptr= eina_list_prepend(krt->HardKeys[key].shared_ptr, new_keyptr); - - if (ec) - { - KLDBG("TIZEN_KEYROUTER_MODE_SHARED, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); - } - else - { - KLDBG("TIZEN_KEYROUTER_MODE_SHARED, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); - } - break; - - case TIZEN_KEYROUTER_MODE_PRESSED: - krt->HardKeys[key].press_ptr = eina_list_prepend(krt->HardKeys[key].press_ptr, new_keyptr); - - if (ec) - { - KLDBG("TIZEN_KEYROUTER_MODE_PRESSED, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); - } - else - { - KLDBG("TIZEN_KEYROUTER_MODE_PRESSED, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); - } - break; - - default: - KLDBG("Unknown key(%d) and grab mode(%d)\n", key, mode); - E_FREE(new_keyptr); - return TIZEN_KEYROUTER_ERROR_INVALID_MODE; + case TIZEN_KEYROUTER_MODE_EXCLUSIVE: + krt->HardKeys[key].excl_ptr = eina_list_prepend(krt->HardKeys[key].excl_ptr, new_keyptr); + + if (ec) + { + KLDBG("Succeed to set keygrab information (e_client:%p, wl_client:NULL, key:%d, mode:EXCLUSIVE)\n", ec, key); + } + else + { + KLDBG("Succeed to set keygrab information (e_client:NULL, wl_client:%p, key:%d, mode:EXCLUSIVE)\n", wc, key); + } + break; + + case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: + krt->HardKeys[key].or_excl_ptr= eina_list_prepend(krt->HardKeys[key].or_excl_ptr, new_keyptr); + + if (ec) + { + KLDBG("TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); + } + else + { + KLDBG("TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); + } + break; + + case TIZEN_KEYROUTER_MODE_TOPMOST: + krt->HardKeys[key].top_ptr = eina_list_prepend(krt->HardKeys[key].top_ptr, new_keyptr); + + if (ec) + { + KLDBG("TIZEN_KEYROUTER_MODE_TOPMOST, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); + } + else + { + KLDBG("TIZEN_KEYROUTER_MODE_TOPMOST, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); + } + break; + + case TIZEN_KEYROUTER_MODE_SHARED: + krt->HardKeys[key].shared_ptr= eina_list_prepend(krt->HardKeys[key].shared_ptr, new_keyptr); + + if (ec) + { + KLDBG("TIZEN_KEYROUTER_MODE_SHARED, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); + } + else + { + KLDBG("TIZEN_KEYROUTER_MODE_SHARED, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); + } + break; + + case TIZEN_KEYROUTER_MODE_PRESSED: + krt->HardKeys[key].press_ptr = eina_list_prepend(krt->HardKeys[key].press_ptr, new_keyptr); + + if (ec) + { + KLDBG("TIZEN_KEYROUTER_MODE_PRESSED, key=%d, e_client(%p), wl_client(NULL) has been set !\n", key, ec); + } + else + { + KLDBG("TIZEN_KEYROUTER_MODE_PRESSED, key=%d, e_client(NULL), wl_client(%p) has been set !\n", key, wc); + } + break; + + default: + KLDBG("Unknown key(%d) and grab mode(%d)\n", key, mode); + E_FREE(new_keyptr); + return TIZEN_KEYROUTER_ERROR_INVALID_MODE; } - if ( (wc) && (mode != TIZEN_KEYROUTER_MODE_PRESSED) ) + if (wc) { KLDBG("Add a client(%p) destory listener\n", wc); e_keyrouter_add_client_destroy_listener(wc); @@ -265,89 +229,90 @@ e_keyrouter_prepend_to_keylist(E_Client *ec, struct wl_client *wc, uint32_t key, return TIZEN_KEYROUTER_ERROR_NONE; } -#define E_KEYROUTER_REMOVE_KEY_NODE_IN_LIST(list, ec, wc, l, l_next, key_node_data, key, mode_str) \ - EINA_LIST_FOREACH_SAFE(list, l, l_next, key_node_data) \ - { \ - if (key_node_data) \ - { \ - if (ec) \ - { \ - if (ec == key_node_data->ec) \ - { \ - list = eina_list_remove_list(list, l); \ - E_FREE(key_node_data); \ - KLDBG("Remove a %s Mode Grabbed key(%d) by ec(%p) wc(NULL)\n", mode_str, key, ec); \ - } \ - } \ - else \ - { \ - if (wc == key_node_data->wc) \ - { \ - list = eina_list_remove_list(list, l); \ - E_FREE(key_node_data); \ - KLDBG("Remove a %s Mode Grabbed key(%d) by ec(NULL) wc(%p)\n", mode_str, key, wc); \ - } \ - } \ - } \ - } - -/* Function for removing the existing key grab information from the list */ +/* remove key grab info from the list */ void e_keyrouter_find_and_remove_client_from_list(E_Client *ec, struct wl_client *wc, uint32_t key, uint32_t mode) { + Eina_List **list = NULL; Eina_List *l = NULL, *l_next = NULL; E_Keyrouter_Key_List_NodePtr key_node_data = NULL; + Eina_Bool removed; switch (mode) { - case TIZEN_KEYROUTER_MODE_EXCLUSIVE: - E_KEYROUTER_REMOVE_KEY_NODE_IN_LIST(krt->HardKeys[key].excl_ptr, ec, wc, l, l_next, key_node_data, key, "Exclusive"); - break; + case TIZEN_KEYROUTER_MODE_EXCLUSIVE: list = &krt->HardKeys[key].excl_ptr; break; + case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: list = &krt->HardKeys[key].or_excl_ptr; break; + case TIZEN_KEYROUTER_MODE_TOPMOST: list = &krt->HardKeys[key].top_ptr; break; + case TIZEN_KEYROUTER_MODE_SHARED: list = &krt->HardKeys[key].shared_ptr; break; + default: + KLDBG("Unknown key(%d) and grab mode(%d)\n", key, mode); + return; + } - case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: - E_KEYROUTER_REMOVE_KEY_NODE_IN_LIST(krt->HardKeys[key].or_excl_ptr, ec, wc, l, l_next, key_node_data, key, "OR_Exclusive"); - break; + EINA_LIST_FOREACH_SAFE(*list, l, l_next, key_node_data) + { + if (!key_node_data) continue; - case TIZEN_KEYROUTER_MODE_TOPMOST: - E_KEYROUTER_REMOVE_KEY_NODE_IN_LIST(krt->HardKeys[key].top_ptr, ec, wc, l, l_next, key_node_data, key, "Top Position"); - break; + removed = EINA_FALSE; - case TIZEN_KEYROUTER_MODE_SHARED: - E_KEYROUTER_REMOVE_KEY_NODE_IN_LIST(krt->HardKeys[key].shared_ptr, ec, wc, l, l_next, key_node_data, key, "Shared"); - break; + if (ec) + { + if (ec == key_node_data->ec) + { + *list = eina_list_remove_list(*list, l); + E_FREE(key_node_data); + removed = EINA_TRUE; + } + } + else + { + if (wc == key_node_data->wc) + { + *list = eina_list_remove_list(*list, l); + E_FREE(key_node_data); + removed = EINA_TRUE; + } + } - default: - KLDBG("Unknown key(%d) and grab mode(%d)\n", key, mode); - return; + if (removed) + { + KLDBG("Remove a %s Mode Grabbed key(%d) by ec(%p) wc(NULL)\n", + _mode_str_get(mode), key, ec); + } } } void e_keyrouter_remove_client_from_list(E_Client *ec, struct wl_client *wc) { - int index = 0; - if (!ec && !wc) - { - return; - } + int i = 0; - for (index = 0; index < MAX_HWKEYS; index++) - { - if (0 == krt->HardKeys[index].keycode) - { - continue; - } + EINA_SAFETY_ON_TRUE_RETURN(((!ec) && (!wc))); - /* exclusive grab */ - e_keyrouter_find_and_remove_client_from_list(ec, wc, index, TIZEN_KEYROUTER_MODE_EXCLUSIVE); + for (i = 0; i < MAX_HWKEYS; i++) + { + if (0 == krt->HardKeys[i].keycode) continue; - /* or exclusive grab */ - e_keyrouter_find_and_remove_client_from_list(ec, wc, index, TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE); + e_keyrouter_find_and_remove_client_from_list(ec, wc, i, TIZEN_KEYROUTER_MODE_EXCLUSIVE); + e_keyrouter_find_and_remove_client_from_list(ec, wc, i, TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE); + e_keyrouter_find_and_remove_client_from_list(ec, wc, i, TIZEN_KEYROUTER_MODE_TOPMOST); + e_keyrouter_find_and_remove_client_from_list(ec, wc, i, TIZEN_KEYROUTER_MODE_SHARED); + } +} - /* top position grab */ - e_keyrouter_find_and_remove_client_from_list(ec, wc, index, TIZEN_KEYROUTER_MODE_TOPMOST); +static const char * +_mode_str_get(uint32_t mode) +{ + const char *str = NULL; - /* shared grab */ - e_keyrouter_find_and_remove_client_from_list(ec, wc, index, TIZEN_KEYROUTER_MODE_SHARED); + switch (mode) + { + case TIZEN_KEYROUTER_MODE_EXCLUSIVE: str = "Exclusive"; break; + case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: str = "Overridable_Exclusive"; break; + case TIZEN_KEYROUTER_MODE_TOPMOST: str = "Topmost"; break; + case TIZEN_KEYROUTER_MODE_SHARED: str = "Shared"; break; + default: str = "UnknownMode"; break; } + + return str; }