summaryrefslogtreecommitdiffstats
path: root/rbutil/rbutilqt/tts.cpp
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-02-11 17:39:07 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-02-11 17:39:07 +0000
commit5f641ed3c2194b44b053bf963069a76d6f6c4b2c (patch)
treedcc6bab4d5993f87055309f84905820e39d67452 /rbutil/rbutilqt/tts.cpp
parent8681ba082c532fa3890c3494275f1c8e38a628af (diff)
downloadrockbox-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.cpp23
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()
ttsList["flite"] = "Flite TTS Engine";
ttsList["swift"] = "Swift TTS Engine";
#if defined(Q_OS_WIN)
- ttsList["sapi"] = "Sapi 5 TTS Engine";
+ ttsList["sapi"] = "Sapi TTS Engine";
#endif
}
@@ -156,7 +156,7 @@ TTSSapi::TTSSapi() : TTSBase()
{
m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\" /speed:%speed \"%options\"";
defaultLanguage ="english";
-
+ m_sapi4 =false;
}
@@ -166,8 +166,9 @@ bool TTSSapi::start(QString *errStr)
m_TTSOpts = settings->ttsOptions("sapi");
m_TTSLanguage =settings->ttsLang("sapi");
m_TTSVoice=settings->ttsVoice("sapi");
- m_TTSSpeed=settings->ttsSpeed("sapi");
-
+ m_TTSSpeed=QString("%1").arg(settings->ttsSpeed("sapi"));
+ m_sapi4 = settings->ttsUseSapi4();
+
QFile::remove(QDir::tempPath() +"/sapi_voice.vbs");
QFile::copy(":/builtin/sapi_voice.vbs",QDir::tempPath() + "/sapi_voice.vbs");
m_TTSexec = QDir::tempPath() +"/sapi_voice.vbs";
@@ -186,6 +187,9 @@ bool TTSSapi::start(QString *errStr)
execstring.replace("%voice",m_TTSVoice);
execstring.replace("%speed",m_TTSSpeed);
+ if(m_sapi4)
+ execstring.append(" /sapi4 ");
+
qDebug() << "init" << execstring;
voicescript = new QProcess(NULL);
//connect(voicescript,SIGNAL(readyReadStandardError()),this,SLOT(error()));
@@ -219,9 +223,13 @@ QStringList TTSSapi::getVoiceList(QString language)
return result;
// create the voice process
- QString execstring = "cscript //nologo \"%exe\" /language:%lang /listvoices";;
+ QString execstring = "cscript //nologo \"%exe\" /language:%lang /listvoices";
execstring.replace("%exe",m_TTSexec);
execstring.replace("%lang",language);
+
+ if(settings->ttsUseSapi4())
+ execstring.append(" /sapi4 ");
+
qDebug() << "init" << execstring;
voicescript = new QProcess(NULL);
voicescript->start(execstring);
@@ -234,6 +242,11 @@ QStringList TTSSapi::getVoiceList(QString language)
result = dataRaw.split(",",QString::SkipEmptyParts);
result.sort();
result.removeFirst();
+ for(int i = 0; i< result.size();i++)
+ {
+ result[i] = result.at(i).simplified();
+ }
+
delete voicescript;
QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner