Commit graph

38052 commits

Author SHA1 Message Date
William Wilgus
c3fd32bdf2 [Feature] playback logging from core
people don't like having to remember to run the TSR plugin so
lets meet them halfway

all tracks are added with timestamp, elapsed, length, trackname

added buffering for ATA devices

still needed:
-Done -- a plugin that parses for duplicates and reads the track info
to create the actual scrobbler log
(log can be truncated once dumped)
this should allow you to run the plugin at leisure

later I'd like to expand this logging to allow
track culling based on skipped songs..

remove the TSR plugin as hard disk no longer need to use it

Change-Id: Ib0b74b4c868fecb3e4941a8f4b9de7bd8728fe3e
2025-01-13 00:45:09 -05:00
Christian Soffke
e5c9846cb4 Playlist Catalogue: fix: "Save Current Playlist" may fail silently
- After rebooting, unless the current playlist
had been manually resumed already, the "Save
Current Playlist" option in the root menu's/
playlist catalogue's context menu failed to work.

- Eliminate error message attempting to view current
playlist when no control file present.

Change-Id: I58f1d3dc6f256fcee106ff5a17f69fa46d67b2e4
2025-01-09 06:10:46 +01:00
Christian Soffke
897a96996b Playlist Viewer: fix: deleting track starts playback
When playback was stopped (not paused), deleting
the first track of the current playlist started
playback.

Change-Id: I0bd09e1254399d003109215e4e8363a0cd045ac0
2025-01-08 23:23:33 -05:00
Solomon Peachy
e4fb35f173 Revert "Toolchains: Update to GCC 9.5.0"
This reverts commit 573ba5472e.

Reason for revert: Accidentally pushed to master, Maintainer will be put in timeout.

Change-Id: Iaa5c6eb18ae40dd64c13db75c0c3f6f519922d4a
2025-01-08 09:35:18 -05:00
Solomon Peachy
ada000e8de builds: Add 'Creative Zen V' as an unusable target
Change-Id: I3da683c3d9bc41336d3c5b35415c3248ff4371ae
2025-01-08 09:33:35 -05:00
Solomon Peachy
573ba5472e Toolchains: Update to GCC 9.5.0
All toolchain dependencies are circa the GCC 9.5.0 release:

  GCC 9.5.0, binutils 2.38, gmp 6.2.1, mpfr 4.1.1, mpc 1.2.1, isl 0.18

Native:

 * arm - mini2g, nano2g seems to work
       - ipod6g boot hang on 9.5.0 (possibly leading to disk corruption)
 * mips - xduoox3 seems stable so far
 * m68k - binaries untested

Hosted:

 * arm - binaries untested
 * mips - erosq seems stable so far
 * Android NDK - unchanged at GCC 4.9.4

Change-Id: I614f1b198643bfa8c45f68e4d8e15307a4998618
2025-01-08 09:31:51 -05:00
Solomon Peachy
9417ece0ea imx233: Make bootloader compile, fix up remanining warnings
Change-Id: Ie87d178c56455b93364dffa656ebbee9cd7a4bad
2025-01-08 09:14:20 -05:00
Christian Soffke
18aa0f6278 Creative Zen Vision: fix config file (?!)
If I'm interpreting the git history correctly,
the config file for Zen Vision was at some point
inadvertently replaced with one for the
Zen Vision:M.

This deletes the currently unused creativezv.h,
and moves its contents into zenvision.h.

The config files appear to be identical except for
CREATIVE_ZV vs CREATIVE_ZVM define, different
keypads (CREATIVEZVM_PAD vs CREATIVEZV_PAD) and
BOOTFILE_EXT (zv vs zvm), a different model name
and number, as well as different LCD dimensions
and DPI.

The buttonmap still seems to require adjustment.

Change-Id: I9a5e65df750db21be5f5a1ed7a80a50706237781
2025-01-08 08:06:45 -05:00
Solomon Peachy
f1173e07ec imx233: Fix clkctrl for STMP3600 variants (creativezenv)
Change-Id: Ia8f0ce13cdf7dcbf1339bb7648f7a99822f74017
2025-01-08 08:04:25 -05:00
Solomon Peachy
4cd0c35150 imx233: Fix up compilation problems with the IMX233 ATA driver
Change-Id: I726b76aa4ac3e0986f530727d342c99909a1742c
2025-01-07 20:29:35 -05:00
Solomon Peachy
14b8820231 ata: we shouldn't ry to do FLUSH_CACHE_EXT if HAVE_LBA48 is not defined
Change-Id: Ic3da25a144bfd7ae41ee2e012a90e38aacac4df9
2025-01-07 19:53:20 -05:00
Solomon Peachy
8b01f939d8 hitiet ma8/ma9: add in keymaps for all plugins
Largely guesswork.

