From afdc5d1c96509cfc1ea0974a991b3de8f0ef547c Mon Sep 17 00:00:00 2001 From: Domonoky Date: Sat, 27 Sep 2008 00:05:54 +0000 Subject: [PATCH] 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 --- rbutil/rbutilqt/tts.cpp | 18 +++++++++++++----- rbutil/rbutilqt/tts.h | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp index c603e148f..76eacd54c 100644 --- a/rbutil/rbutilqt/tts.cpp +++ b/rbutil/rbutilqt/tts.cpp @@ -246,6 +246,10 @@ bool TTSSapi::start(QString *errStr) if(*errStr != "") return false; } + + voicestream = new QTextStream(voicescript); + voicestream->setCodec("UTF16-LE"); + return true; } @@ -272,9 +276,10 @@ QStringList TTSSapi::getVoiceList(QString language) qDebug() << "init" << execstring; voicescript = new QProcess(NULL); voicescript->start(execstring); + qDebug() << "wait for started"; if(!voicescript->waitForStarted()) return result; - + voicescript->closeWriteChannel(); voicescript->waitForReadyRead(); QString dataRaw = voicescript->readAllStandardError().data(); @@ -303,17 +308,20 @@ bool TTSSapi::voice(QString text,QString wavfile) { QString query = "SPEAK\t"+wavfile+"\t"+text+"\r\n"; qDebug() << "voicing" << query; - voicescript->write(query.toLocal8Bit()); - voicescript->write("SYNC\tbla\r\n"); + *voicestream << query; + *voicestream << "SYNC\tbla\r\n"; + voicestream->flush(); voicescript->waitForReadyRead(); return true; } bool TTSSapi::stop() { - QString query = "QUIT\r\n"; - voicescript->write(query.toLocal8Bit()); + + *voicestream << "QUIT\r\n"; + voicestream->flush(); voicescript->waitForFinished(); + delete voicestream; delete voicescript; QFile::setPermissions(QDir::tempPath() +"/sapi_voice.vbs",QFile::ReadOwner |QFile::WriteOwner|QFile::ExeOwner |QFile::ReadUser| QFile::WriteUser| QFile::ExeUser diff --git a/rbutil/rbutilqt/tts.h b/rbutil/rbutilqt/tts.h index f73114b8c..7c21fd0d6 100644 --- a/rbutil/rbutilqt/tts.h +++ b/rbutil/rbutilqt/tts.h @@ -81,7 +81,7 @@ class TTSSapi : public TTSBase QStringList getVoiceList(QString language); private: QProcess* voicescript; - + QTextStream* voicestream; QString defaultLanguage; QString m_TTSexec; -- 2.11.4.GIT