Commit graph

37505 commits

Author SHA1 Message Date
Solomon Peachy
c1bcebd998 FS#9059: Add WenQangYi Unibt font (William Poetra Yoga Hadisoeseno)
Change-Id: I8411349fdfdddf67f0d4a692d35176925498a7f6
2024-10-27 22:04:54 -04:00
Uwe Kleine-König
bf90197717 rk27xx-utils: fix compiler warning on amd64
sizeof(...) has type size_t which is long unsigned int on amd64, and so
the conversion specifier d without length modifier isn't suitable. There
is the length modifier 'z' for size_t arguments, but this is only
available on Linux. So casting to unsigned long and using 'lu' is the
portable fix.

This fixes:
	rkboottool.c:215: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
2024-10-27 11:25:51 -04:00
Franklin Wei
5f4e0b6578 quake: Bail out of out-of-bounds draws
With this Quake should hopefully be able to run at native resolution
on smaller screens.

Change-Id: Ic30c8356eb2fd030a4cf84c54b63c9b688a9c14a
2024-10-27 10:49:23 -04:00
Amaury Pouly
9bd13865b7 imx233: make clkctrl code aware of hbus fractional divider
This is just to display the frequency correctly in the debug menu and prepare
for future use of said divider

Change-Id: Ib4c80ec71b3300bdf17edf6cc590229f7640d0f5
2024-10-27 10:46:28 -04:00
Franklin Wei
655d201cf3 quake: add a bunch more yield calls
Probably a bit too many, but good for making sound not skip.

Change-Id: I6657dcb4e8e7bb32c6550e2c5e3cee74d79b9ebe
2024-10-27 10:23:57 -04:00
Franklin Wei
54b3b6f797 quake: migrate to SDL_mixer and add background music
Kind of skippy and only supports WAV. MP3 would be nice, especially if
using Rockbox's codec.

Change-Id: I0bba195603da32da1e4d1dcf2ee821fa5696824a
2024-10-27 10:23:57 -04:00
Maxime Gauduin
f5d31fc1c4 Add desktop file for RockboxUtility
I am maintaining rbutil in the Arch Linux [community] repo.
There is an on-going effort to remove desktop files from our
PKGBUILD tarballs by either pushing them upstream or creating
them at build time. Relevant bug report:
https://bugs.archlinux.org/task/23387

Change-Id: Ic40cbfe92cf81e33b566ee39e0afea9c6c5d2754
2024-10-27 09:25:55 -04:00
Jean-Louis Biasini
fb93c99ce8 Fuze+: add pdbox plugin
1) Set the compiler to include pdbox
2) Set the keymaps

Change-Id: I75cf9b57ac977f7c727a28a3ed6883f65c5bbb20
2024-10-27 09:24:57 -04:00
Amaury Pouly
b8d35c042d rknanotools: fix rknano stages processing
Change-Id: Ia88f5aa2a6c56b312f80b31afab41d1dc68b871b
2024-10-27 09:12:31 -04:00
Amaury Pouly
d22bb548b2 rda5802: document some registers
This information is available in the RDA5802N or RDA5807 datasheet. I suspect
that register SYSCONFIG6 is not actually used by the tuner. Based on an
obscure statement in the datasheet, I guess SYSCONFIG5 is a frequency in Khz
called freq_direct that offsets the lower band frequency (56/67 MHz) but
1) it is not enabled (FREQ_MODE=0) and 2) it is not clear if this offset is
really just to avoid interference (ie the RF and IF are simply shifted by this
amount) or an actual offset.

Change-Id: Ia469f5370aee7c8c3390324d0cef1193c64df755
2024-10-27 09:10:15 -04:00
Amaury Pouly
977308c95c rda5802: rewrite detection routine
The current code relies on the initial value of some RDS register(which is
documented) but this assumption will be broken when we start enabling RDS.
This commit changes the code to really read the chip ID, although it is more
involved.

Change-Id: I0ed630322a94523612d2f0297dbcbea5f869eb6d
2024-10-27 09:10:08 -04:00
Amaury Pouly
d2dbd36db4 Add atj generator to headergen_v2
This requires a small change to support headers without supports macros. This
generates much simpler macros but disable more advanced macros such as BF_SET,
BF_WR and friends.

Change-Id: Icb5470c3f3e816e83335b4ecfa465be6c26be007
2024-10-27 09:07:59 -04:00
Solomon Peachy
9281ec2e42 Fix red in 3951fbf9d2
...Toshiba Gigabeat S is the only user of the ATA driver with UDMA>2

