diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2008-02-11 17:39:07 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2008-02-11 17:39:07 +0000 |
commit | 5f641ed3c2194b44b053bf963069a76d6f6c4b2c (patch) | |
tree | dcc6bab4d5993f87055309f84905820e39d67452 /rbutil/rbutilqt/tts.cpp | |
parent | 8681ba082c532fa3890c3494275f1c8e38a628af (diff) | |
download | rockbox-5f641ed3c2194b44b053bf963069a76d6f6c4b2c.tar.gz rockbox-5f641ed3c2194b44b053bf963069a76d6f6c4b2c.zip |
rbutil: fix a Bug in the sapi settings. Allow sapi4 (not sure if it really works).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16284 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/tts.cpp')
-rw-r--r-- | rbutil/rbutilqt/tts.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp index 9bdbf6fe3e..1f40df003b 100644 --- a/rbutil/rbutilqt/tts.cpp +++ b/rbutil/rbutilqt/tts.cpp | |||
@@ -30,7 +30,7 @@ void initTTSList() | |||
30 | ttsList["flite"] = "Flite TTS Engine"; | 30 | ttsList["flite"] = "Flite TTS Engine"; |
31 | ttsList["swift"] = "Swift TTS Engine"; | 31 | ttsList["swift"] = "Swift TTS Engine"; |
32 | #if defined(Q_OS_WIN) | 32 | #if defined(Q_OS_WIN) |
33 | ttsList["sapi"] = "Sapi 5 TTS Engine"; | 33 | ttsList["sapi"] = "Sapi TTS Engine"; |
34 | #endif | 34 | #endif |
35 | 35 | ||
36 | } | 36 | } |
@@ -156,7 +156,7 @@ TTSSapi::TTSSapi() : TTSBase() | |||
156 | { | 156 | { |
157 | m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\" /speed:%speed \"%options\""; | 157 | m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\" /speed:%speed \"%options\""; |
158 | defaultLanguage ="english"; | 158 | defaultLanguage ="english"; |
159 | 159 | m_sapi4 =false; | |
160 | } | 160 | } |
161 | 161 | ||
162 | 162 | ||
@@ -166,8 +166,9 @@ bool TTSSapi::start(QString *errStr) | |||
166 | m_TTSOpts = settings->ttsOptions("sapi"); | 166 | m_TTSOpts = settings->ttsOptions("sapi"); |
167 | m_TTSLanguage =settings->ttsLang("sapi"); | 167 | m_TTSLanguage =settings->ttsLang("sapi"); |
168 | m_TTSVoice=settings->ttsVoice("sapi"); | 168 | m_TTSVoice=settings->ttsVoice("sapi"); |
169 | m_TTSSpeed=settings->ttsSpeed("sapi"); | 169 | m_TTSSpeed=QString("%1").arg(settings->ttsSpeed("sapi")); |
170 | 170 | m_sapi4 = settings->ttsUseSapi4(); | |
171 | |||
171 | QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); | 172 | QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); |
172 | QFile::copy(":/builtin/sapi_voice.vbs",QDir::tempPath() + "/sapi_voice.vbs"); | 173 | QFile::copy(":/builtin/sapi_voice.vbs",QDir::tempPath() + "/sapi_voice.vbs"); |
173 | m_TTSexec = QDir::tempPath() +"/sapi_voice.vbs"; | 174 | m_TTSexec = QDir::tempPath() +"/sapi_voice.vbs"; |
@@ -186,6 +187,9 @@ bool TTSSapi::start(QString *errStr) | |||
186 | execstring.replace("%voice",m_TTSVoice); | 187 | execstring.replace("%voice",m_TTSVoice); |
187 | execstring.replace("%speed",m_TTSSpeed); | 188 | execstring.replace("%speed",m_TTSSpeed); |
188 | 189 | ||
190 | if(m_sapi4) | ||
191 | execstring.append(" /sapi4 "); | ||
192 | |||
189 | qDebug() << "init" << execstring; | 193 | qDebug() << "init" << execstring; |
190 | voicescript = new QProcess(NULL); | 194 | voicescript = new QProcess(NULL); |
191 | //connect(voicescript,SIGNAL(readyReadStandardError()),this,SLOT(error())); | 195 | //connect(voicescript,SIGNAL(readyReadStandardError()),this,SLOT(error())); |
@@ -219,9 +223,13 @@ QStringList TTSSapi::getVoiceList(QString language) | |||
219 | return result; | 223 | return result; |
220 | 224 | ||
221 | // create the voice process | 225 | // create the voice process |
222 | QString execstring = "cscript //nologo \"%exe\" /language:%lang /listvoices";; | 226 | QString execstring = "cscript //nologo \"%exe\" /language:%lang /listvoices"; |
223 | execstring.replace("%exe",m_TTSexec); | 227 | execstring.replace("%exe",m_TTSexec); |
224 | execstring.replace("%lang",language); | 228 | execstring.replace("%lang",language); |
229 | |||
230 | if(settings->ttsUseSapi4()) | ||
231 | execstring.append(" /sapi4 "); | ||
232 | |||
225 | qDebug() << "init" << execstring; | 233 | qDebug() << "init" << execstring; |
226 | voicescript = new QProcess(NULL); | 234 | voicescript = new QProcess(NULL); |
227 | voicescript->start(execstring); | 235 | voicescript->start(execstring); |
@@ -234,6 +242,11 @@ QStringList TTSSapi::getVoiceList(QString language) | |||
234 | result = dataRaw.split(",",QString::SkipEmptyParts); | 242 | result = dataRaw.split(",",QString::SkipEmptyParts); |
235 | result.sort(); | 243 | result.sort(); |
236 | result.removeFirst(); | 244 | result.removeFirst(); |
245 | for(int i = 0; i< result.size();i++) | ||
246 | { | ||
247 | result[i] = result.at(i).simplified(); | ||
248 | } | ||
249 | |||
237 | 250 | ||
238 | delete voicescript; | 251 | delete voicescript; |
239 | QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner | 252 | QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner |