1
0
Fork 0
forked from len0rd/rockbox
Commit graph

4953 commits

Author SHA1 Message Date
Christian Soffke
8808c42d6d Fix FS#13494
Change-Id: Ie306418431eb412dac00907eb2f59999d8b4dfb0
2024-10-03 14:03:29 +02:00
William Wilgus
9af325a541 [BugFix] tagcache_search() must be closed with tagcache_search_finish()
fix a couple of places where this could be left open

Change-Id: I43ac7d6b26d728c11f96e5415710341d60f07ab8
2024-09-25 01:33:47 -04:00
Solomon Peachy
37ca92d276 lua: button_helper needs $(EXTRA_DEFINES) on the host build side
Change-Id: I526f2deec4e4f9b8dbf00015c2c9a76f738a6248
2024-09-08 12:57:22 -04:00
Franklin Wei
eca00638ae puzzles: add Slide and Sokoban.
This enables two of the "unfinished" puzzles. Slide requires a new "sticky
mouse mode" to enable dragging. The help system is disabled for these
puzzles, since they lack manual chapters.

Group is currently unplayable due to lack of request_keys() support, which
will need to be added upstream. Separate fails to draw anything.

Change-Id: I7bcff3679ac5b10b0f39c5eaa19a36b4b1fe8d53
2024-08-25 19:30:01 -04:00
Franklin Wei
ea0e3704a8 puzzles: resync with upstream 262f709.
This is the first resync with a fully unmodified upstream repo. This
includes a new scanline polygon renderer in the upstream puzzles
distribution. This allows us to get rid of the monstrosity of a
polygon renderer we had been shipping in rockbox.c.

Change-Id: I23628c74bb5ff7a9e7932bf16d68a1c867c49969
2024-08-16 16:31:28 -04:00
Franklin Wei
903e8c5b32 puzzles: remove unnecessary files from the src/ directory.
This updates the resync.sh script to be more intelligent about which files
it copies from the upstream tree. It now attempts some rudimentary parsing
of the puzzles CMakeLists.txt file to figure out which files are actually
necessary, and copies only those.

This adds a new SOURCES.rockbox source file list for the Rockbox-specific
parts of the port.

Change-Id: I461f87ac712e3b2982dcbb0be9d70d278384a4e7
2024-08-16 16:31:28 -04:00
Christian Soffke
28badc5703 Fix yellow from commit 52b9656ed6
Change-Id: I449396e4a43a6909738912ae2a6284acdf16352a
2024-08-11 18:49:47 +02:00
Christian Soffke
52b9656ed6 Fix red/yellow from commit 8dcd781291
Change-Id: Ie5761f8f31f1d3648ba67220299cbcba582ed69d
2024-08-11 18:09:50 +02:00
Christian Soffke
8dcd781291 plugins: Playing Time: Add 'Remaining' and 'Single Mode' options
1) Remaining:
Sometimes, you may only be interested in how
much time is left in a playlist, but don't care
about the progress already made.

The new option will disregard already played tracks,
which can be much faster, depending on your position
in the playlist.

2) Single Mode:
When 'Single Mode' is enabled (and set to something
other than 'Track'), you now have the option to see
the time elapsed and remaining specifically for
that section of the playlist (e.g. the playing album).

