summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-10-06 12:42:20 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-10-06 13:53:09 +0200
commit7f76bb48b352984c4de8f40509618763e39f181f (patch)
tree051d788b3dd466bbc560de3dc96d271c9f768343 /rbutil/rbutilqt
parenta2dd1625bcfb1272cb711dc35896924817af3c0c (diff)
downloadrockbox-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')
-rw-r--r--rbutil/rbutilqt/base/talkgenerator.cpp18
-rw-r--r--rbutil/rbutilqt/configure.cpp16
-rw-r--r--rbutil/rbutilqt/createvoicewindow.cpp6
-rw-r--r--rbutil/rbutilqt/installtalkwindow.cpp6
4 files changed, 41 insertions, 5 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
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index 9dee3f40c6..eef1fcf4e1 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -418,6 +418,13 @@ void Config::updateTtsState(int index)
418 QString ttsName = ui.comboTts->itemData(index).toString(); 418 QString ttsName = ui.comboTts->itemData(index).toString();
419 TTSBase* tts = TTSBase::getTTS(this,ttsName); 419 TTSBase* tts = TTSBase::getTTS(this,ttsName);
420 420
421 if(!tts)
422 {
423 QMessageBox::critical(this, tr("TTS error"),
424 tr("The selected TTS failed to initialize. You can't use this TTS."));
425 return;
426 }
427
421 if(tts->configOk()) 428 if(tts->configOk())
422 { 429 {
423 ui.configTTSstatus->setText(tr("Configuration OK")); 430 ui.configTTSstatus->setText(tr("Configuration OK"));
@@ -837,9 +844,14 @@ void Config::testTts()
837 QString errstr; 844 QString errstr;
838 int index = ui.comboTts->currentIndex(); 845 int index = ui.comboTts->currentIndex();
839 TTSBase* tts; 846 TTSBase* tts;
840
841 ui.testTTS->setEnabled(false);
842 tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString()); 847 tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString());
848 if(!tts)
849 {
850 QMessageBox::critical(this, tr("TTS error"),
851 tr("The selected TTS failed to initialize. You can't use this TTS."));
852 return;
853 }
854 ui.testTTS->setEnabled(false);
843 if(!tts->configOk()) 855 if(!tts->configOk())
844 { 856 {
845 QMessageBox::warning(this,tr("TTS configuration invalid"), 857 QMessageBox::warning(this,tr("TTS configuration invalid"),
diff --git a/rbutil/rbutilqt/createvoicewindow.cpp b/rbutil/rbutilqt/createvoicewindow.cpp
index 8bd4e8d693..5b6ef16699 100644
--- a/rbutil/rbutilqt/createvoicewindow.cpp
+++ b/rbutil/rbutilqt/createvoicewindow.cpp
@@ -93,6 +93,12 @@ void CreateVoiceWindow::updateSettings(void)
93 93
94 QString ttsName = RbSettings::value(RbSettings::Tts).toString(); 94 QString ttsName = RbSettings::value(RbSettings::Tts).toString();
95 TTSBase* tts = TTSBase::getTTS(this,ttsName); 95 TTSBase* tts = TTSBase::getTTS(this,ttsName);
96 if(!tts)
97 {
98 QMessageBox::critical(this, tr("TTS error"),
99 tr("The selected TTS failed to initialize. You can't use this TTS."));
100 return;
101 }
96 if(tts->configOk()) 102 if(tts->configOk())
97 ui.labelTtsProfile->setText(tr("Engine: <b>%1</b>") 103 ui.labelTtsProfile->setText(tr("Engine: <b>%1</b>")
98 .arg(TTSBase::getTTSName(ttsName))); 104 .arg(TTSBase::getTTSName(ttsName)));
diff --git a/rbutil/rbutilqt/installtalkwindow.cpp b/rbutil/rbutilqt/installtalkwindow.cpp
index 95aad659ed..9a723261b8 100644
--- a/rbutil/rbutilqt/installtalkwindow.cpp
+++ b/rbutil/rbutilqt/installtalkwindow.cpp
@@ -130,6 +130,12 @@ void InstallTalkWindow::updateSettings(void)
130 QString mp = RbSettings::value(RbSettings::Mountpoint).toString(); 130 QString mp = RbSettings::value(RbSettings::Mountpoint).toString();
131 QString ttsName = RbSettings::value(RbSettings::Tts).toString(); 131 QString ttsName = RbSettings::value(RbSettings::Tts).toString();
132 TTSBase* tts = TTSBase::getTTS(this,ttsName); 132 TTSBase* tts = TTSBase::getTTS(this,ttsName);
133 if(!tts)
134 {
135 QMessageBox::critical(this, tr("TTS error"),
136 tr("The selected TTS failed to initialize. You can't use this TTS."));
137 return;
138 }
133 if(tts->configOk()) 139 if(tts->configOk())
134 ui.labelTtsProfile->setText(QString("<b>%1</b>") 140 ui.labelTtsProfile->setText(QString("<b>%1</b>")
135 .arg(TTSBase::getTTSName(ttsName))); 141 .arg(TTSBase::getTTSName(ttsName)));