summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-09-27 00:05:54 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-09-27 00:05:54 +0000
commit6a012210d0e35cc1fced18e49de5dbb6be36d81d (patch)
tree48b1e440ad1960552087c27ab50bb30b77f11657
parent1ab86bb370f9c20cbe38aee2e7a6f6bfee1e287e (diff)
downloadrockbox-6a012210d0e35cc1fced18e49de5dbb6be36d81d.tar.gz
rockbox-6a012210d0e35cc1fced18e49de5dbb6be36d81d.zip
rbutil: hopefully fix sapi voice engine support. (sapi_voice.vbs wants now utf16)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18654 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/tts.cpp18
-rw-r--r--rbutil/rbutilqt/tts.h2
2 files changed, 14 insertions, 6 deletions
diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp
index c603e148f1..76eacd54ca 100644
--- a/rbutil/rbutilqt/tts.cpp
+++ b/rbutil/rbutilqt/tts.cpp
@@ -246,6 +246,10 @@ bool TTSSapi::start(QString *errStr)
246 if(*errStr != "") 246 if(*errStr != "")
247 return false; 247 return false;
248 } 248 }
249
250 voicestream = new QTextStream(voicescript);
251 voicestream->setCodec("UTF16-LE");
252
249 return true; 253 return true;
250} 254}
251 255
@@ -272,9 +276,10 @@ QStringList TTSSapi::getVoiceList(QString language)
272 qDebug() << "init" << execstring; 276 qDebug() << "init" << execstring;
273 voicescript = new QProcess(NULL); 277 voicescript = new QProcess(NULL);
274 voicescript->start(execstring); 278 voicescript->start(execstring);
279 qDebug() << "wait for started";
275 if(!voicescript->waitForStarted()) 280 if(!voicescript->waitForStarted())
276 return result; 281 return result;
277 282 voicescript->closeWriteChannel();
278 voicescript->waitForReadyRead(); 283 voicescript->waitForReadyRead();
279 284
280 QString dataRaw = voicescript->readAllStandardError().data(); 285 QString dataRaw = voicescript->readAllStandardError().data();
@@ -303,17 +308,20 @@ bool TTSSapi::voice(QString text,QString wavfile)
303{ 308{
304 QString query = "SPEAK\t"+wavfile+"\t"+text+"\r\n"; 309 QString query = "SPEAK\t"+wavfile+"\t"+text+"\r\n";
305 qDebug() << "voicing" << query; 310 qDebug() << "voicing" << query;
306 voicescript->write(query.toLocal8Bit()); 311 *voicestream << query;
307 voicescript->write("SYNC\tbla\r\n"); 312 *voicestream << "SYNC\tbla\r\n";
313 voicestream->flush();
308 voicescript->waitForReadyRead(); 314 voicescript->waitForReadyRead();
309 return true; 315 return true;
310} 316}
311 317
312bool TTSSapi::stop() 318bool TTSSapi::stop()
313{ 319{
314 QString query = "QUIT\r\n"; 320
315 voicescript->write(query.toLocal8Bit()); 321 *voicestream << "QUIT\r\n";
322 voicestream->flush();
316 voicescript->waitForFinished(); 323 voicescript->waitForFinished();
324 delete voicestream;
317 delete voicescript; 325 delete voicescript;
318 QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner 326 QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner
319 |QFile::ReadUser| QFile::WriteUser| QFile::ExeUser 327 |QFile::ReadUser| QFile::WriteUser| QFile::ExeUser
diff --git a/rbutil/rbutilqt/tts.h b/rbutil/rbutilqt/tts.h
index f73114b8c1..7c21fd0d65 100644
--- a/rbutil/rbutilqt/tts.h
+++ b/rbutil/rbutilqt/tts.h
@@ -81,7 +81,7 @@ class TTSSapi : public TTSBase
81 QStringList getVoiceList(QString language); 81 QStringList getVoiceList(QString language);
82 private: 82 private:
83 QProcess* voicescript; 83 QProcess* voicescript;
84 84 QTextStream* voicestream;
85 QString defaultLanguage; 85 QString defaultLanguage;
86 86
87 QString m_TTSexec; 87 QString m_TTSexec;