From 1c635a8c3c49c1c657b5c387d53086da5d6c08d3 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Sun, 3 Apr 2011 09:23:21 +0000 Subject: OS X TTS: add pitch setting. The current TTS configuration doesn't allow querying the system values so it currently can't be displayed. A value of 0 will use the system default. The default pitch is dependent on the voice; most voices should have a default pitch of 45 - 55. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29673 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/rbutilqt/base/rbsettings.cpp | 1 + rbutil/rbutilqt/base/rbsettings.h | 1 + rbutil/rbutilqt/base/ttscarbon.cpp | 16 ++++++++++++++++ rbutil/rbutilqt/base/ttscarbon.h | 3 ++- 4 files changed, 20 insertions(+), 1 deletion(-) (limited to 'rbutil/rbutilqt') diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp index c6f1bfcf6b..4026fb5ee9 100644 --- a/rbutil/rbutilqt/base/rbsettings.cpp +++ b/rbutil/rbutilqt/base/rbsettings.cpp @@ -46,6 +46,7 @@ const static struct { { RbSettings::VoiceLanguage, "voicelanguage", "" }, { RbSettings::TtsLanguage, ":tts:/language", "" }, { RbSettings::TtsOptions, ":tts:/options", "" }, + { RbSettings::TtsPitch, ":tts:/pitch", "0" }, { RbSettings::TtsPath, ":tts:/path", "" }, { RbSettings::TtsVoice, ":tts:/voice", "" }, { RbSettings::EncoderPath, ":encoder:/encoderpath", "" }, diff --git a/rbutil/rbutilqt/base/rbsettings.h b/rbutil/rbutilqt/base/rbsettings.h index d66a01d3e2..277b2197d1 100644 --- a/rbutil/rbutilqt/base/rbsettings.h +++ b/rbutil/rbutilqt/base/rbsettings.h @@ -48,6 +48,7 @@ class RbSettings : public QObject TtsOptions, TtsPath, TtsVoice, + TtsPitch, EncoderPath, EncoderOptions, WavtrimThreshold, diff --git a/rbutil/rbutilqt/base/ttscarbon.cpp b/rbutil/rbutilqt/base/ttscarbon.cpp index ba744b5fcf..96a9bf6852 100644 --- a/rbutil/rbutilqt/base/ttscarbon.cpp +++ b/rbutil/rbutilqt/base/ttscarbon.cpp @@ -89,6 +89,12 @@ bool TTSCarbon::start(QString *errStr) RbSettings::TtsSpeed).toInt()); if(rate != 0) SetSpeechRate(m_channel, rate); + + Fixed pitch = (Fixed)(0x10000 * RbSettings::subValue("carbon", + RbSettings::TtsPitch).toInt()); + if(pitch != 0) + SetSpeechPitch(m_channel, pitch); + return (error == 0) ? true : false; } @@ -139,6 +145,14 @@ void TTSCarbon::generateSettings(void) tr("Speed (words/min):"), speed, 80, 500, EncTtsSetting::eNOBTN); insertSetting(ConfigSpeed, setting); + + // pitch + int pitch = RbSettings::subValue("carbon", RbSettings::TtsPitch).toInt(); + setting = new EncTtsSetting(this, EncTtsSetting::eINT, + tr("Pitch (0 for default):"), pitch, 0, 65, + EncTtsSetting::eNOBTN); + insertSetting(ConfigPitch, setting); + } @@ -149,6 +163,8 @@ void TTSCarbon::saveSettings(void) getSetting(ConfigVoice)->current().toString()); RbSettings::setSubValue("carbon", RbSettings::TtsSpeed, getSetting(ConfigSpeed)->current().toInt()); + RbSettings::setSubValue("carbon", RbSettings::TtsPitch, + getSetting(ConfigPitch)->current().toInt()); RbSettings::sync(); } diff --git a/rbutil/rbutilqt/base/ttscarbon.h b/rbutil/rbutilqt/base/ttscarbon.h index fd5f84849b..be7590240a 100644 --- a/rbutil/rbutilqt/base/ttscarbon.h +++ b/rbutil/rbutilqt/base/ttscarbon.h @@ -33,7 +33,8 @@ class TTSCarbon : public TTSBase enum ConfigValuesCarbon { ConfigVoice, - ConfigSpeed + ConfigSpeed, + ConfigPitch }; public: TTSCarbon(QObject *parent = NULL); -- cgit