summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2008-02-06 21:51:35 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2008-02-06 21:51:35 +0000
commitc789f3a8a247f1884daa96dc6d6270dc2fedfb30 (patch)
tree40cc1d06fadfb76b9257fa551fdc294468ca25b2
parentcd31193948b7f169c8444ba1a5318a67df05ea36 (diff)
downloadrockbox-c789f3a8a247f1884daa96dc6d6270dc2fedfb30.tar.gz
rockbox-c789f3a8a247f1884daa96dc6d6270dc2fedfb30.zip
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
-rw-r--r--rbutil/rbutilqt/configure.cpp36
-rw-r--r--rbutil/rbutilqt/createvoicewindow.cpp4
-rw-r--r--rbutil/rbutilqt/encoders.cpp49
-rw-r--r--rbutil/rbutilqt/encoders.h8
-rw-r--r--rbutil/rbutilqt/installtalkwindow.cpp4
-rw-r--r--rbutil/rbutilqt/tts.cpp29
-rw-r--r--rbutil/rbutilqt/tts.h5
7 files changed, 69 insertions, 66 deletions
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index f583433b8a..0e8486c68b 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -134,9 +134,11 @@ void Config::accept()
134 settings->setCacheOffline(ui.cacheOfflineMode->isChecked()); 134 settings->setCacheOffline(ui.cacheOfflineMode->isChecked());
135 135
136 // tts settings 136 // tts settings
137 settings->setCurTTS(ui.comboTts->currentText()); 137 int i = ui.comboTts->currentIndex();
138 settings->setCurTTS(ui.comboTts->itemData(i).toString());
138 //encoder settings 139 //encoder settings
139 settings->setCurEncoder(ui.comboEncoder->currentText()); 140 i = ui.comboEncoder->currentIndex();
141 settings->setCurEncoder(ui.comboEncoder->itemData(i).toString());
140 142
141 // sync settings 143 // sync settings
142 settings->sync(); 144 settings->sync();
@@ -286,20 +288,22 @@ void Config::setDevices()
286 // tts / encoder tab 288 // tts / encoder tab
287 289
288 //encoders 290 //encoders
289 ui.comboEncoder->addItems(getEncoderList()); 291 int index;
290 292 QStringList encoders = getEncoderList();
293 for(int a = 0; a < encoders.size(); a++)
294 ui.comboEncoder->addItem(getEncoderName(encoders.at(a)), encoders.at(a));
291 //update index of combobox 295 //update index of combobox
292 int index = ui.comboEncoder->findText(settings->curEncoder(),Qt::MatchExactly); 296 index = ui.comboEncoder->findData(settings->curEncoder());
293 if(index < 0) index = 0; 297 if(index < 0) index = 0;
294 ui.comboEncoder->setCurrentIndex(index); 298 ui.comboEncoder->setCurrentIndex(index);
295 updateEncState(index); 299 updateEncState(index);
296 300
297 //tts 301 //tts
298 ui.comboTts->addItems(getTTSList()); 302 QStringList ttslist = getTTSList();
299 303 for(int a = 0; a < ttslist.size(); a++)
300 304 ui.comboTts->addItem(getTTSName(ttslist.at(a)), ttslist.at(a));
301 //update index of combobox 305 //update index of combobox
302 index = ui.comboTts->findText(settings->curTTS(),Qt::MatchExactly); 306 index = ui.comboTts->findData(settings->curTTS());
303 if(index < 0) index = 0; 307 if(index < 0) index = 0;
304 ui.comboTts->setCurrentIndex(index); 308 ui.comboTts->setCurrentIndex(index);
305 updateTtsState(index); 309 updateTtsState(index);
@@ -309,7 +313,7 @@ void Config::setDevices()
309 313
310void Config::updateTtsState(int index) 314void Config::updateTtsState(int index)
311{ 315{
312 QString ttsName = ui.comboTts->itemText(index); 316 QString ttsName = ui.comboTts->itemData(index).toString();
313 TTSBase* tts = getTTS(ttsName); 317 TTSBase* tts = getTTS(ttsName);
314 tts->setCfg(settings); 318 tts->setCfg(settings);
315 319
@@ -322,12 +326,12 @@ void Config::updateTtsState(int index)
322 { 326 {
323 ui.configTTSstatus->setText("Configuration INVALID"); 327 ui.configTTSstatus->setText("Configuration INVALID");
324 ui.configTTSstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/dialog-error.png"))); 328 ui.configTTSstatusimg->setPixmap(QPixmap(QString::fromUtf8(":/icons/icons/dialog-error.png")));
325 } 329 }
326} 330}
327 331
328void Config::updateEncState(int index) 332void Config::updateEncState(int index)
329{ 333{
330 QString encoder = ui.comboEncoder->itemText(index); 334 QString encoder = ui.comboEncoder->itemData(index).toString();
331 EncBase* enc = getEncoder(encoder); 335 EncBase* enc = getEncoder(encoder);
332 enc->setCfg(settings); 336 enc->setCfg(settings);
333 337
@@ -583,7 +587,8 @@ void Config::cacheClear()
583 587
584void Config::configTts() 588void Config::configTts()
585{ 589{
586 TTSBase* tts =getTTS(ui.comboTts->currentText()); 590 int index = ui.comboTts->currentIndex();
591 TTSBase* tts = getTTS(ui.comboTts->itemData(index).toString());
587 592
588 tts->setCfg(settings); 593 tts->setCfg(settings);
589 tts->showCfg(); 594 tts->showCfg();
@@ -593,7 +598,8 @@ void Config::configTts()
593 598
594void Config::configEnc() 599void Config::configEnc()
595{ 600{
596 EncBase* enc =getEncoder(ui.comboEncoder->currentText()); 601 int index = ui.comboEncoder->currentIndex();
602 EncBase* enc = getEncoder(ui.comboEncoder->itemData(index).toString());
597 603
598 enc->setCfg(settings); 604 enc->setCfg(settings);
599 enc->showCfg(); 605 enc->showCfg();
diff --git a/rbutil/rbutilqt/createvoicewindow.cpp b/rbutil/rbutilqt/createvoicewindow.cpp
index 6d760f14fe..5375182fd9 100644
--- a/rbutil/rbutilqt/createvoicewindow.cpp
+++ b/rbutil/rbutilqt/createvoicewindow.cpp
@@ -94,7 +94,7 @@ void CreateVoiceWindow::setSettings(RbSettings* sett)
94 TTSBase* tts = getTTS(ttsName); 94 TTSBase* tts = getTTS(ttsName);
95 tts->setCfg(settings); 95 tts->setCfg(settings);
96 if(tts->configOk()) 96 if(tts->configOk())
97 ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(ttsName)); 97 ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(getTTSName(ttsName)));
98 else 98 else
99 ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!")); 99 ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
100 100
@@ -104,7 +104,7 @@ void CreateVoiceWindow::setSettings(RbSettings* sett)
104 if(enc != NULL) { 104 if(enc != NULL) {
105 enc->setCfg(settings); 105 enc->setCfg(settings);
106 if(enc->configOk()) 106 if(enc->configOk())
107 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder)); 107 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(getEncoderName(encoder)));
108 else 108 else
109 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!")); 109 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
110 } 110 }
diff --git a/rbutil/rbutilqt/encoders.cpp b/rbutil/rbutilqt/encoders.cpp
index 1399ddff75..bb5474ce4d 100644
--- a/rbutil/rbutilqt/encoders.cpp
+++ b/rbutil/rbutilqt/encoders.cpp
@@ -26,56 +26,55 @@
26 26
27static QMap<QString,QString> encoderList; 27static QMap<QString,QString> encoderList;
28static QMap<QString,EncBase*> encoderCache; 28static QMap<QString,EncBase*> encoderCache;
29 29
30void initEncoderList() 30
31// initialize list of encoders
32void initEncodernamesList()
31{ 33{
32 encoderList["rbspeex"] = "Rockbox Speex Encoder"; 34 encoderList["rbspeex"] = "Rockbox Speex Encoder";
33 encoderList["lame"] = "Lame Mp3 Encoder"; 35 encoderList["lame"] = "Lame Mp3 Encoder";
34} 36}
35 37
36// function to get a specific encoder 38
37EncBase* getEncoder(QString encname) 39// get nice name for a specific encoder
40QString getEncoderName(QString encoder)
41{
42 if(encoderList.isEmpty())
43 initEncodernamesList();
44 return encoderList.value(encoder);
45}
46
47
48// get a specific encoder object
49EncBase* getEncoder(QString encoder)
38{ 50{
39 // init list if its empty
40 if(encoderList.count() == 0) initEncoderList();
41
42 QString encoder = encoderList.key(encname);
43
44 // check cache 51 // check cache
45 if(encoderCache.contains(encoder)) 52 if(encoderCache.contains(encoder))
46 return encoderCache.value(encoder); 53 return encoderCache.value(encoder);
47 54
48 EncBase* enc; 55 EncBase* enc;
49 if(encoder == "rbspeex") 56 if(encoder == "rbspeex")
50 { 57 {
51 enc = new EncRbSpeex(); 58 enc = new EncRbSpeex();
52 encoderCache[encoder] = enc; 59 encoderCache[encoder] = enc;
53 return enc; 60 return enc;
54 } 61 }
55 else if(encoder == "lame") 62 else if(encoder == "lame")
56 { 63 {
57 enc = new EncExes(encoder); 64 enc = new EncExes(encoder);
58 encoderCache[encoder] = enc; 65 encoderCache[encoder] = enc;
59 return enc; 66 return enc;
60 } 67 }
61 else 68 else
62 return NULL; 69 return NULL;
63} 70}
64 71
65// get the list of encoders, nice names 72
66QStringList getEncoderList() 73QStringList getEncoderList()
67{ 74{
68 // init list if its empty 75 if(encoderList.isEmpty())
69 if(encoderList.count() == 0) initEncoderList(); 76 initEncodernamesList();
70 77 return encoderList.keys();
71 QStringList encList;
72 QMapIterator<QString, QString> i(encoderList);
73 while (i.hasNext()) {
74 i.next();
75 encList << i.value();
76 }
77
78 return encList;
79} 78}
80 79
81 80
diff --git a/rbutil/rbutilqt/encoders.h b/rbutil/rbutilqt/encoders.h
index 7a234a3b6f..64d57b0ff9 100644
--- a/rbutil/rbutilqt/encoders.h
+++ b/rbutil/rbutilqt/encoders.h
@@ -32,11 +32,12 @@ extern "C"
32class EncBase; 32class EncBase;
33 33
34//inits the encoder List 34//inits the encoder List
35void initEncoderList(); 35void initEncodernamesList(void);
36// function to get a specific encoder 36// function to get a specific encoder
37EncBase* getEncoder(QString encname); 37EncBase* getEncoder(QString encname);
38// get the list of encoders, nice names 38// get the list of encoders, nice names
39QStringList getEncoderList(); 39QString getEncoderName(QString encoder);
40QStringList getEncoderList(void);
40 41
41 42
42class EncBase : public QDialog 43class EncBase : public QDialog
@@ -45,7 +46,8 @@ class EncBase : public QDialog
45public: 46public:
46 EncBase(QWidget *parent ); 47 EncBase(QWidget *parent );
47 48
48 virtual bool encode(QString input,QString output){return false;} 49 virtual bool encode(QString input,QString output)
50 {(void)input; (void)output; return false;}
49 virtual bool start(){return false;} 51 virtual bool start(){return false;}
50 virtual bool stop(){return false;} 52 virtual bool stop(){return false;}
51 virtual void showCfg(){} 53 virtual void showCfg(){}
diff --git a/rbutil/rbutilqt/installtalkwindow.cpp b/rbutil/rbutilqt/installtalkwindow.cpp
index 2fa69b7195..4fd1fb15f1 100644
--- a/rbutil/rbutilqt/installtalkwindow.cpp
+++ b/rbutil/rbutilqt/installtalkwindow.cpp
@@ -114,7 +114,7 @@ void InstallTalkWindow::setSettings(RbSettings* sett)
114 TTSBase* tts = getTTS(ttsName); 114 TTSBase* tts = getTTS(ttsName);
115 tts->setCfg(settings); 115 tts->setCfg(settings);
116 if(tts->configOk()) 116 if(tts->configOk())
117 ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(ttsName)); 117 ui.labelTtsProfile->setText(tr("Selected TTS engine : <b>%1</b>").arg(getTTSName(ttsName)));
118 else 118 else
119 ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!")); 119 ui.labelTtsProfile->setText(tr("Selected TTS Engine: <b>%1</b>").arg("Invalid TTS configuration!"));
120 120
@@ -123,7 +123,7 @@ void InstallTalkWindow::setSettings(RbSettings* sett)
123 if(enc != NULL) { 123 if(enc != NULL) {
124 enc->setCfg(settings); 124 enc->setCfg(settings);
125 if(enc->configOk()) 125 if(enc->configOk())
126 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(encoder)); 126 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg(getEncoderName(encoder)));
127 else 127 else
128 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!")); 128 ui.labelEncProfile->setText(tr("Selected Encoder: <b>%1</b>").arg("Invalid encoder configuration!"));
129 } 129 }
diff --git a/rbutil/rbutilqt/tts.cpp b/rbutil/rbutilqt/tts.cpp
index da15497c14..eb78f31006 100644
--- a/rbutil/rbutilqt/tts.cpp
+++ b/rbutil/rbutilqt/tts.cpp
@@ -36,18 +36,13 @@ void initTTSList()
36} 36}
37 37
38// function to get a specific encoder 38// function to get a specific encoder
39TTSBase* getTTS(QString ttsname) 39TTSBase* getTTS(QString ttsName)
40{ 40{
41 // init list if its empty
42 if(ttsList.count() == 0) initTTSList();
43
44 QString ttsName = ttsList.key(ttsname);
45
46 // check cache 41 // check cache
47 if(ttsCache.contains(ttsName)) 42 if(ttsCache.contains(ttsName))
48 return ttsCache.value(ttsName); 43 return ttsCache.value(ttsName);
49 44
50 TTSBase* tts; 45 TTSBase* tts;
51 if(ttsName == "sapi") 46 if(ttsName == "sapi")
52 { 47 {
53 tts = new TTSSapi(); 48 tts = new TTSSapi();
@@ -66,18 +61,18 @@ TTSBase* getTTS(QString ttsname)
66QStringList getTTSList() 61QStringList getTTSList()
67{ 62{
68 // init list if its empty 63 // init list if its empty
69 if(ttsList.count() == 0) initTTSList(); 64 if(ttsList.count() == 0)
65 initTTSList();
70 66
71 QStringList ttsNameList; 67 return ttsList.keys();
72 QMapIterator<QString, QString> i(ttsList);
73 while (i.hasNext()) {
74 i.next();
75 ttsNameList << i.value();
76 }
77
78 return ttsNameList;
79} 68}
80 69
70QString getTTSName(QString tts)
71{
72 if(ttsList.isEmpty())
73 initTTSList();
74 return ttsList.value(tts);
75}
81 76
82/********************************************************************* 77/*********************************************************************
83* TTS Base 78* TTS Base
diff --git a/rbutil/rbutilqt/tts.h b/rbutil/rbutilqt/tts.h
index 9c73bfa5e5..40fd4c727c 100644
--- a/rbutil/rbutilqt/tts.h
+++ b/rbutil/rbutilqt/tts.h
@@ -37,6 +37,7 @@ void initTTSList();
37TTSBase* getTTS(QString ttsname); 37TTSBase* getTTS(QString ttsname);
38// get the list of tts, nice names 38// get the list of tts, nice names
39QStringList getTTSList(); 39QStringList getTTSList();
40QString getTTSName(QString tts);
40 41
41 42
42class TTSBase : public QObject 43class TTSBase : public QObject
@@ -44,8 +45,8 @@ class TTSBase : public QObject
44 Q_OBJECT 45 Q_OBJECT
45public: 46public:
46 TTSBase(); 47 TTSBase();
47 virtual bool voice(QString text,QString wavfile) {return false;} 48 virtual bool voice(QString text,QString wavfile) {(void)text; (void)wavfile; return false;}
48 virtual bool start(QString *errStr){return false;} 49 virtual bool start(QString *errStr){(void)errStr; return false;}
49 virtual bool stop(){return false;} 50 virtual bool stop(){return false;}
50 virtual void showCfg(){} 51 virtual void showCfg(){}
51 virtual bool configOk(){return false;} 52 virtual bool configOk(){return false;}