Change-Id: Ifb854da1c6a8ff1f696b908cc7c1f11d7d10be3f
2024-10-26 17:13:38 -04:00
Solomon Peachy
3951fbf9d2 ATA: Restrict to UDMA2 if we don't detect an "80-pin" cable
Change-Id: I55861065741f3365491445f1f3f5b0041f33e1c6
2024-10-26 15:09:10 -04:00
Solomon Peachy
aea4974b88 FS#13052: Update Italian translation (Alessio Lenzi)
Change-Id: Ica28186177e82b92f4d0f8f395161a16da9c7411
2024-10-26 13:00:43 -04:00
Christian Soffke
04a796fd15 playlist: create_control_unlocked: back up current playlist
When creating a new control file for the current playlist,
the existing file will now be renamed to serve as a backup,
until the next time the control file is replaced again,
allowing you to restore the previous state of the playlist,
in case you accidentally cleared it.

This also means that an entirely new file is created each
time, instead of truncating the existing one.

Change-Id: I2fd96eb8c3940b85df807fd7646dc0359a036351
2024-10-26 11:28:22 -04:00
Christian Soffke
7592d2ca5e playlist: deprecate PLAYLIST_COMMAND_CLEAR
In the following scenario, a garbage file name would
be written to the control file for the playing track
(resulting in a failure to resume correctly):

- "Keep Current Track When Replacing Playlist" option is set
- A track is playing that was not inserted but instead comes
  from a playlist file on disk
- User performs "Playing Next..." -> "Play" on some tracks, so
  that the current playlist is replaced (but leaving the playing
  track queued)
- User saves the playlist while queued track is still playing
  (the offer to remove queued tracks is declined)

The failure occurs because the pl_save_update_control function
assumes that the seek offset for queued files always points into
the control file. Meanwhile, the remove_all_tracks_unlocked
function adds the PLAYLIST_QUEUED flag indiscriminately, even if
a track comes from a playlist file instead of having been inserted.

Theoretically, this could be addressed by adding the playing
track's file name as a parameter to PLAYLIST_COMMAND_CLEAR,
which the track is then updated to point to, unless it
was already inserted (alternatively, we could seek within
the playlist file for such tracks).

Unless I'm missing something, it may be preferable, though, to
get rid of PLAYLIST_COMMAND_CLEAR completely, and instead have the
remove_all_tracks_unlocked function start over with a fresh
control file, into which we insert a single ('P' and) 'Q' command.

This seems to have several advantages:

- When resuming, we eliminate the need to parse and handle all of
  the outdated entries again that end up being cleared anyway
- It is ensured that the control file doesn't rely on the existence
  of a playlist file anymore after the playlist has been cleared
- We can reset the playlist's file name, which should make it less
  likely for the user to overwrite their previous (now unconnected)
  playlist that was still displayed in the Save dialog
- Unrelated bookmarks for the previous playlist aren't displayed
  anymore
- Improved consistency with existing behavior when the "Keep
  Current Track When Replacing Playlist" was disabled.

Change-Id: I41a89295bbac878807d65db9cf67b8a485daf0e5
2024-10-26 11:28:01 -04:00
Roman Artiukhin
cb1346b640 Ignore zero bytes between markers in built-in jpeg decoder
For consistency between built-in and imageviewer jpeg decoders.

Change-Id: I2aab5923ee096b99a7def49dcdc436b872823971
2024-10-23 21:17:35 -04:00
Roman Artiukhin
063b917f69 Codecs: wma: fix parsing album art
We can't assume that album art file starts right after album art type (apparently it can contain also additional info like filename).

Related to FS#12576 (album art is now shown)

Change-Id: I68c7a1dc536ff13a47fb73ea84539b2f7a44265b
2024-10-23 09:10:18 +03:00
Solomon Peachy
a232b1a98d manual: Correct typo in ipod6g-specific doumentation
Change-Id: I520a95a38dfc902c6694a4e9f3c8a641b675045d
2024-10-22 21:11:08 -04:00
Roman Artiukhin
7912bf3bee Fix prev/next folder action leads to immediate ff/rewind
Removed check that was introduced in 54e6bafa. This check doesn't work in WPS as BUTTON_NONE actions come while you still have button pressed. I believe the proper fix for this is already commited in c354e0bd.

Fixes FS#13370

Change-Id: I86e92c296c0bfa42caaed9cb3540e311630daf9c
2024-10-22 16:28:22 +03:00
Solomon Peachy
eb2d596d72 updatelang: Normalize all strings in our lang files to NFC form.
Now no matter how [de]normalized the input strings are, we will
normalize them to the best of our ability in what we use.

This adds a dependencey for Perl's Unicode::Normalize.

Change-Id: I13e275692ea33a463b19f3a499ea06ce1acbb44a
2024-10-22 07:25:41 -04:00
Roman Artiukhin
c354e0bd1f buttons: Don't set wait_for_release for release action
Fixes ignored button press in yes/no screen.
It depends on keymapping - this issue happens if action before wait_for_release is mapped on release action. Something like:
{ ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }

Change-Id: Idc6a57ef7a7daf75c21c9887e07fbefc814b6ae3
2024-10-22 06:52:28 -04:00
Solomon Peachy
5a3d62dabb Translation updates
- chinese-simp: 王吉
 - deustch:      Wilfried Winkler
 - english-us:   Solomon Peachy
 - korean:       Hoseok Seo
 - polish:       Adam Rak

Change-Id: I116ec67161d59293824aa579eba8a6912c06d45a
2024-10-22 06:48:35 -04:00
Roman Artiukhin
f3d6196016 Codecs: wma: don't fail in case parsing errors in album art
Fixes FS#12576 (album art is not shown but file is now playable)

Change-Id: Idc8e1dcf7b5760b4fd37c43913a534ed4eae512a
2024-10-19 10:41:23 +03:00
Christian Soffke
8c1c8597ac plugins: playing time: OBOE
Change-Id: I1c6b73e06ac615db6e764aa54f042ec4e2dee3a2
2024-10-18 06:55:15 +02:00
Solomon Peachy
ac46684d7f janitorial: Use ATTRIBUTE_PRINTF(X,Y) instead of __attribute__((format(printf,X,Y)))
Change-Id: Ia66e7647bdd9e8e1c28b9d8636cae8db82825841
2024-10-17 21:39:41 -04:00
Hinrik Örn Sigurðsson
5c2de0b89c FS#11361: Add string "Disc" for multidisc albums in WPS (Hinrik Örn Sigurðsson)
Change-Id: I8fb6b107242558aadf0fda32f4ad42b16a893b43
2024-10-17 20:35:49 -04:00
Dana Conrad
aa1a74b2a1 erosqnative: bigger system font
Change-Id: I371bc644db3694404e8013959a7e412e6814f8e7
2024-10-17 20:34:23 -04:00
Solomon Peachy
563da70139 ipod6g: Reworking the bespoke ATA driver
ipod6g was configured with SECTOR_SIZE of 4096, but this ATA driver
unconditionally translated these to 512B operations on the actual
storage device.

Rockbox's storage layer already has robust support for "logical sectors
larger than physical storage sectors" through use of
MAX_LOG_SECTOR_SIZE.  So switch to that mechanism, allowing the ipod6g
ATA driver to be simplified.

If we want to support drives with physical sector sizes > 512B, then
we need to port the MAX_PHYS_SECTOR_SIZE logic from the primary ATA driver.

Additional changes:

 * Simplify MWDMA/UDMA selection logic
 * Report CE-ATA mode in debug menu
 * Use LBA48 commands only if drive is over 128GiB.
 * Drop default sleep/poweroff time from 20s to 7s (matching main ATA driver)

Finally, the bulk of the changes are the first phase of a badly needed
style cleanup that made reading this driver a lot harder than it should
be. I intend to split this into a separate patch.

Change-Id: I2feca9fd319c8d6cfb3c2610208970428d2fa947
2024-10-17 20:30:37 -04:00
neofright
9efed5542e Add reset EQ menu option
Change-Id: Ia555359263a42545abe3f1039d7933204be02f6d
2024-10-16 17:20:27 +01:00
Solomon Peachy
9b1a92fe36 Fix up a pile of bad format strings passed into simplelist_addline()
Change-Id: Ic45ea8633a1752b2e01cba2aace55309bcb7480d
2024-10-15 19:13:17 -04:00
Solomon Peachy
a2efbf0589 list: Flag simplelist_addline() as accepting format specifiers
And fix up all the problems I've found so far.

...This will undoubtedly introduce a pile of new warnings.

Change-Id: I868de507a0e9790f289676c198e2977c26755f22
2024-10-15 18:50:35 -04:00
Solomon Peachy
d3b7eba405 debug: Correct formatting when displaying drive size.
Change-Id: I95e9a257dcad548ec4378d01c0f9b4370ebf5318
2024-10-15 18:25:28 -04:00
Solomon Peachy
8daf1f1bfe ata: SSDs: Only check for _legal_ "rotational rate" values
I'm 98% sure that the "byteswapped" value I saw was due to another bug
(bad PIO timings on ipods leading to data corruption) and none of the
growing pile of identify device data files that I have include the
backwards one.

Change-Id: Iea47b7419b120a3c8a282b2e3a8f65b8965356ce
2024-10-15 17:00:46 -04:00
Solomon Peachy
1ece63d054 debug: Log our logical sector multiplier, if enabled.
Change-Id: I077c0a88d8a51d909ff1df1ca79d95c884ba324a
2024-10-15 11:59:35 -04:00
Roman Artiukhin
37652c5e2b imageviewer: jpeg: Fix grayscsale mode with no dithering show black screen
Change-Id: Ib29e3577c59db8e98db1dd5b8e28874a4fbef20f
2024-10-15 17:46:47 +03:00
Solomon Peachy
2f109a7c2a flac: 7th channel decode buffer may not fit into IRAM.
(Fixes failure to compile on nano2g)

