Commit graph

1345 commits

Author SHA1 Message Date
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
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
a05d061aa3 rbutil: Pass isysroot to rbutil libs on macOS.
On macOS we pass the full path to the compiler. On recent versions this
causes the compiler to not find its SDK path, this needs to get passed
via the isysroot option.

Change-Id: Iea2820e1755cc80e12691119dfa31d70938ea511
2020-10-18 19:16:27 +02:00
Dominik Riebeling
2037b837f8 sbtools: convert crypto to libtomcrypt.
Replace the use of crypto++ with tomcrypt, which is much smaller and C.
This gets rid of various build issues for systems that don't ship
crypo++ (i.e. everything except Linux.)

Change-Id: Ic0799e17b94935c71b14765cf9a2a7ea2b0adc7a
2020-10-18 19:08:32 +02:00
Solomon Peachy
cd721754d0 Fix configure target name for the erosq/k series.
Change-Id: Ic114d8d26209d37133ffa48d232ab278a0309dcd
2020-10-16 21:16:13 -04:00
Solomon Peachy
1b110daf08 rbutil: Add in the EROS Q / EROS K and clones
Change-Id: I0b482542fc15af3abbaf7a132ee56414a2bd3231
2020-10-17 01:02:16 +00:00
Solomon Peachy
318229e742 rbutil: Fix incorrect USB IDs for the xDuoo X3ii and X20
Change-Id: I0d16189d236a8589ff51d93d1eeabed3cfe751da
2020-10-16 15:31:05 -04:00
Dominik Riebeling
5efaa9ef80 rbutil: Use globalPos() for getting mouse position.
globalX() / globalY() are deprecated for Qt6. Use globalPos() instead,
which gives the same result.

Change-Id: Ie0b733b88107e971de9c3e8c42434d7d47a65b76
2020-10-11 18:05:21 +02:00
Dominik Riebeling
c8fa53050d rbutil: Add project file for building multiple binaries.
To use ipodpatcher and sansapatcher as external binaries (so we can do
proper permission elevation) we need to build them using qmake as part
of the main build. Add a subdirs template based project file to do that,
and project files for the patchers.

Move Linux appimage rules one level up, since it needs to include the
patchers as well.

