1
0
Fork 0
forked from len0rd/rockbox
Commit graph

5040 commits

Author SHA1 Message Date
Aidan MacDonald
6ea328f0f1 arm: add div0 handler for 64-bit division on ARMv7-M
Even though ARMv7-M has a hardware divider, 64-bit division is
handled in software and needs a div0 handler. The libgcc routines
call __aeabi_{i,l}div0 so we alias those to __div0.

Change-Id: I5152c43d39e25e03f31404753f13978a614aca06
2025-04-19 09:43:40 -04:00
Aidan MacDonald
639b587fc7 arm: add support for processors with hardware division
ARMv7-M has hardware division, so it doesn't require __div0
or any support functions for 32-bit division.

Change-Id: I840683a1a77d737f378899ca4bcf858216b81014
2025-04-18 09:22:48 -04:00
Roman Artiukhin
08bd5cdd3d plugins: db_folder_select, disktidy, main_menu_config: Fix selection dialog with Show Icons set to No
Temporarily enable icons for required lists. Probably not a proper fix but a simple workaround.

Fixes FS#13574

Change-Id: I011a80e2a9f03019927b32e92cd5a35275c051e1
2025-04-10 12:30:29 +03:00
Christian Soffke
66a18f7c30 pictureflow: fix greylib crash when album not found
Change-Id: Ic9c532234613c805d851710b960db0c91d1049ab
2025-04-03 15:35:27 -04:00
Roman Artiukhin
44e97b9ef6 plugins: imageviewer: Don't reload the image on the prev/next action if it's a single image.
Fixes image reloading when only a single image file is present among other files.

Change-Id: I6400af556d866ac96a3532712563bf01cbd29f68
2025-03-28 10:47:00 -05:00
Solomon Peachy
68c3fbe263 erosq: Rework pluginlib mappings a little
prev/next -> PLA_LEFT/RIGHT
volup/dn  -> PLA_UP/DN
scrollwheel -> PLA_SCROLL_*

This will fix bubbles and any other plugin that is explicitly expecting
PLA_SCROLL_* events.

Change-Id: I9fd4c2e6bdd13e147b20e0f0f600e7e0b9a82842
2025-03-25 17:34:56 -04:00
Solomon Peachy
54c5ef60df mikmod: Decouple the info scrolling from volume setting
This way volume setting will always follow UP/DN conventions
but scrolling is reversed as needed.

Change-Id: I3fc72c29d78fab46bdf19947a88c02e039bfad51
2025-03-18 11:02:55 -04:00
Solomon Peachy
1dc8a5a8ce Revert "mikmod: Invert scrolling on everything that's not an ipod"
It fixes scrolling but inverts the volume, which is worse.

This reverts commit 003da4d223.
2025-03-18 10:58:26 -04:00
Christian Soffke
8d50ac7773 PictureFlow: Offer to update cache if tracks not retrievable
Present user with a prompt, so that they don't
have to manually execute "Update cache" from
the settings menu after a database update

