Commit graph

39169 commits

Author SHA1 Message Date
Skye
1d5aa53321 playback: do not try to switch to a sampr the current sink doesn't support
Change-Id: I73c18365cb3010ca45c6d41ae390b8de095c7589
2026-05-06 08:22:30 -04:00
mojyack
d8a4730159 tools: fix reggen is not cleaned
Change-Id: Iacb3f7b2c3104435a3188c9b24eb8f4374ef8b59
2026-05-04 20:33:52 -04:00
mojyack
142e1864ef usb: fix get_max_packet_size is called before endpoints are allocated
retrive the requirements like others rather than callback

Change-Id: I20efce76a418ebd7aa6943f02e53b3f7a8fd2797
2026-05-04 16:46:57 -04:00
mojyack
8873cbb57e usb: designware: support max packet size override
Change-Id: I75d3aca1599ce064c604c96f2b5ed4c041f975b8
2026-05-04 16:45:57 -04:00
Solomon Peachy
d92b42c70f Fix Yellow & Red in 41caf678fe
Change-Id: If111595271289878097c2a8b30bec3f18390a49c
2026-05-04 14:04:26 -04:00
mojyack
41caf678fe usb: allow more flexible endpoint allocation
the capabilities of endpoint of several devices such as dwc2 change during
runtime, so they cannot be determined during driver initialization.
therefore, allocation using ep_specs is inappropriate.

to support these devices, add functions to the driver that determine whether
endpoints are available and make allocation more flexible.

tested with ipodvideo(arc) and erosqnative(designware)

Change-Id: I8005c17f3d763cd17306bf49918e1cd8084bdeff
2026-05-04 13:31:21 -04:00
Christian Soffke
42841d493f gui: inbuilt statusbar: defer viewport update
Don't independently update the statusbar
viewport when rendering the skin

