[ACR-1216][tts][Add tts_repeat()]
[platform/core/uifw/tts.git] / server / ttsd_dbus_server.c
old mode 100755 (executable)
new mode 100644 (file)
index 611ab29..e750048
@@ -1,5 +1,5 @@
 /*
-*  Copyright (c) 2012, 2013 Samsung Electronics Co., Ltd All Rights Reserved 
+*  Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
@@ -21,29 +21,25 @@ extern int ttsd_data_get_pid(const int uid);
 
 /*
 * Dbus Client-Daemon Server
-*/ 
-
+*/
 int ttsd_dbus_server_hello(DBusConnection* conn, DBusMessage* msg)
 {
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS Hello");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS Hello");
 
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
        if (NULL != reply) {
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] Out Of Memory!");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] Fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
        return 0;
 }
 
@@ -53,50 +49,53 @@ int ttsd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
        dbus_error_init(&err);
 
        int pid, uid;
-       int ret = 0; 
+       bool credential_needed = 0;
+       int ret = 0;
 
        dbus_message_get_args(msg, &err,
                DBUS_TYPE_INT32, &pid,
                DBUS_TYPE_INT32, &uid,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS INITIALIZE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS INITIALIZE");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts initialize : get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts initialize : get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
 
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts initialize : pid(%d), uid(%d) \n", pid , uid); 
-               ret =  ttsd_server_initialize(pid, uid);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts initialize : pid(%d), uid(%d)", pid , uid);
+               ret =  ttsd_server_initialize(pid, uid, &credential_needed);
        }
 
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
+       int temp = (int)credential_needed;
+       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts initialize : result(%d), credential_needed(%d)", ret, (int)credential_needed);
        if (NULL != reply) {
-               dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
+               dbus_message_append_args(reply,
+                       DBUS_TYPE_INT32, &ret,
+                       DBUS_TYPE_INT32, &temp,
+                       DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts initialize : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts initialize : result(%d), credential_needed(%d)", ret, credential_needed);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts initialize : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts initialize : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts initialize : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts initialize : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts initialize : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts initialize : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
        return 0;
 }
 
@@ -106,19 +105,18 @@ int ttsd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
        dbus_error_init(&err);
 
        int uid;
-       int ret = 0; 
+       int ret = 0;
 
        dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS FINALIZE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS FINALIZE");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts finalize : get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts finalize : get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts finalize : uid(%d) \n", uid); 
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts finalize : uid(%d)", uid);
                ret =  ttsd_server_finalize(uid);
        }
 
@@ -129,24 +127,21 @@ int ttsd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
                dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts finalize : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts finalize : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts finalize : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts finalize : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts finalize : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts finalize : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts finalize : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts finalize : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
        return 0;
 }
 
@@ -161,14 +156,14 @@ int ttsd_dbus_server_get_support_voices(DBusConnection* conn, DBusMessage* msg)
 
        dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS GET VOICES");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS GET VOICES");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts get supported voices : get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts get supported voices : get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] get supported voices : uid(%d) \n", uid ); 
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] get supported voices : uid(%d)", uid);
                ret = ttsd_server_get_support_voices(uid, &voice_list);
        }
 
@@ -185,9 +180,9 @@ int ttsd_dbus_server_get_support_voices(DBusConnection* conn, DBusMessage* msg)
                if (0 == ret) {
                        /* Append voice size */
                        int size = g_list_length(voice_list);
-                       
+
                        if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
-                               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts supported voices : Fail to append type \n"); 
+                               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts supported voices : Fail to append type");
                                ret = TTSD_ERROR_OPERATION_FAILED;
                        } else {
 
@@ -200,38 +195,35 @@ int ttsd_dbus_server_get_support_voices(DBusConnection* conn, DBusMessage* msg)
                                        voice = iter->data;
 
                                        if (NULL != voice) {
-                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(voice->language) );
-                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(voice->type) );
+                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(voice->language));
+                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(voice->type));
 
                                                if (NULL != voice->language)
                                                        g_free(voice->language);
-                                               
+
                                                g_free(voice);
                                        }
