Commit graph

39084 commits

Author SHA1 Message Date
Christian Soffke
fd7ae09e7a fix FS#13864: Last char of folder and filename not voiced
Change-Id: I9c237bb7721224c6ba44b6511d72094722fa980c
2026-04-16 07:57:21 -04:00
Christian Soffke
a1ccb79727 pitchscreen: adjust keymaps for ipod and fiiom3k
ipod:
- To be more consistent with other plugins and
  (Settings) menus, press Long Select, instead of Menu,
  to reset, and press Menu, or Select, to exit screen

fiiom3k:
- Press Back, or Select, to exit screen
- Press Menu, instead of Select, to switch between modes
- Use repeat button events and adjust values by 1%, instead of
  by 0.1%, when scrolling, to speed up setting changes
- Get rid of surprising actions for Back/Menu/Volume buttons

Change-Id: Ifd16958bf56c7e20fb182aa157b4cb4dd19ac9b9
2026-04-16 13:35:38 +02:00
Solomon Peachy
41893b250f ipod4g: Pull LCD framebuffer out of IRAM
The recent pcm_mixer changes caused us to overflow IRAM by a whopping 8
bytes.  This can _probably_ be mitigated with some clever reworking but
we were clearly already on the hairy edge.

Future pending changes are likely to increase IRAM pressure so even if
we solve this issue the odds are it will reappear at a future point.

(the ipod4g's framebuffer is 5KB.  This doesn't affect the mini2g as its
 framebuffer is under 4KB, and the ipodcolor doesn't put its framebuffer
 in IRAM at all)

Change-Id: I2f50d998e969a706cc9d3a0e057cf8e6c303c9b4
2026-04-14 10:27:20 -04:00
Vencislav Atanasov
4dbcb13f58 bulgarian: Change some USB-related voice strings
Change-Id: I4c129b3672b6ffa21a8f11ca1146ffa4933474d5
2026-04-14 08:02:51 -04:00
mojyack
cfb01cfd58 pcmbuf: remove pcmbuf_sampr
Change-Id: I5da91acbf8a3e23446d38b9e62d4e1c67d41aba9
2026-04-14 07:44:16 -04:00
mojyack
498a9fffeb pcm_mixer: remove mixer_sampr
Change-Id: I693b3c2ab639f09e918790dd6a06977991f872cc
2026-04-14 07:43:35 -04:00
mojyack
e2040cc98c pcm_mixer: introduce mixer_buffer_cbs
intended to add sampr_changed callback to buffer hook as well as mixer
playback

Change-Id: I9df6194a884cfb813342a827b7fdc3bccbe3d60c
2026-04-14 06:50:39 -04:00
mojyack
cb04b8167c pcm_mixer: introduce mixer_play_cbs
the added sampr_changed callback can be used to notify the mixer user of
frequency changes

Change-Id: I309db76576090fd5c019a1ba082af446129dd4a3
2026-04-14 06:47:36 -04:00
Solomon Peachy
86639acc5e Mass language update for changed description of LANG_USB_MODE
Change-Id: I4b0508272c06164dcdca0c3c3694e1d645d44e02
2026-04-13 20:34:57 -04:00
Christian Soffke
c765addd24 Eliminate default browser setting (e881655)
Keeps track of most recently used browser
across reboots instead.

Change-Id: I0de2c3acc69f827aac68e7dfcfc4af1a4f8c66de
2026-04-13 19:20:27 -04:00
Vencislav Atanasov
719f0f1a3b settings: Move USB-related settings to their own submenu
Change-Id: Ic35025633f655138767e82bf4369e0626e91b4d4
2026-04-13 18:55:30 +03:00
mojyack
a6a1be6e30 plugins: remove hw_freq_sampr from plugin api
replaced by pcm_current_sink_caps

Change-Id: Ib17a1f5bb8ae479278ef467dfcc99fead6f1499e
2026-04-11 14:20:44 -04:00
mojyack
012c61eadf plugins: mikmod: remove hw_freq_sampr usage
TODO:

 * Dynamically hide the sample rates that aren't supported
   by the current sink
 * Better "default" selection based on hardware type/speed

