static int(*ttsd_dbus_vtable[])() = {&ttsd_dbus_open_connection, &ttsd_dbus_close_connection, &ttsdc_dbus_send_utt_start_message,
- &ttsdc_dbus_send_utt_finish_message, &ttsdc_dbus_send_set_state_message, &ttsdc_dbus_send_error_message};
+ &ttsdc_dbus_send_utt_finish_message, &ttsdc_dbus_send_set_state_message, &ttsdc_dbus_send_error_message,
+ &ttsdc_dbus_send_set_service_state_message};
static int(*ttsd_tidl_vtable[])() = {&ttsd_tidl_open_connection, &ttsd_tidl_close_connection, &ttsdc_tidl_send_utt_start_message,
- &ttsdc_tidl_send_utt_finish_message, &ttsdc_tidl_send_set_state_message, &ttsdc_tidl_send_error_message};
+ &ttsdc_tidl_send_utt_finish_message, &ttsdc_tidl_send_set_state_message, &ttsdc_tidl_send_error_message,
+ &ttsdc_tidl_send_set_service_state_message};
int ttsd_ipc_open_connection()
{
return TTSD_ERROR_OPERATION_FAILED;
}
+
+int ttsdc_ipc_send_set_service_state_message(int pid, unsigned int uid, int before_state, int current_state)
+{
+ SLOG(LOG_INFO, tts_tag(), "[IPC] ttsdc_ipc_send_set_service_state_message");
+
+ if (0 > ttsd_data_is_client(uid)) {
+ SLOG(LOG_ERROR, tts_tag(), "[ERROR] uid is not valid (%u)", uid);
+ return TTSD_ERROR_INVALID_PARAMETER;
+ }
+
+ switch (ttsd_data_get_ipc_method(uid))
+ {
+ case TTS_IPC_METHOD_DBUS:
+ SLOG(LOG_DEBUG, tts_tag(), "[IPC] ipc method : dbus");
+ return ttsd_dbus_vtable[SEND_SET_SERVICE_STATE](pid, uid, before_state, current_state);
+
+ case TTS_IPC_METHOD_TIDL:
+ SLOG(LOG_DEBUG, tts_tag(), "[IPC] ipc method : tidl");
+ return ttsd_tidl_vtable[SEND_SET_SERVICE_STATE] (pid, uid, before_state, current_state);
+
+ default:
+ SLOG(LOG_ERROR, tts_tag(), "[ERROR] method is not valid");
+ }
+
+ return TTSD_ERROR_OPERATION_FAILED;
+}