-                                       
-                                       voice_list = g_list_remove_link(voice_list, iter);
 
+                                       voice_list = g_list_remove_link(voice_list, iter);
+                                       g_list_free(iter);
                                        iter = g_list_first(voice_list);
-                               } 
+                               }
                        }
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts supported voices : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts supported voices : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts supported voices : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts supported voices : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] error : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] error : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts supported voices : fail to create reply message!!");                
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts supported voices : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
        return 0;
 }
 
@@ -241,20 +233,20 @@ int ttsd_dbus_server_get_current_voice(DBusConnection* conn, DBusMessage* msg)
        dbus_error_init(&err);
 
        int uid;
-       char* lang;
+       char* lang = NULL;
        int voice_type;
        int ret;
 
        dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS GET DEFAULT VOICE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS GET DEFAULT VOICE");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts get default voice : Get arguments error (%s)\n", err.message);
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts get default voice : Get arguments error (%s)", err.message);
                dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts get default voice : uid(%d) \n", uid); 
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts get default voice : uid(%d)", uid);
                ret = ttsd_server_get_current_voice(uid, &lang, &voice_type);
        }
 
@@ -262,34 +254,32 @@ int ttsd_dbus_server_get_current_voice(DBusConnection* conn, DBusMessage* msg)
        reply = dbus_message_new_method_return(msg);
 
        if (NULL != reply) {
-               if (0 == ret) { 
+               if (0 == ret) {
                        /* Append result and voice */
-                       dbus_message_append_args( reply, 
+                       dbus_message_append_args(reply,
                                DBUS_TYPE_INT32, &ret,
                                DBUS_TYPE_STRING, &lang,
                                DBUS_TYPE_INT32, &voice_type,
                                DBUS_TYPE_INVALID);
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts default voice : lang(%s), vctype(%d)\n", lang, voice_type );
+                       SECURE_SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts default voice : lang(%s), vctype(%d)", lang, voice_type);
                } else {
-                       dbus_message_append_args( reply, 
+                       dbus_message_append_args(reply,
                                DBUS_TYPE_INT32, &ret,
                                DBUS_TYPE_INVALID);
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts default voice : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts default voice : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts default voice : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts default voice : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts default voice : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts default voice : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
+       if (NULL != lang)       free(lang);
        return 0;
 }
 
@@ -299,7 +289,7 @@ int ttsd_dbus_server_add_text(DBusConnection* conn, DBusMessage* msg)
        dbus_error_init(&err);
 
        int uid, voicetype, speed, uttid;
-       char *text, *lang;
+       char *text, *lang, *credential;
        int ret = 0;
 
        dbus_message_get_args(msg, &err,
@@ -309,19 +299,19 @@ int ttsd_dbus_server_add_text(DBusConnection* conn, DBusMessage* msg)
                DBUS_TYPE_INT32, &voicetype,
                DBUS_TYPE_INT32, &speed,
                DBUS_TYPE_INT32, &uttid,
+               DBUS_TYPE_STRING, &credential,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS ADD TEXT");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS ADD TEXT");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts add text : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts add text : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts add text : uid(%d), text(%s), lang(%s), type(%d), speed(%d), uttid(%d) \n", 
-                       uid, text, lang, voicetype, speed, uttid); 
-               ret =  ttsd_server_add_queue(uid, text, lang, voicetype, speed, uttid);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts add text : uid(%d), text(%s), lang(%s), type(%d), speed(%d), uttid(%d), credential(%s)", 
+                       uid, (NULL == text) ? "NULL" : text, (NULL == lang) ? "NULL" : lang, voicetype, speed, uttid, (NULL == credential) ? "NULL" : credential);
+               ret =  ttsd_server_add_queue(uid, text, lang, voicetype, speed, uttid, credential);
        }
 
        DBusMessage* reply;
@@ -331,23 +321,23 @@ int ttsd_dbus_server_add_text(DBusConnection* conn, DBusMessage* msg)
                dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts add text : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts add text : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts add text : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts add text : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts add text : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts add text : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts add text : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts add text : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
@@ -358,19 +348,23 @@ int ttsd_dbus_server_play(DBusConnection* conn, DBusMessage* msg)
        dbus_error_init(&err);
 
        int uid;
+       char* credential;
        int ret = 0;
 
-       dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
+       dbus_message_get_args(msg, &err,
+               DBUS_TYPE_INT32, &uid,
+               DBUS_TYPE_STRING, &credential,
+               DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS PLAY");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS PLAY");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts play : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts play : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts play : uid(%d) \n", uid ); 
-               ret =  ttsd_server_play(uid);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts play : uid(%d), credential(%s)", uid, (NULL == credential) ? "NULL" : credential);
+               ret =  ttsd_server_play(uid, credential);
        }
 
        DBusMessage* reply;
