2 * Copyright (c) 2011-2016 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.
15 #include "sttd_main.h"
16 #include "sttd_dbus.h"
17 #include "sttd_dbus_server.h"
18 #include "sttd_server.h"
19 #include "sttd_client_data.h"
23 * Dbus Client-Daemon Server
26 static void __sttd_dbus_server_dbus_connection_send(DBusConnection* conn, DBusMessage* reply)
28 if (!dbus_connection_send(conn, reply, NULL)) {
29 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
32 dbus_connection_flush(conn);
33 dbus_message_unref(reply);
37 int sttd_dbus_server_hello(DBusConnection* conn, DBusMessage* msg)
39 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Hello");
42 reply = dbus_message_new_method_return(msg);
44 __sttd_dbus_server_dbus_connection_send(conn, reply);
46 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
49 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
53 int sttd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
56 dbus_error_init(&err);
60 bool silence_supported = false;
61 bool credential_needed = false;
63 int ret = STTD_ERROR_OPERATION_FAILED;
65 dbus_message_get_args(msg, &err,
66 DBUS_TYPE_INT32, &pid,
67 DBUS_TYPE_UINT32, &uid,
70 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Initialize");
72 if (dbus_error_is_set(&err)) {
73 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt initialize : get arguments error (%s)", err.message);
74 dbus_error_free(&err);
75 ret = STTD_ERROR_OPERATION_FAILED;
77 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt initialize : pid(%d), uid(%u)", pid , uid);
78 ret = sttd_server_initialize(pid, uid, &silence_supported, &credential_needed);
82 reply = dbus_message_new_method_return(msg);
85 int int_silence_supported = (int)silence_supported;
86 int int_credential_needed = (int)credential_needed;
88 dbus_message_append_args(reply,
89 DBUS_TYPE_INT32, &ret,
90 DBUS_TYPE_INT32, &int_silence_supported,
91 DBUS_TYPE_INT32, &int_credential_needed,
96 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
97 ret, silence_supported, credential_needed);
99 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
102 __sttd_dbus_server_dbus_connection_send(conn, reply);
104 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
107 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
111 static void __sttd_dbus_server_send_method_return(DBusConnection* conn, DBusMessage* msg, int ret)
114 reply = dbus_message_new_method_return(msg);
117 /* Append result and language */
118 dbus_message_append_args(reply,
119 DBUS_TYPE_INT32, &ret,
123 SLOG(LOG_INFO, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
125 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
128 __sttd_dbus_server_dbus_connection_send(conn, reply);
130 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
135 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
138 dbus_error_init(&err);
141 int ret = STTD_ERROR_OPERATION_FAILED;
142 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
144 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
146 if (dbus_error_is_set(&err)) {
147 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
148 dbus_error_free(&err);
149 ret = STTD_ERROR_OPERATION_FAILED;
151 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%u)", uid);
152 ret = sttd_server_finalize(uid);
155 __sttd_dbus_server_send_method_return(conn, msg, ret);
157 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
161 int sttd_dbus_server_get_support_engines(DBusConnection* conn, DBusMessage* msg)
164 dbus_error_init(&err);
167 int ret = STTD_ERROR_OPERATION_FAILED;
168 GSList* engine_list = NULL;
170 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
172 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported engines");
174 if (dbus_error_is_set(&err)) {
175 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported engines : get arguments error (%s)", err.message);
176 dbus_error_free(&err);
177 ret = STTD_ERROR_OPERATION_FAILED;
179 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported engines : uid(%u)", uid);
180 ret = sttd_server_get_supported_engines(uid, &engine_list);
184 reply = dbus_message_new_method_return(msg);
187 DBusMessageIter args;
189 dbus_message_iter_init_append(reply, &args);
192 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
196 int size = g_slist_length(engine_list);
197 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
198 ret = STTD_ERROR_OPERATION_FAILED;
200 GSList *iter = g_slist_nth(engine_list, 0);
202 while (NULL != iter) {
203 engine_s* engine = iter->data;
205 if (NULL != engine) {
206 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
207 SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
208 engine->engine_id, engine->engine_name, engine->ug_name);
210 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id));
211 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name));
212 /* dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name)); */
214 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
217 if (NULL != engine->engine_id) {
218 free(engine->engine_id);
219 engine->engine_id = NULL;
221 if (NULL != engine->engine_name) {
222 free(engine->engine_name);
223 engine->engine_name = NULL;
225 if (NULL != engine->ug_name) {
226 free(engine->ug_name);
227 engine->ug_name = NULL;
233 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
236 engine_list = g_slist_remove_link(engine_list, iter);
238 iter = g_slist_nth(engine_list, 0);
241 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
243 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
246 __sttd_dbus_server_dbus_connection_send(conn, reply);
248 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
251 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
255 int sttd_dbus_server_set_current_engine(DBusConnection* conn, DBusMessage* msg)
258 dbus_error_init(&err);
262 bool silence_supported = false;
263 bool credential_needed = false;
264 int ret = STTD_ERROR_OPERATION_FAILED;
266 dbus_message_get_args(msg, &err,
267 DBUS_TYPE_UINT32, &uid,
268 DBUS_TYPE_STRING, &engine_id,
271 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set current engine");
273 if (dbus_error_is_set(&err)) {
274 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set current engine : get arguments error (%s)", err.message);
275 dbus_error_free(&err);
276 ret = STTD_ERROR_OPERATION_FAILED;
278 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set current engine : uid(%u), engine_id(%s)", uid, (NULL == engine_id) ? "NULL" : engine_id);
279 ret = sttd_server_set_current_engine(uid, engine_id, &silence_supported, &credential_needed);
283 reply = dbus_message_new_method_return(msg);
286 int int_silence_supported = (int)silence_supported;
287 int int_credential_needed = (int)credential_needed;
289 dbus_message_append_args(reply,
290 DBUS_TYPE_INT32, &ret,
291 DBUS_TYPE_INT32, &int_silence_supported,
292 DBUS_TYPE_INT32, &int_credential_needed,
296 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
297 ret, silence_supported, credential_needed);
299 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
302 __sttd_dbus_server_dbus_connection_send(conn, reply);
304 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
307 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
311 int sttd_dbus_server_get_current_engine(DBusConnection* conn, DBusMessage* msg)
314 dbus_error_init(&err);
318 int ret = STTD_ERROR_OPERATION_FAILED;
320 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
322 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get current engine");
324 if (dbus_error_is_set(&err)) {
325 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get current engine : get arguments error (%s)", err.message);
326 dbus_error_free(&err);
327 ret = STTD_ERROR_OPERATION_FAILED;
329 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get current engine : uid(%u)", uid);
330 ret = sttd_server_get_current_engine(uid, &engine);
334 reply = dbus_message_new_method_return(msg);
338 /* Append result and language */
339 dbus_message_append_args(reply,
340 DBUS_TYPE_INT32, &ret,
341 DBUS_TYPE_STRING, &engine,
344 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
346 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
348 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
351 __sttd_dbus_server_dbus_connection_send(conn, reply);
353 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
356 if (NULL != engine) free(engine);
358 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
362 int sttd_dbus_server_check_app_agreed(DBusConnection* conn, DBusMessage* msg)
365 dbus_error_init(&err);
369 int ret = STTD_ERROR_OPERATION_FAILED;
370 bool available = false;
372 dbus_message_get_args(msg, &err,
373 DBUS_TYPE_UINT32, &uid,
374 DBUS_TYPE_STRING, &appid,
377 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Is engine available");
379 if (dbus_error_is_set(&err)) {
380 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt Is engine available : get arguments error (%s)", err.message);
381 dbus_error_free(&err);
382 ret = STTD_ERROR_OPERATION_FAILED;
384 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt Is engine available : uid(%u)", uid);
385 ret = sttd_server_check_app_agreed(uid, appid, &available);
389 reply = dbus_message_new_method_return(msg);
392 /* Append result and language */
393 dbus_message_append_args(reply,
394 DBUS_TYPE_INT32, &ret,
395 DBUS_TYPE_INT32, &available,
399 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
401 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
404 __sttd_dbus_server_dbus_connection_send(conn, reply);
406 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
409 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
413 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
416 dbus_error_init(&err);
419 int ret = STTD_ERROR_OPERATION_FAILED;
420 GSList* lang_list = NULL;
422 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
424 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
426 if (dbus_error_is_set(&err)) {
427 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
428 dbus_error_free(&err);
429 ret = STTD_ERROR_OPERATION_FAILED;
431 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%u)", uid);
432 ret = sttd_server_get_supported_languages(uid, &lang_list);
436 reply = dbus_message_new_method_return(msg);
439 DBusMessageIter args;
440 dbus_message_iter_init_append(reply, &args);
443 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
446 /* Append language size */
447 int size = g_slist_length(lang_list);
449 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
450 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
451 ret = STTD_ERROR_OPERATION_FAILED;
453 GSList *iter = g_slist_nth(lang_list, 0);
455 while (NULL != iter) {
456 char* temp_lang = iter->data;
458 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang));
460 if (NULL != temp_lang)
463 lang_list = g_slist_remove_link(lang_list, iter);
465 iter = g_slist_nth(lang_list, 0);
468 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
470 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
473 __sttd_dbus_server_dbus_connection_send(conn, reply);
475 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
478 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
482 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
485 dbus_error_init(&err);
489 int ret = STTD_ERROR_OPERATION_FAILED;
491 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
493 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
495 if (dbus_error_is_set(&err)) {
496 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
497 dbus_error_free(&err);
498 ret = STTD_ERROR_OPERATION_FAILED;
500 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%u)", uid);
501 ret = sttd_server_get_current_langauage(uid, &lang);
505 reply = dbus_message_new_method_return(msg);
509 /* Append result and language */
510 dbus_message_append_args(reply,
511 DBUS_TYPE_INT32, &ret,
512 DBUS_TYPE_STRING, &lang,
515 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
517 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
519 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
522 __sttd_dbus_server_dbus_connection_send(conn, reply);
524 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
527 if (NULL != lang) free(lang);
529 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
533 int sttd_dbus_server_set_private_data(DBusConnection* conn, DBusMessage* msg)
536 dbus_error_init(&err);
541 int ret = STTD_ERROR_OPERATION_FAILED;
542 dbus_message_get_args(msg, &err,
543 DBUS_TYPE_UINT32, &uid,
544 DBUS_TYPE_STRING, &key,
545 DBUS_TYPE_STRING, &data,
548 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set private data");
550 if (dbus_error_is_set(&err)) {
551 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set private data : get arguments error (%s)", err.message);
552 dbus_error_free(&err);
553 ret = STTD_ERROR_OPERATION_FAILED;
555 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set private data : uid(%u)", uid);
556 ret = sttd_server_set_private_data(uid, key, data);
559 __sttd_dbus_server_send_method_return(conn, msg, ret);
561 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
565 int sttd_dbus_server_get_private_data(DBusConnection* conn, DBusMessage* msg)
568 dbus_error_init(&err);
573 int ret = STTD_ERROR_OPERATION_FAILED;
574 dbus_message_get_args(msg, &err,
575 DBUS_TYPE_UINT32, &uid,
576 DBUS_TYPE_STRING, &key,
579 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get private data");
581 if (dbus_error_is_set(&err)) {
582 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get private data : get arguments error (%s)", err.message);
583 dbus_error_free(&err);
584 ret = STTD_ERROR_OPERATION_FAILED;
586 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get private data : uid(%u), key(%s)", uid, (NULL == key) ? "NULL" : key);
587 ret = sttd_server_get_private_data(uid, key, &data);
591 reply = dbus_message_new_method_return(msg);
594 /* Append result and private data */
595 dbus_message_append_args(reply,
596 DBUS_TYPE_INT32, &ret,
597 DBUS_TYPE_STRING, &data,
601 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), data(%s)", ret, (NULL == data) ? "NULL" : data);
603 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
606 __sttd_dbus_server_dbus_connection_send(conn, reply);
608 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
611 if (NULL != data) free(data);
613 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
617 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
620 dbus_error_init(&err);
625 int ret = STTD_ERROR_OPERATION_FAILED;
627 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
629 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
631 if (dbus_error_is_set(&err)) {
632 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
633 dbus_error_free(&err);
634 ret = STTD_ERROR_OPERATION_FAILED;
636 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%u)", uid);
637 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
641 reply = dbus_message_new_method_return(msg);
644 /* Append result and language */
645 dbus_message_append_args(reply,
646 DBUS_TYPE_INT32, &ret,
647 DBUS_TYPE_INT32, &support,
651 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
653 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
656 __sttd_dbus_server_dbus_connection_send(conn, reply);
658 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
661 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
665 int sttd_dbus_server_get_audio_format(DBusConnection* conn, DBusMessage* msg)
668 dbus_error_init(&err);
670 unsigned int uid = STT_INVALID_UID;
671 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
673 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT get audio format");
675 stte_audio_type_e type = STTE_AUDIO_TYPE_PCM_S16_LE;
677 int num_of_channels = -1;
678 int ret = STTD_ERROR_OPERATION_FAILED;
679 if (dbus_error_is_set(&err)) {
680 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get audio format : get arguments error (%s)", err.message);
681 dbus_error_free(&err);
682 ret = STTD_ERROR_OPERATION_FAILED;
684 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get audio format : uid(%u)", uid);
685 ret = sttd_server_get_audio_format(uid, &type, &rate, &num_of_channels);
688 DBusMessage* reply = dbus_message_new_method_return(msg);
690 /* Append result and language */
691 dbus_message_append_args(reply,
692 DBUS_TYPE_INT32, &ret,
693 DBUS_TYPE_INT32, &type,
694 DBUS_TYPE_INT32, &rate,
695 DBUS_TYPE_INT32, &num_of_channels,
699 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), type(%d), rate(%d), number of channels(%d)",
700 ret, type, rate, num_of_channels);
702 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
705 __sttd_dbus_server_dbus_connection_send(conn, reply);
707 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
710 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
711 return STTD_ERROR_NONE;
715 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
718 dbus_error_init(&err);
722 int ret = STTD_ERROR_OPERATION_FAILED;
724 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
726 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
728 if (dbus_error_is_set(&err)) {
729 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
730 dbus_error_free(&err);
731 ret = STTD_ERROR_OPERATION_FAILED;
733 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%u) file(%s)", uid, file);
734 ret = sttd_server_set_start_sound(uid, file);
737 __sttd_dbus_server_send_method_return(conn, msg, ret);
739 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
743 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
746 dbus_error_init(&err);
749 int ret = STTD_ERROR_OPERATION_FAILED;
751 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
753 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
755 if (dbus_error_is_set(&err)) {
756 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
757 dbus_error_free(&err);
758 ret = STTD_ERROR_OPERATION_FAILED;
760 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%u)", uid);
761 ret = sttd_server_set_start_sound(uid, NULL);
764 __sttd_dbus_server_send_method_return(conn, msg, ret);
766 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
770 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
773 dbus_error_init(&err);
777 int ret = STTD_ERROR_OPERATION_FAILED;
779 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
781 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
783 if (dbus_error_is_set(&err)) {
784 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
785 dbus_error_free(&err);
786 ret = STTD_ERROR_OPERATION_FAILED;
788 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%u) file(%s)", uid, file);
789 ret = sttd_server_set_stop_sound(uid, file);
792 __sttd_dbus_server_send_method_return(conn, msg, ret);
794 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
798 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
801 dbus_error_init(&err);
804 int ret = STTD_ERROR_OPERATION_FAILED;
806 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
808 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
810 if (dbus_error_is_set(&err)) {
811 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
812 dbus_error_free(&err);
813 ret = STTD_ERROR_OPERATION_FAILED;
815 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%u)", uid);
816 ret = sttd_server_set_stop_sound(uid, NULL);
819 __sttd_dbus_server_send_method_return(conn, msg, ret);
821 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
825 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
828 dbus_error_init(&err);
837 int ret = STTD_ERROR_OPERATION_FAILED;
839 dbus_message_get_args(msg, &err,
840 DBUS_TYPE_UINT32, &uid,
841 DBUS_TYPE_STRING, &lang,
842 DBUS_TYPE_STRING, &type,
843 DBUS_TYPE_INT32, &silence,
844 DBUS_TYPE_STRING, &appid,
845 DBUS_TYPE_STRING, &credential,
846 DBUS_TYPE_STRING, &audio_id,
849 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
851 if (dbus_error_is_set(&err)) {
852 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
853 dbus_error_free(&err);
854 ret = STTD_ERROR_OPERATION_FAILED;
856 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) credential(%s) audio_id(%s)"
857 , uid, lang, type, silence, appid, credential, audio_id);
858 ret = sttd_server_start(uid, lang, type, silence, appid, credential, audio_id);
862 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
864 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
865 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start")) {
866 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
870 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
874 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
877 dbus_error_init(&err);
880 int ret = STTD_ERROR_OPERATION_FAILED;
881 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
883 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
885 if (dbus_error_is_set(&err)) {
886 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
887 dbus_error_free(&err);
888 ret = STTD_ERROR_OPERATION_FAILED;
890 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%u)", uid);
891 ret = sttd_server_stop(uid);
895 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
897 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
898 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to stop")) {
899 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
903 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
907 int sttd_dbus_server_start_audio_streaming(DBusConnection* conn, DBusMessage* msg)
910 dbus_error_init(&err);
912 unsigned int uid = STT_INVALID_UID;
913 char* language = NULL;
917 char* credential = NULL;
918 char* audio_id = NULL;
920 dbus_message_get_args(msg, &err,
921 DBUS_TYPE_UINT32, &uid,
922 DBUS_TYPE_STRING, &language,
923 DBUS_TYPE_STRING, &type,
924 DBUS_TYPE_INT32, &silence,
925 DBUS_TYPE_STRING, &appid,
926 DBUS_TYPE_STRING, &credential,
927 DBUS_TYPE_STRING, &audio_id,
930 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start audio streaming. UID(%u)", uid);
932 int ret = STTD_ERROR_OPERATION_FAILED;
933 if (dbus_error_is_set(&err)) {
934 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start audio streaming : get arguments error (%s)", err.message);
935 dbus_error_free(&err);
936 ret = STTD_ERROR_OPERATION_FAILED;
938 SLOG(LOG_DEBUG, TAG_STTD,
939 "[IN] stt start audio streaming : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) credential(%s) audio_id(%s)",
940 uid, language, type, silence, appid, credential, audio_id);
941 ret = sttd_server_start_audio_streaming(uid, language, type, silence, appid, credential, audio_id);
944 if (STTD_ERROR_NONE == ret) {
945 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] stt start audio streaming");
947 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
948 if (STTD_ERROR_NONE != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start")) {
949 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
953 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
954 return STTD_ERROR_NONE;
957 int sttd_dbus_server_send_audio_streaming(DBusConnection* conn, DBusMessage* msg)
960 dbus_error_init(&err);
962 unsigned int uid = STT_INVALID_UID;
964 size_t data_size = 0;
966 dbus_message_get_args(msg, &err,
967 DBUS_TYPE_UINT32, &uid,
968 DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
972 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Send audio streaming");
974 int ret = STTD_ERROR_OPERATION_FAILED;
975 if (dbus_error_is_set(&err)) {
976 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt send audio streaming : get arguments error (%s)", err.message);
977 dbus_error_free(&err);
978 ret = STTD_ERROR_OPERATION_FAILED;
980 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt send audio streaming : uid(%u)", uid);
981 ret = sttd_server_send_audio_streaming(uid, data, data_size);
984 if (STTD_ERROR_NONE == ret) {
985 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] stt send audio streaming");
987 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
988 if (STTD_ERROR_NONE != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to send audio streaming")) {
989 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
993 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
994 return STTD_ERROR_NONE;
997 int sttd_dbus_server_stop_audio_streaming(DBusConnection* conn, DBusMessage* msg)
1000 dbus_error_init(&err);
1002 unsigned int uid = STT_INVALID_UID;
1004 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
1006 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop audio streaming");
1008 int ret = STTD_ERROR_OPERATION_FAILED;
1009 if (dbus_error_is_set(&err)) {
1010 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop audio streaming : get arguments error (%s)", err.message);
1011 dbus_error_free(&err);
1012 ret = STTD_ERROR_OPERATION_FAILED;
1014 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop audio streaming: uid(%u)", uid);
1015 ret = sttd_server_stop_audio_streaming(uid);
1018 if (STTD_ERROR_NONE == ret) {
1019 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] stt stop audio streaming");
1021 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1022 if (STTD_ERROR_NONE != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to stop audio streaming")) {
1023 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1027 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1028 return STTD_ERROR_NONE;
1031 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
1034 dbus_error_init(&err);
1037 int ret = STTD_ERROR_OPERATION_FAILED;
1038 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
1040 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
1042 if (dbus_error_is_set(&err)) {
1043 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
1044 dbus_error_free(&err);
1045 ret = STTD_ERROR_OPERATION_FAILED;
1047 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%u)", uid);
1048 ret = sttd_server_cancel(uid);
1052 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1054 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1055 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
1056 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1060 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1064 int sttd_dbus_server_start_file(DBusConnection* conn, DBusMessage* msg)
1067 dbus_error_init(&err);
1077 int ret = STTD_ERROR_OPERATION_FAILED;
1079 dbus_message_get_args(msg, &err,
1080 DBUS_TYPE_UINT32, &uid,
1081 DBUS_TYPE_STRING, &lang,
1082 DBUS_TYPE_STRING, &type,
1083 DBUS_TYPE_INT32, &silence,
1084 DBUS_TYPE_STRING, &appid,
1085 DBUS_TYPE_STRING, &credential,
1086 DBUS_TYPE_STRING, &filepath,
1089 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start File");
1091 if (dbus_error_is_set(&err)) {
1092 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start file: get arguments error (%s)", err.message);
1093 dbus_error_free(&err);
1094 ret = STTD_ERROR_OPERATION_FAILED;
1096 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start file : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) filepath(%s)", uid, lang, type, silence, appid, filepath);
1097 ret = sttd_server_start_file(uid, lang, type, silence, appid, credential, filepath);
1101 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1103 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1104 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start file")) {
1105 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1109 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1113 int sttd_dbus_server_cancel_file(DBusConnection* conn, DBusMessage* msg)
1116 dbus_error_init(&err);
1119 int ret = STTD_ERROR_OPERATION_FAILED;
1120 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
1122 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel File");
1124 if (dbus_error_is_set(&err)) {
1125 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel file : get arguments error (%s)", err.message);
1126 dbus_error_free(&err);
1127 ret = STTD_ERROR_OPERATION_FAILED;
1129 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel file : uid(%u)", uid);
1130 ret = sttd_server_cancel_file(uid);
1134 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1136 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1137 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
1138 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1141 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");