Change-Id: Idb5a983c5b08fe60db7ab239d6dfbc60190768fb
2026-05-04 13:16:16 -04:00
Christian Soffke
c145d19e85 gui: align display updates, reduce UI glitches
Based on commits ce33902 and 8990d52 (without PictureFlow)
from "Rockpod" fork by Nux Li (https://github.com/nuxcodes/rockpod),
with some adjustments.

Addresses flickering when:
- plugin is opened/closed
- activity changes
- theme is toggled
- QuickScreen is opened

In these cases, skin_render will not immediately update the display
anymore, but instead will wait until the UI viewport is ready to be
drawn as well, so we don't produce unnecessary visual glitches.

Change-Id: I8bed8f06221d3e767a32450f199e69d742bc61cd
2026-05-04 13:16:09 -04:00
Christian Soffke
89d24f3bd4 list: fix GUI_EVENT_THEME_CHANGED timing issue
Initialize a list's dirty_tick to last_dirty_tick instead of to the
current tick.

Issue probably only affects the sim:

To force a list to reinitialize using the GUI_EVENT_THEME_CHANGED
event, last_dirty_tick is set to the current tick.

list_is_dirty() checks whether the list viewport needs to be
re-initialized by comparing the list's dirty tick to last_dirty_tick,
and seeing if time has passed.

In some scenarios though, the list's vp may be initialized, become
immediately dirty, and list_is_dirty is called, all in the same tick.

Change-Id: Ia379117a07bbaf545e0a16d35e74888955893441
2026-05-04 13:58:59 +02:00
Vencislav Atanasov
02638c1cb8 s5l87xx: (Re)name the SHA-1 registers
Synced with the s5l8702-sha1 Linux driver in the freemyipod fork

Change-Id: I5243346205f7883f4271d4b272936dd125adb496
2026-05-04 07:16:29 -04:00
mojyack
bbdada7690 usb: enable cpu boost for specific class drivers
add needs_cpu_boost field to usb_class_driver and manage boost state in
usb_core, similar to needs_exclusive_storage.

Change-Id: Ieb0cd7bedda5b24bb0d209d5ce907db30f4815db
2026-05-04 18:15:52 +09:00
mojyack
732f7bcfd9 usb: allow class drivers to return error from init_connection()
Change-Id: Idcd48dd00d9d2f06c49a347e02a41a5de7252431
2026-05-04 18:15:49 +09:00
mojyack
3c10b21c10 usb: hold class_driver instance in each driver
Change-Id: Ia2f857bffcc6c3cca4dee59791c48c628082595b
2026-05-03 15:18:51 -04:00
Solomon Peachy
82a0921399 build: Fix yellow in 6d387e2e7f when panic is not supported
Change-Id: I8b896ef05ca27b3abc05d5d6910d5f6b9741047c
2026-05-03 15:10:03 -04:00
mojyack
6d387e2e7f usb: allow class drivers to override max packet size
this is required to make hid endpoint of iap class driver work,
especially on ipodvideo(arc).
at least for arc, it is required to set mps as 64 instead of 512 on
highspeed, or some accessories ignore incoming hid reports.

Change-Id: I242060faced28a66204146a9c36ef10626d6d265
2026-05-03 14:59:15 -04:00
mojyack
fad99773e3 send iap status change notifications
install iap event notification callbacks in various locations

Change-Id: I637a3ad18cb07ca056ad9b678400ba11d2f8faad
2026-05-03 14:20:29 -04:00
mojyack
e50ad40814 usb: increase usb thread stack size
Change-Id: I07283a68056e095efba8019dac2aa37d65c0ef6c
2026-05-03 14:15:56 -04:00
mojyack
c2e1094383 playback: reserve an aa slot for iap
Change-Id: I605017148b6f3c62021e63f58a1ddd8e229c5fbb
2026-05-03 13:04:49 -04:00
mojyack
757e683506 usb: core: handle apple vendor usb request
Change-Id: Iab5135774353630e7bce4939f40ca35940e214f3
2026-05-03 13:03:42 -04:00
mojyack
3bb656625b usb: add usb iAP driver
add class driver source files.
also register iap audio sink.
usbstack/iap/libiap directory is imported from libiap.

Change-Id: I776c5caec33fe9efadc448e2e3b37d500bf19c9f
2026-05-03 12:40:54 -04:00
mojyack
2b9e4a8d70 config: define USB_ENABLE_IAP
iap is only enabled for idevices.
it will not work without apple vendor id anyway.

Change-Id: I1696dbc8a2304fc5eecc5432b4c52e25801c468e
2026-05-03 12:40:54 -04:00
Christian Soffke
6d699f08f4 plugins: imageviewer: fix incomplete previous commits
missed in commit 2690418:
grayscale targets need to have access
to the Display Options menu now, since
it contains the hide_info option

missed in commit f4dc4d8:
"resizing" message for bmp files wasn't
hidden even with hide_info enabled

Change-Id: I1a73e3816305ab6f032fc226d79f09df0d9aa96b
2026-05-03 18:09:44 +02:00
mojyack
ae8013405a plugins: rockboy: respect GLOBAL_LDOPTS
Change-Id: I5224e39b41bda71506ee99d9df79b7b19f7e29cb
2026-05-03 09:06:29 -04:00
mojyack
790a8aa560 plugins: chessbox: respect GLOBAL_LDOPTS
Change-Id: Ia9b20c24f91a7fd9fa7b0a73e352199aeaf6dd05
2026-05-03 09:06:17 -04:00
Aidan MacDonald
2053bba561 makefiles: fix duke3d overlay not using objcopy_plugin
This should use $(call objcopy_plugin) in order to
generate the correct binary format on platforms where
the plugin binary format differs from the main binary
format (ie. STM32).

Change-Id: I027cc74e3c5d55b9a3538f4f16c3fd5ece25a4b5
2026-05-03 13:10:08 +01:00
Aidan MacDonald
30adfbf5c9 puzzles: fix possible crash due to non-NULL terminated list
Change-Id: Id0cadfd6d2d88e8cd27a34d042403ec54e8aca41
2026-05-03 13:10:08 +01:00
Solomon Peachy
d839cab05a manual: Correct a minor error in the countdown timer documentation
Change-Id: I5105a2ebf51e030c9d58a234c521b473141e71f7
2026-05-03 08:08:43 -04:00
Solomon Peachy
30ad7f4ee8 manual: Mention [lack of] unicode normalization in the manual
Change-Id: Icdb19a47367fbe7b2fd32679885a26669a799612
2026-05-03 08:08:43 -04:00
Aidan MacDonald
4f2c918f28 mpegplayer: disable ARM assembly code for Cortex-M
Change-Id: I6fe8a359ef6d6160918239bf5c45a3034e52356b
2026-05-03 12:19:48 +01:00
Solomon Peachy
81fcb10f8f metadata: Normalize all metadata to Unicode NFC form
* Standalone database tool
 * Simulator builds
 * Target firmware (Hosted and Native, for all >2MB targets)

Change-Id: Ia7361affc2fc6a08e73c31ecc9ef3a4008c2415d
2026-05-03 07:07:07 -04:00
Solomon Peachy
8768266d27 Simpler const fix for fill_metadata_from_path()
Make sure the output of strchr(const*) is assinged to a const*

This way the filename argument can stay const

Change-Id: Ie46be936491eb62ba2a7e729b8cd7881e205bba7
2026-05-02 23:01:21 -04:00
Solomon Peachy
026ce110f2 Revert "fill_metadata_from_path modifies a "const" argument"
This reverts commit 3eba3ecd17.
2026-05-02 22:58:45 -04:00
Solomon Peachy
3eba3ecd17 fill_metadata_from_path modifies a "const" argument
...so convert the argument to non-const

Change-Id: I9e04d817e8674facae7c3be234fd9756f1a4f8ad
2026-05-02 20:41:28 -04:00
Aidan MacDonald
bafc796ce7 Fix errors from stdint.h removal (cf6fb81346)
Change-Id: Ie9457121448f47db14300e035dc5b5eccd086884
2026-05-02 23:22:03 +01:00
Aidan MacDonald
cf6fb81346 firmware: drop hand-rolled <stdint.h> from libc
Perhaps this was needed in the distant past, but these days
GCC provides a working <stdint.h> for freestanding targets.

Change-Id: I4f02f12058a13b6a086ccc52f02a12ce21a986c1
2026-05-02 22:33:12 +01:00
mojyack
472acce401 reggen.h: fix broken stm32 build with gcc-14
Change-Id: Ib504e6a75ac88be325adc6dd19c88bf263178f2d
2026-05-02 17:28:45 -04:00
Solomon Peachy
0dc670d25c build: Make bitmap object files position independent to silence linker warnings
Finally addresses the "warning: creating DT_TEXTREL in a shared object" warnings
seen when linking plugins that reference bitmaps.

This currently only happens with simulator builds using recent-ish
toolchains (GCC >= 12 IIRC).  However, binutils 2.46 promotes this
warning to an error, so it's finally tracked down and addressed.

Change-Id: I4b4926c14f7c0047496892c55009c26da2a4756d
2026-05-02 13:22:51 -04:00
Christian Soffke
88d4903d10 gui: fix "lock screens" making UI viewport disappear
Themes like Adwaitapod, Themify, or FreshOS have
custom "lock screens" that are drawn on top of the
UI viewport.

Request a full skin update when unlocked, so you don't
have to press a button to make the hidden UI viewport
appear again.

Change-Id: Idf5023b4e12f7aea1cd7a2e9d9ab2f754387dc48
2026-05-02 16:53:02 +02:00
Christian Soffke
83e55164f4 gui: remove SBS lock/unlock redraw lag
Stop the lock indicators on the SBS from lagging
behind their actual state when lock notifications
are disabled.

Request immediate skin update in button loop, so
the device doesn't feel laggy.

Change-Id: I42955f65d9ad4ca9196549d806538d1badb5f79d
2026-05-02 16:52:03 +02:00
Solomon Peachy
89dd08a3b4 configure: Explicitly disallow erosqnative_v3/v4 for "normal" builds
They are only intended for bootloaders.

Change-Id: I4da3e7acd55b803e016bc9c42526860dfdc6fa9a
2026-05-02 07:47:36 -04:00
Solomon Peachy
f886bfc572 misc: Address issues uncovered with GCC 16 + binutils 2.46 (1/N)
* Funky macro-based definitions for memchr and strstr
   which require an #undef before we use our own in codecs & plugins
 * Return value of of strstr is const

Still have several more warnings and link failure with some plugins
but this is a good start.

Change-Id: Ife1f2d3e6f0e0629e3125a9058abc39c6102f452
2026-05-01 22:50:14 -04:00
Solomon Peachy
8e8206f6d5 FS#13886 - Updated Serbian translation (Ivan Pešić)
Change-Id: I10321a41db686ebbfdadf82c84d3797551fe7319
2026-05-01 11:41:39 -04:00
William Wilgus
52edc2e069 [Feature] allow displaying the WPS/tree hotkey menu with hotkey press
add 'Context Menu' item to WPS and Tree hotkeys

this allows a user to display a menu of hotkey actions to execute
when they press the hotkey

items are voiced

added 'View Album Art'

Change-Id: I2199c4de536f347016e7a8d7f3c063da0b56a9a0
2026-05-01 11:07:49 -04:00
Solomon Peachy
4ea2f57aaa lang: Update URL for translation site
Change-Id: I0e054a2bbae994e2eadd81abf096d4ac463d4bb5
2026-05-01 10:18:25 -04:00
Christian Soffke
dbcee0deae gui: defer deadspace viewport update
Change-Id: Idac4a2bf21ced25cbf4349dc32ef62b3a456f999
2026-04-29 15:44:53 -04:00
Christian Soffke
c41beebcda gui: delay updating SBS when setting list title
We currently force a skin refresh when setting the
list title. This causes very noticeable flickering
of the list, if the SBS draws over the UI viewport,
when there is no displayable list content yet
(For an example, check out the Adwaitapod theme).

Instead, only mark the title as dirty. Later, when
drawing the list, register for a UI update callback
and ask the skin engine to render, so that we can
draw the list at the same time.

Note: Flickering related to display updates when
switching activities or when toggling the theme is
unrelated to this, and will still need to be addressed
in separate commits.

Change-Id: Icce899905aa311deccb0cc498aacce2866aaae8a
2026-04-29 15:44:30 -04:00
Christian Soffke
7ab1a81806 simple_viewer: use UI viewport and SBS title
Also adjust scrollbar margins and height so it matches
the look of normal lists, and hide scrollbars when set
to SCROLLBAR_OFF.

Change-Id: I27f6de7b16cf5ec72e12c7d6377a8772d84947ac
2026-04-29 14:19:48 -04:00
William Wilgus
2d419b4b93 [Feature] FS#13850 - Add SELECT button support in calculator on FiiO M3K
baremetal port add select as a second way to enter

Change-Id: I0e3ab76fee8e6accd4425def3da48fb12a6142e8
2026-04-29 11:29:10 -04:00
William Wilgus
121c65b32a [Bugfix] FS#13857 - Keylock with USB bug (Fiio M3K)
1. Lock buttons
2. Lock indicator turns on
3. Plug USB
4. Lock indicator still turned on
5. Unplug USB
6. Lock indicator turns off but buttons still locked and if you
press lock button you see "Buttons locked" splash

pretty sure this is an issue with the touchpad on this device
probably applies to other touchscreen targets too

Change-Id: Ia0afee7d737f3a5a2755f53d176bd53dd57d87c5
2026-04-29 10:30:54 -04:00
William Wilgus
1068433d5b [Bugfix] FS#13878 FS#13862 lua alpha bmp overflow and image flip example
FS#13878 - 292x216 images cause panic
 alpha channel causes overflow

FS#13862 - In rlimg example "flip image" cause error
 missing local variable

save random and rainbow images

fix ball bounce direction

Change-Id: I717eb029f30bf63d2eef0b7997eb04036ffeda15
2026-04-29 02:17:46 -04:00