Change-Id: I63ee59372668f4319402df65a77a6f04521d133b
2020-10-11 09:42:13 +02:00
Dominik Riebeling
cd192f239b rbutil: Fix encoding of turkish translation.
The file encoding was messed up long ago. Since the translation wasn't
updated since reimport the original patch (FS#8407).

Change-Id: I93e12fbde4f63926d18df382c0254465b11750cd
2020-10-11 09:42:13 +02:00
Dominik Riebeling
74258fca31 rbutil: Replace sysinfo filesystem cluster size with type.
The cluster size isn't too useful. Show the filesystem type instead,
since that makes it easier to identify a device not showing up because
of its filesystem type.

Change-Id: I8f58ea23ab90808ab0c37978b211a5470ed8bb8e
2020-10-04 11:31:30 +02:00
Dominik Riebeling
728299e322 rbutil: Fix unnecessary implicit cast.
Change-Id: Id05220a700eb826d38023575b02f568b1c1a7580
2020-09-30 21:12:50 +02:00
Dominik Riebeling
c8f79d31b1 rbutil: Add postinstall hint for rocker and xduoo player.
Change-Id: I4f679228a354019d830afbbd402db566abd743d3
2020-09-30 21:12:50 +02:00
Dominik Riebeling
201e9bcde8 rbutil: Fix some minor issues found by clazy.
Change-Id: I0e63df09caf959dcb325c6ad2297c4348388a831
2020-09-27 10:57:58 +02:00
Dominik Riebeling
f1f72ff8df rbutil: Code cleanup.
- Fix naming.
- Remove non-functional functionality to set cache folder.
- Use URL filename part when copying the file if target filename is not set.

Change-Id: Ic9af59300f06d4309c6a4c9542d4f6079dd841c3
2020-09-27 09:28:21 +02:00
Dominik Riebeling
0b5f0b9284 rbutil: Fix Xduoo bootloader installation.
- Don't try to unzip the bootloader file if we're actually looking for a
  zip file.
- Fix wrong bootloader file name for X3.
- There's no QThread::terminated() signal, don't connect it.

Change-Id: Iebfcc61d644c8443b60d9b37f4932d7b46098465
2020-08-23 16:55:28 +02:00
Dominik Riebeling
e0021744cf rbutil: Fix wrong fall-through.
Fortunately it didn't break anything.

Change-Id: Ie1f2bff73dbc61ec9f454ce7b61aaad74424fd06
2020-08-21 21:31:44 +02:00
Dominik Riebeling
2aecb3b9ea rbutil: Use a non-zero default value for status.
When resolving the status values downloaded from the server use a
negative value as default. Since 0 is the default in QSettings but now
considered as "retired" a missing status value would make that target
appear as retired instead of unknown status.

Change-Id: I23567413c5c3d5828fca7f9c5a29e2037e8614cf
2020-08-21 21:31:44 +02:00
Dominik Riebeling
94eb1df58b rbutil: Logger Qt6 fixes.
Fix various issues with building CuteLogger with Qt6.

Change-Id: Iceac8f8a19f6703868c5a41b725d3cd69c724239
2020-08-16 12:37:02 +02:00
Dominik Riebeling
cd352d9052 rbutil: QString::split() changed with Qt 5.14.
Avoid a deprecated warning, and make it compile with Qt6, which removes
the old version.

Change-Id: Iaad10660a0c8bda9d7aa52ee250489ed135bd8a8
2020-08-16 12:15:14 +02:00
Dominik Riebeling
d5820ff779 rbutil: Qt6: allow building without Multimedia module.
Qt6 beta doesn't include the Multimedia module. Allow building without,
and disable on Qt6 for now.

Change-Id: Ie2ad25c81d9c62c8c6e8efaf8309b3600afce1d0
2020-08-16 12:14:30 +02:00
Dominik Riebeling
7c9a7ed406 rbutil: Initial Qt6 support.
Qt6 replaces QTextStream::setCodec() with QTextStream::setEncoding().

Change-Id: I4cfa90d89f54ad49d061ad859585a2a74b5f9786
2020-08-16 12:14:02 +02:00
Dominik Riebeling
9cd37337de rbutil: Fix various warnings.
Replace use of deprecated APIs with their replacements, and fix some
other minor warnings.

Change-Id: I3f63e0bd91b96ce86ce39c087fe0040fc226d16d
2020-08-16 12:13:28 +02:00
Dominik Riebeling
b1332d974a rbutil: Fix compile warning in unit test.
Change-Id: Ieb97a6079a70095f7531a90d7117ddf7bfc50afd
2020-08-16 12:12:48 +02:00
Dominik Riebeling
48d2927ecc rbutil: Update CuteLogger to most recent upstream.
Update to the most recent git version.

This changes the folder structure and renames some classes to follow
upstream.

Restore MSVC static link fix, and fix wrong variable in qmake project file.

Change-Id: I874bb9ed60e37af09a841988e771fd341414d145
2020-08-08 10:01:42 +02:00
Dominik Riebeling
c425d4627e rbutil: Drop Qt4 support.
The last version of Qt4 was released in 2011, time to officially move to
Qt5.

Change-Id: I57d2261bfa44ec824ef4a406f60ce1bd9bc52589
2020-08-08 10:01:42 +02:00
Dominik Riebeling
d7bbf8a477 rbutil: Use QElapsedTimer for measuring time.
The timing functions in QTime are deprecated and have been removed for
Qt6. Use QElapsedTimer, which is the replacement for this.

Change-Id: Ib262753fe99aff83f1952337eb64cd44439cafdd
2020-08-07 22:18:41 +02:00
Dominik Riebeling
2fe046c380 rbutil: Drop support for libusb0.
libusb1 is maintained and stable since years. No need to keep the old
implementation around.

Change-Id: I25a4c5643fc9a88eaad3e8f2f7e1dd705be080e0
2020-08-07 22:18:41 +02:00
Dominik Riebeling
729b6e4f33 rbutil: Update libmspack to 0.10.1alpha.
Update to the most recent release. Fix name / include clashes, as has
been done before.

Change-Id: Ia712bb2b5f4b9018b65a46b8bdd04ba42363be8b
2020-08-07 22:18:41 +02:00
Dominik Riebeling
b0f22620a2 rbutil: Update quazip to release 0.9.1.
Update to latest quazip release.

Change-Id: I03189ceeadbe3110a9420153d84bd5d33d5b663f
2020-08-07 22:18:41 +02:00