mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-15 08:02:34 -05:00
Save the internal name for tts / encoder in the configuration file, not the displayed nice name. Additionally, kill a few warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16233 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
cd31193948
commit
c789f3a8a2
7 changed files with 69 additions and 66 deletions
|
|
@ -134,9 +134,11 @@ void Config::accept()
|
|||
settings->setCacheOffline(ui.cacheOfflineMode->isChecked());
|
||||
|
||||
// tts settings
|
||||
settings->setCurTTS(ui.comboTts->currentText());
|
||||
int i = ui.comboTts->currentIndex();
|
||||
settings->setCurTTS(ui.comboTts->itemData(i).toString());
|
||||
//encoder settings
|
||||
settings->setCurEncoder(ui.comboEncoder->currentText());
|
||||
i = ui.comboEncoder->currentIndex();
|
||||
settings->setCurEncoder(ui.comboEncoder->itemData(i).toString());
|
||||
|
||||
// sync settings
|
||||
settings->sync();
|
||||
|
|
@ -286,20 +288,22 @@ void Config::setDevices()
|
|||
// tts / encoder tab
|
||||
|
||||
//encoders
|
||||
ui.comboEncoder->addItems(getEncoderList());
|
||||
|
||||
int index;
|
||||
QStringList encoders = getEncoderList();
|
||||
for(int a = 0; a < encoders.size(); a++)
|
||||
ui.comboEncoder->addItem(getEncoderName(encoders.at(a)), encoders.at(a));
|
||||
//update index of combobox
|
||||
int index = ui.comboEncoder->findText(settings->curEncoder(),Qt::MatchExactly);
|
||||
index = ui.comboEncoder->findData(settings->curEncoder());
|
||||
if(index < 0) index = 0;
|
||||
ui.comboEncoder->setCurrentIndex(index);
|
||||
updateEncState(index);
|
||||
|
||||
|
||||
//tts
|
||||
ui.comboTts->addItems(getTTSList());
|
||||
|
||||
|
||||
QStringList ttslist = getTTSList();
|
||||
for(int a = 0; a < ttslist.size(); a++)
|
||||
ui.comboTts->addItem(getTTSName(ttslist.at(a)), ttslist.at(a));
|
||||
//update index of combobox
|
||||
index = ui.comboTts->findText(settings->curTTS(),Qt::MatchExactly);
|
||||
index = ui.comboTts->findData(settings->curTTS());
|
||||
if(index < 0) index = 0;
|
||||
ui.comboTts->setCurrentIndex(index);
|
||||
updateTtsState(index);
|
||||
|
|
@ -309,7 +313,7 @@ void Config::setDevices()
|
|||
|
||||
void Config::updateTtsState(int index)
|
||||
{
|
||||
QString ttsName = ui.comboTts->itemText(index);
|
||||
QString ttsName = ui.comboTts->itemData(index).toString();
|
||||
TTSBase* tts = getTTS(ttsName);
|
||||
tts->setCfg(settings);
|
||||
|
||||
|
|
@ -322,12 +326,12 @@ void Config::updateTtsState(int index)
|
|||
{
|
||||
ui.configTTSstatus->setText("Configuration INVALID");
|
||||
ui.configTTSstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/dialog-error.png")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Config::updateEncState(int index)
|
||||
{
|
||||
QString encoder = ui.comboEncoder->itemText(index);
|
||||
QString encoder = ui.comboEncoder->itemData(index).toString();
|
||||
EncBase* enc = getEncoder(encoder);
|
||||
enc->setCfg(settings);
|
||||
|
||||
|
|
@ -583,7 +587,8 @@ void Config::cacheClear()
|
|||
|
||||
void Config::configTts()
|
||||
{
|
||||
TTSBase* tts =getTTS(ui.comboTts->currentText());
|
||||
int index = ui.comboTts->currentIndex();
|
||||
TTSBase* tts = getTTS(ui.comboTts->itemData(index).toString());
|
||||
|
||||
tts->setCfg(settings);
|
||||
tts->showCfg();
|
||||
|
|
@ -593,7 +598,8 @@ void Config::configTts()
|
|||
|
||||
void Config::configEnc()
|
||||
{
|
||||
EncBase* enc =getEncoder(ui.comboEncoder->currentText());
|
||||
int index = ui.comboEncoder->currentIndex();
|
||||
EncBase* enc = getEncoder(ui.comboEncoder->itemData(index).toString());
|
||||
|
||||
enc->setCfg(settings);
|
||||
enc->showCfg();
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ void CreateVoiceWindow::setSettings(RbSettings* sett)
|
|||
TTSBase* tts = getTTS(ttsName);
|
||||
tts->setCfg(settings);
|
||||
if(tts->configOk())
|
||||
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(ttsName));
|
||||
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(getTTSName(ttsName)));
|
||||
else
|
||||
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ void CreateVoiceWindow::setSettings(RbSettings* sett)
|
|||
if(enc != NULL) {
|
||||
enc->setCfg(settings);
|
||||
if(enc->configOk())
|
||||
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder));
|
||||
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(getEncoderName(encoder)));
|
||||
else
|
||||
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,56 +26,55 @@
|
|||
|
||||
static QMap<QString,QString> encoderList;
|
||||
static QMap<QString,EncBase*> encoderCache;
|
||||
|
||||
void initEncoderList()
|
||||
|
||||
|
||||
// initialize list of encoders
|
||||
void initEncodernamesList()
|
||||
{
|
||||
encoderList["rbspeex"] = "Rockbox Speex Encoder";
|
||||
encoderList["lame"] = "Lame Mp3 Encoder";
|
||||
}
|
||||
|
||||
// function to get a specific encoder
|
||||
EncBase* getEncoder(QString encname)
|
||||
|
||||
// get nice name for a specific encoder
|
||||
QString getEncoderName(QString encoder)
|
||||
{
|
||||
if(encoderList.isEmpty())
|
||||
initEncodernamesList();
|
||||
return encoderList.value(encoder);
|
||||
}
|
||||
|
||||
|
||||
// get a specific encoder object
|
||||
EncBase* getEncoder(QString encoder)
|
||||
{
|
||||
// init list if its empty
|
||||
if(encoderList.count() == 0) initEncoderList();
|
||||
|
||||
QString encoder = encoderList.key(encname);
|
||||
|
||||
// check cache
|
||||
if(encoderCache.contains(encoder))
|
||||
return encoderCache.value(encoder);
|
||||
|
||||
EncBase* enc;
|
||||
|
||||
EncBase* enc;
|
||||
if(encoder == "rbspeex")
|
||||
{
|
||||
enc = new EncRbSpeex();
|
||||
encoderCache[encoder] = enc;
|
||||
encoderCache[encoder] = enc;
|
||||
return enc;
|
||||
}
|
||||
else if(encoder == "lame")
|
||||
{
|
||||
enc = new EncExes(encoder);
|
||||
encoderCache[encoder] = enc;
|
||||
encoderCache[encoder] = enc;
|
||||
return enc;
|
||||
}
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// get the list of encoders, nice names
|
||||
|
||||
QStringList getEncoderList()
|
||||
{
|
||||
// init list if its empty
|
||||
if(encoderList.count() == 0) initEncoderList();
|
||||
|
||||
QStringList encList;
|
||||
QMapIterator<QString, QString> i(encoderList);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
encList << i.value();
|
||||
}
|
||||
|
||||
return encList;
|
||||
if(encoderList.isEmpty())
|
||||
initEncodernamesList();
|
||||
return encoderList.keys();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -32,11 +32,12 @@ extern "C"
|
|||
class EncBase;
|
||||
|
||||
//inits the encoder List
|
||||
void initEncoderList();
|
||||
void initEncodernamesList(void);
|
||||
// function to get a specific encoder
|
||||
EncBase* getEncoder(QString encname);
|
||||
// get the list of encoders, nice names
|
||||
QStringList getEncoderList();
|
||||
QString getEncoderName(QString encoder);
|
||||
QStringList getEncoderList(void);
|
||||
|
||||
|
||||
class EncBase : public QDialog
|
||||
|
|
@ -45,7 +46,8 @@ class EncBase : public QDialog
|
|||
public:
|
||||
EncBase(QWidget *parent );
|
||||
|
||||
virtual bool encode(QString input,QString output){return false;}
|
||||
virtual bool encode(QString input,QString output)
|
||||
{(void)input; (void)output; return false;}
|
||||
virtual bool start(){return false;}
|
||||
virtual bool stop(){return false;}
|
||||
virtual void showCfg(){}
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ void InstallTalkWindow::setSettings(RbSettings* sett)
|
|||
TTSBase* tts = getTTS(ttsName);
|
||||
tts->setCfg(settings);
|
||||
if(tts->configOk())
|
||||
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(ttsName));
|
||||
ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(getTTSName(ttsName)));
|
||||
else
|
||||
ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ void InstallTalkWindow::setSettings(RbSettings* sett)
|
|||
if(enc != NULL) {
|
||||
enc->setCfg(settings);
|
||||
if(enc->configOk())
|
||||
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder));
|
||||
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(getEncoderName(encoder)));
|
||||
else
|
||||
ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,18 +36,13 @@ void initTTSList()
|
|||
}
|
||||
|
||||
// function to get a specific encoder
|
||||
TTSBase* getTTS(QString ttsname)
|
||||
TTSBase* getTTS(QString ttsName)
|
||||
{
|
||||
// init list if its empty
|
||||
if(ttsList.count() == 0) initTTSList();
|
||||
|
||||
QString ttsName = ttsList.key(ttsname);
|
||||
|
||||
// check cache
|
||||
if(ttsCache.contains(ttsName))
|
||||
return ttsCache.value(ttsName);
|
||||
|
||||
TTSBase* tts;
|
||||
|
||||
TTSBase* tts;
|
||||
if(ttsName == "sapi")
|
||||
{
|
||||
tts = new TTSSapi();
|
||||
|
|
@ -66,18 +61,18 @@ TTSBase* getTTS(QString ttsname)
|
|||
QStringList getTTSList()
|
||||
{
|
||||
// init list if its empty
|
||||
if(ttsList.count() == 0) initTTSList();
|
||||
if(ttsList.count() == 0)
|
||||
initTTSList();
|
||||
|
||||
QStringList ttsNameList;
|
||||
QMapIterator<QString, QString> i(ttsList);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
ttsNameList << i.value();
|
||||
}
|
||||
|
||||
return ttsNameList;
|
||||
return ttsList.keys();
|
||||
}
|
||||
|
||||
QString getTTSName(QString tts)
|
||||
{
|
||||
if(ttsList.isEmpty())
|
||||
initTTSList();
|
||||
return ttsList.value(tts);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* TTS Base
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ void initTTSList();
|
|||
TTSBase* getTTS(QString ttsname);
|
||||
// get the list of tts, nice names
|
||||
QStringList getTTSList();
|
||||
QString getTTSName(QString tts);
|
||||
|
||||
|
||||
class TTSBase : public QObject
|
||||
|
|
@ -44,8 +45,8 @@ class TTSBase : public QObject
|
|||
Q_OBJECT
|
||||
public:
|
||||
TTSBase();
|
||||
virtual bool voice(QString text,QString wavfile) {return false;}
|
||||
virtual bool start(QString *errStr){return false;}
|
||||
virtual bool voice(QString text,QString wavfile) {(void)text; (void)wavfile; return false;}
|
||||
virtual bool start(QString *errStr){(void)errStr; return false;}
|
||||
virtual bool stop(){return false;}
|
||||
virtual void showCfg(){}
|
||||
virtual bool configOk(){return false;}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue