From: Sung-Jin Park Date: Sun, 18 Jul 2021 15:48:30 +0000 (+0900) Subject: mmi-api-handler: implement register/deregister callbacks X-Git-Tag: accepted/tizen/unified/20210914.053333~86 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F25%2F264025%2F1;p=platform%2Fcore%2Fuifw%2Fmmi-manager.git mmi-api-handler: implement register/deregister callbacks Change-Id: I7bd72100faf4bc5a0745220b1d51ec29ed37eba8 Signed-off-by: Sung-Jin Park --- diff --git a/src/mmi-api-handler.c b/src/mmi-api-handler.c index 86db05d..3171b77 100644 --- a/src/mmi-api-handler.c +++ b/src/mmi-api-handler.c @@ -87,14 +87,155 @@ static void _on_terminate(rpc_port_stub_mmifw_context_h context, void *user_data static int _register_cb(rpc_port_stub_mmifw_context_h context, rpc_port_mmifw_focus_event_cb_h focus_cb, rpc_port_mmifw_state_change_event_cb_h state_cb, rpc_port_mmifw_wakeup_event_cb_h wakeup_cb, rpc_port_mmifw_key_event_cb_h key_cb, rpc_port_mmifw_gesture_event_cb_h gesture_cb, rpc_port_mmifw_voice_event_cb_h voice_cb, rpc_port_mmifw_action_event_cb_h action_cb, rpc_port_mmifw_feedback_event_cb_h feedback_cb, void *user_data) { - LOGI("..."); + int r; + char *sender = NULL; + mmi_client *mc = NULL; + + r = rpc_port_stub_mmifw_context_get_sender(context, &sender); + if (r || !sender) + { + LOGE("Failed to get sender from context ! (error:%d)\n", r); + return -1; + } + + mc = client_manager_get_client(sender); + if (!mc) + { + LOGE("Failed to get client information from sender !\n"); + goto err; + } + if (focus_cb != client_manager_set_client_focus_cb_handle(mc, (void *)focus_cb)) + { + LOGE("Failed to set focus event handler to client info !\n"); + goto err; + } + + if (state_cb != client_manager_set_client_state_change_cb_handle(mc, (void *)state_cb)) + { + LOGE("Failed to set state_change event handler to client info !\n"); + goto err; + } + + if (wakeup_cb != client_manager_set_client_wakeup_cb_handle(mc, (void *)wakeup_cb)) + { + LOGE("Failed to set wakeup event handler to client info !\n"); + goto err; + } + + if (key_cb != client_manager_set_client_key_cb_handle(mc, (void *)key_cb)) + { + LOGE("Failed to set key event handler to client info !\n"); + goto err; + } + + if (gesture_cb != client_manager_set_client_gesture_cb_handle(mc, (void *)gesture_cb)) + { + LOGE("Failed to set gesture event handler to client info !\n"); + goto err; + } + + if (voice_cb != client_manager_set_client_voice_cb_handle(mc, (void *)voice_cb)) + { + LOGE("Failed to set voice event handler to client info !\n"); + goto err; + } + + if (action_cb != client_manager_set_client_action_cb_handle(mc, (void *)action_cb)) + { + LOGE("Failed to set action event handler to client info !\n"); + goto err; + } + + if (feedback_cb != client_manager_set_client_feedback_cb_handle(mc, (void *)feedback_cb)) + { + LOGE("Failed to set feedback event handler to client info !\n"); + goto err; + } + + free(sender); return 0; +err: + if (sender) + free(sender); + return -1; } static void _deregister_cb(rpc_port_stub_mmifw_context_h context, void *user_data) { - LOGI("..."); + int r; + char *sender = NULL; + mmi_client *mc = NULL; + + r = rpc_port_stub_mmifw_context_get_sender(context, &sender); + if (r || !sender) + { + LOGE("Failed to get sender from context ! (error:%d)\n", r); + return; + } + + mc = client_manager_get_client(sender); + if (!mc) + { + LOGE("Failed to get client information from sender !\n"); + goto err; + } + + if (NULL != client_manager_set_client_focus_cb_handle(mc, NULL)) + { + LOGE("Failed to unset focus event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_state_change_cb_handle(mc, NULL)) + { + LOGE("Failed to unset state_change event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_wakeup_cb_handle(mc, NULL)) + { + LOGE("Failed to unset wakeup event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_key_cb_handle(mc, NULL)) + { + LOGE("Failed to unset key event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_gesture_cb_handle(mc, NULL)) + { + LOGE("Failed to unset gesture event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_voice_cb_handle(mc, NULL)) + { + LOGE("Failed to unset voice event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_action_cb_handle(mc, NULL)) + { + LOGE("Failed to unset action event handler of client !\n"); + goto err; + } + + if (NULL != client_manager_set_client_feedback_cb_handle(mc, NULL)) + { + LOGE("Failed to unset feedback event handler of client !\n"); + goto err; + } + + + free(sender); + return; +err: + if (sender) + free(sender); + return; } static void _get_focus_cb(rpc_port_stub_mmifw_context_h context, const char *sender, void *user_data)