Change-Id: I8ab8d36de4bbdcf25dcf7d3442266bfb0a370b6f
2025-01-07 14:22:53 -05:00
William Wilgus
0b5f1b68e6 [Bugfix] Copy current lcd contents into empty background buffers
the manual states the following:
%V(0,0,-,-,-) %VB
Use %x(filename, 0, 0) to draw a backdrop image (If you want one!)
Then add %V(0,0,-,-,-)

if you forget then it causes display corruption
due to the uninitialized background buffer

instead make a copy of the current screen into the blank backdrop
so we won't be showing garbled data on the screen

Change-Id: I3f0df131d36537e91688e104c9445a604f657362
2025-01-06 02:26:11 -05:00
William Wilgus
907c91997e [FS#10686] Peakmeter on ipod 5g using too much CPU
I think this is probably a good idea in general

Change-Id: I124e8743a847aa12013ef3b93c8b318e42714b34
2025-01-05 16:57:18 -05:00
Christian Soffke
018ccf4e47 Playlist Viewer: Fix dir not updated after playlist removal
Missed this in 6a865f2430

If you entered the Playlist Viewer using the
context menu option "View", instead of from
the Playlist Catalogue, a playlist file that was
deleted due to the removal of all of its tracks
would still be displayed in the directory when
returning

Change-Id: I54ca34f70344e289d9e2cb413ee2a38e5bd7a92b
2025-01-05 21:41:18 +01:00
Christian Soffke
00066a4927 Playlist Viewer: slight simplification
1) Don't re-initialize the Playlist Viewer before
closing it, after making an on-disk playlist the
current playlist. It's obviously wasteful and this
seems to have only historical reasons that don't
apply anymore.

2) Naming adjustments:
- change "onplay" prefix to "context" (e.g.
pv_context_result context_menu, instead of
pv_onplay_result onplay_menu), since onplay requires
being aware of the history for it to make any sense
- rename update_lists to update_gui, to differentiate
it from update_playlist
- change update_viewer_with_changes to update_viewer

3) gui_synclist_del_item(playlist_lists) is not
needed anymore after removing a track, because we
already  indiscriminately reset the synclist's
number of items and reselect within the list's
new bounds from update_viewer_with_changes.

As a result, MODIFIED is applicable to both
reshuffling and to removing a track, so
ITEM_REMOVED can be eliminated as its own
enum value.

Plus, SAVED does not require a special case and
can be renamed to PL_UPDATE, so it is usable
when track display is adjusted, in order to
force an update of the playlist buffer.

Change-Id: Ic5202e03223a1ddbb9ff87e388a16ecde39165ef
2025-01-05 14:39:24 -05:00
Christian Soffke
6a865f2430 Playlist Viewer: Delete playlist when emptied
When you removed all tracks from an on-disk playlist,
you were asked whether you wanted to save it, which
would fail, but did not show any accompanying message.

Instead of trying to save the playlist, after getting
the confirmation, delete the playlist file from disk.

Change-Id: Iad54f2f490b15dd9c8a8fdfb8f12e58fd17d5e36
2025-01-05 14:39:24 -05:00
Christian Soffke
0012411fc5 playlist: Simplify playlist_load
Reset fd for the on-disk playlist at the place where
ownership is transferred in playlist_set_current (which
already has a note, that the playlist will be effectively
closed, but did not reset the fd).

Also ensure, that calling playlist_load closes the fd for
the on-disk playlist (and its control file), if any were
left open - even though this is not supposed to happen.

Generate name of control file in playlist_init to be more
consistent with the behavior for the current playlist.
Only a single playlist can be loaded in the playlist viewer
at the same time, so generating random names shouldn't be
needed.

Change-Id: I65e0fc07ce608c1d333a90447e18482787a98b8c
2025-01-05 14:39:24 -05:00
William Wilgus
5d9b01b9ed [Fix Red] define lcd_awake for targets with lcd_sleep
Change-Id: I62f8f7908f2877d4b255075120f87e3c9a375f66
2025-01-05 12:12:57 -05:00
William Wilgus
734cc3e8d1 [Bugfix] call lcd_awake() unconditioanlly on shutdown for devices with HAVE_LCD_SLEEP
last patch limited this to the 6G but the ipod Video has similar reports

I have a feeling there are others and enabling this unconditionally shouldn't hurt
the other devices

Change-Id: Ie4077299550ee028c32d746e5fe6c60b707f052e
2025-01-05 10:59:46 -05:00
William Wilgus
f42343b715 [BugFix] Ipod 6G Classic Shutdown Hang
I think it comes down to lcd_target_enable_clocks(true)
which turning on backlight or lcd_awake calls

