TTS: Move popState to the base class
This commit is contained in:
parent
d31ffb676a
commit
7c78912931
6 changed files with 20 additions and 40 deletions
|
@ -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) {
|
||||
free(data);
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ public:
|
|||
|
||||
virtual void setLanguage(Common::String language);
|
||||
|
||||
virtual bool popState();
|
||||
bool popState();
|
||||
|
||||
void updateState(SpeechState state);
|
||||
|
||||
|
|
|
@ -347,27 +347,6 @@ void WindowsTextToSpeechManager::updateVoices() {
|
|||
_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) {
|
||||
ISpObjectToken *voiceToken = (ISpObjectToken *) data;
|
||||
voiceToken->Release();
|
||||
|
|
|
@ -64,7 +64,7 @@ public:
|
|||
|
||||
virtual void setLanguage(Common::String language);
|
||||
|
||||
virtual bool popState();
|
||||
bool popState();
|
||||
|
||||
virtual void freeVoiceData(void *data);
|
||||
|
||||
|
|
|
@ -109,5 +109,22 @@ void TextToSpeechManager::pushState() {
|
|||
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
|
||||
|
|
|
@ -259,7 +259,7 @@ public:
|
|||
/**
|
||||
* Pops the TTS state
|
||||
*/
|
||||
virtual bool popState() { return true; }
|
||||
bool popState();
|
||||
|
||||
virtual void freeVoiceData(void *data) {}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue