summaryrefslogtreecommitdiff
path: root/rbutil
diff options
context:
space:
mode:
authorFranklin Wei <franklin@rockbox.org>2019-10-30 01:17:16 -0400
committerFranklin Wei <franklin@rockbox.org>2019-10-31 19:03:30 -0400
commit26b55ba5f0eb6adf667aa75e35fd0cbf2780e36d (patch)
treeb8010bdaf85d6286005d38e4807b8b8efd3030ca /rbutil
parentec8b3d31470bd612d50a3fd6e60589d30a38230c (diff)
downloadrockbox-26b55ba5f0eb6adf667aa75e35fd0cbf2780e36d.tar.gz
rockbox-26b55ba5f0eb6adf667aa75e35fd0cbf2780e36d.zip
rbutil: extend game file installation
RbUtil will now install freely distributable data files for Duke Nukem 3D, Quake, SGT-Puzzles (fonts), Wolfenstein 3-D, and Another World. Currently the urls point to my personal server, pending upload to the main download server. Change-Id: I2806fd1ad7e9bb0fcb7aee5444840708e6e63032
Diffstat (limited to 'rbutil')
-rw-r--r--rbutil/rbutilqt/base/systeminfo.cpp5
-rw-r--r--rbutil/rbutilqt/base/systeminfo.h5
-rw-r--r--rbutil/rbutilqt/gui/selectiveinstallwidget.cpp40
-rw-r--r--rbutil/rbutilqt/rbutil.ini5
4 files changed, 49 insertions, 6 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp
index d75b90c22d..25ef4a1a42 100644
--- a/rbutil/rbutilqt/base/systeminfo.cpp
+++ b/rbutil/rbutilqt/base/systeminfo.cpp
@@ -42,6 +42,11 @@ const static struct {
42 { SystemInfo::DailyVoiceUrl, "daily_voice_url", "" }, 42 { SystemInfo::DailyVoiceUrl, "daily_voice_url", "" },
43 { SystemInfo::ReleaseVoiceUrl, "release_voice_url", "" }, 43 { SystemInfo::ReleaseVoiceUrl, "release_voice_url", "" },
44 { SystemInfo::DoomUrl, "doom_url", "" }, 44 { SystemInfo::DoomUrl, "doom_url", "" },
45 { SystemInfo::Duke3DUrl, "duke3d_url", "" },
46 { SystemInfo::PuzzFontsUrl, "puzzfonts_url", "" },
47 { SystemInfo::QuakeUrl, "quake_url", "" },
48 { SystemInfo::Wolf3DUrl, "wolf3d_url", "" },
49 { SystemInfo::XWorldUrl, "xworld_url", "" },
45 { SystemInfo::ReleaseUrl, "release_url", "" }, 50 { SystemInfo::ReleaseUrl, "release_url", "" },
46 { SystemInfo::DailyUrl, "daily_url", "" }, 51 { SystemInfo::DailyUrl, "daily_url", "" },
47 { SystemInfo::BuildInfoUrl, "build_info_url", "" }, 52 { SystemInfo::BuildInfoUrl, "build_info_url", "" },
diff --git a/rbutil/rbutilqt/base/systeminfo.h b/rbutil/rbutilqt/base/systeminfo.h
index 5e75f36a08..fad2c7e48b 100644
--- a/rbutil/rbutilqt/base/systeminfo.h
+++ b/rbutil/rbutilqt/base/systeminfo.h
@@ -44,6 +44,11 @@ class SystemInfo : public QObject
44 DailyFontUrl, 44 DailyFontUrl,
45 DailyVoiceUrl, 45 DailyVoiceUrl,
46 DoomUrl, 46 DoomUrl,
47 Duke3DUrl,
48 QuakeUrl,
49 PuzzFontsUrl,
50 Wolf3DUrl,
51 XWorldUrl,
47 ReleaseUrl, 52 ReleaseUrl,
48 ReleaseVoiceUrl, 53 ReleaseVoiceUrl,
49 ReleaseFontUrl, 54 ReleaseFontUrl,
diff --git a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
index 843fa63cad..ffc5d98d72 100644
--- a/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/rbutil/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -483,22 +483,51 @@ void SelectiveInstallWidget::installThemes(void)
483 } 483 }
484} 484}
485 485
486static const struct {
487 const char *name;
488 const char *pluginpath;
489 SystemInfo::SystemInfos zipurl; // add new games to SystemInfo
490} GamesList[] = {
491 { "Doom", "/.rockbox/rocks/games/doom.rock", SystemInfo::DoomUrl },
492 { "Duke3D", "/.rockbox/rocks/games/duke3d.rock", SystemInfo::Duke3DUrl },
493 { "Quake", "/.rockbox/rocks/games/quake.rock", SystemInfo::QuakeUrl },
494 { "Puzzles fonts", "/.rockbox/rocks/games/sgt-blackbox.rock", SystemInfo::PuzzFontsUrl },
495 { "Wolf3D", "/.rockbox/rocks/games/wolf3d.rock", SystemInfo::Wolf3DUrl },
496 { "XWorld", "/.rockbox/rocks/games/xworld.rock", SystemInfo::XWorldUrl },
497};
486 498
487void SelectiveInstallWidget::installGamefiles(void) 499void SelectiveInstallWidget::installGamefiles(void)
488{ 500{
489 if(ui.gamefileCheckbox->isChecked()) { 501 if(ui.gamefileCheckbox->isChecked()) {
490 // check if installed Rockbox has doom plugin. If not disable doom. 502 // build a list of zip urls that we need, then install
491 if(!QFileInfo(m_mountpoint + "/.rockbox/rocks/games/doom.rock").exists()) { 503 QStringList gameUrls;
492 m_logger->addItem(tr("Your installation doesn't require game files, skipping."), LOGINFO); 504 QStringList gameNames;
505
506 for(unsigned int i = 0; i < sizeof(GamesList) / sizeof(GamesList[0]); i++)
507 {
508 // check if installed Rockbox has this plugin.
509 if(QFileInfo(m_mountpoint + GamesList[i].pluginpath).exists()) {
510 gameNames.append(GamesList[i].name);
511 gameUrls.append(SystemInfo::value(GamesList[i].zipurl).toString());
512 LOG_INFO() << gameUrls.at(gameUrls.size() - 1);
513 }
514 }
515
516 if(gameUrls.size() == 0)
517 {
518 m_logger->addItem(tr("Your installation doesn't require any game files, skipping."), LOGINFO);
493 emit installSkipped(false); 519 emit installSkipped(false);
520 return;
494 } 521 }
522
495 LOG_INFO() << "installing gamefiles"; 523 LOG_INFO() << "installing gamefiles";
524
496 // create new zip installer 525 // create new zip installer
497 if(m_zipinstaller != NULL) m_zipinstaller->deleteLater(); 526 if(m_zipinstaller != NULL) m_zipinstaller->deleteLater();
498 m_zipinstaller = new ZipInstaller(this); 527 m_zipinstaller = new ZipInstaller(this);
499 528
500 m_zipinstaller->setUrl(SystemInfo::value(SystemInfo::DoomUrl).toString()); 529 m_zipinstaller->setUrl(gameUrls);
501 m_zipinstaller->setLogSection("Game Addons"); 530 m_zipinstaller->setLogSection(gameNames);
502 m_zipinstaller->setLogVersion(); 531 m_zipinstaller->setLogVersion();
503 m_zipinstaller->setMountPoint(m_mountpoint); 532 m_zipinstaller->setMountPoint(m_mountpoint);
504 if(!RbSettings::value(RbSettings::CacheDisabled).toBool()) 533 if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
@@ -523,4 +552,3 @@ void SelectiveInstallWidget::changeEvent(QEvent *e)
523 QWidget::changeEvent(e); 552 QWidget::changeEvent(e);
524 } 553 }
525} 554}
526
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini
index bcfd67ee77..a41ca87df5 100644
--- a/rbutil/rbutilqt/rbutil.ini
+++ b/rbutil/rbutilqt/rbutil.ini
@@ -25,6 +25,11 @@ daily_font_url=http://download.rockbox.org/daily/fonts/rockbox-fonts.zip
25; other 25; other
26manual_url=http://download.rockbox.org/manual/%MANUALBASENAME%.%EXTENSION% 26manual_url=http://download.rockbox.org/manual/%MANUALBASENAME%.%EXTENSION%
27doom_url=http://download.rockbox.org/useful/rockdoom.zip 27doom_url=http://download.rockbox.org/useful/rockdoom.zip
28duke3d_url=http://www.fwei.tk/pub/rockboxgames/duke3d.zip
29quake_url=http://www.fwei.tk/pub/rockboxgames/quake.zip
30puzzfonts_url=http://www.fwei.tk/pub/rockboxgames/sgt-fonts.zip
31wolf3d_url=http://www.fwei.tk/pub/rockboxgames/wolf3d.zip
32xworld_url=http://www.fwei.tk/pub/rockboxgames/xworld.zip
28rbutil_url=http://download.rockbox.org/rbutil/ 33rbutil_url=http://download.rockbox.org/rbutil/
29 34
30; [platforms] is used to determine the order in the device tree. 35; [platforms] is used to determine the order in the device tree.