@@ -380,23 +374,23 @@ int ttsd_dbus_server_play(DBusConnection* conn, DBusMessage* msg)
                dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts play : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts play : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts play : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts play : result(%d)", ret);
                }
-       
+
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts play : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts play : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts play : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts play : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
@@ -412,14 +406,14 @@ int ttsd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
                DBUS_TYPE_INT32, &uid, 
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS STOP");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS STOP");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts stop : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts stop : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts stop : uid(%d)\n", uid);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts stop : uid(%d)", uid);
                ret = ttsd_server_stop(uid);
        }
 
@@ -432,23 +426,23 @@ int ttsd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
                        DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts stop : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts stop : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts stop : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts stop : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts stop : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts stop : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts stop : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts stop : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
@@ -465,14 +459,14 @@ int ttsd_dbus_server_pause(DBusConnection* conn, DBusMessage* msg)
                DBUS_TYPE_INT32, &uid, 
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> TTS PAUSE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS PAUSE");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] tts pause : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts pause : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] tts pause : uid(%d)\n", uid);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts pause : uid(%d)", uid);
                ret = ttsd_server_pause(uid, &uttid);
        }
 
@@ -485,511 +479,167 @@ int ttsd_dbus_server_pause(DBusConnection* conn, DBusMessage* msg)
                        DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] tts pause : result(%d) \n", ret); 
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts pause : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts pause : result(%d) \n", ret); 
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts pause : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts pause : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts pause : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] tts pause : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts pause : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
 
-
-/*
-* Dbus Setting-Daemon Server
-*/ 
-
-int ttsd_dbus_server_setting_initialize(DBusConnection* conn, DBusMessage* msg)
+int ttsd_dbus_server_set_private_data(DBusConnection* conn, DBusMessage* msg)
 {
        DBusError err;
        dbus_error_init(&err);
 
-       int pid;
+       int uid;
+       char* key;
+       char* data;
        int ret = 0;
-
        dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
+               DBUS_TYPE_INT32, &uid,
+               DBUS_TYPE_STRING, &key,
+               DBUS_TYPE_STRING, &data,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING INITIALIZE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS set private data");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] Receivce setting initialize : Get arguments error (%s)\n", err.message);
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] Fail to get arguments (%s)", err.message);
                dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] Receivce setting initialize : pid(%d) \n", pid); 
