diff options
-rw-r--r-- | rbutil/rbutilqt/configure.cpp | 36 | ||||
-rw-r--r-- | rbutil/rbutilqt/createvoicewindow.cpp | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/encoders.cpp | 49 | ||||
-rw-r--r-- | rbutil/rbutilqt/encoders.h | 8 | ||||
-rw-r--r-- | rbutil/rbutilqt/installtalkwindow.cpp | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/tts.cpp | 29 | ||||
-rw-r--r-- | rbutil/rbutilqt/tts.h | 5 |
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 | ||
310 | void Config::updateTtsState(int index) | 314 | void 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 | ||
328 | void Config::updateEncState(int index) | 332 | void 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 | ||
584 | void Config::configTts() | 588 | void 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 | ||
594 | void Config::configEnc() | 599 | void 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 | ||
27 | static QMap<QString,QString> encoderList; | 27 | static QMap<QString,QString> encoderList; |
28 | static QMap<QString,EncBase*> encoderCache; | 28 | static QMap<QString,EncBase*> encoderCache; |
29 | 29 | ||
30 | void initEncoderList() | 30 | |
31 | // initialize list of encoders | ||
32 | void 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 | |
37 | EncBase* getEncoder(QString encname) | 39 | // get nice name for a specific encoder |
40 | QString getEncoderName(QString encoder) | ||
41 | { | ||
42 | if(encoderList.isEmpty()) | ||
43 | initEncodernamesList(); | ||
44 | return encoderList.value(encoder); | ||
45 | } | ||
46 | |||
47 | |||
48 | // get a specific encoder object | ||
49 | EncBase* 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 | |
66 | QStringList getEncoderList() | 73 | QStringList 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" | |||
32 | class EncBase; | 32 | class EncBase; |
33 | 33 | ||
34 | //inits the encoder List | 34 | //inits the encoder List |
35 | void initEncoderList(); | 35 | void initEncodernamesList(void); |
36 | // function to get a specific encoder | 36 | // function to get a specific encoder |
37 | EncBase* getEncoder(QString encname); | 37 | EncBase* getEncoder(QString encname); |
38 | // get the list of encoders, nice names | 38 | // get the list of encoders, nice names |
39 | QStringList getEncoderList(); | 39 | QString getEncoderName(QString encoder); |
40 | QStringList getEncoderList(void); | ||
40 | 41 | ||
41 | 42 | ||
42 | class EncBase : public QDialog | 43 | class EncBase : public QDialog |
@@ -45,7 +46,8 @@ class EncBase : public QDialog | |||
45 | public: | 46 | public: |
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 |
39 | TTSBase* getTTS(QString ttsname) | 39 | TTSBase* 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) | |||
66 | QStringList getTTSList() | 61 | QStringList 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 | ||
70 | QString 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(); | |||
37 | TTSBase* getTTS(QString ttsname); | 37 | TTSBase* getTTS(QString ttsname); |
38 | // get the list of tts, nice names | 38 | // get the list of tts, nice names |
39 | QStringList getTTSList(); | 39 | QStringList getTTSList(); |
40 | QString getTTSName(QString tts); | ||
40 | 41 | ||
41 | 42 | ||
42 | class TTSBase : public QObject | 43 | class TTSBase : public QObject |
@@ -44,8 +45,8 @@ class TTSBase : public QObject | |||
44 | Q_OBJECT | 45 | Q_OBJECT |
45 | public: | 46 | public: |
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;} |