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);
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), msg(%s)", uid, reason, err_msg);
263 __stt_cb_error(uid, reason);
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)
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,
512 if (dbus_error_is_set(&err)) {
513 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
514 dbus_error_free(&err);
515 result = STT_ERROR_OPERATION_FAILED;
519 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt initialize : result = %d, silence(%d)",
520 result, *silence_supported);
522 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt initialize : result = %d", result);
525 dbus_message_unref(result_msg);
527 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
528 stt_dbus_reconnect();
529 result = STT_ERROR_TIMED_OUT;
532 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
533 result = STT_ERROR_OPERATION_FAILED;
539 int stt_dbus_request_finalize(int uid)
543 msg = dbus_message_new_method_call(
544 STT_SERVER_SERVICE_NAME,
545 STT_SERVER_SERVICE_OBJECT_PATH,
546 STT_SERVER_SERVICE_INTERFACE,
547 STT_METHOD_FINALIZE);
550 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt finalize : Fail to make message");
551 return STT_ERROR_OPERATION_FAILED;
553 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt finalize : uid(%d)", uid);
556 dbus_message_append_args(msg, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
559 dbus_error_init(&err);
561 DBusMessage* result_msg;
562 int result = STT_ERROR_OPERATION_FAILED;
564 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_short_time, &err);
565 dbus_message_unref(msg);
566 if (dbus_error_is_set(&err)) {
567 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
568 dbus_error_free(&err);
571 if (NULL != result_msg) {
572 dbus_message_get_args(result_msg, &err,
573 DBUS_TYPE_INT32, &result,
576 if (dbus_error_is_set(&err)) {
577 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
578 dbus_error_free(&err);
579 result = STT_ERROR_OPERATION_FAILED;
582 dbus_message_unref(result_msg);
585 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt finalize : result = %d", result);
587 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt finalize : result = %d", result);
590 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
591 stt_dbus_reconnect();
592 result = STT_ERROR_TIMED_OUT;
598 int stt_dbus_request_set_current_engine(int uid, const char* engine_id, bool* silence_supported)
602 msg = dbus_message_new_method_call(
603 STT_SERVER_SERVICE_NAME,
604 STT_SERVER_SERVICE_OBJECT_PATH,
605 STT_SERVER_SERVICE_INTERFACE,
606 STT_METHOD_SET_CURRENT_ENGINE);
609 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt set engine : Fail to make message");
610 return STT_ERROR_OPERATION_FAILED;
612 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt set engine : uid(%d)", uid);
615 dbus_message_append_args(msg,
616 DBUS_TYPE_INT32, &uid,
617 DBUS_TYPE_STRING, &engine_id,
621 dbus_error_init(&err);
623 DBusMessage* result_msg;
624 int result = STT_ERROR_OPERATION_FAILED;
626 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
627 dbus_message_unref(msg);
628 if (dbus_error_is_set(&err)) {
629 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
630 dbus_error_free(&err);
633 if (NULL != result_msg) {
634 dbus_message_get_args(result_msg, &err,
635 DBUS_TYPE_INT32, &result,
636 DBUS_TYPE_INT32, silence_supported,
639 if (dbus_error_is_set(&err)) {
640 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
641 dbus_error_free(&err);
642 result = STT_ERROR_OPERATION_FAILED;
645 dbus_message_unref(result_msg);
648 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set engine : result = %d , silence(%d)",
649 result, *silence_supported);
651 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set engine : result = %d", result);
654 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
655 stt_dbus_reconnect();
656 result = STT_ERROR_TIMED_OUT;
662 int stt_dbus_request_check_app_agreed(int uid, const char* appid, bool* value)
664 if (NULL == appid || NULL == value) {
665 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
666 return STT_ERROR_INVALID_PARAMETER;
671 msg = dbus_message_new_method_call(
672 STT_SERVER_SERVICE_NAME,
673 STT_SERVER_SERVICE_OBJECT_PATH,
674 STT_SERVER_SERVICE_INTERFACE,
675 STT_METHOD_CHECK_APP_AGREED);
678 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt check app agreed : Fail to make message");
679 return STT_ERROR_OPERATION_FAILED;
681 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt check app agreed : uid(%d) appid(%s)", uid, appid);
684 dbus_message_append_args(msg,
685 DBUS_TYPE_INT32, &uid,
686 DBUS_TYPE_STRING, &appid,
690 dbus_error_init(&err);
692 DBusMessage* result_msg;
693 int result = STT_ERROR_OPERATION_FAILED;
696 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
697 dbus_message_unref(msg);
698 if (dbus_error_is_set(&err)) {
699 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
700 dbus_error_free(&err);
703 if (NULL != result_msg) {
704 dbus_message_get_args(result_msg, &err,
705 DBUS_TYPE_INT32, &result,
706 DBUS_TYPE_INT32, &available,
709 if (dbus_error_is_set(&err)) {
710 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
711 dbus_error_free(&err);
712 result = STT_ERROR_OPERATION_FAILED;
714 dbus_message_unref(result_msg);
717 *value = (bool)available;
718 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt check app agreed : result = %d, available = %d", result, *value);
720 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt check app agreed : result = %d", result);
723 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
724 stt_dbus_reconnect();
725 result = STT_ERROR_TIMED_OUT;
731 int stt_dbus_request_get_support_langs(int uid, stt_h stt, stt_supported_language_cb callback, void* user_data)
733 if (NULL == stt || NULL == callback) {
734 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
735 return STT_ERROR_INVALID_PARAMETER;
740 msg = dbus_message_new_method_call(
741 STT_SERVER_SERVICE_NAME,
742 STT_SERVER_SERVICE_OBJECT_PATH,
743 STT_SERVER_SERVICE_INTERFACE,
744 STT_METHOD_GET_SUPPORT_LANGS);
747 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt get supported languages : Fail to make message");
748 return STT_ERROR_OPERATION_FAILED;
750 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt get supported languages : uid(%d)", uid);
753 dbus_message_append_args(msg, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
756 dbus_error_init(&err);
758 DBusMessage* result_msg;
759 DBusMessageIter args;
760 int result = STT_ERROR_OPERATION_FAILED;
762 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
763 dbus_message_unref(msg);
764 if (dbus_error_is_set(&err)) {
765 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
766 dbus_error_free(&err);
769 if (NULL != result_msg) {
770 if (dbus_message_iter_init(result_msg, &args)) {
772 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
773 dbus_message_iter_get_basic(&args, &result);
774 dbus_message_iter_next(&args);
778 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt get support languages : result = %d", result);
782 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
783 dbus_message_iter_get_basic(&args, &size);
784 dbus_message_iter_next(&args);
788 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt size of language error : size = %d", size);
793 for (i = 0; i < size; i++) {
794 dbus_message_iter_get_basic(&args, &(temp_lang));
795 dbus_message_iter_next(&args);
797 if (true != callback(stt, temp_lang, user_data)) {
803 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get support languages : result = %d", result);
806 dbus_message_unref(result_msg);
808 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get support languages : result message is NULL");
809 stt_dbus_reconnect();
810 result = STT_ERROR_TIMED_OUT;
816 int stt_dbus_request_get_default_lang(int uid, char** language)
818 if (NULL == language) {
819 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
820 return STT_ERROR_INVALID_PARAMETER;
825 msg = dbus_message_new_method_call(
826 STT_SERVER_SERVICE_NAME,
827 STT_SERVER_SERVICE_OBJECT_PATH,
828 STT_SERVER_SERVICE_INTERFACE,
829 STT_METHOD_GET_CURRENT_LANG);
832 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt get default language : Fail to make message");
833 return STT_ERROR_OPERATION_FAILED;
835 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt get default language : uid(%d)", uid);
838 dbus_message_append_args(msg,
839 DBUS_TYPE_INT32, &uid,
843 dbus_error_init(&err);
845 DBusMessage* result_msg;
846 int result = STT_ERROR_OPERATION_FAILED;
847 char* temp_lang = NULL;
849 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
850 dbus_message_unref(msg);
851 if (dbus_error_is_set(&err)) {
852 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
853 dbus_error_free(&err);
856 if (NULL != result_msg) {
857 dbus_message_get_args(result_msg, &err,
858 DBUS_TYPE_INT32, &result,
859 DBUS_TYPE_STRING, &temp_lang,
862 if (dbus_error_is_set(&err)) {
863 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
864 dbus_error_free(&err);
865 result = STT_ERROR_OPERATION_FAILED;
867 dbus_message_unref(result_msg);
870 *language = strdup(temp_lang);
871 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt get default language : result = %d, language = %s", result, *language);
873 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt get default language : result = %d", result);
876 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
877 stt_dbus_reconnect();
878 result = STT_ERROR_TIMED_OUT;
884 int stt_dbus_request_is_recognition_type_supported(int uid, const char* type, bool* support)
886 if (NULL == support || NULL == type) {
887 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
888 return STT_ERROR_INVALID_PARAMETER;
893 msg = dbus_message_new_method_call(
894 STT_SERVER_SERVICE_NAME,
895 STT_SERVER_SERVICE_OBJECT_PATH,
896 STT_SERVER_SERVICE_INTERFACE,
897 STT_METHOD_IS_TYPE_SUPPORTED);
900 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt is partial result supported : Fail to make message");
901 return STT_ERROR_OPERATION_FAILED;
903 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt is recognition type supported : uid(%d) type(%s)", uid, type);
906 dbus_message_append_args(msg,
907 DBUS_TYPE_INT32, &uid,
908 DBUS_TYPE_STRING, &type,
912 dbus_error_init(&err);
914 DBusMessage* result_msg;
915 int result = STT_ERROR_OPERATION_FAILED;
916 int result_support = -1;
918 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
919 dbus_message_unref(msg);
920 if (dbus_error_is_set(&err)) {
921 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
922 dbus_error_free(&err);
925 if (NULL != result_msg) {
926 dbus_message_get_args(result_msg, &err,
927 DBUS_TYPE_INT32, &result,
928 DBUS_TYPE_INT32, &result_support,
931 if (dbus_error_is_set(&err)) {
932 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
933 dbus_error_free(&err);
934 result = STT_ERROR_OPERATION_FAILED;
936 dbus_message_unref(result_msg);
939 *support = (bool)result_support;
940 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt is recognition type supported : result = %d, support = %s", result, *support ? "true" : "false");
942 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt is recognition type supported : result = %d", result);
945 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
946 stt_dbus_reconnect();
947 result = STT_ERROR_TIMED_OUT;
953 int stt_dbus_request_set_start_sound(int uid, const char* file)
956 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
957 return STT_ERROR_INVALID_PARAMETER;
962 msg = dbus_message_new_method_call(
963 STT_SERVER_SERVICE_NAME,
964 STT_SERVER_SERVICE_OBJECT_PATH,
965 STT_SERVER_SERVICE_INTERFACE,
966 STT_METHOD_SET_START_SOUND);
969 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt set start sound : Fail to make message");
970 return STT_ERROR_OPERATION_FAILED;
972 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt set start sound : uid(%d) file(%s)", uid, file);
975 dbus_message_append_args(msg,
976 DBUS_TYPE_INT32, &uid,
977 DBUS_TYPE_STRING, &file,
981 dbus_error_init(&err);
983 DBusMessage* result_msg;
984 int result = STT_ERROR_OPERATION_FAILED;
986 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
987 dbus_message_unref(msg);
988 if (dbus_error_is_set(&err)) {
989 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
990 dbus_error_free(&err);
993 if (NULL != result_msg) {
994 dbus_message_get_args(result_msg, &err,
995 DBUS_TYPE_INT32, &result,
998 if (dbus_error_is_set(&err)) {
999 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1000 dbus_error_free(&err);
1001 result = STT_ERROR_OPERATION_FAILED;
1003 dbus_message_unref(result_msg);
1006 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set start sound : result = %d", result);
1008 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set start sound : result = %d", result);
1011 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1012 stt_dbus_reconnect();
1013 result = STT_ERROR_TIMED_OUT;
1019 int stt_dbus_request_unset_start_sound(int uid)
1023 msg = dbus_message_new_method_call(
1024 STT_SERVER_SERVICE_NAME,
1025 STT_SERVER_SERVICE_OBJECT_PATH,
1026 STT_SERVER_SERVICE_INTERFACE,
1027 STT_METHOD_UNSET_START_SOUND);
1030 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt unset start sound : Fail to make message");
1031 return STT_ERROR_OPERATION_FAILED;
1033 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt unset start sound : uid(%d)", uid);
1036 dbus_message_append_args(msg,
1037 DBUS_TYPE_INT32, &uid,
1041 dbus_error_init(&err);
1043 DBusMessage* result_msg;
1044 int result = STT_ERROR_OPERATION_FAILED;
1046 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1047 dbus_message_unref(msg);
1048 if (dbus_error_is_set(&err)) {
1049 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1050 dbus_error_free(&err);
1053 if (NULL != result_msg) {
1054 dbus_message_get_args(result_msg, &err,
1055 DBUS_TYPE_INT32, &result,
1058 if (dbus_error_is_set(&err)) {
1059 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1060 dbus_error_free(&err);
1061 result = STT_ERROR_OPERATION_FAILED;
1063 dbus_message_unref(result_msg);
1066 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt unset start sound : result = %d", result);
1068 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt unset start sound : result = %d", result);
1071 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1072 stt_dbus_reconnect();
1073 result = STT_ERROR_TIMED_OUT;
1079 int stt_dbus_request_set_stop_sound(int uid, const char* file)
1082 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
1083 return STT_ERROR_INVALID_PARAMETER;
1088 msg = dbus_message_new_method_call(
1089 STT_SERVER_SERVICE_NAME,
1090 STT_SERVER_SERVICE_OBJECT_PATH,
1091 STT_SERVER_SERVICE_INTERFACE,
1092 STT_METHOD_SET_STOP_SOUND);
1095 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt set stop sound : Fail to make message");
1096 return STT_ERROR_OPERATION_FAILED;
1098 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt set stop sound : uid(%d) file(%s)", uid, file);
1101 dbus_message_append_args(msg,
1102 DBUS_TYPE_INT32, &uid,
1103 DBUS_TYPE_STRING, &file,
1107 dbus_error_init(&err);
1109 DBusMessage* result_msg;
1110 int result = STT_ERROR_OPERATION_FAILED;
1112 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1113 dbus_message_unref(msg);
1114 if (dbus_error_is_set(&err)) {
1115 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1116 dbus_error_free(&err);
1119 if (NULL != result_msg) {
1120 dbus_message_get_args(result_msg, &err,
1121 DBUS_TYPE_INT32, &result,
1124 if (dbus_error_is_set(&err)) {
1125 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1126 dbus_error_free(&err);
1127 result = STT_ERROR_OPERATION_FAILED;
1129 dbus_message_unref(result_msg);
1132 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt set stop sound : result = %d", result);
1134 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt set stop sound : result = %d", result);
1137 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1138 stt_dbus_reconnect();
1139 result = STT_ERROR_TIMED_OUT;
1145 int stt_dbus_request_unset_stop_sound(int uid)
1149 msg = dbus_message_new_method_call(
1150 STT_SERVER_SERVICE_NAME,
1151 STT_SERVER_SERVICE_OBJECT_PATH,
1152 STT_SERVER_SERVICE_INTERFACE,
1153 STT_METHOD_UNSET_STOP_SOUND);
1156 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt unset stop sound : Fail to make message");
1157 return STT_ERROR_OPERATION_FAILED;
1159 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt unset stop sound : uid(%d)", uid);
1162 dbus_message_append_args(msg,
1163 DBUS_TYPE_INT32, &uid,
1167 dbus_error_init(&err);
1169 DBusMessage* result_msg;
1170 int result = STT_ERROR_OPERATION_FAILED;
1172 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1173 dbus_message_unref(msg);
1174 if (dbus_error_is_set(&err)) {
1175 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1176 dbus_error_free(&err);
1179 if (NULL != result_msg) {
1180 dbus_message_get_args(result_msg, &err,
1181 DBUS_TYPE_INT32, &result,
1184 if (dbus_error_is_set(&err)) {
1185 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1186 dbus_error_free(&err);
1187 result = STT_ERROR_OPERATION_FAILED;
1189 dbus_message_unref(result_msg);
1192 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt unset stop sound : result = %d", result);
1194 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt unset stop sound : result = %d", result);
1197 SLOG(LOG_ERROR, TAG_STTC, "<<<< Result message is NULL");
1198 stt_dbus_reconnect();
1199 result = STT_ERROR_TIMED_OUT;
1205 int stt_dbus_request_start(int uid, const char* lang, const char* type, int silence, const char* appid)
1207 if (NULL == lang || NULL == type || NULL == appid) {
1208 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
1209 return STT_ERROR_INVALID_PARAMETER;
1214 /* create a signal & check for errors */
1215 msg = dbus_message_new_method_call(
1216 STT_SERVER_SERVICE_NAME,
1217 STT_SERVER_SERVICE_OBJECT_PATH,
1218 STT_SERVER_SERVICE_INTERFACE,
1222 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt start : Fail to make message");
1223 return STT_ERROR_OPERATION_FAILED;
1225 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt start : uid(%d), language(%s), type(%s)", uid, lang, type);
1228 dbus_message_append_args(msg,
1229 DBUS_TYPE_INT32, &uid,
1230 DBUS_TYPE_STRING, &lang,
1231 DBUS_TYPE_STRING, &type,
1232 DBUS_TYPE_INT32, &silence,
1233 DBUS_TYPE_STRING, &appid,
1236 if (g_conn_sender) {
1237 dbus_message_set_no_reply(msg, TRUE);
1239 if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
1240 SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt start message : Out Of Memory !");
1241 return STT_ERROR_OUT_OF_MEMORY;
1243 dbus_connection_flush(g_conn_sender);
1246 dbus_message_unref(msg);
1249 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
1250 return STT_ERROR_OPERATION_FAILED;
1256 dbus_error_init(&err);
1258 DBusMessage* result_msg;
1259 int result = STT_ERROR_OPERATION_FAILED;
1261 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1262 dbus_message_unref(msg);
1263 if (dbus_error_is_set(&err)) {
1264 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1265 dbus_error_free(&err);
1268 if (NULL != result_msg) {
1269 dbus_message_get_args(result_msg, &err,
1270 DBUS_TYPE_INT32, &result,
1273 if (dbus_error_is_set(&err)) {
1274 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1275 dbus_error_free(&err);
1276 result = STT_ERROR_OPERATION_FAILED;
1278 dbus_message_unref(result_msg);
1281 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt start : result = %d ", result);
1283 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt start : result = %d ", result);
1286 SLOG(LOG_DEBUG, TAG_STTC, "<<<< Result Message is NULL");
1287 stt_dbus_reconnect();
1288 result = STT_ERROR_TIMED_OUT;
1295 int stt_dbus_request_stop(int uid)
1299 /* create a signal & check for errors */
1300 msg = dbus_message_new_method_call(
1301 STT_SERVER_SERVICE_NAME,
1302 STT_SERVER_SERVICE_OBJECT_PATH,
1303 STT_SERVER_SERVICE_INTERFACE,
1307 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt stop : Fail to make message");
1308 return STT_ERROR_OPERATION_FAILED;
1310 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt stop : uid(%d)", uid);
1313 dbus_message_append_args(msg,
1314 DBUS_TYPE_INT32, &uid,
1317 if (g_conn_sender) {
1318 dbus_message_set_no_reply(msg, TRUE);
1320 if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
1321 SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !");
1322 return STT_ERROR_OUT_OF_MEMORY;
1324 dbus_connection_flush(g_conn_sender);
1327 dbus_message_unref(msg);
1329 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
1330 return STT_ERROR_OPERATION_FAILED;
1336 dbus_error_init(&err);
1338 DBusMessage* result_msg;
1339 int result = STT_ERROR_OPERATION_FAILED;
1341 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1342 dbus_message_unref(msg);
1343 if (dbus_error_is_set(&err)) {
1344 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1345 dbus_error_free(&err);
1348 if (NULL != result_msg) {
1349 dbus_message_get_args(result_msg, &err,
1350 DBUS_TYPE_INT32, &result,
1353 if (dbus_error_is_set(&err)) {
1354 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1355 dbus_error_free(&err);
1356 result = STT_ERROR_OPERATION_FAILED;
1358 dbus_message_unref(result_msg);
1361 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt stop : result = %d ", result);
1363 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt stop : result = %d ", result);
1366 SLOG(LOG_DEBUG, TAG_STTC, "<<<< Result Message is NULL");
1367 stt_dbus_reconnect();
1368 result = STT_ERROR_TIMED_OUT;
1375 int stt_dbus_request_cancel(int uid)
1379 /* create a signal & check for errors */
1380 msg = dbus_message_new_method_call(
1381 STT_SERVER_SERVICE_NAME,
1382 STT_SERVER_SERVICE_OBJECT_PATH, /* object name of the signal */
1383 STT_SERVER_SERVICE_INTERFACE, /* interface name of the signal */
1384 STT_METHOD_CANCEL); /* name of the signal */
1387 SLOG(LOG_ERROR, TAG_STTC, ">>>> stt cancel : Fail to make message");
1388 return STT_ERROR_OPERATION_FAILED;
1390 SLOG(LOG_DEBUG, TAG_STTC, ">>>> stt cancel : uid(%d)", uid);
1393 dbus_message_append_args(msg,
1394 DBUS_TYPE_INT32, &uid,
1397 if (g_conn_sender) {
1398 dbus_message_set_no_reply(msg, TRUE);
1400 if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
1401 SLOG(LOG_ERROR, TAG_STTC, "[Dbus ERROR] <<<< stt stop message : Out Of Memory !");
1402 return STT_ERROR_OUT_OF_MEMORY;
1404 dbus_connection_flush(g_conn_sender);
1407 dbus_message_unref(msg);
1409 SLOG(LOG_WARN, TAG_STTC, "[WARN] dbus connection handle is null (%p)", g_conn_sender);
1410 return STT_ERROR_OPERATION_FAILED;
1416 dbus_error_init(&err);
1418 DBusMessage* result_msg;
1419 int result = STT_ERROR_OPERATION_FAILED;
1421 result_msg = dbus_connection_send_with_reply_and_block(g_conn_sender, msg, g_waiting_time, &err);
1422 dbus_message_unref(msg);
1423 if (dbus_error_is_set(&err)) {
1424 SLOG(LOG_ERROR, TAG_STTC, "[ERROR] Send Error (%s)", err.message);
1425 dbus_error_free(&err);
1428 if (NULL != result_msg) {
1429 dbus_message_get_args(result_msg, &err,
1430 DBUS_TYPE_INT32, &result,
1433 if (dbus_error_is_set(&err)) {
1434 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)", err.message);
1435 dbus_error_free(&err);
1436 result = STT_ERROR_OPERATION_FAILED;
1438 dbus_message_unref(result_msg);
1441 SLOG(LOG_DEBUG, TAG_STTC, "<<<< stt cancel : result = %d ", result);
1443 SLOG(LOG_ERROR, TAG_STTC, "<<<< stt cancel : result = %d ", result);
1446 SLOG(LOG_DEBUG, TAG_STTC, "<<<< Result Message is NULL");
1447 stt_dbus_reconnect();
1448 result = STT_ERROR_TIMED_OUT;