Commit graph

34958 commits

Author SHA1 Message Date
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
James Buren
1bc68d5ad7 h1x0/h300: change when the hold switch and failsafe are used
After reviewing the code awhile I realized that the failsafe and hold
switch have no impact on the boot process when the usb or charger is
connected. That makes no real sense to me. If these are connected then
neither will be used at all. The boot process will never revisit it
either once those other modes end and resume the boot process. It will
just continue to try to boot from disk as if these emergency settings
never existed.

I have decided it makes more sense for them to be evaluated once the
higher priority charge and disk mode have finished their roles. Given
how the code was originally written it seems to be they were not
intended to run prior to these at the very least since the logical
conditions preclude that possibility as they include the inverse of
the conditions that trigger the charge and disk modes.

Change-Id: I0531c97474572c573178f480c239c3c1659f9653
2020-11-15 11:01:53 +00:00
James Buren
fc5c8192ff h1x0/h300: fix h300 bootloader hold switch check
This fixes an early boot bug on the h300 where hold_status is
read before it has a chance to properly check whether the hold
switch is even active. This was accomplished by porting over
the method the h1x0 uses to perform the same check.

Change-Id: I04679d82f65a2edcbee4be9a146437c3988040a2
2020-11-15 10:11:56 +00:00
James Buren
29a20bd209 h1x0/h300: consolidate a few code paths to logical equivalents
This saves a few bytes of precious space by consolidating paths where
they can be combined with no change to the underlying algorithm.

Change-Id: Ie6b7ead190a87d66fcbdcf2e351010bab751d952
2020-11-15 09:49:03 +00:00
Moshe Piekarski
3ef8455626
Remove some SWCODEC artifacts
Change-Id: I580522bc0ec3bc86c24400625d7d9cde2eea8fc8
2020-11-14 19:20:33 -05:00
James Buren
c10eea46a9 iriver_flash: add macros to reduce the rom chip table
The table is now gated by the FLASH_SIZE macro as any given
target will not have a known rom chip of a differing size
than the FLASH_SIZE. This will reduce the resulting code
a bit as well.

Change-Id: I06a283f9f44118080a106e1bcd410e81e0a48d92
2020-11-14 23:21:15 +00:00
James Buren
7d9ac021b5 h1x0/h300: bring the two bootloaders more in sync
The most major change here is the porting of the failsafe boot
menu and eeprom settings support from the h1x0 bootloader to the
h300 bootloader. This has been successfully tested already and
indeed works about the same as it does on the h1x0 bootloader.

The other major change is the addition of new code to both
bootloaders that will retry the flash boot function after
exitting disk mode. It still falls back to booting from disk
if this either fails or is not configured to boot from flash.

There were also various other modifications to bring the two
closer in sync so there are fewer differences.

Change-Id: I17a5724e03225b57e9d0071387294aa6cd025178
2020-11-14 23:20:43 +00:00
James Buren
33d42c20de iriver_flash: do not let the backlight timeout while running
I discovered it was doing this on the H300 during longer operations
and I freaked out at first. This disables this feature until the
program is finished so as to not give anyone else an unnecessary
fright while using it. It will also cut down on frivilous reports.

Change-Id: I0db406912c7f71835576203a540aba8910afa849
2020-11-14 18:47:12 +00: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
James Buren
aaa9a2ccee h1x0/h300: clean up the bootloader source a bit
First this removes most of the conditionals for the CPP as they
are always true for the targets that use the bootloader source.

Second this moves some global variable references around to reduce
some redundancy in the h1x0 bootloader source.

All of this is done to make it easier to compare the two bootloaders
as they are very heavily related to each other.

Change-Id: I7eb4a3106fb9fce6059797310d9e053a3d3ecf63
2020-11-14 14:29:18 +00:00
James Buren
37eabbfe51 h1x0/h300: remove trailing whitespace from bootloaders
Change-Id: I8f3bfbc8287c8f520894e0cd258066d4c7a02197
2020-11-14 14:16:42 +00:00
James Buren
5a223080fa h300: enable usb charging for charge mode and disk mode
This enables USB charging when the bootloader is in charge mode or
disk mode. As a byproduct there is a small change in behavior where
charge mode is all that is available if it is triggered by the USB
cable insertion. Disk mode only becomes available if the user requests
to continue the boot process by pressing the power button. It had to be
done this way as there's no way to tell this early whether the user
wants to simply charge or trigger disk mode as well.

Change-Id: I32f29398b22a76e5e754efdc9beecae39dd122d5
2020-11-14 12:11:30 +00:00
James Buren
d5a2aeb6c4 rockbox: revise charger_inserted and power_input_present functions
This makes it so the thread cached variable is only read if building
the regular firmware. For bootloaders the data is now read directly.

This fixes the functions for bootloaders so they do not have to import
the power management code just so these functions will work when in
the bootloader.

Change-Id: Ic425b02c08b48df7a11a6c19c022b0e1cb316a85
2020-11-14 11:57:32 +00:00
Solomon Peachy
03cd773051 ibasso: Hopefully hack usb into building again.
Change-Id: I6f369d60319704ab4d2c18b80ba6e78902630790
2020-11-13 20:04:04 -05:00
William Wilgus
43f90746d5 synclist add method for setting selection color
Change-Id: I8c8761d92f4fc99f65d45098ee6e97800d3fe002
2020-11-14 00:01:39 +00:00
Solomon Peachy
610ad6f6e3 ibasso: Fix red introduced in 60f581e
Change-Id: I9095e9e9213dde252de836851b743001b9483a1b
2020-11-13 18:17:00 -05:00
Solomon Peachy
60f581e8f5 usb: Add ability to prompt user about what to do upon usb insertion
v3: Add in config option
 v4: Bugfixes
 v5: Force a redraw upon exiting
 v6: keypress-in-chargeonly mode enables mass storage (and vice versa)
 v7: Fix bootloader builds
 v8: Update manual, and have bootloader respect keypresses
 v9: Change default to mass storage (ie no change in behavior)

 todo:
  * test-build dx50/dx90
  * Switch from yes/no to proper menu?
  * prevent WPS progress bar from drawing over us

