summaryrefslogtreecommitdiffstats
path: root/rbutil/rbutilqt/base/ttssapi.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2011-09-26 21:28:05 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2011-09-26 21:28:05 +0000
commitfe3eadffba810be2666435d68b929027130d47ed (patch)
tree4c47fef3017b76c28f1697e304062cdadd6dd1e2 /rbutil/rbutilqt/base/ttssapi.cpp
parentc7c657ca9264b1bc7dc313a92e285128fc9ffea3 (diff)
downloadrockbox-fe3eadffba810be2666435d68b929027130d47ed.tar.gz
rockbox-fe3eadffba810be2666435d68b929027130d47ed.tar.bz2
rockbox-fe3eadffba810be2666435d68b929027130d47ed.zip
Rockbox Utility TTS: implement reading TTS vendor.
Support retrieving the vendor name of the TTS. This will be used by TTS string corrections. Currently no other TTS but SAPI supports this, and only correction strings for SAPI voices depend on the vendor information. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30609 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/base/ttssapi.cpp')
-rw-r--r--rbutil/rbutilqt/base/ttssapi.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/rbutil/rbutilqt/base/ttssapi.cpp b/rbutil/rbutilqt/base/ttssapi.cpp
index cd9ced8083..cb7d8a5057 100644
--- a/rbutil/rbutilqt/base/ttssapi.cpp
+++ b/rbutil/rbutilqt/base/ttssapi.cpp
@@ -26,8 +26,9 @@ TTSSapi::TTSSapi(QObject* parent) : TTSBase(parent)
{
m_TTSTemplate = "cscript //nologo \"%exe\" /language:%lang /voice:\"%voice\""
" /speed:%speed \"%options\"";
- defaultLanguage ="english";
- m_sapi4 =false;
+ defaultLanguage = "english";
+ m_sapi4 = false;
+ m_started = false;
}
TTSBase::Capabilities TTSSapi::capabilities()
@@ -138,9 +139,29 @@ bool TTSSapi::start(QString *errStr)
voicestream = new QTextStream(voicescript);
voicestream->setCodec("UTF16-LE");
+ m_started = true;
return true;
}
+QString TTSSapi::voiceVendor(void)
+{
+ bool keeprunning = m_started;
+ QString vendor;
+ if(!m_started) {
+ QString error;
+ start(&error);
+ }
+ *voicestream << "QUERY\tVENDOR\r\n";
+ voicestream->flush();
+ while((vendor = voicestream->readLine()).isEmpty())
+ QCoreApplication::processEvents();
+
+ qDebug() << "[TTSSAPI] TTS vendor:" << vendor;
+ if(!keeprunning) {
+ stop();
+ }
+ return vendor;
+}
QStringList TTSSapi::getVoiceList(QString language)
{
@@ -226,6 +247,7 @@ bool TTSSapi::stop()
| QFile::ReadGroup | QFile::WriteGroup | QFile::ExeGroup
| QFile::ReadOther | QFile::WriteOther | QFile::ExeOther );
QFile::remove(QDir::tempPath() +"/sapi_voice.vbs");
+ m_started = false;
return true;
}