Change-Id: I261544fc3ba78429eaaa81c89aebd2e68106caa3
2026-04-11 14:18:36 -04:00
Christian Soffke
27ebdfcb25 settings: fix mismatched resume setting variable types
The SYSTEM_STATUS macro for these variables has an
F_T_INT flag, which may result in an unexpected value
being written to the resume file for PLM and PVS.

Change-Id: Iea18efbdc68604e1297721d132a9a5b7d056ffad
2026-04-09 18:04:48 +02:00
Solomon Peachy
d82d0be595 FS#13802 - Correct untranslated menu headings in mpegplayer
Every menu heading except the top-level "MPEG Player" (ie the name of
the plugin) now uses pre-existing translated strings.

Change-Id: I65ee64ddc537be4947872da4757bc2f6a27d0bae
2026-04-06 08:13:30 -04:00
mojyack
4cd3d3c519 doom: fix out-of-bounds access of caps->samprs
Change-Id: Icde0146648477dbd0442c67258ff6ae1ff62c994
2026-04-05 14:48:28 -04:00
Solomon Peachy
b5e3789dc1 manual: Fix red due to a missing }
Change-Id: I86a3f0681ef15bee61489c2df9e013c27d9b55f9
2026-04-03 18:04:38 -04:00
Solomon Peachy
1c4774e7e9 manual: Correct dead links for Sandisk Fuze+ firmware download
All URLs into Sandisk's web site return 404 or 403 errors, so
point at our local mirror of Sansa firmware files instead.

Change-Id: Ib3efcb62b13431f6416a320483877ca162ea5990
2026-04-03 17:33:08 -04:00
Solomon Peachy
868da83e92 FS#13849: Correct dead stock firmware links for SansaAMS devices
(Sandisk no longer hosts any firwmare for these old devices, so point
 users at our own mirror instead)

Change-Id: Ibdcddcd2560b2062e84c82c53049022a7f76b226
2026-04-03 17:25:43 -04:00
Christian Soffke
75fa8e6449 manual: "Always remember last folder" setting update
- move to File View settings menu
- add to config file options

Change-Id: Id676fd5e0cdc9f0471b975addb1fecd62f3cd61d
2026-04-03 02:37:27 +02:00
Christian Soffke
4b9c78e01b filetree: restrict keep_directory setting (c86fd23) to Files menu
Prevents the most recent File Browser directory from
being overwritten when ft_load is called from places other
than the Files menu, such as when browsing the Plugins
menu or the Playlist Catalogue (coming from the main menu,
or from the "Add to Playlist" context menu).

Change-Id: Idbdb2d92c6abcc5cca022d3025b48e0cd4b32f17
2026-04-02 15:28:31 +02:00
Solomon Peachy
0e7718ed4e voice: Add Norwegian Nynorsk voicefile synthesis
(Enabled, as it now has >98% coverage)

Change-Id: Ie14c28cf279cf8bb2215deb8f1ec597cb980b3ab
2026-04-01 11:04:53 -04:00
Solomon Peachy
a2f652cf1f disktidy: Add '__MACOSX' directories to the list
Change-Id: If25ccbeaf1ada8ae4bcc9a1853302c297f7a3e08
2026-04-01 10:32:40 -04:00
mojyack
6be230275e plugins: pdbox: remove HW_SAMPR_CAPS usage
Change-Id: I4e37213a38ac5d1260bc2fa208828abd55fc2647
2026-04-01 08:48:12 -04:00
Solomon Peachy
c5b171da41 FS#13847 - Updated Norwegian Nynorsk translation (Eivind Ødegård)
Change-Id: Iccb88dcb80b4c316ad1701fada1d0aac54958e51
2026-04-01 08:25:23 -04:00
Solomon Peachy
65f2105445 Revert "sdlapp: Enable compilation of most apps/games"
This reverts commit 96b5642c93.

Reason for revert: Accidentlly merged this before it was ready.