-               ret =  ttsd_server_setting_initialize(pid);
-       }
-       
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
-
-               if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting initialize : result(%d) \n", ret);
-               } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting initialize : result(%d) \n", ret);
-               }
-
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting initialize : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
-       } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting initialize : fail to create reply message!!"); 
-       }
-
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_finalize(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       int ret = 0;
-
-       dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING FINALIZE");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting finalize : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting finalize : pid(%d)\n", pid); 
-               ret =  ttsd_server_setting_finalize(pid);       
-       }
-
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
-
-               if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting finalize : result(%d) \n", ret);
-               } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting finalize : result(%d) \n", ret);
-               }
-               
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting finalize : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
-       } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting finalize : fail to create reply message!!"); 
+               SLOG(LOG_DEBUG, tts_tag(), "[IN] tts set private data(%d)", uid);
+               ret = ttsd_server_set_private_data(uid, key, data);
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_get_engine_list(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       int ret = 0;
-       GList* engine_list = NULL;
-       
-       dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET ENGINE LIST");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting engine list : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting engine list : pid(%d) \n", pid); 
-               ret = ttsd_server_setting_get_engine_list(pid, &engine_list);   
-       }
-       
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
        if (NULL != reply) {
-               DBusMessageIter args;
-               dbus_message_iter_init_append(reply, &args);
-
-               /* Append result*/
-               dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
+               dbus_message_append_args(reply,
+                       DBUS_TYPE_INT32, &ret,
+                       DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       /* Append size */
-                       int size = g_list_length(engine_list);
-                       if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
-                               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting engine list : fail to append engine size \n");
-                       } else {
-
-                               GList *iter = NULL;
-                               engine_s* engine;
-
-                               iter = g_list_first(engine_list);
-
-                               while (NULL != iter) {
-                                       engine = iter->data;
-                                       
-                                       if (NULL != engine) {
-                                               SLOG(LOG_DEBUG, get_tag(), "engine id : %s, engine name : %s, ug_name, : %s", 
-                                                       engine->engine_id, engine->engine_name, engine->ug_name);
-
-                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id) );
-                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name) );
-                                               dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name) );
-
-                                               if (NULL != engine->engine_id)
-                                                       g_free(engine->engine_id);
-                                               if (NULL != engine->engine_name)
-                                                       g_free(engine->engine_name);
-                                               if (NULL != engine->ug_name)
-                                                       g_free(engine->ug_name);
-                                               
-                                               g_free(engine);
-                                       }
-                                       
-                                       engine_list = g_list_remove_link(engine_list, iter);
-
-                                       iter = g_list_first(engine_list);
-                               } 
-                               SLOG(LOG_DEBUG, get_tag(), "[OUT] setting engine list : result(%d) \n", ret);
-                       }
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts set private data : (%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting engine list : result(%d) \n", ret);
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts set private data : (%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting engine list : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] Fail to send reply");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting engine list : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] Fail to create reply message");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "");
 
        return 0;
 }
 
-int ttsd_dbus_server_setting_get_engine(DBusConnection* conn, DBusMessage* msg)
+int ttsd_dbus_server_get_private_data(DBusConnection* conn, DBusMessage* msg)
 {
        DBusError err;
        dbus_error_init(&err);
 
-       int pid;
+       int uid;
+       char* key = NULL;
+       char* data = NULL;
        int ret = 0;
-       char* engine_id = NULL;
-
        dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
+               DBUS_TYPE_INT32, &uid,
+               DBUS_TYPE_STRING, &key,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET ENGINE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS get private data");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting get engine : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] Fail to get arguments (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting get engine : pid(%d)\n", pid); 
-               ret = ttsd_server_setting_get_current_engine(pid, &engine_id);
+               SLOG(LOG_DEBUG, tts_tag(), "[IN] tts get private data(%d)", uid);
+               ret = ttsd_server_get_private_data(uid, key, &data);
        }
 
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
        if (NULL != reply) {
-               if (0 == ret) {
-                       dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_STRING, &engine_id, DBUS_TYPE_INVALID);
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting get engine : result(%d), engine id(%s)\n", ret, engine_id);
-               } else {
-                       dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get engine : result(%d)", ret);
-               }
-
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get engine : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
-       } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get engine : fail to create reply message!!"); 
-       }
-
-       if (NULL != engine_id)
-               free(engine_id);
-
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_set_engine(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       char* engine_id;
-       int ret = 0;
-
-       dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_STRING, &engine_id,
-               DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING SET ENGINE");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting set engine : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting set engine : pid(%d), engine id(%s)\n", pid,  engine_id); 
-               ret = ttsd_server_setting_set_current_engine(pid, engine_id);
-       }
-       
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
+               dbus_message_append_args(reply,
+                       DBUS_TYPE_INT32, &ret,
+                       DBUS_TYPE_STRING, &data,
+                       DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting set engine : result(%d) \n", ret);
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts get private data : Result(%d), data(%s)", ret, (NULL == data) ? "NULL" : data);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set engine : result(%d) \n", ret);
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts get private data : (%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set engine : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] Fail to send reply");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set engine : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] Fail to create reply message");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_get_voice_list(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       char* engine_id = NULL;
-       int ret = 0;
-       GList* voice_list = NULL;
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "");
 
