diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2007-12-14 19:26:54 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2007-12-14 19:26:54 +0000 |
commit | 815504b44919ac73923359e12aa29fb409cefda2 (patch) | |
tree | 1247110323388df365c80da86063d75b5a438eb3 /rbutil/rbutilqt/talkfile.cpp | |
parent | ed047d9db1dcee92afb8fe6bacb5d90ccb39481e (diff) | |
download | rockbox-815504b44919ac73923359e12aa29fb409cefda2.tar.gz rockbox-815504b44919ac73923359e12aa29fb409cefda2.zip |
rbutil: added builtin rbspeex encoder. Reworked encoder configuration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15925 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt/talkfile.cpp')
-rw-r--r-- | rbutil/rbutilqt/talkfile.cpp | 66 |
1 files changed, 26 insertions, 40 deletions
diff --git a/rbutil/rbutilqt/talkfile.cpp b/rbutil/rbutilqt/talkfile.cpp index e13647deb2..141af0b5ec 100644 --- a/rbutil/rbutilqt/talkfile.cpp +++ b/rbutil/rbutilqt/talkfile.cpp | |||
@@ -24,21 +24,6 @@ TalkFileCreator::TalkFileCreator(QObject* parent): QObject(parent) | |||
24 | 24 | ||
25 | } | 25 | } |
26 | 26 | ||
27 | |||
28 | bool TalkFileCreator::initEncoder() | ||
29 | { | ||
30 | QFileInfo enc(m_EncExec); | ||
31 | if(enc.exists()) | ||
32 | { | ||
33 | return true; | ||
34 | } | ||
35 | else | ||
36 | { | ||
37 | return false; | ||
38 | } | ||
39 | } | ||
40 | |||
41 | |||
42 | bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) | 27 | bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) |
43 | { | 28 | { |
44 | m_abort = false; | 29 | m_abort = false; |
@@ -60,12 +45,18 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) | |||
60 | m_logger->addItem("Init of TTS engine failed",LOGERROR); | 45 | m_logger->addItem("Init of TTS engine failed",LOGERROR); |
61 | return false; | 46 | return false; |
62 | } | 47 | } |
63 | if(!initEncoder()) | 48 | |
49 | // Encoder | ||
50 | m_enc = getEncoder(userSettings->value("encoder").toString()); | ||
51 | m_enc->setUserCfg(userSettings); | ||
52 | |||
53 | if(!m_enc->start()) | ||
64 | { | 54 | { |
65 | m_logger->addItem("Init of encoder failed",LOGERROR); | 55 | m_logger->addItem("Init of Encoder engine failed",LOGERROR); |
66 | m_tts->stop(); | 56 | m_tts->stop(); |
67 | return false; | 57 | return false; |
68 | } | 58 | } |
59 | |||
69 | QApplication::processEvents(); | 60 | QApplication::processEvents(); |
70 | 61 | ||
71 | connect(logger,SIGNAL(aborted()),this,SLOT(abort())); | 62 | connect(logger,SIGNAL(aborted()),this,SLOT(abort())); |
@@ -88,13 +79,16 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) | |||
88 | QString toSpeak; | 79 | QString toSpeak; |
89 | QString filename; | 80 | QString filename; |
90 | QString wavfilename; | 81 | QString wavfilename; |
91 | 82 | ||
92 | //! skip dotdot and .talk files | 83 | QString path = fileInf.filePath(); |
93 | if(fileInf.fileName() == ".." || fileInf.suffix() == "talk") | 84 | qDebug() << path; |
85 | |||
86 | if( path.endsWith("..") || path.endsWith(".talk") ) | ||
94 | { | 87 | { |
95 | it.next(); | 88 | it.next(); |
96 | continue; | 89 | continue; |
97 | } | 90 | } |
91 | |||
98 | //! if it is a dir | 92 | //! if it is a dir |
99 | if(fileInf.isDir()) | 93 | if(fileInf.isDir()) |
100 | { | 94 | { |
@@ -103,9 +97,14 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) | |||
103 | { | 97 | { |
104 | it.next(); | 98 | it.next(); |
105 | continue; | 99 | continue; |
106 | } | 100 | } |
107 | toSpeak = fileInf.absoluteDir().dirName(); | 101 | int index1 = path.lastIndexOf("/"); |
108 | filename = fileInf.absolutePath() + "/_dirname.talk"; | 102 | int index2 = path.lastIndexOf("/",index1-1); |
103 | |||
104 | toSpeak = path.mid(index2+1,(index1-index2)-1); | ||
105 | |||
106 | filename = path.left(index1) + "/_dirname.talk"; | ||
107 | qDebug() << "toSpeak: " << toSpeak << "filename: " << filename; | ||
109 | } | 108 | } |
110 | else // if it is a file | 109 | else // if it is a file |
111 | { | 110 | { |
@@ -137,15 +136,17 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger) | |||
137 | m_logger->addItem("Voicing of " + toSpeak + " failed",LOGERROR); | 136 | m_logger->addItem("Voicing of " + toSpeak + " failed",LOGERROR); |
138 | m_logger->abort(); | 137 | m_logger->abort(); |
139 | m_tts->stop(); | 138 | m_tts->stop(); |
139 | m_enc->stop(); | ||
140 | return false; | 140 | return false; |
141 | } | 141 | } |
142 | } | 142 | } |
143 | m_logger->addItem("Encoding of " + toSpeak,LOGINFO); | 143 | m_logger->addItem("Encoding of " + toSpeak,LOGINFO); |
144 | if(!encode(wavfilename,filename)) | 144 | if(!m_enc->encode(wavfilename,filename)) |
145 | { | 145 | { |
146 | m_logger->addItem("Encoding of " + wavfilename + " failed",LOGERROR); | 146 | m_logger->addItem("Encoding of " + wavfilename + " failed",LOGERROR); |
147 | m_logger->abort(); | 147 | m_logger->abort(); |
148 | m_tts->stop(); | 148 | m_tts->stop(); |
149 | m_enc->stop(); | ||
149 | return false; | 150 | return false; |
150 | } | 151 | } |
151 | } | 152 | } |
@@ -182,21 +183,6 @@ void TalkFileCreator::abort() | |||
182 | m_abort = true; | 183 | m_abort = true; |
183 | } | 184 | } |
184 | 185 | ||
185 | bool TalkFileCreator::encode(QString input,QString output) | ||
186 | { | ||
187 | qDebug() << "encoding.."; | ||
188 | QString execstring = m_curEncTemplate; | ||
189 | |||
190 | execstring.replace("%exe",m_EncExec); | ||
191 | execstring.replace("%options",m_EncOpts); | ||
192 | execstring.replace("%input",input); | ||
193 | execstring.replace("%output",output); | ||
194 | qDebug() << execstring; | ||
195 | QProcess::execute(execstring); | ||
196 | return true; | ||
197 | |||
198 | } | ||
199 | |||
200 | bool TTSSapi::start() | 186 | bool TTSSapi::start() |
201 | { | 187 | { |
202 | QFileInfo tts(m_TTSexec); | 188 | QFileInfo tts(m_TTSexec); |
@@ -257,7 +243,7 @@ bool TTSExes::voice(QString text,QString wavfile) | |||
257 | execstring.replace("%options",m_TTSOpts); | 243 | execstring.replace("%options",m_TTSOpts); |
258 | execstring.replace("%wavfile",wavfile); | 244 | execstring.replace("%wavfile",wavfile); |
259 | execstring.replace("%text",text); | 245 | execstring.replace("%text",text); |
260 | qDebug() << "voicing" << execstring; | 246 | //qDebug() << "voicing" << execstring; |
261 | QProcess::execute(execstring); | 247 | QProcess::execute(execstring); |
262 | return true; | 248 | return true; |
263 | 249 | ||