static int _connected = 0;
static mmi_state _state = MMI_STATE_NONE;
-rpc_port_proxy_mmi_focus_event_cb_h focus_cb_h;
-rpc_port_proxy_mmi_state_change_event_cb_h state_change_cb_h;
-rpc_port_proxy_mmi_wakeup_event_cb_h wakeup_cb_h;
-rpc_port_proxy_mmi_key_event_cb_h key_cb_h;
-rpc_port_proxy_mmi_gesture_event_cb_h gesture_cb_h;
-rpc_port_proxy_mmi_voice_event_cb_h voice_cb_h;
-rpc_port_proxy_mmi_action_event_cb_h action_cb_h;
-rpc_port_proxy_mmi_feedback_event_cb_h feedback_cb_h;
-
rpc_port_proxy_mmi_h
mmi_ipc_get_rpc_h(void)
{
return _stub_appid;
}
-static void _focus_event_cb(void *user_data, rpc_port_proxy_focus_event_h args)
-{
- int r;
- mmi_event_focus *ev = NULL;
-
- ev = (mmi_event_focus *)calloc(1, sizeof(mmi_event_focus));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory focus event !\n");
- return;
- }
-
- r = rpc_port_proxy_focus_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_focus_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_focus_event_get_focus_in(args, &ev->focus_in);
- if (r)
- {
- LOGE("Failed to get focus_in (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_FOCUS, ev, NULL, user_data);
- return;
-err:
- if (ev)
- free(ev);
-}
-
-static void _state_change_event_cb(void *user_data, rpc_port_proxy_state_change_event_h args)
-{
- int r;
- mmi_event_state_change *ev = NULL;
-
- ev = (mmi_event_state_change *)calloc(1, sizeof(mmi_event_state_change));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory state_change event !\n");
- return;
- }
-
- r = rpc_port_proxy_state_change_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_state_change_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_state_change_event_get_state(args, &ev->state);
- if (r)
- {
- LOGE("Failed to get state (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_state_change_event_get_old_state(args, &ev->old_state);
- if (r)
- {
- LOGE("Failed to get old_state (error:%d)\n", r);
- goto err;
- }
-
- _state = ev->state;
- ecore_event_add(MMI_EVENT_STATE_CHANGE, ev, NULL, user_data);
- return;
-err:
- if (ev)
- free(ev);
-}
-
-static void
-_wakeup_event_free(void *data, void *ev)
-{
- mmi_event_wakeup *e = (mmi_event_wakeup *)ev;
-
- if (e->source)
- free(e->source);
- free(e);
-}
-
-static void _wakeup_event_cb(void *user_data, rpc_port_proxy_wakeup_event_h args)
-{
- int r;
- mmi_event_wakeup *ev = NULL;
-
- ev = (mmi_event_wakeup *)calloc(1, sizeof(mmi_event_wakeup));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory wakeup event !\n");
- return;
- }
-
- r = rpc_port_proxy_wakeup_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_wakeup_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_wakeup_event_get_source(args, &ev->source);
- if (r)
- {
- LOGE("Failed to get source (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_WAKE_UP, ev, _wakeup_event_free, user_data);
- return;
-err:
- if (ev)
- _wakeup_event_free(NULL, ev);
-}
-
-static void
-_key_event_free(void *data, void *ev)
-{
- mmi_event_key *e = (mmi_event_key *)ev;
-
- if (e->keyname)
- free(e->keyname);
- if (e->source)
- free(e->source);
- free(e);
-}
-
-static void _key_event_cb(void *user_data, rpc_port_proxy_key_event_h args)
-{
- int r;
- mmi_event_key *ev = NULL;
-
- ev = (mmi_event_key *)calloc(1, sizeof(mmi_event_key));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory key event !\n");
- return;
- }
-
- r = rpc_port_proxy_key_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_key_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_key_event_get_keycode(args, &ev->keycode);
- if (r)
- {
- LOGE("Failed to get keycode (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_key_event_get_key_down(args, &ev->key_down);
- if (r)
- {
- LOGE("Failed to get key_down (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_key_event_get_keyname(args, &ev->keyname);
- if (r)
- {
- LOGE("Failed to get keyname (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_key_event_get_source(args, &ev->source);
- if (r)
- {
- LOGE("Failed to get source (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_KEY, ev, _key_event_free, user_data);
- return;
-err:
- if (ev)
- _key_event_free(NULL, ev);
-}
-
-static void
-_gesture_event_free(void *data, void *ev)
-{
- mmi_event_gesture *e = (mmi_event_gesture *)ev;
-
- if (e->source)
- free(e->source);
- free(e);
-}
-
-static void _gesture_event_cb(void *user_data, rpc_port_proxy_gesture_event_h args)
-{
- int r;
- mmi_event_gesture *ev = NULL;
-
- ev = (mmi_event_gesture *)calloc(1, sizeof(mmi_event_gesture));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory gesture event !\n");
- return;
- }
-
- r = rpc_port_proxy_gesture_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_gesture_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_gesture_event_get_source(args, &ev->source);
- if (r)
- {
- LOGE("Failed to get source (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_GESTURE, ev, _gesture_event_free, user_data);
- return;
-err:
- if (ev)
- _gesture_event_free(NULL, ev);
-}
-
-static void
-_voice_event_free(void *data, void *ev)
-{
- mmi_event_voice *e = (mmi_event_voice *)ev;
-
- if (e->source)
- free(e->source);
- free(e);
-}
-
-static void _voice_event_cb(void *user_data, rpc_port_proxy_voice_event_h args)
-{
- int r;
- mmi_event_voice *ev = NULL;
-
- ev = (mmi_event_voice *)calloc(1, sizeof(mmi_event_voice));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory voice event !\n");
- return;
- }
-
- r = rpc_port_proxy_voice_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_voice_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_voice_event_get_source(args, &ev->source);
- if (r)
- {
- LOGE("Failed to get source (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_VOICE, ev, _voice_event_free, user_data);
- return;
-err:
- if (ev)
- _voice_event_free(NULL, ev);
-}
-
-static void
-_action_event_free(void *data, void *ev)
-{
- mmi_event_action *e = (mmi_event_action *)ev;
-
- if (e->cmd)
- free(e->cmd);
- if (e->source)
- free(e->source);
- if (e->args)
- {
- for(int n = 0; n < e->nargs; ++n)
- if (e->args[n])
- free(e->args[n]);
-
- }
- free(e);
-}
-
-static void _action_event_cb(void *user_data, rpc_port_proxy_action_event_h ev_args)
-{
- int r;
- int args_size;
- mmi_event_action *ev = NULL;
- rpc_port_proxy_array_string_h array_string_h = NULL;
-
- ev = (mmi_event_action *)calloc(1, sizeof(mmi_event_action));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory action event !\n");
- return;
- }
-
- r = rpc_port_proxy_action_event_get_type(ev_args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_action_event_get_timestamp(ev_args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_action_event_get_cmd(ev_args, &ev->cmd);
- if (r)
- {
- LOGE("Failed to get cmd (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_action_event_get_nargs(ev_args, &ev->nargs);
- if (r)
- {
- LOGE("Failed to get nargs (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_action_event_get_args(ev_args, &array_string_h);
- if (r)
- {
- LOGE("Failed to get array_string_h ! (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_array_string_get(array_string_h, &ev->args, &args_size);
- if (r)
- {
- LOGE("Failed to get array string (error:%d)\n", r);
- goto err;
- }
-
- if (args_size != ev->nargs)
- {
- LOGE("Invalid args_size in event (args_size=%d, nargs=%d) !\n", args_size, ev->nargs);
- goto err;
- }
-
- r = rpc_port_proxy_action_event_get_source(ev_args, &ev->source);
- if (r)
- {
- LOGE("Failed to get source (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_ACTION, ev, _action_event_free, user_data);
- return;
-err:
- if (ev)
- _action_event_free(NULL, ev);
- if (array_string_h)
- rpc_port_proxy_array_string_destroy(array_string_h);
-}
-
-static void
-_feedback_event_free(void *data, void *ev)
-{
- mmi_event_feedback *e = (mmi_event_feedback *)ev;
-
- if (e->feedback)
- free(e->feedback);
- if (e->comment)
- free(e->comment);
- free(e);
-}
-
-static void _feedback_event_cb(void *user_data, rpc_port_proxy_feedback_event_h args)
-{
- int r;
- mmi_event_feedback *ev = NULL;
-
- ev = (mmi_event_feedback *)calloc(1, sizeof(mmi_event_feedback));
-
- if (!ev)
- {
- LOGE("Failed to allocate memory feedback event !\n");
- return;
- }
-
- r = rpc_port_proxy_feedback_event_get_type(args, &ev->type);
- if (r)
- {
- LOGE("Failed to get type (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_feedback_event_get_timestamp(args, &ev->timestamp);
- if (r)
- {
- LOGE("Failed to get timestamp (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_feedback_event_get_feedback(args, &ev->feedback);
- if (r)
- {
- LOGE("Failed to get feedback (error:%d)\n", r);
- goto err;
- }
-
- r = rpc_port_proxy_feedback_event_get_comment(args, &ev->comment);
- if (r)
- {
- LOGE("Failed to get comment (error:%d)\n", r);
- goto err;
- }
-
- ecore_event_add(MMI_EVENT_FEEDBACK, ev, _feedback_event_free, user_data);
- return;
-err:
- if (ev)
- _feedback_event_free(NULL, ev);
-}
-
static void _on_connected(rpc_port_proxy_mmi_h h, void *user_data)
{
int r;
LOGE("Failed to allocate memory for connection event !\n");
return;
}
-
- r = rpc_port_proxy_mmi_focus_event_cb_create(&focus_cb_h);
- if (r)
- {
- LOGE("Failed to create focus callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_focus_event_cb_set_callback(focus_cb_h, _focus_event_cb, NULL);
- rpc_port_proxy_mmi_focus_event_cb_set_once(focus_cb_h, false);
-
- r = rpc_port_proxy_mmi_state_change_event_cb_create(&state_change_cb_h);
- if (r)
- {
- LOGE("Failed to create state callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_state_change_event_cb_set_callback(state_change_cb_h, _state_change_event_cb, NULL);
- rpc_port_proxy_mmi_state_change_event_cb_set_once(state_change_cb_h, false);
-
- r = rpc_port_proxy_mmi_wakeup_event_cb_create(&wakeup_cb_h);
- if (r)
- {
- LOGE("Failed to create callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_wakeup_event_cb_set_callback(wakeup_cb_h, _wakeup_event_cb, NULL);
- rpc_port_proxy_mmi_wakeup_event_cb_set_once(wakeup_cb_h, false);
-
- r = rpc_port_proxy_mmi_key_event_cb_create(&key_cb_h);
- if (r)
- {
- LOGE("Failed to create callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_key_event_cb_set_callback(key_cb_h, _key_event_cb, NULL);
- rpc_port_proxy_mmi_key_event_cb_set_once(key_cb_h, false);
-
- r = rpc_port_proxy_mmi_gesture_event_cb_create(&gesture_cb_h);
- if (r)
- {
- LOGE("Failed to create callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_gesture_event_cb_set_callback(gesture_cb_h, _gesture_event_cb, NULL);
- rpc_port_proxy_mmi_gesture_event_cb_set_once(gesture_cb_h, false);
-
- r = rpc_port_proxy_mmi_voice_event_cb_create(&voice_cb_h);
- if (r)
- {
- LOGE("Failed to create callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_voice_event_cb_set_callback(voice_cb_h, _voice_event_cb, NULL);
- rpc_port_proxy_mmi_voice_event_cb_set_once(voice_cb_h, false);
-
- r = rpc_port_proxy_mmi_action_event_cb_create(&action_cb_h);
- if (r)
- {
- LOGE("Failed to create callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_action_event_cb_set_callback(action_cb_h, _action_event_cb, NULL);
- rpc_port_proxy_mmi_action_event_cb_set_once(action_cb_h, false);
-
- r = rpc_port_proxy_mmi_feedback_event_cb_create(&feedback_cb_h);
- if (r)
- {
- LOGE("Failed to create callback handle (error:%d)\n", r);
- goto err;
- }
- rpc_port_proxy_mmi_feedback_event_cb_set_callback(feedback_cb_h, _feedback_event_cb, NULL);
- rpc_port_proxy_mmi_feedback_event_cb_set_once(feedback_cb_h, false);
-
- if (!focus_cb_h || !state_change_cb_h || !wakeup_cb_h || !key_cb_h
- || !gesture_cb_h || !voice_cb_h || !action_cb_h || !feedback_cb_h)
- {
- LOGE("Failed to create event callbacks !");
- //TODO: Disconnect by destroying rpc_port_proxy_mmi_h
- goto err;
- }
-
- r = rpc_port_proxy_mmi_invoke_register_cb(h, focus_cb_h, state_change_cb_h, wakeup_cb_h,
- key_cb_h, gesture_cb_h, voice_cb_h, action_cb_h, feedback_cb_h);
- if (r != RPC_PORT_ERROR_NONE)
- {
- LOGE("Failed to register event callbacks !\n");
- //TODO: Disconnect by destroying rpc_port_proxy_mmi_h
- goto err;
- }
-
_connected = 1;
ev->connected = true;
ecore_event_add(MMI_EVENT_CONNECTION, ev, NULL, user_data);
err:
if (ev)
free(ev);
- if (focus_cb_h)
- rpc_port_proxy_mmi_focus_event_cb_destroy(focus_cb_h);
- if (state_change_cb_h)
- rpc_port_proxy_mmi_state_change_event_cb_destroy(state_change_cb_h);
- if (wakeup_cb_h)
- rpc_port_proxy_mmi_wakeup_event_cb_destroy(wakeup_cb_h);
- if (key_cb_h)
- rpc_port_proxy_mmi_key_event_cb_destroy(key_cb_h);
- if (gesture_cb_h)
- rpc_port_proxy_mmi_gesture_event_cb_destroy(gesture_cb_h);
- if (voice_cb_h)
- rpc_port_proxy_mmi_voice_event_cb_destroy(voice_cb_h);
- if (action_cb_h)
- rpc_port_proxy_mmi_action_event_cb_destroy(action_cb_h);
- if (feedback_cb_h)
- rpc_port_proxy_mmi_feedback_event_cb_destroy(feedback_cb_h);
}
static void _on_disconnected(rpc_port_proxy_mmi_h h, void *user_data)
{
/* initialize handles */
_rpc_h = NULL;
- focus_cb_h = NULL;
- state_change_cb_h = NULL;
- wakeup_cb_h = NULL;
- key_cb_h = NULL;
- gesture_cb_h = NULL;
- voice_cb_h = NULL;
- action_cb_h = NULL;
- feedback_cb_h = NULL;
+
_uid = tzplatform_getuid(TZ_SYS_DEFAULT_USER);
LOGI("uid=%d\n", _uid);
return 0;
err:
if (_rpc_h)
- rpc_port_proxy_destroy(_rpc_h);
+ rpc_port_proxy_mmi_destroy(_rpc_h);
rpc_port_deregister_proc_info();
if (!_rpc_h)
return;
- rpc_port_proxy_mmi_invoke_deregister_cb(_rpc_h);
-
rpc_port_proxy_mmi_destroy(_rpc_h);
rpc_port_deregister_proc_info();
_rpc_h = NULL;
- focus_cb_h = NULL;
- state_change_cb_h = NULL;
- wakeup_cb_h = NULL;
- key_cb_h = NULL;
- gesture_cb_h = NULL;
- voice_cb_h = NULL;
- action_cb_h = NULL;
- feedback_cb_h = NULL;
-
_appid = "";
_uid = -1;
_state = MMI_STATE_NONE;