-       dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET VOICE LIST");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting voice list : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting voice list : pid(%d)\n", pid); 
-               ret = ttsd_server_setting_get_voice_list(pid, &engine_id, &voice_list);
+       if (NULL != data) {
+               free(data);
+               data = NULL;
        }
-       
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               DBusMessageIter args;
-
-               dbus_message_iter_init_append(reply, &args);
-
-               /* Append result*/
-               dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
-
-               if (0 == ret) {
-                       if (dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine_id))) {
-                               /* Append voice size */
-                               int size = g_list_length(voice_list);
-                               if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
-                                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : Fail to append type \n"); 
-                                       ret = TTSD_ERROR_OPERATION_FAILED;
-                               } else {
-
-                                       GList *iter = NULL;
-                                       voice_s* voice;
-
-                                       iter = g_list_first(voice_list);
-
-                                       while (NULL != iter) {
-                                               voice = iter->data;
-
-                                               if (NULL != voice) {
-                                                       dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(voice->language) );
-                                                       dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(voice->type) );
-
-                                                       if (NULL != voice->language)
-                                                               g_free(voice->language);
-
-                                                       g_free(voice);
-                                               }
-
-                                               voice_list = g_list_remove_link(voice_list, iter);
-
-                                               iter = g_list_first(voice_list);
-                                       } 
-                               }
-                               SLOG(LOG_DEBUG, get_tag(), "[OUT] setting voice list : result(%d) \n", ret); 
-                       } else {
-                               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : Fail to append engine_id \n"); 
-                       }
-
-                       if (NULL != engine_id)
-                               free(engine_id);
-               } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : result(%d) \n", ret);
-               }
-
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
-       } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : fail to create reply message!!"); 
-       }
-
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
 
        return 0;
 }
 
-int ttsd_dbus_server_setting_get_default_voice(DBusConnection* conn, DBusMessage* msg)
+int ttsd_dbus_server_play_pcm(DBusConnection* conn, DBusMessage* msg)
 {
        DBusError err;
        dbus_error_init(&err);
 
-       int pid;
+       int uid;
        int ret = 0;
-       char* lang;
-       ttsp_voice_type_e type;
 
        dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
+               DBUS_TYPE_INT32, &uid,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET DEFAULT VOICE");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS PLAY PCM");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting get default voice : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts play pcm : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {        
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting get default voice : pid(%d)\n", pid); 
-               ret = ttsd_server_setting_get_default_voice(pid, &lang, &type);
-       }
-       
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               if (0 == ret) {
-                       dbus_message_append_args(reply, 
-                               DBUS_TYPE_INT32, &ret, 
-                               DBUS_TYPE_STRING, &lang, 
-                               DBUS_TYPE_INT32, &type, 
-                               DBUS_TYPE_INVALID);
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting get default voice : result(%d), language(%s), type(%d) \n", ret, lang, type);
-               } else {
-                       dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get default voice : result(%d) \n", ret);
-               }
-
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get default voice : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get default voice : fail to create reply message!!"); 
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts play pcm : uid(%d)", uid);
+               ret =  ttsd_server_play_pcm(uid);
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_set_default_voice(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       char* language;
-       int voicetype;
-       int ret = 0;
-
-       dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_STRING, &language,
-               DBUS_TYPE_INT32, &voicetype,
-               DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SET DEFAULT VOICE");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting set default voice : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting set default voice : pid(%d), lang(%s), type(%d)\n"
-                       , pid, language, voicetype); 
-               ret =  ttsd_server_setting_set_default_voice(pid, language, voicetype);
-       }
-       
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
@@ -997,102 +647,48 @@ int ttsd_dbus_server_setting_set_default_voice(DBusConnection* conn, DBusMessage
                dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting set default voice : result(%d) \n", ret);
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts play pcm : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set default voice : result(%d) \n", ret);
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts play pcm : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set default voice : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts play pcm : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set default voice : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts play pcm : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
 
-int ttsd_dbus_server_setting_get_speed(DBusConnection* conn, DBusMessage* msg)
+int ttsd_dbus_server_stop_pcm(DBusConnection* conn, DBusMessage* msg)
 {
        DBusError err;
        dbus_error_init(&err);
 
-       int pid;
-       int ret = 0;
-       int speed;
-
-       dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET SPEED");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting get speed : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting get default speed : pid(%d)\n", pid); 
-               ret =  ttsd_server_setting_get_default_speed(pid, &speed);
-       }
-       
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               if (0 == ret) {
-                       dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INT32, &speed, DBUS_TYPE_INVALID);
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting get default speed : result(%d), speed(%d) \n", ret, speed);
-               } else {
-                       dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get default speed : result(%d) \n", ret);
-               }
-
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get default speed : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
-       } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get default speed : fail to create reply message!!"); 
-       }
-
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_set_speed(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       int speed;
+       int uid;
        int ret = 0;
 
        dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_INT32, &speed,
+               DBUS_TYPE_INT32, &uid,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET SPEED");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS STOP PCM");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting set default speed : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts stop pcm : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting set default speed : pid(%d), speed(%d)\n", pid, speed); 
-               ret = ttsd_server_setting_set_default_speed(pid, speed);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts stop pcm : uid(%d)", uid);
+               ret =  ttsd_server_stop_pcm(uid);
        }
 
        DBusMessage* reply;