Change-Id: I9344988f6556b774479dd4fd209f30e450ad0858
2026-03-30 20:52:42 -04:00
Solomon Peachy
78ba3211be FS13846: Russian translation update (Sergey Puskov)
Change-Id: Ifa9dff84380f20637e39900409bacbb690d40634
2026-03-30 20:50:13 -04:00
Erin of Yukis
96b5642c93 sdlapp: Enable compilation of most apps/games
Removes `#ifdef`s in many places to just have `HAVE_TOUCHSCREEN` be the
input fall back, as is already tentatively the case in the code.

Solitaire was the only app excluded since there aren’t enough buttons
for it mapped in the SDL layer.

Change-Id: I62450b7110b86c8037a121e96cd2e46754be79a3
2026-03-29 20:32:58 -04:00
Solomon Peachy
e677895e29 xrick: Fix a race condition that could result in audio stopping
get_more() can disable audio when there's nothing more to genreate
but that can get called (and "fail") _before_ we set the flag
that audio is turned on.  If this occurs, we will incorrecly
set the "audio on" flag after the failure which will prevent
the mixer from being re-started.

(We're at the mercy of thread scheduling)

Change-Id: I4f6c50a71c7ad685ff45f775e7e4b1c61b8b7777
2026-03-29 18:07:00 -04:00
Solomon Peachy
f235443ba1 FS13829 - Add Android-specific entries to disktidy plugin
Notably, the 'Android' and 'LOST.DIR' top-level directories.

Change-Id: Idee411e518a8b73e4f0a4283e368e35c8a2f0938
2026-03-29 09:25:28 -04:00
mojyack
03060090c9 usb: arc: implement batched request api
Change-Id: I9d677286589a336d7258cf2c9d3c7d2847243dfa
2026-03-29 09:04:10 -04:00
mojyack
f84003fa40 usb: add fallback implementation of emulated batch api
some targets can process requests fast enough without dedicated
batch api implementation.
provide generic implementationn for such targets.

Change-Id: I152681441e70e0e98396274d9305d371d2bbfbe3
2026-03-29 09:03:56 -04:00
mojyack
d2b76a99f3 usb: introduce batched request api
in order to implement iap digital audio interface, we have to send
a pcm packet every usb frame i.e. 1000 packets per second.
this rate can't be achieved with current standard request-response design,
even with fast_completion_handler.
this is why this new api is needed.

Change-Id: Id3d7dd037660871e2bdb69656f63ff13280c3804
2026-03-29 09:03:29 -04:00
Solomon Peachy
3f4d5a527b bootloader: Don't compile sound.c in bootloader builds
(a) Nothing uses it, and (b) stuff it needs isn't built either

Change-Id: Ib8b46e00d4306f7d05b47883bfaa98497a075db5
2026-03-28 12:43:59 -04:00
Solomon Peachy
42ad3c75d2 Fix red in 36f34089d6
Can't reference settings in bootloader builds

Change-Id: I471c3ca61ec4c93d38317278b79b973192aa28bb
2026-03-28 12:41:43 -04:00
Solomon Peachy
36f34089d6 volume: Apply limits inside sound_set_volume()
This way all paths to setting the volume respect the limits, instead
of only callers of setvol(), which only applies to (some?) interactive
paths.

Change-Id: Ia8ece22aafcb04df33021071cb933eaeb1146502
2026-03-28 08:55:57 -04:00
Solomon Peachy
5ce96b84d8 pcm_mixer: Explicitly initialize the mixer frequency in the pcm init path
Change-Id: I5b79dbb0608ef182fd5592797c6211ce5299999c
2026-03-28 08:55:07 -04:00
Solomon Peachy
a84a38dd87 pcm: Fix up some compile warnings that show up under some sim builds
firmware/pcm_mixer.c:36:35: warning: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘18446744073709551615’ to ‘4294967295’ [-Woverflow]
   36 | static unsigned int mixer_sampr = -1UL;
      |
firmware/pcm_mixer.c:269:21: warning: comparison is always false due to limited range of data type [-Wtype-limits]
  269 |     if (mixer_sampr == -1UL)
      |                     ^~

So drop the 'L' and everything is peachy.

Change-Id: I9440d3300931be229c6c4b01bdc1d09b55c34d88
2026-03-28 08:54:33 -04:00
Solomon Peachy
daef425c59 pcm_mixer: Get default sample rate from pcm layer.
Change-Id: I6eccb37556e70f23112bbb0e26f4a45ac0930245
2026-03-28 08:16:04 -04:00
Solomon Peachy
759ef2767a pcm: Make pcm_is_ready a per-sink property instead of a global.
All that matters is that the _current_ sink is ready, not all possible
sinks.  When switching sinks we will need to ensure tehy are initialized
before switching over.

Change-Id: I341f7e9dcb4e2add4d0b292b68b69eb08dec0194
2026-03-28 07:09:54 -04:00
Solomon Peachy
ae724ba5f3 as3525: PCM driver init references the sink directly
Change-Id: I42e8f04214790676d6f177669cdeda58fa8e8c28
2026-03-25 10:13:36 -04:00
mojyack
9b207bfb91 plugins: pacbox: remove hw_freq_sampr usage
Change-Id: I365b4f901dd2fbcc22bf1a8009a9d9b58a1da556
2026-03-25 07:35:52 -04:00
Aidan MacDonald
da53cc0f14 echoplayer: pcm: increase SAI FIFO buffer depth
Change the SAI FIFO threshold so that it is always
kept topped up at maximum; DMA needs to do single
transfers to the peripheral now. Ignore FEIF errors
since they seem to occur constantly with this setup
(though it's not exactly clear why this happens).

FEIF only indicates that the SAI made a DMA request
while the DMA FIFO is empty, which isn't a fatal error.
The DMA channel will simply service the request when
it is ready.

Keeping the SAI FIFO constantly full increases the
overall timing margin before underrun so losing the
FEIF info isn't a big deal in practice.

Change-Id: I16eb1cbb17039db76938bd86c4921b8060c83556
2026-03-25 07:33:19 -04:00
Solomon Peachy
2578411f00 Fix red in 9c708e3876
Test build didn't catch this due to a dependency failure.  (WTF?)

Change-Id: I0487a02e9fad8b6bec9b93066619aef04c838d3b
2026-03-25 07:30:27 -04:00
mojyack
9c708e3876 plugins: midi: remove HW_SAMPR_CAPS usage
Change-Id: Ie4962cf6d4f2f9078fa348f8f6f638cfbc0047a5
2026-03-25 07:02:49 -04:00
Solomon Peachy
e923b354a6 FS#13836 - Remove the pcm sink_mutex to unbreak usb_dac mode
The purpose of the mutex is to make it possible to switch pcm sinks
safely, but pcm_play_lock/unlock and pcm_set_frequency need to be
called from IRQ context which is fundamentally incompatible with
our mutex implementation.

The proper path forward will be to promote the counter-based per-sink
lock/unlock implementation to the pcm core, and only allowing sink
switching when the counter is 0.

In the mean time, just remove sink_mutex entirely as the sink switching
code has yet to be committed.

Change-Id: I029459d7ec6ea47c6e2b8fce52d203129a282832
2026-03-21 08:06:20 -04:00
William Wilgus
db849f5f8a OpenPlugins reset start_in_screen when database record is deleted
This is more of an ease of use enhancement than a bug
but it should prevent the annoyance of the  message about the missing entry
without needing to go and reset the start in screen setting

Change-Id: I15eb005ce254eb0f0d3f2543abf710b68468a8b3
2026-03-19 12:05:51 -04:00
Aidan MacDonald
acd3a5f0ce echoplayer: implement ADC to read battery voltage
Change-Id: I8043e7d2f02c10cb8c9d9ec59b7d216945431481
2026-03-18 12:51:51 +00:00
Aidan MacDonald
684b3d8c49 make: enable fixedpoint library for bootloaders
Change-Id: I8a4975d4e2e8b6af4d3dbfaeb752032f43789453
2026-03-18 12:51:51 +00:00
William Wilgus
314becf2ac FS#13824 - In keyremap plugin in "test keymap" context is wrong
The context was supplied with context|flag but expected context x flag

Also fixes a bug where the user export doesn't show the correct save location
if changed -- it still saved properly anyway..

Change-Id: I061d63e15475d2cb73d070737dc18d56d7800472
2026-03-14 11:28:00 -04:00