Change-Id: I82e0ccb08497b7a5aa756ce77f1332ee963703a7

...

Change-Id: I7946cf240b18a4fa8ace5e25e1eb6e97b8b12d7c
2020-11-13 16:44:01 -05:00
Solomon Peachy
fc4fff0b81 builds: Enable German voicefile generation in the nightly builds
Change-Id: I4881b30757027bbaa64d3f9b07146ceb478f3dbb
2020-11-13 21:40:58 +00:00
William Wilgus
6c3cc1cbb9 Skin_engine optimize element switches
it takes a lot of code to check validity and dereference a pointer for every numeric tag branch in get_token_value

apparently about 900 bytes actually

Change-Id: If463e755e9bbc73cbd4a02441572d22df9206121
2020-11-13 19:14:56 +00:00
William Wilgus
47e1f96427 Bugfix Backlight_init should be called after lcd_init
the rest..

Change-Id: I50585ba2191aa8134de3045b1445859b27503a68
2020-11-13 13:57:39 -05:00
William Wilgus
f65fb2a64a h300, Others Bugfix Bootloader backlight_init()
backlight_init needs to be called after lcd_init when using
lcd_enable()

Change-Id: Id034835c903801fea49e2b972c110c1ec5106976
2020-11-13 18:08:01 +00:00
James Buren
8ac46f844f h300: fix one long-standing bootloader bug
This was introduced in e13c600133 back
when the author was trying to optimize the LCD code with DMA. For
whatever reason this broke the bootloader for the last 10 years or so
and no one could figure out why. This is now fixed.

However the bootloader is still currently broken in HEAD due to recent
changes to the LCD code. A fix for that is not yet known.

Change-Id: I046d53f9f391f558c391f2fadb6b260fe3be4d92
2020-11-13 18:08:01 +00:00
Moshe Piekarski
362f7a3220 Quickscreen: don't apply glabal settings
Change-Id: I4de0e35b4c3227513f9c384bc0e01bc468999317
2020-11-12 21:23:57 +00:00
Solomon Peachy
b912ad5088 plugin: Un-export find_next_frame()
No in-tree users

Change-Id: I898623253e43507e9fb9df965be45568ff33880d
2020-11-12 16:23:27 +00:00
Solomon Peachy
388adff3cc pcm: Further cleanup of unused bits of the PCM ACPI:
* pcm_get_bytes_remaining()
 * pcm_calculate_peaks()
 * pcm_get_peak_buffer()

Nothing in-tree uses these at all (except for the lua plugin wrapper)

Change-Id: I971b7beed6760250c8b1ce58f401a601e1e2d585
2020-11-12 15:59:09 +00:00
William Wilgus
1a68856f52 Rocker Add WPS and Tree Hotkey, button codes in debug menu
VolUp+VolDown becomes the wps and tree (file browser) hotkey

Change-Id: I0cba96927420c318506bc0c15dabcb809cd81647
2020-11-12 01:22:32 -05:00
Igor B. Poretsky
4e5499606b Russian translations update
Change-Id: I9fbc26afba11dfc170abefd11bd28492f04009b0
2020-11-11 22:25:51 -05:00
Igor B. Poretsky
b7560ce0af Czech translations fix
Change-Id: Iafd2cb15a2935654e6a13489180bea31efbe54a0
2020-11-11 22:25:47 -05:00
Igor B. Poretsky
b8ada839ee Voice strings fixes
Change-Id: I27729b57ee6070443d3c98852812ae6d7581d8f8
2020-11-11 22:25:39 -05:00
Solomon Peachy
869a8bfbe7 YesNo: Clear the button queue so a latent keypress doesn't skip the prompt
Change-Id: I055db211f3cceb38b2df00177451c08a3da33426
2020-11-11 15:39:06 +00:00
James Buren
4aa749b59d iriver_flash: refactor code to be easier to understand
This overhauls most of the code to be easier to understand in terms
of the interactions with the flash. I found the original to be rather
confusing with how it kept switching between byte and word offsets.

My solution was to make all external access to the flash in terms of
sectors and bytes. Whatever the flash uses internally is now handled
by the subroutines for performing the erase, program, and verify
operations.

This helps make it far more consistent for the code that actually uses
these operations as they do not need to concern themselves with word
sizes and offsets anymore.

As a side effect of this change the flash operations are now done
entirely by subroutines; even the batch operations that used to use
custom loops.

Additionally some functions were merged with other functions in order
to reduce the amount of functions as well as consolidating common
code fragments.

Change-Id: I4698e920a226a3bbe8070004a14e5848abdd70ec
2020-11-11 13:30:09 +00:00
Moshe Piekarski
c4254d10fc Fuze+: Fix misplaced rectangle when lcd_flip set
Change-Id: Ic5197d8dffd66cfefdb42242869b48b33aa4d042
2020-11-08 03:19:04 +00: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