{
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) {
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) {