Commit graph

11 commits

Author SHA1 Message Date
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
ea570c5728 pcm: Make more of the low-level PCM API private
* pcm_play_data
 * pcm_play_stop
 * pcm_play_stop_int
 * pcm_is_playing
 * pcm_set_frequency
 * pcm_get_frequency
 * pcm_apply_settings

Now, the only user of these functions are the mixer and recording layers
that provide a higher-level API to plugins and the main [playback]
application.

Outside of the PCM core, pcm_apply_settings() was only used immediately
following a call to mixer_set_frequency(), so the latter function
now always calls the former.

Change-Id: I61c3144dc156b9de9b7963160b525c6d10c6ad4b
2026-03-03 13:09:21 -05:00
Solomon Peachy
017dd72ff3 plugins: Convert all plugins to using mixer API for playback
pcm_play_data -> mixer_channel_play_data
pcm_set_frequeny -> mixer_set_frequency
pcm_play_stop -> audio_stop at startup / mixer_channel_stop at shutdown
pcm_is_playing -> mixer_channel_status

All of these have been removed from the plugin API.  Updated API docs to
clarify role of audio_stop() vs mixer_channel_stop()

Todo:  get rid of pcm_play_[un]lock().

Change-Id: I8800c131b51f064ee923a4c6e42aa405d33851fc
2026-02-22 08:15:14 -05:00
Christian Soffke
5aa2b339d5 plugins & debug menu: apply consistent titles
Purge "Menu" or "Rockbox" from plugin menu titles
and match application names from manual.

Exception: "Main Menu" is left unchanged as the
title for the Main Menu Configuration plugin, since
it appears in Rockbox's Settings menu and therefore
should match the name of the setting.

E.g.:

"Rockbox Goban" => "Goban"
"Image Viewer Menu" => "Image Viewer"
"Viewer Menu" => "Text Viewer"
"Menu" => "Chess Clock"
"Do What?" => "Text Editor"
"Mpegplayer Menu" => "MPEG Player"
"Multiboot Settings" => "Multiboot"
"Disktidy" => "Disk Tidy"
...

Change-Id: Ie6d3be7557f31a36309489037ad8b2b27b06706e
2025-12-23 10:25:05 -05:00
Solomon Peachy
cbfaa49d3f xrick: Fix up -wundef warnings in miniz library
Ensure that if a posistive condition results in "#define XXX 1", ensure
we set "#define XXX 0" if that test fails.  This is necessary because
the code uses "#if XXX" isntead of "#ifdef XXX" all over the place.

Change-Id: I16157fd6ae251a70331f48a895b6c53a6648ab2b
2025-12-07 14:28:51 -05:00
Solomon Peachy
a5df7c2e02 Revert "xrick: fix sim build warning on arm with -Wundef"
This reverts commit f05be27ae6.

Reason for revert: Introduces warnings on all (x86) sim builds.  

Change-Id: I052c3569693663910a4290668b90ff444da65c75
2025-12-07 14:18:02 -05:00
Christian Soffke
f05be27ae6 xrick: fix sim build warning on arm with -Wundef
Change-Id: I11513a20e0cd0bfd6dbe0759c86e4ff893a3d537
2025-12-07 13:22:13 -05:00
Solomon Peachy
311f27606c xrick: Fix build on RGB888 targets
Didn't realise they needed the same hand-holding as XRGB8888

Change-Id: I28274b7326747093ef94427b1ddbcb948c907a2b
2024-06-30 20:57:34 -04:00
Solomon Peachy
eacb4daa2d More xrick-related cleanups
* Correct broken CREDITS file causing HTML manual build failures
 * Fix warning on iAudio M3 and MPIO HD200
 * Fix XRGB888 pixelformat builds, hopefully correctly.

This should bring the board back to green.

Change-Id: Ia7d54641d37db19d4cee3b5d9f5d8ab1567ac30b
2024-06-30 20:30:49 -04:00
Solomon Peachy
423350ec4d xrick: Fix various errors/warnings
* Piles of warnings in miniz when built with modern toolchain
  * Pointer arithematic error in PRNG
  * Casting between int and void * for file descriptors
  * Warning on non-color targets

Remaining:

  * Failure on XRGB888 LCDs due to issue with core LCD macros
  * Failure on interleaved greyscale LCDs (?)
  * HTML manual build failure

Change-Id: Ibf6d2c001ec8daf583731d5da15b86b5352773e7
2024-06-30 18:45:07 -04:00
Sebastian Leonhardt
102c374248 added xrick game
original xrick code by 'BigOrno' at:
http://www.bigorno.net/xrick/

Rockbox port, plus bugfixes at:
https://github.com/pierluigi-vicinanza/xrick

Further changes:

 * Additonal fixes from g#3026
 * Port to modern plugin API
 * Add Pluginlib keymap fallback
 * Support all >1bpp screens
 * Fix build warnings in miniz
 * Better error message when resources are missing

Change-Id: Id83928bc2539901b0221692f65cbca41389c58e7
2024-06-30 17:24:16 -04:00