Append pid at the end of service name 68/191068/2
authorJi-hoon Lee <dalton.lee@samsung.com>
Thu, 11 Oct 2018 06:20:42 +0000 (15:20 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Mon, 15 Oct 2018 00:33:35 +0000 (09:33 +0900)
Change-Id: I522e1e5b044476a35923d8b2c6d944c9d53babdb

client/ma_dbus.c
client/ma_ui.c
common/ma_defs.h

index bd7942d8c02157f4c022a847ee282123534e817b..9c13d1f72b49b6a1f8400192b278cb025d562a39 100644 (file)
@@ -217,12 +217,11 @@ int ma_dbus_open_connection()
 
        dbus_connection_set_exit_on_disconnect(g_conn_listener, false);
 
-//     int pid = getpid();
+       int pid = getpid();
 
        char service_name[64];
        memset(service_name, '\0', 64);
-//     snprintf(service_name, 64, "%s%d", MA_CLIENT_SERVICE_NAME, pid);
-       snprintf(service_name, 64, "%s", MA_CLIENT_SERVICE_NAME);
+       snprintf(service_name, 64, "%s_%d", MA_CLIENT_SERVICE_NAME, pid);
 
        SLOG(LOG_DEBUG, TAG_MAC, "service name is %s", service_name);
 
@@ -293,12 +292,11 @@ int ma_dbus_close_connection()
        }
 
        if (NULL != g_conn_listener) {
-//             int pid = getpid();
+               int pid = getpid();
 
                char service_name[64];
                memset(service_name, '\0', 64);
-//             snprintf(service_name, 64, "%s%d", MA_CLIENT_SERVICE_NAME, pid);
-               snprintf(service_name, 64, "%s", MA_CLIENT_SERVICE_NAME);
+               snprintf(service_name, 64, "%s_%d", MA_CLIENT_SERVICE_NAME, pid);
 
                dbus_bus_release_name(g_conn_listener, service_name, &err);
 
@@ -552,6 +550,71 @@ int ma_dbus_request_deinitialize(int pid)
        return result;
 }
 
+int ma_dbus_request_speech_data(int pid)
+{
+       if (0 != __dbus_check()) {
+               return MA_ERROR_OPERATION_FAILED;
+       }
+
+       DBusMessage* msg;
+
+       msg = dbus_message_new_method_call(
+                         MA_SERVER_SERVICE_NAME,
+                         MA_SERVER_SERVICE_OBJECT_PATH,
+                         MA_SERVER_SERVICE_INTERFACE,
+                         MA_METHOD_REQUEST_SPEECH_DATA);
+
+       if (NULL == msg) {
+               SLOG(LOG_ERROR, TAG_MAC, "@@ Request multi-assistant recording audio format : Fail to make message"); //LCOV_EXCL_LINE
+               return MA_ERROR_OPERATION_FAILED;
+       } else {
+               SLOG(LOG_DEBUG, TAG_MAC, "[DEBUG] multi-assistant recording audio format");
+       }
+
+       dbus_message_append_args(msg,
+               DBUS_TYPE_INT32, &pid,
+               DBUS_TYPE_INVALID);
+
+       DBusError err;
+       dbus_error_init(&err);
+
+       DBusMessage* result_msg = NULL;
+       int result = MA_ERROR_OPERATION_FAILED;
+
+       result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
+       dbus_message_unref(msg);
+
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_DEBUG, TAG_MAC, "[ERROR] Dbus Error (%s)", err.message); //LCOV_EXCL_LINE
+               dbus_error_free(&err);
+       }
+
+       if (NULL != result_msg) {
+               dbus_message_get_args(result_msg, &err,
+                               DBUS_TYPE_INT32, &result,
+                               DBUS_TYPE_INVALID);
+
+               if (dbus_error_is_set(&err)) {
+                       SLOG(LOG_ERROR, TAG_MAC, "@@ Get arguments error (%s)", err.message);
+                       dbus_error_free(&err);
+                       result = MA_ERROR_OPERATION_FAILED;
+               }
+               dbus_message_unref(result_msg);
+
+               if (0 == result) {
+                       SLOG(LOG_DEBUG, TAG_MAC, "@@ multi-assistant request speech data : result = %d", result);
+               } else {
+                       SLOG(LOG_ERROR, TAG_MAC, "@@ multi-assistant request speech data : result = %d", result);
+               }
+       } else {
+               SLOG(LOG_ERROR, TAG_MAC, "@@ Result message is NULL");
+               ma_dbus_reconnect();
+               result = MA_ERROR_TIMED_OUT;
+       }
+
+       return result;
+}
+
 
 int ma_dbus_get_recording_audio_format(int pid, int *rate, ma_audio_channel_e *channel, ma_audio_type_e *audio_type)
 {
index 1924eda39fb63e8900b2c54eaba1285496d3d51d..053c51c3809b77a5ae7d30cfd610db3cc55b9df8 100644 (file)
@@ -291,7 +291,7 @@ static Eina_Bool __ma_ui_connect_daemon(void *data)
        /* Set client state */
        ma_ui_client_set_client_state(g_ma_ui, MA_STATE_READY);
        void* user_data;
-       
+
        ma_state_changed_cb changed_callback = NULL;
        ma_ui_client_get_state_changed_cb(g_ma_ui, &changed_callback, &user_data);
 
index 71d89326ba0be97fffa13d6e6436b61efe93e8bb..295839ef52b8de515bd74d955bcbbace49a36bb0 100644 (file)
@@ -62,6 +62,7 @@ extern "C"
 
 #define MA_METHOD_INITIALIZE                                   "ma_method_initialize"
 #define MA_METHOD_DEINITIALIZE                                 "ma_method_deinitialize"
+#define MA_METHOD_REQUEST_SPEECH_DATA                  "ma_method_request_speech_data"
 #define MA_METHOD_GET_RECORDING_AUDIO_FORMAT   "ma_method_get_recording_audio_format"
 #define MA_METHOD_SEND_ASR_RESULT                              "ma_method_send_asr_result"
 #define MA_METHOD_SEND_RESULT                                  "ma_method_send_result"
@@ -85,7 +86,6 @@ extern "C"
  *************************************************************************************/
 #define MA_RETRY_COUNT 5
 
-
 #ifdef __cplusplus
 }
 #endif