diff options
Diffstat (limited to 'rbutil/rbutilqt/base')
-rw-r--r-- | rbutil/rbutilqt/base/autodetection.cpp | 7 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/autodetection.h | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/detect.cpp | 9 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/detect.h | 3 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/encoders.cpp | 49 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/encoders.h | 7 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.cpp | 86 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/rbsettings.h | 79 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/tts.cpp | 81 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/tts.h | 7 |
10 files changed, 177 insertions, 155 deletions
diff --git a/rbutil/rbutilqt/base/autodetection.cpp b/rbutil/rbutilqt/base/autodetection.cpp index 276c270499..30651077f2 100644 --- a/rbutil/rbutilqt/base/autodetection.cpp +++ b/rbutil/rbutilqt/base/autodetection.cpp | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #include <QtCore> | 20 | #include <QtCore> |
21 | #include "autodetection.h" | 21 | #include "autodetection.h" |
22 | #include "rbsettings.h" | ||
22 | 23 | ||
23 | #include "../ipodpatcher/ipodpatcher.h" | 24 | #include "../ipodpatcher/ipodpatcher.h" |
24 | #include "../sansapatcher/sansapatcher.h" | 25 | #include "../sansapatcher/sansapatcher.h" |
@@ -396,9 +397,9 @@ bool Autodetection::detectUsb() | |||
396 | // usbids holds the mapping in the form | 397 | // usbids holds the mapping in the form |
397 | // ((VID<<16)|(PID)), targetname | 398 | // ((VID<<16)|(PID)), targetname |
398 | // the ini file needs to hold the IDs as hex values. | 399 | // the ini file needs to hold the IDs as hex values. |
399 | QMap<int, QString> usbids = settings->usbIdMap(RbSettings::MapDevice); | 400 | QMap<int, QString> usbids = RbSettings::usbIdMap(RbSettings::MapDevice); |
400 | QMap<int, QString> usberror = settings->usbIdMap(RbSettings::MapError); | 401 | QMap<int, QString> usberror = RbSettings::usbIdMap(RbSettings::MapError); |
401 | QMap<int, QString> usbincompat = settings->usbIdMap(RbSettings::MapIncompatible); | 402 | QMap<int, QString> usbincompat = RbSettings::usbIdMap(RbSettings::MapIncompatible); |
402 | 403 | ||
403 | // usb pid detection | 404 | // usb pid detection |
404 | QList<uint32_t> attached; | 405 | QList<uint32_t> attached; |
diff --git a/rbutil/rbutilqt/base/autodetection.h b/rbutil/rbutilqt/base/autodetection.h index cffab5bd4f..c6b33ac313 100644 --- a/rbutil/rbutilqt/base/autodetection.h +++ b/rbutil/rbutilqt/base/autodetection.h | |||
@@ -24,7 +24,6 @@ | |||
24 | #define AUTODETECTION_H_ | 24 | #define AUTODETECTION_H_ |
25 | 25 | ||
26 | #include <QtCore> | 26 | #include <QtCore> |
27 | #include "rbsettings.h" | ||
28 | 27 | ||
29 | class Autodetection :public QObject | 28 | class Autodetection :public QObject |
30 | { | 29 | { |
@@ -33,8 +32,6 @@ class Autodetection :public QObject | |||
33 | public: | 32 | public: |
34 | Autodetection(QObject* parent=0); | 33 | Autodetection(QObject* parent=0); |
35 | 34 | ||
36 | void setSettings(RbSettings* sett) {settings = sett;} | ||
37 | |||
38 | bool detect(); | 35 | bool detect(); |
39 | 36 | ||
40 | QString getDevice() {return m_device;} | 37 | QString getDevice() {return m_device;} |
@@ -54,7 +51,6 @@ private: | |||
54 | QString m_errdev; | 51 | QString m_errdev; |
55 | QString m_incompat; | 52 | QString m_incompat; |
56 | QList<int> m_usbconid; | 53 | QList<int> m_usbconid; |
57 | RbSettings* settings; | ||
58 | }; | 54 | }; |
59 | 55 | ||
60 | 56 | ||
diff --git a/rbutil/rbutilqt/base/detect.cpp b/rbutil/rbutilqt/base/detect.cpp index df1cf50647..88ffb36723 100644 --- a/rbutil/rbutilqt/base/detect.cpp +++ b/rbutil/rbutilqt/base/detect.cpp | |||
@@ -59,6 +59,7 @@ | |||
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | #include "utils.h" | 61 | #include "utils.h" |
62 | #include "rbsettings.h" | ||
62 | 63 | ||
63 | /** @brief detect permission of user (only Windows at moment). | 64 | /** @brief detect permission of user (only Windows at moment). |
64 | * @return enum userlevel. | 65 | * @return enum userlevel. |
@@ -384,7 +385,7 @@ QString Detect::installedTarget(QString mountpoint) | |||
384 | * @param targetId the targetID to check for. if it is -1 no check is done. | 385 | * @param targetId the targetID to check for. if it is -1 no check is done. |
385 | * @return string with error messages if problems occurred, empty strings if none. | 386 | * @return string with error messages if problems occurred, empty strings if none. |
386 | */ | 387 | */ |
387 | QString Detect::check(RbSettings* settings, bool permission) | 388 | QString Detect::check(bool permission) |
388 | { | 389 | { |
389 | QString text = ""; | 390 | QString text = ""; |
390 | 391 | ||
@@ -401,12 +402,12 @@ QString Detect::check(RbSettings* settings, bool permission) | |||
401 | } | 402 | } |
402 | 403 | ||
403 | // Check TargetId | 404 | // Check TargetId |
404 | QString installed = installedTarget(settings->value(RbSettings::Mountpoint).toString()); | 405 | QString installed = installedTarget(RbSettings::value(RbSettings::Mountpoint).toString()); |
405 | if(!installed.isEmpty() && installed != settings->value(RbSettings::CurConfigureModel).toString()) | 406 | if(!installed.isEmpty() && installed != RbSettings::value(RbSettings::CurConfigureModel).toString()) |
406 | { | 407 | { |
407 | text += QObject::tr("<li>Target mismatch detected.\n" | 408 | text += QObject::tr("<li>Target mismatch detected.\n" |
408 | "Installed target: %1, selected target: %2.</li>") | 409 | "Installed target: %1, selected target: %2.</li>") |
409 | .arg(installed, settings->value(RbSettings::CurPlatformName).toString()); | 410 | .arg(installed, RbSettings::value(RbSettings::CurPlatformName).toString()); |
410 | // FIXME: replace installed by human-friendly name | 411 | // FIXME: replace installed by human-friendly name |
411 | } | 412 | } |
412 | 413 | ||
diff --git a/rbutil/rbutilqt/base/detect.h b/rbutil/rbutilqt/base/detect.h index 3077699a93..96c0696467 100644 --- a/rbutil/rbutilqt/base/detect.h +++ b/rbutil/rbutilqt/base/detect.h | |||
@@ -27,7 +27,6 @@ | |||
27 | 27 | ||
28 | #include <QString> | 28 | #include <QString> |
29 | #include <QUrl> | 29 | #include <QUrl> |
30 | #include "rbsettings.h" | ||
31 | 30 | ||
32 | class Detect | 31 | class Detect |
33 | { | 32 | { |
@@ -49,7 +48,7 @@ public: | |||
49 | static QString installedVersion(QString mountpoint); | 48 | static QString installedVersion(QString mountpoint); |
50 | static QString installedTarget(QString mountpoint); | 49 | static QString installedTarget(QString mountpoint); |
51 | 50 | ||
52 | static QString check(RbSettings* settings, bool permission); | 51 | static QString check(bool permission); |
53 | 52 | ||
54 | }; | 53 | }; |
55 | #endif | 54 | #endif |
diff --git a/rbutil/rbutilqt/base/encoders.cpp b/rbutil/rbutilqt/base/encoders.cpp index 6ff1185c82..59add74a0d 100644 --- a/rbutil/rbutilqt/base/encoders.cpp +++ b/rbutil/rbutilqt/base/encoders.cpp | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #include "encoders.h" | 20 | #include "encoders.h" |
21 | #include "utils.h" | 21 | #include "utils.h" |
22 | #include "rbsettings.h" | ||
22 | 23 | ||
23 | /********************************************************************* | 24 | /********************************************************************* |
24 | * Encoder Base | 25 | * Encoder Base |
@@ -87,24 +88,24 @@ EncExes::EncExes(QString name,QObject *parent) : EncBase(parent) | |||
87 | 88 | ||
88 | void EncExes::generateSettings() | 89 | void EncExes::generateSettings() |
89 | { | 90 | { |
90 | QString exepath =settings->subValue(m_name,RbSettings::EncoderPath).toString(); | 91 | QString exepath =RbSettings::subValue(m_name,RbSettings::EncoderPath).toString(); |
91 | if(exepath == "") exepath = findExecutable(m_name); | 92 | if(exepath == "") exepath = findExecutable(m_name); |
92 | 93 | ||
93 | insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Encoder:",exepath,EncTtsSetting::eBROWSEBTN)); | 94 | insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Encoder:",exepath,EncTtsSetting::eBROWSEBTN)); |
94 | insertSetting(eEXEOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Encoder options:",settings->subValue(m_name,RbSettings::EncoderOptions))); | 95 | insertSetting(eEXEOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Encoder options:",RbSettings::subValue(m_name,RbSettings::EncoderOptions))); |
95 | } | 96 | } |
96 | 97 | ||
97 | void EncExes::saveSettings() | 98 | void EncExes::saveSettings() |
98 | { | 99 | { |
99 | settings->setSubValue(m_name,RbSettings::EncoderPath,getSetting(eEXEPATH)->current().toString()); | 100 | RbSettings::setSubValue(m_name,RbSettings::EncoderPath,getSetting(eEXEPATH)->current().toString()); |
100 | settings->setSubValue(m_name,RbSettings::EncoderOptions,getSetting(eEXEOPTIONS)->current().toString()); | 101 | RbSettings::setSubValue(m_name,RbSettings::EncoderOptions,getSetting(eEXEOPTIONS)->current().toString()); |
101 | settings->sync(); | 102 | RbSettings::sync(); |
102 | } | 103 | } |
103 | 104 | ||
104 | bool EncExes::start() | 105 | bool EncExes::start() |
105 | { | 106 | { |
106 | m_EncExec = settings->subValue(m_name, RbSettings::EncoderPath).toString(); | 107 | m_EncExec = RbSettings::subValue(m_name, RbSettings::EncoderPath).toString(); |
107 | m_EncOpts = settings->subValue(m_name, RbSettings::EncoderOptions).toString(); | 108 | m_EncOpts = RbSettings::subValue(m_name, RbSettings::EncoderOptions).toString(); |
108 | 109 | ||
109 | m_EncTemplate = m_TemplateMap.value(m_name); | 110 | m_EncTemplate = m_TemplateMap.value(m_name); |
110 | 111 | ||
@@ -136,7 +137,7 @@ bool EncExes::encode(QString input,QString output) | |||
136 | 137 | ||
137 | bool EncExes::configOk() | 138 | bool EncExes::configOk() |
138 | { | 139 | { |
139 | QString path = settings->subValue(m_name, RbSettings::EncoderPath).toString(); | 140 | QString path = RbSettings::subValue(m_name, RbSettings::EncoderPath).toString(); |
140 | 141 | ||
141 | if (QFileInfo(path).exists()) | 142 | if (QFileInfo(path).exists()) |
142 | return true; | 143 | return true; |
@@ -154,31 +155,31 @@ EncRbSpeex::EncRbSpeex(QObject *parent) : EncBase(parent) | |||
154 | 155 | ||
155 | void EncRbSpeex::generateSettings() | 156 | void EncRbSpeex::generateSettings() |
156 | { | 157 | { |
157 | insertSetting(eVOLUME,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Volume:",settings->subValue("rbspeex",RbSettings::EncoderVolume),1.0,10.0)); | 158 | insertSetting(eVOLUME,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Volume:",RbSettings::subValue("rbspeex",RbSettings::EncoderVolume),1.0,10.0)); |
158 | insertSetting(eQUALITY,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Quality:",settings->subValue("rbspeex",RbSettings::EncoderQuality),0,10.0)); | 159 | insertSetting(eQUALITY,new EncTtsSetting(this,EncTtsSetting::eDOUBLE,"Quality:",RbSettings::subValue("rbspeex",RbSettings::EncoderQuality),0,10.0)); |
159 | insertSetting(eCOMPLEXITY,new EncTtsSetting(this,EncTtsSetting::eINT,"Complexity:",settings->subValue("rbspeex",RbSettings::EncoderComplexity),0,10)); | 160 | insertSetting(eCOMPLEXITY,new EncTtsSetting(this,EncTtsSetting::eINT,"Complexity:",RbSettings::subValue("rbspeex",RbSettings::EncoderComplexity),0,10)); |
160 | insertSetting(eNARROWBAND,new EncTtsSetting(this,EncTtsSetting::eBOOL,"Use Narrowband:",settings->subValue("rbspeex",RbSettings::EncoderNarrowBand))); | 161 | insertSetting(eNARROWBAND,new EncTtsSetting(this,EncTtsSetting::eBOOL,"Use Narrowband:",RbSettings::subValue("rbspeex",RbSettings::EncoderNarrowBand))); |
161 | } | 162 | } |
162 | 163 | ||
163 | void EncRbSpeex::saveSettings() | 164 | void EncRbSpeex::saveSettings() |
164 | { | 165 | { |
165 | //save settings in user config | 166 | //save settings in user config |
166 | settings->setSubValue("rbspeex",RbSettings::EncoderVolume,getSetting(eVOLUME)->current().toDouble()); | 167 | RbSettings::setSubValue("rbspeex",RbSettings::EncoderVolume,getSetting(eVOLUME)->current().toDouble()); |
167 | settings->setSubValue("rbspeex",RbSettings::EncoderQuality,getSetting(eQUALITY)->current().toDouble()); | 168 | RbSettings::setSubValue("rbspeex",RbSettings::EncoderQuality,getSetting(eQUALITY)->current().toDouble()); |
168 | settings->setSubValue("rbspeex",RbSettings::EncoderComplexity,getSetting(eCOMPLEXITY)->current().toInt()); | 169 | RbSettings::setSubValue("rbspeex",RbSettings::EncoderComplexity,getSetting(eCOMPLEXITY)->current().toInt()); |
169 | settings->setSubValue("rbspeex",RbSettings::EncoderNarrowBand,getSetting(eNARROWBAND)->current().toBool()); | 170 | RbSettings::setSubValue("rbspeex",RbSettings::EncoderNarrowBand,getSetting(eNARROWBAND)->current().toBool()); |
170 | 171 | ||
171 | settings->sync(); | 172 | RbSettings::sync(); |
172 | } | 173 | } |
173 | 174 | ||
174 | bool EncRbSpeex::start() | 175 | bool EncRbSpeex::start() |
175 | { | 176 | { |
176 | 177 | ||
177 | // try to get config from settings | 178 | // try to get config from settings |
178 | quality = settings->subValue("rbspeex", RbSettings::EncoderQuality).toDouble(); | 179 | quality = RbSettings::subValue("rbspeex", RbSettings::EncoderQuality).toDouble(); |
179 | complexity = settings->subValue("rbspeex", RbSettings::EncoderComplexity).toInt(); | 180 | complexity = RbSettings::subValue("rbspeex", RbSettings::EncoderComplexity).toInt(); |
180 | volume = settings->subValue("rbspeex", RbSettings::EncoderVolume).toDouble(); | 181 | volume = RbSettings::subValue("rbspeex", RbSettings::EncoderVolume).toDouble(); |
181 | narrowband = settings->subValue("rbspeex", RbSettings::EncoderNarrowBand).toBool(); | 182 | narrowband = RbSettings::subValue("rbspeex", RbSettings::EncoderNarrowBand).toBool(); |
182 | 183 | ||
183 | 184 | ||
184 | return true; | 185 | return true; |
@@ -219,13 +220,13 @@ bool EncRbSpeex::configOk() | |||
219 | bool result=true; | 220 | bool result=true; |
220 | // check config | 221 | // check config |
221 | 222 | ||
222 | if(settings->subValue("rbspeex", RbSettings::EncoderVolume).toDouble() <= 0) | 223 | if(RbSettings::subValue("rbspeex", RbSettings::EncoderVolume).toDouble() <= 0) |
223 | result =false; | 224 | result =false; |
224 | 225 | ||
225 | if(settings->subValue("rbspeex", RbSettings::EncoderQuality).toDouble() <= 0) | 226 | if(RbSettings::subValue("rbspeex", RbSettings::EncoderQuality).toDouble() <= 0) |
226 | result =false; | 227 | result =false; |
227 | 228 | ||
228 | if(settings->subValue("rbspeex", RbSettings::EncoderComplexity).toInt() <= 0) | 229 | if(RbSettings::subValue("rbspeex", RbSettings::EncoderComplexity).toInt() <= 0) |
229 | result =false; | 230 | result =false; |
230 | 231 | ||
231 | return result; | 232 | return result; |
diff --git a/rbutil/rbutilqt/base/encoders.h b/rbutil/rbutilqt/base/encoders.h index d5d1723a46..a70f775e98 100644 --- a/rbutil/rbutilqt/base/encoders.h +++ b/rbutil/rbutilqt/base/encoders.h | |||
@@ -24,7 +24,6 @@ | |||
24 | 24 | ||
25 | #include <QtCore> | 25 | #include <QtCore> |
26 | 26 | ||
27 | #include "rbsettings.h" | ||
28 | #include "encttssettings.h" | 27 | #include "encttssettings.h" |
29 | #include "rbspeex.h" | 28 | #include "rbspeex.h" |
30 | 29 | ||
@@ -54,15 +53,11 @@ class EncBase : public EncTtsSettingInterface | |||
54 | static QString getEncoderName(QString name); | 53 | static QString getEncoderName(QString name); |
55 | static EncBase* getEncoder(QObject* parent,QString name); | 54 | static EncBase* getEncoder(QObject* parent,QString name); |
56 | static QStringList getEncoderList(void); | 55 | static QStringList getEncoderList(void); |
57 | 56 | ||
58 | //set the config. users of Encoder classes, always have to call this first | ||
59 | void setCfg(RbSettings *sett){settings = sett;} | ||
60 | private: | 57 | private: |
61 | static void initEncodernamesList(void); | 58 | static void initEncodernamesList(void); |
62 | 59 | ||
63 | protected: | 60 | protected: |
64 | RbSettings* settings; | ||
65 | |||
66 | static QMap<QString,QString> encoderList; | 61 | static QMap<QString,QString> encoderList; |
67 | }; | 62 | }; |
68 | 63 | ||
diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp index 12654cd288..8e2e7c26d2 100644 --- a/rbutil/rbutilqt/base/rbsettings.cpp +++ b/rbutil/rbutilqt/base/rbsettings.cpp | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <unistd.h> | 25 | #include <unistd.h> |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | |||
28 | // device settings | 29 | // device settings |
29 | const static struct { | 30 | const static struct { |
30 | RbSettings::SystemSettings setting; | 31 | RbSettings::SystemSettings setting; |
@@ -94,31 +95,45 @@ const static struct { | |||
94 | { RbSettings::EncoderVolume, ":encoder:/volume", "1.0" }, | 95 | { RbSettings::EncoderVolume, ":encoder:/volume", "1.0" }, |
95 | }; | 96 | }; |
96 | 97 | ||
97 | void RbSettings::open() | 98 | //! pointer to setting object to NULL |
99 | QSettings* RbSettings::systemSettings = NULL; | ||
100 | QSettings* RbSettings::userSettings = NULL; | ||
101 | |||
102 | void RbSettings::ensureRbSettingsExists() | ||
98 | { | 103 | { |
99 | // only use built-in rbutil.ini | 104 | //check and create settings object |
100 | systemSettings = new QSettings(":/ini/rbutil.ini", QSettings::IniFormat, 0); | 105 | if(systemSettings == NULL) |
101 | // portable installation: | ||
102 | // check for a configuration file in the program folder. | ||
103 | QFileInfo config; | ||
104 | config.setFile(QCoreApplication::instance()->applicationDirPath() | ||
105 | + "/RockboxUtility.ini"); | ||
106 | if(config.isFile()) | ||
107 | { | 106 | { |
108 | userSettings = new QSettings(QCoreApplication::instance()->applicationDirPath() | 107 | // only use built-in rbutil.ini |
109 | + "/RockboxUtility.ini", QSettings::IniFormat, this); | 108 | systemSettings = new QSettings(":/ini/rbutil.ini", QSettings::IniFormat, 0); |
110 | qDebug() << "config: portable"; | ||
111 | } | 109 | } |
112 | else | 110 | |
111 | if(userSettings == NULL) | ||
113 | { | 112 | { |
114 | userSettings = new QSettings(QSettings::IniFormat, | 113 | // portable installation: |
115 | QSettings::UserScope, "rockbox.org", "RockboxUtility",this); | 114 | // check for a configuration file in the program folder. |
116 | qDebug() << "config: system"; | 115 | QFileInfo config; |
116 | config.setFile(QCoreApplication::instance()->applicationDirPath() | ||
117 | + "/RockboxUtility.ini"); | ||
118 | if(config.isFile()) | ||
119 | { | ||
120 | userSettings = new QSettings(QCoreApplication::instance()->applicationDirPath() | ||
121 | + "/RockboxUtility.ini", QSettings::IniFormat, NULL); | ||
122 | qDebug() << "config: portable"; | ||
123 | } | ||
124 | else | ||
125 | { | ||
126 | userSettings = new QSettings(QSettings::IniFormat, | ||
127 | QSettings::UserScope, "rockbox.org", "RockboxUtility",NULL); | ||
128 | qDebug() << "config: system"; | ||
129 | } | ||
117 | } | 130 | } |
118 | } | 131 | } |
119 | 132 | ||
120 | void RbSettings::sync() | 133 | void RbSettings::sync() |
121 | { | 134 | { |
135 | ensureRbSettingsExists(); | ||
136 | |||
122 | userSettings->sync(); | 137 | userSettings->sync(); |
123 | #if defined(Q_OS_LINUX) | 138 | #if defined(Q_OS_LINUX) |
124 | // when using sudo it runs rbutil with uid 0 but unfortunately without a | 139 | // when using sudo it runs rbutil with uid 0 but unfortunately without a |
@@ -143,9 +158,16 @@ void RbSettings::sync() | |||
143 | #endif | 158 | #endif |
144 | } | 159 | } |
145 | 160 | ||
161 | QString RbSettings::userSettingFilename() | ||
162 | { | ||
163 | ensureRbSettingsExists(); | ||
164 | return userSettings->fileName(); | ||
165 | } | ||
146 | 166 | ||
147 | QVariant RbSettings::value(enum SystemSettings setting) | 167 | QVariant RbSettings::value(enum SystemSettings setting) |
148 | { | 168 | { |
169 | ensureRbSettingsExists(); | ||
170 | |||
149 | // locate setting item | 171 | // locate setting item |
150 | int i = 0; | 172 | int i = 0; |
151 | while(SystemSettingsList[i].setting != setting) | 173 | while(SystemSettingsList[i].setting != setting) |
@@ -158,15 +180,16 @@ QVariant RbSettings::value(enum SystemSettings setting) | |||
158 | return systemSettings->value(s, d); | 180 | return systemSettings->value(s, d); |
159 | } | 181 | } |
160 | 182 | ||
161 | 183 | QVariant RbSettings::value(enum UserSettings setting) | |
162 | QString RbSettings::userSettingFilename() | 184 | { |
163 | { | 185 | QString empty; |
164 | return userSettings->fileName(); | 186 | return subValue(empty, setting); |
165 | } | 187 | } |
166 | 188 | ||
167 | 189 | QVariant RbSettings::subValue(QString sub, enum UserSettings setting) | |
168 | QVariant RbSettings::subValue(QString& sub, enum UserSettings setting) | ||
169 | { | 190 | { |
191 | ensureRbSettingsExists(); | ||
192 | |||
170 | // locate setting item | 193 | // locate setting item |
171 | int i = 0; | 194 | int i = 0; |
172 | while(UserSettingsList[i].setting != setting) | 195 | while(UserSettingsList[i].setting != setting) |
@@ -177,9 +200,16 @@ QVariant RbSettings::subValue(QString& sub, enum UserSettings setting) | |||
177 | return userSettings->value(s, UserSettingsList[i].def); | 200 | return userSettings->value(s, UserSettingsList[i].def); |
178 | } | 201 | } |
179 | 202 | ||
203 | void RbSettings::setValue(enum UserSettings setting , QVariant value) | ||
204 | { | ||
205 | QString empty; | ||
206 | return setSubValue(empty, setting, value); | ||
207 | } | ||
180 | 208 | ||
181 | void RbSettings::setSubValue(QString& sub, enum UserSettings setting, QVariant value) | 209 | void RbSettings::setSubValue(QString sub, enum UserSettings setting, QVariant value) |
182 | { | 210 | { |
211 | ensureRbSettingsExists(); | ||
212 | |||
183 | // locate setting item | 213 | // locate setting item |
184 | int i = 0; | 214 | int i = 0; |
185 | while(UserSettingsList[i].setting != setting) | 215 | while(UserSettingsList[i].setting != setting) |
@@ -190,10 +220,10 @@ void RbSettings::setSubValue(QString& sub, enum UserSettings setting, QVariant v | |||
190 | userSettings->setValue(s, value); | 220 | userSettings->setValue(s, value); |
191 | } | 221 | } |
192 | 222 | ||
193 | |||
194 | |||
195 | QStringList RbSettings::platforms() | 223 | QStringList RbSettings::platforms() |
196 | { | 224 | { |
225 | ensureRbSettingsExists(); | ||
226 | |||
197 | QStringList result; | 227 | QStringList result; |
198 | systemSettings->beginGroup("platforms"); | 228 | systemSettings->beginGroup("platforms"); |
199 | QStringList a = systemSettings->childKeys(); | 229 | QStringList a = systemSettings->childKeys(); |
@@ -207,6 +237,8 @@ QStringList RbSettings::platforms() | |||
207 | 237 | ||
208 | QStringList RbSettings::languages() | 238 | QStringList RbSettings::languages() |
209 | { | 239 | { |
240 | ensureRbSettingsExists(); | ||
241 | |||
210 | QStringList result; | 242 | QStringList result; |
211 | systemSettings->beginGroup("languages"); | 243 | systemSettings->beginGroup("languages"); |
212 | QStringList a = systemSettings->childKeys(); | 244 | QStringList a = systemSettings->childKeys(); |
@@ -220,16 +252,20 @@ QStringList RbSettings::languages() | |||
220 | 252 | ||
221 | QString RbSettings::name(QString platform) | 253 | QString RbSettings::name(QString platform) |
222 | { | 254 | { |
255 | ensureRbSettingsExists(); | ||
223 | return systemSettings->value(platform + "/name").toString(); | 256 | return systemSettings->value(platform + "/name").toString(); |
224 | } | 257 | } |
225 | 258 | ||
226 | QString RbSettings::brand(QString platform) | 259 | QString RbSettings::brand(QString platform) |
227 | { | 260 | { |
261 | ensureRbSettingsExists(); | ||
228 | return systemSettings->value(platform + "/brand").toString(); | 262 | return systemSettings->value(platform + "/brand").toString(); |
229 | } | 263 | } |
230 | 264 | ||
231 | QMap<int, QString> RbSettings::usbIdMap(enum MapType type) | 265 | QMap<int, QString> RbSettings::usbIdMap(enum MapType type) |
232 | { | 266 | { |
267 | ensureRbSettingsExists(); | ||
268 | |||
233 | QMap<int, QString> map; | 269 | QMap<int, QString> map; |
234 | // get a list of ID -> target name | 270 | // get a list of ID -> target name |
235 | QStringList platforms; | 271 | QStringList platforms; |
diff --git a/rbutil/rbutilqt/base/rbsettings.h b/rbutil/rbutilqt/base/rbsettings.h index 341577abc8..4f2a5c3617 100644 --- a/rbutil/rbutilqt/base/rbsettings.h +++ b/rbutil/rbutilqt/base/rbsettings.h | |||
@@ -29,23 +29,15 @@ class QSettings; | |||
29 | class RbSettings : public QObject | 29 | class RbSettings : public QObject |
30 | { | 30 | { |
31 | Q_OBJECT | 31 | Q_OBJECT |
32 | |||
33 | public: | 32 | public: |
34 | RbSettings() {} | 33 | //! Type of requested usb-id map |
35 | |||
36 | //! open the settings files | ||
37 | void open(); | ||
38 | //! call this to flush the user Settings | ||
39 | void sync(); | ||
40 | |||
41 | // returns the filename of the usersettings file | ||
42 | QString userSettingFilename(); | ||
43 | |||
44 | enum MapType { | 34 | enum MapType { |
45 | MapDevice, | 35 | MapDevice, |
46 | MapError, | 36 | MapError, |
47 | MapIncompatible, | 37 | MapIncompatible, |
48 | }; | 38 | }; |
39 | |||
40 | //! All user settings | ||
49 | enum UserSettings { | 41 | enum UserSettings { |
50 | RbutilVersion, | 42 | RbutilVersion, |
51 | CurrentPlatform, | 43 | CurrentPlatform, |
@@ -76,6 +68,8 @@ class RbSettings : public QObject | |||
76 | EncoderQuality, | 68 | EncoderQuality, |
77 | EncoderVolume, | 69 | EncoderVolume, |
78 | }; | 70 | }; |
71 | |||
72 | //! All system settings | ||
79 | enum SystemSettings { | 73 | enum SystemSettings { |
80 | ManualUrl, | 74 | ManualUrl, |
81 | BleedingUrl, | 75 | BleedingUrl, |
@@ -103,40 +97,43 @@ class RbSettings : public QObject | |||
103 | CurConfigureModel, | 97 | CurConfigureModel, |
104 | CurTargetId, | 98 | CurTargetId, |
105 | }; | 99 | }; |
106 | 100 | ||
107 | QVariant value(enum SystemSettings setting); | 101 | //! call this to flush the user Settings |
108 | // generic and "current selection" values -- getters | 102 | static void sync(); |
109 | QVariant value(enum UserSettings setting) | 103 | //! returns the filename of the usersettings file |
110 | { QString empty; return subValue(empty, setting); } | 104 | static QString userSettingFilename(); |
111 | void setValue(enum UserSettings setting , QVariant value) | 105 | //! return a list of all platforms (rbutil internal names) |
112 | { QString empty; return setSubValue(empty, setting, value); } | 106 | static QStringList platforms(void); |
113 | 107 | //! returns a list of all languages | |
114 | QVariant subValue(QString& sub, enum UserSettings setting); | 108 | static QStringList languages(void); |
115 | QVariant subValue(const char* sub, enum UserSettings setting) | 109 | //! maps a platform to its name |
116 | { QString s = sub; return subValue(s, setting); } | 110 | static QString name(QString plattform); |
117 | void setSubValue(QString& sub, enum UserSettings setting, QVariant value); | 111 | //! maps a platform to its brand |
118 | void setSubValue(const char* sub, enum UserSettings setting, QVariant value) | 112 | static QString brand(QString plattform); |
119 | { QString s = sub; return setSubValue(s, setting, value); } | 113 | //! returns a map of usb-ids and their targets |
120 | 114 | static QMap<int, QString> usbIdMap(enum MapType); | |
121 | QStringList platforms(void); | 115 | //! get a value from system settings |
122 | QStringList languages(void); | 116 | static QVariant value(enum SystemSettings setting); |
123 | 117 | //! get a vaulue from user settings | |
124 | QString name(QString plattform); | 118 | static QVariant value(enum UserSettings setting); |
125 | QString brand(QString plattform); | 119 | //! set a user setting value |
126 | 120 | static void setValue(enum UserSettings setting , QVariant value); | |
127 | QMap<int, QString> usbIdMap(enum MapType); | 121 | //! get a user setting from a subvalue (ie for encoders and tts engines) |
122 | static QVariant subValue(QString sub, enum UserSettings setting); | ||
123 | //! set a user setting from a subvalue (ie for encoders and tts engines) | ||
124 | static void setSubValue(QString sub, enum UserSettings setting, QVariant value); | ||
128 | 125 | ||
129 | private: | 126 | private: |
130 | //! private copy constructors to prvent copying | 127 | //! you shouldnt call this, its a fully static calls |
131 | RbSettings& operator= (const RbSettings& other) | 128 | RbSettings() {} |
132 | { (void)other; return *this; } | 129 | //! create the setting objects if neccessary |
133 | RbSettings(const RbSettings& other) :QObject() | 130 | static void ensureRbSettingsExists(); |
134 | { (void)other; } | 131 | //! create a settings path, substitute platform, tts and encoder |
135 | QString constructSettingPath(QString path, QString substitute = QString()); | 132 | static QString constructSettingPath(QString path, QString substitute = QString()); |
136 | 133 | ||
137 | //! pointers to our setting objects | 134 | //! pointers to our setting objects |
138 | QSettings *systemSettings; | 135 | static QSettings *systemSettings; |
139 | QSettings *userSettings; | 136 | static QSettings *userSettings; |
140 | }; | 137 | }; |
141 | 138 | ||
142 | #endif | 139 | #endif |
diff --git a/rbutil/rbutilqt/base/tts.cpp b/rbutil/rbutilqt/base/tts.cpp index d55ba9e739..70332f5f38 100644 --- a/rbutil/rbutilqt/base/tts.cpp +++ b/rbutil/rbutilqt/base/tts.cpp | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #include "tts.h" | 20 | #include "tts.h" |
21 | #include "utils.h" | 21 | #include "utils.h" |
22 | #include "rbsettings.h" | ||
22 | /********************************************************************* | 23 | /********************************************************************* |
23 | * TTS Base | 24 | * TTS Base |
24 | **********************************************************************/ | 25 | **********************************************************************/ |
@@ -105,24 +106,24 @@ TTSExes::TTSExes(QString name,QObject* parent) : TTSBase(parent) | |||
105 | 106 | ||
106 | void TTSExes::generateSettings() | 107 | void TTSExes::generateSettings() |
107 | { | 108 | { |
108 | QString exepath =settings->subValue(m_name,RbSettings::TtsPath).toString(); | 109 | QString exepath =RbSettings::subValue(m_name,RbSettings::TtsPath).toString(); |
109 | if(exepath == "") exepath = findExecutable(m_name); | 110 | if(exepath == "") exepath = findExecutable(m_name); |
110 | 111 | ||
111 | insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to TTS engine:",exepath,EncTtsSetting::eBROWSEBTN)); | 112 | insertSetting(eEXEPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to TTS engine:",exepath,EncTtsSetting::eBROWSEBTN)); |
112 | insertSetting(eOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"TTS enginge options:",settings->subValue(m_name,RbSettings::TtsOptions))); | 113 | insertSetting(eOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"TTS enginge options:",RbSettings::subValue(m_name,RbSettings::TtsOptions))); |
113 | } | 114 | } |
114 | 115 | ||
115 | void TTSExes::saveSettings() | 116 | void TTSExes::saveSettings() |
116 | { | 117 | { |
117 | settings->setSubValue(m_name,RbSettings::TtsPath,getSetting(eEXEPATH)->current().toString()); | 118 | RbSettings::setSubValue(m_name,RbSettings::TtsPath,getSetting(eEXEPATH)->current().toString()); |
118 | settings->setSubValue(m_name,RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString()); | 119 | RbSettings::setSubValue(m_name,RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString()); |
119 | settings->sync(); | 120 | RbSettings::sync(); |
120 | } | 121 | } |
121 | 122 | ||
122 | bool TTSExes::start(QString *errStr) | 123 | bool TTSExes::start(QString *errStr) |
123 | { | 124 | { |
124 | m_TTSexec = settings->subValue(m_name,RbSettings::TtsPath).toString(); | 125 | m_TTSexec = RbSettings::subValue(m_name,RbSettings::TtsPath).toString(); |
125 | m_TTSOpts = settings->subValue(m_name,RbSettings::TtsOptions).toString(); | 126 | m_TTSOpts = RbSettings::subValue(m_name,RbSettings::TtsOptions).toString(); |
126 | 127 | ||
127 | m_TTSTemplate = m_TemplateMap.value(m_name); | 128 | m_TTSTemplate = m_TemplateMap.value(m_name); |
128 | 129 | ||
@@ -155,7 +156,7 @@ TTSStatus TTSExes::voice(QString text,QString wavfile, QString *errStr) | |||
155 | 156 | ||
156 | bool TTSExes::configOk() | 157 | bool TTSExes::configOk() |
157 | { | 158 | { |
158 | QString path = settings->subValue(m_name,RbSettings::TtsPath).toString(); | 159 | QString path = RbSettings::subValue(m_name,RbSettings::TtsPath).toString(); |
159 | 160 | ||
160 | if (QFileInfo(path).exists()) | 161 | if (QFileInfo(path).exists()) |
161 | return true; | 162 | return true; |
@@ -176,31 +177,31 @@ TTSSapi::TTSSapi(QObject* parent) : TTSBase(parent) | |||
176 | void TTSSapi::generateSettings() | 177 | void TTSSapi::generateSettings() |
177 | { | 178 | { |
178 | // language | 179 | // language |
179 | QStringList languages = settings->languages(); | 180 | QStringList languages = RbSettings::languages(); |
180 | languages.sort(); | 181 | languages.sort(); |
181 | EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,"Language:",settings->subValue("sapi",RbSettings::TtsLanguage),languages); | 182 | EncTtsSetting* setting =new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,"Language:",RbSettings::subValue("sapi",RbSettings::TtsLanguage),languages); |
182 | connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList())); | 183 | connect(setting,SIGNAL(dataChanged()),this,SLOT(updateVoiceList())); |
183 | insertSetting(eLANGUAGE,setting); | 184 | insertSetting(eLANGUAGE,setting); |
184 | // voice | 185 | // voice |
185 | setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,"Voice:",settings->subValue("sapi",RbSettings::TtsVoice),getVoiceList(settings->subValue("sapi",RbSettings::TtsLanguage).toString()),EncTtsSetting::eREFRESHBTN); | 186 | setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,"Voice:",RbSettings::subValue("sapi",RbSettings::TtsVoice),getVoiceList(RbSettings::subValue("sapi",RbSettings::TtsLanguage).toString()),EncTtsSetting::eREFRESHBTN); |
186 | connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList())); | 187 | connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList())); |
187 | insertSetting(eVOICE,setting); | 188 | insertSetting(eVOICE,setting); |
188 | //speed | 189 | //speed |
189 | insertSetting(eSPEED,new EncTtsSetting(this,EncTtsSetting::eINT,"Speed:",settings->subValue("sapi",RbSettings::TtsSpeed),-10,10)); | 190 | insertSetting(eSPEED,new EncTtsSetting(this,EncTtsSetting::eINT,"Speed:",RbSettings::subValue("sapi",RbSettings::TtsSpeed),-10,10)); |
190 | // options | 191 | // options |
191 | insertSetting(eOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Options:",settings->subValue("sapi",RbSettings::TtsOptions))); | 192 | insertSetting(eOPTIONS,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Options:",RbSettings::subValue("sapi",RbSettings::TtsOptions))); |
192 | 193 | ||
193 | } | 194 | } |
194 | 195 | ||
195 | void TTSSapi::saveSettings() | 196 | void TTSSapi::saveSettings() |
196 | { | 197 | { |
197 | //save settings in user config | 198 | //save settings in user config |
198 | settings->setSubValue("sapi",RbSettings::TtsLanguage,getSetting(eLANGUAGE)->current().toString()); | 199 | RbSettings::setSubValue("sapi",RbSettings::TtsLanguage,getSetting(eLANGUAGE)->current().toString()); |
199 | settings->setSubValue("sapi",RbSettings::TtsVoice,getSetting(eVOICE)->current().toString()); | 200 | RbSettings::setSubValue("sapi",RbSettings::TtsVoice,getSetting(eVOICE)->current().toString()); |
200 | settings->setSubValue("sapi",RbSettings::TtsSpeed,getSetting(eSPEED)->current().toInt()); | 201 | RbSettings::setSubValue("sapi",RbSettings::TtsSpeed,getSetting(eSPEED)->current().toInt()); |
201 | settings->setSubValue("sapi",RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString()); | 202 | RbSettings::setSubValue("sapi",RbSettings::TtsOptions,getSetting(eOPTIONS)->current().toString()); |
202 | 203 | ||
203 | settings->sync(); | 204 | RbSettings::sync(); |
204 | } | 205 | } |
205 | 206 | ||
206 | void TTSSapi::updateVoiceList() | 207 | void TTSSapi::updateVoiceList() |
@@ -215,11 +216,11 @@ void TTSSapi::updateVoiceList() | |||
215 | bool TTSSapi::start(QString *errStr) | 216 | bool TTSSapi::start(QString *errStr) |
216 | { | 217 | { |
217 | 218 | ||
218 | m_TTSOpts = settings->subValue("sapi",RbSettings::TtsOptions).toString(); | 219 | m_TTSOpts = RbSettings::subValue("sapi",RbSettings::TtsOptions).toString(); |
219 | m_TTSLanguage =settings->subValue("sapi",RbSettings::TtsLanguage).toString(); | 220 | m_TTSLanguage =RbSettings::subValue("sapi",RbSettings::TtsLanguage).toString(); |
220 | m_TTSVoice=settings->subValue("sapi",RbSettings::TtsVoice).toString(); | 221 | m_TTSVoice=RbSettings::subValue("sapi",RbSettings::TtsVoice).toString(); |
221 | m_TTSSpeed=settings->subValue("sapi",RbSettings::TtsSpeed).toString(); | 222 | m_TTSSpeed=RbSettings::subValue("sapi",RbSettings::TtsSpeed).toString(); |
222 | m_sapi4 = settings->subValue("sapi",RbSettings::TtsUseSapi4).toBool(); | 223 | m_sapi4 = RbSettings::subValue("sapi",RbSettings::TtsUseSapi4).toBool(); |
223 | 224 | ||
224 | QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); | 225 | QFile::remove(QDir::tempPath() +"/sapi_voice.vbs"); |
225 | QFile::copy(":/builtin/sapi_voice.vbs",QDir::tempPath() + "/sapi_voice.vbs"); | 226 | QFile::copy(":/builtin/sapi_voice.vbs",QDir::tempPath() + "/sapi_voice.vbs"); |
@@ -283,7 +284,7 @@ QStringList TTSSapi::getVoiceList(QString language) | |||
283 | execstring.replace("%exe",m_TTSexec); | 284 | execstring.replace("%exe",m_TTSexec); |
284 | execstring.replace("%lang",language); | 285 | execstring.replace("%lang",language); |
285 | 286 | ||
286 | if(settings->value(RbSettings::TtsUseSapi4).toBool()) | 287 | if(RbSettings::value(RbSettings::TtsUseSapi4).toBool()) |
287 | execstring.append(" /sapi4 "); | 288 | execstring.append(" /sapi4 "); |
288 | 289 | ||
289 | qDebug() << "init" << execstring; | 290 | qDebug() << "init" << execstring; |
@@ -348,7 +349,7 @@ bool TTSSapi::stop() | |||
348 | 349 | ||
349 | bool TTSSapi::configOk() | 350 | bool TTSSapi::configOk() |
350 | { | 351 | { |
351 | if(settings->subValue("sapi",RbSettings::TtsVoice).toString().isEmpty()) | 352 | if(RbSettings::subValue("sapi",RbSettings::TtsVoice).toString().isEmpty()) |
352 | return false; | 353 | return false; |
353 | return true; | 354 | return true; |
354 | } | 355 | } |
@@ -363,17 +364,17 @@ TTSFestival::~TTSFestival() | |||
363 | void TTSFestival::generateSettings() | 364 | void TTSFestival::generateSettings() |
364 | { | 365 | { |
365 | // server path | 366 | // server path |
366 | QString exepath = settings->subValue("festival-server",RbSettings::TtsPath).toString(); | 367 | QString exepath = RbSettings::subValue("festival-server",RbSettings::TtsPath).toString(); |
367 | if(exepath == "" ) exepath = findExecutable("festival"); | 368 | if(exepath == "" ) exepath = findExecutable("festival"); |
368 | insertSetting(eSERVERPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Festival server:",exepath,EncTtsSetting::eBROWSEBTN)); | 369 | insertSetting(eSERVERPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Festival server:",exepath,EncTtsSetting::eBROWSEBTN)); |
369 | 370 | ||
370 | // client path | 371 | // client path |
371 | QString clientpath = settings->subValue("festival-client",RbSettings::TtsPath).toString(); | 372 | QString clientpath = RbSettings::subValue("festival-client",RbSettings::TtsPath).toString(); |
372 | if(clientpath == "" ) clientpath = findExecutable("festival_client"); | 373 | if(clientpath == "" ) clientpath = findExecutable("festival_client"); |
373 | insertSetting(eCLIENTPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Festival client:",clientpath,EncTtsSetting::eBROWSEBTN)); | 374 | insertSetting(eCLIENTPATH,new EncTtsSetting(this,EncTtsSetting::eSTRING,"Path to Festival client:",clientpath,EncTtsSetting::eBROWSEBTN)); |
374 | 375 | ||
375 | // voice | 376 | // voice |
376 | EncTtsSetting* setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,"Voice:",settings->subValue("festival",RbSettings::TtsVoice),getVoiceList(exepath),EncTtsSetting::eREFRESHBTN); | 377 | EncTtsSetting* setting = new EncTtsSetting(this,EncTtsSetting::eSTRINGLIST,"Voice:",RbSettings::subValue("festival",RbSettings::TtsVoice),getVoiceList(exepath),EncTtsSetting::eREFRESHBTN); |
377 | connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList())); | 378 | connect(setting,SIGNAL(refresh()),this,SLOT(updateVoiceList())); |
378 | connect(setting,SIGNAL(dataChanged()),this,SLOT(clearVoiceDescription())); | 379 | connect(setting,SIGNAL(dataChanged()),this,SLOT(clearVoiceDescription())); |
379 | insertSetting(eVOICE,setting); | 380 | insertSetting(eVOICE,setting); |
@@ -387,11 +388,11 @@ void TTSFestival::generateSettings() | |||
387 | void TTSFestival::saveSettings() | 388 | void TTSFestival::saveSettings() |
388 | { | 389 | { |
389 | //save settings in user config | 390 | //save settings in user config |
390 | settings->setSubValue("festival-server",RbSettings::TtsPath,getSetting(eSERVERPATH)->current().toString()); | 391 | RbSettings::setSubValue("festival-server",RbSettings::TtsPath,getSetting(eSERVERPATH)->current().toString()); |
391 | settings->setSubValue("festival-client",RbSettings::TtsPath,getSetting(eCLIENTPATH)->current().toString()); | 392 | RbSettings::setSubValue("festival-client",RbSettings::TtsPath,getSetting(eCLIENTPATH)->current().toString()); |
392 | settings->setSubValue("festival",RbSettings::TtsVoice,getSetting(eVOICE)->current().toString()); | 393 | RbSettings::setSubValue("festival",RbSettings::TtsVoice,getSetting(eVOICE)->current().toString()); |
393 | 394 | ||
394 | settings->sync(); | 395 | RbSettings::sync(); |
395 | } | 396 | } |
396 | 397 | ||
397 | void TTSFestival::updateVoiceDescription() | 398 | void TTSFestival::updateVoiceDescription() |
@@ -420,7 +421,7 @@ void TTSFestival::startServer(QString path) | |||
420 | return; | 421 | return; |
421 | 422 | ||
422 | if(path == "") | 423 | if(path == "") |
423 | path = settings->subValue("festival-server",RbSettings::TtsPath).toString(); | 424 | path = RbSettings::subValue("festival-server",RbSettings::TtsPath).toString(); |
424 | 425 | ||
425 | serverProcess.start(QString("%1 --server").arg(path)); | 426 | serverProcess.start(QString("%1 --server").arg(path)); |
426 | serverProcess.waitForStarted(); | 427 | serverProcess.waitForStarted(); |
@@ -444,9 +445,9 @@ bool TTSFestival::start(QString* errStr) | |||
444 | { | 445 | { |
445 | (void) errStr; | 446 | (void) errStr; |
446 | ensureServerRunning(); | 447 | ensureServerRunning(); |
447 | if (!settings->subValue("festival",RbSettings::TtsVoice).toString().isEmpty()) | 448 | if (!RbSettings::subValue("festival",RbSettings::TtsVoice).toString().isEmpty()) |
448 | queryServer(QString("(voice.select '%1)") | 449 | queryServer(QString("(voice.select '%1)") |
449 | .arg(settings->subValue("festival", RbSettings::TtsVoice).toString())); | 450 | .arg(RbSettings::subValue("festival", RbSettings::TtsVoice).toString())); |
450 | 451 | ||
451 | return true; | 452 | return true; |
452 | } | 453 | } |
@@ -463,7 +464,7 @@ TTSStatus TTSFestival::voice(QString text, QString wavfile, QString* errStr) | |||
463 | { | 464 | { |
464 | qDebug() << text << "->" << wavfile; | 465 | qDebug() << text << "->" << wavfile; |
465 | 466 | ||
466 | QString path = settings->subValue("festival-client",RbSettings::TtsPath).toString(); | 467 | QString path = RbSettings::subValue("festival-client",RbSettings::TtsPath).toString(); |
467 | QString cmd = QString("%1 --server localhost --otype riff --ttw --withlisp --output \"%2\" - ").arg(path).arg(wavfile); | 468 | QString cmd = QString("%1 --server localhost --otype riff --ttw --withlisp --output \"%2\" - ").arg(path).arg(wavfile); |
468 | qDebug() << cmd; | 469 | qDebug() << cmd; |
469 | 470 | ||
@@ -493,13 +494,13 @@ TTSStatus TTSFestival::voice(QString text, QString wavfile, QString* errStr) | |||
493 | 494 | ||
494 | bool TTSFestival::configOk() | 495 | bool TTSFestival::configOk() |
495 | { | 496 | { |
496 | QString serverPath = settings->subValue("festival-server",RbSettings::TtsPath).toString(); | 497 | QString serverPath = RbSettings::subValue("festival-server",RbSettings::TtsPath).toString(); |
497 | QString clientPath = settings->subValue("festival-client",RbSettings::TtsVoice).toString(); | 498 | QString clientPath = RbSettings::subValue("festival-client",RbSettings::TtsVoice).toString(); |
498 | 499 | ||
499 | bool ret = QFileInfo(serverPath).isExecutable() && | 500 | bool ret = QFileInfo(serverPath).isExecutable() && |
500 | QFileInfo(clientPath).isExecutable(); | 501 | QFileInfo(clientPath).isExecutable(); |
501 | if(settings->subValue("festival",RbSettings::TtsVoice).toString().size() > 0 && voices.size() > 0) | 502 | if(RbSettings::subValue("festival",RbSettings::TtsVoice).toString().size() > 0 && voices.size() > 0) |
502 | ret = ret && (voices.indexOf(settings->subValue("festival",RbSettings::TtsVoice).toString()) != -1); | 503 | ret = ret && (voices.indexOf(RbSettings::subValue("festival",RbSettings::TtsVoice).toString()) != -1); |
503 | return ret; | 504 | return ret; |
504 | } | 505 | } |
505 | 506 | ||
diff --git a/rbutil/rbutilqt/base/tts.h b/rbutil/rbutilqt/base/tts.h index 093ccd6138..f665ed2865 100644 --- a/rbutil/rbutilqt/base/tts.h +++ b/rbutil/rbutilqt/base/tts.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #ifndef TTS_H | 23 | #ifndef TTS_H |
24 | #define TTS_H | 24 | #define TTS_H |
25 | 25 | ||
26 | #include "rbsettings.h" | ||
27 | #include <QtCore> | 26 | #include <QtCore> |
28 | #include <QProcess> | 27 | #include <QProcess> |
29 | #include <QDateTime> | 28 | #include <QDateTime> |
@@ -58,16 +57,12 @@ class TTSBase : public EncTtsSettingInterface | |||
58 | static TTSBase* getTTS(QObject* parent,QString ttsname); | 57 | static TTSBase* getTTS(QObject* parent,QString ttsname); |
59 | static QStringList getTTSList(); | 58 | static QStringList getTTSList(); |
60 | static QString getTTSName(QString tts); | 59 | static QString getTTSName(QString tts); |
61 | 60 | ||
62 | // sets the config. Users of TTS classes, always have to call this first | ||
63 | void setCfg(RbSettings* sett) { settings = sett; } | ||
64 | |||
65 | private: | 61 | private: |
66 | //inits the tts List | 62 | //inits the tts List |
67 | static void initTTSList(); | 63 | static void initTTSList(); |
68 | 64 | ||
69 | protected: | 65 | protected: |
70 | RbSettings* settings; | ||
71 | static QMap<QString,QString> ttsList; | 66 | static QMap<QString,QString> ttsList; |
72 | }; | 67 | }; |
73 | 68 | ||