Change-Id: Ie2157f04329e8ffc10afbeb047486fe4b0b70bcf
2025-03-11 08:41:01 -04:00
Solomon Peachy
003da4d223 mikmod: Invert scrolling on everything that's not an ipod
mikmod uses WPS_VOLUP and WPS_VOLDOWN to scroll down and up
respectively, which works for the ipod clickwheel, but results in
inverted scrolling for everyone else.  Correct this for all non-ipods
and correct the manul (which actually didn't report this either)

Change-Id: I5a84512dfbf068ca5c4206f4362185d4d7e5c9fc
2025-03-11 08:38:38 -04:00
Christian Soffke
fbfdd8bb41 PictureFlow: Rejigger menu options
Put Sort command as first entry into main menu,
and immediately exit menu after sorting has changed,
to allow quicker adjustments than before.

Move commands to update or rebuild the cache from
Settings into main menu for improved discoverability,
and since they aren't really proper settings anyway.

Add 'Display' submenu to Settings which now houses the
following more 'esoteric' options that are likely to
need only infrequent adjustments:

- Backlight
- Display FPS
- Spacing
- Center Margin
- Number of Slides
- Zoom
- Resize Covers

Change-Id: I5bb3ee922cb870f9b6db9bd6ac9480d49f5decf3
2025-03-09 18:29:07 +01:00
Christian Soffke
dff29110c2 PictureFlow: Don't require restart before rebuilding cache
You were asked to restart the plugin, before
PictureFlow would rebuild the cache after
selecting the menu option for it. This patch
eliminates the need for leaving the plugin, and
PictureFlow will rebuild its cache immediately.

Change-Id: I47ec78339fdc91efd42cd7850829256417682eae
2025-03-09 13:27:19 -04:00
Christian Soffke
dec8d4101d PictureFlow: Fix some annoyances
- Skip superfluous "Wait" splash before displaying
  index progress

- Display current step that the progress bar pertains to

- Exiting the "Confirm Quit" screen in order to continue
  indexing was *extremely* fiddly because of picked-up
  button events that would often immediately return you
  to the same screen instead of getting you out of it.
  This should behave more sanely now. Plus, you should
  only see the Quit confirmation screen as a result of
  pressing Menu or Cancel now (instead of touching the
  scroll wheel for example).

- PictureFlow was unresponsive while removing duplicates

- A Cancel action initiated by the user isn't treated
  as an error anymore, nor is a message displayed after
  user has already confirmed their intention to quit.

- The plugin doesn't return errors anymore if the user
  has already been presented with an error message, to
  eliminate redundant splashes, delays, and an unwanted
  return to the main menu

Change-Id: I255b8f760ccb0acdfddcacbc7d8a1b17b063e53e
2025-03-09 09:06:42 -04:00
William Wilgus
10b4cab793 battery_bench export_battery_tables add warnings
moves shutoff and disk safe to end of file

add warning

comment out shutoff and disksafe level as further protection

Change-Id: I1723b2ae6b2bd7fd359dc7dfcc8f1958d97673fc
2025-03-07 13:14:31 -05:00
Solomon Peachy
48b5054a7e more red fixes.
Change-Id: I27f0f4e616585608646b832bef7c4b0cfbd08917
2025-03-06 13:45:11 -05:00
William Wilgus
a1fd56ba8e [FixRed] Bootloaders, devices without size_t defined
Change-Id: I452760478ea7324458a05c7af0a88bcbe92def45
2025-03-06 12:39:37 -05:00
William Wilgus
10f8312db4 FS#13538 export and import battery level tables
when battery_bench is run
exports a file in the rockbox directory called 'battery_levels.default'

if the user wants their own levels they can rename the file battery_levels.cfg
and it will be loaded at boot

some minimal error checking is performed prior to using the values

added manual entry

Change-Id: Ia0126faced0c7229fcf8385a1bcb584b5a9dc378
2025-03-06 11:54:21 -05:00
Solomon Peachy
f3ce792af8 sysfont: Fix buffering debug screen, cube plugin, and vu_meter plugin
Instead of being hardcoded to expect 8px sysfont, make them scale properly

Change-Id: I02cc6cb53eebbd8241a142964bff305a1c5e535a
2025-03-04 13:40:17 -05:00
William Wilgus
dad8f163c3 lastfm_scrobbler fix formatting, progress messages, export mode
make the plugin context aware to allow user to one
click export from a shortcut, basically it checks if its running in the
file browser if elsewhere does auto export

use a buffer for the fixed portion of the scrobble data

add timed_yield to long running operations
add progress bars and messages as scanning for duplicates takes a while
speed up duplicate scanning 4x

1000 tracks processing took ~2 minutes with duplicate scanning down from ~5

previous patch makes playback logging create a new file after 512k
old files renamed playback_0001.log
make scrobbler able to parse these log files

add ability to skip tracks without metadata and count them

Remove duplicates only for resume or remove all duplicates

allow skipping tracks without metadata or save only filename

update manual

Change-Id: I115bcfd3381f5a978252aac1cdfcc080f0797dda
2025-03-01 19:16:46 -05:00
Solomon Peachy
4a6b27a712 chessbox: Get rid of strings for level 8/9/10
We've been limited to level 7 since approximately forever, so
there's no point in wasting translation strings on anything higher.

Change-Id: Idee0f1f0aa1b99d9efdcaa34d0d3130a54e1628e
2025-02-21 18:13:00 -05:00
William Wilgus
3c9233e972 [Feature] shortcuts_view plugin remember last item and return to it on menu cancel
Also adds the ability to supply a directory without the final slash
you then are take to the directory but have the ability to travel
up one level above before exiting
when you hit cancel

Change-Id: I1091fbe496e2c7c34ecb2113ab1cd31b0c678d9d
2025-01-21 22:10:46 -05:00
William Wilgus
7100090f99 Remove NVRAM infavor of a separate cfg file
remove nvram and use the existing settings framework for it

add a crc check to the user_settings data to see if we need to save
the user setting file or if we can just save the status file (resume.cfg)

move volume to the system_status struct so we don't write the whole settings file
over volume changes

allow user to still export volume with save sound settings

allow the user to also export pitch and speed

name the file .resume.cfg

Rename all the SYSTEM_STATUS save file variables to TLAs to save space and
discourage tinkering

Cleanup DEBUG_AVAIL_SETTINGS output

when saving user_settings it calls status_save as well this cause the resume
file to be written twice. instead remove the callback for status_save
when setting_save is called

remove header text when saving .resume.cfg

convert status_save() to status_save(bool force)
add SYSTEM_STATUS_UPDATE_TICKS

for ATA device set this to 5 minutes
since we arlready wait for the disk to be up before saving
we don't want to miss our window

for all other every 15 minutes

that way if the battery is too low by the time shutdown comes around you
don't lose much progress

Change-Id: I27214ffd6e5d5494ee5ca83b14f04a41ba426ad7
2025-01-21 00:04:32 -05:00
William Wilgus
4e271642df [Feature] Persist pitch settings through reboots part deux
Revisit this after discussion with chris_s on IRC and forum

Pitch menu now changes icon when pitch has been changed

uses NVRAM to save the pitch settings unconditionally

Manual updated

Change-Id: Idcb4c2b7fe42f7a203dc4bfc46285657f370d0fd
2025-01-19 00:29:47 -05:00
William Wilgus
c4ceea40bf [BugFix] pitch screen load config fd wasn't closed
check file_exist(PITCH_CFG_FILE)
close fd when finished

If you already have a setting saved and you reenter the pitch plugin
with differing pitch settings you will be asked to restore your
default settings

update manual entry to be a clearer

Change-Id: Iaaaf08983a355f9848412d1c6b0bba25d6ea8f39
2025-01-18 11:47:12 -05:00
William Wilgus
c7dfb9f916 [Fix Yellow] pitch_screen and configfile
place int32 in the conf file array it only supports upto 32 bit anyway..

Change-Id: I16bb6f3a924bab91739f09a4151df4e6be5bec69
2025-01-17 23:09:18 -05:00
William Wilgus
13c3214d9c [Feature] Persist pitch settings through reboots
saves the pitch setting across reboots

adds option 'Reset Setting'

Change-Id: I75d88f9653883a256c6cca0f7adcdccb2dd51406
2025-01-17 22:42:15 -05:00
Christian Soffke
4f5c9d9759 fix regression: playlist name suggestion for db and pictureflow items
In 2c4c1b9, I missed the fact that we still need these,
so that slashes in names aren't interpreted as a path
separator.

Change-Id: I2df0745669c4673497a506a99e754c63dcba045e
2025-01-16 18:17:41 +01:00
Christian Soffke
ad4113a7e9 plugins: image viewer: respect album art setting
Displaying large embedded album art in the
image viewer requires playback to be stopped,
which is pretty disruptive, so respecting the
system setting here may make sense

Change-Id: I479466bf26d85c3305d6c81e2c1818b2c2b2cbdb
2025-01-15 14:09:26 -05:00
Christian Soffke
2c4c1b9199 FS#12702: Fix illegal characters in suggested playlist filename
Issue had only been partially fixed in
3f3b738 by showing an error message

Change-Id: I91665ac826e0025fb80eadac31abffa03667cf62
2025-01-15 13:32:46 -05:00
William Wilgus
a5663ab3c0 [Feature] Add parameters when viewer is selected for open plugin
ask th user if they want to add a parameter when a viewer is set to an
open plugin entry (wps hotkey, start screen, etc)

Change-Id: I403ac79af15162aeecabb3607923113e27496e4f
2025-01-15 11:43:47 -05:00
William Wilgus
0493ee19c3 lastfm_scrobbler speed up track culling, better duplicate logic
rather than going through the whole file each time we can just walk
through the remainder speeds up duplicate removal by quite a bit

check timestamp of tracks to not remove multiple plays of the same song
at different times, unless back to back (then its probably a resume after
shutdown)

devices without RTC use current_tick but thats in centiseconds
convert to milliseconds so we can use the timestamp in the above calculations

my fix to the scrobbler_viewer makes the include menus disappear as
soon as you hide columns so explicitly mark if we are
dealing with a scrobbler log at load

Change-Id: I11bbebe9af45945a7e1326a5e419290086b05aaa
2025-01-13 18:08:40 -05:00
William Wilgus
ab9b687607 [BugFix] lastfm_scrobbler_viewer block search for non scrobbler logs
the scrobbler viewer will view any .log file but search and include
column only works with defined headers

it ends up showing a blank result so block this menu for non scrobbler logs

Change-Id: Ifc04dcab52d4416271388bee7d0cb10a144636a4
2025-01-13 02:36:20 -05:00
William Wilgus
c8ba67fa7d [Bugfix] plugins printcell_helper crash on NULL pointer
printcell_set_columns() can take a NULL pointer for the *pcs
it then uses default settings but those were contained within
the scope of the if(NULL) check.

Change-Id: I3147d1f4e3954fdcdb3adb74713f4c8a9a2c08ec
2025-01-13 00:45:09 -05:00
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
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
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
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
Christian Soffke
bfef0a2d6c PictureFlow: fix colors for keyboard and full screen tags
Change-Id: I2dfaf1ff982c6b1c7b7387d673818de7428f85a5
2024-12-27 19:15:09 +01:00
William Wilgus
0a88b818e9 lua make memcheck script eat all available ram (incld audiobuf)
Change-Id: Ia202c9097324985a3a9a9c96be8422c38e79cb3e
2024-12-26 01:49:01 -05:00
William Wilgus
962e1b2e69 [Bugfix, ASAN] test_mem plugin fix OOB read in read_test()
asan correctly identified an out of bound read in the test_mem plugin
This shouldn't cause any issue in normal use since the data isn't used

Change-Id: I52acabc4649397f9dd2ba7979f9210529ced2071
2024-12-26 01:49:01 -05:00
Christian Soffke
727c800c0d Don't force gcc as host compiler + fix clang warnings
On MacOS, gcc is a symlink for clang.

Patch gets rid of the warnings produced by clang,
when it is set as HOSTCC, and fixes voicetools
compilation on MacOS when calling make voicetools
from the simulator directory.

lua rb_defines_helper:
format specifies type 'int' but the argument has
type 'long'

codecs: opus / speex (LOGF):
format '%ld' expects argument of type 'long int',
but argument 7 has type 'off_t'

gigabeat:
variable 'size' set but not used

rdf2binary:
a function declaration without a prototype is
deprecated in all versions of C

rbspeexdec:
passing 'unsigned char *' to parameter of type
'char *' converts between pointers to integer
types where one is of the unique plain 'char'
type and the other is not

hmac-sha1.c
defining a type within 'offsetof' is a Clang
extension

Change-Id: I90539906698868f9589650585d865aee9f7e8539
2024-12-20 05:29:18 +01:00
Christian Soffke
15b18e478c plugins: properties: make file info displayable in fullscreen
Extend functionality for displaying info in fullscreen
to folders or files that aren't audio tracks (e.g., to
display the full length of a file name)

