Merge "Remove unnecessary timer" into tizen
authorWonnam Jang <wn.jang@samsung.com>
Wed, 5 Dec 2018 11:55:04 +0000 (11:55 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Wed, 5 Dec 2018 11:55:04 +0000 (11:55 +0000)
client/tts.c
server/ttsd_data.cpp
server/ttsd_player.c
server/ttsd_server.c
tts-server.conf

index f5a44f3..08e8d9a 100644 (file)
@@ -37,6 +37,9 @@ static bool g_err_callback_status = false;
 
 static int g_max_text_size = -1;
 
+static Ecore_Timer* g_check_state_timer = NULL;
+
+
 /* for repetition */
 static char* g_language = NULL;
 
@@ -380,6 +383,12 @@ int tts_destroy(tts_h tts)
                g_language = NULL;
        }
 
+       /* Delete state timer before destroying handle */
+       if (NULL != g_check_state_timer) {
+               ecore_timer_del(g_check_state_timer);
+               g_check_state_timer = NULL;
+       }
+
        tts = NULL;
 
        SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
@@ -2097,7 +2106,11 @@ int __tts_cb_set_state(int uid, int state)
        }
 
        if (NULL != client->state_changed_cb) {
-               ecore_timer_add(0, __tts_notify_state_changed, client->tts);
+               if (NULL != g_check_state_timer) {
+                       ecore_timer_del(g_check_state_timer);
+                       g_check_state_timer = NULL;
+               }
+               g_check_state_timer = ecore_timer_add(0, __tts_notify_state_changed, client->tts);
        } else {
                SLOG(LOG_WARN, TAG_TTSC, "[WARNING] State changed callback is null");
        }
@@ -2218,6 +2231,11 @@ int tts_unset_state_changed_cb(tts_h tts)
        client->state_changed_cb = NULL;
        client->state_changed_user_data = NULL;
 
+       if (NULL != g_check_state_timer) {
+               ecore_timer_del(g_check_state_timer);
+               g_check_state_timer = NULL;
+       }
+
        SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset state changed cb");
 
        return 0;