Change-Id: I786eaababc537f565ab3fa4de1c46b7d5f3d1101
2024-08-11 17:30:19 +02:00
Franklin Wei
1f7ea715db puzzles: resync to ee5e327 (Simon's 1c1899e) and update documentation.
Updates URLs of relevant upstream repos to longer-lived Github URLs instead
of my personal site.

Change-Id: I08bba5c12193c999f252b4ea70ae40c9d1a3552d
2024-08-08 23:49:33 -04:00
Franklin Wei
ab3982247d puzzles: remove timestamp from genhelp.sh output.
This will reduce noise in the Rockbox commit history.

Change-Id: I2d6d02cd3ae7e742b30ecd9db9335fb386c33f3a
2024-08-08 23:47:48 -04:00
Christian Soffke
2f8cab9190 plugins: properties: keep theme enabled
Launching a themed plugin can cause the screen to
flash due to the theme being disabled, before it
is re-enabled right away. For the Properties plugin
in particular, this seems a bit annoying and
unnecessary.

Change-Id: Ifa0275b453369051cc63a3c626551f54120fdb41
2024-07-30 22:08:18 +02:00
Christian Soffke
cb7ae38fcd plugins: properties: fix and refactor
- prevent buffer overflow that could theoretically
  happen if an input file's dirname were larger
  than sizeof(str_dirname)
- remove has_pl_extension, use existing filetype_get_attr
- move determination of props type to single function, and
  eliminate need for redundantly reading the container dir
  for a file

Change-Id: Ice7cfcb9d891d22a8eb549439569dda126435bc2
2024-07-30 16:07:40 -04:00
Christian Soffke
a430120b3f plugins: properties: delay UI viewport update
Looks a little nicer whenever loading takes
less than 0.5s

Change-Id: Ied6c03fa8b06009f442d8c51aeaa49ad09b89db1
2024-07-30 16:05:29 -04:00
William Wilgus
e3097bf92c [Feature] File Picker Plugin
allows viewers to pop a file browser to let the user pick a relevant file
which then gets run by the viewer

(only lua so far)

Change-Id: I7e6b4c2827fab5e9f596d336f546100636c4b871
2024-07-30 14:55:07 -04:00
Solomon Peachy
1a54398a33 fonts: Forgot to add the additonal Terminus sizes to the config
Change-Id: Ifffbc1252213c7cdef8c926cd5a2ed7c7bde0fa9
2024-07-30 08:15:24 -04:00
Solomon Peachy
86bff6214d properties: Use talk_fullpath() for voicing directory names
Change-Id: Ib40c881e7b3053e7e4ef5c5adbe5c3bfec27efed
2024-07-28 17:01:53 -04:00
Christian Soffke
70b96193e7 plugins: properties: use UI viewport for displaying progress
Prevent switching to a fullscreen view when scanning
a directory, which could be a bit jarring, depending
on your theme of choice.

Also pop context menu activity immediately, without
refreshing, so it isn't redrawn when returning from
plugin.

Change-Id: I021e5880505e7f121163851ae732eb47509cc5d8
2024-07-28 20:18:43 +02:00
Christian Soffke
545271c4de plugins: extract redundant functionality from stats/properties
Also:

- Enables cpu boosting for Stats
(*much* faster on some players)

- Displays file size in Stats

Change-Id: I888ba054e1f8c2985fbf8dca36e11e6ef130e7ca
2024-07-28 20:18:41 +02:00
Christian Soffke
6d19214eeb list: remove redundant setting of icon callback to NULL
gui_synclist_init already does this for us

Change-Id: I1288d389c6191416cbc3da37a333b1cad84ee779
2024-07-28 15:33:11 +02:00
Christian Soffke
68fc5b4a7a plugins: playing time: fix missing voice
appears to be a regression from 5d39d987c0

Change-Id: I7b6907338aa647ba3253d56c304a143ab75d7aa0
2024-07-27 19:45:56 +02:00
Christian Soffke
a64faae09e plugins: properties: optimize slightly
- We only have to update stats->dirname when entering
a new directory, or when id3cb needs to be called
- Reduce frequency for calling get_action and LCD update
- Replace dir_stats->len and hardcoded MAX_PATH with
sizeof
- Don't show paths in Properties during scanning
- Don't show error when user cancels

Change-Id: I4afbeba561e69188e8039fa8d91eb1e91318bdab
2024-07-26 21:16:13 +02:00
Christian Soffke
b52e72db36 plugins: playing time: improve precision
Add up length and size of tracks in ms & Bytes,
then only convert units to s & KiB at the end.
Otherwise, the result can be noticeably off when
dealing with a large enough number of tracks.

Change-Id: I2a3e502508089830f63b24c3bbdbb0ab8f57cabe
2024-07-26 21:16:13 +02:00
Christian Soffke
23e5f77ab0 Remove mp3info function & remove list_do_action from plugin_api
Change-Id: Ia9a2d6889679832f23b19a989927277ba886cba4
2024-07-26 15:15:06 -04:00
William Wilgus
e94f778f1c plugin argparse update to add userdata to callback
fix a couple of gotchas if you aren't using NULL terminated strings

Change-Id: If5d2a60c0c3e1653e26df50bfda7d3191989bca9
2024-07-26 00:56:13 -04:00
Franklin Wei
cd1922fe74 puzzles: update documentation and copyright year.
Change-Id: I50731664f278f76946f96529f4ec696c9c115589
2024-07-23 20:56:05 -04:00
Christian Soffke
8d436561e2 plugins: playing time: use cpu_boost + simplify a bit
Change-Id: I860621530af1d5c6a6de9651fc81e235e43ece97
2024-07-23 21:14:31 +02:00
Franklin Wei
62b0456a4b puzzles: resync with upstream (adds new Palisade cursor interface).
Resyncs properly with this slightly modified upstream:

https://www.franklinwei.com/git/puzzles/commit/?h=rockbox-devel&id=1c62dac3f4f1a819a394ff33cc82912cf9079b50

Change-Id: I2018e81647c22010f9d74d8d14d13982f2969a8f
2024-07-23 06:05:45 -04:00
Franklin Wei
09aa8de52c puzzles: resync with upstream
This brings the puzzles source in sync with Simon's branch, commit fd304c5
(from March 2024), with some added Rockbox-specific compatibility changes:

https://www.franklinwei.com/git/puzzles/commit/?h=rockbox-devel&id=516830d9d76bdfe64fe5ccf2a9b59c33f5c7c078

There are quite a lot of backend changes, including a new "Mosaic" puzzle.
In addition, some new frontend changes were necessary:

- New "Preferences" menu to access the user preferences system.
- Enabled spacebar input for several games.

Change-Id: I94c7df674089c92f32d5f07025f6a1059068af1e
2024-07-22 21:44:08 -04:00
Christian Soffke
a286555578 plugins: properties: Add Directory Track Info
Change-Id: I4bf5ececc73a52afa6c5ff46f23b5ad2368826c0
2024-07-21 13:50:39 +02:00
Solomon Peachy
66b0280bb1 FS#13445: Fix AI regression in Superdom (Uwe Schächterle)
The fix in e72bae7c3f was subtly wrong due to variable re-use.

Change-Id: Ibad3ad675a70682580dda0e7b2097702aa880524
2024-07-20 08:25:05 -04:00
William Wilgus
7e90760a48 [Feature] Playlis to cue plugin
generate valid cue files from a playlist

uses remarks to store extra id3 info and display and playlist index

Change-Id: I00c9f6389445bb601dde6eb8f36157044024f8cb
2024-07-20 07:27:01 -04:00
Solomon Peachy
6af637645a FS12727: Fix buggy strength calculation in superdom
Change-Id: Ib72385a488d7459af80b42972143b18ac2c2982f
2024-07-19 18:26:28 -04: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
9b8cfd1bb3 FS#10959: Fix multiple bugs in brickmania (Matteo Italia)
- offscreen ball check;
 - "suicide button", with its documentation in the help (defaults to Down+Fire+Quit on targets that have DOWN defined, Fire+Quit held for some time for the others) ;
 - help screen made a little more clear (IMO) by underlining the key names;
 - help screen *code* made a little easier to handle, adding the last element number in the words array (this eases the formatting specified in the other array);
 - now the game does not delete the savefile after it loads it, but only by request (to do it a new menu entry was added); so, now "Quit without saving" will actually leave you to the state of the last savefile instead of resetting the game;

Change-Id: If3eeabada1566dcd4a9473d3d1e361d4921e4005
2024-06-30 20:32:38 -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
Solomon Peachy
f3de4729ce Fix an issue building the fft plugin on greyscale targets on some simulator toolchains
The fft plugin uses pluginlib osd stuff _and_ greylib together,
which results in two conflicting declarations of the _grey_info struct.

Normally we treat the one in pluginlib as __weak but we disable that on
windows simulator builds, because the osd code ends up requiring it.
due to not using-function-sections and -fdata-sections on simulator builds.
Simply disabling all of that crap doesn't seem to help.

So instead, for simulator builds, mark the fft's struct as extern, only
using the one in pluginlib.

Change-Id: I1adf9acc265a60f91b8ac0fcad9d792e3240a9d9
2024-06-27 20:42:32 -04:00
Solomon Peachy
a9254da767 build: Fix yellow introduced in 5d39d987c0
Change-Id: If17a04922006e1fa1f65543563da69f8bb6c503a
2024-06-24 10:59:27 -04:00
Roman Artiukhin
95d8168385 plugins: playing time: Increase buffer for size strings
10 is too short for some localizations (for instance russian 103.23МиБ requires 13 chars due to utf8 encoding). Use 20 instead

Change-Id: I4c7d1233358c8322545fce45dc798691410dd21e
2024-06-24 16:59:14 +03:00
Roman Artiukhin
5d39d987c0 plugins: playing time: Show info in 2 lines (header + details)
Improves readability on small screens.
See WPS -> Context Menu -> Current Playlist -> Playing time

Also, Russian translation is adjusted accordingly.

Change-Id: I23662ccb324f07a742179ff274453416bb8eff08
2024-06-24 16:59:14 +03:00
Solomon Peachy
a1c526f35f lua: Fix Windows Simulator build.
(Basically, use the OS-provided gmtime() instead.  It's pulled in via
 another header we need..)

Change-Id: Ia09609a3a38dc58133a4a209cc803f0d9d0802f4
2024-06-22 10:06:47 -04:00
Solomon Peachy
231797dfa8 mikmod: use -DMIKMOD_STATIC to make building under windows happier
Change-Id: Ib42c336d592358c7b53bbd94d43c69ed9977679f
2024-06-22 10:03:01 -04:00
Solomon Peachy
53a43522a3 mikmod: Fix null pointer dereference in mikmod plugin
While playing, the user can switch between
status/samples/instruments/comments screens.  The instrument names are
blindly passed to printf, which will lead to a null pointer dereference if
the instrument name is NULL.

...Which happens with some .IT modules that I have.

This should arguably be fixed in the printf implementation, but we still
shouldn't be passing in NULLs as string arguments!

Change-Id: I2899e2f7e10565c251e495752b3ef1bbccea82c7
2024-06-20 15:16:22 -04:00
Solomon Peachy
73f40d8a23 build: Experimental LTO support, phase one
* Only codecs and plugins are enabled
 * Only native builds (so far)
 * Only tested on xDuoo X3 (MIPS, monochrome)
 * opus & speex generate some warnings
 * Significant compile time impact

Change-Id: I519b0d179631a54b2103cd67225bd5ec6ad3bd2f
2024-06-18 08:15:47 -04:00
Solomon Peachy
ec23260fd1 mikmod: Settings names should _NOT_ be i18n'd.
Regression was introduced back in 2019 in 2ebb8da275

Change-Id: I035e295b4e17e1f834059d1c6466562000749e54
2024-06-11 10:13:40 -04:00
Solomon Peachy
c97954f014 FS#13434: Partially internationalize the textviewer plugin
* Converted over all previously-translated strings
 * Lots of comments added to mark the next phase
 * Voice filename of the file being loaded if possible

Change-Id: Ia3219bbfa4505ad29a25bcf1d6eacc94c59a2a83
2024-06-11 09:53:40 -04:00
Solomon Peachy
46ec07e4be mikmod: partial revert of previous commit.
The strings in the struct configdata[] are only used in the settings
file, and not displayed.  Therefore there is no need to translate them.

Change-Id: Id9e03c4b0454412b319ad678e6f57a46e1da0f6e
2024-06-07 18:10:48 -04:00
Solomon Peachy
20f50bbca3 plugins: mikmod and chessbox weren't fully translated
This unfortunately required adding four more strings.

Change-Id: I656c3c4902de5f841ea742549b3d122463e399a8
2024-06-07 17:47:17 -04:00