summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2009-08-11 17:02:35 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2009-08-11 17:02:35 +0000
commit6cea3308d05c21aabe073f77c3d013485b0429a0 (patch)
tree63b6774909837045ff6635e232293c7818e826da
parent9a5174c8a3a1a2a358be57ecb72fa2740b10cd0d (diff)
downloadrockbox-6cea3308d05c21aabe073f77c3d013485b0429a0.tar.gz
rockbox-6cea3308d05c21aabe073f77c3d013485b0429a0.zip
Clean up accessing system setting values for a specific player.
Remove the ugly "save, change and restore platform" accesses and extend the settings class to allow accessing player specific system values. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22254 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/base/rbsettings.cpp20
-rw-r--r--rbutil/rbutilqt/base/rbsettings.h5
-rw-r--r--rbutil/rbutilqt/configure.cpp44
3 files changed, 44 insertions, 25 deletions
diff --git a/rbutil/rbutilqt/base/rbsettings.cpp b/rbutil/rbutilqt/base/rbsettings.cpp
index 8ab340faa3..150640f010 100644
--- a/rbutil/rbutilqt/base/rbsettings.cpp
+++ b/rbutil/rbutilqt/base/rbsettings.cpp
@@ -220,6 +220,25 @@ void RbSettings::setSubValue(QString sub, enum UserSettings setting, QVariant va
220 userSettings->setValue(s, value); 220 userSettings->setValue(s, value);
221} 221}
222 222
223
224QVariant RbSettings::platformValue(QString platform, enum SystemSettings setting)
225{
226 ensureRbSettingsExists();
227
228 // locate setting item
229 int i = 0;
230 while(SystemSettingsList[i].setting != setting)
231 i++;
232
233 QString s = SystemSettingsList[i].name;
234 s.replace(":platform:", platform);
235 QString d = SystemSettingsList[i].def;
236 d.replace(":platform:", platform);
237 qDebug() << "[Settings] GET P:" << s << systemSettings->value(s, d).toString();
238 return systemSettings->value(s, d);
239}
240
241
223QStringList RbSettings::platforms() 242QStringList RbSettings::platforms()
224{ 243{
225 ensureRbSettingsExists(); 244 ensureRbSettingsExists();
@@ -250,6 +269,7 @@ QStringList RbSettings::languages()
250 return result; 269 return result;
251} 270}
252 271
272
253QString RbSettings::name(QString platform) 273QString RbSettings::name(QString platform)
254{ 274{
255 ensureRbSettingsExists(); 275 ensureRbSettingsExists();
diff --git a/rbutil/rbutilqt/base/rbsettings.h b/rbutil/rbutilqt/base/rbsettings.h
index 4f2a5c3617..c9aceb4039 100644
--- a/rbutil/rbutilqt/base/rbsettings.h
+++ b/rbutil/rbutilqt/base/rbsettings.h
@@ -114,7 +114,7 @@ class RbSettings : public QObject
114 static QMap<int, QString> usbIdMap(enum MapType); 114 static QMap<int, QString> usbIdMap(enum MapType);
115 //! get a value from system settings 115 //! get a value from system settings
116 static QVariant value(enum SystemSettings setting); 116 static QVariant value(enum SystemSettings setting);
117 //! get a vaulue from user settings 117 //! get a value from user settings
118 static QVariant value(enum UserSettings setting); 118 static QVariant value(enum UserSettings setting);
119 //! set a user setting value 119 //! set a user setting value
120 static void setValue(enum UserSettings setting , QVariant value); 120 static void setValue(enum UserSettings setting , QVariant value);
@@ -122,6 +122,8 @@ class RbSettings : public QObject
122 static QVariant subValue(QString sub, enum UserSettings setting); 122 static QVariant subValue(QString sub, enum UserSettings setting);
123 //! set a user setting from a subvalue (ie for encoders and tts engines) 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); 124 static void setSubValue(QString sub, enum UserSettings setting, QVariant value);
125 //! get a value from system settings for a named platform.
126 static QVariant platformValue(QString platform, enum SystemSettings setting);
125 127
126 private: 128 private:
127 //! you shouldnt call this, its a fully static calls 129 //! you shouldnt call this, its a fully static calls
@@ -137,3 +139,4 @@ class RbSettings : public QObject
137}; 139};
138 140
139#endif 141#endif
142
diff --git a/rbutil/rbutilqt/configure.cpp b/rbutil/rbutilqt/configure.cpp
index 23d275dd6e..43406c00e7 100644
--- a/rbutil/rbutilqt/configure.cpp
+++ b/rbutil/rbutilqt/configure.cpp
@@ -367,18 +367,14 @@ void Config::updateTtsState(int index)
367 367
368void Config::updateEncState() 368void Config::updateEncState()
369{ 369{
370 // FIXME: this is a workaround to make the encoder follow the device selection
371 // even with the settings (and thus the device) being saved. Needs to be redone
372 // properly later by extending the settings object
373 if(ui.treeDevices->selectedItems().size() == 0) 370 if(ui.treeDevices->selectedItems().size() == 0)
374 return; 371 return;
375 372
376 QString devname = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString(); 373 QString devname = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString();
377 QString olddevice = RbSettings::value(RbSettings::Platform).toString(); 374 QString encoder = RbSettings::platformValue(devname,
378 RbSettings::setValue(RbSettings::Platform, devname); 375 RbSettings::CurEncoder).toString();
379 QString encoder = RbSettings::value(RbSettings::CurEncoder).toString(); 376 ui.encoderName->setText(EncBase::getEncoderName(RbSettings::platformValue(devname,
380 ui.encoderName->setText(EncBase::getEncoderName(RbSettings::value(RbSettings::CurEncoder).toString())); 377 RbSettings::CurEncoder).toString()));
381 RbSettings::setValue(RbSettings::Platform, olddevice);
382 378
383 EncBase* enc = EncBase::getEncoder(this,encoder); 379 EncBase* enc = EncBase::getEncoder(this,encoder);
384 380
@@ -673,14 +669,16 @@ void Config::testTts()
673 TTSBase* tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString()); 669 TTSBase* tts = TTSBase::getTTS(this,ui.comboTts->itemData(index).toString());
674 if(!tts->configOk()) 670 if(!tts->configOk())
675 { 671 {
676 QMessageBox::warning(this,tr("TTS configuration invalid"),tr("TTS configuration invalid. \n Please configure TTS engine.")); 672 QMessageBox::warning(this,tr("TTS configuration invalid"),
673 tr("TTS configuration invalid. \n Please configure TTS engine."));
677 return; 674 return;
678 } 675 }
679 676
680 if(!tts->start(&errstr)) 677 if(!tts->start(&errstr))
681 { 678 {
682 QMessageBox::warning(this,tr("Could not start TTS engine"),tr("Could not start TTS engine.\n") + errstr 679 QMessageBox::warning(this,tr("Could not start TTS engine"),
683 +tr("\nPlease configure TTS engine.")); 680 tr("Could not start TTS engine.\n") + errstr
681 + tr("\nPlease configure TTS engine."));
684 return; 682 return;
685 } 683 }
686 684
@@ -692,11 +690,12 @@ void Config::testTts()
692 if(tts->voice(tr("Rockbox Utility Voice Test"),filename,&errstr) == FatalError) 690 if(tts->voice(tr("Rockbox Utility Voice Test"),filename,&errstr) == FatalError)
693 { 691 {
694 tts->stop(); 692 tts->stop();
695 QMessageBox::warning(this,tr("Could not voice test string"),tr("Could not voice test string.\n") + errstr 693 QMessageBox::warning(this,tr("Could not voice test string"),
696 +tr("\nPlease configure TTS engine.")); 694 tr("Could not voice test string.\n") + errstr
695 + tr("\nPlease configure TTS engine."));
697 return; 696 return;
698 } 697 }
699 tts->stop(); 698 tts->stop();
700#if defined(Q_OS_LINUX) 699#if defined(Q_OS_LINUX)
701 QString exe = findExecutable("aplay"); 700 QString exe = findExecutable("aplay");
702 if(exe == "") exe = findExecutable("play"); 701 if(exe == "") exe = findExecutable("play");
@@ -704,25 +703,21 @@ void Config::testTts()
704 { 703 {
705 QProcess::execute(exe+" "+filename); 704 QProcess::execute(exe+" "+filename);
706 } 705 }
707#else 706#else
708 QSound::play(filename); 707 QSound::play(filename);
709#endif 708#endif
710} 709}
711 710
712void Config::configEnc() 711void Config::configEnc()
713{ 712{
714 // FIXME: this is a workaround to make the encoder follow the device selection
715 // even with the settings (and thus the device) being saved. Needs to be redone
716 // properly later by extending the settings object
717 if(ui.treeDevices->selectedItems().size() == 0) 713 if(ui.treeDevices->selectedItems().size() == 0)
718 return; 714 return;
719 715
720 QString devname = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString(); 716 QString devname = ui.treeDevices->selectedItems().at(0)->data(0, Qt::UserRole).toString();
721 QString olddevice = RbSettings::value(RbSettings::CurrentPlatform).toString(); 717 QString encoder = RbSettings::platformValue(devname,
722 RbSettings::setValue(RbSettings::CurrentPlatform,devname); 718 RbSettings::CurEncoder).toString();
723 QString encoder = RbSettings::value(RbSettings::CurEncoder).toString(); 719 ui.encoderName->setText(EncBase::getEncoderName(RbSettings::platformValue(devname,
724 ui.encoderName->setText(EncBase::getEncoderName(RbSettings::value(RbSettings::CurEncoder).toString())); 720 RbSettings::CurEncoder).toString()));
725 RbSettings::setValue(RbSettings::CurrentPlatform,olddevice);
726 721
727 722
728 EncBase* enc = EncBase::getEncoder(this,encoder); 723 EncBase* enc = EncBase::getEncoder(this,encoder);
@@ -732,3 +727,4 @@ void Config::configEnc()
732 727
733 updateEncState(); 728 updateEncState();
734} 729}
730