Commit graph

1841 commits

Author SHA1 Message Date
Dominik Riebeling
e8f8df4ee0 rbutil: Update Iriver h100 / h300 series bootloader paths.
The patching code now requires the new version 8.0 bootloaders.

Change-Id: I7bf26db2e0858523740c43e57863eb9480a93548
2020-11-22 14:52:46 +01:00
Dominik Riebeling
1b9eebb39d rbutil: Update Windows application icon.
Bring it in line with the other icons and always show the same image,
regardless of size.

Change-Id: I93f562fad168975f58064fdd64c42874f496cce6
2020-11-22 14:43:01 +01:00
Dominik Riebeling
ba2bbd60bd rbutil: Move Manual installation to main tab.
The manual tab didn't show the manual, so it's clearer to have that as
part of the main tab.

Also fixes the wrong manual getting downloaded for releases.

Change-Id: I5d4a287102af037f94f0de8464e025d9ff5f76ed
2020-11-22 14:43:01 +01:00
Dominik Riebeling
5f36aed4bf rbutil: Unify template parameter for release version.
Don't use different parameter names for the same parameter.

Change-Id: I3800d2ed7dcecf76b111b15945d62449efa70bcc
2020-11-22 14:43:01 +01:00
Dominik Riebeling
dfe9d63640 rbutil: Modernize connect() to new pointer-to-member syntax.
Change-Id: I984ce56b5b45bbe705ac178cfe26cbc8b0d7e9d2
2020-11-22 14:43:01 +01:00
Dominik Riebeling
1a3d12ceea rbutil: Don't try to install voice file if it's not available.
Change-Id: I42f70d6cf76298216bb626fd0fe760c0ce0a9835
2020-11-22 14:43:01 +01:00
Dominik Riebeling
0d2257d1f7 rbutil: Replace stringly types build type handling with enum.
Avoid having to repeat the same strings for lookup again and again and
use an enum instead, which is also less error prone.

Change-Id: I6ee8393948dbce97cb53850a6d8bdc4de12b4167
2020-11-22 14:43:01 +01:00
Dominik Riebeling
c2dacf6736 rbutil: Add voice installation to main widget.
Add checkbox for installing the prerendered voice file to the main
install widget. Current limitations:
- only english for now. The available languages are available from the
  build server but are not yet taken into account.
- only for releases. This is the same limitations we had before. We do
  have voices for daily builds, but that requires adding daily builds
  again (those have been removed some time back.)
- Old voice installation dialog still present.

Change-Id: Ia6443b0f15365196df86cc1b64d5e043dff70c4c
2020-11-22 14:43:01 +01:00
Dominik Riebeling
ad37655687 rbutil: Use pattern replacement for SystemInfo build type.
Use pattern replacement for lookup instead of expanded values. Will
allow simplifying things later for better handling of different build
types.

Change-Id: Iaad67a6c8654d27c3206cf95a379acab169565bc
2020-11-22 14:43:01 +01:00
Dominik Riebeling
efacce58eb rbutil: Modernize connect() to new pointer-to-member syntax.
Change-Id: I6bb86e34438eef10813f0d19e910599156a876e6
2020-11-21 10:21:31 +01:00
Dominik Riebeling
f29b81d521 rbutil: Avoid creating temporary object.
There's a static function for that.

Change-Id: I5d07d73368f20167bb45f5b0df510be6d4227109
2020-11-19 21:32:41 +01:00
Dominik Riebeling
fb6840e572 rbutil: Remove done() signal from Themes Install window.
This shadows a slot from the base class. Since it isn't used simply
remove it.

Change-Id: If2e524141b7ca4ab1083b4b713b2db3a0b25e6a6
2020-11-19 21:32:41 +01:00
Dominik Riebeling
12764781c6 rbutil: Modernize code to use C++11 nullptr.
Change-Id: I112cf95122a896cdb30a823b4c1f49831273dc7e
2020-11-19 21:32:41 +01:00
Dominik Riebeling
f608de723c rbutil: Convert ServerInfo to singleton.
Change-Id: I29d94eb6bae084754e5e3f337c41de8354ba123c
2020-11-19 21:32:41 +01:00
Dominik Riebeling
f8fb4274ee rbutil: Rework server info data handling.
Remove map that isn't used anymore.

Change-Id: I771a98c9b64f3dac36e71041c566b89fbea51e06
2020-11-19 20:53:32 +01:00
James Buren
84086af957 update fwpatcher and rbutil checksums for iriver h1x0/h300 V8 bootloader
Change-Id: Icf6bc96889fbe682832a99882c5d66c832ffb2f7
2020-11-16 20:51:11 +00:00
Dominik Riebeling
dec5421ca2 rbutil: Rework server info data handling.
Return status as int, not as string, and provide a separate function for
converting to string. This allows to filter based on the actual status,
not a (localized) status string, which is more robust.

Fix a regression that made players with missing status value show up as
retired.

Change-Id: I15f83ae0df484199b1b3b5b95069db8b4d425987
2020-11-15 21:55:34 +01:00
Dominik Riebeling
af766ae10e rbutil: Fix style warnings.
Change-Id: I1ddcff60488b2926206309c9ef62f5f9d330da33
2020-11-15 21:25:51 +01:00
Dominik Riebeling
6c2780e709 rbutil: Rework server info data handling.
Allow constructing release candidate URL from configuration the same way
we construct the URL for releases.

Note that the server path used does not exist, taken from old release
candidate builds not available anymore.

Change-Id: I7332f08df05ed39724b4900556aaa1f5e0ba463b
2020-11-15 21:24:51 +01:00
Dominik Riebeling
9bb60b7d85 rbutil: Rework server info data handling.
Allow extracting release candidate version even if no URL is present.
Avoids a special case for version handling.

Change-Id: If496d30059c3181899ab9337a35a07b39eaef52e
2020-11-15 21:06:33 +01:00
Dominik Riebeling
104ff3433a rbutil: Rework server info data handling.
Don't create our own in-memory map with server data. Instead use the
configuration file retrieved from the download server, and do the
resolve / replacement on the fly.

Simplifies things, and prepares for cleaner handling for different build
types.

Change-Id: Ifd027b21486e402fda3df9c2f7a30264651f733d
2020-11-15 21:01:36 +01:00
Dominik Riebeling
2b2a7b9ae3 rbutil: Simplify manual download URL handling.
- Don't construct the URL directly. The ServerInfo already has it, use
  that instead.
- Don't manually construct the output filename. ZipInstaller will use
  the server filename automatically.

Change-Id: Ib44616daf5efc95b238418b6e699ccd56c40b011
2020-11-15 18:52:10 +01:00
Dominik Riebeling
687edc1866 rbutil: Extend test for ServerInfo.
- Further extend stubs, pull in less non-stubbed implementations.
- Change some test URLs to make sure the code actually uses the correct
  ones.

Change-Id: Iac1d683748b5834e61aa4974d1b893b77f90b517
2020-11-15 14:22:57 +01:00
Dominik Riebeling
cb71e2154c rbutil: Extend test for ServerInfo.
- Add tests for missing info values.
- Extend stubs, pull in less non-stubbed implementations.

Change-Id: I9a349f0eafe65811de37418c141fb581b6d9f59a
2020-11-15 14:22:57 +01:00
Dominik Riebeling
7d1078a9d5 rbutil: Fix unit test.
Change-Id: I0d1a33190d6590687d9e6eadd86a7ab8d8f877df
2020-11-15 14:22:57 +01:00
Dominik Riebeling
be1be797b2 rbutil: Rework player configuration.
Rename config entries and remove now unnecessary default value handling.

Change-Id: I5c60ef9769fc01f45f45290dafffb80c1962e674
2020-11-14 16:42:29 +01:00
Dominik Riebeling
2509def164 rbutil: Rework player configuration.
- Split internal configuration into player specific and common parts.
  Always require passing the player for player specific data instead of
  implicitly assuming the currently selected one; only use the currently
  selected one if the player name is explicitly passed as empty.
- Similarly adjust handling of server info data; prepare for splitting
  into build type specific values so the naming becomes cleaner.

Change-Id: I894e694f83bd9fe2d22ad46b3f8f7df3e2c68033
2020-11-14 16:42:29 +01:00
Dominik Riebeling
440083af87 rbutil: Show HTTP error string on download failure.
Also show the error string, which usually is more helpful than just
showing the HTTP error code.

Change-Id: I0652d240147c0f64a7a9ea58765af9eb197a03b1
2020-11-14 16:42:29 +01:00
Dominik Riebeling
9fcdb44e55 rbutil: Show the license of all libraries included.
Replace the Speex license tab in the about dialog with one that lists
all used libraries and their respective licenses, including Speex.

Previously only Speex required including the license in binary
distribution; the recently added bspatch also wants this. Show
the license for all used libraries so we can more easily add new ones in
the future.

Change-Id: Ic8b403f8a2a05d0f1734ddf092782b85ddfa5ed9
2020-11-07 21:48:56 +01:00
Dominik Riebeling
db7c4424e4 bspatch: Store license text in separate file.
Allow to easily show the license by having it in a separate file.

Change-Id: I6776e6aa2bdfe138460c9bd29bc8650ffa36710c
2020-11-07 21:48:50 +01:00
Dominik Riebeling
4820072a42 bzip: Add missing license to our copy of bzip2.
Change-Id: Ifdc87c72f3ea3f846e5d2b60586517fe4980d5cf
2020-11-07 21:48:13 +01:00
Dominik Riebeling
ba34b0fac3 rbutil: Modernize HttpGet implementation.
- Change signal-slot connections to new style, and fix renamed signal
  for Qt6.
- Make more use of RAII.

Change-Id: I14e52eb6bfdbb89bccafb33e4988af25b5d82713
2020-11-07 12:50:33 +01:00
Dominik Riebeling
4815a64f93 rbutil: Explicitly enable svg module.
Since most icons are svg now we need this. Linux implicitly enables it,
Windows doesn't.

