Remove .a files before running ar, to avoid problems with renamed files remaining...
[kugel-rb.git] / rbutil / rbutilqt / rbsettings.cpp
blob2b28ee4d9ae25a0336a2117c2a3977f9a5be7443
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
9 * Copyright (C) 2007 by Dominik Wenger
10 * $Id$
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"
22 #include <QSettings>
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.
30 QFileInfo config;
31 config.setFile(QCoreApplication::instance()->applicationDirPath() + "/RockboxUtility.ini");
32 if(config.isFile())
34 userSettings = new QSettings(QCoreApplication::instance()->applicationDirPath() + "/RockboxUtility.ini",
35 QSettings::IniFormat, this);
36 qDebug() << "config: portable";
38 else
40 userSettings = new QSettings(QSettings::IniFormat,
41 QSettings::UserScope, "rockbox.org", "RockboxUtility",this);
42 qDebug() << "config: system";
46 void RbSettings::sync()
48 userSettings->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);
56 devices->endGroup();
57 return result;
60 QVariant RbSettings::userSettingsGroupGet(QString group,QString entry,QVariant def)
62 userSettings->beginGroup(group);
63 QVariant result = userSettings->value(entry,def);
64 userSettings->endGroup();
65 return result;
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();
93 if( result == "no")
95 return false;
97 else
98 return true;
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 platform)
118 (void)platform;
119 return deviceSettingCurGet("last_release").toString();
122 QString RbSettings::cachePath()
124 return userSettings->value("cachepath", QDir::tempPath()).toString();
127 QString RbSettings::bootloaderUrl()
129 return devices->value("bootloader_url").toString();
132 QString RbSettings::bootloaderInfoUrl()
134 return devices->value("bootloader_info_url").toString();
137 QString RbSettings::fontUrl()
139 return devices->value("font_url").toString();
142 QString RbSettings::voiceUrl()
144 return devices->value("voice_url").toString();
147 QString RbSettings::doomUrl()
149 return devices->value("doom_url").toString();
152 QString RbSettings::releaseUrl()
154 return devices->value("release_url").toString();
157 QString RbSettings::dailyUrl()
159 return devices->value("daily_url").toString();
162 QString RbSettings::serverConfUrl()
164 return devices->value("server_conf_url").toString();
167 QString RbSettings::genlangUrl()
169 return devices->value("genlang_url").toString();
172 QString RbSettings::themeUrl()
174 return devices->value("themes_url").toString();
177 QString RbSettings::bleedingInfo()
179 return devices->value("bleeding_info").toString();
182 bool RbSettings::cacheDisabled()
184 return userSettings->value("cachedisable").toBool();
187 QString RbSettings::proxyType()
189 return userSettings->value("proxytype", "none").toString();
192 QString RbSettings::proxy()
194 return userSettings->value("proxy").toString();
197 QString RbSettings::ofPath()
199 return userSettings->value("ofpath").toString();
202 QString RbSettings::curBrand()
204 QString platform = userSettings->value("platform").toString();
205 return brand(platform);
208 QString RbSettings::curName()
210 QString platform = userSettings->value("platform").toString();
211 return name(platform);
214 QString RbSettings::curPlatform()
216 return userSettings->value("platform").toString();
219 QString RbSettings::curPlatformName()
221 return deviceSettingCurGet("platform").toString();
224 QString RbSettings::curManual()
226 return deviceSettingCurGet("manualname","rockbox-" +
227 devices->value("platform").toString()).toString();
230 bool RbSettings::curReleased()
232 QString released = deviceSettingCurGet("released").toString();
233 if(released == "yes")
234 return true;
235 else
236 return false;
239 QString RbSettings::curBootloaderMethod()
241 return deviceSettingCurGet("bootloadermethod").toString();
244 QString RbSettings::curBootloaderName()
246 return deviceSettingCurGet("bootloadername").toString();
249 QString RbSettings::curBootloaderFile()
251 return deviceSettingCurGet("bootloaderfile").toString();
254 QString RbSettings::curVoiceName()
256 return deviceSettingCurGet("voicename").toString();
259 QString RbSettings::curLang()
261 // QSettings::value only returns the default when the setting
262 // doesn't exist. Make sure to return the system language if
263 // the language in the configuration is present but empty too.
264 QString lang = userSettings->value("lang").toString();
265 if(lang.isEmpty())
266 lang = QLocale::system().name();
267 return lang;
270 QString RbSettings::curEncoder()
272 return deviceSettingCurGet("encoder").toString();
275 QString RbSettings::curTTS()
277 return userSettings->value("tts").toString();
280 QString RbSettings::lastTalkedFolder()
282 return userSettings->value("last_talked_folder").toString();
285 QString RbSettings::voiceLanguage()
287 return userSettings->value("voicelanguage").toString();
290 int RbSettings::wavtrimTh()
292 return userSettings->value("wavtrimthreshold",500).toInt();
295 QString RbSettings::ttsPath(QString tts)
297 return userSettingsGroupGet(tts,"ttspath").toString();
299 QString RbSettings::ttsOptions(QString tts)
301 return userSettingsGroupGet(tts,"ttsoptions").toString();
303 QString RbSettings::ttsVoice(QString tts)
305 return userSettingsGroupGet(tts,"ttsvoice","Microsoft Sam").toString();
307 int RbSettings::ttsSpeed(QString tts)
309 return userSettingsGroupGet(tts,"ttsspeed",0).toInt();
311 QString RbSettings::ttsLang(QString tts)
313 return userSettingsGroupGet(tts,"ttslanguage","english").toString();
316 bool RbSettings::ttsUseSapi4()
318 return userSettingsGroupGet("sapi","useSapi4",false).toBool();
321 QString RbSettings::encoderPath(QString enc)
323 return userSettingsGroupGet(enc,"encoderpath").toString();
325 QString RbSettings::encoderOptions(QString enc)
327 return userSettingsGroupGet(enc,"encoderoptions").toString();
330 double RbSettings::encoderQuality(QString enc)
332 return userSettingsGroupGet(enc,"quality",8.f).toDouble();
334 int RbSettings::encoderComplexity(QString enc)
336 return userSettingsGroupGet(enc,"complexity",10).toInt();
338 double RbSettings::encoderVolume(QString enc)
340 return userSettingsGroupGet(enc,"volume",1.f).toDouble();
342 bool RbSettings::encoderNarrowband(QString enc)
344 return userSettingsGroupGet(enc,"narrowband",false).toBool();
347 QStringList RbSettings::allPlatforms()
349 QStringList result;
350 devices->beginGroup("platforms");
351 QStringList a = devices->childKeys();
352 for(int i = 0; i < a.size(); i++)
354 result.append(devices->value(a.at(i), "null").toString());
356 devices->endGroup();
357 return result;
360 QStringList RbSettings::allLanguages()
362 QStringList result;
363 devices->beginGroup("languages");
364 QStringList a = devices->childKeys();
365 for(int i = 0; i < a.size(); i++)
367 result.append(devices->value(a.at(i), "null").toString());
369 devices->endGroup();
370 return result;
373 QString RbSettings::name(QString plattform)
375 devices->beginGroup(plattform);
376 QString name = devices->value("name").toString();
377 devices->endGroup();
378 return name;
381 QString RbSettings::brand(QString plattform)
383 devices->beginGroup(plattform);
384 QString brand = devices->value("brand").toString();
385 devices->endGroup();
386 return brand;
389 QString RbSettings::nameOfTargetId(int id)
391 QString result ="";
392 // get a list of ID -> target name
393 QStringList platforms;
394 devices->beginGroup("platforms");
395 platforms = devices->childKeys();
396 devices->endGroup();
397 for(int i = 0; i < platforms.size(); i++)
399 devices->beginGroup("platforms");
400 QString target = devices->value(platforms.at(i)).toString();
401 devices->endGroup();
402 devices->beginGroup(target);
403 if(devices->value("targetid").toInt() == id)
405 result = devices->value("name").toString();
407 devices->endGroup();
410 return result;
413 QMap<int, QString> RbSettings::usbIdMap()
415 QMap<int, QString> map;
416 // get a list of ID -> target name
417 QStringList platforms;
418 devices->beginGroup("platforms");
419 platforms = devices->childKeys();
420 devices->endGroup();
422 for(int i = 0; i < platforms.size(); i++)
424 devices->beginGroup("platforms");
425 QString target = devices->value(platforms.at(i)).toString();
426 devices->endGroup();
427 devices->beginGroup(target);
428 QStringList ids = devices->value("usbid").toStringList();
429 int j = ids.size();
430 while(j--)
431 map.insert(ids.at(j).toInt(0, 16), target);
433 devices->endGroup();
435 return map;
438 QMap<int, QString> RbSettings::usbIdErrorMap()
441 QMap<int, QString> map;
442 // get a list of ID -> target name
443 QStringList platforms;
444 devices->beginGroup("platforms");
445 platforms = devices->childKeys();
446 devices->endGroup();
448 for(int i = 0; i < platforms.size(); i++)
450 devices->beginGroup("platforms");
451 QString target = devices->value(platforms.at(i)).toString();
452 devices->endGroup();
453 devices->beginGroup(target);
454 QStringList ids = devices->value("usberror").toStringList();
455 int j = ids.size();
456 while(j--)
457 map.insert(ids.at(j).toInt(0, 16), target);
458 devices->endGroup();
460 return map;
464 QMap<int, QString> RbSettings::usbIdIncompatMap()
467 QMap<int, QString> map;
468 // get a list of ID -> target name
469 QStringList platforms;
470 devices->beginGroup("platforms");
471 platforms = devices->childKeys();
472 devices->endGroup();
474 for(int i = 0; i < platforms.size(); i++)
476 devices->beginGroup("platforms");
477 QString target = devices->value(platforms.at(i)).toString();
478 devices->endGroup();
479 devices->beginGroup(target);
480 QStringList ids = devices->value("usbincompat").toStringList();
481 int j = ids.size();
482 while(j--)
483 map.insert(ids.at(j).toInt(0, 16), target);
484 devices->endGroup();
486 return map;
490 QString RbSettings::curResolution()
492 return deviceSettingCurGet("resolution").toString();
495 int RbSettings::curTargetId()
497 return deviceSettingCurGet("targetid").toInt();
500 void RbSettings::setCurVersion(QString version)
502 userSettings->setValue("rbutil_version",version);
505 void RbSettings::setOfPath(QString path)
507 userSettings->setValue("ofpath",path);
510 void RbSettings::setCachePath(QString path)
512 userSettings->setValue("cachepath", path);
515 void RbSettings::setBuild(QString build)
517 userSettings->setValue("build", build);
520 void RbSettings::setLastTalkedDir(QString dir)
522 userSettings->setValue("last_talked_folder", dir);
525 void RbSettings::setVoiceLanguage(QString dir)
527 userSettings->setValue("voicelanguage", dir);
530 void RbSettings::setWavtrimTh(int th)
532 userSettings->setValue("wavtrimthreshold", th);
535 void RbSettings::setProxy(QString proxy)
537 userSettings->setValue("proxy", proxy);
540 void RbSettings::setProxyType(QString proxytype)
542 userSettings->setValue("proxytype", proxytype);
545 void RbSettings::setLang(QString lang)
547 userSettings->setValue("lang", lang);
550 void RbSettings::setMountpoint(QString mp)
552 userSettings->setValue("mountpoint",mp);
555 void RbSettings::setCurPlatform(QString platt)
557 userSettings->setValue("platform",platt);
561 void RbSettings::setCacheDisable(bool on)
563 userSettings->setValue("cachedisable",on);
566 void RbSettings::setCacheOffline(bool on)
568 userSettings->setValue("offline",on);
571 void RbSettings::setCurTTS(QString tts)
573 userSettings->setValue("tts",tts);
576 void RbSettings::setTTSPath(QString tts, QString path)
578 userSettingsGroupSet(tts,"ttspath",path);
581 void RbSettings::setTTSOptions(QString tts, QString options)
583 userSettingsGroupSet(tts,"ttsoptions",options);
586 void RbSettings::setTTSVoice(QString tts, QString voice)
588 userSettingsGroupSet(tts,"ttsvoice",voice);
591 void RbSettings::setTTSSpeed(QString tts, int speed)
593 userSettingsGroupSet(tts,"ttsspeed",speed);
596 void RbSettings::setTTSLang(QString tts, QString lang)
598 userSettingsGroupSet(tts,"ttslanguage",lang);
601 void RbSettings::setTTSUseSapi4(bool value)
603 userSettingsGroupSet("sapi","useSapi4",value);
606 void RbSettings::setEncoderPath(QString enc, QString path)
608 userSettingsGroupSet(enc,"encoderpath",path);
611 void RbSettings::setEncoderOptions(QString enc, QString options)
613 userSettingsGroupSet(enc,"encoderoptions",options);
616 void RbSettings::setEncoderQuality(QString enc, double q)
618 userSettingsGroupSet(enc,"quality",q);
620 void RbSettings::setEncoderComplexity(QString enc, int c)
622 userSettingsGroupSet(enc,"complexity",c);
624 void RbSettings::setEncoderVolume(QString enc,double v)
626 userSettingsGroupSet(enc,"volume",v);
628 void RbSettings::setEncoderNarrowband(QString enc,bool nb)
630 userSettingsGroupSet(enc,"narrowband",nb);