diff options
author | Jaromir Wysoglad | 2019-07-23 17:54:31 +0200 |
---|---|---|
committer | Filippos Karapetis | 2019-09-01 22:47:55 +0300 |
commit | 58065ceacda18dbae0e72d19ece6438ab06a332b (patch) | |
tree | 5a2ff7a8e710e29f7e1d69b49808a26dc659c57e /backends/text-to-speech/windows | |
parent | 4ec10ffec786be030a358e1b5499a6b856092e81 (diff) | |
download | scummvm-rg350-58065ceacda18dbae0e72d19ece6438ab06a332b.tar.gz scummvm-rg350-58065ceacda18dbae0e72d19ece6438ab06a332b.tar.bz2 scummvm-rg350-58065ceacda18dbae0e72d19ece6438ab06a332b.zip |
TTS: Refactoring
* Delete multiple empty rows
* Make getVolume non-virtual and leave just the implementation
in base class
* Resolve warning about signed / unsigned comparison in
gui-manager
* Clear availableVoices when updating voices on linux
* By default set language to transMan language on windows
(if the transMan is available)
* Remove freeVoices method from Windows ttsMan, it isn't needed
anymore
Diffstat (limited to 'backends/text-to-speech/windows')
-rw-r--r-- | backends/text-to-speech/windows/windows-text-to-speech.cpp | 19 | ||||
-rw-r--r-- | backends/text-to-speech/windows/windows-text-to-speech.h | 2 |
2 files changed, 7 insertions, 14 deletions
diff --git a/backends/text-to-speech/windows/windows-text-to-speech.cpp b/backends/text-to-speech/windows/windows-text-to-speech.cpp index d102300028..f5c88ff12d 100644 --- a/backends/text-to-speech/windows/windows-text-to-speech.cpp +++ b/backends/text-to-speech/windows/windows-text-to-speech.cpp @@ -76,7 +76,13 @@ void WindowsTextToSpeechManager::init() { warning("Could not initialize TTS voice"); return; } + +#ifdef USE_TRANSLATION + setLanguage(TransMan.getCurrentLanguage()); +#else setLanguage("en"); +#endif + _voice->SetOutput(_audio, FALSE); if(_ttsState->_availableVoices.size() > 0) @@ -86,7 +92,6 @@ void WindowsTextToSpeechManager::init() { } WindowsTextToSpeechManager::~WindowsTextToSpeechManager() { - freeVoices(); if (_voice) _voice->Release(); ::CoUninitialize(); @@ -207,16 +212,6 @@ void WindowsTextToSpeechManager::setVolume(unsigned volume) { _ttsState->_volume = volume; } -int WindowsTextToSpeechManager::getVolume() { - return _ttsState->_volume; -} - -void WindowsTextToSpeechManager::freeVoices() { - _ttsState->_availableVoices.clear(); - // The voice data gets freed automaticly, when the reference counting inside TTSVoice - // reaches 0, so there is no point in trying to free it here -} - void WindowsTextToSpeechManager::setLanguage(Common::String language) { if (language == "C") language = "en"; @@ -322,7 +317,7 @@ Common::String WindowsTextToSpeechManager::lcidToLocale(Common::String lcid) { } void WindowsTextToSpeechManager::updateVoices() { - freeVoices(); + _ttsState->_availableVoices.clear(); HRESULT hr = S_OK; ISpObjectToken *cpVoiceToken = nullptr; IEnumSpObjectTokens *cpEnum = nullptr; diff --git a/backends/text-to-speech/windows/windows-text-to-speech.h b/backends/text-to-speech/windows/windows-text-to-speech.h index 87e4ceb218..f60a59de71 100644 --- a/backends/text-to-speech/windows/windows-text-to-speech.h +++ b/backends/text-to-speech/windows/windows-text-to-speech.h @@ -60,7 +60,6 @@ public: virtual void setPitch(int pitch); virtual void setVolume(unsigned volume); - virtual int getVolume(); virtual void setLanguage(Common::String language); @@ -70,7 +69,6 @@ private: void init(); virtual void updateVoices(); void createVoice(void *cpVoiceToken); - void freeVoices(); Common::String lcidToLocale(Common::String lcid); SpeechState _speechState; }; |