summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rbutil/rbutilqt/base/serverinfo.cpp9
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp55
-rw-r--r--rbutil/rbutilqt/base/systeminfo.h19
-rw-r--r--rbutil/rbutilqt/gui/selectiveinstallwidget.cpp4
-rw-r--r--rbutil/rbutilqt/rbutil.ini52
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp3
-rw-r--r--rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp23
-rw-r--r--rbutil/rbutilqt/test/test-serverinfo.cpp4
8 files changed, 94 insertions, 75 deletions
diff --git a/rbutil/rbutilqt/base/serverinfo.cpp b/rbutil/rbutilqt/base/serverinfo.cpp
index 08f7f770b7..2f73d96beb 100644
--- a/rbutil/rbutilqt/base/serverinfo.cpp
+++ b/rbutil/rbutilqt/base/serverinfo.cpp
@@ -95,17 +95,20 @@ QVariant ServerInfo::platformValue(enum ServerInfos info, QString platform)
95 if(value.toStringList().size() > 1) 95 if(value.toStringList().size() > 1)
96 value = value.toStringList().at(1); 96 value = value.toStringList().at(1);
97 else if(!version.isEmpty() && info == CurReleaseUrl) 97 else if(!version.isEmpty() && info == CurReleaseUrl)
98 value = SystemInfo::value(SystemInfo::ReleaseUrl).toString() 98 value = SystemInfo::value(SystemInfo::BuildUrl,
99 SystemInfo::BuildRelease).toString()
99 .replace("%MODEL%", platform) 100 .replace("%MODEL%", platform)
100 .replace("%RELVERSION%", version); 101 .replace("%RELVERSION%", version);
101 else if(!version.isEmpty() && info == RelCandidateUrl) 102 else if(!version.isEmpty() && info == RelCandidateUrl)
102 value = SystemInfo::value(SystemInfo::CandidateUrl).toString() 103 value = SystemInfo::value(SystemInfo::BuildUrl,
104 SystemInfo::BuildCandidate).toString()
103 .replace("%MODEL%", platform) 105 .replace("%MODEL%", platform)
104 .replace("%RELVERSION%", version); 106 .replace("%RELVERSION%", version);
105 } 107 }
106 break; 108 break;
107 case CurDevelUrl: 109 case CurDevelUrl:
108 value = SystemInfo::value(SystemInfo::BleedingUrl).toString() 110 value = SystemInfo::value(SystemInfo::BuildUrl,
111 SystemInfo::BuildCurrent).toString()
109 .replace("%MODEL%", platform); 112 .replace("%MODEL%", platform);
110 break; 113 break;
111 case ManualPdfUrl: 114 case ManualPdfUrl:
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index 67b0428ceb..2aece49110 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -27,28 +27,23 @@ const static struct {
27 SystemInfo::SystemInfos info; 27 SystemInfo::SystemInfos info;
28 const char* name; 28 const char* name;
29} SystemInfosList[] = { 29} SystemInfosList[] = {
30 { SystemInfo::ManualUrl, "manual_url" }, 30 { SystemInfo::ManualUrl, ":build:/manual_url" },
31 { SystemInfo::BleedingUrl, "bleeding_url" }, 31 { SystemInfo::BuildUrl, ":build:/build_url" },
32 { SystemInfo::BootloaderUrl, "bootloader_url" }, 32 { SystemInfo::FontUrl, ":build:/font_url" },
33 { SystemInfo::BootloaderInfoUrl, "bootloader_info_url" }, 33 { SystemInfo::VoiceUrl, ":build:/voice_url" },
34 { SystemInfo::ReleaseFontUrl, "release_font_url" }, 34 { SystemInfo::BootloaderUrl, "bootloader/download_url" },
35 { SystemInfo::DailyFontUrl, "daily_font_url" }, 35 { SystemInfo::BootloaderInfoUrl, "bootloader/info_url" },
36 { SystemInfo::DailyVoiceUrl, "daily_voice_url" }, 36 { SystemInfo::DoomUrl, "doom_url" },
37 { SystemInfo::ReleaseVoiceUrl, "release_voice_url" }, 37 { SystemInfo::Duke3DUrl, "duke3d_url" },
38 { SystemInfo::DoomUrl, "doom_url" }, 38 { SystemInfo::PuzzFontsUrl, "puzzfonts_url" },
39 { SystemInfo::Duke3DUrl, "duke3d_url" }, 39 { SystemInfo::QuakeUrl, "quake_url" },
40 { SystemInfo::PuzzFontsUrl, "puzzfonts_url" }, 40 { SystemInfo::Wolf3DUrl, "wolf3d_url" },
41 { SystemInfo::QuakeUrl, "quake_url" }, 41 { SystemInfo::XWorldUrl, "xworld_url" },
42 { SystemInfo::Wolf3DUrl, "wolf3d_url" }, 42 { SystemInfo::BuildInfoUrl, "build_info_url" },
43 { SystemInfo::XWorldUrl, "xworld_url" }, 43 { SystemInfo::GenlangUrl, "genlang_url" },
44 { SystemInfo::ReleaseUrl, "release_url" }, 44 { SystemInfo::ThemesUrl, "themes_url" },
45 { SystemInfo::CandidateUrl, "rc_url" }, 45 { SystemInfo::ThemesInfoUrl, "themes_info_url" },
46 { SystemInfo::DailyUrl, "daily_url" }, 46 { SystemInfo::RbutilUrl, "rbutil_url" },
47 { SystemInfo::BuildInfoUrl, "build_info_url" },
48 { SystemInfo::GenlangUrl, "genlang_url" },
49 { SystemInfo::ThemesUrl, "themes_url" },
50 { SystemInfo::ThemesInfoUrl, "themes_info_url" },
51 { SystemInfo::RbutilUrl, "rbutil_url" },
52}; 47};
53 48
54const static struct { 49const static struct {
@@ -84,7 +79,7 @@ void SystemInfo::ensureSystemInfoExists()
84} 79}
85 80
86 81
87QVariant SystemInfo::value(enum SystemInfos info) 82QVariant SystemInfo::value(enum SystemInfos info, BuildType type)
88{ 83{
89 ensureSystemInfoExists(); 84 ensureSystemInfoExists();
90 85
@@ -93,6 +88,20 @@ QVariant SystemInfo::value(enum SystemInfos info)
93 while(SystemInfosList[i].info != info) 88 while(SystemInfosList[i].info != info)
94 i++; 89 i++;
95 QString s = SystemInfosList[i].name; 90 QString s = SystemInfosList[i].name;
91 switch(type) {
92 case BuildDaily:
93 s.replace(":build:", "daily");
94 break;
95 case BuildCurrent:
96 s.replace(":build:", "development");
97 break;
98 case BuildCandidate:
99 s.replace(":build:", "release-candidate");
100 break;
101 case BuildRelease:
102 s.replace(":build:", "release");
103 break;
104 }
96 LOG_INFO() << "GET:" << s << systemInfos->value(s).toString(); 105 LOG_INFO() << "GET:" << s << systemInfos->value(s).toString();
97 return systemInfos->value(s); 106 return systemInfos->value(s);
98} 107}
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h
index c4afe4b27d..12b9eb4bfb 100644
--- a/rbutil/rbutilqt/base/systeminfo.h
+++ b/rbutil/rbutilqt/base/systeminfo.h
@@ -34,15 +34,21 @@ class SystemInfo : public QObject
34 MapIncompatible, 34 MapIncompatible,
35 }; 35 };
36 36
37 enum BuildType {
38 BuildCurrent,
39 BuildDaily,
40 BuildRelease,
41 BuildCandidate
42 };
43
37 //! All system settings 44 //! All system settings
38 enum SystemInfos { 45 enum SystemInfos {
46 BuildUrl,
47 FontUrl,
48 VoiceUrl,
39 ManualUrl, 49 ManualUrl,
40 BleedingUrl,
41 BootloaderUrl, 50 BootloaderUrl,
42 BootloaderInfoUrl, 51 BootloaderInfoUrl,
43 DailyUrl,
44 DailyFontUrl,
45 DailyVoiceUrl,
46 DoomUrl, 52 DoomUrl,
47 Duke3DUrl, 53 Duke3DUrl,
48 QuakeUrl, 54 QuakeUrl,
@@ -50,9 +56,6 @@ class SystemInfo : public QObject
50 Wolf3DUrl, 56 Wolf3DUrl,
51 XWorldUrl, 57 XWorldUrl,
52 ReleaseUrl, 58 ReleaseUrl,
53 CandidateUrl,
54 ReleaseVoiceUrl,
55 ReleaseFontUrl,
56 BuildInfoUrl, 59 BuildInfoUrl,
57 GenlangUrl, 60 GenlangUrl,
58 ThemesUrl, 61 ThemesUrl,
@@ -92,7 +95,7 @@ class SystemInfo : public QObject
92 //! returns a map of usb-ids and their targets 95 //! returns a map of usb-ids and their targets
93 static QMap<int, QStringList> usbIdMap(enum MapType type); 96 static QMap<int, QStringList> usbIdMap(enum MapType type);
94 //! get a value from system settings 97 //! get a value from system settings
95 static QVariant value(enum SystemInfos info); 98 static QVariant value(enum SystemInfos info, BuildType type = BuildCurrent);
96 //! get a value from system settings for a named platform. 99 //! get a value from system settings for a named platform.
97 static QVariant platformValue(enum PlatformInfo info, QString platform = ""); 100 static QVariant platformValue(enum PlatformInfo info, QString platform = "");
98 101
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
index fafe79c8f7..c916e7a190 100644
--- a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -428,10 +428,10 @@ void SelectiveInstallWidget::installFonts(void)
428 QString relversion = installInfo.release(); 428 QString relversion = installInfo.release();
429 if(relversion.isEmpty()) { 429 if(relversion.isEmpty()) {
430 // release is empty for non-release versions (i.e. daily / current) 430 // release is empty for non-release versions (i.e. daily / current)
431 fontsurl = SystemInfo::value(SystemInfo::DailyFontUrl).toString(); 431 fontsurl = SystemInfo::value(SystemInfo::FontUrl, SystemInfo::BuildDaily).toString();
432 } 432 }
433 else { 433 else {
434 fontsurl = SystemInfo::value(SystemInfo::ReleaseFontUrl).toString(); 434 fontsurl = SystemInfo::value(SystemInfo::FontUrl, SystemInfo::BuildRelease).toString();
435 logversion = installInfo.release(); 435 logversion = installInfo.release();
436 } 436 }
437 fontsurl.replace("%RELEASEVER%", relversion); 437 fontsurl.replace("%RELEASEVER%", relversion);
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini
index 93af1bfb1b..e0d60e797e 100644
--- a/rbutil/rbutilqt/rbutil.ini
+++ b/rbutil/rbutilqt/rbutil.ini
@@ -1,30 +1,13 @@
1[general] 1[general]
2; builds 2; server information
3release_url=http://download.rockbox.org/release/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip 3build_info_url=http://download.rockbox.org/build-info
4bleeding_url=http://build.rockbox.org/data/rockbox-%MODEL%.zip 4; genlang -- used to get list of strings (only really old builds)
5rc_url=http://download.rockbox.org/release-candidate/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip
6
7; voice files
8release_voice_url=http://download.rockbox.org/release/%RELVERSION%/%MODEL%-%RELVERSION%-english.zip
9genlang_url=http://www.rockbox.org/genlang/?lang=%LANG%&t=%TARGET%&rev=%REVISION%&f=%FEATURES% 5genlang_url=http://www.rockbox.org/genlang/?lang=%LANG%&t=%TARGET%&rev=%REVISION%&f=%FEATURES%
10
11; bootloader
12bootloader_info_url=http://download.rockbox.org/bootloader/bootloaders-info
13bootloader_url=http://download.rockbox.org/bootloader
14
15; themes 6; themes
16themes_url=http://themes.rockbox.org/ 7themes_url=http://themes.rockbox.org/
17themes_info_url=http://themes.rockbox.org/rbutilqt.php?target=%TARGET%&release=%RELEASE%&revision=%REVISION%&rbutilver=%RBUTILVER% 8themes_info_url=http://themes.rockbox.org/rbutilqt.php?target=%TARGET%&release=%RELEASE%&revision=%REVISION%&rbutilver=%RBUTILVER%
18 9
19; server information
20build_info_url=http://download.rockbox.org/build-info
21
22; fonts
23release_font_url=http://download.rockbox.org/release/%RELEASEVER%/rockbox-fonts-%RELEASEVER%.zip
24daily_font_url=http://download.rockbox.org/daily/fonts/rockbox-fonts.zip
25
26; other 10; other
27manual_url=http://download.rockbox.org/manual/rockbox-%MODEL%%FORMAT%
28doom_url=http://download.rockbox.org/useful/rockdoom.zip 11doom_url=http://download.rockbox.org/useful/rockdoom.zip
29duke3d_url=http://download.rockbox.org/useful/duke3d.zip 12duke3d_url=http://download.rockbox.org/useful/duke3d.zip
30quake_url=http://download.rockbox.org/useful/quake.zip 13quake_url=http://download.rockbox.org/useful/quake.zip
@@ -33,6 +16,35 @@ wolf3d_url=http://download.rockbox.org/useful/wolf3d.zip
33xworld_url=http://download.rockbox.org/useful/xworld.zip 16xworld_url=http://download.rockbox.org/useful/xworld.zip
34rbutil_url=http://download.rockbox.org/rbutil/ 17rbutil_url=http://download.rockbox.org/rbutil/
35 18
19[bootloader]
20info_url=http://download.rockbox.org/bootloader/bootloaders-info
21download_url=http://download.rockbox.org/bootloader
22
23[release]
24build_url=https://download.rockbox.org/release/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip
25voice_url=https://download.rockbox.org/release/%RELVERSION%/%MODEL%-%RELVERSION%-english.zip
26font_url=https://download.rockbox.org/release/%RELEASEVER%/rockbox-fonts-%RELEASEVER%.zip
27manual_url=https://download.rockbox.org/release/%RELEASEVER%/rockbox-%MODEL%%FORMAT%
28
29[release-candidate]
30build_url=https://download.rockbox.org/release-candidate/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip
31voice_url=https://download.rockbox.org/release-candidate/%RELVERSION%/%MODEL%-%RELVERSION%-english.zip
32font_url=https://download.rockbox.org/release-candidate/%RELEASEVER%/rockbox-fonts-%RELEASEVER%.zip
33manual_url=https://download.rockbox.org/release-candidate/%RELEASEVER%/rockbox-%MODEL%%FORMAT%
34
35[development]
36build_url=http://build.rockbox.org/data/rockbox-%MODEL%.zip
37voice_url=https://download.rockbox.org/release/%RELVERSION%/%MODEL%-%RELVERSION%-english.zip
38font_url=https://download.rockbox.org/daily/fonts/rockbox-fonts.zip
39; manual is only built daily, use that one instead.
40manual_url=https://download.rockbox.org/daily/manual/rockbox-%MODEL%%FORMAT%
41
42[daily]
43build_url=https://download.rockbox.org/daily/%MODEL%/rockbox-%MODEL%.zip
44voice_url=https://download.rockbox.org/daily/voices/%MODEL%-%VERSION%-%LANGUAGE%.zip
45font_url=https://download.rockbox.org/daily/fonts/rockbox-fonts.zip
46manual_url=https://download.rockbox.org/daily/manual/rockbox-%MODEL%%FORMAT%
47
36; [platforms] is used to determine the order in the device tree. 48; [platforms] is used to determine the order in the device tree.
37; Only devices present in this section will get displayed! 49; Only devices present in this section will get displayed!
38[platforms] 50[platforms]
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index d013a7cb58..597509cc78 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -483,7 +483,8 @@ void RbUtilQt::installVoice()
483 return; 483 return;
484 } 484 }
485 else { 485 else {
486 voiceurl = SystemInfo::value(SystemInfo::ReleaseVoiceUrl).toString(); 486 voiceurl = SystemInfo::value(SystemInfo::VoiceUrl,
487 SystemInfo::BuildRelease).toString();
487 logversion = installInfo.release(); 488 logversion = installInfo.release();
488 } 489 }
489 if(QMessageBox::question(this, tr("Confirm Installation"), 490 if(QMessageBox::question(this, tr("Confirm Installation"),
diff --git a/rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp b/rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp
index 38336a7a6f..f0fcaf6613 100644
--- a/rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp
+++ b/rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp
@@ -38,27 +38,22 @@ QVariant SystemInfo::platformValue(SystemInfo::PlatformInfo info, QString platfo
38 return QString(); 38 return QString();
39} 39}
40 40
41QVariant SystemInfo::value(SystemInfo::SystemInfos info) 41QVariant SystemInfo::value(SystemInfo::SystemInfos info, SystemInfo::BuildType type)
42{ 42{
43 switch(info) { 43 (void)info; // test is currently only using BuildUrl.
44 case SystemInfo::ManualUrl: 44 switch(type) {
45 return QString("https://unittest/manual/rockbox-%MODEL%%FORMAT%"); 45 case SystemInfo::BuildCurrent:
46 break;
47 case SystemInfo::BleedingUrl:
48 return QString("https://unittest/dev/rockbox-%MODEL%.zip"); 46 return QString("https://unittest/dev/rockbox-%MODEL%.zip");
49 break; 47 case SystemInfo::BuildDaily:
50 case SystemInfo::DailyUrl:
51 return QString("https://unittest/daily/rockbox-%MODEL%-%RELVERSION%.zip"); 48 return QString("https://unittest/daily/rockbox-%MODEL%-%RELVERSION%.zip");
52 break; 49 case SystemInfo::BuildRelease:
53 case SystemInfo::ReleaseUrl:
54 return QString("https://unittest/release/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip"); 50 return QString("https://unittest/release/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip");
55 break; 51 case SystemInfo::BuildCandidate:
56 case SystemInfo::CandidateUrl:
57 return QString("https://unittest/rc/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip"); 52 return QString("https://unittest/rc/%RELVERSION%/rockbox-%MODEL%-%RELVERSION%.zip");
58 break;
59 default: 53 default:
60 return QString(); 54 break;
61 } 55 }
56 return QString();
62} 57}
63 58
64QStringList SystemInfo::platforms(SystemInfo::PlatformType type, QString variant) 59QStringList SystemInfo::platforms(SystemInfo::PlatformType type, QString variant)
diff --git a/rbutil/rbutilqt/test/test-serverinfo.cpp b/rbutil/rbutilqt/test/test-serverinfo.cpp
index bc6024e843..b999624c78 100644
--- a/rbutil/rbutilqt/test/test-serverinfo.cpp
+++ b/rbutil/rbutilqt/test/test-serverinfo.cpp
@@ -93,10 +93,6 @@ const struct testvector testdata[] =
93 { "iaudiox5.v", ServerInfo::BleedingRevision, "be1be79" }, 93 { "iaudiox5.v", ServerInfo::BleedingRevision, "be1be79" },
94 { "iaudiox5.v", ServerInfo::BleedingDate, "2020-11-14T10:57:23" }, 94 { "iaudiox5.v", ServerInfo::BleedingDate, "2020-11-14T10:57:23" },
95 { "iaudiox5.v", ServerInfo::CurDevelUrl, "https://unittest/dev/rockbox-iaudiox5.zip" }, 95 { "iaudiox5.v", ServerInfo::CurDevelUrl, "https://unittest/dev/rockbox-iaudiox5.zip" },
96 { "iaudiox5.v", ServerInfo::ManualPdfUrl, "https://unittest/manual/rockbox-iaudiox5.pdf" },
97 { "ipodmini2g", ServerInfo::ManualPdfUrl, "https://unittest/manual/rockbox-ipodmini1g.pdf" },
98 { "iriverh100", ServerInfo::ManualHtmlUrl, "https://unittest/manual/rockbox-iriverh100/rockbox-build.html" },
99 { "iriverh120", ServerInfo::ManualZipUrl, "https://unittest/manual/rockbox-iriverh100-html.zip" },
100}; 96};
101 97
102 98