2 * Copyright (c) 2011-2014 Samsung Electronics Co., Ltd All Rights Reserved
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 * http://www.apache.org/licenses/LICENSE-2.0
7 * Unless required by applicable law or agreed to in writing, software
8 * distributed under the License is distributed on an "AS IS" BASIS,
9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 * See the License for the specific language governing permissions and
11 * limitations under the License.
19 #include "stt_client.h"
21 static int g_waiting_time = 3000;
22 static int g_waiting_short_time = 500;
24 static Ecore_Fd_Handler* g_fd_handler = NULL;
26 static DBusConnection* g_conn_sender = NULL;
27 static DBusConnection* g_conn_listener = NULL;
30 extern int __stt_cb_error(int uid, int reason, char* err_msg);
32 extern int __stt_cb_result(int uid, int event, char** data, int data_count, const char* msg);
34 extern int __stt_cb_set_state(int uid, int state);
36 extern int __stt_cb_set_volume(int uid, float volume);
38 static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
40 if (NULL == g_conn_listener) return ECORE_CALLBACK_RENEW;
42 dbus_connection_read_write_dispatch(g_conn_listener, 50);
45 DBusMessage* msg = NULL;
46 msg = dbus_connection_pop_message(g_conn_listener);
48 if (true != dbus_connection_get_is_connected(g_conn_listener)) {
49 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Connection is disconnected");
53 /* loop again if we haven't read a message */
58 SLOG(LOG_DEBUG, TAG_STTC, "[DEBUG] Message is arrived");
61 dbus_error_init(&err);
63 DBusMessage *reply = NULL;
66 snprintf(if_name, 64, "%s%d", STT_CLIENT_SERVICE_INTERFACE, getpid());
68 if (dbus_message_is_method_call(msg, if_name, STTD_METHOD_HELLO)) {
69 SLOG(LOG_DEBUG, TAG_STTC, "===== Get Hello");
73 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
74 if (dbus_error_is_set(&err)) {
75 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Get arguments error (%s)", err.message);
76 dbus_error_free(&err);
80 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt get hello : uid(%d)", uid);
83 stt_client_s* client = stt_client_get_by_uid(uid);
89 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get hello : invalid uid");
92 reply = dbus_message_new_method_return(msg);
95 dbus_message_append_args(reply, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
97 if (!dbus_connection_send(g_conn_listener, reply, NULL))
98 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt get hello : fail to send reply");
100 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt get hello : result(%d)", response);
102 dbus_connection_flush(g_conn_listener);
103 dbus_message_unref(reply);
105 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt get hello : fail to create reply message");
108 SLOG(LOG_DEBUG, TAG_STTC, "=====");
109 SLOG(LOG_DEBUG, TAG_STTC, " ");
110 } /* STTD_METHOD_HELLO */
112 else if (dbus_message_is_signal(msg, if_name, STTD_METHOD_SET_STATE)) {
113 SLOG(LOG_DEBUG, TAG_STTC, "===== Set State");
117 dbus_message_get_args(msg, &err,
118 DBUS_TYPE_INT32, &uid,
119 DBUS_TYPE_INT32, &state,
122 if (dbus_error_is_set(&err)) {
123 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Get arguments error (%s)", err.message);
124 dbus_error_free(&err);
127 if (uid > 0 && state >= 0) {
128 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set state : uid(%d), state(%d)", uid, state);
129 __stt_cb_set_state(uid, state);
131 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set state : invalid uid or state");
134 SLOG(LOG_DEBUG, TAG_STTC, "=====");
135 SLOG(LOG_DEBUG, TAG_STTC, " ");
136 } /* STTD_METHOD_SET_STATE */
138 else if (dbus_message_is_signal(msg, if_name, STTD_METHOD_SET_VOLUME)) {
139 SLOG(LOG_DEBUG, TAG_STTC, "===== Set volume : signal");
143 dbus_message_get_args(msg, &err,
144 DBUS_TYPE_INT32, &uid,
145 DBUS_TYPE_INT32, &volume,
148 if (dbus_error_is_set(&err)) {
149 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Get arguments error (%s)", err.message);
150 dbus_error_free(&err);
153 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set volume : uid(%d), volume(%f)", uid, volume);
154 __stt_cb_set_volume(uid, volume);
156 /* SLOG(LOG_DEBUG, TAG_STTC, "====="); */
157 /* SLOG(LOG_DEBUG, TAG_STTC, " "); */
158 } /* STTD_METHOD_SET_VOLUME */
160 else if (dbus_message_is_signal(msg, if_name, STTD_METHOD_RESULT)) {
161 SLOG(LOG_DEBUG, TAG_STTC, "===== Get Result : signal");
163 DBusMessageIter args;
165 dbus_message_iter_init(msg, &args);
168 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
169 dbus_message_iter_get_basic(&args, &uid);
170 dbus_message_iter_next(&args);
173 stt_client_s* client = NULL;
174 client = stt_client_get_by_uid(uid);
175 if (NULL != client) {
176 char** temp_result = NULL;
177 char* temp_msg = NULL;
178 char* temp_char = NULL;
181 int temp_result_id = 0;
183 /* Get recognition type */
184 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
185 dbus_message_iter_get_basic(&args, &temp_event);
186 dbus_message_iter_next(&args);
189 if (DBUS_TYPE_STRING == dbus_message_iter_get_arg_type(&args)) {
190 dbus_message_iter_get_basic(&args, &(temp_msg));
191 dbus_message_iter_next(&args);
195 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
196 dbus_message_iter_get_basic(&args, &temp_count);
197 dbus_message_iter_next(&args);
201 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
202 dbus_message_iter_get_basic(&args, &temp_result_id);
203 dbus_message_iter_next(&args);
206 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt get result : uid(%d) event(%d) message(%s) count(%d) result id(%d)",
207 uid, temp_event, temp_msg, temp_count, temp_result_id);
209 if (temp_count <= 0) {
210 __stt_cb_result(uid, temp_event, NULL, 0, temp_msg);
212 temp_result = (char**)calloc(temp_count, sizeof(char*));
214 if (NULL == temp_result) {
215 SLOG(LOG_ERROR, TAG_STTC, "Fail : memory allocation error");
218 for (i = 0; i < temp_count; i++) {
219 dbus_message_iter_get_basic(&args, &(temp_char));
220 dbus_message_iter_next(&args);
222 if (NULL != temp_char) {
223 temp_result[i] = strdup(temp_char);
224 SLOG(LOG_DEBUG, TAG_STTC, "result[%d] : %s", i, temp_result[i]);
228 __stt_cb_result(uid, temp_event, temp_result, temp_count, temp_msg);
230 for (i = 0; i < temp_count; i++) {
231 if (NULL != temp_result[i])
232 free(temp_result[i]);
239 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get result : invalid uid");
242 SLOG(LOG_DEBUG, TAG_STTC, "=====");
243 SLOG(LOG_DEBUG, TAG_STTC, " ");
244 } /* STTD_METHOD_RESULT */
246 else if (dbus_message_is_signal(msg, if_name, STTD_METHOD_ERROR)) {
247 SLOG(LOG_DEBUG, TAG_STTC, "===== Get Error");
252 dbus_message_get_args(msg, &err,
253 DBUS_TYPE_INT32, &uid,
254 DBUS_TYPE_INT32, &reason,
255 DBUS_TYPE_STRING, &err_msg,
258 if (dbus_error_is_set(&err)) {
259 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt Get Error message : Get arguments error (%s)", err.message);
260 dbus_error_free(&err);
262 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt Get Error message : uid(%d), reason(%d), err_msg(%s)", uid, reason, (NULL == err_msg) ? "NULL" : err_msg);
263 __stt_cb_error(uid, reason, err_msg);
266 SLOG(LOG_DEBUG, TAG_STTC, "=====");
267 SLOG(LOG_DEBUG, TAG_STTC, " ");
268 } /* STTD_METHOD_ERROR */
271 SLOG(LOG_DEBUG, TAG_STTC, "Message is NOT valid");
272 dbus_message_unref(msg);
276 /* free the message */
277 dbus_message_unref(msg);
280 return ECORE_CALLBACK_RENEW;
283 int stt_dbus_open_connection()
285 if (NULL != g_conn_sender && NULL != g_conn_listener) {
286 SLOG(LOG_WARN, TAG_STTC, "already existed connection ");
292 /* initialise the error value */
293 dbus_error_init(&err);
295 /* connect to the DBUS system bus, and check for errors */
296 g_conn_sender = dbus_bus_get_private(DBUS_BUS_SESSION, &err);
297 if (dbus_error_is_set(&err)) {
298 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Dbus Connection Error (%s)", err.message);
299 dbus_error_free(&err);
302 if (NULL == g_conn_sender) {
303 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] fail to get dbus connection");
304 return STT_ERROR_OPERATION_FAILED;
307 dbus_connection_set_exit_on_disconnect(g_conn_sender, false);
309 /* connect to the DBUS system bus, and check for errors */
310 g_conn_listener = dbus_bus_get_private(DBUS_BUS_SESSION, &err);
312 if (dbus_error_is_set(&err)) {
313 SLOG(LOG_ERROR, TAG_STTC, "Dbus Connection Error (%s)", err.message);
314 dbus_error_free(&err);
317 if (NULL == g_conn_listener) {
318 SLOG(LOG_ERROR, TAG_STTC, "Fail to get dbus connection");
319 return STT_ERROR_OPERATION_FAILED;
324 char service_name[64];
325 memset(service_name, '\0', 64);
326 snprintf(service_name, 64, "%s%d", STT_CLIENT_SERVICE_NAME, pid);
328 SLOG(LOG_DEBUG, TAG_STTC, "service name is %s", service_name);
330 /* register our name on the bus, and check for errors */
331 dbus_bus_request_name(g_conn_listener, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
333 if (dbus_error_is_set(&err)) {
334 SLOG(LOG_ERROR, TAG_STTC, "Name Error (%s)", err.message);
335 dbus_error_free(&err);
338 char rule[128] = {0, };
339 snprintf(rule, 128, "type='signal',interface='%s%d'", STT_CLIENT_SERVICE_INTERFACE, pid);
341 /* add a rule for which messages we want to see */
342 dbus_bus_add_match(g_conn_listener, rule, &err);
343 dbus_connection_flush(g_conn_listener);
345 if (dbus_error_is_set(&err)) {
346 SLOG(LOG_ERROR, TAG_STTC, "Match Error (%s)", err.message);
347 dbus_error_free(&err);
348 return STT_ERROR_OPERATION_FAILED;
352 if (true != dbus_connection_get_unix_fd(g_conn_listener, &fd)) {
353 SLOG(LOG_ERROR, TAG_STTC, "Fail to get fd from dbus");
354 return STT_ERROR_OPERATION_FAILED;
356 SLOG(LOG_DEBUG, TAG_STTC, "Get fd from dbus : %d", fd);
359 g_fd_handler = ecore_main_fd_handler_add(fd, ECORE_FD_READ, (Ecore_Fd_Cb)listener_event_callback, g_conn_listener, NULL, NULL);
360 if (NULL == g_fd_handler) {
361 SLOG(LOG_ERROR, TAG_STTC, "fail to get fd handler from ecore");
362 return STT_ERROR_OPERATION_FAILED;
368 int stt_dbus_close_connection()
371 dbus_error_init(&err);
373 if (NULL != g_fd_handler) {
374 ecore_main_fd_handler_del(g_fd_handler);
380 char service_name[64];
381 memset(service_name, '\0', 64);
382 snprintf(service_name, 64, "%s%d", STT_CLIENT_SERVICE_NAME, pid);
384 dbus_bus_release_name(g_conn_listener, service_name, &err);
385 if (dbus_error_is_set(&err)) {
386 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Release name Error (%s)", err.message);
387 dbus_error_free(&err);
390 dbus_connection_close(g_conn_sender);
391 dbus_connection_close(g_conn_listener);
393 g_conn_sender = NULL;
394 g_conn_listener = NULL;
399 int stt_dbus_reconnect()
401 bool sender_connected = dbus_connection_get_is_connected(g_conn_sender);
402 bool listener_connected = dbus_connection_get_is_connected(g_conn_listener);
403 SLOG(LOG_DEBUG, TAG_STTC, "[DBUS] Sender(%s) Listener(%s)",
404 sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected");
406 if (false == sender_connected || false == listener_connected) {
407 stt_dbus_close_connection();
409 if (0 != stt_dbus_open_connection()) {
410 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Fail to reconnect");
414 SLOG(LOG_DEBUG, TAG_STTC, "[DBUS] Reconnect");
420 int stt_dbus_request_hello()
424 msg = dbus_message_new_method_call(
425 STT_SERVER_SERVICE_NAME,
426 STT_SERVER_SERVICE_OBJECT_PATH,
427 STT_SERVER_SERVICE_INTERFACE,
431 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request stt hello : Fail to make message");
432 return STT_ERROR_OPERATION_FAILED;
436 dbus_error_init(&err);
438 DBusMessage* result_msg = NULL;
442 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_short_time, &err);
443 dbus_message_unref(msg);
444 if (dbus_error_is_set(&err)) {
445 dbus_error_free(&err);
448 if (NULL != result_msg) {
449 dbus_message_unref(result_msg);
451 if (dbus_error_is_set(&err)) {
452 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Get arguments error (%s)", err.message);
453 dbus_error_free(&err);
456 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt hello");
458 result = STT_ERROR_TIMED_OUT;
461 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
462 result = STT_ERROR_OPERATION_FAILED;
469 int stt_dbus_request_initialize(int uid, bool* silence_supported, bool* credential_needed)
473 msg = dbus_message_new_method_call(
474 STT_SERVER_SERVICE_NAME,
475 STT_SERVER_SERVICE_OBJECT_PATH,
476 STT_SERVER_SERVICE_INTERFACE,
477 STT_METHOD_INITIALIZE);
480 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt initialize : Fail to make message");
481 return STT_ERROR_OPERATION_FAILED;
483 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt initialize : uid(%d)", uid);
487 dbus_message_append_args(msg,
488 DBUS_TYPE_INT32, &pid,
489 DBUS_TYPE_INT32, &uid,
493 dbus_error_init(&err);
495 DBusMessage* result_msg;
496 int result = STT_ERROR_OPERATION_FAILED;
499 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
500 dbus_message_unref(msg);
501 if (dbus_error_is_set(&err)) {
502 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
503 dbus_error_free(&err);
506 if (NULL != result_msg) {
507 dbus_message_get_args(result_msg, &err,
508 DBUS_TYPE_INT32, &result,
509 DBUS_TYPE_INT32, silence_supported,
510 DBUS_TYPE_INT32, credential_needed,
513 if (dbus_error_is_set(&err)) {
514 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
515 dbus_error_free(&err);
516 result = STT_ERROR_OPERATION_FAILED;
520 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt initialize : result = %d, silence(%d), credential(%d)",
521 result, *silence_supported, *credential_needed);
523 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt initialize : result = %d", result);
526 dbus_message_unref(result_msg);
528 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
529 stt_dbus_reconnect();
530 result = STT_ERROR_TIMED_OUT;
533 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
534 result = STT_ERROR_OPERATION_FAILED;
540 int stt_dbus_request_finalize(int uid)
544 msg = dbus_message_new_method_call(
545 STT_SERVER_SERVICE_NAME,
546 STT_SERVER_SERVICE_OBJECT_PATH,
547 STT_SERVER_SERVICE_INTERFACE,
548 STT_METHOD_FINALIZE);
551 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt finalize : Fail to make message");
552 return STT_ERROR_OPERATION_FAILED;
554 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt finalize : uid(%d)", uid);
557 dbus_message_append_args(msg, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
560 dbus_error_init(&err);
562 DBusMessage* result_msg;
563 int result = STT_ERROR_OPERATION_FAILED;
565 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_short_time, &err);
566 dbus_message_unref(msg);
567 if (dbus_error_is_set(&err)) {
568 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
569 dbus_error_free(&err);
572 if (NULL != result_msg) {
573 dbus_message_get_args(result_msg, &err,
574 DBUS_TYPE_INT32, &result,
577 if (dbus_error_is_set(&err)) {
578 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
579 dbus_error_free(&err);
580 result = STT_ERROR_OPERATION_FAILED;
583 dbus_message_unref(result_msg);
586 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt finalize : result = %d", result);
588 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt finalize : result = %d", result);
591 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
592 stt_dbus_reconnect();
593 result = STT_ERROR_TIMED_OUT;
599 int stt_dbus_request_set_current_engine(int uid, const char* engine_id, bool* silence_supported, bool* credential_needed)
603 msg = dbus_message_new_method_call(
604 STT_SERVER_SERVICE_NAME,
605 STT_SERVER_SERVICE_OBJECT_PATH,
606 STT_SERVER_SERVICE_INTERFACE,
607 STT_METHOD_SET_CURRENT_ENGINE);
610 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt set engine : Fail to make message");
611 return STT_ERROR_OPERATION_FAILED;
613 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt set engine : uid(%d)", uid);
616 dbus_message_append_args(msg,
617 DBUS_TYPE_INT32, &uid,
618 DBUS_TYPE_STRING, &engine_id,
622 dbus_error_init(&err);
624 DBusMessage* result_msg;
625 int result = STT_ERROR_OPERATION_FAILED;
627 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
628 dbus_message_unref(msg);
629 if (dbus_error_is_set(&err)) {
630 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
631 dbus_error_free(&err);
634 if (NULL != result_msg) {
635 dbus_message_get_args(result_msg, &err,
636 DBUS_TYPE_INT32, &result,
637 DBUS_TYPE_INT32, silence_supported,
638 DBUS_TYPE_INT32, credential_needed,
641 if (dbus_error_is_set(&err)) {
642 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
643 dbus_error_free(&err);
644 result = STT_ERROR_OPERATION_FAILED;
647 dbus_message_unref(result_msg);
650 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set engine : result = %d , silence(%d), credential(%d)",
651 result, *silence_supported, *credential_needed);
653 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set engine : result = %d", result);
656 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
657 stt_dbus_reconnect();
658 result = STT_ERROR_TIMED_OUT;
664 int stt_dbus_request_check_app_agreed(int uid, const char* appid, bool* value)
666 if (NULL == appid || NULL == value) {
667 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
668 return STT_ERROR_INVALID_PARAMETER;
673 msg = dbus_message_new_method_call(
674 STT_SERVER_SERVICE_NAME,
675 STT_SERVER_SERVICE_OBJECT_PATH,
676 STT_SERVER_SERVICE_INTERFACE,
677 STT_METHOD_CHECK_APP_AGREED);
680 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt check app agreed : Fail to make message");
681 return STT_ERROR_OPERATION_FAILED;
683 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt check app agreed : uid(%d) appid(%s)", uid, appid);
686 dbus_message_append_args(msg,
687 DBUS_TYPE_INT32, &uid,
688 DBUS_TYPE_STRING, &appid,
692 dbus_error_init(&err);
694 DBusMessage* result_msg;
695 int result = STT_ERROR_OPERATION_FAILED;
698 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
699 dbus_message_unref(msg);
700 if (dbus_error_is_set(&err)) {
701 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
702 dbus_error_free(&err);
705 if (NULL != result_msg) {
706 dbus_message_get_args(result_msg, &err,
707 DBUS_TYPE_INT32, &result,
708 DBUS_TYPE_INT32, &available,
711 if (dbus_error_is_set(&err)) {
712 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
713 dbus_error_free(&err);
714 result = STT_ERROR_OPERATION_FAILED;
716 dbus_message_unref(result_msg);
719 *value = (bool)available;
720 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt check app agreed : result = %d, available = %d", result, *value);
722 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt check app agreed : result = %d", result);
725 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
726 stt_dbus_reconnect();
727 result = STT_ERROR_TIMED_OUT;
733 int stt_dbus_request_get_support_langs(int uid, stt_h stt, stt_supported_language_cb callback, void* user_data)
735 if (NULL == stt || NULL == callback) {
736 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
737 return STT_ERROR_INVALID_PARAMETER;
742 msg = dbus_message_new_method_call(
743 STT_SERVER_SERVICE_NAME,
744 STT_SERVER_SERVICE_OBJECT_PATH,
745 STT_SERVER_SERVICE_INTERFACE,
746 STT_METHOD_GET_SUPPORT_LANGS);
749 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt get supported languages : Fail to make message");
750 return STT_ERROR_OPERATION_FAILED;
752 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt get supported languages : uid(%d)", uid);
755 dbus_message_append_args(msg, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
758 dbus_error_init(&err);
760 DBusMessage* result_msg;
761 DBusMessageIter args;
762 int result = STT_ERROR_OPERATION_FAILED;
764 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
765 dbus_message_unref(msg);
766 if (dbus_error_is_set(&err)) {
767 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
768 dbus_error_free(&err);
771 if (NULL != result_msg) {
772 if (dbus_message_iter_init(result_msg, &args)) {
774 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
775 dbus_message_iter_get_basic(&args, &result);
776 dbus_message_iter_next(&args);
780 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt get support languages : result = %d", result);
784 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
785 dbus_message_iter_get_basic(&args, &size);
786 dbus_message_iter_next(&args);
790 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt size of language error : size = %d", size);
795 for (i = 0; i < size; i++) {
796 dbus_message_iter_get_basic(&args, &(temp_lang));
797 dbus_message_iter_next(&args);
799 if (true != callback(stt, temp_lang, user_data)) {
805 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get support languages : result = %d", result);
808 dbus_message_unref(result_msg);
810 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get support languages : result message is NULL");
811 stt_dbus_reconnect();
812 result = STT_ERROR_TIMED_OUT;
818 int stt_dbus_request_get_default_lang(int uid, char** language)
820 if (NULL == language) {
821 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
822 return STT_ERROR_INVALID_PARAMETER;
827 msg = dbus_message_new_method_call(
828 STT_SERVER_SERVICE_NAME,
829 STT_SERVER_SERVICE_OBJECT_PATH,
830 STT_SERVER_SERVICE_INTERFACE,
831 STT_METHOD_GET_CURRENT_LANG);
834 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt get default language : Fail to make message");
835 return STT_ERROR_OPERATION_FAILED;
837 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt get default language : uid(%d)", uid);
840 dbus_message_append_args(msg,
841 DBUS_TYPE_INT32, &uid,
845 dbus_error_init(&err);
847 DBusMessage* result_msg;
848 int result = STT_ERROR_OPERATION_FAILED;
849 char* temp_lang = NULL;
851 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
852 dbus_message_unref(msg);
853 if (dbus_error_is_set(&err)) {
854 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
855 dbus_error_free(&err);
858 if (NULL != result_msg) {
859 dbus_message_get_args(result_msg, &err,
860 DBUS_TYPE_INT32, &result,
861 DBUS_TYPE_STRING, &temp_lang,
864 if (dbus_error_is_set(&err)) {
865 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
866 dbus_error_free(&err);
867 result = STT_ERROR_OPERATION_FAILED;
869 dbus_message_unref(result_msg);
872 *language = strdup(temp_lang);
873 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt get default language : result = %d, language = %s", result, *language);
875 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get default language : result = %d", result);
878 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
879 stt_dbus_reconnect();
880 result = STT_ERROR_TIMED_OUT;
886 int stt_dbus_request_is_recognition_type_supported(int uid, const char* type, bool* support)
888 if (NULL == support || NULL == type) {
889 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
890 return STT_ERROR_INVALID_PARAMETER;
895 msg = dbus_message_new_method_call(
896 STT_SERVER_SERVICE_NAME,
897 STT_SERVER_SERVICE_OBJECT_PATH,
898 STT_SERVER_SERVICE_INTERFACE,
899 STT_METHOD_IS_TYPE_SUPPORTED);
902 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt is partial result supported : Fail to make message");
903 return STT_ERROR_OPERATION_FAILED;
905 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt is recognition type supported : uid(%d) type(%s)", uid, type);
908 dbus_message_append_args(msg,
909 DBUS_TYPE_INT32, &uid,
910 DBUS_TYPE_STRING, &type,
914 dbus_error_init(&err);
916 DBusMessage* result_msg;
917 int result = STT_ERROR_OPERATION_FAILED;
918 int result_support = -1;
920 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
921 dbus_message_unref(msg);
922 if (dbus_error_is_set(&err)) {
923 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
924 dbus_error_free(&err);
927 if (NULL != result_msg) {
928 dbus_message_get_args(result_msg, &err,
929 DBUS_TYPE_INT32, &result,
930 DBUS_TYPE_INT32, &result_support,
933 if (dbus_error_is_set(&err)) {
934 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
935 dbus_error_free(&err);
936 result = STT_ERROR_OPERATION_FAILED;
938 dbus_message_unref(result_msg);
941 *support = (bool)result_support;
942 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt is recognition type supported : result = %d, support = %s", result, *support ? "true" : "false");
944 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt is recognition type supported : result = %d", result);
947 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
948 stt_dbus_reconnect();
949 result = STT_ERROR_TIMED_OUT;
955 int stt_dbus_request_set_start_sound(int uid, const char* file)
958 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
959 return STT_ERROR_INVALID_PARAMETER;
964 msg = dbus_message_new_method_call(
965 STT_SERVER_SERVICE_NAME,
966 STT_SERVER_SERVICE_OBJECT_PATH,
967 STT_SERVER_SERVICE_INTERFACE,
968 STT_METHOD_SET_START_SOUND);
971 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt set start sound : Fail to make message");
972 return STT_ERROR_OPERATION_FAILED;
974 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt set start sound : uid(%d) file(%s)", uid, file);
977 dbus_message_append_args(msg,
978 DBUS_TYPE_INT32, &uid,
979 DBUS_TYPE_STRING, &file,
983 dbus_error_init(&err);
985 DBusMessage* result_msg;
986 int result = STT_ERROR_OPERATION_FAILED;
988 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
989 dbus_message_unref(msg);
990 if (dbus_error_is_set(&err)) {
991 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
992 dbus_error_free(&err);
995 if (NULL != result_msg) {
996 dbus_message_get_args(result_msg, &err,
997 DBUS_TYPE_INT32, &result,
1000 if (dbus_error_is_set(&err)) {
1001 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1002 dbus_error_free(&err);
1003 result = STT_ERROR_OPERATION_FAILED;
1005 dbus_message_unref(result_msg);
1008 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set start sound : result = %d", result);
1010 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set start sound : result = %d", result);
1013 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1014 stt_dbus_reconnect();
1015 result = STT_ERROR_TIMED_OUT;
1021 int stt_dbus_request_unset_start_sound(int uid)
1025 msg = dbus_message_new_method_call(
1026 STT_SERVER_SERVICE_NAME,
1027 STT_SERVER_SERVICE_OBJECT_PATH,
1028 STT_SERVER_SERVICE_INTERFACE,
1029 STT_METHOD_UNSET_START_SOUND);
1032 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt unset start sound : Fail to make message");
1033 return STT_ERROR_OPERATION_FAILED;
1035 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt unset start sound : uid(%d)", uid);
1038 dbus_message_append_args(msg,
1039 DBUS_TYPE_INT32, &uid,
1043 dbus_error_init(&err);
1045 DBusMessage* result_msg;
1046 int result = STT_ERROR_OPERATION_FAILED;
1048 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1049 dbus_message_unref(msg);
1050 if (dbus_error_is_set(&err)) {
1051 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1052 dbus_error_free(&err);
1055 if (NULL != result_msg) {
1056 dbus_message_get_args(result_msg, &err,
1057 DBUS_TYPE_INT32, &result,
1060 if (dbus_error_is_set(&err)) {
1061 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1062 dbus_error_free(&err);
1063 result = STT_ERROR_OPERATION_FAILED;
1065 dbus_message_unref(result_msg);
1068 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt unset start sound : result = %d", result);
1070 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt unset start sound : result = %d", result);
1073 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1074 stt_dbus_reconnect();
1075 result = STT_ERROR_TIMED_OUT;
1081 int stt_dbus_request_set_stop_sound(int uid, const char* file)
1084 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
1085 return STT_ERROR_INVALID_PARAMETER;
1090 msg = dbus_message_new_method_call(
1091 STT_SERVER_SERVICE_NAME,
1092 STT_SERVER_SERVICE_OBJECT_PATH,
1093 STT_SERVER_SERVICE_INTERFACE,
1094 STT_METHOD_SET_STOP_SOUND);
1097 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt set stop sound : Fail to make message");
1098 return STT_ERROR_OPERATION_FAILED;
1100 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt set stop sound : uid(%d) file(%s)", uid, file);
1103 dbus_message_append_args(msg,
1104 DBUS_TYPE_INT32, &uid,
1105 DBUS_TYPE_STRING, &file,
1109 dbus_error_init(&err);
1111 DBusMessage* result_msg;
1112 int result = STT_ERROR_OPERATION_FAILED;
1114 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1115 dbus_message_unref(msg);
1116 if (dbus_error_is_set(&err)) {
1117 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1118 dbus_error_free(&err);
1121 if (NULL != result_msg) {
1122 dbus_message_get_args(result_msg, &err,
1123 DBUS_TYPE_INT32, &result,
1126 if (dbus_error_is_set(&err)) {
1127 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1128 dbus_error_free(&err);
1129 result = STT_ERROR_OPERATION_FAILED;
1131 dbus_message_unref(result_msg);
1134 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set stop sound : result = %d", result);
1136 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set stop sound : result = %d", result);
1139 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1140 stt_dbus_reconnect();
1141 result = STT_ERROR_TIMED_OUT;
1147 int stt_dbus_request_unset_stop_sound(int uid)
1151 msg = dbus_message_new_method_call(
1152 STT_SERVER_SERVICE_NAME,
1153 STT_SERVER_SERVICE_OBJECT_PATH,
1154 STT_SERVER_SERVICE_INTERFACE,
1155 STT_METHOD_UNSET_STOP_SOUND);
1158 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt unset stop sound : Fail to make message");
1159 return STT_ERROR_OPERATION_FAILED;
1161 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt unset stop sound : uid(%d)", uid);
1164 dbus_message_append_args(msg,
1165 DBUS_TYPE_INT32, &uid,
1169 dbus_error_init(&err);
1171 DBusMessage* result_msg;
1172 int result = STT_ERROR_OPERATION_FAILED;
1174 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1175 dbus_message_unref(msg);
1176 if (dbus_error_is_set(&err)) {
1177 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1178 dbus_error_free(&err);
1181 if (NULL != result_msg) {
1182 dbus_message_get_args(result_msg, &err,
1183 DBUS_TYPE_INT32, &result,
1186 if (dbus_error_is_set(&err)) {
1187 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1188 dbus_error_free(&err);
1189 result = STT_ERROR_OPERATION_FAILED;
1191 dbus_message_unref(result_msg);
1194 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt unset stop sound : result = %d", result);
1196 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt unset stop sound : result = %d", result);
1199 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1200 stt_dbus_reconnect();
1201 result = STT_ERROR_TIMED_OUT;
1207 int stt_dbus_request_start(int uid, const char* lang, const char* type, int silence, const char* appid, const char* credential)
1209 if (NULL == lang || NULL == type || NULL == appid) {
1210 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
1211 return STT_ERROR_INVALID_PARAMETER;
1216 /* create a signal & check for errors */
1217 msg = dbus_message_new_method_call(
1218 STT_SERVER_SERVICE_NAME,
1219 STT_SERVER_SERVICE_OBJECT_PATH,
1220 STT_SERVER_SERVICE_INTERFACE,
1224 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt start : Fail to make message");
1225 return STT_ERROR_OPERATION_FAILED;
1227 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt start : uid(%d), language(%s), type(%s)", uid, lang, type);
1230 dbus_message_append_args(msg,
1231 DBUS_TYPE_INT32, &uid,
1232 DBUS_TYPE_STRING, &lang,
1233 DBUS_TYPE_STRING, &type,
1234 DBUS_TYPE_INT32, &silence,
1235 DBUS_TYPE_STRING, &appid,
1236 DBUS_TYPE_STRING, &credential,
1239 if (g_conn_sender) {
1240 dbus_message_set_no_reply(msg, TRUE);
1242 if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
1243 SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt start message : Out Of Memory !");
1244 return STT_ERROR_OUT_OF_MEMORY;
1246 dbus_connection_flush(g_conn_sender);
1249 dbus_message_unref(msg);
1252 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
1253 return STT_ERROR_OPERATION_FAILED;
1259 dbus_error_init(&err);
1261 DBusMessage* result_msg;
1262 int result = STT_ERROR_OPERATION_FAILED;
1264 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1265 dbus_message_unref(msg);
1266 if (dbus_error_is_set(&err)) {
1267 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1268 dbus_error_free(&err);
1271 if (NULL != result_msg) {
1272 dbus_message_get_args(result_msg, &err,
1273 DBUS_TYPE_INT32, &result,
1276 if (dbus_error_is_set(&err)) {
1277 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1278 dbus_error_free(&err);
1279 result = STT_ERROR_OPERATION_FAILED;
1281 dbus_message_unref(result_msg);
1284 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt start : result = %d ", result);
1286 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt start : result = %d ", result);
1289 SLOG(LOG_DEBUG, TAG_STTC, "<<<< Result Message is NULL");
1290 stt_dbus_reconnect();
1291 result = STT_ERROR_TIMED_OUT;
1298 int stt_dbus_request_stop(int uid)
1302 /* create a signal & check for errors */
1303 msg = dbus_message_new_method_call(
1304 STT_SERVER_SERVICE_NAME,
1305 STT_SERVER_SERVICE_OBJECT_PATH,
1306 STT_SERVER_SERVICE_INTERFACE,
1310 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt stop : Fail to make message");
1311 return STT_ERROR_OPERATION_FAILED;
1313 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt stop : uid(%d)", uid);
1316 dbus_message_append_args(msg,
1317 DBUS_TYPE_INT32, &uid,
1320 if (g_conn_sender) {
1321 dbus_message_set_no_reply(msg, TRUE);
1323 if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
1324 SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !");
1325 return STT_ERROR_OUT_OF_MEMORY;
1327 dbus_connection_flush(g_conn_sender);
1330 dbus_message_unref(msg);
1332 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
1333 return STT_ERROR_OPERATION_FAILED;
1339 dbus_error_init(&err);
1341 DBusMessage* result_msg;
1342 int result = STT_ERROR_OPERATION_FAILED;
1344 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1345 dbus_message_unref(msg);
1346 if (dbus_error_is_set(&err)) {
1347 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1348 dbus_error_free(&err);
1351 if (NULL != result_msg) {
1352 dbus_message_get_args(result_msg, &err,
1353 DBUS_TYPE_INT32, &result,
1356 if (dbus_error_is_set(&err)) {
1357 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1358 dbus_error_free(&err);
1359 result = STT_ERROR_OPERATION_FAILED;
1361 dbus_message_unref(result_msg);
1364 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt stop : result = %d ", result);
1366 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt stop : result = %d ", result);
1369 SLOG(LOG_DEBUG, TAG_STTC, "<<<< Result Message is NULL");
1370 stt_dbus_reconnect();
1371 result = STT_ERROR_TIMED_OUT;
1378 int stt_dbus_request_cancel(int uid)
1382 /* create a signal & check for errors */
1383 msg = dbus_message_new_method_call(
1384 STT_SERVER_SERVICE_NAME,
1385 STT_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
1386 STT_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
1387 STT_METHOD_CANCEL); /* name of the signal */
1390 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt cancel : Fail to make message");
1391 return STT_ERROR_OPERATION_FAILED;
1393 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt cancel : uid(%d)", uid);
1396 dbus_message_append_args(msg,
1397 DBUS_TYPE_INT32, &uid,
1400 if (g_conn_sender) {
1401 dbus_message_set_no_reply(msg, TRUE);
1403 if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
1404 SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !");
1405 return STT_ERROR_OUT_OF_MEMORY;
1407 dbus_connection_flush(g_conn_sender);
1410 dbus_message_unref(msg);
1412 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
1413 return STT_ERROR_OPERATION_FAILED;
1419 dbus_error_init(&err);
1421 DBusMessage* result_msg;
1422 int result = STT_ERROR_OPERATION_FAILED;
1424 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1425 dbus_message_unref(msg);
1426 if (dbus_error_is_set(&err)) {
1427 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1428 dbus_error_free(&err);
1431 if (NULL != result_msg) {
1432 dbus_message_get_args(result_msg, &err,
1433 DBUS_TYPE_INT32, &result,
1436 if (dbus_error_is_set(&err)) {
1437 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1438 dbus_error_free(&err);
1439 result = STT_ERROR_OPERATION_FAILED;
1441 dbus_message_unref(result_msg);
1444 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt cancel : result = %d ", result);
1446 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt cancel : result = %d ", result);
1449 SLOG(LOG_DEBUG, TAG_STTC, "<<<< Result Message is NULL");
1450 stt_dbus_reconnect();
1451 result = STT_ERROR_TIMED_OUT;