TTS: Move popState to the base class

This commit is contained in:
Jaromir Wysoglad 2019-07-18 23:33:48 +02:00 committed by Filippos Karapetis
parent d31ffb676a
commit 7c78912931
6 changed files with 20 additions and 40 deletions

View file

@ -258,22 +258,6 @@ void LinuxTextToSpeechManager::updateVoices() {
} }
bool LinuxTextToSpeechManager::popState() {
if (_ttsState->_next == nullptr)
return true;
Common::TTSState *oldState = _ttsState;
_ttsState = _ttsState->_next;
delete oldState;
setLanguage(_ttsState->_language);
setPitch(_ttsState->_pitch);
setVolume(_ttsState->_volume);
setRate(_ttsState->_rate);
return false;
}
void LinuxTextToSpeechManager::freeVoiceData(void *data) { void LinuxTextToSpeechManager::freeVoiceData(void *data) {
free(data); free(data);
} }

View file

@ -63,7 +63,7 @@ public:
virtual void setLanguage(Common::String language); virtual void setLanguage(Common::String language);
virtual bool popState(); bool popState();
void updateState(SpeechState state); void updateState(SpeechState state);

View file

@ -347,27 +347,6 @@ void WindowsTextToSpeechManager::updateVoices() {
_speechState = READY; _speechState = READY;
} }
bool WindowsTextToSpeechManager::popState() {
if (_ttsState->_next == nullptr)
return true;
for (Common::TTSVoice *i = _ttsState->_availaibleVoices.begin(); i < _ttsState->_availaibleVoices.end(); i++) {
ISpObjectToken *voiceToken = (ISpObjectToken *) i->getData();
voiceToken->Release();
}
Common::TTSState *oldState = _ttsState;
_ttsState = _ttsState->_next;
delete oldState;
setLanguage(_ttsState->_language);
setPitch(_ttsState->_pitch);
setVolume(_ttsState->_volume);
setRate(_ttsState->_rate);
setVoice(_ttsState->_activeVoice);
return false;
}
void WindowsTextToSpeechManager::freeVoiceData(void *data) { void WindowsTextToSpeechManager::freeVoiceData(void *data) {
ISpObjectToken *voiceToken = (ISpObjectToken *) data; ISpObjectToken *voiceToken = (ISpObjectToken *) data;
voiceToken->Release(); voiceToken->Release();

View file

@ -64,7 +64,7 @@ public:
virtual void setLanguage(Common::String language); virtual void setLanguage(Common::String language);
virtual bool popState(); bool popState();
virtual void freeVoiceData(void *data); virtual void freeVoiceData(void *data);

View file

@ -109,5 +109,22 @@ void TextToSpeechManager::pushState() {
updateVoices(); updateVoices();
} }
bool TextToSpeechManager::popState() {
if (_ttsState->_next == nullptr)
return true;
Common::TTSState *oldState = _ttsState;
_ttsState = _ttsState->_next;
delete oldState;
setLanguage(_ttsState->_language);
setPitch(_ttsState->_pitch);
setVolume(_ttsState->_volume);
setRate(_ttsState->_rate);
setVoice(_ttsState->_activeVoice);
return false;
}
} }
#endif #endif

View file

@ -259,7 +259,7 @@ public:
/** /**
* Pops the TTS state * Pops the TTS state
*/ */
virtual bool popState() { return true; } bool popState();
virtual void freeVoiceData(void *data) {} virtual void freeVoiceData(void *data) {}