2 * Copyright (c) 2011 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 "ttsd_main.h"
16 #include "ttsd_dbus.h"
17 #include "ttsd_dbus_server.h"
18 #include "ttsd_server.h"
20 extern int ttsd_data_get_pid(const int uid);
23 * Dbus Client-Daemon Server
26 int ttsd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
29 dbus_error_init(&err);
34 dbus_message_get_args(msg, &err,
35 DBUS_TYPE_INT32, &pid,
36 DBUS_TYPE_INT32, &uid,
39 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS INITIALIZE");
41 if (dbus_error_is_set(&err)) {
42 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts initialize : get arguments error (%s)\n", err.message);
43 dbus_error_free(&err);
44 ret = TTSD_ERROR_OPERATION_FAILED;
47 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts initialize : pid(%d), uid(%d) \n", pid , uid);
48 ret = ttsd_server_initialize(pid, uid);
52 reply = dbus_message_new_method_return(msg);
55 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
58 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts initialize : result(%d) \n", ret);
60 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts initialize : result(%d) \n", ret);
63 if (!dbus_connection_send(conn, reply, NULL)) {
64 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts initialize : Out Of Memory!\n");
67 dbus_connection_flush(conn);
68 dbus_message_unref(reply);
70 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts initialize : fail to create reply message!!");
73 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
74 SLOG(LOG_DEBUG, TAG_TTSD, " ");
79 int ttsd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
82 dbus_error_init(&err);
87 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
89 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS FINALIZE");
91 if (dbus_error_is_set(&err)) {
92 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts finalize : get arguments error (%s)\n", err.message);
93 dbus_error_free(&err);
94 ret = TTSD_ERROR_OPERATION_FAILED;
97 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts finalize : uid(%d) \n", uid);
98 ret = ttsd_server_finalize(uid);
102 reply = dbus_message_new_method_return(msg);
105 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
108 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts finalize : result(%d) \n", ret);
110 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts finalize : result(%d) \n", ret);
113 if (!dbus_connection_send(conn, reply, NULL)) {
114 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts finalize : Out Of Memory!\n");
117 dbus_connection_flush(conn);
118 dbus_message_unref(reply);
120 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts finalize : fail to create reply message!!");
123 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
124 SLOG(LOG_DEBUG, TAG_TTSD, " ");
129 int ttsd_dbus_server_get_support_voices(DBusConnection* conn, DBusMessage* msg)
132 dbus_error_init(&err);
136 GList* voice_list = NULL;
138 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
140 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS GET VOICES");
142 if (dbus_error_is_set(&err)) {
143 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts get supported voices : get arguments error (%s)\n", err.message);
144 dbus_error_free(&err);
145 ret = TTSD_ERROR_OPERATION_FAILED;
147 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] get supported voices : uid(%d) \n", uid );
148 ret = ttsd_server_get_support_voices(uid, &voice_list);
152 reply = dbus_message_new_method_return(msg);
155 DBusMessageIter args;
156 dbus_message_iter_init_append(reply, &args);
159 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
162 /* Append voice size */
163 int size = g_list_length(voice_list);
165 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
166 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts supported voices : Fail to append type \n");
167 ret = TTSD_ERROR_OPERATION_FAILED;
173 iter = g_list_first(voice_list);
175 while (NULL != iter) {
178 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(voice->language) );
179 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(voice->type) );
181 if (NULL != voice->language)
182 g_free(voice->language);
186 voice_list = g_list_remove_link(voice_list, iter);
188 iter = g_list_first(voice_list);
191 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts supported voices : result(%d) \n", ret);
193 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts supported voices : result(%d) \n", ret);
196 if (!dbus_connection_send(conn, reply, NULL)) {
197 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] error : Out Of Memory!\n");
200 dbus_connection_flush(conn);
201 dbus_message_unref(reply);
203 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts supported voices : fail to create reply message!!");
206 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
207 SLOG(LOG_DEBUG, TAG_TTSD, " ");
212 int ttsd_dbus_server_get_current_voice(DBusConnection* conn, DBusMessage* msg)
215 dbus_error_init(&err);
222 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
224 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS GET DEFAULT VOICE");
226 if (dbus_error_is_set(&err)) {
227 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts get default voice : Get arguments error (%s)\n", err.message);
228 dbus_error_free(&err);
229 ret = TTSD_ERROR_OPERATION_FAILED;
231 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts get default voice : uid(%d) \n", uid);
232 ret = ttsd_server_get_current_voice(uid, &lang, &voice_type);
236 reply = dbus_message_new_method_return(msg);
240 /* Append result and voice */
241 dbus_message_append_args( reply,
242 DBUS_TYPE_INT32, &ret,
243 DBUS_TYPE_STRING, &lang,
244 DBUS_TYPE_INT32, &voice_type,
246 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts default voice : lang(%s), vctype(%d)\n", lang, voice_type );
248 dbus_message_append_args( reply,
249 DBUS_TYPE_INT32, &ret,
251 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts default voice : result(%d) \n", ret);
254 if (!dbus_connection_send(conn, reply, NULL)) {
255 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts default voice : Out Of Memory!\n");
258 dbus_connection_flush(conn);
259 dbus_message_unref(reply);
261 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts default voice : fail to create reply message!!");
264 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
265 SLOG(LOG_DEBUG, TAG_TTSD, " ");
270 int ttsd_dbus_server_add_text(DBusConnection* conn, DBusMessage* msg)
273 dbus_error_init(&err);
275 int uid, voicetype, speed, uttid;
279 dbus_message_get_args(msg, &err,
280 DBUS_TYPE_INT32, &uid,
281 DBUS_TYPE_STRING, &text,
282 DBUS_TYPE_STRING, &lang,
283 DBUS_TYPE_INT32, &voicetype,
284 DBUS_TYPE_INT32, &speed,
285 DBUS_TYPE_INT32, &uttid,
288 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS ADD TEXT");
290 if (dbus_error_is_set(&err)) {
291 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts add text : Get arguments error (%s)\n", err.message);
292 dbus_error_free(&err);
293 ret = TTSD_ERROR_OPERATION_FAILED;
296 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts add text : uid(%d), text(%s), lang(%s), type(%d), speed(%d), uttid(%d) \n",
297 uid, text, lang, voicetype, speed, uttid);
298 ret = ttsd_server_add_queue(uid, text, lang, voicetype, speed, uttid);
302 reply = dbus_message_new_method_return(msg);
305 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
308 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts add text : result(%d) \n", ret);
310 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts add text : result(%d) \n", ret);
313 if (!dbus_connection_send(conn, reply, NULL)) {
314 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts add text : Out Of Memory!\n");
317 dbus_connection_flush(conn);
318 dbus_message_unref(reply);
320 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts add text : fail to create reply message!!");
323 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
324 SLOG(LOG_DEBUG, TAG_TTSD, " ");
329 int ttsd_dbus_server_play(DBusConnection* conn, DBusMessage* msg)
332 dbus_error_init(&err);
337 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
339 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS PLAY");
341 if (dbus_error_is_set(&err)) {
342 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts play : Get arguments error (%s)\n", err.message);
343 dbus_error_free(&err);
344 ret = TTSD_ERROR_OPERATION_FAILED;
346 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts play : uid(%d) \n", uid );
347 ret = ttsd_server_play(uid);
351 reply = dbus_message_new_method_return(msg);
354 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
357 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts play : result(%d) \n", ret);
359 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts play : result(%d) \n", ret);
362 if (!dbus_connection_send(conn, reply, NULL)) {
363 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts play : Out Of Memory!\n");
366 dbus_connection_flush(conn);
367 dbus_message_unref(reply);
369 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts play : fail to create reply message!!");
372 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
373 SLOG(LOG_DEBUG, TAG_TTSD, " ");
378 int ttsd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
381 dbus_error_init(&err);
385 dbus_message_get_args(msg, &err,
386 DBUS_TYPE_INT32, &uid,
389 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS STOP");
391 if (dbus_error_is_set(&err)) {
392 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts stop : Get arguments error (%s)\n", err.message);
393 dbus_error_free(&err);
394 ret = TTSD_ERROR_OPERATION_FAILED;
396 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts stop : uid(%d)\n", uid);
397 ret = ttsd_server_stop(uid);
401 reply = dbus_message_new_method_return(msg);
404 dbus_message_append_args(reply,
405 DBUS_TYPE_INT32, &ret,
409 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts stop : result(%d) \n", ret);
411 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts stop : result(%d) \n", ret);
414 if (!dbus_connection_send(conn, reply, NULL)) {
415 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts stop : Out Of Memory!\n");
418 dbus_connection_flush(conn);
419 dbus_message_unref(reply);
421 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts stop : fail to create reply message!!");
424 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
425 SLOG(LOG_DEBUG, TAG_TTSD, " ");
430 int ttsd_dbus_server_pause(DBusConnection* conn, DBusMessage* msg)
433 dbus_error_init(&err);
438 dbus_message_get_args(msg, &err,
439 DBUS_TYPE_INT32, &uid,
442 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTS PAUSE");
444 if (dbus_error_is_set(&err)) {
445 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] tts pause : Get arguments error (%s)\n", err.message);
446 dbus_error_free(&err);
447 ret = TTSD_ERROR_OPERATION_FAILED;
449 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] tts pause : uid(%d)\n", uid);
450 ret = ttsd_server_pause(uid, &uttid);
454 reply = dbus_message_new_method_return(msg);
457 dbus_message_append_args(reply,
458 DBUS_TYPE_INT32, &ret,
462 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] tts pause : result(%d) \n", ret);
464 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts pause : result(%d) \n", ret);
467 if (!dbus_connection_send(conn, reply, NULL)) {
468 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts pause : Out Of Memory!\n");
471 dbus_connection_flush(conn);
472 dbus_message_unref(reply);
474 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] tts pause : fail to create reply message!!");
477 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
478 SLOG(LOG_DEBUG, TAG_TTSD, " ");
485 * Dbus Setting-Daemon Server
488 int ttsd_dbus_server_setting_initialize(DBusConnection* conn, DBusMessage* msg)
491 dbus_error_init(&err);
496 dbus_message_get_args(msg, &err,
497 DBUS_TYPE_INT32, &pid,
500 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING INITIALIZE");
502 if (dbus_error_is_set(&err)) {
503 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] Receivce setting initialize : Get arguments error (%s)\n", err.message);
504 dbus_error_free(&err);
505 ret = TTSD_ERROR_OPERATION_FAILED;
507 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] Receivce setting initialize : pid(%d) \n", pid);
508 ret = ttsd_server_setting_initialize(pid);
512 reply = dbus_message_new_method_return(msg);
515 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
518 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting initialize : result(%d) \n", ret);
520 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting initialize : result(%d) \n", ret);
523 if (!dbus_connection_send(conn, reply, NULL)) {
524 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting initialize : Out Of Memory!\n");
527 dbus_connection_flush(conn);
528 dbus_message_unref(reply);
530 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting initialize : fail to create reply message!!");
533 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
534 SLOG(LOG_DEBUG, TAG_TTSD, " ");
539 int ttsd_dbus_server_setting_finalize(DBusConnection* conn, DBusMessage* msg)
542 dbus_error_init(&err);
547 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
549 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING FINALIZE");
551 if (dbus_error_is_set(&err)) {
552 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting finalize : Get arguments error (%s)\n", err.message);
553 dbus_error_free(&err);
554 ret = TTSD_ERROR_OPERATION_FAILED;
556 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting finalize : pid(%d)\n", pid);
557 ret = ttsd_server_setting_finalize(pid);
561 reply = dbus_message_new_method_return(msg);
564 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
567 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting finalize : result(%d) \n", ret);
569 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting finalize : result(%d) \n", ret);
572 if (!dbus_connection_send(conn, reply, NULL)) {
573 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting finalize : Out Of Memory!\n");
576 dbus_connection_flush(conn);
577 dbus_message_unref(reply);
579 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting finalize : fail to create reply message!!");
582 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
583 SLOG(LOG_DEBUG, TAG_TTSD, " ");
588 int ttsd_dbus_server_setting_get_engine_list(DBusConnection* conn, DBusMessage* msg)
591 dbus_error_init(&err);
595 GList* engine_list = NULL;
597 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
599 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET ENGINE LIST");
601 if (dbus_error_is_set(&err)) {
602 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting engine list : Get arguments error (%s)\n", err.message);
603 dbus_error_free(&err);
604 ret = TTSD_ERROR_OPERATION_FAILED;
606 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting engine list : pid(%d) \n", pid);
607 ret = ttsd_server_setting_get_engine_list(pid, &engine_list);
611 reply = dbus_message_new_method_return(msg);
614 DBusMessageIter args;
615 dbus_message_iter_init_append(reply, &args);
618 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
622 int size = g_list_length(engine_list);
623 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
624 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting engine list : fail to append engine size \n");
630 iter = g_list_first(engine_list);
632 while (NULL != iter) {
634 SLOG(LOG_DEBUG, TAG_TTSD, "engine id : %s, engine name : %s, ug_name, : %s",
635 engine->engine_id, engine->engine_name, engine->ug_name);
637 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id) );
638 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name) );
639 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name) );
641 if (NULL != engine->engine_id)
642 g_free(engine->engine_id);
643 if (NULL != engine->engine_name);
644 g_free(engine->engine_name);
645 if (NULL != engine->ug_name);
646 g_free(engine->ug_name);
650 engine_list = g_list_remove_link(engine_list, iter);
652 iter = g_list_first(engine_list);
654 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting engine list : result(%d) \n", ret);
657 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting engine list : result(%d) \n", ret);
660 if (!dbus_connection_send(conn, reply, NULL)) {
661 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting engine list : Out Of Memory!\n");
664 dbus_connection_flush(conn);
665 dbus_message_unref(reply);
667 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting engine list : fail to create reply message!!");
670 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
671 SLOG(LOG_DEBUG, TAG_TTSD, " ");
676 int ttsd_dbus_server_setting_get_engine(DBusConnection* conn, DBusMessage* msg)
679 dbus_error_init(&err);
683 char* engine_id = NULL;
685 dbus_message_get_args(msg, &err,
686 DBUS_TYPE_INT32, &pid,
689 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET ENGINE");
691 if (dbus_error_is_set(&err)) {
692 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting get engine : Get arguments error (%s)\n", err.message);
693 dbus_error_free(&err);
694 ret = TTSD_ERROR_OPERATION_FAILED;
696 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting get engine : pid(%d)\n", pid);
697 ret = ttsd_server_setting_get_current_engine(pid, &engine_id);
701 reply = dbus_message_new_method_return(msg);
705 dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_STRING, &engine_id, DBUS_TYPE_INVALID);
706 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting get engine : result(%d), engine id(%s)\n", ret, engine_id);
708 dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
709 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get engine : result(%d)", ret);
712 if (!dbus_connection_send(conn, reply, NULL)) {
713 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get engine : Out Of Memory!\n");
716 dbus_connection_flush(conn);
717 dbus_message_unref(reply);
719 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get engine : fail to create reply message!!");
722 if (NULL != engine_id)
725 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
726 SLOG(LOG_DEBUG, TAG_TTSD, " ");
731 int ttsd_dbus_server_setting_set_engine(DBusConnection* conn, DBusMessage* msg)
734 dbus_error_init(&err);
740 dbus_message_get_args(msg, &err,
741 DBUS_TYPE_INT32, &pid,
742 DBUS_TYPE_STRING, &engine_id,
745 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING SET ENGINE");
747 if (dbus_error_is_set(&err)) {
748 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting set engine : Get arguments error (%s)\n", err.message);
749 dbus_error_free(&err);
750 ret = TTSD_ERROR_OPERATION_FAILED;
752 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting set engine : pid(%d), engine id(%s)\n", pid, engine_id);
753 ret = ttsd_server_setting_set_current_engine(pid, engine_id);
757 reply = dbus_message_new_method_return(msg);
760 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
763 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting set engine : result(%d) \n", ret);
765 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set engine : result(%d) \n", ret);
768 if (!dbus_connection_send(conn, reply, NULL)) {
769 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set engine : Out Of Memory!\n");
772 dbus_connection_flush(conn);
773 dbus_message_unref(reply);
775 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set engine : fail to create reply message!!");
778 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
779 SLOG(LOG_DEBUG, TAG_TTSD, " ");
784 int ttsd_dbus_server_setting_get_voice_list(DBusConnection* conn, DBusMessage* msg)
787 dbus_error_init(&err);
790 char* engine_id = NULL;
792 GList* voice_list = NULL;
794 dbus_message_get_args(msg, &err,
795 DBUS_TYPE_INT32, &pid,
798 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET VOICE LIST");
800 if (dbus_error_is_set(&err)) {
801 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting voice list : Get arguments error (%s)\n", err.message);
802 dbus_error_free(&err);
803 ret = TTSD_ERROR_OPERATION_FAILED;
805 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting voice list : pid(%d)\n", pid);
806 ret = ttsd_server_setting_get_voice_list(pid, &engine_id, &voice_list);
810 reply = dbus_message_new_method_return(msg);
813 DBusMessageIter args;
815 dbus_message_iter_init_append(reply, &args);
818 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
821 if (dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine_id))) {
822 /* Append voice size */
823 int size = g_list_length(voice_list);
824 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
825 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : Fail to append type \n");
826 ret = TTSD_ERROR_OPERATION_FAILED;
832 iter = g_list_first(voice_list);
834 while (NULL != iter) {
837 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(voice->language) );
838 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(voice->type) );
840 if (NULL != voice->language)
841 g_free(voice->language);
845 voice_list = g_list_remove_link(voice_list, iter);
847 iter = g_list_first(voice_list);
850 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting voice list : result(%d) \n", ret);
852 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : Fail to append engine_id \n");
855 if (NULL != engine_id)
858 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : result(%d) \n", ret);
861 if (!dbus_connection_send(conn, reply, NULL)) {
862 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : Out Of Memory!\n");
865 dbus_connection_flush(conn);
866 dbus_message_unref(reply);
868 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : fail to create reply message!!");
871 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
872 SLOG(LOG_DEBUG, TAG_TTSD, " ");
877 int ttsd_dbus_server_setting_get_default_voice(DBusConnection* conn, DBusMessage* msg)
880 dbus_error_init(&err);
885 ttsp_voice_type_e type;
887 dbus_message_get_args(msg, &err,
888 DBUS_TYPE_INT32, &pid,
891 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET DEFAULT VOICE");
893 if (dbus_error_is_set(&err)) {
894 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting get default voice : Get arguments error (%s)\n", err.message);
895 dbus_error_free(&err);
896 ret = TTSD_ERROR_OPERATION_FAILED;
898 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting get default voice : pid(%d)\n", pid);
899 ret = ttsd_server_setting_get_default_voice(pid, &lang, &type);
903 reply = dbus_message_new_method_return(msg);
907 dbus_message_append_args(reply,
908 DBUS_TYPE_INT32, &ret,
909 DBUS_TYPE_STRING, &lang,
910 DBUS_TYPE_INT32, &type,
912 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting get default voice : result(%d), language(%s), type(%d) \n", ret, lang, type);
914 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
915 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get default voice : result(%d) \n", ret);
918 if (!dbus_connection_send(conn, reply, NULL)) {
919 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get default voice : Out Of Memory!\n");
922 dbus_connection_flush(conn);
923 dbus_message_unref(reply);
925 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get default voice : fail to create reply message!!");
928 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
929 SLOG(LOG_DEBUG, TAG_TTSD, " ");
934 int ttsd_dbus_server_setting_set_default_voice(DBusConnection* conn, DBusMessage* msg)
937 dbus_error_init(&err);
944 dbus_message_get_args(msg, &err,
945 DBUS_TYPE_INT32, &pid,
946 DBUS_TYPE_STRING, &language,
947 DBUS_TYPE_INT32, &voicetype,
950 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SET DEFAULT VOICE");
952 if (dbus_error_is_set(&err)) {
953 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting set default voice : Get arguments error (%s)\n", err.message);
954 dbus_error_free(&err);
955 ret = TTSD_ERROR_OPERATION_FAILED;
957 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting set default voice : pid(%d), lang(%s), type(%d)\n"
958 , pid, language, voicetype);
959 ret = ttsd_server_setting_set_default_voice(pid, language, voicetype);
963 reply = dbus_message_new_method_return(msg);
966 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
969 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting set default voice : result(%d) \n", ret);
971 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set default voice : result(%d) \n", ret);
974 if (!dbus_connection_send(conn, reply, NULL)) {
975 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set default voice : Out Of Memory!\n");
978 dbus_connection_flush(conn);
979 dbus_message_unref(reply);
981 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set default voice : fail to create reply message!!");
984 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
985 SLOG(LOG_DEBUG, TAG_TTSD, " ");
990 int ttsd_dbus_server_setting_get_speed(DBusConnection* conn, DBusMessage* msg)
993 dbus_error_init(&err);
999 dbus_message_get_args(msg, &err,
1000 DBUS_TYPE_INT32, &pid,
1003 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET SPEED");
1005 if (dbus_error_is_set(&err)) {
1006 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting get speed : Get arguments error (%s)\n", err.message);
1007 dbus_error_free(&err);
1008 ret = TTSD_ERROR_OPERATION_FAILED;
1010 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting get default speed : pid(%d)\n", pid);
1011 ret = ttsd_server_setting_get_default_speed(pid, &speed);
1015 reply = dbus_message_new_method_return(msg);
1017 if (NULL != reply) {
1019 dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INT32, &speed, DBUS_TYPE_INVALID);
1020 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting get default speed : result(%d), speed(%d) \n", ret, speed);
1022 dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1023 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get default speed : result(%d) \n", ret);
1026 if (!dbus_connection_send(conn, reply, NULL)) {
1027 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get default speed : Out Of Memory!\n");
1030 dbus_connection_flush(conn);
1031 dbus_message_unref(reply);
1033 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get default speed : fail to create reply message!!");
1036 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
1037 SLOG(LOG_DEBUG, TAG_TTSD, " ");
1042 int ttsd_dbus_server_setting_set_speed(DBusConnection* conn, DBusMessage* msg)
1045 dbus_error_init(&err);
1051 dbus_message_get_args(msg, &err,
1052 DBUS_TYPE_INT32, &pid,
1053 DBUS_TYPE_INT32, &speed,
1056 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET SPEED");
1058 if (dbus_error_is_set(&err)) {
1059 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting set default speed : Get arguments error (%s)\n", err.message);
1060 dbus_error_free(&err);
1061 ret = TTSD_ERROR_OPERATION_FAILED;
1063 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting set default speed : pid(%d), speed(%d)\n", pid, speed);
1064 ret = ttsd_server_setting_set_default_speed(pid, speed);
1068 reply = dbus_message_new_method_return(msg);
1070 if (NULL != reply) {
1071 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1074 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting set default speed : result(%d)", ret);
1076 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set default speed : result(%d)", ret);
1079 if (!dbus_connection_send(conn, reply, NULL)) {
1080 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set default speed : Out Of Memory!\n");
1083 dbus_connection_flush(conn);
1084 dbus_message_unref(reply);
1086 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set default speed : fail to create reply message!!");
1089 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
1090 SLOG(LOG_DEBUG, TAG_TTSD, " ");
1095 int ttsd_dbus_server_setting_get_engine_setting(DBusConnection* conn, DBusMessage* msg)
1098 dbus_error_init(&err);
1103 GList* engine_setting_list = NULL;
1105 dbus_message_get_args(msg, &err,
1106 DBUS_TYPE_INT32, &pid,
1109 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING GET ENGINE SETTING");
1111 if (dbus_error_is_set(&err)) {
1112 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting get engine option : Get arguments error (%s)\n", err.message);
1113 dbus_error_free(&err);
1114 ret = TTSD_ERROR_OPERATION_FAILED;
1116 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting get engine option : pid(%d)", pid);
1117 ret = ttsd_server_setting_get_engine_setting(pid, &engine_id, &engine_setting_list);
1121 reply = dbus_message_new_method_return(msg);
1123 if (NULL != reply) {
1124 DBusMessageIter args;
1125 dbus_message_iter_init_append(reply, &args);
1128 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
1131 if (dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine_id))) {
1132 /* Append voice size */
1133 int size = g_list_length(engine_setting_list);
1134 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
1135 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : Fail to append type \n");
1136 ret = TTSD_ERROR_OPERATION_FAILED;
1140 engine_setting_s* setting;
1142 iter = g_list_first(engine_setting_list);
1144 while (NULL != iter) {
1145 setting = iter->data;
1147 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(setting->key) );
1148 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(setting->value) );
1150 if (NULL != setting->key)
1151 g_free(setting->key);
1152 if (NULL != setting->value)
1153 g_free(setting->value);
1154 if (NULL != setting);
1157 engine_setting_list = g_list_remove_link(engine_setting_list, iter);
1159 iter = g_list_first(engine_setting_list);
1162 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting engine setting list : result(%d) \n", ret);
1164 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting voice list : Fail to append engine_id \n");
1167 if (NULL != engine_id)
1170 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get engine option : result(%d) \n", ret);
1173 if (!dbus_connection_send(conn, reply, NULL)) {
1174 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get engine option : Out Of Memory!\n");
1177 dbus_connection_flush(conn);
1178 dbus_message_unref(reply);
1180 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting get engine option : fail to create reply message!!");
1183 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
1184 SLOG(LOG_DEBUG, TAG_TTSD, " ");
1189 int ttsd_dbus_server_setting_set_engine_setting(DBusConnection* conn, DBusMessage* msg)
1192 dbus_error_init(&err);
1199 dbus_message_get_args(msg, &err,
1200 DBUS_TYPE_INT32, &pid,
1201 DBUS_TYPE_STRING, &key,
1202 DBUS_TYPE_STRING, &value,
1205 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> SETTING SET ENGINE SETTING");
1207 if (dbus_error_is_set(&err)) {
1208 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] setting set engine option : Get arguments error (%s)\n", err.message);
1209 dbus_error_free(&err);
1210 ret = TTSD_ERROR_OPERATION_FAILED;
1212 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] setting set engine option : pid(%d), key(%s), value(%s)\n", pid, key, value);
1213 ret = ttsd_server_setting_set_engine_setting(pid, key, value);
1217 reply = dbus_message_new_method_return(msg);
1219 if (NULL != reply) {
1220 dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1223 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] setting set engine option : result(%d)", ret);
1225 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set engine option : result(%d)", ret);
1228 if (!dbus_connection_send(conn, reply, NULL)) {
1229 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set engine option : Out Of Memory!\n");
1231 dbus_connection_flush(conn);
1232 dbus_message_unref(reply);
1234 SLOG(LOG_ERROR, TAG_TTSD, "[OUT ERROR] setting set engine option : fail to create reply message!!");
1237 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
1238 SLOG(LOG_DEBUG, TAG_TTSD, " ");
1245 * Dbus Server functions for tts daemon intenal
1248 int ttsd_dbus_server_start_next_play(DBusMessage* msg)
1251 dbus_error_init(&err);
1255 dbus_message_get_args(msg, &err,
1256 DBUS_TYPE_INT32, &uid,
1259 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTSD NEXT PLAY");
1261 if (dbus_error_is_set(&err)) {
1262 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] ttsd 'start next play' : Get arguments error (%s)\n", err.message);
1263 dbus_error_free(&err);
1265 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] ttsd 'start next play' : uid(%d) \n", uid);
1266 int ret = ttsd_server_start_next_play(uid);
1267 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] ttsd 'start next play' : result(%d) \n", ret);
1270 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
1271 SLOG(LOG_DEBUG, TAG_TTSD, " ");
1276 int ttsd_dbus_server_start_next_synthesis(DBusMessage* msg)
1279 dbus_error_init(&err);
1283 dbus_message_get_args(msg, &err,
1284 DBUS_TYPE_INT32, &uid,
1287 SLOG(LOG_DEBUG, TAG_TTSD, ">>>>> TTSD NEXT SYNTHESIS");
1289 if (dbus_error_is_set(&err)) {
1290 SLOG(LOG_ERROR, TAG_TTSD, "[IN ERROR] ttsd 'start next synthesis' : Get arguments error (%s)\n", err.message);
1291 dbus_error_free(&err);
1293 SLOG(LOG_DEBUG, TAG_TTSD, "[IN] ttsd 'start next synthesis' : uid(%d) \n", uid);
1294 int ret = ttsd_server_start_next_synthesis(uid);
1295 SLOG(LOG_DEBUG, TAG_TTSD, "[OUT] ttsd 'start next synthesis' : result(%d) \n", ret);
1298 SLOG(LOG_DEBUG, TAG_TTSD, "<<<<<");
1299 SLOG(LOG_DEBUG, TAG_TTSD, " ");