diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2020-12-04 22:35:44 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2020-12-05 11:19:32 +0100 |
commit | ac5fc26085e390cb55a3a5fd186a8091adcae2d4 (patch) | |
tree | 02bd09b3978a6345077d732f264f3d52e0845363 /rbutil/rbutilqt/base | |
parent | c51c6c1eb314bb0d5037f3d8f260e9657e62b2f9 (diff) | |
download | rockbox-ac5fc26085e390cb55a3a5fd186a8091adcae2d4.tar.gz rockbox-ac5fc26085e390cb55a3a5fd186a8091adcae2d4.zip |
rbutil: Make target list part of new player info.
Also remove the unused cases.
Change-Id: Ic53c12c68f9d62d9c3e4406641355893e137bcf7
Diffstat (limited to 'rbutil/rbutilqt/base')
-rw-r--r-- | rbutil/rbutilqt/base/playerbuildinfo.cpp | 47 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/playerbuildinfo.h | 7 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/systeminfo.cpp | 33 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/systeminfo.h | 12 |
4 files changed, 45 insertions, 54 deletions
diff --git a/rbutil/rbutilqt/base/playerbuildinfo.cpp b/rbutil/rbutilqt/base/playerbuildinfo.cpp index fb8b121e8f..f49917cfef 100644 --- a/rbutil/rbutilqt/base/playerbuildinfo.cpp +++ b/rbutil/rbutilqt/base/playerbuildinfo.cpp | |||
@@ -57,15 +57,17 @@ const static struct { | |||
57 | PlayerBuildInfo::DeviceInfo item; | 57 | PlayerBuildInfo::DeviceInfo item; |
58 | const char* name; | 58 | const char* name; |
59 | } PlayerInfoList[] = { | 59 | } PlayerInfoList[] = { |
60 | { PlayerBuildInfo::BuildStatus, "status/:target:" }, | 60 | { PlayerBuildInfo::BuildStatus, "status/:target:" }, |
61 | { PlayerBuildInfo::DisplayName, ":target:/name" }, | 61 | { PlayerBuildInfo::DisplayName, ":target:/name" }, |
62 | { PlayerBuildInfo::BootloaderMethod, ":target:/bootloadermethod" }, | 62 | { PlayerBuildInfo::BootloaderMethod, ":target:/bootloadermethod" }, |
63 | { PlayerBuildInfo::BootloaderName, ":target:/bootloadername" }, | 63 | { PlayerBuildInfo::BootloaderName, ":target:/bootloadername" }, |
64 | { PlayerBuildInfo::BootloaderFile, ":target:/bootloaderfile" }, | 64 | { PlayerBuildInfo::BootloaderFile, ":target:/bootloaderfile" }, |
65 | { PlayerBuildInfo::BootloaderFilter, ":target:/bootloaderfilter" }, | 65 | { PlayerBuildInfo::BootloaderFilter, ":target:/bootloaderfilter" }, |
66 | { PlayerBuildInfo::Encoder, ":target:/encoder" }, | 66 | { PlayerBuildInfo::Encoder, ":target:/encoder" }, |
67 | { PlayerBuildInfo::Brand, ":target:/brand" }, | 67 | { PlayerBuildInfo::Brand, ":target:/brand" }, |
68 | { PlayerBuildInfo::PlayerPicture, ":target:/playerpic" }, | 68 | { PlayerBuildInfo::PlayerPicture, ":target:/playerpic" }, |
69 | { PlayerBuildInfo::TargetNamesAll, "" }, | ||
70 | { PlayerBuildInfo::TargetNamesEnabled, "" }, | ||
69 | }; | 71 | }; |
70 | 72 | ||
71 | const static struct { | 73 | const static struct { |
@@ -216,6 +218,14 @@ QVariant PlayerBuildInfo::value(DeviceInfo item, QString target) | |||
216 | result = -1; | 218 | result = -1; |
217 | break; | 219 | break; |
218 | } | 220 | } |
221 | case TargetNamesAll: | ||
222 | // list of all internal target names. Doesn't depend on the passed target. | ||
223 | result = targetNames(true); | ||
224 | break; | ||
225 | case TargetNamesEnabled: | ||
226 | // list of all non-disabled target names. Doesn't depend on the passed target. | ||
227 | result = targetNames(false); | ||
228 | break; | ||
219 | 229 | ||
220 | default: | 230 | default: |
221 | result = playerInfo.value(s); | 231 | result = playerInfo.value(s); |
@@ -263,3 +273,22 @@ QString PlayerBuildInfo::statusAsString(QString platform) | |||
263 | 273 | ||
264 | return result; | 274 | return result; |
265 | } | 275 | } |
276 | |||
277 | |||
278 | QStringList PlayerBuildInfo::targetNames(bool all) | ||
279 | { | ||
280 | QStringList result; | ||
281 | playerInfo.beginGroup("platforms"); | ||
282 | QStringList a = playerInfo.childKeys(); | ||
283 | playerInfo.endGroup(); | ||
284 | for(int i = 0; i < a.size(); i++) | ||
285 | { | ||
286 | QString target = playerInfo.value("platforms/" + a.at(i), "null").toString(); | ||
287 | if(playerInfo.value(target + "/status").toString() != "disabled" || all) { | ||
288 | result.append(target); | ||
289 | } | ||
290 | } | ||
291 | result.removeDuplicates(); | ||
292 | return result; | ||
293 | } | ||
294 | |||
diff --git a/rbutil/rbutilqt/base/playerbuildinfo.h b/rbutil/rbutilqt/base/playerbuildinfo.h index 81d7d97312..5307148ff5 100644 --- a/rbutil/rbutilqt/base/playerbuildinfo.h +++ b/rbutil/rbutilqt/base/playerbuildinfo.h | |||
@@ -66,6 +66,9 @@ public: | |||
66 | Encoder, | 66 | Encoder, |
67 | Brand, | 67 | Brand, |
68 | PlayerPicture, | 68 | PlayerPicture, |
69 | |||
70 | TargetNamesAll, | ||
71 | TargetNamesEnabled, | ||
69 | }; | 72 | }; |
70 | 73 | ||
71 | enum SystemUrl { | 74 | enum SystemUrl { |
@@ -97,6 +100,10 @@ protected: | |||
97 | explicit PlayerBuildInfo(); | 100 | explicit PlayerBuildInfo(); |
98 | 101 | ||
99 | private: | 102 | private: |
103 | //! Return a list with all target names (as used internally). | ||
104 | //! @all false filter out all targets with status = disabled. | ||
105 | QStringList targetNames(bool all); | ||
106 | |||
100 | static PlayerBuildInfo* infoInstance; | 107 | static PlayerBuildInfo* infoInstance; |
101 | QSettings* serverInfo; | 108 | QSettings* serverInfo; |
102 | QSettings playerInfo; | 109 | QSettings playerInfo; |
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp index aa847540b9..6717b120cc 100644 --- a/rbutil/rbutilqt/base/systeminfo.cpp +++ b/rbutil/rbutilqt/base/systeminfo.cpp | |||
@@ -38,39 +38,6 @@ void SystemInfo::ensureSystemInfoExists() | |||
38 | } | 38 | } |
39 | 39 | ||
40 | 40 | ||
41 | QStringList SystemInfo::platforms(enum SystemInfo::PlatformType type, QString variant) | ||
42 | { | ||
43 | ensureSystemInfoExists(); | ||
44 | |||
45 | QStringList result; | ||
46 | systemInfos->beginGroup("platforms"); | ||
47 | QStringList a = systemInfos->childKeys(); | ||
48 | systemInfos->endGroup(); | ||
49 | for(int i = 0; i < a.size(); i++) | ||
50 | { | ||
51 | QString target = systemInfos->value("platforms/"+a.at(i), "null").toString(); | ||
52 | QRegExp regex("\\..*$"); | ||
53 | QString targetbase = target; | ||
54 | targetbase.remove(regex); | ||
55 | // only add target if its not disabled unless Platform*Disabled requested | ||
56 | if(type != PlatformAllDisabled && type != PlatformBaseDisabled | ||
57 | && type != PlatformVariantDisabled | ||
58 | && systemInfos->value(target+"/status").toString() == "disabled") | ||
59 | continue; | ||
60 | // report only matching target if PlatformVariant* is requested | ||
61 | if((type == PlatformVariant || type == PlatformVariantDisabled) | ||
62 | && (targetbase != variant)) | ||
63 | continue; | ||
64 | // report only base targets when PlatformBase* is requested | ||
65 | if((type == PlatformBase || type == PlatformBaseDisabled)) | ||
66 | result.append(targetbase); | ||
67 | else | ||
68 | result.append(target); | ||
69 | } | ||
70 | result.removeDuplicates(); | ||
71 | return result; | ||
72 | } | ||
73 | |||
74 | QMap<QString, QStringList> SystemInfo::languages(bool namesOnly) | 41 | QMap<QString, QStringList> SystemInfo::languages(bool namesOnly) |
75 | { | 42 | { |
76 | ensureSystemInfoExists(); | 43 | ensureSystemInfoExists(); |
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h index 7b5b68131b..d5a99082aa 100644 --- a/rbutil/rbutilqt/base/systeminfo.h +++ b/rbutil/rbutilqt/base/systeminfo.h | |||
@@ -34,18 +34,6 @@ class SystemInfo : public QObject | |||
34 | MapIncompatible, | 34 | MapIncompatible, |
35 | }; | 35 | }; |
36 | 36 | ||
37 | enum PlatformType { | ||
38 | PlatformAll, | ||
39 | PlatformAllDisabled, | ||
40 | PlatformBase, | ||
41 | PlatformBaseDisabled, | ||
42 | PlatformVariant, | ||
43 | PlatformVariantDisabled | ||
44 | }; | ||
45 | |||
46 | //! return a list of all platforms (rbutil internal names) | ||
47 | static QStringList platforms(enum PlatformType type = PlatformAll, | ||
48 | QString variant=""); | ||
49 | //! returns a map of all languages. | 37 | //! returns a map of all languages. |
50 | //! Maps <language code> to (<language name>, <display name>) | 38 | //! Maps <language code> to (<language name>, <display name>) |
51 | static QMap<QString, QStringList> languages(bool namesOnly = false); | 39 | static QMap<QString, QStringList> languages(bool namesOnly = false); |