Change not to send dbus message when ttsc is destroyed and Add a checker for validity... 57/246557/3
authorsooyeon.kim <sooyeon.kim@samsung.com>
Mon, 2 Nov 2020 03:18:05 +0000 (12:18 +0900)
committersooyeon.kim <sooyeon.kim@samsung.com>
Mon, 2 Nov 2020 06:57:58 +0000 (15:57 +0900)
Change-Id: I1360497522e2f2088c5c1357bf14a448d80cd2cc
Signed-off-by: sooyeon.kim <sooyeon.kim@samsung.com>
server/ttsd_data.cpp
server/ttsd_player.c
server/ttsd_server.c

index f884f87..7d3b3bb 100644 (file)
@@ -221,9 +221,11 @@ int ttsd_data_get_pid(int uid)
 
        if (index < 0)  {
                SECURE_SLOG(LOG_ERROR, tts_tag(), "[DATA ERROR] uid is not valid (%d)", uid);
-               return TTSD_ERROR_INVALID_PARAMETER;
+               return -1;
        }
 
+       SLOG(LOG_INFO, tts_tag(), "[DATA INFO] uid(%d), pid(%d)", uid, g_app_list[index].pid);
+
        return g_app_list[index].pid;
 }
 
@@ -783,10 +785,10 @@ int ttsd_data_get_same_pid_client_count(int pid)
 int ttsd_data_save_error_log(int uid, FILE* fp)
 {
        int ret;
-       int pid;
+       int pid = ttsd_data_get_pid(uid);
+
        /* pid */
-       pid = ttsd_data_get_pid(uid);
-       if (0 > pid) {
+       if (pid <= 0) {
                SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get pid");
        } else {
                fprintf(fp, "pid - %d", pid);
index 9c16c39..a3b3231 100644 (file)
@@ -171,8 +171,14 @@ void __player_focus_state_cb(sound_stream_info_h stream_info, sound_stream_focus
 
                                ttsd_data_set_client_state(uid, APP_STATE_PAUSED);
                                int pid = ttsd_data_get_pid(uid);
-                               /* send message to client about changing state */
-                               ttsdc_send_set_state_message(pid, uid, APP_STATE_PAUSED);
+                               if (pid <= 0) {
+                                       SLOG(LOG_WARN, tts_tag(), "[Player WARNING] Fail to get pid. uid(%d)", uid);
+                                       return;
+                               } else {
+                                       /* send message to client about changing state */
+                                       SLOG(LOG_INFO, tts_tag(), "[Player INFO] Player paused. pid(%d), uid(%d)", pid, uid);
+                                       ttsdc_send_set_state_message(pid, uid, APP_STATE_PAUSED);
+                               }
                        }
                } else {
                        SLOG(LOG_DEBUG, tts_tag(), "[Player] Ignore focus state cb - mode(%d)", ttsd_get_mode());
@@ -695,9 +701,8 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                        if (TTSE_RESULT_EVENT_START == sound_data->event ||
                           (TTSE_RESULT_EVENT_FINISH == player->event && TTSE_RESULT_EVENT_FINISH == sound_data->event)) {
                                int pid = ttsd_data_get_pid(player->uid);
-
                                if (pid <= 0) {
-                                       SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid");
+                                       SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid. uid(%d)", player->uid);
                                        /* unset volume policy, volume will be 100% */
                                        __unset_policy_for_playing();
                                        ttsd_data_clear_sound_data(&sound_data);
@@ -722,7 +727,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                                        int pid = ttsd_data_get_pid(player->uid);
 
                                        if (pid <= 0) {
-                                               SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid");
+                                               SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid. uid(%d)", player->uid);
                                                /* unset volume policy, volume will be 100% */
                                                __unset_policy_for_playing();
                                                ttsd_data_clear_sound_data(&sound_data);
@@ -880,7 +885,7 @@ static void __play_thread(void *data, Ecore_Thread *thread)
                        int pid = ttsd_data_get_pid(player->uid);
 
                        if (pid <= 0) {
-                               SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid");
+                               SLOG(LOG_WARN, tts_tag(), "[Send WARNIING] Current player is not valid. uid(%d)", player->uid);
                                /* unset volume policy, volume will be 100% */
                                __unset_policy_for_playing();
                                ttsd_data_clear_sound_data(&sound_data);
index 10e3c9f..4e8e09a 100644 (file)
@@ -85,6 +85,11 @@ static int __synthesis(int uid, const char* credential)
                }
 
                int pid = ttsd_data_get_pid(uid);
+               if (pid <= 0) {
+                       SLOG(LOG_ERROR, tts_tag(), "[Server ERROR] Fail to get pid. uid(%d)", uid);
+                       return -1;
+               }
+
                char appid[1024] = {0, };
                if (0 != aul_app_get_appid_bypid(pid, appid, sizeof(appid) - 1)) {
                        SLOG(LOG_ERROR, tts_tag(), "[Server ERROR] Fail to get app id");
@@ -122,7 +127,11 @@ static int __synthesis(int uid, const char* credential)
                        ttsd_server_stop(uid);
 
                        int pid = ttsd_data_get_pid(uid);
-                       ttsdc_send_set_state_message(pid, uid, APP_STATE_READY);
+                       if (pid <= 0) {
+                               SLOG(LOG_WARN, tts_tag(), "[Server WARNING] Fail to send set_state_message. uid(%d)", uid);
+                       } else {
+                               ttsdc_send_set_state_message(pid, uid, APP_STATE_READY);
+                       }
                } else {
                        g_wait_timer = ecore_timer_add(0.05, __wait_synthesis, (void*)credential);
                }
@@ -264,12 +273,17 @@ int ttsd_send_result(ttse_result_event_e event, const void* data, unsigned int d
                if (0 != ttsd_player_play(uid)) {
                        SLOG(LOG_ERROR, tts_tag(), "[Server ERROR] Fail to play sound : uid(%d)", uid);
 
-                       /* Change ready state */
-                       ttsd_server_stop(uid);
+                       ttsd_set_synth_control(TTSD_SYNTHESIS_CONTROL_DONE);
 
-                       int tmp_pid;
-                       tmp_pid = ttsd_data_get_pid(uid);
-                       ttsdc_send_set_state_message(tmp_pid, uid, APP_STATE_READY);
+                       int tmp_pid = ttsd_data_get_pid(uid);
+                       if (tmp_pid <= 0) {
+                               SLOG(LOG_WARN, tts_tag(), "[Server WARNING] uid(%d) is already destroyed or invalid", uid);
+                       } else {
+                               /* Change ready state */
+                               ttsd_server_stop(uid);
+
+                               ttsdc_send_set_state_message(tmp_pid, uid, APP_STATE_READY);
+                       }
                }
        } else {
                SLOG(LOG_DEBUG, tts_tag(), "[SERVER] Event : TTSE_RESULT_EVENT_ERROR");
@@ -888,7 +902,6 @@ Eina_Bool __send_interrupt_client(void *data)
        int uid = (int)puid;
 
        int pid = ttsd_data_get_pid(uid);
-
        if (pid <= 0) {
                SLOG(LOG_ERROR, tts_tag(), "[Server ERROR] Fail to get pid. uid(%d), pid(%d)", uid, pid);
                return EINA_FALSE;
@@ -1249,9 +1262,12 @@ int ttsd_server_play_pcm(int uid)
                        // Change ready state
                        ttsd_server_stop_pcm(uid);
 
-                       int tmp_pid;
-                       tmp_pid = ttsd_data_get_pid(uid);
-                       ttsdc_send_set_state_message(tmp_pid, uid, APP_STATE_READY);
+                       int tmp_pid = ttsd_data_get_pid(uid);
+                       if (tmp_pid <= 0) {
+                               SLOG(LOG_WARN, tts_tag(), "[Server WARNING] Fail to send set_state_message. uid(%d)", uid);
+                       } else {
+                               ttsdc_send_set_state_message(tmp_pid, uid, APP_STATE_READY);
+                       }
                }
        }