diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2009-10-13 19:54:27 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2009-10-13 19:54:27 +0000 |
commit | 3215c09462fe90c35dc6d9e1979e970280b052b1 (patch) | |
tree | 1fc7be334470d6d21b746a40bc7dbe440a722d35 /rbutil/rbutilqt/base/ttsexes.cpp | |
parent | 31c18116de2105deed8aa8dab84bf08a930f2112 (diff) | |
download | rockbox-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.cpp | 94 |
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; +} |