Change-Id: I73617e2fd7c291a3c49ddd1b108e418cf069d179
2024-12-16 01:44:53 -05:00
Vencislav Atanasov
1468649258 Convert non-ASCII characters to UTF-8 or C-string literals
Comments are converted to UTF-8.

Strings which are part of executable code are converted using C-string hex literals. A comment with the intended UTF-8 character is appended to such lines.

The "c"-looking character in mpa.c was actually a small cyrillic "s" (i.e. "с").

Change-Id: If3a889080ef60b8bf756ad9ada38baede93ce35b
2024-12-15 21:16:12 -05:00
Vencislav Atanasov
5d7c8a0df1 Convert non-ASCII characters to UTF-8
Comments and notes are converted to UTF-8. Already broken multibyte characters are fixed using common sense.

This patch contains no code changes.

Change-Id: Ia511ab84936cb2495ac17309493a9b98727a7902
2024-12-15 21:16:12 -05:00
Christian Soffke
8f5128da16 Show Track Info: Support fs tags in Playlist Viewer, Properties, and PictureFlow
Playlist Viewer falls back to splashf if there is not
enough plugin buffer space left for running the
view_text plugin .

Change-Id: I418731018b03f396270b68e5e2d2e69635df1af0
2024-12-16 00:20:10 +01:00
Roman Artiukhin
4062a6aefc WIP Show Track Info: Select on tag opens it in full screen
Mostly useful for reading comments

WIP as it currently works only from WPS. Doesn't work from file browser(see https://gerrit.rockbox.org/r/c/rockbox/+/5999). Also breaks playlist viewer if called from there. Not sure how to handle it properly in all cases and not currently planning to work on it

Change-Id: I441eb9c6b3fe50f58436111d83bc98a25841d656
2024-12-16 00:13:19 +01:00
Christian Soffke
5e66f0e762 plugins: Remove id3 lib
only remaining user is PictureFlow, and
function is arguably not lib-worthy at
this point

Change-Id: If5cff56fc4aed7c8029782a7087ba4cfef3ec4ea
2024-12-15 23:50:24 +01:00
William Wilgus
789aa0a695 Scrobbler plugin remove logf size warnings
using chris_s' trick to caste to 64 bit int

Change-Id: I28cac7e301d272351d44527531b46f1e211141fc
2024-12-11 19:35:02 -05:00
Solomon Peachy
a61c146e36 COV352716: Inproperly concatenated help text (very minor issue)
Change-Id: Id8393bd456e93215208c314ab72e0f3b710b3610
2024-12-10 23:11:48 -05:00