aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-07-12 02:08:22 +0200
committerFilippos Karapetis2019-09-01 22:47:55 +0300
commitfa6faca76a35028e288753c3d74f2c81228ec5bb (patch)
treeae4bbd7a53133e15406278457a0d21d8ef5552e0
parent62a011e28a4a7e253ad07319cef760566cba59cb (diff)
downloadscummvm-rg350-fa6faca76a35028e288753c3d74f2c81228ec5bb.tar.gz
scummvm-rg350-fa6faca76a35028e288753c3d74f2c81228ec5bb.tar.bz2
scummvm-rg350-fa6faca76a35028e288753c3d74f2c81228ec5bb.zip
TTS: Add TTS checkbox to Options
Probably works only in the builtin theme right now.
-rw-r--r--backends/text-to-speech/linux/linux-text-to-speech.cpp1
-rw-r--r--gui/options.cpp23
-rw-r--r--gui/options.h8
-rw-r--r--gui/themes/default.inc7
4 files changed, 38 insertions, 1 deletions
diff --git a/backends/text-to-speech/linux/linux-text-to-speech.cpp b/backends/text-to-speech/linux/linux-text-to-speech.cpp
index 02ca5a8ef8..7ddd4ac2b4 100644
--- a/backends/text-to-speech/linux/linux-text-to-speech.cpp
+++ b/backends/text-to-speech/linux/linux-text-to-speech.cpp
@@ -138,7 +138,6 @@ bool LinuxTextToSpeechManager::isReady() {
void LinuxTextToSpeechManager::setVoice(unsigned index) {
if (_speechState == BROKEN)
return;
- debug("%d < %d", index, _ttsState->_availaibleVoices.size());
assert(index < _ttsState->_availaibleVoices.size());
Common::TTSVoice voice = _ttsState->_availaibleVoices[index];
spd_set_voice_type(_connection, *(SPDVoiceType *)(voice.getData()));
diff --git a/gui/options.cpp b/gui/options.cpp
index 92438623ac..ebfa4009eb 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -425,6 +425,7 @@ void OptionsDialog::build() {
_subSpeedSlider->setValue(speed);
_subSpeedLabel->setValue(speed);
}
+
}
void OptionsDialog::clean() {
@@ -1523,6 +1524,10 @@ GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher)
_serverWasRunning = false;
#endif
#endif
+#ifdef USE_TTS
+ _enableTTS = false;
+ _ttsCheckbox = 0;
+#endif
}
GlobalOptionsDialog::~GlobalOptionsDialog() {
@@ -1779,6 +1784,21 @@ void GlobalOptionsDialog::build() {
#endif // USE_SDL_NET
#endif // USE_CLOUD
+ //Accessibility
+#ifdef USE_TTS
+ if (g_system->getOverlayWidth() > 320)
+ tab->addTab(_("Accessibility"));
+ else
+ tab->addTab(_c("Accessibility", "lowres"));
+ _ttsCheckbox = new CheckboxWidget(tab, "GlobalOptions_Accessibility.TTSCheckbox",
+ _("Use Text to speech"), _("Will read text in gui on mouse over."));
+ if (ConfMan.hasKey("ttsEnabled"))
+ _ttsCheckbox->setState(ConfMan.getBool("ttsEnabled", _domain));
+ else
+ _ttsCheckbox->setState(false);
+
+#endif // USE_TTS
+
// Activate the first tab
tab->setActiveTab(0);
_tabWidget = tab;
@@ -2114,6 +2134,9 @@ void GlobalOptionsDialog::apply() {
MessageDialog error(errorMessage);
error.runModal();
}
+#ifdef USE_TTS
+ ConfMan.setBool("ttsEnabled", _ttsCheckbox->getState(), _domain);
+#endif
if (isRebuildNeeded) {
rebuild();
diff --git a/gui/options.h b/gui/options.h
index 04b5a5678c..5f7a6b362f 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -223,6 +223,7 @@ private:
CheckboxWidget *_muteCheckbox;
+
protected:
//
// Game GUI options
@@ -354,6 +355,13 @@ protected:
#endif // USE_SDL_NET
#endif // USE_CLOUD
+ //
+ // Accessibility controls
+ //
+#ifdef USE_TTS
+ bool _enableTTS;
+ CheckboxWidget *_ttsCheckbox;
+#endif
};
} // End of namespace GUI
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 49f5e05d7b..603567d700 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -1553,6 +1553,13 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"/>"
"</layout>"
"</dialog>"
+"<dialog name='GlobalOptions_Accessibility' overlays='Dialog.GlobalOptions.TabWidget'>"
+"<layout type='vertical' padding='16,16,16,16' spacing='16'>"
+"<widget name='TTSCheckbox' "
+"type='Checkbox' "
+"/>"
+"</layout>"
+"</dialog>"
"<dialog name='GlobalMenu' overlays='screen_center'>"
"<layout type='vertical' padding='16,16,16,16' center='true'>"
"<widget name='Title' "