1
0
Fork 0
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:
Dominik Riebeling 2008-02-12 21:45:50 +00:00
parent 341188d68d
commit 8820c0114b
7 changed files with 83 additions and 83 deletions

View file

@ -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();

View file

@ -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!"));

View file

@ -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!"));

View file

@ -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;

View file

@ -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";
@ -32,11 +33,11 @@ void initTTSList()
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
ttsList["sapi"] = "Sapi TTS Engine"; ttsList["sapi"] = "Sapi TTS Engine";
#endif #endif
} }
// 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))
@ -52,13 +53,13 @@ TTSBase* getTTS(QString ttsName)
else else
{ {
tts = new TTSExes(ttsName); tts = new TTSExes(ttsName);
ttsCache[ttsName] = tts; ttsCache[ttsName] = tts;
return tts; return tts;
} }
} }
// 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();

View file

@ -31,86 +31,84 @@
#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 void showCfg(){} virtual bool stop() { return false; }
virtual bool configOk(){return false;} virtual void showCfg(){}
virtual bool configOk() { return false; }
void setCfg(RbSettings* sett){settings = sett;}
public slots:
virtual void accept(void){}
virtual void reject(void){}
virtual void reset(void){}
protected: void setCfg(RbSettings* sett) { settings = sett; }
RbSettings* settings;
static TTSBase* getTTS(QString ttsname);
static QStringList getTTSList();
static QString getTTSName(QString tts);
public slots:
virtual void accept(void){}
virtual void reject(void){}
virtual void reset(void){}
private:
//inits the tts List
static void initTTSList();
protected:
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);
virtual bool stop(); virtual bool stop();
virtual void showCfg(); virtual void showCfg();
virtual bool configOk(); virtual bool configOk();
QStringList getVoiceList(QString language);
private:
QProcess* voicescript; QStringList getVoiceList(QString language);
private:
QString defaultLanguage; QProcess* voicescript;
QString m_TTSexec; QString defaultLanguage;
QString m_TTSOpts;
QString m_TTSTemplate; QString m_TTSexec;
QString m_TTSLanguage; QString m_TTSOpts;
QString m_TTSVoice; QString m_TTSTemplate;
QString m_TTSSpeed; QString m_TTSLanguage;
bool m_sapi4; QString m_TTSVoice;
QString m_TTSSpeed;
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);
virtual bool stop() {return true;} virtual bool stop() {return true;}
virtual void showCfg(); virtual void showCfg();
virtual bool configOk(); virtual bool configOk();
private:
private: QString m_name;
QString m_TTSexec;
QString m_name; QString m_TTSOpts;
QString m_TTSexec; QString m_TTSTemplate;
QString m_TTSOpts; QMap<QString,QString> m_TemplateMap;
QString m_TTSTemplate;
QMap<QString,QString> m_TemplateMap;
}; };
#endif #endif

View file

@ -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;