Fix regresion in TextToSpeech 82/161682/2
authorPawel Kurowski <p.kurowski2@samsung.com>
Fri, 24 Nov 2017 17:15:57 +0000 (18:15 +0100)
committerPawel Kurowski <p.kurowski2@samsung.com>
Fri, 24 Nov 2017 17:28:42 +0000 (18:28 +0100)
Change-Id: I884c2ff6dce0f7ad1ac6169c738e2c4ca31d1cc2

src/TextToSpeech.cpp

index 05bb208..dceadc5 100644 (file)
@@ -55,10 +55,15 @@ TextToSpeech::TextToSpeech()
 {
        auto error = tts_create(&ttsHandler);
        EXIT_IF_ERROR(error);
-       error = tts_set_mode(ttsHandler, TTS_MODE_SCREEN_READER);
+       error = tts_set_mode(ttsHandler, TTS_MODE_DEFAULT);
        EXIT_IF_ERROR(error);
-       error = tts_prepare(ttsHandler);
+       tts_state_e state;
+       error = tts_get_state(ttsHandler, &state);
        EXIT_IF_ERROR(error);
+       if (state == TTS_STATE_CREATED) {
+               error = tts_prepare(ttsHandler);
+               EXIT_IF_ERROR(error);
+       }
 
        callbackHandles.push_back(Singleton<VConfInterface>::instance().registerAndGet<int>(VCONF_KEY_FEEDBACK_VOICE_SPEECH_RATE, TTS_SPEED_AUTO,
        [this](auto speed) {
@@ -85,12 +90,15 @@ TextToSpeech::~TextToSpeech()
 
        auto error = tts_stop(ttsHandler);
        EXIT_IF_ERROR(error);
+       error = tts_unprepare(ttsHandler);
+       EXIT_IF_ERROR(error);
        error = tts_destroy(ttsHandler);
        EXIT_IF_ERROR(error);
        ttsHandler = nullptr;
 }
 
 //TODO: support for long texts
+//TODO: speak for single element rows
 void TextToSpeech::speak(std::string text) const
 {
        if (!enabled) {