index bb17c7d..47e335b 100644 (file)
@@ -524,23 +524,21 @@ int ttsd_data_clear_speak_data(int uid, speak_data_s** speak_data)
        int index = 0;
        index = ttsd_data_is_client(uid);
        if (index >= 0) {
-               if (!g_app_list[index].m_speak_data.empty()) {
-                       if (NULL != *speak_data) {
-                               SLOG(LOG_DEBUG, tts_tag(), "[DEBUG] utt(%d), text(%s), lang(%s), vctype(%d) speed(%d)", 
-                                               (*speak_data)->utt_id, (*speak_data)->text, (*speak_data)->lang, (*speak_data)->vctype, (*speak_data)->speed);
-
-                               if (NULL != (*speak_data)->text) {
-                                       free((*speak_data)->text);
-                                       (*speak_data)->text = NULL;
-                               }
-                               if (NULL != (*speak_data)->lang) {
-                                       free((*speak_data)->lang);
-                                       (*speak_data)->lang = NULL;
-                               }
-
-                               free(*speak_data);
-                               *speak_data = NULL;
+               if (NULL != *speak_data) {
+                       SLOG(LOG_DEBUG, tts_tag(), "[DEBUG] utt(%d), text(%s), lang(%s), vctype(%d) speed(%d)", 
+                                       (*speak_data)->utt_id, (*speak_data)->text, (*speak_data)->lang, (*speak_data)->vctype, (*speak_data)->speed);
+
+                       if (NULL != (*speak_data)->text) {
+                               free((*speak_data)->text);
+                               (*speak_data)->text = NULL;
+                       }
+                       if (NULL != (*speak_data)->lang) {
+                               free((*speak_data)->lang);
+                               (*speak_data)->lang = NULL;
                        }
+
+                       free(*speak_data);
+                       *speak_data = NULL;
                }
        }
 
@@ -556,19 +554,17 @@ int ttsd_data_clear_sound_data(int uid, sound_data_s** sound_data)
        int index = 0;
        index = ttsd_data_is_client(uid);
        if (index >= 0) {
-               if (!g_app_list[index].m_wav_data.empty()) {
-                       if (NULL != *sound_data) {
-                               SLOG(LOG_ERROR, tts_tag(), "[DEBUG][%p] event(%d) data(%p) size(%d) rate(%d) utt(%d)", 
-                                               (*sound_data), (*sound_data)->event, (*sound_data)->data, (*sound_data)->data_size, (*sound_data)->rate, (*sound_data)->utt_id);
-
-                               if (NULL != (*sound_data)->data) {
-                                       free((*sound_data)->data);
-                                       (*sound_data)->data = NULL;
-                               }
-
-                               free(*sound_data);
-                               *sound_data = NULL;
+               if (NULL != *sound_data) {
+                       SLOG(LOG_ERROR, tts_tag(), "[DEBUG][%p] event(%d) data(%p) size(%d) rate(%d) utt(%d)", 
+                                       (*sound_data), (*sound_data)->event, (*sound_data)->data, (*sound_data)->data_size, (*sound_data)->rate, (*sound_data)->utt_id);
+
+                       if (NULL != (*sound_data)->data) {
+                               free((*sound_data)->data);
+                               (*sound_data)->data = NULL;
                        }
+
+                       free(*sound_data);
+                       *sound_data = NULL;
                }
        }
        pthread_mutex_unlock(&g_sound_data_mutex);
index c259ad8..05619db 100644 (file)
@@ -536,7 +536,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                }
 
                if (g_sampling_rate != sound_data->rate || g_audio_type != sound_data->audio_type) {
-                       SLOG(LOG_DEBUG, tts_tag(), "[Player] Change audio handle : org type(%d) org rate(%d)", g_audio_type, g_sampling_rate);
+                       SLOG(LOG_INFO, tts_tag(), "[Player] Change audio handle : org type(%d) org rate(%d)", g_audio_type, g_sampling_rate);
                        if (NULL != g_audio_h) {
                                __destroy_audio_out();
                        }
@@ -551,6 +551,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                return;
                        }
 
+                       SLOG(LOG_INFO, tts_tag(), "[Player INFO] Success to destroy and recreate audio out");
                        __set_policy_for_playing(40);
                }
 
index 14dd166..7f2fe64 100644 (file)
@@ -233,6 +233,15 @@ int ttsd_send_result(ttse_result_event_e event, const void* data, unsigned int d
 
                if (0 != ttsd_data_add_sound_data(uid, temp_sound_data)) {
                        SECURE_SLOG(LOG_ERROR, tts_tag(), "[SERVER ERROR] Fail to add sound data : uid(%d)", uid);
+                       if (NULL != temp_sound_data->data) {
+                               free(temp_sound_data->data);
+                               temp_sound_data->data = NULL;
+                       }
+
+                       free(temp_sound_data);
+                       temp_sound_data = NULL;
+
+                       return TTSD_ERROR_OPERATION_FAILED;
                }
 
                if (event == TTSE_RESULT_EVENT_FINISH) {
index 9a4b34f..e70dde0 100644 (file)
   </policy>
 
   <policy group="users">
+    <allow own_prefix="org.tizen.tts"/>
+    <allow own="org.tizen.voice.ttsserver"/>
+    <allow own="org.tizen.voice.ttsnotiserver"/>
+    <allow own="org.tizen.voice.ttssrserver"/>
+    <allow own="org.tizen.voice.ttsinterruptserver"/>
+
     <allow send_destination="org.tizen.tts"/>
     <allow send_destination="org.tizen.voice.ttsserver"/>
     <allow send_destination="org.tizen.voice.ttsnotiserver"/>
     <allow own="org.tizen.voice.ttsnotiserver"/>
     <allow own="org.tizen.voice.ttssrserver"/>
     <allow own="org.tizen.voice.ttsinterruptserver"/>
+    
+    <allow send_destination="org.tizen.tts"/>
+    <allow send_destination="org.tizen.voice.ttsserver"/>
+    <allow send_destination="org.tizen.voice.ttsnotiserver"/>
+    <allow send_destination="org.tizen.voice.ttssrserver"/>
+    <allow send_destination="org.tizen.voice.ttsinterruptserver"/>
   </policy>
 
   <policy context="default">