Change-Id: Idbc0610c9ca3c0ceddd48a2af7e71d5348ba10f6
2020-11-07 12:50:27 +01:00
Dominik Riebeling
87325ff957 rbutil: Enable HiDPI support on MacOS.
Since we provide our own Info.plist file we need to enable HiDPI support here.
2020-11-07 11:34:12 +01:00
Dominik Riebeling
2e6a0df40e rbutil: Enable HiDPI support on recent Qt versions.
Change-Id: Iafafacbac93304e1dd955dab0d8cba78a9622f6e
2020-11-07 11:33:58 +01:00
Dominik Riebeling
2e96657c36 rbutil: Replace most icons with their svg variant.
Replace png icons with svg ones for better HiDPI support.

Change-Id: Ifcd5e551dfb764f57324d27741598181ce3acce2
2020-11-07 11:33:21 +01:00
Dominik Riebeling
4f1888dfc8 rbutil: Redo MacOS application icon.
Don't use different icons depending on the display size and recreate properly
including all scaled formats.
2020-11-06 21:24:31 +01:00
Dominik Riebeling
f9d8a0e210 rbutil: Simplify qmake check.
Change-Id: I68f2584ba246f120af8841d1a4141b71c9e3b5c0
2020-11-06 21:22:54 +01:00
Dominik Riebeling
6bc737cb1d rbutil: Enable use of libmp3lame on macOS.
Since we're now automatically falling back to using the command line
lame if we cannot load the library we can enable it on macOS as well.

Change-Id: I0df1bb4a011d019a340fe54f1db6fc4645f9081b
2020-11-06 21:13:39 +01:00
Dominik Riebeling
07604d62ab rbutil: Command line fallback on libmp3lame failure.
When loading libmp3lame fails fall back to using the command line lame.
Avoids an unresolvable error when trying to create voice / talk files
for Archos.
Modernize code a bit.

Change-Id: I2e8fd5786fda972cb24adbcb9ced531e08093b4f
2020-11-06 21:13:32 +01:00
Dominik Riebeling
f9ba96cade rbutil: Remove unneeded includes.
Change-Id: I20cde7201617481124905334e2adfb7f00f4fd21
2020-11-01 13:23:22 +01:00
Dominik Riebeling
1fa826738d rbutil: Simplify extenal encoder binary handling.
We only use lame as external encoder for voice on the Archos targets.
Simplify the implementation by removing (unused) handling of (potential)
other encoders.

Change-Id: I175cc21868fb7ef9524247d78cfb7bdf65e9e162
2020-11-01 13:23:22 +01:00
Dominik Riebeling
5aa7245077 rbutil: Create more fancy dmg on macOS using dmgbuild.
Add target to build a dmg containing Rockbox Utility, ipodpatcher and
sansapatcher as single app bundle, and create a more fancy dmg using
dmgbuild.

Change-Id: Idb36776c05f820afc98efecf45a011dc75a13c31
2020-10-31 19:20:36 +01:00
Dominik Riebeling
96f82f828a rbutil: More Qt6 compatibility.
Qt6 doesn't contain QTextCodec anymore but instead provides it in the
optional core5compat module.

Change-Id: Ia45985a32df3826faf041981b8935c839946e5c9
2020-10-29 21:28:29 +01:00
Dominik Riebeling
4594541b5f rbutil: Simplify search.
No need to get keys from the map to search a key, we can check directly.

Change-Id: Ia96286e441c3d03864bd7b152065576d26acad87
2020-10-29 21:28:28 +01:00
Dominik Riebeling
2d62f2d017 rbutil: More Qt6 compatibility.
Replace QProcess::pid() which has been replaced with
QProcess::processId() starting with Qt5.3 and removed from Qt6.

Change-Id: I9b2d38f8e490e2e4c0afb5cbb409f6a17a98efbd
2020-10-29 21:28:28 +01:00
Dominik Riebeling
86420bbe2b rbutil: Remove unused assignment.
Change-Id: I6445e13472ae856acda1890056fd933d7d810bd5
2020-10-29 21:28:28 +01:00
Dominik Riebeling
1e12990ba9 rbutil: Rename libbzip2.a to libbz2.a.
When cross compiling for Windows (at least mxe) links bz2, causing both
our copy and the system one getting linked, resulting in symbol clashes.
Make sure we use the same name as the system one, so the linker can pick
one of both.

Change-Id: I16213a20f48d4e192cd0b756931f9ccb449fd1c0
2020-10-22 19:20:48 +02:00
Dominik Riebeling
ce3da6238f rbutil: Fix linking zlib on Windows.
With Qt4 zlib was linked implicitly (and explicitly linking it caused
errors). This was a Qt issue that has been resolved with (at least
current) Qt5, now we need to explicitly link zlib on native Windows.

Change-Id: Ia5a6bdc83a39f6f5629c34ed835d2272a887f161
2020-10-21 21:33:39 +02:00
Dominik Riebeling
1801dcc999 rbutil: Fix native Windows build for tools.
- When make on Windows finds sh.exe it will try to use that. We use
  cmd.exe calls when detecting Windows, so make sure we use cmd.exe as
  shell.
- Add missing Windows compatibility to tomcrypt Makefile.

Change-Id: Iaef133ca27472a5ddf449174d540983f15c66aea
2020-10-21 21:33:39 +02:00