Remove callback when client is destroy 02/205202/2 accepted/tizen/unified/20190602.221734 submit/tizen/20190531.011938
authorwn.jang <wn.jang@samsung.com>
Tue, 30 Apr 2019 07:28:29 +0000 (16:28 +0900)
committerwn.jang <wn.jang@samsung.com>
Tue, 30 Apr 2019 07:29:36 +0000 (16:29 +0900)
Change-Id: I60cc40086c4d889212dc2d019915f6f7f0ef4c16
Signed-off-by: wn.jang <wn.jang@samsung.com>
client/tts.c

index 08e8d9a..a58dd6f 100644 (file)
@@ -233,6 +233,20 @@ void _tts_config_engine_changed_cb(const char* engine_id, const char* setting, c
 }
 //LCOV_EXCL_STOP
 
+void __tts_unset_all_callbacks(tts_h tts)
+{
+       SLOG(LOG_INFO, TAG_TTSC, "@@@ unset all callbacks");
+
+       tts_unset_state_changed_cb(tts);
+       tts_unset_utterance_started_cb(tts);
+       tts_unset_utterance_completed_cb(tts);
+       tts_unset_error_cb(tts);
+       tts_unset_default_voice_changed_cb(tts);
+       tts_unset_engine_changed_cb(tts);
+
+       SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
+}
+
 int tts_create(tts_h* tts)
 {
        if (0 != __tts_get_feature_enabled()) {
@@ -364,6 +378,9 @@ int tts_destroy(tts_h tts)
                        ecore_timer_del(client->conn_timer);
                        client->conn_timer = NULL;
                }
+               /* Unset registered callbacks */
+               __tts_unset_all_callbacks(tts);
+
                /* Free resources */
                tts_client_destroy(tts);
                break;