int
client_manager_send_focus_event(mmi_client *client, focus_event_arg *args)
{
+ int r;
+ rpc_port_focus_event_h focus_event_h = NULL;
+ focus_event_arg *ev = (focus_event_arg *)args;
+
if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->focus_cb_h)
+ {
+ LOGE("Given client doesn't have focus_cb handle !\n");
return -1;
+ }
- focus_event_arg *ev = (focus_event_arg *)args;
- //TODO: set args for focus event and invoke focus_event_cb
- (void) ev;
+ r = rpc_port_focus_event_create(&focus_event_h);
+ if (r)
+ {
+ LOGE("Failed to create focus_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ rpc_port_focus_event_set_type(focus_event_h, ev->type);
+ rpc_port_focus_event_set_timestamp(focus_event_h, ev->timestamp);
+ rpc_port_focus_event_set_focus_in(focus_event_h, ev->focus_in);
+
+ r = rpc_port_mmifw_focus_event_cb_invoke(client->focus_cb_h, focus_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke focus_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
return 0;
+err:
+ if (focus_event_h)
+ rpc_port_focus_event_destroy(focus_event_h);
+
+ return -1;
}
int
client_manager_send_state_change_event(mmi_client *client, state_change_event_arg *args)
{
+ int r;
+ rpc_port_state_change_event_h state_change_event_h = NULL;
+ state_change_event_arg *ev = (state_change_event_arg *)args;
+
if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
return -1;
+ }
- state_change_event_arg *ev = (state_change_event_arg *)args;
- //TODO: set args for state change event and invoke state_change_event_cb
- (void) ev;
+ if (!client->state_change_cb_h)
+ {
+ LOGE("Given client doesn't have state_change_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_state_change_event_create(&state_change_event_h);
+ if (r)
+ {
+ LOGE("Failed to create state_change_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_state_change_event_set_type(state_change_event_h, ev->type);
+ rpc_port_state_change_event_set_timestamp(state_change_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_state_change_event_cb_invoke(client->state_change_cb_h, state_change_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke state_change_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
return 0;
+err:
+ if (state_change_event_h)
+ rpc_port_state_change_event_destroy(state_change_event_h);
+
+ return -1;
+}
+
+int
+client_manager_send_wakeup_event(mmi_client *client, wakeup_event_arg *args)
+{
+ int r;
+ rpc_port_wakeup_event_h wakeup_event_h = NULL;
+ wakeup_event_arg *ev = (wakeup_event_arg *)args;
+
+ if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->wakeup_cb_h)
+ {
+ LOGE("Given client doesn't have wakeup_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_wakeup_event_create(&wakeup_event_h);
+ if (r)
+ {
+ LOGE("Failed to create wakeup_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_wakeup_event_set_type(wakeup_event_h, ev->type);
+ rpc_port_wakeup_event_set_timestamp(wakeup_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_wakeup_event_cb_invoke(client->wakeup_cb_h, wakeup_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke wakeup_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
+
+ return 0;
+err:
+ if (wakeup_event_h)
+ rpc_port_wakeup_event_destroy(wakeup_event_h);
+
+ return -1;
+}
+
+int
+client_manager_send_key_event(mmi_client *client, key_event_arg *args)
+{
+ int r;
+ rpc_port_key_event_h key_event_h = NULL;
+ key_event_arg *ev = (key_event_arg *)args;
+
+ if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->key_cb_h)
+ {
+ LOGE("Given client doesn't have key_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_key_event_create(&key_event_h);
+ if (r)
+ {
+ LOGE("Failed to create key_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_key_event_set_type(key_event_h, ev->type);
+ rpc_port_key_event_set_timestamp(key_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_key_event_cb_invoke(client->key_cb_h, key_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke key_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
+
+ return 0;
+err:
+ if (key_event_h)
+ rpc_port_key_event_destroy(key_event_h);
+
+ return -1;
+}
+
+int
+client_manager_send_gesture_event(mmi_client *client, gesture_event_arg *args)
+{
+ int r;
+ rpc_port_gesture_event_h gesture_event_h = NULL;
+ gesture_event_arg *ev = (gesture_event_arg *)args;
+
+ if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->gesture_cb_h)
+ {
+ LOGE("Given client doesn't have gesture_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_gesture_event_create(&gesture_event_h);
+ if (r)
+ {
+ LOGE("Failed to create gesture_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_gesture_event_set_type(gesture_event_h, ev->type);
+ rpc_port_gesture_event_set_timestamp(gesture_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_gesture_event_cb_invoke(client->gesture_cb_h, gesture_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke gesture_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
+
+ return 0;
+err:
+ if (gesture_event_h)
+ rpc_port_gesture_event_destroy(gesture_event_h);
+
+ return -1;
+}
+
+int
+client_manager_send_voice_event(mmi_client *client, voice_event_arg *args)
+{
+ int r;
+ rpc_port_voice_event_h voice_event_h = NULL;
+ voice_event_arg *ev = (voice_event_arg *)args;
+
+ if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->voice_cb_h)
+ {
+ LOGE("Given client doesn't have voice_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_voice_event_create(&voice_event_h);
+ if (r)
+ {
+ LOGE("Failed to create voice_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_voice_event_set_type(voice_event_h, ev->type);
+ rpc_port_voice_event_set_timestamp(voice_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_voice_event_cb_invoke(client->voice_cb_h, voice_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke voice_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
+
+ return 0;
+err:
+ if (voice_event_h)
+ rpc_port_voice_event_destroy(voice_event_h);
+
+ return -1;
+}
+
+int
+client_manager_send_action_event(mmi_client *client, action_event_arg *args)
+{
+ int r;
+ rpc_port_action_event_h action_event_h = NULL;
+ action_event_arg *ev = (action_event_arg *)args;
+
+ if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->action_cb_h)
+ {
+ LOGE("Given client doesn't have action_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_action_event_create(&action_event_h);
+ if (r)
+ {
+ LOGE("Failed to create action_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_action_event_set_type(action_event_h, ev->type);
+ rpc_port_action_event_set_timestamp(action_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_action_event_cb_invoke(client->action_cb_h, action_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke action_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
+
+ return 0;
+err:
+ if (action_event_h)
+ rpc_port_action_event_destroy(action_event_h);
+
+ return -1;
+}
+
+int
+client_manager_send_feedback_event(mmi_client *client, feedback_event_arg *args)
+{
+ int r;
+ rpc_port_feedback_event_h feedback_event_h = NULL;
+ feedback_event_arg *ev = (feedback_event_arg *)args;
+
+ if (!client || !args)
+ {
+ LOGE("Invalid client or args was given !\n");
+ return -1;
+ }
+
+ if (!client->feedback_cb_h)
+ {
+ LOGE("Given client doesn't have feedback_cb handle !\n");
+ return -1;
+ }
+
+ r = rpc_port_feedback_event_create(&feedback_event_h);
+ if (r)
+ {
+ LOGE("Failed to create feedback_event_h ! (error:%d)\n", r);
+ return -1;
+ }
+
+ //TODO: fill out event
+ rpc_port_feedback_event_set_type(feedback_event_h, ev->type);
+ rpc_port_feedback_event_set_timestamp(feedback_event_h, ev->timestamp);
+
+ r = rpc_port_mmifw_feedback_event_cb_invoke(client->feedback_cb_h, feedback_event_h);
+ if (r)
+ {
+ LOGE("Failed to invoke feedback_event_cb ! (error:%d)\n", r);
+ goto err;
+ }
+
+ return 0;
+err:
+ if (feedback_event_h)
+ rpc_port_feedback_event_destroy(feedback_event_h);
+
+ return -1;
}