summaryrefslogtreecommitdiffstats
path: root/rbutil/rbutilqt/base/ttsexes.cpp
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2009-10-13 19:54:27 +0000
committerDominik Wenger <domonoky@googlemail.com>2009-10-13 19:54:27 +0000
commit3215c09462fe90c35dc6d9e1979e970280b052b1 (patch)
tree1fc7be334470d6d21b746a40bc7dbe440a722d35 /rbutil/rbutilqt/base/ttsexes.cpp
parent31c18116de2105deed8aa8dab84bf08a930f2112 (diff)
downloadrockbox-3215c09462fe90c35dc6d9e1979e970280b052b1.tar.gz
rockbox-3215c09462fe90c35dc6d9e1979e970280b052b1.tar.bz2
rockbox-3215c09462fe90c35dc6d9e1979e970280b052b1.zip
rbutil: split tts.cpp/h into individual files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23158 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/base/ttsexes.cpp')
-rw-r--r--rbutil/rbutilqt/base/ttsexes.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/base/ttsexes.cpp b/rbutil/rbutilqt/base/ttsexes.cpp
new file mode 100644
index 0000000000..d116290161
--- /dev/null
+++ b/rbutil/rbutilqt/base/ttsexes.cpp
@@ -0,0 +1,94 @@
+/***************************************************************************
+* __________ __ ___.
+* Open \______ \ ____ ____ | | _\_ |__ _______ ___
+* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+* \/ \/ \/ \/ \/
+*
+* Copyright (C) 2007 by Dominik Wenger
+* $Id$
+*
+* All files in this archive are subject to the GNU General Public License.
+* See the file COPYING in the source tree root for full license agreement.
+*
+* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+* KIND, either express or implied.
+*
+****************************************************************************/
+
+#include "ttsexes.h"
+#include "utils.h"
+#include "rbsettings.h"
+
+TTSExes::TTSExes(QString name,QObject* parent) : TTSBase(parent)
+{
+ m_name = name;
+
+ m_TemplateMap["espeak"] = "\"%exe\" %options -w \"%wavfile\" \"%text\"";
+ m_TemplateMap["flite"] = "\"%exe\" %options -o \"%wavfile\" -t \"%text\"";
+ m_TemplateMap["swift"] = "\"%exe\" %options -o \"%wavfile\" \"%text\"";
+
+}
+
+void TTSExes::generateSettings()
+{
+ QString exepath =RbSettings::subValue(m_name,RbSettings::TtsPath).toString();
+ if(exepath == "") exepath = findExecutable(m_name);
+
+ insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,
+ tr("Path to TTS engine:"),exepath,EncTtsSetting::eBROWSEBTN));
+ insertSetting(eOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,
+ tr("TTS engine options:"),RbSettings::subValue(m_name,RbSettings::TtsOptions)));
+}
+
+void TTSExes::saveSettings()
+{
+ RbSettings::setSubValue(m_name,RbSettings::TtsPath,getSetting(eEXEPATH)->current().toString());
+ RbSettings::setSubValue(m_name,RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString());
+ RbSettings::sync();
+}
+
+bool TTSExes::start(QString *errStr)
+{
+ m_TTSexec = RbSettings::subValue(m_name,RbSettings::TtsPath).toString();
+ m_TTSOpts = RbSettings::subValue(m_name,RbSettings::TtsOptions).toString();
+
+ m_TTSTemplate = m_TemplateMap.value(m_name);
+
+ QFileInfo tts(m_TTSexec);
+ if(tts.exists())
+ {
+ return true;
+ }
+ else
+ {
+ *errStr = tr("TTS executable not found");
+ return false;
+ }
+}
+
+TTSStatus TTSExes::voice(QString text,QString wavfile, QString *errStr)
+{
+ (void) errStr;
+ QString execstring = m_TTSTemplate;
+
+ execstring.replace("%exe",m_TTSexec);
+ execstring.replace("%options",m_TTSOpts);
+ execstring.replace("%wavfile",wavfile);
+ execstring.replace("%text",text);
+ //qDebug() << "voicing" << execstring;
+ QProcess::execute(execstring);
+ return NoError;
+
+}
+
+bool TTSExes::configOk()
+{
+ QString path = RbSettings::subValue(m_name,RbSettings::TtsPath).toString();
+
+ if (QFileInfo(path).exists())
+ return true;
+
+ return false;
+}