diff options
author | Jaromir Wysoglad | 2019-07-14 23:39:26 +0200 |
---|---|---|
committer | Filippos Karapetis | 2019-09-01 22:47:55 +0300 |
commit | 5e44796d6b4c117daf95635588f7d4c83602791e (patch) | |
tree | 37f04355fb8a8e528733cd3d2efabbbdda35479e /gui/options.cpp | |
parent | 5ee30a1b7342c21db8b32d4e87bdfa300a27a2b4 (diff) | |
download | scummvm-rg350-5e44796d6b4c117daf95635588f7d4c83602791e.tar.gz scummvm-rg350-5e44796d6b4c117daf95635588f7d4c83602791e.tar.bz2 scummvm-rg350-5e44796d6b4c117daf95635588f7d4c83602791e.zip |
TTS: Add correct language switching
Diffstat (limited to 'gui/options.cpp')
-rw-r--r-- | gui/options.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/gui/options.cpp b/gui/options.cpp index e0e0cdf6b7..39bf6160ea 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -2149,19 +2149,20 @@ void GlobalOptionsDialog::apply() { error.runModal(); } #ifdef USE_TTS - bool ttsCheckboxChanged = _ttsCheckbox->getState() && - (!ConfMan.hasKey("tts_enabled") || !ConfMan.getBool("tts_enabled")); - bool languageChanged = (newLang != oldLang); - if (ttsCheckboxChanged || languageChanged) { -#if defined(USE_TRANSLATION) && defined(USE_LINUX_TTS) - if (ConfMan.get("gui_language") != "C") - warning("TTS on linux is supported only for english"); -#endif + Common::TextToSpeechManager *ttsMan = g_system->getTextToSpeechManager(); + if (newLang != oldLang) { + if (newLang == "C") + ttsMan->setLanguage("en"); + else { + Common::String guiLang = newLang; + guiLang.setChar('\0', 2); + ttsMan->setLanguage(guiLang); + } } ConfMan.setBool("tts_enabled", _ttsCheckbox->getState(), _domain); int selectedVoice = _ttsVoiceSelectionPopUp->getSelectedTag(); ConfMan.setInt("tts_voice", selectedVoice, _domain); - g_system->getTextToSpeechManager()->setVoice(selectedVoice); + ttsMan->setVoice(selectedVoice); #endif if (isRebuildNeeded) { |