@@ -1102,174 +698,86 @@ int ttsd_dbus_server_setting_set_speed(DBusConnection* conn, DBusMessage* msg)
                dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting set default speed : result(%d)", ret);
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts stop pcm : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set default speed : result(%d)", ret);
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts stop pcm : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set default speed : Out Of Memory!\n");
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts stop pcm : Out Of Memory!");
                }
 
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set default speed : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts stop pcm : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
 
-int ttsd_dbus_server_setting_get_engine_setting(DBusConnection* conn, DBusMessage* msg)
+int ttsd_dbus_server_add_pcm(DBusConnection* conn, DBusMessage* msg)
 {
        DBusError err;
        dbus_error_init(&err);
 
-       int pid;
+       int uid;
+       int event;
+       int audio_type;
+       int rate;
+       char* data = NULL;
+       int data_size;
        int ret = 0;
-       char* engine_id;
-       GList* engine_setting_list = NULL;
 
        dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
+               DBUS_TYPE_INT32, &uid,
+               DBUS_TYPE_INT32, &event,
+               DBUS_TYPE_INT32, &audio_type,
+               DBUS_TYPE_INT32, &rate,
+               //DBUS_TYPE_STRING, &data,
+               //DBUS_TYPE_INT32, &data_size,
+               DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
+               &data, &data_size,
                DBUS_TYPE_INVALID);
 
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING GET ENGINE SETTING");
+       SLOG(LOG_DEBUG, tts_tag(), ">>>>> TTS ADD PCM");
 
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting get engine option : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
+       if (dbus_error_is_set(&err)) {
+               SLOG(LOG_ERROR, tts_tag(), "[IN ERROR] tts add pcm : Get arguments error (%s)", err.message);
+               dbus_error_free(&err);
                ret = TTSD_ERROR_OPERATION_FAILED;
        } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting get engine option : pid(%d)", pid); 
