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)