Change-Id: Ibe40a18ee74a3ac3ca2ec9dfac478d1fda5d34ee
2024-10-14 13:43:54 -04:00
Solomon Peachy
29f28ad8e6 flac: Implement proper support for 7 channel FLACs
* Allocate buffer for additional channel
 * Proper downmixing

Change-Id: I4190358a93bb328585952affcd42db05b05c19a5
2024-10-14 12:28:07 -04:00
Solomon Peachy
3aef933348 flac: Bump maximum channel count to 7 (FS#13306)
This is actually the root fix for the crash; the fix in
772eff8ca6 didn't restrict it to 2 channels, just sanity
checked the file vs MAX_CHANNELS.

Change-Id: If5a0a9b946a179ad47d6e7955f7c025de3aaaa0e
2024-10-14 11:05:28 -04:00
Christian Soffke
ef19fa4408 plugin load / tagtree retrieval: eliminate storage_disk_is_active check
Since commit e0df995 storage_disk_is_active may be 0
even if there is no disk that needs to be spun up or
device to power on, so it doesn't really make sense
to check for it, anymore, in order to decide whether
to display the loading indicator.

For remaining devices with spinning disks, the noise
or vibration of the disk spinning up may serve as a
sufficient signal when loading a plugin, that the
device isn't frozen. Plus, for the tagtree, search
progress is displayed after 0.5s anyway.

Change-Id: I5791725e2388d7113818a358204968d8a4e6f843
2024-10-14 09:27:26 -04:00
Roman Artiukhin
b8238f7b20 imageviewer: Initial support for JPEG progressive images. Add decoder
Added jpeg decoder jpegp.c using RAINBOW lib. Currently enabled only for pictures not supported by old decoder (as old decoder more optimized for low mem targets)

Someone TODO:
 * Old decoder has optimized downscale logic which new decoder doesn't have (it gives big difference in required memory and time for decoding). This logic should be ported/adapted if possible.

 * Add smooth downscaling.

 * Grayscale support

Change-Id: Ie96bc62848b51cc6a3942f8e069ec6ab02dc1c56
2024-10-14 09:19:34 -04:00
Roman Artiukhin
64ad7354b6 imageviewer: Initial support for JPEG progressive images. Add lib sources
Added unmodified files from RAINBOW library by Attila Tarpai
Full sources:
https://github.com/Halicery/vc_rainbow

Change-Id: I356486b6a332aa3f610ddcae57f8a2044653b051
2024-10-14 09:19:34 -04:00
Solomon Peachy
772eff8ca6 flac: Explicitly reject FLAC files with more than two channels (FS#13306)
It's not clear that we've ever intended to support >2ch files, based on
'#define MAX_CHANNELS 2' and other logic that only seems to care about
mono vs not.

Change-Id: I15e92fb29cceef32e63fc3a821f6e96bbde930b6
2024-10-14 09:00:26 -04:00
Solomon Peachy
542eeae11c configure: Document the '--with-ubsan' argument
Change-Id: Ib159cec30f6396b7bf02463b8833a062a38b8841
2024-10-14 08:56:12 -04:00
Solomon Peachy
cda2f90e10 nano2g: Work around GCC9 warning in the FTL code.
As far as I can tell it's a false positive.

Change-Id: Ib4f993c717d673e53f1ec70b9f4701acc0ca6f27
2024-10-14 08:56:12 -04:00
Solomon Peachy
d96b222a32 Fix previous commit. don't know how it "worked" for my test build.
Change-Id: I2137e3a7036be8378b70cc7462edad33c28b5a39
2024-10-13 19:22:00 -04:00
Solomon Peachy
66ed5232cb erosq: Change default sysfont to 14-Rockfont-Mix
Former default of 08-Rockbont was borderline illegible on the screen.

Change-Id: I200d6f692b145927f0579652f4ed1ce4c6ede118
2024-10-13 18:52:20 -04:00
Solomon Peachy
9420650c87 voice: Normalize all voiced strings NFC form before passing them to TTS engine
This should be a no-op for .lang files, but it can matter when
generating talk clips, as those are based on the raw filename.

Change-Id: Ia449ae7668818e4bf093347fd0fb15fa5b67fa69
2024-10-13 09:33:39 -04:00
Solomon Peachy
d98cad4301 docs: we use xz, not bz2, for tarballs
Change-Id: I6ba825da18fc7617e5ea051f9d3c0714a0a09a84
2024-10-13 09:33:00 -04:00