-               ret = ttsd_server_setting_get_engine_setting(pid, &engine_id, &engine_setting_list);
+               SECURE_SLOG(LOG_DEBUG, tts_tag(), "[IN] tts add pcm : uid(%d)", uid);
+               ret =  ttsd_server_add_pcm(uid, event, (void*)data, data_size, audio_type, rate);
        }
 
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
        if (NULL != reply) {
-               DBusMessageIter args;
-               dbus_message_iter_init_append(reply, &args);
-
-               /* Append result*/
-               dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
+               dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       if (dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine_id))) {
-                               /* Append voice size */
-                               int size = g_list_length(engine_setting_list);
-                               if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
-                                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : Fail to append type \n"); 
-                                       ret = TTSD_ERROR_OPERATION_FAILED;
-                               } else {
-
-                                       GList *iter = NULL;
-                                       engine_setting_s* setting;
-
-                                       iter = g_list_first(engine_setting_list);
-
-                                       while (NULL != iter) {
-                                               setting = iter->data;
-
-                                               if (NULL != setting) {
-                                                       dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(setting->key) );
-                                                       dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(setting->value) );
-
-                                                       if (NULL != setting->key)
-                                                               g_free(setting->key);
-                                                       if (NULL != setting->value)
-                                                               g_free(setting->value);
-                                                       
-                                                       g_free(setting);
-                                               }
-                                               
-                                               engine_setting_list = g_list_remove_link(engine_setting_list, iter);
-
-                                               iter = g_list_first(engine_setting_list);
-                                       } 
-                               }
-                               SLOG(LOG_DEBUG, get_tag(), "[OUT] setting engine setting list : result(%d) \n", ret); 
-                       } else {
-                               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting voice list : Fail to append engine_id \n"); 
-                       }
-
-                       if (NULL != engine_id)
-                               free(engine_id);
+                       SLOG(LOG_DEBUG, tts_tag(), "[OUT] tts add pcm : result(%d)", ret);
                } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get engine option : result(%d) \n", ret);
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts add pcm : result(%d)", ret);
                }
 
                if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get engine option : Out Of Memory!\n");
-               }
-
-               dbus_connection_flush(conn);
-               dbus_message_unref(reply);
-       } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting get engine option : fail to create reply message!!"); 
-       }
-
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
-
-       return 0;
-}
-
-int ttsd_dbus_server_setting_set_engine_setting(DBusConnection* conn, DBusMessage* msg)
-{
-       DBusError err;
-       dbus_error_init(&err);
-
-       int pid;
-       char* key;
-       char* value;
-       int ret = 0;
-
-       dbus_message_get_args(msg, &err,
-               DBUS_TYPE_INT32, &pid,
-               DBUS_TYPE_STRING, &key,
-               DBUS_TYPE_STRING, &value,
-               DBUS_TYPE_INVALID);
-
-       SLOG(LOG_DEBUG, get_tag(), ">>>>> SETTING SET ENGINE SETTING");
-
-       if (dbus_error_is_set(&err)) { 
-               SLOG(LOG_ERROR, get_tag(), "[IN ERROR] setting set engine option : Get arguments error (%s)\n", err.message);
-               dbus_error_free(&err); 
-               ret = TTSD_ERROR_OPERATION_FAILED;
-       } else {
-               SLOG(LOG_DEBUG, get_tag(), "[IN] setting set engine option : pid(%d), key(%s), value(%s)\n", pid, key, value); 
-               ret = ttsd_server_setting_set_engine_setting(pid, key, value);
-       }
-       
-       DBusMessage* reply;
-       reply = dbus_message_new_method_return(msg);
-
-       if (NULL != reply) {
-               dbus_message_append_args( reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
-
-               if (0 == ret) {
-                       SLOG(LOG_DEBUG, get_tag(), "[OUT] setting set engine option : result(%d)", ret);
-               } else {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set engine option : result(%d)", ret);
+                       SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts add pcm : Out Of Memory!");
                }
 
-               if (!dbus_connection_send(conn, reply, NULL)) {
-                       SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set engine option : Out Of Memory!\n");
-               }
                dbus_connection_flush(conn);
                dbus_message_unref(reply);
        } else {
-               SLOG(LOG_ERROR, get_tag(), "[OUT ERROR] setting set engine option : fail to create reply message!!"); 
+               SLOG(LOG_ERROR, tts_tag(), "[OUT ERROR] tts add pcm : Fail to create reply message!!");
        }
 
-       SLOG(LOG_DEBUG, get_tag(), "<<<<<");
-       SLOG(LOG_DEBUG, get_tag(), "  ");
+       SLOG(LOG_DEBUG, tts_tag(), "<<<<<");
+       SLOG(LOG_DEBUG, tts_tag(), "  ");
 
        return 0;
 }
-