https://forums.rockbox.org/index.php/topic,55159.0.html

Change-Id: Iab2a0abc0763e63213f01bda79dca5e39aa41fc4
2025-01-05 10:15:29 -05:00
William Wilgus
22d921c55c [Bugfix] Plugins run by START_IN_SCREEN won't open another plugin
PLUGIN_GOTO_PLUGIN was using old key instead

Change-Id: If354bd441db7c0b0a476624c8c1dcb3d79f5d366
2025-01-04 15:18:35 -05:00
Christian Soffke
384c35418a FS#13537: format_sound_value alignment issue in themes
Positive values included a leading space, which
meant they weren't displayed center-aligned in
themes anymore.

Change-Id: Ibe75e9b81a2989c87630dd3ea78e4b90c6c74502
2025-01-03 13:45:14 -05:00
Solomon Peachy
af7ed73f31 FS#13539: Resync mikmod plugin with upstream
Brings it up to libmikmod 3.3.12, relased 2024-12-31

Also fix a segfault that only happened on simulators when using
non-default samplerates.

Change-Id: I2ade2d72a00edab5395328fe76a88a88516aac72
2025-01-03 11:34:24 -05:00
Christian Soffke
08c32cee7c Playlist Viewer: fix: Don't invalidate resume info unless current playlist
It makes no sense to prevent the current playlist
from resuming when some other playlist becomes empty.

Change-Id: Ibfb7a15b0826ed3baeefbc5060b13d73894b81e6
2025-01-03 01:03:28 -05:00
William Wilgus
888f4dbe57 [Fix Yellow] skin_backdrops.c screen is unsigned
Change-Id: Ib9a669f547c86d610b22ca85e761920dd5875243
2025-01-02 11:38:46 -05:00
William Wilgus
e65543cdc2 skin_backdrops cleanup
no functional changes.

remove some checks for screen when SCREEN_REMOTE
is not present

pack the skin_backdrop struct and use the space to remove
the static bool first_go variable

Change-Id: I17a96749d4995dd8124f3be4dd95bba58ee54b6d
2025-01-02 11:22:32 -05:00
Dana Conrad
f2dd489120 FS#13535: AXP2101: ADC / reporting improvements
Improve ADC behavior, add correct conversion
for die temperature, add readout of EGauge to debug screen.

Add delay to give ADC time to get a good reading. Initial reading
may still be 1-3% optimistic, which is probably ok.

EGauge appears to be pretty good, but no great need to convert
to using it either.

Change-Id: Iab9d50e2427f656ad0875f9a623b03545fc69881
2025-01-01 20:49:07 -05:00
Christian Soffke
d038aa47fe panicf: Add version info
Makes it easy to figure out the build
from PANIC screens posted by someone

Change-Id: Ic0e6fbb20b3d7b8caf35aedad48136bf3e914c2e
2025-01-01 20:48:03 -05:00
Franklin Wei
07036061fc puzzles: update README.
Change-Id: I4e3306bdaa391f7aa698c67f00285975e398ee02
2025-01-01 19:13:04 -05:00
Franklin Wei
334c725a45 puzzles: clean up resync.sh script.
This script has grown into a bit of a maintenance nightmare over the years.
I've cleaned up and better documented some of the nastier bits.

Change-Id: I2bb95a89b1edc9a294d9e1112f5be1b877567356
2025-01-01 19:12:49 -05:00
Nick Feldmann
488306e1eb android: target java 1.7 bytecode
Java 17 on the host does no longer support targeting Java 1.6.
This causes the build to fail.
Build Tools 19.x support Java 1.7 bytecode and converts it to dex
files for Android 2.2 or later, unless one uses the
try-with-resources syntax which requires KitKat.

Change-Id: I523746427f9ba3b60bef73fe1379b272cf048a05
2025-01-01 09:59:46 -05:00
Nick Feldmann
f1b53d129f android: make installToolchains.sh work again
Google changed their site and the layout of downloaded SDK zips.
Also add a warning to configure if a r2x series NDK version is used, because those aren't supported - they no longer contain GCC, only clang.

Change-Id: I48a42c38c9b657ac6662162a39763aac73ec502a
2025-01-01 09:59:34 -05:00
William Wilgus
e79996e031 [Bugfix] strcasestr
I pushed the wrong version of the function it was an experiment
on resetting haystack past the searched string but it is missing the
rest of the logic and therefore misses strings that should match

Change-Id: I23391d2e753840bfeaab8e26d9987198272fe7b8
2024-12-31 23:06:08 -05:00
William Wilgus
44e36aba94 skin_render small cleanup
should be no functional changes
looking at the blame for this file shows the buffer was made
static originally due to stack overflow.

Removing static buffer in favor of using the skin buffer
directly shouldn't cause a regression.

