summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/playerbuildinfo.h
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2020-11-28 20:47:28 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2020-12-03 22:25:12 +0100
commitb064a6cbb58a0db1a70fbac2e82242ce0c7509b1 (patch)
treec9090d367d237cbd408afbd24d5809e55a1a2653 /rbutil/rbutilqt/base/playerbuildinfo.h
parent78a01db47cac5fa67aeee6f1c5134f89c3e4944a (diff)
downloadrockbox-b064a6cbb58a0db1a70fbac2e82242ce0c7509b1.tar.gz
rockbox-b064a6cbb58a0db1a70fbac2e82242ce0c7509b1.zip
rbutil: Rework and merge player and build server info handling.
Handling the data for players from rbutil.ini and the build-info data from the server is closely related. Splitting things up into different classes only creates tightly coupling, which is unnecessary, and the need to differentiate between them in the application. Merge both classes into a single one and rework handling so the application doesn't have to deal with two separate classes anymore. Furthermore, change URL templates to use new values from build-info instead of hard coding them. Change-Id: Ica550973ce23d1559110782add52bc214eba552d
Diffstat (limited to 'rbutil/rbutilqt/base/playerbuildinfo.h')
-rw-r--r--rbutil/rbutilqt/base/playerbuildinfo.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/rbutil/rbutilqt/base/playerbuildinfo.h b/rbutil/rbutilqt/base/playerbuildinfo.h
new file mode 100644
index 0000000000..81d7d97312
--- /dev/null
+++ b/rbutil/rbutilqt/base/playerbuildinfo.h
@@ -0,0 +1,106 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2020 by Dominik Riebeling
10 *
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19#ifndef PLAYERBUILDINFO_H
20#define PLAYERBUILDINFO_H
21
22#include <QSettings>
23
24#define STATUS_RETIRED 0
25#define STATUS_UNUSABLE 1
26#define STATUS_UNSTABLE 2
27#define STATUS_STABLE 3
28
29// Provide information about both player and builds.
30// For build info data retrieved from the build server has to be passed.
31class PlayerBuildInfo : public QObject
32{
33public:
34
35 enum BuildType {
36 TypeRelease,
37 TypeCandidate,
38 TypeDaily,
39 TypeDevel,
40 };
41 enum BuildInfo {
42 BuildUrl,
43 BuildVersion,
44 BuildManualUrl,
45 BuildVoiceUrl,
46 BuildVoiceLangs,
47 BuildSourceUrl,
48 BuildFontUrl,
49
50 DoomUrl,
51 Duke3DUrl,
52 PuzzFontsUrl,
53 QuakeUrl,
54 Wolf3DUrl,
55 XWorldUrl,
56 MidiPatchsetUrl,
57 };
58 enum DeviceInfo {
59 BuildStatus,
60
61 DisplayName,
62 BootloaderMethod,
63 BootloaderName,
64 BootloaderFile,
65 BootloaderFilter,
66 Encoder,
67 Brand,
68 PlayerPicture,
69 };
70
71 enum SystemUrl {
72 BootloaderUrl,
73 BuildInfoUrl,
74 GenlangUrl,
75 ThemesUrl,
76 ThemesInfoUrl,
77 RbutilUrl,
78 };
79
80 static PlayerBuildInfo* instance();
81
82 //! Update with build information from server
83 void setBuildInfo(QString file);
84
85 // Get information about a device. This data does not depend on the build type.
86 QVariant value(DeviceInfo item, QString target = "");
87
88 // Get build information for currently selected player.
89 QVariant value(BuildInfo item, BuildType type);
90
91 // Get fixed download URL information
92 QVariant value(SystemUrl item);
93
94 QString statusAsString(QString target = "");
95
96protected:
97 explicit PlayerBuildInfo();
98
99private:
100 static PlayerBuildInfo* infoInstance;
101 QSettings* serverInfo;
102 QSettings playerInfo;
103
104};
105
106#endif