diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-10-06 12:42:20 +0200 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-10-06 13:53:09 +0200 |
commit | 7f76bb48b352984c4de8f40509618763e39f181f (patch) | |
tree | 051d788b3dd466bbc560de3dc96d271c9f768343 /rbutil/rbutilqt/base/talkgenerator.cpp | |
parent | a2dd1625bcfb1272cb711dc35896924817af3c0c (diff) | |
download | rockbox-7f76bb48b352984c4de8f40509618763e39f181f.tar.gz rockbox-7f76bb48b352984c4de8f40509618763e39f181f.zip |
Don't assume success for TTS object creation.
While the current implementation of getTTS() will always return an object this
might change later. Check the returned object before using it to be on the safe
side.
Change-Id: Ic949cae7cfbe6f3086dee6aab741b0acafe14640
Diffstat (limited to 'rbutil/rbutilqt/base/talkgenerator.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/talkgenerator.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/rbutil/rbutilqt/base/talkgenerator.cpp b/rbutil/rbutilqt/base/talkgenerator.cpp index 16e1b15184..a2ab578ade 100644 --- a/rbutil/rbutilqt/base/talkgenerator.cpp +++ b/rbutil/rbutilqt/base/talkgenerator.cpp | |||
@@ -35,12 +35,19 @@ TalkGenerator::Status TalkGenerator::process(QList<TalkEntry>* list,int wavtrimt | |||
35 | bool warnings = false; | 35 | bool warnings = false; |
36 | 36 | ||
37 | //tts | 37 | //tts |
38 | emit logItem(tr("Starting TTS Engine"),LOGINFO); | 38 | emit logItem(tr("Starting TTS Engine"), LOGINFO); |
39 | m_tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString()); | 39 | m_tts = TTSBase::getTTS(this, RbSettings::value(RbSettings::Tts).toString()); |
40 | if(!m_tts) | ||
41 | { | ||
42 | qDebug() << "[TalkGenerator] getting the TTS object failed!"; | ||
43 | emit logItem(tr("Init of TTS engine failed"), LOGERROR); | ||
44 | emit done(true); | ||
45 | return eERROR; | ||
46 | } | ||
40 | if(!m_tts->start(&errStr)) | 47 | if(!m_tts->start(&errStr)) |
41 | { | 48 | { |
42 | emit logItem(errStr.trimmed(),LOGERROR); | 49 | emit logItem(errStr.trimmed(),LOGERROR); |
43 | emit logItem(tr("Init of TTS engine failed"),LOGERROR); | 50 | emit logItem(tr("Init of TTS engine failed"), LOGERROR); |
44 | emit done(true); | 51 | emit done(true); |
45 | return eERROR; | 52 | return eERROR; |
46 | } | 53 | } |
@@ -278,6 +285,11 @@ void TalkGenerator::setLang(QString name) | |||
278 | 285 | ||
279 | QString engine = RbSettings::value(RbSettings::Tts).toString(); | 286 | QString engine = RbSettings::value(RbSettings::Tts).toString(); |
280 | TTSBase* tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString()); | 287 | TTSBase* tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString()); |
288 | if(!tts) | ||
289 | { | ||
290 | qDebug() << "[TalkGenerator] getting the TTS object failed!"; | ||
291 | return; | ||
292 | } | ||
281 | QString vendor = tts->voiceVendor(); | 293 | QString vendor = tts->voiceVendor(); |
282 | delete tts; | 294 | delete tts; |
283 | 295 | ||