1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
9 * Copyright (C) 2007 by Dominik Wenger
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #include "rbsettings.h"
24 void RbSettings::open()
26 // only use built-in rbutil.ini
27 devices
= new QSettings(":/ini/rbutil.ini", QSettings::IniFormat
, 0);
28 // portable installation:
29 // check for a configuration file in the program folder.
31 config
.setFile(QCoreApplication::instance()->applicationDirPath() + "/RockboxUtility.ini");
34 userSettings
= new QSettings(QCoreApplication::instance()->applicationDirPath() + "/RockboxUtility.ini",
35 QSettings::IniFormat
, this);
36 qDebug() << "config: portable";
40 userSettings
= new QSettings(QSettings::IniFormat
,
41 QSettings::UserScope
, "rockbox.org", "RockboxUtility",this);
42 qDebug() << "config: system";
46 void RbSettings::sync()
51 QVariant
RbSettings::deviceSettingCurGet(QString entry
,QString def
)
53 QString platform
= userSettings
->value("platform").toString();
54 devices
->beginGroup(platform
);
55 QVariant result
= devices
->value(entry
,def
);
60 QVariant
RbSettings::userSettingsGroupGet(QString group
,QString entry
,QVariant def
)
62 userSettings
->beginGroup(group
);
63 QVariant result
= userSettings
->value(entry
,def
);
64 userSettings
->endGroup();
68 void RbSettings::userSettingsGroupSet(QString group
,QString entry
,QVariant value
)
70 userSettings
->beginGroup(group
);
71 userSettings
->setValue(entry
,value
);
72 userSettings
->endGroup();
75 QString
RbSettings::userSettingFilename()
77 return userSettings
->fileName();
80 QString
RbSettings::curVersion()
82 return userSettings
->value("rbutil_version").toString();
85 bool RbSettings::cacheOffline()
87 return userSettings
->value("offline").toBool();
90 bool RbSettings::curNeedsBootloader()
92 QString result
= deviceSettingCurGet("needsbootloader", "").toString();
101 QString
RbSettings::mountpoint()
103 return userSettings
->value("mountpoint").toString();
106 QString
RbSettings::manualUrl()
108 return devices
->value("manual_url").toString();
111 QString
RbSettings::bleedingUrl()
113 return devices
->value("bleeding_url").toString();
116 QString
RbSettings::lastRelease(QString plattform
)
118 return deviceSettingCurGet("last_release").toString();
121 QString
RbSettings::cachePath()
123 return userSettings
->value("cachepath", QDir::tempPath()).toString();
126 QString
RbSettings::bootloaderUrl()
128 return devices
->value("bootloader_url").toString();
131 QString
RbSettings::bootloaderInfoUrl()
133 return devices
->value("bootloader_info_url").toString();
136 QString
RbSettings::fontUrl()
138 return devices
->value("font_url").toString();
141 QString
RbSettings::voiceUrl()
143 return devices
->value("voice_url").toString();
146 QString
RbSettings::doomUrl()
148 return devices
->value("doom_url").toString();
151 QString
RbSettings::releaseUrl()
153 return devices
->value("release_url").toString();
156 QString
RbSettings::dailyUrl()
158 return devices
->value("daily_url").toString();
161 QString
RbSettings::serverConfUrl()
163 return devices
->value("server_conf_url").toString();
166 QString
RbSettings::genlangUrl()
168 return devices
->value("genlang_url").toString();
171 QString
RbSettings::themeUrl()
173 return devices
->value("themes_url").toString();
176 QString
RbSettings::bleedingInfo()
178 return devices
->value("bleeding_info").toString();
181 bool RbSettings::cacheDisabled()
183 return userSettings
->value("cachedisable").toBool();
186 QString
RbSettings::proxyType()
188 return userSettings
->value("proxytype", "none").toString();
191 QString
RbSettings::proxy()
193 return userSettings
->value("proxy").toString();
196 QString
RbSettings::ofPath()
198 return userSettings
->value("ofpath").toString();
201 QString
RbSettings::curBrand()
203 QString platform
= userSettings
->value("platform").toString();
204 return brand(platform
);
207 QString
RbSettings::curName()
209 QString platform
= userSettings
->value("platform").toString();
210 return name(platform
);
213 QString
RbSettings::curPlatform()
215 return userSettings
->value("platform").toString();
218 QString
RbSettings::curPlatformName()
220 return deviceSettingCurGet("platform").toString();
223 QString
RbSettings::curManual()
225 return deviceSettingCurGet("manualname","rockbox-" +
226 devices
->value("platform").toString()).toString();
229 bool RbSettings::curReleased()
231 QString released
= deviceSettingCurGet("released").toString();
232 if(released
== "yes")
238 QString
RbSettings::curBootloaderMethod()
240 return deviceSettingCurGet("bootloadermethod").toString();
243 QString
RbSettings::curBootloaderName()
245 return deviceSettingCurGet("bootloadername").toString();
248 QString
RbSettings::curBootloaderFile()
250 return deviceSettingCurGet("bootloaderfile").toString();
253 QString
RbSettings::curVoiceName()
255 return deviceSettingCurGet("voicename").toString();
258 QString
RbSettings::curLang()
260 // QSettings::value only returns the default when the setting
261 // doesn't exist. Make sure to return the system language if
262 // the language in the configuration is present but empty too.
263 QString lang
= userSettings
->value("lang").toString();
265 lang
= QLocale::system().name();
269 QString
RbSettings::curEncoder()
271 return deviceSettingCurGet("encoder").toString();
274 QString
RbSettings::curTTS()
276 return userSettings
->value("tts").toString();
279 QString
RbSettings::lastTalkedFolder()
281 return userSettings
->value("last_talked_folder").toString();
284 QString
RbSettings::voiceLanguage()
286 return userSettings
->value("voicelanguage").toString();
289 int RbSettings::wavtrimTh()
291 return userSettings
->value("wavtrimthreshold",500).toInt();
294 QString
RbSettings::ttsPath(QString tts
)
296 return userSettingsGroupGet(tts
,"ttspath").toString();
298 QString
RbSettings::ttsOptions(QString tts
)
300 return userSettingsGroupGet(tts
,"ttsoptions").toString();
302 QString
RbSettings::ttsVoice(QString tts
)
304 return userSettingsGroupGet(tts
,"ttsvoice","Microsoft Sam").toString();
306 int RbSettings::ttsSpeed(QString tts
)
308 return userSettingsGroupGet(tts
,"ttsspeed",0).toInt();
310 QString
RbSettings::ttsLang(QString tts
)
312 return userSettingsGroupGet(tts
,"ttslanguage","english").toString();
315 bool RbSettings::ttsUseSapi4()
317 return userSettingsGroupGet("sapi","useSapi4",false).toBool();
320 QString
RbSettings::encoderPath(QString enc
)
322 return userSettingsGroupGet(enc
,"encoderpath").toString();
324 QString
RbSettings::encoderOptions(QString enc
)
326 return userSettingsGroupGet(enc
,"encoderoptions").toString();
329 double RbSettings::encoderQuality(QString enc
)
331 return userSettingsGroupGet(enc
,"quality",8.f
).toDouble();
333 int RbSettings::encoderComplexity(QString enc
)
335 return userSettingsGroupGet(enc
,"complexity",10).toInt();
337 double RbSettings::encoderVolume(QString enc
)
339 return userSettingsGroupGet(enc
,"volume",1.f
).toDouble();
341 bool RbSettings::encoderNarrowband(QString enc
)
343 return userSettingsGroupGet(enc
,"narrowband",false).toBool();
346 QStringList
RbSettings::allPlatforms()
349 devices
->beginGroup("platforms");
350 QStringList a
= devices
->childKeys();
351 for(int i
= 0; i
< a
.size(); i
++)
353 result
.append(devices
->value(a
.at(i
), "null").toString());
359 QStringList
RbSettings::allLanguages()
362 devices
->beginGroup("languages");
363 QStringList a
= devices
->childKeys();
364 for(int i
= 0; i
< a
.size(); i
++)
366 result
.append(devices
->value(a
.at(i
), "null").toString());
372 QString
RbSettings::name(QString plattform
)
374 devices
->beginGroup(plattform
);
375 QString name
= devices
->value("name").toString();
380 QString
RbSettings::brand(QString plattform
)
382 devices
->beginGroup(plattform
);
383 QString brand
= devices
->value("brand").toString();
388 QString
RbSettings::nameOfTargetId(int id
)
391 // get a list of ID -> target name
392 QStringList platforms
;
393 devices
->beginGroup("platforms");
394 platforms
= devices
->childKeys();
396 for(int i
= 0; i
< platforms
.size(); i
++)
398 devices
->beginGroup("platforms");
399 QString target
= devices
->value(platforms
.at(i
)).toString();
401 devices
->beginGroup(target
);
402 if(devices
->value("targetid").toInt() == id
)
404 result
= devices
->value("name").toString();
412 QMap
<int, QString
> RbSettings::usbIdMap()
414 QMap
<int, QString
> map
;
415 // get a list of ID -> target name
416 QStringList platforms
;
417 devices
->beginGroup("platforms");
418 platforms
= devices
->childKeys();
421 for(int i
= 0; i
< platforms
.size(); i
++)
423 devices
->beginGroup("platforms");
424 QString target
= devices
->value(platforms
.at(i
)).toString();
426 devices
->beginGroup(target
);
427 QStringList ids
= devices
->value("usbid").toStringList();
430 map
.insert(ids
.at(j
).toInt(0, 16), target
);
437 QMap
<int, QString
> RbSettings::usbIdErrorMap()
440 QMap
<int, QString
> map
;
441 // get a list of ID -> target name
442 QStringList platforms
;
443 devices
->beginGroup("platforms");
444 platforms
= devices
->childKeys();
447 for(int i
= 0; i
< platforms
.size(); i
++)
449 devices
->beginGroup("platforms");
450 QString target
= devices
->value(platforms
.at(i
)).toString();
452 devices
->beginGroup(target
);
453 QStringList ids
= devices
->value("usberror").toStringList();
456 map
.insert(ids
.at(j
).toInt(0, 16), target
);
463 QMap
<int, QString
> RbSettings::usbIdIncompatMap()
466 QMap
<int, QString
> map
;
467 // get a list of ID -> target name
468 QStringList platforms
;
469 devices
->beginGroup("platforms");
470 platforms
= devices
->childKeys();
473 for(int i
= 0; i
< platforms
.size(); i
++)
475 devices
->beginGroup("platforms");
476 QString target
= devices
->value(platforms
.at(i
)).toString();
478 devices
->beginGroup(target
);
479 QStringList ids
= devices
->value("usbincompat").toStringList();
482 map
.insert(ids
.at(j
).toInt(0, 16), target
);
489 QString
RbSettings::curResolution()
491 return deviceSettingCurGet("resolution").toString();
494 int RbSettings::curTargetId()
496 return deviceSettingCurGet("targetid").toInt();
499 void RbSettings::setCurVersion(QString version
)
501 userSettings
->setValue("rbutil_version",version
);
504 void RbSettings::setOfPath(QString path
)
506 userSettings
->setValue("ofpath",path
);
509 void RbSettings::setCachePath(QString path
)
511 userSettings
->setValue("cachepath", path
);
514 void RbSettings::setBuild(QString build
)
516 userSettings
->setValue("build", build
);
519 void RbSettings::setLastTalkedDir(QString dir
)
521 userSettings
->setValue("last_talked_folder", dir
);
524 void RbSettings::setVoiceLanguage(QString dir
)
526 userSettings
->setValue("voicelanguage", dir
);
529 void RbSettings::setWavtrimTh(int th
)
531 userSettings
->setValue("wavtrimthreshold", th
);
534 void RbSettings::setProxy(QString proxy
)
536 userSettings
->setValue("proxy", proxy
);
539 void RbSettings::setProxyType(QString proxytype
)
541 userSettings
->setValue("proxytype", proxytype
);
544 void RbSettings::setLang(QString lang
)
546 userSettings
->setValue("lang", lang
);
549 void RbSettings::setMountpoint(QString mp
)
551 userSettings
->setValue("mountpoint",mp
);
554 void RbSettings::setCurPlatform(QString platt
)
556 userSettings
->setValue("platform",platt
);
560 void RbSettings::setCacheDisable(bool on
)
562 userSettings
->setValue("cachedisable",on
);
565 void RbSettings::setCacheOffline(bool on
)
567 userSettings
->setValue("offline",on
);
570 void RbSettings::setCurTTS(QString tts
)
572 userSettings
->setValue("tts",tts
);
575 void RbSettings::setTTSPath(QString tts
, QString path
)
577 userSettingsGroupSet(tts
,"ttspath",path
);
580 void RbSettings::setTTSOptions(QString tts
, QString options
)
582 userSettingsGroupSet(tts
,"ttsoptions",options
);
585 void RbSettings::setTTSVoice(QString tts
, QString voice
)
587 userSettingsGroupSet(tts
,"ttsvoice",voice
);
590 void RbSettings::setTTSSpeed(QString tts
, int speed
)
592 userSettingsGroupSet(tts
,"ttsspeed",speed
);
595 void RbSettings::setTTSLang(QString tts
, QString lang
)
597 userSettingsGroupSet(tts
,"ttslanguage",lang
);
600 void RbSettings::setTTSUseSapi4(bool value
)
602 userSettingsGroupSet("sapi","useSapi4",value
);
605 void RbSettings::setEncoderPath(QString enc
, QString path
)
607 userSettingsGroupSet(enc
,"encoderpath",path
);
610 void RbSettings::setEncoderOptions(QString enc
, QString options
)
612 userSettingsGroupSet(enc
,"encoderoptions",options
);
615 void RbSettings::setEncoderQuality(QString enc
, double q
)
617 userSettingsGroupSet(enc
,"quality",q
);
619 void RbSettings::setEncoderComplexity(QString enc
, int c
)
621 userSettingsGroupSet(enc
,"complexity",c
);
623 void RbSettings::setEncoderVolume(QString enc
,double v
)
625 userSettingsGroupSet(enc
,"volume",v
);
627 void RbSettings::setEncoderNarrowband(QString enc
,bool nb
)
629 userSettingsGroupSet(enc
,"narrowband",nb
);