Change-Id: I941ed675c5ba8799bea678af61c196eb453a4788
2024-12-31 20:17:56 -05:00
Yakov
832e0fd458 update .gitignore to ignore macos files
dYSM files were generated upon building the simulator

Change-Id: Iff621925c862c784494165ce7d0d145f523fc1da
v
2024-12-31 15:56:28 -05:00
Christian Soffke
fe78b07db6 Playlist Viewer: Address problematic index buffer sharing
Borrowing the index buffer of the current playlist
can be problematic, since it is possible to start
playback of a different playlist from the playlist
viewer without leaving the viewer, thereby causing
a collision.

As long as we have a sufficiently large plugin
buffer, take advantage of it, regardless of
playback state.

When playback is stopped, always resume the playlist
from the control file before loading it, even if the
playlist has finished playing, to prevent running
into invalid indices.

Note:
dcfrefs_handle is initialized to 0 automatically for
the static on_disk_playlist struct.

Change-Id: I2a05a6a51a088ea9ba73858c353525db9e61c36e
2024-12-31 10:08:31 -05:00
Christian Soffke
3389a08d56 dynamic playlist erase warning: skip for finished playlists
Change-Id: I9d209a011024e658ffc4da0a723ae8f9ec407702
2024-12-31 14:59:18 +01:00
Solomon Peachy
a8540390c2 FS#13536: Updated German Translation (Karl Huber)
Change-Id: Ib2a6e03496f9a1a50e853ef4d2edc830af99310b
2024-12-31 07:15:43 -05:00
William Wilgus
727d2ab749 wps skin_parser free up skin ram with int16_t
change ints to int16_t especially image and rect sizes

ditto font_ids

frees ~250 bytes in cabbie

Change-Id: I271be05a26e2090f6e1b11d809afd1c4bee32803
2024-12-31 01:53:20 -05:00
William Wilgus
ea5ca58dc6 optimize language.c lang_english_to_id()
speed up comparisons by getting length of the supplied english string
and filter based on length finally use our length to do memcmp since
we know where the null is already

Change-Id: I595f03ae4b08ee0d59bb9adacbe3b69f08991a9e
2024-12-30 23:17:57 -05:00
William Wilgus
186ad1234b [BugFix] pathfuncs.c path_append_ex basepath_max might cause buffer ovfl
strlcpy returns the length of the string that would have been copied
had there been sufficient space basepath_max might still be
larger than buf_size yet smaller than len
which would result in a null terminator being written past buf[buf_size-1]

Change-Id: I43e8ba9f72ea35bfe4f759ecd102c2e4bd26eb75
2024-12-30 19:35:33 -05:00
William Wilgus
27aff7ec8d strcasestr optimize for speed and size
revisit this and shave a bit more off on code size

Change-Id: I90546b931780c6779960129619a41cc6592c44e1
2024-12-30 16:42:55 -05:00
Solomon Peachy
6f542b6540 libc: We need to define SIZE_MAX in our stdint.h
Change-Id: Ifbf7ad4ea62c5543bcc7e0bd18d612d30d60b63e
2024-12-30 15:22:11 -05:00
William Wilgus
2a825b866a SIMULATOR help text fix yellow
Change-Id: If425ead1c53f8021f6047abc6c440c1343c68e79
2024-12-29 21:46:34 -05:00
William Wilgus
fcbfa494f5 [Feature] Simulator add F1 help text
give a listing of the keys used in the simulator

Change-Id: Ifcb91c59de41c214d050bd175065fabb6cf9eac4
2024-12-29 21:25:48 -05:00
Christian Soffke
9ba59477a1 sdl: improve window resizing on macOS
This enables smooth resizing of the window using a
fixed aspect ratio, instead of snapping into the
correct aspect ratio only when the resize operation
has finished, by using an SDL event filter that gets
events delivered during the resize operation
(whereas SDL_PollEvent blocks until done on macOS).

Change-Id: Ie6614e4b6f49a24469c5ee6a69721c9fbd440dae
2024-12-30 01:08:12 +01:00
Christian Soffke
8ce9d9e39e simulator: maintain LCD position/size when toggling background
Change-Id: Id76464b77b33d531d6075a83038466e18fab3a7f
2024-12-30 01:08:11 +01:00
William Wilgus
8884284da4 simulator hand icon on button region mouse over
add a hand pointing cursor over the buttons

Change-Id: Idb54e084b5b768de845a94c5bb13e4435d9b82e5
2024-12-29 16:43:21 -05:00
William Wilgus
fc26ba3f20 Simulator ClipZip ClipPlus add power and volume buttons
Change-Id: I6c7997f436bd0d7f5c0421489823d481b0396eea
2024-12-29 01:38:21 -05:00