forked from len0rd/rockbox
Make TTS name conversion functions static members.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16294 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
341188d68d
commit
8820c0114b
7 changed files with 83 additions and 83 deletions
|
|
@ -299,9 +299,9 @@ void Config::setDevices()
|
||||||
updateEncState(index);
|
updateEncState(index);
|
||||||
|
|
||||||
//tts
|
//tts
|
||||||
QStringList ttslist = getTTSList();
|
QStringList ttslist = TTSBase::getTTSList();
|
||||||
for(int a = 0; a < ttslist.size(); a++)
|
for(int a = 0; a < ttslist.size(); a++)
|
||||||
ui.comboTts->addItem(getTTSName(ttslist.at(a)), ttslist.at(a));
|
ui.comboTts->addItem(TTSBase::getTTSName(ttslist.at(a)), ttslist.at(a));
|
||||||
//update index of combobox
|
//update index of combobox
|
||||||
index = ui.comboTts->findData(settings->curTTS());
|
index = ui.comboTts->findData(settings->curTTS());
|
||||||
if(index < 0) index = 0;
|
if(index < 0) index = 0;
|
||||||
|
|
@ -314,7 +314,7 @@ void Config::setDevices()
|
||||||
void Config::updateTtsState(int index)
|
void Config::updateTtsState(int index)
|
||||||
{
|
{
|
||||||
QString ttsName = ui.comboTts->itemData(index).toString();
|
QString ttsName = ui.comboTts->itemData(index).toString();
|
||||||
TTSBase* tts = getTTS(ttsName);
|
TTSBase* tts = TTSBase::getTTS(ttsName);
|
||||||
tts->setCfg(settings);
|
tts->setCfg(settings);
|
||||||
|
|
||||||
if(tts->configOk())
|
if(tts->configOk())
|
||||||
|
|
@ -588,7 +588,7 @@ void Config::cacheClear()
|
||||||
void Config::configTts()
|
void Config::configTts()
|
||||||
{
|
{
|
||||||
int index = ui.comboTts->currentIndex();
|
int index = ui.comboTts->currentIndex();
|
||||||
TTSBase* tts = getTTS(ui.comboTts->itemData(index).toString());
|
TTSBase* tts = TTSBase::getTTS(ui.comboTts->itemData(index).toString());
|
||||||
|
|
||||||
tts->setCfg(settings);
|
tts->setCfg(settings);
|
||||||
tts->showCfg();
|
tts->showCfg();
|
||||||
|
|
|
||||||
|
|
@ -91,10 +91,10 @@ void CreateVoiceWindow::setSettings(RbSettings* sett)
|
||||||
ui.comboLanguage->setCurrentIndex(sel);
|
ui.comboLanguage->setCurrentIndex(sel);
|
||||||
|
|
||||||
QString ttsName = settings->curTTS();
|
QString ttsName = settings->curTTS();
|
||||||
TTSBase* tts = getTTS(ttsName);
|
TTSBase* tts = TTSBase::getTTS(ttsName);
|
||||||
tts->setCfg(settings);
|
tts->setCfg(settings);
|
||||||
if(tts->configOk())
|
if(tts->configOk())
|
||||||
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(getTTSName(ttsName)));
|
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(TTSBase::getTTSName(ttsName)));
|
||||||
else
|
else
|
||||||
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
|
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -111,10 +111,10 @@ void InstallTalkWindow::setSettings(RbSettings* sett)
|
||||||
settings = sett;
|
settings = sett;
|
||||||
|
|
||||||
QString ttsName = settings->curTTS();
|
QString ttsName = settings->curTTS();
|
||||||
TTSBase* tts = getTTS(ttsName);
|
TTSBase* tts = TTSBase::getTTS(ttsName);
|
||||||
tts->setCfg(settings);
|
tts->setCfg(settings);
|
||||||
if(tts->configOk())
|
if(tts->configOk())
|
||||||
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(getTTSName(ttsName)));
|
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(TTSBase::getTTSName(ttsName)));
|
||||||
else
|
else
|
||||||
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
|
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ bool TalkFileCreator::createTalkFiles(ProgressloggerInterface* logger)
|
||||||
m_logger->addItem(tr("Starting Talk file generation"),LOGINFO);
|
m_logger->addItem(tr("Starting Talk file generation"),LOGINFO);
|
||||||
|
|
||||||
//tts
|
//tts
|
||||||
m_tts = getTTS(settings->curTTS());
|
m_tts = TTSBase::getTTS(settings->curTTS());
|
||||||
m_tts->setCfg(settings);
|
m_tts->setCfg(settings);
|
||||||
|
|
||||||
QString errStr;
|
QString errStr;
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,12 @@
|
||||||
#include "tts.h"
|
#include "tts.h"
|
||||||
|
|
||||||
|
|
||||||
|
// static variables
|
||||||
|
QMap<QString,QString> TTSBase::ttsList;
|
||||||
|
QMap<QString,TTSBase*> TTSBase::ttsCache;
|
||||||
|
|
||||||
static QMap<QString,QString> ttsList;
|
// static functions
|
||||||
static QMap<QString,TTSBase*> ttsCache;
|
void TTSBase::initTTSList()
|
||||||
|
|
||||||
void initTTSList()
|
|
||||||
{
|
{
|
||||||
ttsList["espeak"] = "Espeak TTS Engine";
|
ttsList["espeak"] = "Espeak TTS Engine";
|
||||||
ttsList["flite"] = "Flite TTS Engine";
|
ttsList["flite"] = "Flite TTS Engine";
|
||||||
|
|
@ -36,7 +37,7 @@ void initTTSList()
|
||||||
}
|
}
|
||||||
|
|
||||||
// function to get a specific encoder
|
// function to get a specific encoder
|
||||||
TTSBase* getTTS(QString ttsName)
|
TTSBase* TTSBase::getTTS(QString ttsName)
|
||||||
{
|
{
|
||||||
// check cache
|
// check cache
|
||||||
if(ttsCache.contains(ttsName))
|
if(ttsCache.contains(ttsName))
|
||||||
|
|
@ -58,7 +59,7 @@ TTSBase* getTTS(QString ttsName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the list of encoders, nice names
|
// get the list of encoders, nice names
|
||||||
QStringList getTTSList()
|
QStringList TTSBase::getTTSList()
|
||||||
{
|
{
|
||||||
// init list if its empty
|
// init list if its empty
|
||||||
if(ttsList.count() == 0)
|
if(ttsList.count() == 0)
|
||||||
|
|
@ -67,7 +68,8 @@ QStringList getTTSList()
|
||||||
return ttsList.keys();
|
return ttsList.keys();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString getTTSName(QString tts)
|
// get nice name of a specific tts
|
||||||
|
QString TTSBase::getTTSName(QString tts)
|
||||||
{
|
{
|
||||||
if(ttsList.isEmpty())
|
if(ttsList.isEmpty())
|
||||||
initTTSList();
|
initTTSList();
|
||||||
|
|
|
||||||
|
|
@ -31,43 +31,44 @@
|
||||||
#include "ttsguicli.h"
|
#include "ttsguicli.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class TTSBase;
|
|
||||||
|
|
||||||
//inits the tts List
|
|
||||||
void initTTSList();
|
|
||||||
// function to get a specific tts
|
|
||||||
TTSBase* getTTS(QString ttsname);
|
|
||||||
// get the list of tts, nice names
|
|
||||||
QStringList getTTSList();
|
|
||||||
QString getTTSName(QString tts);
|
|
||||||
|
|
||||||
|
|
||||||
class TTSBase : public QObject
|
class TTSBase : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
TTSBase();
|
TTSBase();
|
||||||
virtual bool voice(QString text,QString wavfile) {(void)text; (void)wavfile; return false;}
|
virtual bool voice(QString text,QString wavfile)
|
||||||
virtual bool start(QString *errStr){(void)errStr; return false;}
|
{ (void)text; (void)wavfile; return false; }
|
||||||
virtual bool stop(){return false;}
|
virtual bool start(QString *errStr) { (void)errStr; return false; }
|
||||||
|
virtual bool stop() { return false; }
|
||||||
virtual void showCfg(){}
|
virtual void showCfg(){}
|
||||||
virtual bool configOk(){return false;}
|
virtual bool configOk() { return false; }
|
||||||
|
|
||||||
void setCfg(RbSettings* sett){settings = sett;}
|
void setCfg(RbSettings* sett) { settings = sett; }
|
||||||
|
|
||||||
public slots:
|
static TTSBase* getTTS(QString ttsname);
|
||||||
|
static QStringList getTTSList();
|
||||||
|
static QString getTTSName(QString tts);
|
||||||
|
|
||||||
|
public slots:
|
||||||
virtual void accept(void){}
|
virtual void accept(void){}
|
||||||
virtual void reject(void){}
|
virtual void reject(void){}
|
||||||
virtual void reset(void){}
|
virtual void reset(void){}
|
||||||
|
|
||||||
protected:
|
private:
|
||||||
|
//inits the tts List
|
||||||
|
static void initTTSList();
|
||||||
|
|
||||||
|
protected:
|
||||||
RbSettings* settings;
|
RbSettings* settings;
|
||||||
|
static QMap<QString,QString> ttsList;
|
||||||
|
static QMap<QString,TTSBase*> ttsCache;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TTSSapi : public TTSBase
|
class TTSSapi : public TTSBase
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
TTSSapi();
|
TTSSapi();
|
||||||
virtual bool voice(QString text,QString wavfile);
|
virtual bool voice(QString text,QString wavfile);
|
||||||
virtual bool start(QString *errStr);
|
virtual bool start(QString *errStr);
|
||||||
|
|
@ -76,8 +77,7 @@ public:
|
||||||
virtual bool configOk();
|
virtual bool configOk();
|
||||||
|
|
||||||
QStringList getVoiceList(QString language);
|
QStringList getVoiceList(QString language);
|
||||||
private:
|
private:
|
||||||
|
|
||||||
QProcess* voicescript;
|
QProcess* voicescript;
|
||||||
|
|
||||||
QString defaultLanguage;
|
QString defaultLanguage;
|
||||||
|
|
@ -91,10 +91,11 @@ private:
|
||||||
bool m_sapi4;
|
bool m_sapi4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class TTSExes : public TTSBase
|
class TTSExes : public TTSBase
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
TTSExes(QString name);
|
TTSExes(QString name);
|
||||||
virtual bool voice(QString text,QString wavfile);
|
virtual bool voice(QString text,QString wavfile);
|
||||||
virtual bool start(QString *errStr);
|
virtual bool start(QString *errStr);
|
||||||
|
|
@ -102,10 +103,7 @@ public:
|
||||||
virtual void showCfg();
|
virtual void showCfg();
|
||||||
virtual bool configOk();
|
virtual bool configOk();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
QString m_name;
|
QString m_name;
|
||||||
QString m_TTSexec;
|
QString m_TTSexec;
|
||||||
QString m_TTSOpts;
|
QString m_TTSOpts;
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ void VoiceFileCreator::downloadDone(bool error)
|
||||||
}
|
}
|
||||||
|
|
||||||
//tts
|
//tts
|
||||||
m_tts = getTTS(settings->curTTS());
|
m_tts = TTSBase::getTTS(settings->curTTS());
|
||||||
m_tts->setCfg(settings);
|
m_tts->setCfg(settings);
|
||||||
|
|
||||||
QString errStr;
|
QString errStr;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue