forked from len0rd/rockbox
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
This commit is contained in:
parent
a2dd1625bc
commit
7f76bb48b3
4 changed files with 41 additions and 5 deletions
|
|
@ -35,12 +35,19 @@ TalkGenerator::Status TalkGenerator::process(QList<TalkEntry>* list,int wavtrimt
|
|||
bool warnings = false;
|
||||
|
||||
//tts
|
||||
emit logItem(tr("Starting TTS Engine"),LOGINFO);
|
||||
m_tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString());
|
||||
emit logItem(tr("Starting TTS Engine"), LOGINFO);
|
||||
m_tts = TTSBase::getTTS(this, RbSettings::value(RbSettings::Tts).toString());
|
||||
if(!m_tts)
|
||||
{
|
||||
qDebug() << "[TalkGenerator] getting the TTS object failed!";
|
||||
emit logItem(tr("Init of TTS engine failed"), LOGERROR);
|
||||
emit done(true);
|
||||
return eERROR;
|
||||
}
|
||||
if(!m_tts->start(&errStr))
|
||||
{
|
||||
emit logItem(errStr.trimmed(),LOGERROR);
|
||||
emit logItem(tr("Init of TTS engine failed"),LOGERROR);
|
||||
emit logItem(tr("Init of TTS engine failed"), LOGERROR);
|
||||
emit done(true);
|
||||
return eERROR;
|
||||
}
|
||||
|
|
@ -278,6 +285,11 @@ void TalkGenerator::setLang(QString name)
|
|||
|
||||
QString engine = RbSettings::value(RbSettings::Tts).toString();
|
||||
TTSBase* tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString());
|
||||
if(!tts)
|
||||
{
|
||||
qDebug() << "[TalkGenerator] getting the TTS object failed!";
|
||||
return;
|
||||
}
|
||||
QString vendor = tts->voiceVendor();
|
||||
delete tts;
|
||||
|
||||
|
|
|
|||
|
|
@ -418,6 +418,13 @@ void Config::updateTtsState(int index)
|
|||
QString ttsName = ui.comboTts->itemData(index).toString();
|
||||
TTSBase* tts = TTSBase::getTTS(this,ttsName);
|
||||
|
||||
if(!tts)
|
||||
{
|
||||
QMessageBox::critical(this, tr("TTS error"),
|
||||
tr("The selected TTS failed to initialize. You can't use this TTS."));
|
||||
return;
|
||||
}
|
||||
|
||||
if(tts->configOk())
|
||||
{
|
||||
ui.configTTSstatus->setText(tr("Configuration OK"));
|
||||
|
|
@ -837,9 +844,14 @@ void Config::testTts()
|
|||
QString errstr;
|
||||
int index = ui.comboTts->currentIndex();
|
||||
TTSBase* tts;
|
||||
|
||||
ui.testTTS->setEnabled(false);
|
||||
tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString());
|
||||
if(!tts)
|
||||
{
|
||||
QMessageBox::critical(this, tr("TTS error"),
|
||||
tr("The selected TTS failed to initialize. You can't use this TTS."));
|
||||
return;
|
||||
}
|
||||
ui.testTTS->setEnabled(false);
|
||||
if(!tts->configOk())
|
||||
{
|
||||
QMessageBox::warning(this,tr("TTS configuration invalid"),
|
||||
|
|
|
|||
|
|
@ -93,6 +93,12 @@ void CreateVoiceWindow::updateSettings(void)
|
|||
|
||||
QString ttsName = RbSettings::value(RbSettings::Tts).toString();
|
||||
TTSBase* tts = TTSBase::getTTS(this,ttsName);
|
||||
if(!tts)
|
||||
{
|
||||
QMessageBox::critical(this, tr("TTS error"),
|
||||
tr("The selected TTS failed to initialize. You can't use this TTS."));
|
||||
return;
|
||||
}
|
||||
if(tts->configOk())
|
||||
ui.labelTtsProfile->setText(tr("Engine: <b>%1</b>")
|
||||
.arg(TTSBase::getTTSName(ttsName)));
|
||||
|
|
|
|||
|
|
@ -130,6 +130,12 @@ void InstallTalkWindow::updateSettings(void)
|
|||
QString mp = RbSettings::value(RbSettings::Mountpoint).toString();
|
||||
QString ttsName = RbSettings::value(RbSettings::Tts).toString();
|
||||
TTSBase* tts = TTSBase::getTTS(this,ttsName);
|
||||
if(!tts)
|
||||
{
|
||||
QMessageBox::critical(this, tr("TTS error"),
|
||||
tr("The selected TTS failed to initialize. You can't use this TTS."));
|
||||
return;
|
||||
}
|
||||
if(tts->configOk())
|
||||
ui.labelTtsProfile->setText(QString("<b>%1</b>")
|
||||
.arg(TTSBase::getTTSName(ttsName)));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue