Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide
translations



whenwhatwherewho
Yesterday 10:48 9d82db1146: pwrmgmt: sleep timer: don't shut down while charging

This mirrors the behavior of idle poweroff, which inhibits shutdown as long as a charger is plugged in, even if a device is capable of powering off while charging.

Since usb_inserted() already checks for USB_POWERED, certain devices with the ability to power off while charging, already exhibit this behavior when using the sleep timer anyway.
firmware/powermgmt.c [diff]
Christian Soffke
Thursday 18:28 df7d68a6e2: Have "Create Playlist" always create playlist from all tracks
apps/playlist_catalog.c [diff]
apps/tree.c [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
Thursday 18:27 a77cb9dc77: playlist save: ensure required file exists, proper filename used

Trying to save a current playlist associated with a file that doesn't exist anymore, is likely to result in a panic.

+return to keyboard picker after complaining about missing dir.
apps/menus/playlist_menu.c [diff]
apps/playlist_catalog.c [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
Tuesday 16:16 8d2226f952: [Feature] Add failure messages to metadata logging

Previously logging just showed that the file was passed to the function without any indication that the parsing failed

Adds status strings to record failure to open, missing parser, parser error
lib/rbcodec/metadata/metadata.c [diff]
William Wilgus
Tuesday 15:41 dccda8c76f: [Bugfix] FS #12436 cache mode strings prior to font disable

by checking string len we can cache the USB hid mode strings

I guess if the user doesn't have enough glyphs they might still might not get the whole thing but this appears to work with 50 glyphs and the referenced russian language selected

remove call to GUI_EVENT_ACTIONUPDATE it is now counterproductive
apps/gui/usb_screen.c [diff]
apps/usb_keymaps.c [diff]
apps/usb_keymaps.h [diff]
William Wilgus
Tuesday 12:41 ecc72c0df9: Manual updates

- Reverse order of prev/next buttons in html manual
- Rename "Playlist Catalogue" to "Playlists"
- Update order of menu items in "Playlists" context menu section
- Add "View Album Art" to "WPS Context Menu" section
- Adjust wording in "Playlists", "Basic Controls/Concepts" and
"Database" section
- Fix: Playlists are saved to root directory (not cwd) if no path provided
- Fix: "Recursively Insert Directories" applies to all playlists, not just the current one
- Fix: Update description of "Create Playlist" option
- Generally refer to "current playlist" instead of
"dynamic playlist" and remove reference to "on-the-fly playlist"
manual/configure_rockbox/playback_options.tex [diff]
manual/configure_rockbox/playlist_options.tex [diff]
manual/configure_rockbox/wps.tex [diff]
manual/main_menu/main.tex [diff]
manual/rockbox-html.cfg [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
manual/rockbox_interface/main.tex [diff]
manual/rockbox_interface/tagcache.tex [diff]
manual/rockbox_interface/wps.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
Tuesday 12:41 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
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
Tuesday 12:38 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)
apps/plugins/mikmod/mikmod.c [diff]
manual/plugins/mikmod.tex [diff]
Solomon Peachy
Tuesday 07:02 3c4aed56c0: [FixRed] Creative Zen missing ;
firmware/target/arm/tms320dm320/creative-zvm/powermgmt-creativezvm.c [diff]
William Wilgus
Tuesday 06:26 4f3bbeaffc: Remove BATTERY_TYPES
apps/features.txt [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
bootloader/ipod-s5l87xx.c [diff]
firmware/export/config.h [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/aigoerosq.h [diff]
firmware/export/config/cowond2.h [diff]
firmware/export/config/creativezen.h [diff]
firmware/export/config/creativezenmozaic.h [diff]
firmware/export/config/creativezenv.h [diff]
firmware/export/config/creativezenxfi.h [diff]
firmware/export/config/creativezenxfi2.h [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/creativezenxfistyle.h [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/fiiom3klinux.h [diff]
firmware/export/config/gigabeatfx.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
firmware/export/config/gogearsa9200.h [diff]
firmware/export/config/hifietma8.h [diff]
firmware/export/config/hifietma8c.h [diff]
firmware/export/config/hifietma9.h [diff]
firmware/export/config/hifietma9c.h [diff]
...and 145 more files.
William Wilgus
Tuesday 05:23 fb115e5bdb: playlist_save: fix dir may not exist

Attempting to save a playlist to a dir that does not exist would make playlist_save panic.

https://forums.rockbox.org/index.php/topic,55241
apps/menus/playlist_menu.c [diff]
Christian Soffke
Tuesday 05:21 69664cc4e9: Asan fix warning for 1-bit vert #2

try #2 at this if there isn't enough data remaining to fill the columns then don't read any more data

looking at the blame for this driver it had similar logic originally

But really on native this is just extra overhead so.. Ifdef out for native
firmware/drivers/lcd-1bit-vert.c [diff]
William Wilgus
Tuesday 04:00 c31234bc32: Fix: Root dir bookmarks displayed for dynamic playlist

When the 'List bookmarks' button or hotkey was pressed, while a dynamic playlist was playing, bookmarks from the root dir were displayed, if any existed.
apps/bookmark.c [diff]
Christian Soffke
Monday 17:13 42a9582cc1: Asan fix warning for 1-bit vert

1-bit vertical displays overread the buffer due to the way the packing works, this isn't the hottest path anyway but we can check if height <= 8 and make stride 0 so the dummy data gets the beginning of the data instead
firmware/drivers/lcd-1bit-vert.c [diff]
William Wilgus
10th Mar 00:18 ae3b34734a: onplay: Enhance consistency of menu item order

Matches 'Playlists' context menu, by putting "Save Current Playlist" next to "View Current Playlist"
apps/onplay.c [diff]
Christian Soffke
9th Mar 22:51 2e91a67c3f: Deprioritize 'Create Playlist' option

Make "View Current Playlist" option more accessible by moving it into the spot of the 'Create Playlist' option, which currently appears first in the context menu, and is thus automatically selected
apps/menus/playlist_menu.c [diff]
Christian Soffke
9th Mar 17:29 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
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
9th Mar 17:27 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.
apps/lang/english.lang [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
9th Mar 16:46 87344d180b: Rename 'Playlist Catalogue' to 'Playlists'

When the Playlist Catalogue first appeared in the main menu in 2011 (FS #11808), the 'Playlists' menu item was renamed to 'Playlist Catalogue' which seems more verbose than is necessary these days.

Since we don't have a 'Playlist Catalogue' menu item in the onplay menu anymore, either, LANG_CATALOG can be eliminated.
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues-brasileiro.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/romaneste.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/slovenscina.lang [diff]
...and 9 more files.
Christian Soffke
9th Mar 16:37 272ce05396: Fix red 7693ecc
apps/tagtree.c [diff]
apps/tree.h [diff]
Christian Soffke
9th Mar 13:16 fffae07833: [Bugfix] Scroll engine, backwards scrolling causes display corruption

When a line is over a selected length bi-directional scrolling is disabled.

In non bidir scrolling the string is copied to a buffer twice with a space between "scroll text" + " " + "scroll text"

this is to allow scrolling the line in the forward direction with minimal extra logic

Note: that is the ONLY direction it is equiped to handle

In the USB screen I observed while switching through the different modes that sometimes the text was corrupted

turns out you can still have scroll->backwards set to true which causes offset to go negatve but we never check if offset < 0 in non bidir scrolling mode and happily continue with ever more negative offsets
firmware/drivers/lcd-scroll.c [diff]
William Wilgus
9th Mar 13:06 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
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
9th Mar 13:05 7693ecc2a2: tagtree: Improve suggested playlist filename for "special entries"

Make the suggested playlist filename for special entries such as "[Random]" or "[All Tracks]" a bit more descriptive, by mentioning the current table as well, e.g.:

"The Beatles [All Tracks].m3u8", instead of just
"[All Tracks].m3u8"
apps/tree.c [diff]
Christian Soffke
7th Mar 18:14 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
apps/plugins/battery_bench.c [diff]
William Wilgus
7th Mar 16:19 154a20c2eb: [BugFix] lua include scripts may fail to copy

lua has some include scripts for interfacing with rockbox locally these appear to be generated properly by the lua make file

However the buildserver appears to not copy them over

add a copy loop for lua_include in then buildzip script to ensure they get copied
tools/buildzip.pl [diff]
William Wilgus
7th Mar 14:46 5829701fba: skin_debug: Also dump the parameters to viewports
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
7th Mar 14:39 8ef4f217d4: checkwps: Warn if using SYSFONT in a viewport
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
7th Mar 00:28 a05bd377ab: [FixRed] YPR1

the YPR1 apparently can do voltage or percent measure I'm pretty sure its missing logic for disksafe and shutdown, perhaps the device takes care of it for you?

hopefully someone with the device notices the issue
(perhaps due to a older battery needing capacity tweaked)
firmware/target/hosted/samsungypr/ypr1/powermgmt-ypr1.c [diff]
William Wilgus
6th Mar 18:50 87ca944366: [Fix Red] Hopefully fix the last of the red for device_battery_tables..
firmware/powermgmt.c [diff]
William Wilgus
6th Mar 18:45 48b5054a7e: more red fixes.
apps/plugins/battery_bench.c [diff]
Solomon Peachy
6th Mar 18:10 43ab8dc413: [Fix Red] Fix remaining red from, Import battery tables
bootloader/ipod-s5l87xx.c [diff]
firmware/export/powermgmt.h [diff]
William Wilgus
6th Mar 17:39 a1fd56ba8e: [FixRed] Bootloaders, devices without size_t defined
apps/plugins/battery_bench.c [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
William Wilgus
6th Mar 16:54 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
apps/debug_menu.c [diff]
apps/main.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/battery_bench.c [diff]
bootloader/ipod-s5l87xx.c [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/target/arm/as3525/sansa-c200v2/powermgmt-c200v2.c [diff]
firmware/target/arm/as3525/sansa-clip/powermgmt-clip.c [diff]
firmware/target/arm/as3525/sansa-clipplus/powermgmt-clipplus.c [diff]
firmware/target/arm/as3525/sansa-clipv2/powermgmt-clipv2.c [diff]
firmware/target/arm/as3525/sansa-clipzip/powermgmt-clipzip.c [diff]
firmware/target/arm/as3525/sansa-e200v2/powermgmt-e200v2.c [diff]
firmware/target/arm/as3525/sansa-fuze/powermgmt-fuze.c [diff]
firmware/target/arm/as3525/sansa-fuzev2/powermgmt-fuzev2.c [diff]
firmware/target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c [diff]
firmware/target/arm/imx233/creative-zen/powermgmt-zen.c [diff]
firmware/target/arm/imx233/creative-zenxfi2/powermgmt-zenxfi2.c [diff]
firmware/target/arm/imx233/creative-zenxfi3/powermgmt-zenxfi3.c [diff]
firmware/target/arm/imx233/sansa-fuzeplus/powermgmt-fuzeplus.c [diff]
firmware/target/arm/imx233/sony-nwz/powermgmt-nwze360.c [diff]
firmware/target/arm/imx233/sony-nwz/powermgmt-nwze370.c [diff]
firmware/target/arm/imx31/gigabeat-s/powermgmt-gigabeat-s.c [diff]
firmware/target/arm/ipod/1g2g/powermgmt-1g2g.c [diff]
firmware/target/arm/ipod/powermgmt-ipod-pcf.c [diff]
firmware/target/arm/iriver/h10/powermgmt-h10.c [diff]
firmware/target/arm/olympus/mrobe-100/powermgmt-mr100.c [diff]
firmware/target/arm/pbell/vibe500/powermgmt-vibe500.c [diff]
firmware/target/arm/philips/hdd1630/powermgmt-hdd1630.c [diff]
...and 49 more files.
William Wilgus
5th Mar 19:50 3539dd5a70: Revert back to the default 8px sysfont for ipod5g/ipod6g/erosq

The default status bar is sized for SYSFONT, so this made the status bar slightly taller.

Unfortunately this broke a bunch of themes that didn't include a custom status bar and had hardcoded assumptions about the height of the default.

While those themes should not be making those assumptions, we don't yet have a straightforward way to deal with it. So while we try to figure out a better path forward, revert this.
tools/configure [diff]
Solomon Peachy
4th Mar 22:20 33a011a6a1: FS #13571: Updated Turkish translation (Mustafa YILDIZ)
apps/lang/turkce.lang [diff]
Solomon Peachy
4th Mar 18:43 36bcc0625a: ipodvideo/ipod6g: use taller sysfont

same as eroq devices which have also a 320x240 screen
tools/configure [diff]
Paul Sauro
4th Mar 18:40 f3ce792af8: sysfont: Fix buffering debug screen, cube plugin, and vu_meter plugin

Instead of being hardcoded to expect 8px sysfont, make them scale properly
apps/debug_menu.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/vu_meter.c [diff]
Solomon Peachy
3rd Mar 18:15 d5db4202ab: [Bugfix] tree.c tree_get_file_position() case insensitive search

some targets have case sensitive filesystems
apps/tree.c [diff]
William Wilgus
3rd Mar 17:58 fb96ae2cc9: tree.c small cleanup no functional changes
apps/tree.c [diff]
William Wilgus
3rd Mar 16:44 ef03dde011: skin_parser small clean up add percent_parse_param()

consolidate the logic for PERCENT tags to a single function

is_default() check is redundant in parse_albumart_load() static bool isdefault(struct skin_tag_parameter *param)
{ return param->type == DEFAULT;
}
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
3rd Mar 04:50 914fcab06a: shortcuts.c don't call settings_apply_skins() unless needed

Add F_NEEDAPPLY if F_THEMESETTING requires a call to settings_apply_skins()
apps/settings.c [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
apps/shortcuts.c [diff]
William Wilgus
2nd Mar 19:41 81c65536ec: [Bugfix] #FS13567 5+ fonts WPS file causes next theme loaded to fail

Investigating this issue I found that when SBS and WPS share the same fonts the refcount prevents the soon to be unused font from unloading by the time the fnt is unloaded its already too late because the WPS load failed.

What appears to work is freeing the fonts used by the skin items ahead of time via skin_reset_buffers() in a separate loop instead of in the loop used to load the skin files
apps/gui/skin_engine/skin_engine.c [diff]
William Wilgus
2nd Mar 00:16 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
apps/plugins/lastfm_scrobbler.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/plugins/lastfm_scrobbler.tex [diff]
William Wilgus
2nd Mar 00:16 731f3fd8be: Playback logging add Start time and rename when log size exceeds 512k

renames to playback_nnnn.log

you won't get the message when first enabling logging since it happens at start-up..
apps/playback.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
William Wilgus
1st Mar 19:26 64d8fc7c0c: Sansa Connect: fix a likely typo in busy wait loop in USB driver

GCC 9.5 issues a -Wmisleading-indentation warning due to an extra semicolon at the end of the while loop. It does seem unintentional since the loop is a busy wait, so remove the semicolon.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Aidan MacDonald
1st Mar 18:20 4377d4b0fa: firmware: fix missing includes in some firmware headers

Add includes for any types/macros we use in these headers.
firmware/export/backlight.h [diff]
firmware/export/pcm-internal.h [diff]
firmware/export/pcm.h [diff]
firmware/export/power.h [diff]
Aidan MacDonald
28th Feb 17:09 cebbbb9ea4: make splash_progress lock to screen width on repeated calls

when calling splash, splash_progress repeatedly text rearranges and the width changes leaving artifacts on the screen from the previously displayed prompt

save the max width seen between calls to ensure the splash prompt is never more narrow.

Height could be stored in a similar manner but I deemed it unnecessary as typically the text gets longer and the prompt increases in height while the reflow causes the prompt to get more narrow.

keep track of the current activity and reset the max_width when activities change (except bootloader)
apps/gui/splash.c [diff]
William Wilgus
28th Feb 05:27 ac8714dd64: [BugFix] vorbis.c metadata invalid index when album art b64 is NULL
lib/rbcodec/metadata/vorbis.c [diff]
William Wilgus
25th Feb 22:59 10923de8fe: [BugFix] OpenPlugins wrong plugin lang id

Failing to use ID2P caused the lang id to be off by VIRT_PTR
apps/root_menu.c [diff]
William Wilgus
25th Feb 02:55 dbebbcfed1: Minor mechanical correction for Italian translation
apps/lang/italiano.lang [diff]
Solomon Peachy
24th Feb 23:24 77f0591cc1: FS #13570: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
24th Feb 17:16 19956a0777: [Bugfix] WPS pause while WPS not active causes display corruption

Discovered this in the sim with car adapter mode: on

when charger gets disconnected the device is paused

if you have a different screen up the scrolling elems get redrawn incorrectly over the current screen

to fix check the activity is the WPS, FM, or RECORDING before allowing redraw
apps/gui/wps.c [diff]
apps/misc.c [diff]
William Wilgus
21st Feb 23:13 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.
apps/lang/english.lang [diff]
apps/plugins/chessbox/chessbox.c [diff]
Solomon Peachy
18th Feb 16:56 7897cded2d: [FixRed] Database add itoa_buf to SOURCES
tools/database/SOURCES [diff]
William Wilgus
18th Feb 15:41 50da856992: [BugFix] itoa conflicts with mingw rename to itoa_buf
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/statusbar.c [diff]
apps/screens.c [diff]
apps/settings.c [diff]
apps/settings_list.c [diff]
apps/tagcache.c [diff]
firmware/SOURCES [diff]
firmware/common/itoa.c firmware/common/itoa_buf.c [rename]
firmware/include/string-extra.h [diff]
William Wilgus
16th Feb 12:59 ee4591d9e7: FS #13565: Updated Serbian translation (Ivan Pešić)
apps/lang/srpski.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
16th Feb 12:53 9231ec9393: FS #13564 - Update of Chinese-simp translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
15th Feb 17:46 7912afa32f: [BugFix] settings.c CRC calculation skipped F_CUSTOM_SETTING

F_CUSTOM_SETTING write to the cfg file they do not however have a value in the settings struct to check against for the CRC

at best you get the is_changed value but as Chris_S pointed out this works the first time BUT unless you are changing from DEFAULT to
'is_changed' or back there is nothing different in the CRC and thus further changes to custom settings do not get saved unless other settings change the CRC.

Instead we will ask each of the custom settings to write their output and run the CRC on those values as well and allowing us to check for changes
apps/settings.c [diff]
William Wilgus
15th Feb 07:47 5471f58fb1: [Bugfix] set_current_file_ex filebrowser wrong file on resume

can't have it both ways blocking directories from filename makes shortcut folders browse into the folder but blocks the folder when the file browser loads it causing you to be in the wrong folder upon resume

I wanted a way for the user to be able to leave the slash off so ensure shortcut folders have a trailing slash (on load)
apps/shortcuts.c [diff]
apps/tree.c [diff]
William Wilgus
14th Feb 01:37 ac03680df3: keyboard.c: Layout dynamically the morse cheat sheet (supports larger sysfonts)

The main usecase of this is so the morse cheat sheet does not look broken (with cut characters) when we are using a different/larger sysfont. All is adjusted automatically thanks to the SYSFONT_WIDTH and SYSFONT_HEIGHT constants.

Long pushs are now represented as vertical long bars, while short pushs are represented into short bars (centered in the middle). The long pushs bars are not larger anymore, so spacing is consistent everytime for all long+short order different combos thus looking cleaner and more readable.

The code was also a bit refactored to be more easily understandable in the future by using clear variable names to describe the magic values.

- Tested with mini2g: no regression, can still show all characters no problem within the limited screen space that is available on this device
- Tested with ipod6g by configuring the same default font as erosq (14-Rockboxmix) which is larger than the default sysfont: looks really good ! Way more readable than before
- Tested with 4gmono: no regression
apps/recorder/keyboard.c [diff]
Paul Sauro
14th Feb 01:04 da9dc33d85: lang: Correct voice string for LANG_FONT_LOAD_ERROR

Cut-paste error that was unfotunately carried forward in translations
apps/lang/chinese-simp.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/turkce.lang [diff]
Solomon Peachy
13th Feb 15:34 78fa02aa39: FS #13559: manual: Correct URLs in ipod6g bootloader installation instructions
manual/getting_started/ipod6g_install.tex [diff]
Solomon Peachy
13th Feb 13:37 ad556794d2: internals: VIRT_PTR correction for PP SoCs

Accidentally put one too many zeroes in the address, placing it into
(real) IRAM instead of just past the edge of DRAM.

This didn't affect the s3c2440 and imx31, as they didn't have anything in that typo'd location.
apps/settings.h [diff]
Solomon Peachy
12th Feb 13:51 dc0cef8304: libopus: Re-add another optimization that was accidently dropped pre-3.15

This puts the entire ~26K decoder state structure into IRAM.

(was lost as part of 14c6bb798d6bebc80f07e863236adbaf8d156a9c, Nov 2019)
lib/rbcodec/codecs/libopus/opus_decoder.c [diff]
Solomon Peachy
12th Feb 07:29 922a2a4f3d: tree.c optimize bookmark_play()

optimize the index search loop using mod() instead of checking index and then scanning we can start at index and roll over saving a compare in the process
apps/tree.c [diff]
William Wilgus
11th Feb 17:27 801260dd79: internals: VIRT_PTR needs to point at an *invalid* unmapped address

As an added bonus, don't allow it to be 0 as that could result in a nullptr for ID2P(0).
apps/settings.h [diff]
Solomon Peachy
11th Feb 06:00 1ea5d57303: [BugFix] TagNav Custom Menu Entry Wrong title, crashing menu

Wrong title is due to the VIRT_PTR being 0 so when a NULL string is passed through P2STR() you get langid(0) that was 'Yes' now it will be 'Rockbox'

the crashing menu was due to a call to retrieve entries that wasn't guarded against getting called on a menu with no entries

g#5911 introduced this path to call custom_action for shuffled track adding
apps/lang/english.lang [diff]
apps/tagtree.c [diff]
William Wilgus
10th Feb 19:31 2c1d31fcd9: xduoox3: Fix inverted test for USB power supply detection

Only affected status display, charging is handled entirely by hardware.

Introduced in f3026cd0 (2024-11-02)
firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c [diff]
Solomon Peachy
10th Feb 18:12 d893da1929: tagtree.c get_tag() increase performance

while its not a particularly hot path it still gets called upwards of 1000x on startup

with a little pre processing we can make it faster than even the prior version

check first letter before calling function move strlen check to after the case match
apps/tagtree.c [diff]
William Wilgus
10th Feb 14:47 39285d06d5: xduoox3: Rework how we detect "charging" state

The "charging" status is apparently "charging needed" as it is asserted even when power is not being supplied. So first check to see if USB is connected, and if so, then check the "charging" status.
firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c [diff]
Solomon Peachy
10th Feb 14:23 0a2a90c182: FS #13560: ATA: Don't check for 80 pin cables on SATA devices.

On PATA, we'd cap our transers at UDMA2 if the device reported that an 80 pin cable wasn't detected, but SATA devices do not perform this test.

So alter the check to only apply on PATA devices, so that SATA devices can run at full UDMA speeds.
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
10th Feb 13:52 8cc937f33a: FS #13563: Updated Chinese (Simplified) translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
9th Feb 22:06 0a29f8b452: FS #13562: Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
9th Feb 22:05 210b5e602f: FS #13561: Update Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
9th Feb 21:39 a29af6e7c6: tagtree reduce size of get_tag lookup table

this is not a hot path only runs at start-up and tagnav reload so speed is not so much of a concern

we can split the data into two separate tables to remove the padding and allow symbols to be stored in uint8
(highest symbol <128) and do strlen at TOU

use uint16_t for get_clause()
apps/tagtree.c [diff]
William Wilgus
9th Feb 13:41 bb84e9def5: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
9th Feb 13:33 fa0c81e0e4: french: Fix missing <phrase> syntax for LANG_RESET_EQUALIZER
apps/lang/francais.lang [diff]
Solomon Peachy
8th Feb 19:01 2e98889be3: tagtree: Special character/Numerical entry: reduce required CPU cycles to improve performance
apps/tagtree.c [diff]
Paul Sauro
8th Feb 17:14 d5fc0e4cb3: tagtree: "By First Letter" : fix numerical entry + add a "Special character" entry

- The "Special character" entry will show all special characters (non numerical + non letters)
- The numerical entry was bug, and could show some special characters from the ASCII table. It is now fixed.
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
Paul Sauro
8th Feb 17:14 2cf6a443b1: tagnavi.config: Add "Album Artists by First Letter"

Add a new entry, it is useful to go this way for large libraries rather than scrolling manually through the whole list
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/tagnavi.config [diff]
Paul Sauro
8th Feb 17:14 fa5d2f3edf: Database view is fully translatable and entries can be voiced.

* All tagnavi.config entries pulled into language files
* Database viewer looks up LANG_IDs from the entries
* If we find a match, we can translate and voice these entries
* Add (disabled) mechanism to allow voicing database metadata

Original patch by Paul Sauro Modifications by William Wingus Further modifications by Solomon Peachy

Todo/Problems:

* Current Tagnavi headers are rather awkward in English
* Can't voice the "By first letter" alphabetic entries
* No mechanism for generating talk clips for DB metadata
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/tagnavi.config [diff]
apps/tagtree.c [diff]
apps/tree.c [diff]
Paul Sauro
8th Feb 15:57 3b850e0c6f: toolchains: Correct bad default path for toolchain PREFIX
tools/rockboxdev.sh [diff]
Solomon Peachy
8th Feb 08:02 0847bcc110: metadata: opus, vorbis, speex: support embedded jpeg album art

It includes .opus, .ogg, .oga, .spx files
apps/recorder/jpeg_load.c [diff]
lib/rbcodec/metadata/embedded_metadata.h [deleted]
lib/rbcodec/metadata/flac.c [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
lib/rbcodec/metadata/metadata_common.h [diff]
lib/rbcodec/metadata/ogg.c [diff]
lib/rbcodec/metadata/vorbis.c [diff]
Roman Artiukhin
8th Feb 06:02 95f4accf45: use lcd_drawinfo instead of separate drawmode, fg, bg calls
firmware/panic.c [diff]
firmware/target/arm/system-arm.c [diff]
firmware/target/coldfire/system-coldfire.c [diff]
firmware/target/hosted/fiio/system-fiio.c [diff]
firmware/target/hosted/sonynwz/system-nwz.c [diff]
firmware/target/hosted/system-hosted.c [diff]
firmware/target/mips/system-mips.c [diff]
William Wilgus
8th Feb 05:49 e09b466554: screen_access add set_drawinfo
apps/gui/color_picker.c [diff]
apps/gui/line.c [diff]
apps/screen_access.c [diff]
apps/screen_access.h [diff]
William Wilgus
8th Feb 05:49 b94b0d3bf4: Skin engine, optimize hot paths

callgrind identified check_viewport and scan_int as pretty hot code paths on startup and playback

check_viewport uses strlen to check the string has at least 4 characters we can just check if str[3] != '\0' without walking potentially much further and no function call..

scan_int was building a buffer for atoi to parse when we can just do it in the loop directly
lib/skin_parser/skin_scan.c [diff]
William Wilgus
7th Feb 14:49 4bde992ca3: pp502x: Fully shut down storage power on older(4g/photo, mini, mini2g) iPods

On these older iPods, power was not being shut down completely, which led to a backfeed situation leading to decreased battery life and some stability issues.

This was particuarly apparent when using SD card adapters that do not respect the ATA power management commands (ie all of them), as they never enter a low-power state on their own.

With this change, there are reports of battery life exceeding 20 hours of continuous playback (~30% increase with CF cards, 3x improvement with SD cards) and appears to resolve intermittent wakeup stability issues with SD adapters.
firmware/target/arm/ipod/power-ipod.c [diff]
Paul Sauro
4th Feb 04:29 f60892e26c: FS #13558 - Updated Simplified Chinese Translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
4th Feb 04:28 371797cf1f: FS #13557 - Updated German translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
3rd Feb 06:23 f55fe21f66: add itoa(), replace snprintf("%d") calls

we can save some space and still end up with a 20% faster function
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/statusbar.c [diff]
apps/screens.c [diff]
apps/settings.c [diff]
apps/settings_list.c [diff]
apps/tagcache.c [diff]
firmware/SOURCES [diff]
firmware/common/itoa.c [new]
firmware/include/string-extra.h [diff]
William Wilgus
2nd Feb 23:30 9e61d53c7c: FS #13556: Updated French translation (CHAPUIS Adhemar)

Closing in on that 100% mark!
apps/lang/francais.lang [diff]
Solomon Peachy
2nd Feb 18:57 231d552972: isdigit replace with a slightly faster and shorter conditional

in testing of three ways of doing this current: ((_ctype_+1)[(unsigned char)(c)]&_N)

alt1(this patch): (((unsigned int) (c) - '0') < 10)

alt2: ((unsigned int)(c ^ 0x30) < 10)

alt1 and alt2 are the same in terms of speed and instructions (on arm v7) but alt2 has one more instruction on mips

(across several archs in godbolt mips, armv7v8, x86) and on ARM7 (clipzip) device about 9% faster

less false positives for both alt1 and 2 when you start supplying more than 8bits not sure if that matters in practice though

I tried similar with isxdigit but could only get to within 1 instruction of the ctype implementation although it negated the array lookup I saw no discernable speed difference on device

https://godbolt.org/z/qGvh4hqnG
firmware/libc/include/ctype.h [diff]
William Wilgus
2nd Feb 18:00 cf42dd6b12: powermgmt: adjust sleep timer behavior

Responding to the bug report posted by iPodVT: https://forums.rockbox.org/index.php/topic,55180.msg255292

- An active sleep timer that runs out will now cause the player to shut down regardless of playback state

- When playback state is paused or stopped, once the idle timer has run out, player will shut down, regardless of any running sleep timer
firmware/powermgmt.c [diff]
Christian Soffke
2nd Feb 13:05 078699ef49: FS #13555: Updated French Translation (CHAPUIS Adhemar)
apps/lang/francais.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2nd Feb 12:53 50e0c99832: dailyvoices: Switch back to 'espeak' for Bulgarian and Japanese

gtts rate limited us before even a single voice was generated.
tools/builds.pm [diff]
Solomon Peachy
1st Feb 22:31 f82f925f23: FS #13553 - Updated Turkish translation (Mustafa YILDIZ)
apps/lang/turkce.lang [diff]
Solomon Peachy
1st Feb 18:34 14ba18b1dd: builds: Add Japanese to the nightly voice set (using gtts)
apps/lang/japanese.lang [diff]
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
1st Feb 18:05 e4179e4ff9: FS #13554: Updated Japanese translation (Emi Foster)

Not quite 100%, but _very_ close!
apps/lang/japanese.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
1st Feb 02:48 f501dd00eb: short circuit is_diacritic for 5-15% text drawing speed-up

characters less than the first diacritic in the symbol table (0x300) return false after checking the MRU table

we gain some performance by eliding the function call all together if less than first diacritic
firmware/common/diacritic.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/font.c [diff]
firmware/include/diacritic.h [diff]
William Wilgus
27th Jan 16:22 c5103bab95: Translation updates:

* English-US (myself)
* Italian (Alessio Lenzi)
* Korean (Hoseok Seo)
* Polish (Adam Rak)
apps/lang/english-us.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/polski.lang [diff]
Solomon Peachy
27th Jan 15:58 fc4e0d912e: iPod S5L87xx bootloader: Move variable declaration to avoid macros

No change in the bootloader binary for ipod6g.
bootloader/ipod-s5l87xx.c [diff]
Vencislav Atanasov
27th Jan 15:27 4930fac05c: [bugfix] run_debug_screen case-insensitive matching
apps/debug_menu.c [diff]
William Wilgus
25th Jan 20:47 8aa54286c4: Fix red in 43068ef27069
apps/menu.c [diff]
Solomon Peachy
25th Jan 20:13 43068ef270: [Feature] Set values of settings from shortcuts

Adds 'Add Current to Shortcuts' for settings alowing you to save the current value and restore it with a shortcut
apps/lang/english.lang [diff]
apps/menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/shortcuts.c [diff]
apps/shortcuts.h [diff]
manual/main_menu/main.tex [diff]
William Wilgus
24th Jan 05:20 bdf89bf4b0: settings set_file() cleanup unused maxlen and check for file exist

maxlen is set to MAX_FILENAME by all callers so lets just make that part of the deal check the file exists before we set it
apps/filetree.c [diff]
apps/radio/presets.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
William Wilgus
24th Jan 04:58 14898bc19e: [bugfix] FS #13456 - Loaded FM preset list doesn't restore after restart

the fmr file wasn't being detected on multivolume targets

the global preset list couldn't be cleared once set

empty global preset file wasn't detected properly either
apps/filetree.c [diff]
apps/radio/presets.c [diff]
apps/radio/radio.h [diff]
William Wilgus
24th Jan 00:50 277c66d9d2: : [bugfix,bugfix] ensure PREVIOUS tree_context dirfilter is restored on plugin exit
apps/plugin.c [diff]
William Wilgus
23rd Jan 20:52 36e85ef78a: voice: Correct a rather embarrasing bug in talk clip generation

Introduced
tools/voice.pl [diff]
Solomon Peachy
22nd Jan 18:22 a220402d51: voice: clean up a debug message
tools/voice.pl [diff]
Solomon Peachy
22nd Jan 05:33 9bcf6a8bb7: [bugfix] ensure tree_context dirfilter is restored on plugin exit

rockpaint is the only plugin doing anything dit setting the dirfilter pointer it appears to restore it but this is cheap insurance on weird crashes that result..
apps/plugin.c [diff]
William Wilgus
22nd Jan 03:10 f3a858e16c: [bugfix] tree.c rockbox_browse dirfilter use after free, set_current_file_ex

rockbox_browse() set its own *dirfilter and then may neglect to restore it

set_current_file_ex() can take a unified path and file or separate path and file

only issue is when you send a folder and don't have the final slash its then interpreted as a file and current file is set to it meanwhile path is split and you end up in the parent dir

instead if filename is null check if path points to a directory if dir_exists(path) then we will use it as is and set filename to ""
apps/tree.c [diff]
William Wilgus
22nd Jan 03:10 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
apps/plugins/shortcuts/shortcuts_view.c [diff]
William Wilgus
21st Jan 23:48 db477bdeda: settings.c make lasttime static

statusbar can use reset_runtime() and we can ensure topruntime gets updated before clear
apps/gui/statusbar.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
William Wilgus
21st Jan 21:24 2debcf2c1f: Fix %Vp in SBS error message after USB disconnect

Stops “Error accessing playlist control file” message after returning from USB mode, due to control file fd being closed
apps/gui/skin_engine/skin_tokens.c [diff]
Christian Soffke
21st Jan 05:04 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
apps/filetree.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/wps.c [diff]
apps/iap/iap-core.c [diff]
apps/iap/iap-lingo3.c [diff]
apps/main.c [diff]
apps/menus/sound_menu.c [diff]
apps/misc.c [diff]
apps/playback.c [diff]
apps/playlist.c [diff]
apps/plugin.c [diff]
apps/plugins/beatbox/beatbox.c [diff]
apps/plugins/doom/m_menu.c [diff]
apps/plugins/doom/rockdoom.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/lib/playback_control.c [diff]
apps/plugins/metronome.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
apps/plugins/rockboy/menu.c [diff]
apps/plugins/test_sampr.c [diff]
apps/plugins/vu_meter.c [diff]
apps/plugins/xworld/sys.c [diff]
apps/radio/radio.c [diff]
...and 11 more files.
William Wilgus
20th Jan 13:17 8e293b4948: serial: Add serial_tx_raw() function for sending raw bytes to the serial port

serial_tx() can only be used for NULL-terminated strings, and also adds CR before every LF.
firmware/drivers/serial.c [diff]
firmware/export/serial.h [diff]
Vencislav Atanasov
20th Jan 13:16 46eb089f97: More fixes for when both battery PERCENTAGE and VOLTAGE are enabled

Hopefully this fixes the last of the red
firmware/powermgmt.c [diff]
Solomon Peachy
20th Jan 12:14 07b0015d17: Fix android build, regression from 96463d855f51
firmware/powermgmt.c [diff]
Solomon Peachy
19th Jan 22:30 96463d855f: erosqnative: hw4 units prefer egauge battery percentage

Use AXP2101's egauge battery percent level if available (hw4 units). If not available (_battery_level() will return -1 on hw1-hw3 units), fall back to voltage battery level.

Also fix logic in axp2101_battery_status()
firmware/drivers/axp-2101.c [diff]
firmware/export/axp-2101.h [diff]
firmware/export/config.h [diff]
firmware/export/config/erosqnative.h [diff]
firmware/powermgmt.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
19th Jan 19:52 f566f63b63: iPod S5L87xx dev bootloader: show error code if OF fails to boot
bootloader/ipod-s5l87xx.c [diff]
Vencislav Atanasov
19th Jan 06:20 02c256565f: [FixRed] Reove HAVE_PITCHCONTROL from bootloaders, fix warble
firmware/export/config.h [diff]
firmware/sound.c [diff]
lib/rbcodec/dsp/tdspeed.c [diff]
William Wilgus
19th Jan 05:29 af859acf04: Tie NVRAM CRC to NVRAM_BLOCK_SIZE

by tying initial to NVRAM_BLOCK_SIZE we get automatic invalidation when the system_status struct changes
apps/settings.c [diff]
William Wilgus
19th Jan 05:29 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
apps/audio_thread.c [diff]
apps/gui/pitchscreen.c [diff]
apps/gui/pitchscreen.h [diff]
apps/onplay.c [diff]
apps/plugins/pitch_screen.c [diff]
apps/root_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
firmware/sound.c [diff]
lib/rbcodec/dsp/tdspeed.c [diff]
manual/rockbox_interface/wps.tex [diff]
William Wilgus
18th Jan 19:32 3e57ca15a5: skin_parser: fix parse_filetext fd not closed
apps/gui/skin_engine/skin_parser.c [diff]
Christian Soffke
18th Jan 16:47 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
apps/audio_thread.c [diff]
apps/plugins/lib/configfile.c [diff]
apps/plugins/pitch_screen.c [diff]
manual/rockbox_interface/wps.tex [diff]
William Wilgus
18th Jan 05:21 a8f6ddc5ed: [Feature] bookmark.ignore to selectively ignore or include directories

allows blacklist / whitelisting of bookmarks by directory
apps/bookmark.c [diff]
manual/configure_rockbox/bookmarking.tex [diff]
tools/buildzip.pl [diff]
William Wilgus
18th Jan 04:09 c7dfb9f916: [Fix Yellow] pitch_screen and configfile

place int32 in the conf file array it only supports upto 32 bit anyway..
apps/plugins/lib/configfile.h [diff]
apps/plugins/pitch_screen.c [diff]
William Wilgus
18th Jan 03:42 13c3214d9c: [Feature] Persist pitch settings through reboots

saves the pitch setting across reboots

adds option 'Reset Setting'
apps/audio_thread.c [diff]
apps/gui/pitchscreen.c [diff]
apps/gui/pitchscreen.h [diff]
apps/onplay.c [diff]
apps/plugins/lib/configfile.c [diff]
apps/plugins/pitch_screen.c [diff]
manual/rockbox_interface/wps.tex [diff]
William Wilgus
17th Jan 16:36 5e8d3fec66: voice: Silence a runtime warning when generating talkclips
tools/voice.pl [diff]
Solomon Peachy
17th Jan 05:42 54333536fe: [BugFix] YesNo screen wait for button release on exit

if you run yesno screens back to back or another screen with wait_for_release you may never see the release

instead clear anything in the queue but release events
apps/action.c [diff]
apps/gui/yesno.c [diff]
firmware/drivers/button_queue.c [diff]
firmware/export/button.h [diff]
William Wilgus
17th Jan 05:08 e5690803c6: Small cleanup statusbar

move some things around and split out a few things to their own functions
apps/gui/statusbar.c [diff]
apps/gui/statusbar.h [diff]
William Wilgus
16th Jan 21:05 ca2e195a76: time-sync: Fix arguments order in linker command

Also adds the resulting binary to .gitignore
.gitignore [diff]
utils/time-sync/Makefile [diff]
Vencislav Atanasov
16th Jan 18:04 5ad29c50bb: update manual for 7f4a889
manual/appendix/album_art_info.tex [diff]
Christian Soffke
16th Jan 17:17 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.
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tree.c [diff]
Christian Soffke
16th Jan 16:02 5f3dcaba49: Fix red in 7f4a8891a6082c9428ff269f64c11663380be2ad

wrap a few things with HAVE_ALBUMART
apps/recorder/jpeg_load.c [diff]
Solomon Peachy
16th Jan 15:08 7f4a8891a6: metadata: mp3: Support unsync embedded jpeg album art

Support parsing alubm art from id3 metadata with "unsynchronisation scheme": https://id3.org/id3v2.3.0#The_unsynchronisation_scheme
apps/buffering.c [diff]
apps/playback.c [diff]
apps/recorder/jpeg_load.c [diff]
apps/recorder/jpeg_load.h [diff]
lib/rbcodec/metadata/embedded_metadata.h [new]
lib/rbcodec/metadata/id3tags.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
Roman Artiukhin
16th Jan 14:50 6649731563: FS #13549 - Updated Turkish translation (Mustafa YILDIZ)
apps/lang/turkce.lang [diff]
Solomon Peachy
16th Jan 14:48 13d8c499d3: FS #13548 - Updated Spanish translation (Juan Germán Arrieta Martínez)
apps/lang/espanol.lang [diff]
Solomon Peachy
16th Jan 14:47 7686a9cbbd: FS #13547 - Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
15th Jan 20:57 ed66fee942: FS #13546: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
15th Jan 20:57 f436a04af5: Update US English localization
apps/lang/english-us.lang [diff]
Solomon Peachy
15th Jan 19:51 133eb84177: playlist: Allow replaying finished playlist

Instead of responding with a "Nothing to resume" message when user tries to resume a playlist that's finished playing, offer to start from the beginning again.
apps/lang/english.lang [diff]
apps/root_menu.c [diff]
Christian Soffke
15th Jan 19:10 ca459a9d09: misc: Eliminate redundant yes/no dialog functions
apps/fileop.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/playlist.c [diff]
apps/playlist_catalog.c [diff]
Christian Soffke
15th Jan 19:09 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
apps/plugins/imageviewer/imageviewer.c [diff]
Christian Soffke
15th Jan 19:00 b83504635c: playlist: eliminate error message disconnecting USB

With no control file present, the message
"Error accessing playlist control file" was displayed, due to playlist_resume being called from gui_usb_screen_run.

You were likely to only run into this after a clean install, if you hadn't listened to any music yet.

It probably makes sense to move the check for the existence of the control file into playlist_resume, and not even have it show a separate access error message when the file doesn't exist.
apps/menus/playlist_menu.c [diff]
apps/playlist.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
15th Jan 18:32 2c4c1b9199: FS #12702: Fix illegal characters in suggested playlist filename

Issue had only been partially fixed in 3f3b738 by showing an error message
apps/playlist_catalog.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tree.c [diff]
Christian Soffke
15th Jan 18:28 24c9ccfac0: playlist: Set playlist index after resuming

fixes current track selection in Playlist Viewer when stopped
apps/playlist.c [diff]
Christian Soffke
15th Jan 18:10 fb26398622: playlist: Fix warning when erasing playlist after reboot

Unless you had manually resumed the playlist, you didn't get any warning after Rockbox rebooted, when replacing a modified current playlist.
apps/playlist.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
Christian Soffke
15th Jan 17:27 9310b51841: [Bugfix] OpenPlugin on multivolume targets

to check for against /.rockbox/viewers (VIEWERS_DIR) on multivolume you need to strip all the prefix junk of volume and potentially strip the redirect directory
apps/open_plugin.c [diff]
William Wilgus
15th Jan 16:43 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)
apps/open_plugin.c [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
15th Jan 05:00 1a17b5cb8e: tree.c small cleanup
apps/tree.c [diff]
William Wilgus
14th Jan 13:44 68f511984e: FS #13545: Update Korean translation (Hoseok Seo)

(Accidently left this off the translation roundup commit)
apps/lang/korean.lang [diff]
Solomon Peachy
14th Jan 13:33 14e35fd164: Translation updates:

* FS #13543 - Polish (Adam Rak)
* FS #13545 - Korean (Hoseok Seo)
* FS #13544 - Turkish (Mustafa YILDIZ)

Plus resync the US English localization (myself)
apps/lang/english-us.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/turkce.lang [diff]
Solomon Peachy
14th Jan 03:41 d8d6415505: [BugFix] do_menu skinlist_draw dangling reference

skinlist_draw stores a pointer to the list supplied if this pointer goes out of scope we may try to access it

toggle_theme has a path to handle this but if you move to a a item with the theme enabled it doesn't release the pointer later the pointer will be referenced long after it has gone out of scope

limiting this to do_menu() if other areas are problematic the previous version of this patch applies it system-wide
apps/menu.c [diff]
William Wilgus
14th Jan 00:39 7a281eca83: [BugFix] Tree doesn't stop scrolling on exit

https://forums.rockbox.org/index.php/topic,53862.msg248780.html#msg248780

add an intermediary function to stop tree_list scroll when changing screens
apps/tree.c [diff]
William Wilgus
13th Jan 23:08 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
apps/playback.c [diff]
apps/plugins/lastfm_scrobbler.c [diff]
apps/plugins/lastfm_scrobbler_viewer.c [diff]
William Wilgus
13th Jan 07:36 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
apps/plugins/lastfm_scrobbler_viewer.c [diff]
William Wilgus
13th Jan 05:45 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.
apps/plugins/lib/printcell_helper.c [diff]
William Wilgus
13th Jan 05:45 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
apps/lang/english.lang [diff]
apps/main.c [diff]
apps/menus/playback_menu.c [diff]
apps/playback.c [diff]
apps/playback.h [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lastfm_scrobbler.c [diff]
apps/plugins/lastfm_scrobbler_viewer.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/plugins/lastfm_scrobbler.tex [new]
manual/plugins/main.tex [diff]
William Wilgus
9th Jan 05:10 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.
apps/menus/playlist_menu.c [diff]
apps/playlist.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
9th Jan 04:23 897a96996b: Playlist Viewer: fix: deleting track starts playback

When playback was stopped (not paused), deleting the first track of the current playlist started playback.
apps/playlist_viewer.c [diff]
Christian Soffke
8th Jan 14:35 e4fb35f173: Revert "Toolchains: Update to GCC 9.5.0"

This reverts commit 573ba5472e60c996539385481fa2ce01dc696e8d.

Reason for revert: Accidentally pushed to master, Maintainer will be put in timeout.
tools/configure [diff]
tools/rockboxdev.sh [diff]
tools/toolchain-patches/apple_silicon.patch [diff]
tools/toolchain-patches/glibc-227-make44.patch tools/toolchain-patches/glibc-225-make44.patch [rename]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff [new]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff [deleted]
Solomon Peachy
8th Jan 14:33 ada000e8de: builds: Add 'Creative Zen V' as an unusable target
tools/builds.pm [diff]
Solomon Peachy
8th Jan 14:31 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
tools/configure [diff]
tools/rockboxdev.sh [diff]
tools/toolchain-patches/apple_silicon.patch [diff]
tools/toolchain-patches/glibc-225-make44.patch tools/toolchain-patches/glibc-227-make44.patch [rename]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff [deleted]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff [new]
Solomon Peachy
8th Jan 14:14 9417ece0ea: imx233: Make bootloader compile, fix up remanining warnings
firmware/export/config/creativezenv.h [diff]
firmware/target/arm/imx233/emi-imx233.c [diff]
firmware/target/arm/imx233/ssp-imx233.c [diff]
firmware/target/arm/imx233/system-target.h [diff]
Solomon Peachy
8th Jan 13:06 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.
firmware/export/config/creativezv.h [deleted]
firmware/export/config/zenvision.h [diff]
firmware/target/arm/system-arm.h [diff]
uisimulator/buttonmap/SOURCES [diff]
Christian Soffke
8th Jan 13:04 f1173e07ec: imx233: Fix clkctrl for STMP3600 variants (creativezenv)
firmware/target/arm/imx233/clkctrl-imx233.c [diff]
Solomon Peachy
8th Jan 01:29 4cd0c35150: imx233: Fix up compilation problems with the IMX233 ATA driver
firmware/target/arm/imx233/ata-imx233.c [diff]
Solomon Peachy
8th Jan 00:53 14b8820231: ata: we shouldn't ry to do FLUSH_CACHE_EXT if HAVE_LBA48 is not defined
firmware/drivers/ata.c [diff]
Solomon Peachy
7th Jan 19:22 8b01f939d8: hitiet ma8/ma9: add in keymaps for all plugins

Largely guesswork.
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
apps/plugins/pacbox/pacbox.h [diff]
apps/plugins/pegbox.c [diff]
apps/plugins/pong.c [diff]
apps/plugins/reversi/reversi-gui.h [diff]
...and 19 more files.
Solomon Peachy
6th Jan 07:26 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
apps/gui/skin_engine/skin_backdrops.c [diff]
William Wilgus
5th Jan 21:57 907c91997e: [FS #10686] Peakmeter on ipod 5g using too much CPU

I think this is probably a good idea in general
apps/recorder/peakmeter.h [diff]
William Wilgus
5th Jan 20:41 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
apps/playlist_viewer.c [diff]
Christian Soffke
5th Jan 19:39 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.
apps/playlist_viewer.c [diff]
Christian Soffke
5th Jan 19:39 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.
apps/playlist_viewer.c [diff]
Christian Soffke
5th Jan 19:39 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.
apps/playlist.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
5th Jan 17:12 5d9b01b9ed: [Fix Red] define lcd_awake for targets with lcd_sleep
firmware/target/arm/imx31/gigabeat-s/lcd-gigabeat-s.c [diff]
firmware/target/arm/iriver/h10/lcd-h10_20gb.c [diff]
firmware/target/arm/pbell/vibe500/lcd-vibe500.c [diff]
firmware/target/arm/philips/sa9200/lcd-sa9200.c [diff]
firmware/target/arm/s3c2440/lcd-s3c2440.c [diff]
firmware/target/arm/samsung/yh925/lcd-yh925.c [diff]
firmware/target/arm/sandisk/sansa-e200/lcd-e200.c [diff]
firmware/target/coldfire/iaudio/x5/lcd-x5.c [diff]
firmware/target/hosted/ibasso/lcd-ibasso.c [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/backlight-xduoo_x3.c [diff]
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
William Wilgus
5th Jan 15:59 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
firmware/backlight.c [diff]
William Wilgus
5th Jan 15:15 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
firmware/backlight.c [diff]
William Wilgus
4th Jan 20:18 22d921c55c: [Bugfix] Plugins run by START_IN_SCREEN won't open another plugin

PLUGIN_GOTO_PLUGIN was using old key instead
apps/root_menu.c [diff]
William Wilgus
3rd Jan 18:45 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.
apps/gui/skin_engine/skin_tokens.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
Christian Soffke
3rd Jan 16:34 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.
apps/plugins/mikmod/README.rockbox [new]
apps/plugins/mikmod/load_669.c [diff]
apps/plugins/mikmod/load_amf.c [diff]
apps/plugins/mikmod/load_asy.c [diff]
apps/plugins/mikmod/load_far.c [diff]
apps/plugins/mikmod/load_gdm.c [diff]
apps/plugins/mikmod/load_it.c [diff]
apps/plugins/mikmod/load_med.c [diff]
apps/plugins/mikmod/load_mod.c [diff]
apps/plugins/mikmod/load_s3m.c [diff]
apps/plugins/mikmod/load_stm.c [diff]
apps/plugins/mikmod/load_ult.c [diff]
apps/plugins/mikmod/load_umx.c [diff]
apps/plugins/mikmod/load_uni.c [diff]
apps/plugins/mikmod/load_xm.c [diff]
apps/plugins/mikmod/mdriver.c [diff]
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/mikmod/mikmod.h [diff]
apps/plugins/mikmod/mikmod_internals.h [diff]
apps/plugins/mikmod/mloader.c [diff]
apps/plugins/mikmod/mlutil.c [diff]
apps/plugins/mikmod/mmalloc.c [diff]
apps/plugins/mikmod/mmerror.c [diff]
apps/plugins/mikmod/mplayer.c [diff]
apps/plugins/mikmod/munitrk.c [diff]
apps/plugins/mikmod/sloader.c [diff]
apps/plugins/mikmod/virtch.c [diff]
apps/plugins/mikmod/virtch2.c [diff]
apps/plugins/mikmod/virtch_common.c [diff]
Solomon Peachy
3rd Jan 06:03 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.
apps/playlist_viewer.c [diff]
Christian Soffke
2nd Jan 16:38 888f4dbe57: [Fix Yellow] skin_backdrops.c screen is unsigned
apps/gui/skin_engine/skin_backdrops.c [diff]
William Wilgus
2nd Jan 16:22 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
apps/gui/skin_engine/skin_backdrops.c [diff]
William Wilgus
2nd Jan 01:49 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.
firmware/drivers/axp-2101.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
2nd Jan 01:48 d038aa47fe: panicf: Add version info

Makes it easy to figure out the build from PANIC screens posted by someone
firmware/panic.c [diff]
Christian Soffke
2nd Jan 00:13 07036061fc: puzzles: update README.
apps/plugins/puzzles/README.rockbox [diff]
Franklin Wei
2nd Jan 00:12 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.
apps/plugins/puzzles/resync.sh [diff]
Franklin Wei
1st Jan 14:59 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.
android/android.make [diff]
Nick Feldmann
1st Jan 14:59 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.
android/README [diff]
android/installToolchain.sh [diff]
docs/CREDITS [diff]
tools/configure [diff]
Nick Feldmann
1st Jan 04:06 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
firmware/common/strcasestr.c [diff]
William Wilgus
1st Jan 01:17 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.
apps/gui/skin_engine/skin_render.c [diff]
William Wilgus
31th Dec 20:56 832e0fd458: update .gitignore to ignore macos files

dYSM files were generated upon building the simulator

v
.gitignore [diff]
Yakov
31th Dec 15:08 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.
apps/playlist.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
31th Dec 13:59 3389a08d56: dynamic playlist erase warning: skip for finished playlists
apps/misc.c [diff]
Christian Soffke
31th Dec 12:15 a8540390c2: FS #13536: Updated German Translation (Karl Huber)
apps/lang/deutsch.lang [diff]
Solomon Peachy
31th Dec 06:53 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
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
William Wilgus
31th Dec 04:17 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
apps/language.c [diff]
William Wilgus
31th Dec 00:35 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]
firmware/common/pathfuncs.c [diff]
William Wilgus
30th Dec 21:42 27aff7ec8d: strcasestr optimize for speed and size

revisit this and shave a bit more off on code size
firmware/common/strcasestr.c [diff]
William Wilgus
30th Dec 20:22 6f542b6540: libc: We need to define SIZE_MAX in our stdint.h
firmware/libc/include/stdint.h [diff]
Solomon Peachy
30th Dec 02:46 2a825b866a: SIMULATOR help text fix yellow
firmware/target/hosted/sdl/button-sdl.c [diff]
William Wilgus
30th Dec 02:25 fcbfa494f5: [Feature] Simulator add F1 help text

give a listing of the keys used in the simulator
firmware/target/hosted/sdl/button-sdl.c [diff]
William Wilgus
30th Dec 00:08 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).
firmware/drivers/button_queue.c [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/button-sdl.h [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
firmware/target/hosted/sdl/window-sdl.c [diff]
Christian Soffke
30th Dec 00:08 8ce9d9e39e: simulator: maintain LCD position/size when toggling background
firmware/target/hosted/sdl/window-sdl.c [diff]
Christian Soffke
29th Dec 21:43 8884284da4: simulator hand icon on button region mouse over

add a hand pointing cursor over the buttons
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
firmware/target/hosted/sdl/window-sdl.c [diff]
William Wilgus
29th Dec 06:38 fc26ba3f20: Simulator ClipZip ClipPlus add power and volume buttons
uisimulator/bitmaps/UI-sansaclipplus.bmp [diff]
uisimulator/bitmaps/UI-sansaclipzip.bmp [diff]
uisimulator/buttonmap/sansa-clip.c [diff]
William Wilgus
27th Dec 18:15 bfef0a2d6c: PictureFlow: fix colors for keyboard and full screen tags
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
27th Dec 16:41 8bd62e35cc: button_queue: fix cpu never unboosted

regression introduced in da9d67a
firmware/drivers/button_queue.c [diff]
Christian Soffke
27th Dec 10:45 5e09a9246c: sdl: fix shutdown hang on MacOS when SDL threads are used
firmware/target/hosted/sdl/system-sdl.c [diff]
Christian Soffke
27th Dec 07:34 dca70e1816: compressor remove static delay line buffer

core_alloc works well for this and we can allow the alloc to be moved

bugfix compressor_process() possible buffer overflow
lib/rbcodec/dsp/compressor.c [diff]
William Wilgus
26th Dec 13:56 0c4b78c011: [Bugfix] RTC_TOKEN_PRESENT is less than SKIN_TOKENS_RTC_BEGIN

this blocks the check for RTC_TOKEN_PRESENT

thanks, chris_s
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
26th Dec 11:24 fa8b095f29: sdl: fix: concurrent drawing on Windows

On Windows, we need to prevent the event thread from drawing at the same time as the main thread, when window is being adjusted.
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
firmware/target/hosted/sdl/window-sdl.c [diff]
firmware/target/hosted/sdl/window-sdl.h [diff]
Christian Soffke
26th Dec 06:49 0a88b818e9: lua make memcheck script eat all available ram (incld audiobuf)
apps/plugins/lua_scripts/memchk.lua [diff]
William Wilgus
26th Dec 06:49 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
apps/plugins/test_mem.c [diff]
William Wilgus
26th Dec 06:29 1643e0e287: [Bugfix] metadata.c copy_mp3entry() dest and orig may overlap

I meant to add this with the last patch b07d7d6 since it may supply UNBUFFERED_ID3 to the peek function which uses UNBUFFERED_ID3 and will try to copy it back wich is undefined behavior for memcpy
lib/rbcodec/metadata/metadata.c [diff]
William Wilgus
26th Dec 05:58 b07d7d6af0: skin_token.c, playback.c, add get_temp_mp3entry()

add function get_temp_mp3entry() to return a valid mp3entry from scratch_mem UNBUFFERED_ID3 or if playback hasn't been started used statically allocated mp3entry NEXTTRACK_ID3
apps/gui/skin_engine/skin_tokens.c [diff]
apps/playback.c [diff]
apps/playback.h [diff]
William Wilgus
25th Dec 18:24 d323d968d8: sdl: adjust texture access pattern to "frequently"

probably doesn't make much of a difference for our use case but should prevent creation of temp buffers
firmware/target/hosted/sdl/window-sdl.c [diff]
Christian Soffke
25th Dec 13:34 32cc5ee8f9: simulator: Press Tab to show/hide background
firmware/target/hosted/sdl/button-sdl.c [diff]
Christian Soffke
25th Dec 13:34 400452180d: sdl: Keep texture around, upload LCD-parts only

No need to create a new texture for every rendered frame, unless the scaling method has been adjusted.

We also don't need to upload the (unchanged) player interface to GPU memory repeatedly.

+ Remove unused lcd_display_redraw & having_new_lcd variables
firmware/SOURCES [diff]
firmware/drivers/button_queue.c [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.h [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
firmware/target/hosted/sdl/window-sdl.c [new]
firmware/target/hosted/sdl/window-sdl.h [new]
Christian Soffke
25th Dec 13:34 7aaa722a5d: simulator: Adjust scaling using keyboard shortcuts

Press 0-3 to to adjust current zoom level to 50% (0), 100% (1), 200% (2), or 300% (3).

Press 4 to switch between "best" (linear) and nearest pixel sampling.
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
Christian Soffke
25th Dec 13:34 759cbf4e5f: sdl: Remove usage of SDL_SoftStretch

SDL 2 lets us take advantage of a fixed logical resolution, where the renderer scales content up or down automatically.

Relative mouse motion is also affected by renderer scaling by default (see SDL_HINT_MOUSE_RELATIVE_SCALING).

If window zoom has been enabled from the command line, set scaling quality to "nearest pixel sampling" instead of "best" to allow pixel peeping.
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/lcd-bitmap.c [diff]
firmware/target/hosted/sdl/lcd-remote-bitmap.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
Christian Soffke
25th Dec 13:34 60f3283f48: sdl: make window resizable, enable high DPI

Tested on Linux, MacOS, and Windows.

On MacOS and Windows, we constrain the window's aspect ratio by adjusting the size when responding to resize events.

On Linux, I've not found a way to do so, that doesn't result in fairly stuttery behavior and weird jumpy behavior of the resize handle, possibly depending on your window manager. So, black bars are displayed around the content. Maybe someone, at some point, finds a way.
(SDL3 seems to have SDL_SetWindowAspectRatio)

When the window is in fullscreen, black bars are display necessarily, of course, on all systems, unless the player GUI has exactly the same aspect ratio as the screen...
firmware/drivers/button_queue.c [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.h [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
Christian Soffke
25th Dec 11:23 79191bf9bb: simulator: Fix Sansa Clip display position
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
Christian Soffke
25th Dec 06:40 b44f8f3723: [FixYellow] skin_tokens.c add a preprocessor directive that actually works
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
25th Dec 06:27 4fe6ce91ec: skin_tokens.c use static mp3entry if over 2k
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
25th Dec 05:56 6bec4597bf: get_mp3entry_from_offset remove static from struct mp3entry

I think with the recent refactoring we should be able to put mp3entry on the stack

it should be moved up a level anyway
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
24th Dec 17:43 8981311800: skin_tokens.c break quickscreen items out to a function

rather than a function call for each qs item along with the data for those calls in the switch for get_token_value()

it makes more sense to just have the qs_token function handle all of the logic
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
24th Dec 06:47 25ab00465e: metadata.c don't store encoder filename for all the decoders

there are only 4 encoder capable codecs just make it a function and add a macro to keep it sane
apps/codec_thread.c [diff]
lib/rbcodec/metadata/metadata.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
William Wilgus
24th Dec 03:57 f6b13c0fd0: skin_tokens.c break rtc code and id3 into own functions

clean-up the switch a bit by putting rtc code in its own function

move the id3 tags to the default branch and only read id3 if its actually needed
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
23rd Dec 04:59 dfd01709c5: [Bugfix] theme %ss will overflow buffer, update %ft manual entry

%ss did not check for the size of the resulting string before copying it to the buffer

%ft has a search text mode
apps/gui/skin_engine/skin_tokens.c [diff]
manual/appendix/wps_tags.tex [diff]
William Wilgus
22nd Dec 15:17 50515de940: [Fix Red] Manuals
manual/appendix/wps_tags.tex [diff]
William Wilgus
22nd Dec 14:18 7d1cdf3ece: small cleanup skin_parser parse_album_art parse_image_load

bugfix parse_font_load() allow fonts with . in filename
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
22nd Dec 06:11 7c678f5e7a: [Feature] %ft file text tags add prefix search

%ft(filename,search_text) finds a line beginning with search_text strips search_text and returns the remainder of the line
apps/gui/skin_engine/skin_parser.c [diff]
lib/skin_parser/tag_table.c [diff]
manual/appendix/wps_tags.tex [diff]
William Wilgus
22nd Dec 00:11 632e72273d: small cleanup putsxyofs()

store the vp local rather than using current_viewport use the flags directly rather storing them
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
21st Dec 23:19 8091477f8d: Optimize 16 bit lcd_fillrect()

move switch outside loop

adds ~10000 ops/s in test_gfx
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
21st Dec 21:37 d6e99178aa: lcd-16bit-common optimize bitmap_part

in testing this slightly speeds up any of the draw routines using fg or bg and slightly slows down the ones that don't being that these are already faster it serves to bring them closer in ops per second

.. and slightly speeds up the most general case DRMODE_SOLID
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
21st Dec 03:59 9c477e84ff: [Bugix] %ft has access to the root of the drive using /

path_append treats a path starting with / as absolute allowing escape by themes
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
21st Dec 03:41 774357e722: [Bugfix] Volume, track starting and track ending no default timeout

if no params are given these three supply a default it wasn't being applied since it was guarded by the else{}
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
20th Dec 17:09 48811ed4a8: ErosQ Hosted: Fix maximum volume upon plugging in headphones

Ref. FS #13533
firmware/drivers/audio/erosqlinux_codec.c [diff]
Dana Conrad
20th Dec 15:31 660fa3ffdc: scroll engine calculate stringsize only when scroll line updated

we calculate the size of the scrolling line every scroll update the line data doesn't ever change without a call to update instead calculate the string size when the line is updated re-use this value while scrolling the line

in theory the current font could change but in practice I can't find a case when the string size needs to be updated that the scroll engine isn't already updating the line

if this is later an issue we can recalculate the stringsize each time the line is finished scrolling which still saves quite a few calculations

Other: I don't think we have any targets with pixel counts exceeding 65535 pixels where unsigned short stringsize will be an issue
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-scroll.c [diff]
firmware/export/scroll_engine.h [diff]
William Wilgus
20th Dec 13:00 f179fc1079: S5L87xx bootloader: Add option for viewing SysCfg in the development bootloader

No changes in regular bootloader binary. Tested the development bootloader on ipod6g.
bootloader/ipod-s5l87xx.c [diff]
Vencislav Atanasov
20th Dec 09:46 a032611e3e: configure: remove clang warning for darwin host

not a reason to warn (anymore)
tools/configure [diff]
Christian Soffke
20th Dec 04:29 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
apps/plugins/lua/rbdefines_helper.pl [diff]
lib/rbcodec/codecs/opus.c [diff]
lib/rbcodec/codecs/speex.c [diff]
tools/configure [diff]
tools/gigabeat.c [diff]
tools/hmac-sha1.c [diff]
tools/rbspeex/rbspeexdec.c [diff]
tools/rdf2binary.c [diff]
Christian Soffke
19th Dec 20:04 a86b1999d0: simulator: fix missing Werror option + eliminate lib duplicate

configure: Ensure Werror option doesn't get lost when simcc resets GCCOPTS

uisimulator.make: Remove ignored duplicate SIMLIB on Darwin

codecs.make: Eliminate some redundancy
lib/rbcodec/codecs/codecs.make [diff]
tools/configure [diff]
uisimulator/uisimulator.make [diff]
Christian Soffke
19th Dec 17:11 0bb79dd847: ascodec (sansas) add a 10 minute delay before re-enabling charge
firmware/target/arm/powermgmt-ascodec.c [diff]
William Wilgus
19th Dec 16:32 b77c973d1a: [Bugfix] line_alternators reset scroll state without new data

this is fallout from allowing a scroll item redisplay timeouts

prior to eb3e5eb '[Feature] skinengine subline timeout hide line for n seconds' the behavior could be seen sparingly after we now have an alternator front and center with the next track scroll

unfortunately this results in strings never scrolling to completion

fix: if the current line hasn't changed and we are not doing a full screen refresh, don't invalidate the scroll viewport
(the scroll engine will still handle the user data changing if that actually occurred)
apps/gui/skin_engine/skin_render.c [diff]
William Wilgus
18th Dec 04:51 12ea82d9e4: Allow scroll_all lists to resume scrolling lines

rather than reset the scrolling lines in list_draw() when scroll_all = true allow the scroller to take care of stopping lines after the offset is known

this pretty much entirely the debug menus
apps/gui/bitmap/list.c [diff]
William Wilgus
18th Dec 04:08 cf4bf5439e: S5L8702: Introduce syscfg_read() and use it in the debug menu

This makes it possible to reuse the SysCfg reading logic in other places.

Tested on ipod6g (normal + bootloader).
apps/debug_menu.c [diff]
firmware/target/arm/s5l8702/norboot-s5l8702.c [diff]
firmware/target/arm/s5l8702/norboot-target.h [diff]
Vencislav Atanasov
18th Dec 02:19 e27f778fb6: S5L87xx bootloader: Change ATA/HDD references to Storage

Tested on ipod6g. No changes besides a text string.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
bootloader/ipod-s5l87xx.c [diff]
Vencislav Atanasov
18th Dec 02:19 296247612d: S5L87xx bootloader: Add development menu (disabled by default)

A new flag S5L87XX_DEVELOPMENT_BOOTLOADER is introduced, to replace some of the bootloader functionality with debug/development menu. Not intended for end users, so it's not enabled unless explicitly specified when building

No changes to the binary if the new flag is not enabled.

Bootloader with the flag enabled boots on ipod6g.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
bootloader/ipod-s5l87xx.c [diff]
Vencislav Atanasov
18th Dec 02:18 7d3cc24dec: FS #13519: multivolume: Ensure absolute paths get drive designation
apps/playlist.c [diff]
firmware/common/pathfuncs.c [diff]
Dana Conrad
17th Dec 12:33 aeb4b6c34a: mkboot500: fix compilation on MacOS

code changes limited to L-31-37, rest is trailing whitespace cleanup
tools/mr500.c [diff]
Christian Soffke
17th Dec 11:03 cede12f197: simulator: fix missing background bmp on MacOS
uisimulator/uisimulator.make [diff]
Christian Soffke
16th Dec 16:37 33c0c9efae: [Bugfix] Simulator doesn't scroll lists in plugins

unless lcd_update() is called the sim doesn't update scrolling you CANNOT call it from the scroll thread its simply ignored

I suspect this has something to do with where the call to render originates as thi is the only thing I can think of besides a call to disable the render

see demos/rb_info > paths -- observe the lack of scrolling see any menu in a plugin that exceeds screen width
apps/gui/list.c [diff]
firmware/drivers/lcd-scroll.c [diff]
William Wilgus
16th Dec 06:44 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)
apps/plugins/properties.c [diff]
Christian Soffke
16th Dec 02:16 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. "с").
apps/plugins/sdl/progs/duke3d/Engine/src/mmulti.c [diff]
apps/plugins/sdl/progs/duke3d/Game/src/audiolib/myprint.c [diff]
lib/rbcodec/codecs/mpa.c [diff]
tools/creative.c [diff]
tools/mkzenboot.c [diff]
Vencislav Atanasov
16th Dec 02:16 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.
apps/iap/iap-lingo4.c [diff]
apps/plugins/doom/d_deh.c [diff]
apps/plugins/logo.c [diff]
apps/plugins/pdbox/PDa/src/d_resample.c [diff]
apps/plugins/pdbox/PDa/src/g_canvas.c [diff]
apps/plugins/pdbox/PDa/src/g_scalar.c [diff]
apps/plugins/pdbox/PDa/src/m_binbuf.c [diff]
apps/plugins/sdl/SDL_image/IMG_tga.c [diff]
apps/plugins/sdl/SDL_mixer/load_aiff.c [diff]
apps/plugins/sdl/SDL_mixer/load_aiff.h [diff]
apps/plugins/sdl/progs/duke3d/Engine/src/build.h [diff]
apps/plugins/sdl/progs/duke3d/Engine/src/engine.c [diff]
apps/plugins/sdl/progs/duke3d/Game/src/audiolib/awe32.c [diff]
apps/plugins/sdl/progs/wolf3d/wl_play.c [diff]
apps/plugins/sdl/src/audio/SDL_mixer_MMX.c [diff]
apps/plugins/sdl/src/video/SDL_RLEaccel.c [diff]
apps/plugins/sdl/src/video/default_cursor.h [diff]
firmware/common/vuprintf.c [diff]
firmware/export/jz4740.h [diff]
firmware/export/jz4760b.h [diff]
firmware/target/arm/as3525/kernel-as3525.c [diff]
firmware/target/arm/imx31/gigabeat-s/powermgmt-gigabeat-s.c [diff]
firmware/target/arm/s3c2440/dma-target.h [diff]
firmware/target/arm/s5l8700/kernel-s5l8700.c [diff]
lib/rbcodec/codecs/libgme/ym2612_emu.c [diff]
lib/rbcodec/codecs/libgme/ym2612_emu.h [diff]
lib/rbcodec/dsp/tdspeed.h [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/rbcodec/metadata/mp3.c [diff]
utils/hwstub/stub/jz4760b/jz4760b.h [diff]
...and 2 more files.
Vencislav Atanasov
15th Dec 23:20 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 .
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/view_text.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
Christian Soffke
15th Dec 23:13 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
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/SOURCES.app_build [diff]
apps/plugins/view_text.c [new]
apps/screens.c [diff]
Roman Artiukhin
15th Dec 22:50 5e66f0e762: plugins: Remove id3 lib

only remaining user is PictureFlow, and function is arguably not lib-worthy at this point
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/id3.c [deleted]
apps/plugins/lib/id3.h [deleted]
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
15th Dec 20:44 de8d1437dc: metadata: asf: Use system utf16decode conversion
lib/rbcodec/metadata/asf.c [diff]
Roman Artiukhin
15th Dec 20:44 1f548f74e6: unicode: add utf16decode with utf8 buffer size check

Make use of it in id3tags and cuesheet
apps/cuesheet.c [diff]
firmware/common/unicode.c [diff]
firmware/include/rbunicode.h [diff]
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
15th Dec 20:44 e334a1f95e: Settings: Make Default Codepage default to UTF-8

Associated with FS #13534
apps/settings_list.c [diff]
Dana Conrad
15th Dec 20:34 10b8448511: Don't use CHECK_VOL(x) as a loop conditional

...On non-multidrive targets it will always evaluate to true because it effectively ignores the argument passed in.

Instead use 'x < NUM_VOLUMES'

Fixes regression introduced with a41a001258 on non-multivolume devices
apps/menus/main_menu.c [diff]
Solomon Peachy
15th Dec 19:52 843157e227: S5L8702: Abstract LCD driver

This driver decouples the LCD interface from the target-specific LCD parameters. It makes it possible to reuse most of the ipod6g driver code on ipodnano3g and ipodnano4g.

No difference in the produced binaries for ipodnano2g (normal and bootloader).

Tested on ipod6g (normal and bootloader).

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/ipod6g/backlight-6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/backlight-target.h [diff]
firmware/target/arm/s5l8702/ipod6g/lcd-6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/lcd-target.h [new]
firmware/target/arm/s5l8702/ipod6g/lcd-asm-6g.S firmware/target/arm/s5l8702/lcd-asm-s5l8702.S [rename]
firmware/target/arm/s5l8702/lcd-s5l8702.c [new]
firmware/target/arm/s5l8702/lcd-s5l8702.h [new]
Vencislav Atanasov
15th Dec 14:27 63d8aa0077: metadata: mp3: update out-of-date comments

(L1033 + L1170)

As of commit f3e5ced, tags will be parsed unconditionally, regardless of whether they've been filled already.
lib/rbcodec/metadata/id3tags.c [diff]
Christian Soffke
15th Dec 14:26 004304dc65: unicode: add iso_decode_ex with utf8 buffer size check

Make use of it in id3tags, playlist and cuesheet
apps/cuesheet.c [diff]
apps/playlist.c [diff]
firmware/common/unicode.c [diff]
firmware/include/rbunicode.h [diff]
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
14th Dec 23:06 f8fa1e7d5a: S5L8702: Move I/O addresses and bit masks from clocking driver to SoC definitions, reuse existing definitions

No difference in the produced binaries for ipod6g (normal and bootloader)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
firmware/export/s5l87xx.h [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.h [diff]
Vencislav Atanasov
14th Dec 16:23 afeefcbec1: S5L8702: Move I/O addresses from DMA driver to SoC definitions, reuse existing definitions

No difference in the produced binaries for ipod6g (normal and bootloader)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.
firmware/export/s5l87xx.h [diff]
firmware/target/arm/s5l8702/dma-s5l8702.h [diff]
Vencislav Atanasov
14th Dec 12:57 037172d5c2: S5L8702: Read WDT_BASE from SoC definitions

Tested on ipod6g (normal + bootloader).

No functional change, no binary size change, the only difference is using r3 instead of r1 for the WDT_BASE address value.
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Vencislav Atanasov
14th Dec 12:57 eb57d42879: S5L8702: Move I/O addresses from drivers to SoC definitions

No changes to ipod6g binaries (normal + bootloader).
firmware/export/s5l87xx.h [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Vencislav Atanasov
14th Dec 06:21 f233b6e2f2: 'libmad remove warnings

calculating inside a function makes it work adding FORCE_INLINE makes warning reappear anything else in bounds of the array asounds ok but has digital distortion so pretty confident the code is right
lib/rbcodec/codecs/libmad/synth.c [diff]
William Wilgus
13th Dec 19:49 4cf65ec926: metadata: mp3: fix iTunSMPB info replacing comment

Data from the iTunes seamless playback data field
(support for which was introduced in f3e5ced) prevents proper comments from being displayed.
lib/rbcodec/metadata/id3tags.c [diff]
Christian Soffke
13th Dec 15:38 a23002cd5e: unicode: Unify check for UTF-16 BOM

Adds utf16_has_bom function
apps/cuesheet.c [diff]
firmware/common/unicode.c [diff]
firmware/include/rbunicode.h [diff]
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
13th Dec 15:09 11fbbc7826: metadata: mp3: Reduce size of is_cuesheet function

Saves 80 bytes on Sansa E200V2 (176 -> 96)
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
13th Dec 13:32 23d185b7fe: S5L8720: Add partial clocking support

Tested on ipod6g (normal + bootloader).

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/clocking-s5l8702.c [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.h [diff]
Vencislav Atanasov
13th Dec 13:32 06963a5ce4: S5L8702: Clean up linker script, also add support for S5L8720

Tested on ipod6g (normal + bootloader).

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/boot.lds [diff]
Vencislav Atanasov
13th Dec 13:32 0fef17206e: S5L8702: Reallocate the bootloader without dependency on _dfuloadaddr

Also adds support for S5L8720 initialization.

This currently changes only the bootloader code for ipod6g. Tested on target.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/crt0.S [diff]
Vencislav Atanasov
12th Dec 23:08 e9b0aa495b: SDL: special-case pulseaudio backend with a smaller PCM buffer size

Pull in a small pile of cleanups as well
firmware/target/hosted/sdl/pcm-sdl.c [diff]
Solomon Peachy
12th Dec 00:35 789aa0a695: Scrobbler plugin remove logf size warnings

using chris_s' trick to caste to 64 bit int
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
12th Dec 00:19 a3ef7b73b8: [Bugfix?] tagtree build_firstletter_menu dst src overlap

pretty sure this is a false positive by gcc but we know what we expect to recieve so add a small buffer to shut gcc up
apps/tagtree.c [diff]
William Wilgus
11th Dec 20:31 c3fad37827: S5L8720: Add support for DMA peripherals

No difference in the produced binaries for ipod6g (normal and bootloader)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/dma-s5l8702.h [diff]
Vencislav Atanasov
11th Dec 17:59 d0172b4dd9: disk: disk_set_sector_multiplier() takes the MULTIPLIER not the resultant size
apps/main.c [diff]
bootloader/ipod-s5l87xx.c [diff]
bootloader/ipod.c [diff]
Solomon Peachy
11th Dec 09:36 f7d5da6b2f: metadata: mp3: Limit utf-8 buffer stack allocation to prevent stack overflow

Fixes FS #13518
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
11th Dec 09:36 18520c27a5: metadata: mp3: Avoid utf-8 buffer stack allocation for utf-8 tags
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
11th Dec 09:36 c1ee278abf: metadata: mp3: Avoid utf-8 buffer stack allocation when processing cuesheet
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
11th Dec 06:23 1a6f0d8b0f: [FixRed] checkwps has no concept of playback
apps/gui/wps.h [diff]
William Wilgus
11th Dec 05:44 f79374e1e8: WPS don't display next track till ID3 data is ready

this causes a bunch of flashing on track change for me and I never get to read enough of the filename before it picks up the id3 data anyway
apps/gui/wps.c [diff]
William Wilgus
11th Dec 05:43 05336c9efb: wps.c cleanup

No functional changes code clean-up consolidate pause_action, unpause_action_ do_wps_playpause
apps/gui/wps.c [diff]
apps/gui/wps.h [diff]
William Wilgus
11th Dec 04:11 d6e57e6e8e: Update simulator build release script
tools/release/sims.pl [diff]
Solomon Peachy
11th Dec 04:11 a61c146e36: COV352716: Inproperly concatenated help text (very minor issue)
apps/plugins/otp.c [diff]
Solomon Peachy
11th Dec 04:04 b752f3f964: ipod6g: fix sim build
apps/debug_menu.c [diff]
Solomon Peachy
10th Dec 22:04 4d632a1774: S5L8702: Move IM3 sign/crypt functions from norboot to crypto

Also adds support for IM3 functions and SHA-1 on S5L8720.

Tested on ipod6g (normal and bootloader builds)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/crypto-s5l8702.c [diff]
firmware/target/arm/s5l8702/crypto-s5l8702.h [diff]
firmware/target/arm/s5l8702/norboot-s5l8702.c [diff]
firmware/target/arm/s5l8702/norboot-target.h [diff]
Vencislav Atanasov
10th Dec 18:24 68c51456ff: Switch S5L8702 I2C to ECLK, add I2C support for S5L8720

Tested on ipod6g (normal and bootloader builds)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/i2c-s5l8702.c [diff]
Vencislav Atanasov
10th Dec 17:34 ca5f12ae58: S5L8702, S5L8720: Merge syscon_preinit() and miu_preinit() between SoC models

No difference in the produced binaries for ipodnano2g and ipod6g (normal and bootloader)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Vencislav Atanasov
10th Dec 16:16 e9b14b3986: libmad synth.c silence warnings try #3

https://godbolt.org/z/3bM7fxPP3 shows some of the disasm around the troble area for compiling
lib/rbcodec/codecs/libmad/synth.c [diff]
William Wilgus
10th Dec 15:27 c19b50cdd8: FS #13532: Updated Chinese translation ( 王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
10th Dec 14:01 29e909c25d: SDL: Log the version detected

* At build time (in configure script)
* At runtime (but only for simulator builds)
firmware/target/hosted/sdl/system-sdl.c [diff]
tools/configure [diff]
Solomon Peachy
10th Dec 13:59 95681c3959: Revert "libmad synth.c silence warnings try #2"

This reverts commit 56500073998d62f74e4fca0bff422bc73eef058a.

Reason for revert: Results in warnings on *all* device builds.
lib/rbcodec/codecs/libmad/synth.c [diff]
Solomon Peachy
10th Dec 07:17 5650007399: libmad synth.c silence warnings try #2

https://godbolt.org/z/3bM7fxPP3 shows some of the disasm around the troble area for compiling
lib/rbcodec/codecs/libmad/synth.c [diff]
William Wilgus
10th Dec 04:35 da3d658880: SDL: Work around build problems with SDL2 < 2.0.6

SDL_AUDIO_ALLOW_SAMPLES_CHANGE was added in 2.0.6, just ignore it if we're compiling against an old version
firmware/target/hosted/sdl/pcm-sdl.c [diff]
Solomon Peachy
10th Dec 02:24 1328464c86: puzzles: Update resync script to work around WIN32 issues
apps/plugins/puzzles/resync.sh [diff]
Solomon Peachy
10th Dec 02:15 d483281fea: SDL: Allow SDL_OpenAudioDevice() to override sample count
firmware/target/hosted/sdl/pcm-sdl.c [diff]
Solomon Peachy
10th Dec 02:06 65d94ecd08: SDL: Allow the audio device used to be specified on the command line

To aid this we display the list of allowed drivers and devices at startup
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
Solomon Peachy
10th Dec 01:34 b3dac27aa6: SDL: Convert to SDL2's AudioDevice() API

This lets us _demand_ a sane audio configuration that doesn't require us to convert sample formats.

(Windows always seems to want us to supply 32-bit floating point)
firmware/target/hosted/sdl/pcm-sdl.c [diff]
Solomon Peachy
10th Dec 00:28 da8bde0860: puzzles: Disable "unfinished" puzzles for Windows builds

They rely on weak symbols which the windows linker doesn't like.
apps/plugins/puzzles/SOURCES [diff]
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/SOURCES.rockbox [diff]
Solomon Peachy
9th Dec 00:14 e3323e3ba7: Revert "libmad synth.c silence warnings"

This reverts commit b14056e90fb86a5494fb70ab3632c2aef1c91e96.

Reason for revert: Not mathematically equivalent, inconsistent with other code paths, and leads to audio artifacts on ARM targets.
lib/rbcodec/codecs/libmad/synth.c [diff]
Solomon Peachy
8th Dec 22:35 f48d1aeb27: S5L8702, S5L8720: Add VIC init, prepare for iPod Nano 3G and iPod Nano 4G

Tested on ipod6g (normal and bootloader builds)

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
Vencislav Atanasov
8th Dec 20:37 7b40c1f786: FS #13531: Minor correction to Turkish Translation (Mustafa YILDIZ)
apps/lang/turkce.lang [diff]
Solomon Peachy
8th Dec 20:12 ca79fd039c: skin_parser add empty parser callback remove guard conditionals

it appears callback is only set once in skin_parse() and then its never touched again making repeatd checks pointless anyway
lib/skin_parser/skin_parser.c [diff]
William Wilgus
8th Dec 17:37 bc1d7d77c5: FS #13530: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
8th Dec 17:22 05a77178ff: plugins: fix plugin handle reset after plugin load failed

e519356 prevents loading further plugins otherwise
apps/plugin.c [diff]
Christian Soffke
8th Dec 08:52 33cbefb310: skin_parser Reduce ram usage for conditionals on %ft() file text tags

the skin engine calls the tags for each conditional to check them since %ft erases it's var if the file doesn't exist %?ft is likely only being called to check existance of a file or line of a file

this patch allocates 2 bytes to satisify the conditional if the line exists
apps/gui/skin_engine/skin_parser.c [diff]
lib/skin_parser/skin_parser.c [diff]
lib/skin_parser/skin_parser.h [diff]
William Wilgus
8th Dec 05:28 ebd1021fe4: [Bugfix] Pt doesn't return length of the next track

fix yellow in mp3_encoder
apps/gui/skin_engine/skin_parser.c [diff]
apps/plugins/mp3_encoder.c [diff]
lib/skin_parser/tag_table.c [diff]
utils/skinupdater/tag_table.c [diff]
William Wilgus
8th Dec 05:06 b14056e90f: libmad synth.c silence warnings

synth.c is using a negative offset which gcc doesn't like

equlivalent code just uses pointer math instead
lib/rbcodec/codecs/libmad/synth.c [diff]
William Wilgus
8th Dec 04:56 9eb9e4ab22: [Bugfix/Red] fix red in checkwps , fix mp3_encoder plugin div by 0, warnings

checkwps doesn't have current_tick

mp3_encoder had a divide by zero if the file wasn't encoded correctly or wrong file was passed

fix gcc warning in huffman encoder

move text for small screens
apps/gui/skin_engine/skin_parser.c [diff]
apps/plugins/mp3_encoder.c [diff]
William Wilgus
8th Dec 04:02 bcc8c608e5: Revert "FS #13429: Add a freeform "player name" configuration setting"

This reverts commit 2bb9323de8e4edc0a04ccf7ccf61e3026b5ef847.

Reason for revert:superseded g#6154
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
William Wilgus
8th Dec 04:02 44bfffd7c5: [Feature] skinengine subline timeout hide line for n seconds

builds on top of the file text patch to add hide timeouts to subline text tags

this allows you to specify both a show time and hide time for these elements

%t(show, hide)

also removes the 327 second limit for timeouts whne this form is used
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
manual/advanced_topics/main.tex [diff]
manual/appendix/wps_tags.tex [diff]
wps/cabbiev2.112x64x1.wps [diff]
wps/cabbiev2.128x128x16.wps [diff]
wps/cabbiev2.128x128x2.wps [diff]
wps/cabbiev2.128x160x16.wps [diff]
wps/cabbiev2.128x64x1.wps [diff]
wps/cabbiev2.128x96x16.wps [diff]
wps/cabbiev2.128x96x2.wps [diff]
wps/cabbiev2.132x80x16.wps [diff]
wps/cabbiev2.138x110x2.wps [diff]
wps/cabbiev2.160x128x1.wps [diff]
wps/cabbiev2.160x128x16.wps [diff]
wps/cabbiev2.160x128x2.wps [diff]
wps/cabbiev2.176x132x16.wps [diff]
wps/cabbiev2.176x220x16.wps [diff]
wps/cabbiev2.220x176x16.wps [diff]
wps/cabbiev2.240x320x16.mini2440.wps [diff]
wps/cabbiev2.240x320x16.wps [diff]
wps/cabbiev2.240x400x16.wps [diff]
wps/cabbiev2.320x240x16.mrobe500.wps [diff]
wps/cabbiev2.320x240x16.wps [diff]
wps/cabbiev2.320x480x16.wps [diff]
wps/cabbiev2.360x400x16.wps [diff]
wps/cabbiev2.400x240x16.wps [diff]
...and 3 more files.
William Wilgus
8th Dec 04:02 eb3e5eb2bf: [Feature] Skin engine Themes grab text from a file %ft(file, line)

allow the skin engine to read text files and return a particular line

you then can use ss on that string to allow display of strings from the file
(Playername comes to mind)

able to be used as conditional
%?ft(filename)<Found|Not Found>

if (selected) line of file is empty the tag is treated as #COMMENT

bugfix:
%t(n)%?x<text|text> would ignore the specified timeout defaulting to 2 seconds

bugfix: cabbiev2.128x160x16.wps was missing %Sx() for translation on 'Next Track:'

playername.txt generated at boot if it doesn't exist contents: 'Rockbox!'
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/main.c [diff]
manual/advanced_topics/main.tex [diff]
manual/appendix/wps_tags.tex [diff]
utils/skinupdater/tag_table.c [diff]
wps/cabbiev2.128x160x16.wps [diff]
William Wilgus
8th Dec 01:42 876e8c1305: FS #13529: Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
7th Dec 23:09 0c8b71b00d: checkwps: Update the cleanall script and documentation
tools/checkwps/README [diff]
tools/checkwps/cleanall.sh [diff]
Solomon Peachy
7th Dec 23:09 8cee2ac784: update .gitignore
.gitignore [diff]
Solomon Peachy
7th Dec 21:57 93baf94dc3: configure: Disallow 'sdlapp' to be build as a simulator target.
tools/configure [diff]
Solomon Peachy
7th Dec 21:51 197d0579bd: FS #13527: Update Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
7th Dec 21:51 f94401213e: FS #13528: Update Turkish translation (Mustafa YILDIZ)

I think there's still a single remaining issue preventing this from 100%.
apps/lang/turkce.lang [diff]
Solomon Peachy
7th Dec 20:42 53b1bc020b: hosted sdl: remove SDL_BUTTON_WHEELDOWN, SDL_BUTTON_WHEELUP

Appears to have been overlooked in the SDL2 migration
firmware/target/hosted/sdl/key_to_touch-sdl.c [diff]
Christian Soffke
7th Dec 19:05 a76ecf1725: erosqnative: Fix operation in a simulator environment

Real hardware needs 24-bit PCM data supplied, but simulator is still 16bit only.
apps/debug_menu.c [diff]
firmware/export/config/erosqnative.h [diff]
Solomon Peachy
7th Dec 18:48 e6851a55ed: Revert "[Feature] Skin engine Themes grab text from a file %ft(file, line) WIP"

This reverts commit 62b5dfd81ddfa3ff1a7a30d8065b7bdcfcf978bd.

This was accidentally merged, and wasn't up-to-date anyway.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/main.c [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
utils/skinupdater/tag_table.c [diff]
wps/cabbiev2.112x64x1.wps [diff]
wps/cabbiev2.128x128x16.wps [diff]
wps/cabbiev2.128x128x2.wps [diff]
wps/cabbiev2.128x160x16.wps [diff]
wps/cabbiev2.128x64x1.wps [diff]
wps/cabbiev2.128x96x16.wps [diff]
wps/cabbiev2.128x96x2.wps [diff]
wps/cabbiev2.132x80x16.wps [diff]
wps/cabbiev2.138x110x2.wps [diff]
wps/cabbiev2.160x128x1.wps [diff]
wps/cabbiev2.160x128x16.wps [diff]
wps/cabbiev2.160x128x2.wps [diff]
wps/cabbiev2.176x132x16.wps [diff]
wps/cabbiev2.176x220x16.wps [diff]
wps/cabbiev2.220x176x16.wps [diff]
wps/cabbiev2.240x320x16.mini2440.wps [diff]
wps/cabbiev2.240x320x16.wps [diff]
wps/cabbiev2.240x400x16.wps [diff]
wps/cabbiev2.320x240x16.mrobe500.wps [diff]
wps/cabbiev2.320x240x16.wps [diff]
wps/cabbiev2.320x480x16.wps [diff]
wps/cabbiev2.360x400x16.wps [diff]
wps/cabbiev2.400x240x16.wps [diff]
wps/cabbiev2.480x800x16.wps [diff]
...and 2 more files.
Solomon Peachy
7th Dec 18:43 3b78daed14: simulator: Fix "ErosQ Native" (247) simulator build.
firmware/SOURCES [diff]
Solomon Peachy
7th Dec 18:38 97456ae338: lang: collapse the two "line out" strings into one.
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/settings_list.c [diff]
Solomon Peachy
7th Dec 18:21 62b5dfd81d: [Feature] Skin engine Themes grab text from a file %ft(file, line) WIP

allow the skin engine to read text files and return a particular line

you then can use ss on that string to allow display of strings from the file
(Playername comes to mind)

able to be used as conditional
%?ft(filename)<Found|Not Found>

if (selected) line of file is empty the tag is treated as #COMMENT

scroll timeouts now persist thru trackchange

bugfix:
%t(n)%?x<text|text> would ignore the specified timeout defaulting to 2 seconds

playername.txt generated at boot if it doesn't exist contents: 'RockBox!'
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/main.c [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
utils/skinupdater/tag_table.c [diff]
wps/cabbiev2.112x64x1.wps [diff]
wps/cabbiev2.128x128x16.wps [diff]
wps/cabbiev2.128x128x2.wps [diff]
wps/cabbiev2.128x160x16.wps [diff]
wps/cabbiev2.128x64x1.wps [diff]
wps/cabbiev2.128x96x16.wps [diff]
wps/cabbiev2.128x96x2.wps [diff]
wps/cabbiev2.132x80x16.wps [diff]
wps/cabbiev2.138x110x2.wps [diff]
wps/cabbiev2.160x128x1.wps [diff]
wps/cabbiev2.160x128x16.wps [diff]
wps/cabbiev2.160x128x2.wps [diff]
wps/cabbiev2.176x132x16.wps [diff]
wps/cabbiev2.176x220x16.wps [diff]
wps/cabbiev2.220x176x16.wps [diff]
wps/cabbiev2.240x320x16.mini2440.wps [diff]
wps/cabbiev2.240x320x16.wps [diff]
wps/cabbiev2.240x400x16.wps [diff]
wps/cabbiev2.320x240x16.mrobe500.wps [diff]
wps/cabbiev2.320x240x16.wps [diff]
wps/cabbiev2.320x480x16.wps [diff]
wps/cabbiev2.360x400x16.wps [diff]
wps/cabbiev2.400x240x16.wps [diff]
wps/cabbiev2.480x800x16.wps [diff]
...and 2 more files.
William Wilgus
7th Dec 16:16 c754bc5870: configure: minor ux improvements when compiling macos sim

- Show a warning when Apple's clang is detected, because compilation would fail with it. Then check for a (e.g.) Homebrew-installed version of GCC (14) and use it instead.

- Don't display multiple meaningless numbers when
(incorrectly) parsing Apple's current LD version info. Set to 0 on Darwin, unless cross-compiling, since it only matters in the latter case.
tools/configure [diff]
Christian Soffke
7th Dec 16:07 87452d775e: fix warnings on some systems / format specifier mismatch

Instead of %ld or %lx, use %jd or %jx for off_t (after casting to intmax_t)
apps/plugins/mpegplayer/audio_thread.c [diff]
apps/plugins/mpegplayer/disk_buf.c [diff]
apps/plugins/mpegplayer/mpeg_parser.c [diff]
apps/plugins/speedread.c [diff]
apps/plugins/text_viewer/tv_pager.c [diff]
lib/rbcodec/codecs/adx.c [diff]
Christian Soffke
7th Dec 14:22 93ecb97693: skin_engine: Splash an error when a font fails to load

...Otherwise we fail silently with the theme only partially applied.
apps/gui/skin_engine/skin_parser.c [diff]
apps/lang/english.lang [diff]
Solomon Peachy
7th Dec 14:20 5ed0db6e90: erosqnative: Repurpose stereosw_select setting for output select

Turns out they did not swap the stereo switch lines on us, so this setting isn't really useful. Repurpose it to allow the user to force the device into headphone or line output mode.

Note that settings other than "Automatic" will cause jack detection to not work.

Default Automatic.
apps/lang/english.lang [diff]
apps/menus/sound_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
manual/configure_rockbox/sound_settings.tex [diff]
Dana Conrad
6th Dec 22:56 a29b570ac4: S5L8702: Rename nor-* to norboot-*

Since the SPI NOR flash is only used for the bootloader, rename the files accordingly, This is a preparation for the nandboot driver will be introduced, since S5L8720+ don't have an SPI NOR flash anymore.

This is a part of the large iPod Nano 4G and iPod Touch 2G support patch.

Credit: Cástor Muñoz
apps/debug_menu.c [diff]
bootloader/ipod-s5l87xx.c [diff]
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/nor-s5l8702.c firmware/target/arm/s5l8702/norboot-s5l8702.c [rename]
firmware/target/arm/s5l8702/nor-target.h firmware/target/arm/s5l8702/norboot-target.h [rename]
utils/mks5lboot/dualboot/Makefile [diff]
utils/mks5lboot/dualboot/dualboot.c [diff]
Vencislav Atanasov
6th Dec 21:59 2669548bcd: S5L8720: Add support for Timers, SPI, CPUFREQ and USB

This also includes a small SPI driver rework for ipod6g. Only the NOR flash currently uses SPI. Tested on target using View SysCfg in Debug menu.

This is a part of the large iPod Nano 4G and iPod Touch 2G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/kernel-s5l8702.c [diff]
firmware/target/arm/s5l8702/spi-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-target.h [diff]
firmware/target/arm/s5l8702/usb-s5l8702.c [diff]
Vencislav Atanasov
6th Dec 20:00 b240f01059: S5L8720: Add support for TTB and MMU

This is a part of the large iPod Nano 4G and iPod Touch 2G support patch.

Credit: Cástor Muñoz
firmware/SOURCES [diff]
firmware/target/arm/mmu-armv6.S [diff]
Vencislav Atanasov
6th Dec 16:39 adbd0125fd: erosqnative hw1/hw2: Check for DAC in bootloader

Check for the ES9018K2M dac in the bootloader for hw1/hw2 devices. Assume that all devices newer than hw2 have ES9018K2M DAC unconditionally.

All devices will now report the correct hw revision in the debug menu under Device Data.

Add devicedata.version field, current version 0.

Rename device_data.lcd_version to device_data.hw_rev.

hw2 devices with older bootloaders which ID as hw1 are special- cased to keep using hwvol on them. They should still upgrade though.
apps/debug_menu.c [diff]
firmware/SOURCES [diff]
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/drivers/audio/es9018k2m.c [diff]
firmware/drivers/axp-pmu.c [diff]
firmware/export/devicedata.h [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Dana Conrad
6th Dec 12:55 f895167345: Update Dockerfile for Debian 12
tools/configure [diff]
tools/docker_rbclient/Dockerfile [diff]
neofright
5th Dec 04:41 80c9d71556: rbutil changes for qt6
utils/rbutilqt/INSTALL [diff]
utils/themeeditor/gui/syntaxcompleter.cpp [diff]
utils/themeeditor/models/parsetreenode.cpp [diff]
William Wilgus
4th Dec 20:45 c24862ab64: themeeditor: Get rid of another pile of deprecation warnings
utils/themeeditor/gui/editorwindow.cpp [diff]
utils/themeeditor/gui/syntaxcompleter.cpp [diff]
utils/themeeditor/gui/syntaxcompleter.h [diff]
utils/themeeditor/models/targetdata.cpp [diff]
utils/themeeditor/qtfindreplacedialog/findreplaceform.cpp [diff]
Solomon Peachy
4th Dec 20:10 a565734e47: themeeditor: Don't double-compile quazip, just use the same one as rbutil
utils/themeeditor/CMakeLists.txt [diff]
utils/themeeditor/quazip [deleted]
utils/themeeditor/zlib [deleted]
Solomon Peachy
4th Dec 19:45 27da734a73: themeeditor: Use the quazip and zlib provided by rbutilqt
utils/themeeditor/CMakeLists.txt [diff]
utils/themeeditor/quazip [new]
utils/themeeditor/quazip/LICENSE.GPL [deleted]
utils/themeeditor/quazip/README.ROCKBOX [deleted]
utils/themeeditor/quazip/crypt.h [deleted]
utils/themeeditor/quazip/ioapi.c [deleted]
utils/themeeditor/quazip/ioapi.h [deleted]
utils/themeeditor/quazip/quazip.cpp [deleted]
utils/themeeditor/quazip/quazip.h [deleted]
utils/themeeditor/quazip/quazipfile.cpp [deleted]
utils/themeeditor/quazip/quazipfile.h [deleted]
utils/themeeditor/quazip/quazipfileinfo.h [deleted]
utils/themeeditor/quazip/quazipnewinfo.cpp [deleted]
utils/themeeditor/quazip/quazipnewinfo.h [deleted]
utils/themeeditor/quazip/unzip.c [deleted]
utils/themeeditor/quazip/unzip.h [deleted]
utils/themeeditor/quazip/zip.c [deleted]
utils/themeeditor/quazip/zip.h [deleted]
utils/themeeditor/zlib [new]
utils/themeeditor/zlib/zconf.h [deleted]
utils/themeeditor/zlib/zlib.h [deleted]
Solomon Peachy
4th Dec 15:47 4919c32bc7: FS13525: Updated Russian translation (Ilya Ban)
apps/lang/russian.lang [diff]
Solomon Peachy
4th Dec 01:37 61d70de7f4: tools: Fix up a bunch of compilation warnings

Plenty more to go.
tools/mkboot.c [diff]
tools/rbspeex/rbspeex.c [diff]
utils/ipodpatcher/main.c [diff]
utils/sansapatcher/main.c [diff]
utils/themeeditor/gui/codeeditor.cpp [diff]
Solomon Peachy
4th Dec 01:37 d114429d88: skin_debug: Fix missing PERCENT tag dump
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
4th Dec 01:16 00d7a93987: themeeditor: Fix compilation

This thing is suffering from some serious bitrot, but at least it compiles again.
lib/skin_parser/tag_table.c [diff]
utils/themeeditor/models/parsetreenode.cpp [diff]
Solomon Peachy
3rd Dec 21:55 2ce1a1e638: tagcache: fix logf format specifier mismatch

Mostly replace "%ld" with "%" PRId32 for int32_t, or add casts to improve portability and prevent incorrectly displayed values on some systems.

NB: (Some of) the log output is also presented to the user in the db_commit plugin.
apps/tagcache.c [diff]
Christian Soffke
3rd Dec 20:50 77888b0f24: erosqnative: Add Hifiwalker H2 V2.0 to manual and rbutil labels
manual/getting_started/hibyos_nativeinstall.tex [diff]
utils/rbutilqt/rbutil.ini [diff]
Dana Conrad
3rd Dec 06:48 793c797447: [Fix Yellow] remove DEBUGF from skin_parser.c cleanup spaces

move const to the proper side
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/statusbar-skinned.c [diff]
lib/skin_parser/skin_buffer.c [diff]
lib/skin_parser/skin_parser.c [diff]
lib/skin_parser/skin_parser.h [diff]
lib/skin_parser/tag_table.h [diff]
William Wilgus
3rd Dec 06:21 68d4fd0e5b: skin_engine minor refactoring struct alignment No Functional Changes

Move some elements around to save 720 bytes in the skin engine with cabbie

saves some code manipulating the skin_helpers arrays in skin_engine eliminate conditionals checking for pre/post process functions using a dummy fn(), consolidate pre/post process into a single function adding a bool preprocess to indicate stage
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar-skinned.h [diff]
lib/skin_parser/skin_parser.h [diff]
William Wilgus
2nd Dec 01:18 f1010005b0: Fix simulator crashing on MacOS

Event handling must happen on the main thread for MacOS.

Not sure if button_queue_wait is the best place for doing the SDL event polling, but seems to work ok.
apps/tagcache.c [diff]
firmware/drivers/button_queue.c [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/button-sdl.h [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
Christian Soffke
1st Dec 03:19 1745b74576: Make simulator compile on MacOS

Tested on MacOS Sequoia (Apple Silicon) with the latest Xcode command line tools, gcc 14
(Homebrew GCC 14.2.0_1) and sdl2 (Homebrew 2.30.9)

Make sure 'gcc' (and 'gcc-ar') is in your PATH ahead of the Xcode-provided "gcc"(clang). E.g. by setting up symlinks in /usr/local/bin that point to gcc-14 and gcc-ar-14.

Notes:
- The appropriate bmp from uisimulator/bitmaps has to be manually copied to your build folder and renamed to UI256.bmp, if you want the sim background to be displayed
apps/playback.c [diff]
apps/plugin.h [diff]
apps/plugins/imageviewer/imageviewer.make [diff]
apps/plugins/plugins.make [diff]
apps/plugins/puzzles/puzzles.make [diff]
firmware/include/rbendian.h [diff]
firmware/target/hosted/filesystem-unix.c [diff]
firmware/target/hosted/rtc.c [diff]
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/lib/codeclib.h [diff]
tools/configure [diff]
tools/mkspl-x1000.c [diff]
uisimulator/uisimulator.make [diff]
Christian Soffke
1st Dec 03:06 f9ae6d6524: toolchain: Make it easier to build toolchains on modern MacOS

When building on MacOS:

* greadlink instead of readlink
* gsed instead of sed
* $TMPDIR instead of a hardcoded /tmp
* apply a macos-specific patch
* additional option to GCC

Additionally, don't rely on the system 'isl' stuff; always have binutils build its own.

The forum post also says that bumping mpfr 3.1.x to 4.1.x, and mpc from 1.0.x to 1.2.x is needed, but I do not want to do that due to the possibility of unknown codegen changes.
tools/rockboxdev.sh [diff]
tools/toolchain-patches/apple_silicon.patch [new]
Solomon Peachy
1st Dec 02:14 c53c617976: peakmeter: Make a smaller, cleaner calc_db().

Use a binary tree in an array.
apps/recorder/peakmeter.c [diff]
Michael Sevakis
30th Nov 21:42 80a0bf590f: radio.c presets.c small clean-up

remove some extern vars in favor of get/set functions
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/menus/radio_menu.c [diff]
apps/radio/presets.c [diff]
apps/radio/radio.c [diff]
apps/radio/radio.h [diff]
apps/radio/radioart.c [diff]
William Wilgus
30th Nov 18:49 fdc17096b5: build: add 'lto' to features.txt if built with it

This makes it easy to tell at a glance if a build was with LTO or not.
apps/apps.make [diff]
apps/features.txt [diff]
tools/configure [diff]
Solomon Peachy
30th Nov 16:30 a41cad6458: Playlist Viewer: align buffer
apps/playlist_viewer.c [diff]
Christian Soffke
30th Nov 14:45 0469a95bee: Playlist Viewer: Mitigate FS #13518 (stack overflow)

Playlist Viewer hangs indefinitely on tracks with long Comment fields

Commit 2156d98 (metadata: mp3: Improve support for long tags) has allowed the length of parsed tags to exceed ID3V2_MAX_ITEM_SIZE.

Overly long tags may blow the stack due to a stack-allocated buffer in the metadata parsing routine, that can reach 3 times the size of the id3v2 and id3v1 buffers combined.

This patch moves the mp3entry struct used by the Playlist Viewer off the stack and onto the plugin buffer instead, which helps prevent a stack overflow in cases such as the example posted in FS #13518.

Future patches to either constrain ID3V2_BUF_SIZE to ~1120 bytes or to lower the stack usage of metadata parsing will still be required to fully address the issue.
apps/playlist_viewer.c [diff]
Christian Soffke
29th Nov 16:06 c6fb789b3b: test_fps add log buffering

most of the data gets wiped out by the next (or current) text

add some sleep and buffer the log text so we can display it after each test

needs tested: remote displays greyscale
apps/plugins/test_fps.c [diff]
William Wilgus
29th Nov 05:51 c115cb9472: [FixRed] 4ce8963c50 tree.c Maybe?
apps/tree.c [diff]
William Wilgus
29th Nov 05:25 4ce8963c50: [COV] tree.c rockbox_browse potential NULL deref

ultimately its only used as a way to prevent reentry but coverity correctly identified the possibility..
apps/tree.c [diff]
William Wilgus
29th Nov 05:23 c2bc7aa516: [BugFix] lib/printcell_helper.c vp buffer ovfl #2

found another place where vp width could exceed the buffer
apps/plugins/lib/printcell_helper.c [diff]
William Wilgus
28th Nov 21:26 b1e70db6e7: Fix FS #13523 splashf crash on devices with remote LCD

regression introduced in ff2f912
apps/gui/splash.c [diff]
Christian Soffke
28th Nov 20:07 afb0e845cf: strcasestr smaller function for PREFER_SIZE_OVER_SPEED tester script: https://onlinegdb.com/TbILrA5E7
firmware/common/strcasestr.c [diff]
William Wilgus
28th Nov 02:06 12aea7dae6: s5l87xx: Add support for S5L8720 to the GPIO driver

This is a part of the large iPod Nano 3G/4G support patch.

Credit: Cástor Muñoz
firmware/target/arm/s5l8702/gpio-s5l8702.c [diff]
firmware/target/arm/s5l8702/gpio-s5l8702.h [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-6g.c [diff]
Vencislav Atanasov
28th Nov 01:16 da9d67a0fe: Button queue handling is split from main button driver

First half of https://gerrit.rockbox.org/r/c/rockbox/+/570
apps/gui/bitmap/list.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/wps.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
firmware/SOURCES [diff]
firmware/drivers/button.c [diff]
firmware/drivers/button_queue.c [new]
firmware/export/button.h [diff]
firmware/target/arm/as3525/sansa-fuzev2/button-fuzev2.c [diff]
firmware/target/arm/as3525/scrollwheel-as3525.c [diff]
firmware/target/arm/ipod/button-1g-3g.c [diff]
firmware/target/arm/ipod/button-clickwheel.c [diff]
firmware/target/arm/ipod/button-mini1g.c [diff]
firmware/target/arm/pbell/vibe500/button-vibe500.c [diff]
firmware/target/arm/philips/hdd6330/button-hdd6330.c [diff]
firmware/target/arm/samsung/button-yh82x_yh92x.c [diff]
firmware/target/arm/sandisk/sansa-e200/button-e200.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/coldfire/mpio/hd300/button-hd300.c [diff]
firmware/target/hosted/android/button-android.c [diff]
firmware/target/hosted/android/lcd-android.c [diff]
firmware/target/hosted/button-devinput.c [diff]
firmware/target/hosted/maemo/maemo-thread.c [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/button-shanlingq1.c [diff]
William Wilgus
27th Nov 20:48 5954a2fd48: runtime info add type to clear time dialog switch to simple_list

its nice to know which item you are clearing simplelist does most of the background stuff for us
apps/screens.c [diff]
William Wilgus
27th Nov 03:13 cb478d9d3f: add INIT_ATTR to dircache_load and core_load_key_remap

both of these are only called in main at init
apps/core_keymap.c [diff]
firmware/common/dircache.c [diff]
William Wilgus
27th Nov 01:15 9b4bab7e0a: ipod6g: Move pmu_is_hibernated() from bootloader to PMU driver, misc fixes

Added better comments about the PMU registers, added pmu_set_cpu_voltage() (still unused).

Credit: Cástor Muñoz
bootloader/ipod-s5l87xx.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/pmu-target.h [diff]
Vencislav Atanasov
27th Nov 01:12 6b348d7f75: Fix nano2g build from 88a1d902
apps/plugins/crypt_firmware.c [diff]
Solomon Peachy
27th Nov 00:04 88a1d90236: s5l87xx: Add S5L8720 registers

This adds some confirmed and some to-be-confirmed (TBC) registers for Samsung S5L8720, which is used in iPod Nano 4G, iPod Touch 2G and the 920-0614-03 development/prototype board.

All credit goes to Cástor Muñoz
apps/plugins/crypt_firmware.c [diff]
firmware/export/s5l87xx.h [diff]
Vencislav Atanasov
26th Nov 14:00 6231407df7: fat: MAX_VIRT_SETOR_SIZE -> MAX_VIRT_SECTOR_SIZE
firmware/drivers/fat.c [diff]
Solomon Peachy
26th Nov 13:37 dfbbfb12d4: storage: Misc corrections and cleanups

* Make the partial sector logic a little clearer (no functional change)
* Corrections for debugging messages
* Also use MAX_VIRT_SECTOR_SIZE in BOUNCE_BUFFER calculations
firmware/common/file.c [diff]
firmware/drivers/ata-common.c [diff]
firmware/drivers/fat.c [diff]
Solomon Peachy
26th Nov 13:20 127b583a4d: ipod6g: Turn on STORAGE_NEEDS_BOUNCE_BUFFER

The s5l8702's ATA controller can only DMA in/out of cacheline- aligned buffers. The more general buffering code already ensures its buffers are aligned, but this covers the rest of the users of the general I/O path.
firmware/export/config/ipod6g.h [diff]
Solomon Peachy
26th Nov 13:20 b8d2ba3fc4: fat: Ensure bounce buffer is a multiple of MAX_PHYS_SECTOR_SIZE

* if MAX_VARIABLE_LOG_SECTOR is defined, use that
* if MAX_PHYS_SECTOR_SIZE is defined, use that
* use SECTOR_SIZE
firmware/drivers/fat.c [diff]
Solomon Peachy
25th Nov 17:40 ff9da12763: skin engine small cleanup optimize find_tag() remove string copy

since we now have the length of tag names thru the param_pos var

we can simplify the find tag function to skip if the length doesn't match this allows us to no longer make a string copy in order to terminate the buffer

move some of the more frequently encountered tags to the top of the lookup list

only SKIN_TOKEN_UNKNOWN position matters as its empty string is used as the sentinel
lib/skin_parser/skin_parser.c [diff]
lib/skin_parser/skin_scan.c [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
William Wilgus
25th Nov 14:34 303fc090a7: logf: Fix warnings that only happen with simulator builds.
apps/plugins/file_picker.c [diff]
Solomon Peachy
25th Nov 14:08 03555cc7b5: logf: Correct two format string problems in plugins
apps/plugins/file_picker.c [diff]
apps/plugins/lastfm_scrobbler.c [diff]
Solomon Peachy
25th Nov 04:26 87e55baaad: ata: Use a better default for SET_MULTIPLE_MODE

* If the device returns a valid upper limit (word 47) use that.
* If the current limit (word 59) is valid, use that.
* Fall back to 1 as a default, not 16!

Note this is only used for PIO transfers!
firmware/drivers/ata.c [diff]
Solomon Peachy
25th Nov 01:02 375a6bc9b1: s5l87xx: Use pointer arithmetic in register address calculation

This allows to reuse a register definition across similar SoCs that have the same layout of registers (same offsets), but are using a different base address for the peripheral. The include guard was also fixed to reflect the new file name of the header.

Some registers were renamed in order to match the datasheet and for consistency with the other register numbering.
firmware/export/s5l87xx.h [diff]
firmware/target/arm/ipod/button-clickwheel.c [diff]
firmware/target/arm/s5l8702/ipod6g/power-6g.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
firmware/target/arm/s5l8702/spi-s5l8702.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/s5l8702/uart-s5l8702.c [diff]
Vencislav Atanasov
24th Nov 22:55 18fdb41b2c: plugins: simple viewer: prevent audio dropouts when scrolling
apps/plugins/lib/simple_viewer.c [diff]
Christian Soffke
24th Nov 16:38 1fddea5e8e: Revert "[BugFix] Enums are only 2 bytes on some Devices"

This reverts commit 4ec34f698603d6498b0ec6be42678968a36a82f1.

Reason for revert:
-fshort-enums makes them smaller if the explicitrly enumerated values will fit in a smaller type
lib/rbcodec/codecs/aiff.c [diff]
lib/rbcodec/codecs/cRSID/C64/C64.c [diff]
lib/rbcodec/codecs/cRSID/libcRSID.c [diff]
lib/rbcodec/codecs/codecs.h [diff]
lib/rbcodec/codecs/libgme/ay_emu.h [diff]
lib/rbcodec/codecs/libgme/blip_buffer.h [diff]
lib/rbcodec/codecs/libgme/gb_apu.h [diff]
lib/rbcodec/codecs/libgme/gb_cpu.h [diff]
lib/rbcodec/codecs/libgme/gb_oscs.h [diff]
lib/rbcodec/codecs/libgme/kss_emu.h [diff]
lib/rbcodec/codecs/libgme/nes_apu.h [diff]
lib/rbcodec/codecs/libgme/nes_cpu.h [diff]
lib/rbcodec/codecs/libgme/nsf_emu.h [diff]
lib/rbcodec/codecs/libgme/track_filter.h [diff]
lib/rbcodec/codecs/libspc/spc_codec.h [diff]
lib/rbcodec/codecs/libwmavoice/avcodec.h [diff]
lib/rbcodec/codecs/libwmavoice/internal.h [diff]
lib/rbcodec/codecs/libwmavoice/utils.c [diff]
William Wilgus
24th Nov 15:23 4ec34f6986: [BugFix] Enums are only 2 bytes on some Devices

using enums to hold values larger than 0xFFFF could be problematic

WIP
lib/rbcodec/codecs/aiff.c [diff]
lib/rbcodec/codecs/cRSID/C64/C64.c [diff]
lib/rbcodec/codecs/cRSID/libcRSID.c [diff]
lib/rbcodec/codecs/codecs.h [diff]
lib/rbcodec/codecs/libgme/ay_emu.h [diff]
lib/rbcodec/codecs/libgme/blip_buffer.h [diff]
lib/rbcodec/codecs/libgme/gb_apu.h [diff]
lib/rbcodec/codecs/libgme/gb_cpu.h [diff]
lib/rbcodec/codecs/libgme/gb_oscs.h [diff]
lib/rbcodec/codecs/libgme/kss_emu.h [diff]
lib/rbcodec/codecs/libgme/nes_apu.h [diff]
lib/rbcodec/codecs/libgme/nes_cpu.h [diff]
lib/rbcodec/codecs/libgme/nsf_emu.h [diff]
lib/rbcodec/codecs/libgme/track_filter.h [diff]
lib/rbcodec/codecs/libspc/spc_codec.h [diff]
lib/rbcodec/codecs/libwmavoice/avcodec.h [diff]
lib/rbcodec/codecs/libwmavoice/internal.h [diff]
lib/rbcodec/codecs/libwmavoice/utils.c [diff]
William Wilgus
24th Nov 13:56 9e2c85e076: Merge s5l8700.h and s5l8702.h into s5l87xx.h

This is part of the preparation to add support for iPod Nano 3G and Nano 4G. There are some optimisations left, like merging similar blocks of registers that share the same layout, but the base address have changed between SoC generations.
bootloader/ipod-s5l87xx.c [diff]
firmware/export/cpu.h [diff]
firmware/export/s5l8702.h [deleted]
firmware/export/s5l8700.h firmware/export/s5l87xx.h [rename]
firmware/target/arm/s5l8700/adc-s5l8700.c [diff]
firmware/target/arm/s5l8700/dma-s5l8700.c [diff]
firmware/target/arm/s5l8700/fmradio-i2c-meizu.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/adc-nano2g.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/serial-nano2g.c [diff]
firmware/target/arm/s5l8700/meizu-m3/button-m3.c [diff]
firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c [diff]
firmware/target/arm/s5l8700/meizu-m6sp/button-m6sp.c [diff]
firmware/target/arm/s5l8700/meizu-m6sp/lcd-m6sp.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8700/power-meizu.c [diff]
firmware/target/arm/s5l8700/timer-s5l8700.c [diff]
firmware/target/arm/s5l8700/uart-s5l8700.c [diff]
firmware/target/arm/s5l8700/uart-s5l8701.c [diff]
firmware/target/arm/s5l8700/udacodec-meizu.c [diff]
firmware/target/arm/s5l8700/usb-s5l8700.c [diff]
firmware/target/arm/s5l8700/usb-s5l8701.c [diff]
firmware/target/arm/s5l8700/yps3/button-yps3.c [diff]
firmware/target/arm/s5l8700/yps3/lcd-yps3.c [diff]
firmware/target/arm/s5l8700/yps3/nand-yps3.c [diff]
firmware/target/arm/s5l8700/yps3/power-yps3.c [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.c [diff]
firmware/target/arm/s5l8702/clocking-s5l8702.h [diff]
firmware/target/arm/s5l8702/crypto-s5l8702.c [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
...and 14 more files.
Vencislav Atanasov
24th Nov 13:56 7fcc6a34a5: Unify S5L87xx register definitions

This is a preparation for merging both files to a new header named s5l87xx.h. Also removed unused register types.
firmware/export/s5l8700.h [diff]
firmware/export/s5l8702.h [diff]
Vencislav Atanasov
24th Nov 13:43 0624e265ab: build: Various LTO fixes

* Give arm panicf_f() USED_ATTR
* Ensure start_thread() has USED_ATTR
firmware/asm/m68k/thread.c [diff]
firmware/asm/mips/thread-mips32.c [diff]
firmware/firmware.make [diff]
firmware/panic.c [diff]
Solomon Peachy
24th Nov 13:23 bdf1690cb2: build: Allow LTO to work globally, not just codecs/plugins

IMPORTANT: There is no guarantee this will compile cleanly much less _work_ on any given target. This is purely to enable future hackery.
apps/plugins/plugins.make [diff]
firmware/firmware.make [diff]
lib/rbcodec/codecs/codecs.make [diff]
tools/configure [diff]
Solomon Peachy
24th Nov 13:16 200529532b: configure: Allow bootloader to be specified under advanced options

This required renaming the LTO build option.
tools/configure [diff]
Solomon Peachy
24th Nov 05:57 7ea64a315b: Revert "storage: Disk Cache buffer size may need to be larger than SECTOR_SIZE"

This reverts commit dcec6828a3002963a3766256a02c1e12c961acec.

This did not solve the reported problem, and it turns out that the original code did the right thing with respect to the device's logical sector size.
firmware/include/fs_defines.h [diff]
Solomon Peachy
24th Nov 05:00 dcec6828a3: storage: Disk Cache buffer size may need to be larger than SECTOR_SIZE

The file I/O code operates in terms of the FILESYSTEM sector size, which may be much larger than the underlying device's logical sector size. So the disk cache buffers need to be the the larger of:

* Max allowed filesystem sector size (MAX_VIRT_SECTOR_SIZE) (if defined)
* Max allowed logical sector size (MAX_VARIABLE_LOG_SECTOR) (if defined)
* Fixed logical size (SECTOR_SIZE)
firmware/include/fs_defines.h [diff]
Solomon Peachy
24th Nov 04:07 7df324b819: sdmmc: the tCardInfo.initialized field needs to be an integer, not bool

Some drivers (Notably the PP SD driver) uses negative values to indicate errors.
firmware/export/sdmmc.h [diff]
Solomon Peachy
24th Nov 04:07 f24bae5baf: ...This time, fix the non-multidrive+non-multivolume builds.

I swear, this is getting old.
apps/menus/main_menu.c [diff]
Solomon Peachy
24th Nov 03:39 fb2316b9b0: Hopfully fix up the remaining warnings
apps/menus/main_menu.c [diff]
Solomon Peachy
24th Nov 02:44 1bf19eaaff: tag_table use unsigned short rather than enum

we have 190 tags

mips padded with extra 2 bytes * 2

saves ~768 bytes
lib/skin_parser/tag_table.h [diff]
William Wilgus
24th Nov 02:20 21ebfd574a: fix more red in hosted targets that don't share the generic system implementation
firmware/target/hosted/ibasso/system-ibasso.c [diff]
firmware/target/hosted/samsungypr/ypr0/system-ypr0.c [diff]
firmware/target/hosted/samsungypr/ypr1/system-ypr1.c [diff]
firmware/target/hosted/sonynwz/system-nwz.c [diff]
Solomon Peachy
24th Nov 01:59 57cd8cd712: fix warnings and errors in a41a001258

* volume_partition() wasn't defined for hosted targets
* wrap the "special" volume stuff in HAVE_MULTIDRIVE
apps/menus/main_menu.c [diff]
firmware/target/hosted/system-hosted.c [diff]
Solomon Peachy
24th Nov 01:33 a41a001258: info_menu: Don't print a line for volumes that don't exist

This is an example of what could happen:

HD1: Not present ouping Not present ouping Not present ouping Not present

We have up to 4 fixed volume slots (==partitions) per drive, but shouldn't display an entry if the slot isn't used, ie the normal case. Instead, we _were_ displaying a partially-unitialized entry!

There is a special case for targets that support multiple *drives*, in that we want to show 'not present' for the first volume slot of the 2nd drive.
apps/menus/main_menu.c [diff]
Solomon Peachy
24th Nov 01:20 213686b55c: [Fix Yellow] skin_parser.c const correctness
lib/skin_parser/skin_parser.c [diff]
William Wilgus
24th Nov 00:41 75a4937568: skin_tags save space in tag_table

skin_tags have name and sometimes valid parameters

storing a pointer results in a lot of wasted space instead record size of name and write the parameter string just after
lib/skin_parser/skin_parser.c [diff]
lib/skin_parser/skin_scan.c [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
William Wilgus
23rd Nov 23:42 237c83852a: Fix: read_color_theme_file needed beyond init
apps/filetypes.c [diff]
Christian Soffke
23rd Nov 22:19 1535a42b68: Add include guard to s5l8700.h
firmware/export/s5l8700.h [diff]
Vencislav Atanasov
23rd Nov 22:19 f4bbddb044: ipod6g: Fix config

- NOR flash size is 1MB, not 10MB
- BOOTFILE_EXT2 is not used, the Rockbox binary is always unencrypted on iPod 6G. This looks like a leftover from ipodnano2g config
firmware/export/config/ipod6g.h [diff]
Vencislav Atanasov
23rd Nov 14:05 46a4361bf1: playlist viewer: move on-disk playlist struct to playlist.c
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
23rd Nov 04:20 2591f6ad02: filetypes.c small cleanup

no functional changes
apps/filetypes.c [diff]
William Wilgus
22nd Nov 22:01 253eb79db3: erosqnative: hw4 support

Support hw4 units with AXP2101 PMU

Bootloader successfully compiles and loads onto device. The LCD appears to be identical to hw3 units. Scroll wheel and buttons work Audio output works, including volume. HP/LO detect works Rockbox build is generic GPIO gating logic seems to be working as intended now.

- Added new GPIO definitions - some significant overlaps with pins from previous hardware revisions...
- Added some GPIO definitions for older players we didn't know about
- Add register definitions for AXP2101 from datasheet
(these are very different from AXP192!)
- Add AXP2101 regulator definitions, need to support multiple step sizes per regulator.
- Verify AXP2101 voltage set multi-range logic
- Verify AXP2101 voltage get multi-range logic
- Make AXP2101 its own driver
- AXP2101 driver should be "minimally viable", though I think there is some extra functionality that could be implemented.
- Disabling the coulomb counter stuff - we could maybe make the E-Gauge work for the same purpose, but it only appears to be used on the debug screen at the moment so it doesn't seem like it's worth the effort.
- Found new button GPIOs
- Found error in my GPIO setting logic, blue light works now!
- Set LDO/DCDC output voltages to OF's settings, as far as I can tell.
- Determined we probably want TCS1421_CFG1:0 to be 0x00, for UFP behavior
- Tested this rb build with both old and new bootloaders on hw1.5, hw2, hw4 in as many configurations as I can think of, works across the board.
- Bootloader can install itself on hw4, so nand chip isn't novel
- Uninstallation file can be made by patcher script, works on hw4
- Installation file can be made by patcher script, works on hw4
- Added HW4 to rbutil, manual
firmware/SOURCES [diff]
firmware/drivers/axp-2101.c [new]
firmware/drivers/axp-pmu.c [diff]
firmware/export/axp-2101.h [new]
firmware/export/config/erosqnative.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/gpio-target.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
manual/getting_started/hibyos_nativeinstall.tex [diff]
manual/rockbox_interface/main.tex [diff]
tools/configure [diff]
utils/rbutilqt/rbutil.ini [diff]
Dana Conrad
22nd Nov 21:45 d7b57e33d9: Add support for S5L8720 in various places

Due to its similarity with S5L8702, clickwheel support and sleep can be used as-is on S5L8720. DRAM and IRAM are also configured.
apps/plugins/plugin.lds [diff]
bootloader/SOURCES [diff]
firmware/export/cpu.h [diff]
firmware/target/arm/ipod/button-clickwheel.c [diff]
firmware/target/arm/system-arm.h [diff]
Vencislav Atanasov
22nd Nov 21:45 6691214e51: Rename iPod 6G bootloader from ipod6g.c to ipod-s5l87xx.c

This is part of the preparation to introduce support for iPod Nano 3G and iPod Nano 4G.
bootloader/SOURCES [diff]
bootloader/ipod6g.c bootloader/ipod-s5l87xx.c [rename]
utils/mks5lboot/dualboot/dualboot.c [diff]
Vencislav Atanasov
22nd Nov 15:21 98259cd55c: FS #13521: Corrections for Korean translation (Hoseok Seo)
apps/lang/espanol.lang [diff]
apps/lang/korean.lang [diff]
Solomon Peachy
22nd Nov 13:25 dfa7d43b43: FS #13520: Updated Spanish translation (Lianela Sky)

This _should_ bring us up to 100% completion!
apps/lang/espanol.lang [diff]
Solomon Peachy
22nd Nov 07:37 56378cb38e: [FixRed] main_menu.c typo CONFIG_CHARGING == CHARGING_SIMPLE
apps/menus/main_menu.c [diff]
William Wilgus
22nd Nov 07:07 b73fc15f1f: [FixRed] Info menu Devices without HAVE_RECORDING
apps/menus/main_menu.c [diff]
William Wilgus
22nd Nov 06:40 4340f33b63: main_menu.c convert system>info menu to static simplelist
apps/menus/main_menu.c [diff]
William Wilgus
22nd Nov 01:07 fb134c9533: Rename UC870x to UC87xx

This is a driver for the UART controller on the S5L87xx series of SoCs, which is named after the SoC family. Since S5L8720 is confirmed to have the same interface and the newer models probably also have it, the driver is renamed to reflect this.
firmware/SOURCES [diff]
firmware/export/s5l8700.h [diff]
firmware/export/s5l8702.h [diff]
firmware/export/uc870x.h firmware/export/uc87xx.h [rename]
firmware/target/arm/s5l8700/debug-s5l8700.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/serial-nano2g.c [diff]
firmware/target/arm/s5l8700/uart-s5l8700.c [diff]
firmware/target/arm/s5l8700/uart-s5l8701.c [diff]
firmware/target/arm/s5l8700/uart-target.h [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/arm/s5l8702/ipod6g/serial-6g.c [diff]
firmware/target/arm/s5l8702/uart-s5l8702.c [diff]
firmware/target/arm/s5l8702/uart-target.h [diff]
firmware/target/arm/uc870x.c firmware/target/arm/uc87xx.c [rename]
Vencislav Atanasov
22nd Nov 01:05 39f8101d60: Enable UC870x "auto baud" and "fine tune" features based on the SoC capabilities

This makes it easier to add support for the remaining SoCs of the S5L87xx series.
firmware/export/uc870x.h [diff]
firmware/target/arm/uc870x.c [diff]
Vencislav Atanasov
22nd Nov 01:03 1c7fddad5b: Add the remaining iPod Nano SoCs to config

Currently only S5L8701 (Nano 2G) and S5L8702 (Classic/6G, Nano 3G) are defined. This change adds the remaining to CONFIG_CPU, as a preparation for porting to these platforms. It also defines the RTC types for Nano 3G and Nano 4G.

New CONFIG_CPU options: S5L8720 - iPod Nano 4G S5L8730 - iPod Nano 5G S5L8723 - iPod Nano 6G S5L8760 - iPod Nano 7G
firmware/export/config.h [diff]
firmware/export/config/ipod6g.h [diff]
Vencislav Atanasov
22nd Nov 00:56 e6f49e47e3: menu.c remove the check for valid menu_callback

instead of checking for menu callback use an empty callback instead

this code is a bit strange in that a prior valid callback might be returned so I left the behavior but I question if thats really needed..
apps/menu.c [diff]
William Wilgus
22nd Nov 00:50 d1a4903afb: [BugFix] lib/printcell_helper.c vp buffer ovfl

vp->width may exceed the actual available screen area which prevents the sim from clipping properly
'
apps/plugins/lib/printcell_helper.c [diff]
William Wilgus
21st Nov 17:14 00906647b4: Simplelist remove simplelist_set_line_count(n)

replace with simplelist_reset_lines(void) there was one user saving one short string remove the feature to simplify list code

fix scrolling in dircache debug item
apps/debug_menu.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/skin_engine/skin_engine.c [diff]
William Wilgus
21st Nov 15:46 d6e3514c0d: [BugFix] gui/list.c simplelist_set_line_count > 1 list buffer corruption

when line was > 0 static item might not be in buffer after 35a913473e
apps/gui/list.c [diff]
William Wilgus
21st Nov 13:49 35a913473e: list.c small cleanup, add simplelist_setline()

add simplelist_setline() to allow literal strings or owner buffer to be shown in the simplelist

this makes simplelist more versatile by allowing static strings to be added directly instead of copying into the simplelist buffer
(ie not consuming the simplelist text buffer)

add bounds checking to simplelist_setline/addline No one has more than SIMPLELIST_MAX_LINES.. right?
-- there are actually a few places this isn't checked..

use new setline function in debug menu

share the simplelist buffer with the list_draw fn for gui_synclist since they shouldn't be in-use simultaneously we can save some stack
apps/debug_menu.c [diff]
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/skin_engine/skin_engine.c [diff]
William Wilgus
21st Nov 12:43 505bbcaff5: voice: Correct piper voice name for es_MX
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
21st Nov 12:33 587cf2fca0: lang: Add VOICE_LANG_NAME for espanol
apps/lang/espanol.lang [diff]
Solomon Peachy
21st Nov 01:46 9b725a9fad: voice: Add Spanish (Mexican) to the nightly voice sets.

This uses the piper engine.

Peninsular Spanish sounds markedly different from Central/South American Spanish, so it seems prudent to offer both.

...We'll see how the masses feel.
docs/CREDITS [diff]
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
20th Nov 15:58 beb7c829da: lang: Minor mechanical corrections in the Spanish translation
apps/lang/espanol.lang [diff]
Solomon Peachy
20th Nov 15:58 f040c4c9ec: Rename CPU_S5L870X to CPU_S5L87XX

This is a preparation to introduce support for the following SoC models: S5L8720 (iPod Nano 4G, iPod Touch 2G), S5L8730 (iPod Nano 5G), S5L8723 (iPod Nano 6G) and S5L8740 (iPod Nano 7G)

The whole family consists of SoCs which are similar, running ARMv6 and Thumb2 instructions, but some peripherals are located at a different address.

No functional change is to be expected so far.
apps/debug_menu.c [diff]
apps/plugins/mpegplayer/audio_thread.c [diff]
apps/settings.h [diff]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
lib/rbcodec/codecs/demac/libdemac/demac_config.h [diff]
lib/rbcodec/codecs/libatrac/atrac3.h [diff]
lib/rbcodec/codecs/libmusepack/synth_filter_arm.S [diff]
lib/rbcodec/codecs/libtremor/config-tremor.h [diff]
lib/rbcodec/codecs/libwma/wmadec.h [diff]
Vencislav Atanasov
20th Nov 13:54 64d94889a2: voice: Enable nightly generation of a Spanish voice.

This uses Piper with a Peninsular Spanish voice.

I'd like to add Mexican Spanish as well, but then we'd have to use a different TTS engine. Espeak is relatively crappy, and gtts relies on a remote service.
tools/builds.pm [diff]
Solomon Peachy
20th Nov 13:14 fdce5c05ef: FS #13517: Major update for Spanish translation (Lianela Sky)
apps/lang/espanol.lang [diff]
Solomon Peachy
20th Nov 10:31 5c6d463cc3: Simplify libgme define
lib/rbcodec/codecs/libgme/blargg_common.h [diff]
Vencislav Atanasov
19th Nov 12:12 8bf6dc521f: filetypes.c compress builtin filetypes

the builtin audio filetypes all use an int to signal (FILE_ATTR_AUDIO) it takes less space to give them their own array and apply the attrib at runtime

bit of const correctness and some other small cleanup
apps/filetypes.c [diff]
apps/filetypes.h [diff]
William Wilgus
18th Nov 05:15 75282a1683: Playlist Viewer: Remove forward declarations
apps/playlist_viewer.c [diff]
Christian Soffke
17th Nov 03:12 38df1ff311: Fix target order and formatting in case block

Added Creative Zen V (95) to the list, since it was missing.
tools/configure [diff]
Vencislav Atanasov
17th Nov 02:48 1451fa2cbb: Reorder targets by number
tools/configure [diff]
Vencislav Atanasov
16th Nov 17:18 78bea2a7ac: playlist: Remove playlist_get_required_bufsz
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
16th Nov 17:14 953fcef05e: gui: Fix unsuccesful attempt at loading default viewer iconset

The default viewer icons file seems to have been removed in the rewrite of buildzip.pl
(see commit 66b6fdb).

So, this only worked accidentally, once some theme put a viewers.bmp file in the icons folder, potentially leading to confusing behavior.

Deactivating viewer icons (instead of reverting to some default file) when they are set to "-" is probably expected behavior at this point.
apps/gui/icon.c [diff]
Christian Soffke
16th Nov 17:10 ff2f9123f6: gui: splash(-progress): use theme colors, +1px spacing
apps/gui/splash.c [diff]
Christian Soffke
15th Nov 12:28 15a4eb0422: debug: Correct most of the sector_t printf()s

The 'll' printf modifier is currently broken. Fortunately all but one of the uses is printing MB instead of bytes, which means we can cast the value to a 'unsigned long' without risk of overflow/wraps.

...There's one remaining use ('%llx') which still needs to be sorted out.
apps/debug_menu.c [diff]
Solomon Peachy
15th Nov 12:24 9bf033dd66: ata: Prefer using "virtual" sector size where possible

Normally, if a device uses larger physical sector size than the logical size and supports so-called "512e" mode, we let the device deal with partial sector reads/writes.

However, if MAX_VIRT_SECTOR_SIZE is defined, we support partitioning/filesystems that use a larger "virtual" sector than the logical sector. typically this matches the physical sector size of the drive, which means that despite a small logical sector size, all I/O is done in terms of the physical sector size.

Therefore, when MAX_VIRT_SECTOR_SIZE and MAX_PHYS_SECTOR_SIZE are enabled (currently only ipod5g and ipod6g), prefer software-based partial sector I/O.
firmware/common/disk.c [diff]
firmware/drivers/ata-common.c [diff]
firmware/export/ata.h [diff]
Solomon Peachy
15th Nov 12:24 120906dc8b: ata: Ensure that the bounce buffer is minimum 32-bit aligned

Basically, if STORAGE_ALIGN_ATTR isn't defined, define it to be sizeof(uint32_t) in the ATA code.
firmware/drivers/ata-common.c [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/system.h [diff]
Solomon Peachy
14th Nov 00:58 d36ef610c2: x1000: fix yellow in prior commit
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
Solomon Peachy
13th Nov 23:26 1fb906500a: x1000: LCD DMA fix

Credit ZappBranigan2972 on the forums
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/lcd-x1000.h [diff]
Dana Conrad
13th Nov 12:27 d0aaa37d33: ata: Panic if we get a drive with unaligned logical sectors.

If identify device word 209 is valid, check to see if the drive report on the alignment of LBA0 with respect to physical sector 0.

If it's not aligned, bail immediately. Supporting this properly won't be hard, but it's not someting we want to do unless necessary.
firmware/drivers/ata-common.c [diff]
Solomon Peachy
12th Nov 13:11 044ba60bcf: ATA: Add some more logf debugging
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
12th Nov 13:11 461704f803: misc: Fix some compile warnings when logf is enabled
apps/plugins/lastfm_scrobbler.c [diff]
firmware/drivers/synaptics-mep.c [diff]
Solomon Peachy
12th Nov 13:11 3d1dcebebb: ipod6g: Wrap more DMA functionality with HAVE_ATA_DMA

No functional change.

We always have it turned in for ipod6g, but this makes some of the flow/logic easier to follow.
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
12th Nov 12:39 cb7b6fd572: skin parser: Fix crash that can occur when same bmp is loaded multiple times

img may have already been loaded, in which case bm.data will intentionally have been set to NULL
(see NOTE in load_skin_bmp)

Also see commit 01cbb79 and previous fix 35f9a5b
apps/gui/skin_engine/skin_parser.c [diff]
Christian Soffke
12th Nov 06:57 8e2b11cd3c: pugins: PictureFlow: Fix album not found

Each artist name is only stored once, regardless of case, so we have to perform a case-insensitive comparison with the current artist.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
12th Nov 06:55 9b20f59ac6: plugins: Simple Viewer: Exit when pressing Select, or (on iPods) Menu/Left
apps/plugins/lib/simple_viewer.c [diff]
Christian Soffke
11th Nov 21:29 d6e2b5d3cf: Enable use of ATA DMA on Philips GoGear HDD1630 and HDD6630

These are PP502x-based devices shipped with ATA drives. However, PIO is flaky when used with the various ATA/CF<->SD adapters, so turn it in across the board.
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
Solomon Peachy
11th Nov 15:38 a4fe20a278: filestr_cache: Some more 64-bit sector_t fixes

This isn't strictly needed for FAT32, but the core file cache code needs to be able to reference >32bit sector addresses.
firmware/common/file.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/file_internal.h [diff]
Solomon Peachy
11th Nov 07:21 c67294913f: Fix get_token_value from 7288d9e
apps/gui/skin_engine/skin_tokens.c [diff]
Christian Soffke
11th Nov 04:59 27c5db15e3: [Fix Red] #3 cfg_vals missing brace
apps/settings_list.c [diff]
William Wilgus
11th Nov 03:59 4c34e150f7: [Fix Red] #2 7288d9e Move cfg_vals from settings_list

agc settings..
apps/settings_list.c [diff]
William Wilgus
11th Nov 03:30 9baadd4a95: [Fix Red] 7288d9e Move cfg_vals from settings_list, expand settings_dumper
apps/gui/skin_engine/skin_parser.c [diff]
apps/settings_list.c [diff]
William Wilgus
11th Nov 02:53 7288d9e5d2: Move cfg_vals from settings_list, expand settings_dumper

cfg_vals aren't needed for most settings

F_TABLE_SETTING, F_CHOICE_SETTING, F_BOOL_SETTING

can use cfg_vals but only a few custom settings use it otherwise for these settings we define F_HAS_CFGVALS and use the setting union instead (as these all use UNUSED)

noticed that settings_dumper missed most cfg values so didn't show text setting values

saves ~300 bytes
apps/gui/option_select.c [diff]
apps/gui/option_select.h [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/plugin.h [diff]
apps/plugins/settings_dumper.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
William Wilgus
9th Nov 23:07 3e95b13b7a: ata: Fix yellow in some bootloaders, introduced in c61ad40812
firmware/drivers/fat.c [diff]
Solomon Peachy
9th Nov 22:48 c8e1da8e90: ipod5g/6g: support DEFAULT_VIRT_SECTOR_SIZE

This way if there's no valid partition/filesystem we still report the
"correct" sector size out via USB.

Update the ipod5g/6g bootloaders so they do the right thing too.
bootloader/ipod.c [diff]
bootloader/ipod6g.c [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/ipodvideo.h [diff]
Solomon Peachy
9th Nov 22:48 1516c48a37: storage: Support a default virtual sector size

Normally, we figure out the virual sector size from the filesystem info. However, if there's no filesystem, we fall back to the hardware's logical sector size.

Some device firmware (eg ipod5g/6g) need their partition tables set up with larger-than-logical sector sizes; this way we can present the
"correct" sector size to maintain interoperability with the stock firmware and make it so that the drive can still be properly partitioned from within rockbox.

This patch adds support for DEFAULT_VIRT_SECTOR_SIZE. Nothing uses it yet.
apps/main.c [diff]
firmware/common/disk.c [diff]
firmware/export/disk.h [diff]
Solomon Peachy
9th Nov 21:34 c61ad40812: storage: Wrap runtime variable sector size with MAX_VARIABLE_LOG_SECTOR

When enabled this allows 512n and 4Kn drives to be used with a single build.
(So far all ATA SSDs use 512 byte logical sectors)
firmware/common/disk.c [diff]
firmware/drivers/ata-common.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/config.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/ipodvideo.h [diff]
firmware/export/disk.h [diff]
firmware/export/fat.h [diff]
firmware/include/fs_defines.h [diff]
Solomon Peachy
9th Nov 21:32 bc6c189dcb: storage: rename MAX_LOG_SECTOR_SIZE to MAX_VIRT_SECTOR_SIZE
apps/debug_menu.c [diff]
firmware/common/disk.c [diff]
firmware/drivers/ata-common.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/creativezenxfistyle.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/ipodvideo.h [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/export/config/sonynwze360.h [diff]
firmware/export/config/sonynwze370.h [diff]
firmware/export/disk.h [diff]
firmware/export/fat.h [diff]
firmware/include/fs_defines.h [diff]
firmware/usbstack/usb_storage.c [diff]
Solomon Peachy
9th Nov 21:32 7ecab006c0: fat: Allow use of variable logical sector sizes

Only used if MAX_LOG_SECTOR_SIZE is defined

This allows a single build to seamlessly work with (eg) 512B or 4K sectors.
firmware/common/file.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
Solomon Peachy
9th Nov 09:26 e519356c47: plugin: don't start plugin when another non-tsr plugin is running
apps/plugin.c [diff]
Roman Artiukhin
9th Nov 09:25 eb91595988: fileop: display progress bar for single file deletion
apps/fileop.c [diff]
Christian Soffke
8th Nov 02:08 42b63daebb: ipod6g: Swap STORAGE_NEEDS_BOUNCE_BUFFER for STORAGE_WANTS_ALIGN
firmware/export/config/ipod6g.h [diff]
Solomon Peachy
7th Nov 23:15 3664d382e0: ata: if drive doesn't advertise a nonstandard sector size, default to 512

...Instead of SECTOR_SIZE, which might be different. This way we can properly validate the value.
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
7th Nov 21:44 9dd2781b87: ipod6g: Use storage bounce buffer for ipod6g
firmware/export/config/ipod6g.h [diff]
Solomon Peachy
7th Nov 16:45 0386469794: Fix incorrect UI font id in some plugins

see commit f19f3ef
apps/plugins/lib/simple_viewer.c [diff]
apps/plugins/periodic_table.c [diff]
apps/plugins/tagcache/tagcache.c [diff]
Christian Soffke
7th Nov 12:59 ee365f21c4: show track info: skip Comment and codec string copies

Comment copy was added in c647e62c as workaround for FS #11033 and no longer needed (I tested really long lines and scroll no longer throw any errors on my Sansa e200v2)
apps/screens.c [diff]
Roman Artiukhin
7th Nov 12:53 da478aaa32: metadata: mp3: Simplify comment tag processing

Avoid unnecessary string comparison.
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
7th Nov 12:53 2156d9874f: metadata: mp3: Improve support for long tags

Increase buffer size by 368 bytes by using id3v1buf. Limit tag size only if metadata fails to fit without limitation.
lib/rbcodec/metadata/id3tags.c [diff]
Roman Artiukhin
7th Nov 12:51 9e70991174: disk: Simplify LOG_SECTOR_SIZE() definition
firmware/common/disk.c [diff]
Solomon Peachy
7th Nov 12:49 f58fad943e: diskcache: Size the buffers for MAX_LOG_SECTOR_SIZE

Because if we get a logical sector size > min sector size we'll trigger buffer overflows.
firmware/common/disk.c [diff]
firmware/include/fs_defines.h [diff]
Solomon Peachy
7th Nov 12:48 e29ddfb6be: ata: Support for ATA logical sector sizes > 512B

Basically this requires un-hardcoding SECTOR_SIZE everywhere, in favor of using a variable containing what was reported in IDENTIFY INFO.

Note that the rest of the storage subsystem still needs to be fixed up!
firmware/drivers/ata-common.c [diff]
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
7th Nov 01:18 c3d06d21df: mikmod: Properly render with fonts larger than 6x8 pixels.
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
6th Nov 20:18 10abb34e54: mikmod: Use current theme fonts, not the cut-down SYSFONT
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
6th Nov 14:40 d1ffaa8949: convbdf: Properly support a compiled sysfont of over 64K.

The 'struct font' definition says:

const void *offset; /* offsets into bitmap data, uint16_t if bits_size < 0xFFDB else uint32_t*/

However convbdf was unconditionally using 'unsigned short' without checking bits_size. This generated a bogus table if used with an uncapped SYSFONT due to offeset overflows. And a pile of complier warnings.

That said, we're still capping SYSFONT at 255 chars due to space constraints -- 14-Rockbox-mix jumps from 2.6K to 1022K if left uncapped. Yowza.
tools/convbdf.c [diff]
Solomon Peachy
5th Nov 02:10 000a575d13: storage: Make ramdisk use the global SECTOR_SIZE definition
firmware/drivers/ramdisk.c [diff]
Solomon Peachy
4th Nov 12:33 2824bd5f16: ipod6g: Support MAX_PHYS_SECTOR_SIZE of 4K

This lets us *natively* handle varying physical sector sizes without playing games and lying about the logical sector size.

(The original drives use 4K _physical_ sectors with 512B logical sectors, but you have to access everything in 4K blocks...)

Achieve this by splitting the MAX_PHYS_SECTOR_SIZE code out of the main ATA driver and re-using it.
firmware/drivers/ata-common.c [new]
firmware/drivers/ata.c [diff]
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
3rd Nov 18:59 d60dee6188: tagtree cleanup first letter menu code

no functional difference just some code shared and trimming of unnecessary format strings
apps/tagtree.c [diff]
William Wilgus
3rd Nov 00:54 f3026cd072: xduoox3: Try to distinguish between "USB Plugged in" and "Charging"
firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c [diff]
Solomon Peachy
2nd Nov 21:27 06986d27f0: Generate A-Z menus in the tagtree

this adds a new command %byfirstletter

%byfirstletter "custom_track" "Track A to Z" "title"
^ command ^menu name ^menu title ^subitem

need a better name for subitem btw..

this patch also allows us to tell when we are in the BFL menu by checking customaction == ONPLAY_CUSTOMACTION_FIRSTLETTER we then enable spelling of the letters in the menu it spells Numeric too but that shouldn't matter with the upcoming voice patch
apps/onplay.h [diff]
apps/tagnavi.config [diff]
apps/tagtree.c [diff]
apps/tree.c [diff]
William Wilgus
2nd Nov 18:58 67ad6589fb: Fix additional red introduced in 04dc052a96
firmware/export/config.h [diff]
Solomon Peachy
2nd Nov 18:48 4be6285444: disk: MAX_LOG_SECTOR_SIZE also applies to a few non-ATA targets

Fuze+, native Sonys, and some of the Zens use 2K sectoring from the partition/filesystem perspective, even though the underlying storage used 512-byte sectoring.
firmware/common/disk.c [diff]
Solomon Peachy
2nd Nov 18:46 04dc052a96: Fix (most of) the red in a8c52b1bfb

HAVE_STORAGE_INFO needs to be defined for all non-sim/hostfs targets
firmware/export/config.h [diff]
Solomon Peachy
2nd Nov 17:50 a8c52b1bfb: disk: Support a non-fixed (logical) SECTOR_SIZE

This allows a single build to support ATA drives with (eg) 512B and 4K logical sector sizes. This is needed because ATA drives are user- replaceable and we don't know what could get plugged in.

* Add disk_get_log_sector_size() API (no-op for non-ATA storage)
* Mostly a no-op if MAX_LOG_SECTOR_SIZE is not enabled
* Sanity-check that storage's logical sector size is not larger than what we're built for

NOTE: Other layers (eg ATA, FAT, etc) still need to be made aware of this.
firmware/common/disk.c [diff]
firmware/export/disk.h [diff]
Solomon Peachy
2nd Nov 17:03 209aeff5b1: usb: Multiple improvements:

* Support varying-sized logical sectors in a single build, instead of a hardcoded SECTOR_SIZE.
* Properly truncate READ CAPACITY(10) if drive has over 2^32 sectors And fix potential alignment issues
* Properly truncate READ_FORMAT_CAPACITY if drive has over 2^32 sectors
* Support READ CAPACITY(16)
firmware/usbstack/usb_storage.c [diff]
Solomon Peachy
2nd Nov 15:23 fa4bdf5744: Revert "Add desktop file for RockboxUtility"

This reverts commit f5d31fc1c4e31d7da00c87204ae58df9af44bcd1.
rbutil/rbutilqt/data/rbutil.desktop [deleted]
Solomon Peachy
2nd Nov 00:26 f91604cf0e: ata: Comments, function/variable renames, and stylistic cleanups

No functional change. Goal is to share common code between the ATA drivers.
firmware/drivers/ata.c [diff]
Solomon Peachy
1st Nov 18:12 51ba8b3eee: erosqhosted: Support HW volume control on rev2+ hardware

This also adds hwrev info to the debug output.
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
firmware/target/hosted/aigo/power-erosq.c [diff]
firmware/target/hosted/alsa-controls.h [diff]
Solomon Peachy
1st Nov 15:59 1c28cb439b: Translation updates:

- Chinese Simplified (王吉)
- Turkish (Mustafa YILDIZ)
apps/lang/chinese-simp.lang [diff]
apps/lang/turkce.lang [diff]
Solomon Peachy
1st Nov 15:55 ca4529e4e3: voice: Correct "no." -> "number" voice correction
tools/voice-corrections.txt [diff]
Solomon Peachy
1st Nov 01:51 0a11b06d93: ata: Correct parsing of the logical sector size in the IDENTIFY DEVICE

....It's specified in 16-bit words, not bytes. So multiply it by 2.

(This hasn't been a problem in practice as everything uses 512B logical sectors so far..)
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
1st Nov 01:51 d401501fda: disk: Clean up identing (no funcitonal change)
firmware/common/disk.c [diff]
Solomon Peachy
31th Oct 23:57 bf2a929f4e: main: Include the version string in "no partitions found" error
apps/main.c [diff]
Solomon Peachy
31th Oct 16:52 b30f05badc: Revert "plugin load / tagtree retrieval: eliminate storage_disk_is_active check"

ata_disk_is_active() behavior with SSDs has reverted, so we want to keep this.

This reverts commit ef19fa4408ed48e29fa3307af0b288efa61c4901.
apps/plugin.c [diff]
apps/tagtree.c [diff]
Solomon Peachy
31th Oct 16:51 e829ea9a5e: ata: Rework how flushing, sleeping, and power off interacts

* FLUSH_EXT is used if featureflag is set and we are using LBA48
(unconditionally used for CE-ATA on ipod6g)
* FLUSH is used if featureflag is set (ATA6+) or if device claims to be ATA5+

* Rename ata_disk_can_power_off() to ata_disk_can_sleep() as that is what it actually tests for. Only use it to gate issuing the STANDBY IMMEDIATE command.
* Restore behavior of ata_disk_is_active() to return 1 if drive is
"spinning" or powered up.
* Allow poweroff if drive claims PM support OR we are able to issue FLUSH/FLUSH_EXT commands.

* Added ata_flush() to explicitly trigger a flush operation, and hook it up to storage_flush() in the device shutdown path. (Flushes were only previously used in the storage device power management path)

* After issuing all settings, re-issue IDENTIFY_DEVICE to make sure it reflects everything we've enabled.

* Update manual section on Flash/SSD mods.
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
firmware/export/ata.h [diff]
firmware/export/storage.h [diff]
firmware/storage.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
manual/getting_started/installation.tex [diff]
Solomon Peachy
31th Oct 12:35 825e406965: configure: Parameterize the neame of the "sdl config" executable

We moved to SDL2 but still had the SDL1 'sdl-config' executable used in one place. Additionally, all comments and the help text referenced the wrong executable name.
tools/configure [diff]
Solomon Peachy
31th Oct 12:23 65241f5a32: Minor mechanical corrections to the Turkish translation

(The rest need to be made by someone who knows the language)
apps/lang/turkce.lang [diff]
Solomon Peachy
31th Oct 12:08 85330eb5fe: Update multiple translations:

- English-US (Solomon Peachy)
- German (Wilfried Winkler)
- Italian (Alessio Lenzi)
- Korean (Hoseok Seo)
- Polish (Adam Rak)
- Turkish (Mustafa YILDIZ)
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/turkce.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
29th Oct 07:44 914a56f34c: imageviewer: fix segfault when album art fails to load

Attempt to change file fails due to access to uninitialized memory with negative index

Fixup for 55a5bfe7
apps/plugins/imageviewer/imageviewer.c [diff]
Roman Artiukhin
28th Oct 17:53 bd02af3413: SD: Fix typo in debug menu
apps/debug_menu.c [diff]
Solomon Peachy
28th Oct 16:46 55a5bfe740: View Album Art from WPS context menu

Add ability to imageviewer to view current track embedded/folder album art Add "View Album Art" WPS context menu item
apps/lang/english.lang [diff]
apps/onplay.c [diff]
apps/plugins/imageviewer/bmp/bmp.c [diff]
apps/plugins/imageviewer/gif/gif.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/imageviewer.h [diff]
apps/plugins/imageviewer/jpeg/jpeg.c [diff]
apps/plugins/imageviewer/jpegp/jpegp.c [diff]
apps/plugins/imageviewer/png/png.c [diff]
apps/plugins/imageviewer/ppm/ppm.c [diff]
Roman Artiukhin
28th Oct 02:04 c1bcebd998: FS #9059: Add WenQangYi Unibt font (William Poetra Yoga Hadisoeseno)
apps/plugins/rockbox-fonts.config [diff]
docs/CREDITS [diff]
fonts/16-WenQangYi-Unibit.bdf [new]
Solomon Peachy
27th Oct 15:25 bf90197717: rk27xx-utils: fix compiler warning on amd64

sizeof(...) has type size_t which is long unsigned int on amd64, and so the conversion specifier d without length modifier isn't suitable. There is the length modifier 'z' for size_t arguments, but this is only available on Linux. So casting to unsigned long and using 'lu' is the portable fix.

This fixes: rkboottool.c:215: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
utils/rk27utils/rkboottool/rkboottool.c [diff]
Uwe Kleine-König
27th Oct 14:49 5f4e0b6578: quake: Bail out of out-of-bounds draws

With this Quake should hopefully be able to run at native resolution on smaller screens.
apps/plugins/sdl/progs/quake/draw.c [diff]
Franklin Wei
27th Oct 14:46 9bd13865b7: imx233: make clkctrl code aware of hbus fractional divider

This is just to display the frequency correctly in the debug menu and prepare for future use of said divider
firmware/target/arm/imx233/clkctrl-imx233.c [diff]
firmware/target/arm/imx233/clkctrl-imx233.h [diff]
Amaury Pouly
27th Oct 14:23 655d201cf3: quake: add a bunch more yield calls

Probably a bit too many, but good for making sound not skip.
apps/plugins/sdl/progs/quake/r_main.c [diff]
apps/plugins/sdl/progs/quake/r_part.c [diff]
Franklin Wei
27th Oct 14:23 54b3b6f797: quake: migrate to SDL_mixer and add background music

Kind of skippy and only supports WAV. MP3 would be nice, especially if using Rockbox's codec.
apps/plugins/sdl/SOURCES.quake [diff]
apps/plugins/sdl/include/SDL_config_rockbox.h [diff]
apps/plugins/sdl/progs/quake/cd_rockbox.c [new]
apps/plugins/sdl/progs/quake/snd_sdl.c [diff]
Franklin Wei
27th Oct 13:25 f5d31fc1c4: Add desktop file for RockboxUtility

I am maintaining rbutil in the Arch Linux [community] repo. There is an on-going effort to remove desktop files from our PKGBUILD tarballs by either pushing them upstream or creating them at build time. Relevant bug report: https://bugs.archlinux.org/task/23387
rbutil/rbutilqt/data/rbutil.desktop [new]
Maxime Gauduin
27th Oct 13:24 fb93c99ce8: Fuze+: add pdbox plugin

1) Set the compiler to include pdbox 2) Set the keymaps
apps/plugins/SUBDIRS [diff]
apps/plugins/beatbox/beatbox.c [diff]
apps/plugins/pdbox/pdbox.h [diff]
Jean-Louis Biasini
27th Oct 13:12 b8d35c042d: rknanotools: fix rknano stages processing
utils/rknanoutils/rkboottool/elf.c [diff]
utils/rknanoutils/rkboottool/elf.h [diff]
utils/rknanoutils/rkboottool/rkboottool.c [diff]
Amaury Pouly
27th Oct 13:10 d22bb548b2: rda5802: document some registers

This information is available in the RDA5802N or RDA5807 datasheet. I suspect that register SYSCONFIG6 is not actually used by the tuner. Based on an obscure statement in the datasheet, I guess SYSCONFIG5 is a frequency in Khz called freq_direct that offsets the lower band frequency (56/67 MHz) but 1) it is not enabled (FREQ_MODE=0) and 2) it is not clear if this offset is really just to avoid interference (ie the RF and IF are simply shifted by this amount) or an actual offset.
firmware/drivers/tuner/rda5802.c [diff]
Amaury Pouly
27th Oct 13:10 977308c95c: rda5802: rewrite detection routine

The current code relies on the initial value of some RDS register(which is documented) but this assumption will be broken when we start enabling RDS. This commit changes the code to really read the chip ID, although it is more involved.
firmware/drivers/tuner/rda5802.c [diff]
Amaury Pouly
27th Oct 13:07 d2dbd36db4: Add atj generator to headergen_v2

This requires a small change to support headers without supports macros. This generates much simpler macros but disable more advanced macros such as BF_SET, BF_WR and friends.
utils/regtools/headergen_v2.cpp [diff]
Amaury Pouly
26th Oct 21:13 9281ec2e42: Fix red in 3951fbf9d2

...Toshiba Gigabeat S is the only user of the ATA driver with UDMA>2
firmware/drivers/ata.c [diff]
Solomon Peachy
26th Oct 19:09 3951fbf9d2: ATA: Restrict to UDMA2 if we don't detect an "80-pin" cable
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
26th Oct 17:00 aea4974b88: FS #13052: Update Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
26th Oct 15:28 04a796fd15: playlist: create_control_unlocked: back up current playlist

When creating a new control file for the current playlist, the existing file will now be renamed to serve as a backup, until the next time the control file is replaced again, allowing you to restore the previous state of the playlist, in case you accidentally cleared it.

This also means that an entirely new file is created each time, instead of truncating the existing one.
apps/playlist.c [diff]
Christian Soffke
26th Oct 15:28 7592d2ca5e: playlist: deprecate PLAYLIST_COMMAND_CLEAR

In the following scenario, a garbage file name would be written to the control file for the playing track
(resulting in a failure to resume correctly):

- "Keep Current Track When Replacing Playlist" option is set
- A track is playing that was not inserted but instead comes from a playlist file on disk
- User performs "Playing Next..." -> "Play" on some tracks, so that the current playlist is replaced (but leaving the playing track queued)
- User saves the playlist while queued track is still playing
(the offer to remove queued tracks is declined)

The failure occurs because the pl_save_update_control function assumes that the seek offset for queued files always points into the control file. Meanwhile, the remove_all_tracks_unlocked function adds the PLAYLIST_QUEUED flag indiscriminately, even if a track comes from a playlist file instead of having been inserted.

Theoretically, this could be addressed by adding the playing track's file name as a parameter to PLAYLIST_COMMAND_CLEAR, which the track is then updated to point to, unless it was already inserted (alternatively, we could seek within the playlist file for such tracks).

Unless I'm missing something, it may be preferable, though, to get rid of PLAYLIST_COMMAND_CLEAR completely, and instead have the remove_all_tracks_unlocked function start over with a fresh control file, into which we insert a single ('P' and) 'Q' command.

This seems to have several advantages:

- When resuming, we eliminate the need to parse and handle all of the outdated entries again that end up being cleared anyway
- It is ensured that the control file doesn't rely on the existence of a playlist file anymore after the playlist has been cleared
- We can reset the playlist's file name, which should make it less likely for the user to overwrite their previous (now unconnected) playlist that was still displayed in the Save dialog
- Unrelated bookmarks for the previous playlist aren't displayed anymore
- Improved consistency with existing behavior when the "Keep Current Track When Replacing Playlist" was disabled.
apps/playlist.c [diff]
Christian Soffke
24th Oct 01:17 cb1346b640: Ignore zero bytes between markers in built-in jpeg decoder

For consistency between built-in and imageviewer jpeg decoders.
apps/recorder/jpeg_load.c [diff]
Roman Artiukhin
23rd Oct 06:10 063b917f69: Codecs: wma: fix parsing album art

We can't assume that album art file starts right after album art type (apparently it can contain also additional info like filename).

Related to FS #12576 (album art is now shown)
lib/rbcodec/metadata/asf.c [diff]
Roman Artiukhin
23rd Oct 01:11 a232b1a98d: manual: Correct typo in ipod6g-specific doumentation
manual/getting_started/installation.tex [diff]
Solomon Peachy
22nd Oct 13:28 7912bf3bee: Fix prev/next folder action leads to immediate ff/rewind

Removed check that was introduced in 54e6bafa. This check doesn't work in WPS as BUTTON_NONE actions come while you still have button pressed. I believe the proper fix for this is already commited in c354e0bd.

Fixes FS #13370
apps/action.c [diff]
Roman Artiukhin
22nd Oct 11:25 eb2d596d72: updatelang: Normalize all strings in our lang files to NFC form.

Now no matter how [de]normalized the input strings are, we will normalize them to the best of our ability in what we use.

This adds a dependencey for Perl's Unicode::Normalize.
tools/updatelang [diff]
Solomon Peachy
22nd Oct 10:52 c354e0bd1f: buttons: Don't set wait_for_release for release action

Fixes ignored button press in yes/no screen. It depends on keymapping - this issue happens if action before wait_for_release is mapped on release action. Something like:
{ ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }
apps/action.c [diff]
Roman Artiukhin
22nd Oct 10:48 5a3d62dabb: Translation updates

- chinese-simp: 王吉
- deustch: Wilfried Winkler
- english-us: Solomon Peachy
- korean: Hoseok Seo
- polish: Adam Rak
apps/lang/chinese-simp.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/polski.lang [diff]
Solomon Peachy
19th Oct 07:41 f3d6196016: Codecs: wma: don't fail in case parsing errors in album art

Fixes FS #12576 (album art is not shown but file is now playable)
lib/rbcodec/metadata/asf.c [diff]
Roman Artiukhin
18th Oct 04:55 8c1c8597ac: plugins: playing time: OBOE
apps/plugins/playing_time.c [diff]
Christian Soffke
18th Oct 01:39 ac46684d7f: janitorial: Use ATTRIBUTE_PRINTF(X,Y) instead of __attribute__((format(printf,X,Y)))
apps/gui/list.h [diff]
Solomon Peachy
18th Oct 00:35 5c2de0b89c: FS #11361: Add string "Disc" for multidisc albums in WPS (Hinrik Örn Sigurðsson)
apps/lang/english.lang [diff]
Hinrik Örn Sigurðsson
18th Oct 00:34 aa1a74b2a1: erosqnative: bigger system font
tools/configure [diff]
Dana Conrad
18th Oct 00:30 563da70139: ipod6g: Reworking the bespoke ATA driver

ipod6g was configured with SECTOR_SIZE of 4096, but this ATA driver unconditionally translated these to 512B operations on the actual storage device.

Rockbox's storage layer already has robust support for "logical sectors larger than physical storage sectors" through use of MAX_LOG_SECTOR_SIZE. So switch to that mechanism, allowing the ipod6g ATA driver to be simplified.

If we want to support drives with physical sector sizes > 512B, then we need to port the MAX_PHYS_SECTOR_SIZE logic from the primary ATA driver.

Additional changes:

* Simplify MWDMA/UDMA selection logic
* Report CE-ATA mode in debug menu
* Use LBA48 commands only if drive is over 128GiB.
* Drop default sleep/poweroff time from 20s to 7s (matching main ATA driver)

Finally, the bulk of the changes are the first phase of a badly needed style cleanup that made reading this driver a lot harder than it should be. I intend to split this into a separate patch.
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/vibe500.h [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
16th Oct 16:20 9efed5542e: Add reset EQ menu option
apps/lang/english.lang [diff]
apps/menus/eq_menu.c [diff]
neofright
15th Oct 23:13 9b1a92fe36: Fix up a pile of bad format strings passed into simplelist_addline()
apps/debug_menu.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
Solomon Peachy
15th Oct 22:50 a2efbf0589: list: Flag simplelist_addline() as accepting format specifiers

And fix up all the problems I've found so far.

...This will undoubtedly introduce a pile of new warnings.
apps/debug_menu.c [diff]
apps/gui/list.h [diff]
Solomon Peachy
15th Oct 22:25 d3b7eba405: debug: Correct formatting when displaying drive size.
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
Solomon Peachy
15th Oct 21:00 8daf1f1bfe: ata: SSDs: Only check for _legal_ "rotational rate" values

I'm 98% sure that the "byteswapped" value I saw was due to another bug
(bad PIO timings on ipods leading to data corruption) and none of the growing pile of identify device data files that I have include the backwards one.
firmware/export/ata.h [diff]
Solomon Peachy
15th Oct 15:59 1ece63d054: debug: Log our logical sector multiplier, if enabled.
apps/debug_menu.c [diff]
Solomon Peachy
15th Oct 14:46 37652c5e2b: imageviewer: jpeg: Fix grayscsale mode with no dithering show black screen
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
Roman Artiukhin
14th Oct 17:43 2f109a7c2a: flac: 7th channel decode buffer may not fit into IRAM.

(Fixes failure to compile on nano2g)
lib/rbcodec/codecs/flac.c [diff]
lib/rbcodec/codecs/libffmpegFLAC/bitstream.h [diff]
Solomon Peachy
14th Oct 16:28 29f28ad8e6: flac: Implement proper support for 7 channel FLACs

* Allocate buffer for additional channel
* Proper downmixing
lib/rbcodec/codecs/flac.c [diff]
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
Solomon Peachy
14th Oct 15:05 3aef933348: flac: Bump maximum channel count to 7 (FS #13306)

This is actually the root fix for the crash; the fix in 772eff8ca6 didn't restrict it to 2 channels, just sanity checked the file vs MAX_CHANNELS.
lib/rbcodec/codecs/libffmpegFLAC/decoder.h [diff]
Solomon Peachy
14th Oct 13:27 ef19fa4408: plugin load / tagtree retrieval: eliminate storage_disk_is_active check

Since commit e0df995 storage_disk_is_active may be 0 even if there is no disk that needs to be spun up or device to power on, so it doesn't really make sense to check for it, anymore, in order to decide whether to display the loading indicator.

For remaining devices with spinning disks, the noise or vibration of the disk spinning up may serve as a sufficient signal when loading a plugin, that the device isn't frozen. Plus, for the tagtree, search progress is displayed after 0.5s anyway.
apps/plugin.c [diff]
apps/tagtree.c [diff]
Christian Soffke
14th Oct 13:19 b8238f7b20: imageviewer: Initial support for JPEG progressive images. Add decoder

Added jpeg decoder jpegp.c using RAINBOW lib. Currently enabled only for pictures not supported by old decoder (as old decoder more optimized for low mem targets)

Someone TODO:
* Old decoder has optimized downscale logic which new decoder doesn't have (it gives big difference in required memory and time for decoding). This logic should be ported/adapted if possible.

* Add smooth downscaling.

* Grayscale support
apps/plugins/CATEGORIES [diff]
apps/plugins/imageviewer/SUBDIRS [diff]
apps/plugins/imageviewer/image_decoder.c [diff]
apps/plugins/imageviewer/image_decoder.h [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/imageviewer.h [diff]
apps/plugins/imageviewer/jpeg/jpeg.c [diff]
apps/plugins/imageviewer/jpegp/BUFFILEGETC.c [new]
apps/plugins/imageviewer/jpegp/FILEGETC.c [new]
apps/plugins/imageviewer/jpegp/GETC.h [diff]
apps/plugins/imageviewer/jpegp/SOURCES [new]
apps/plugins/imageviewer/jpegp/jpeg81.c [diff]
apps/plugins/imageviewer/jpegp/jpeg81.h [diff]
apps/plugins/imageviewer/jpegp/jpegp.c [new]
apps/plugins/imageviewer/jpegp/jpegp.make [new]
apps/plugins/imageviewer/jpegp/mempool.c [new]
apps/plugins/imageviewer/jpegp/mempool.h [new]
apps/plugins/imageviewer/jpegp/rb_glue.h [new]
manual/plugins/imageviewer.tex [diff]
Roman Artiukhin
14th Oct 13:19 64ad7354b6: imageviewer: Initial support for JPEG progressive images. Add lib sources

Added unmodified files from RAINBOW library by Attila Tarpai Full sources: https://github.com/Halicery/vc_rainbow
apps/plugins/imageviewer/jpegp/GETC.h [new]
apps/plugins/imageviewer/jpegp/idct.c [new]
apps/plugins/imageviewer/jpegp/idct.h [new]
apps/plugins/imageviewer/jpegp/jpeg81.c [new]
apps/plugins/imageviewer/jpegp/jpeg81.h [new]
docs/CREDITS [diff]
Roman Artiukhin
14th Oct 13:00 772eff8ca6: flac: Explicitly reject FLAC files with more than two channels (FS #13306)

It's not clear that we've ever intended to support >2ch files, based on
'#define MAX_CHANNELS 2' and other logic that only seems to care about mono vs not.
lib/rbcodec/codecs/flac.c [diff]
Solomon Peachy
14th Oct 12:56 542eeae11c: configure: Document the '--with-ubsan' argument
tools/configure [diff]
Solomon Peachy
14th Oct 12:56 cda2f90e10: nano2g: Work around GCC9 warning in the FTL code.

As far as I can tell it's a false positive.
firmware/target/arm/s5l8700/ipodnano2g/ftl-nano2g.c [diff]
Solomon Peachy
13th Oct 23:22 d96b222a32: Fix previous commit. don't know how it "worked" for my test build.
tools/configure [diff]
Solomon Peachy
13th Oct 22:52 66ed5232cb: erosq: Change default sysfont to 14-Rockfont-Mix

Former default of 08-Rockbont was borderline illegible on the screen.
tools/configure [diff]
Solomon Peachy
13th Oct 13:33 9420650c87: voice: Normalize all voiced strings NFC form before passing them to TTS engine

This should be a no-op for .lang files, but it can matter when generating talk clips, as those are based on the raw filename.
tools/voice.pl [diff]
Solomon Peachy
13th Oct 13:33 d98cad4301: docs: we use xz, not bz2, for tarballs
docs/README [diff]
Solomon Peachy
13th Oct 09:36 152ec1946c: ipod 4g/color: Fix unresponsive buttons after booting

The iPod 4g and color always ignored the very first button press after booting, i.e. you needed to either press another button or scroll for a bit first.

Not sure whether any other PP iPods exhibit the same behavior, although it is not reproducible on an iPod video.

This patch basically copies the code from FS #5230 that fixed unresponsive buttons whenever the HOLD switch was turned off (committed as a5961c944b).
firmware/target/arm/ipod/button-clickwheel.c [diff]
Christian Soffke
12th Oct 20:41 05194ec6eb: voice-corrections: Add " no." -> "number " (English)

This is particularly useful for classical music, where track names like
"symphony no.5" are common -- We want to voice this as "symphony number 5" instead.
tools/voice-corrections.txt [diff]
Solomon Peachy
12th Oct 20:41 1694101b23: voice: Also apply voice corrections to talkclips
tools/voice.pl [diff]
Solomon Peachy
12th Oct 19:09 38211e627d: AS3525: Get rid of duplicate 'const' in a single definition

(Another GCC9-produced warning)
firmware/target/arm/as3525/system-as3525.c [diff]
Solomon Peachy
12th Oct 17:54 6cb0bc3468: coldfire: Silence a warning generated by GCC >= 9

Basically, there are weak aliases for all possible IRQ handlers, pointing at a NORETURN function. GCC complains that the aliases don't have the same attribute, but that's actually what we want.
firmware/target/coldfire/system-coldfire.c [diff]
Solomon Peachy
12th Oct 16:26 62d6c7ecaa: pdbox: Silence a spurious warning with GCC9 on hosted ARM

(pdbox seems to trigger a lot of false warnings...)
apps/plugins/pdbox/PDa/src/d_soundfile.c [diff]
Solomon Peachy
12th Oct 16:01 d4d74fda00: codecs: abs() --> llabs() in speex and libgme

We were calling abs() on 64-bit (ie long long) variables.
lib/rbcodec/codecs/libgme/ym2612_emu.c [diff]
lib/rbcodec/codecs/speex.c [diff]
Solomon Peachy
12th Oct 16:01 8dc42711b4: libc: Correct definition of labs()' and add llabs()
firmware/libc/include/stdlib.h [diff]
Solomon Peachy
12th Oct 14:34 e1bed147a3: build: Add advanced option to treat all warnings as errors.
tools/configure [diff]
Solomon Peachy
12th Oct 13:23 94d6265df0: gcc9: Move structure packing to the struct definition

Silences GCC9 warnings about possible casting misalignments.
firmware/export/ata.h [diff]
firmware/export/usb_ch9.h [diff]
firmware/usbstack/usb_core.c [diff]
Solomon Peachy
12th Oct 02:57 8b9ef7cf8d: sdl: Remove SDL_RENDERER_ACCELERATED flag

The flag would apparently make hardware accelerated rendering mandatory. SDL2 will still attempt to use hardware acceleration, if the flag is missing.
firmware/target/hosted/sdl/system-sdl.c [diff]
Christian Soffke
12th Oct 02:56 7d60b13584: pdf50606: Fix questionable code that GCC9 complains about

Instead of:

bool &= ~bool;

do this:

bool &= !bool;
firmware/drivers/rtc/rtc_pcf50606.c [diff]
Solomon Peachy
11th Oct 17:01 49b6853c19: rockboxdev.sh: bump required version of GMP and MPFR

GMP 4.3.2 was quite old even at the time of the GCC 4.9.4 release, and it refuses to compile out of the box on modern toolchains (eg GCC 14) due to issues in the configure script. Instead of trying to backport fixes, just bump it up to 6.1.2, the final release in the 6.1.x series that was current when GCC 4.9.4 was released.

Meanwhile, with the update to GMP, the also-quite-old MPFR 3.1.0 fails to compile; instead bump it up to 3.1.6, which is the final release in the 3.1.x series.
tools/rockboxdev.sh [diff]
Solomon Peachy
10th Oct 14:12 edbcf0b0f4: erosq: Initial PM support for "hw4" variant

(They renamed the battery from 'battery' to 'axp_battery')
firmware/export/config/hibylinux.h [diff]
firmware/target/hosted/aigo/power-erosq.c [diff]
firmware/target/hosted/power-linux.c [diff]
Solomon Peachy
7th Oct 16:36 41abd8e32f: sdlapp: Fix build with SDL2

Not sure why this didn't break in my earlier tests.
apps/playback.c [diff]
Solomon Peachy
7th Oct 16:15 56ec2e2e4a: Only increase sigalthreads stack size for simulator or aarch64 builds.

The 12K-per-thread necessary on arm64 linux systems caused an unnecessary 180K increase in RAM usage on the hibyos hosted ports. So back off to the old size unless we know it was needed.
firmware/asm/thread.h [diff]
Solomon Peachy
7th Oct 16:05 0222ed3639: simulator: Fix SDL2 simulator build of touchscreen-based targets

(cowond2, mrobe500, vx747, shanlingq1, zenxfi2)
firmware/target/hosted/sdl/key_to_touch-sdl.c [diff]
Solomon Peachy
6th Oct 16:05 7927423e34: SDL: Migrate to SDL2

Incorporates large portions of g#5879 g#5282 g#5285 g#5286 g#5287

Differences from the above patches:

* Removed all MacOS-specific stuff
* Removed support for SDL1 entirely
* Properly implement mousewheel support
* Bumped up minimum stack size for sigalstack threading
* Check for overflow before enqueing scrollwheel events

Tested on:

* sdl application (Linux)
* Simulator (x86_64, Linux) -- xduoox3/ipod4g/sansafuze
* Simulator (i686, Windows) -- xduoox3
* Simulator (arm64, Linux)
firmware/asm/thread.h [diff]
firmware/target/hosted/sdl/app/button-application.c [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/hosted/sdl/kernel-sdl.c [diff]
firmware/target/hosted/sdl/lcd-bitmap.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
firmware/target/hosted/sdl/lcd-sdl.h [diff]
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/hosted/sdl/system-sdl.c [diff]
firmware/target/hosted/sdl/thread-sdl.c [diff]
tools/configure [diff]
uisimulator/buttonmap/agptek-rocker.c [diff]
uisimulator/buttonmap/creative-zen.c [diff]
uisimulator/buttonmap/creative-zenxfi3.c [diff]
uisimulator/buttonmap/creative-zv.c [diff]
uisimulator/buttonmap/creative-zvm.c [diff]
uisimulator/buttonmap/erosq.c [diff]
uisimulator/buttonmap/fiio-m3k.c [diff]
uisimulator/buttonmap/gigabeat-s.c [diff]
uisimulator/buttonmap/gigabeat.c [diff]
uisimulator/buttonmap/gogear-hdd1630.c [diff]
uisimulator/buttonmap/gogear-hdd6330.c [diff]
uisimulator/buttonmap/gogear-sa9200.c [diff]
uisimulator/buttonmap/iaudio-m3.c [diff]
uisimulator/buttonmap/iaudio-x5_m5.c [diff]
uisimulator/buttonmap/ihifi2.c [diff]
uisimulator/buttonmap/ipod.c [diff]
uisimulator/buttonmap/iriver-h10.c [diff]
uisimulator/buttonmap/iriver-h100_h300.c [diff]
uisimulator/buttonmap/meizu-m6sl.c [diff]
...and 19 more files.
Solomon Peachy
6th Oct 15:17 d13029ebdd: kernel: Add queue_full() API call

This allows callers to see if it's safe to enqueue something instead of triggering a panic if the queue turns out to be full.
firmware/kernel/include/queue.h [diff]
firmware/kernel/queue.c [diff]
Solomon Peachy
6th Oct 13:30 2f3b9ab68a: tms320dm320: Correct a warning with newer toolchains
firmware/target/arm/tms320dm320/system-dm320.c [diff]
Solomon Peachy
3rd Oct 12:03 8808c42d6d: Fix FS #13494
apps/plugins/imageviewer/imageviewer.c [diff]
Christian Soffke
29th Sep 15:37 0cb0cb486f: tagtree: remove superfluous code from insert_all_playlist

Code has no effect since commit a0e95c8. Functionality is now handled by the playlist_insert_context_add function
apps/tagtree.c [diff]
Christian Soffke
26th Sep 07:29 f09693b0be: [Feature/BugFix] Dirplay never gets the file I selected

If you have say 1000 playlist entries and select the 1001 song in the directory dirplay loads tracks 1-1000 shuffles them and track 1001 is never heard from again

Instead start at the file and loop through the directory mod dir len

Hint: this is a good way to not wait on dirplay to load a ton of tracks
apps/filetree.c [diff]
William Wilgus
26th Sep 05:34 f55cb77f89: [Bugfix] FS #13492 - Playback resume fails after USB insert

On usb plug system_flush() gets called before the other threads get a chance to ACK the insert

system_flush() calls playlist_shutdown() (amongst other things) playlist_shutdown closes the control file

the audio thread acks USB insert audio_stop_playback is called which now can't look up the filename from the now closed handle for control the control file

I left the guard for checking for USB insert but it appears to be fine without it
apps/playlist.c [diff]
William Wilgus
26th Sep 04:38 e6313e4b8e: tree.c remove strlcat in favor of strmemccpy

moved a conditional for reload_dir vs strcmp
apps/tree.c [diff]
William Wilgus
25th Sep 22:08 9ebfb3fa5c: FS #13493: Updated German translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
25th Sep 11:01 ef6da7503a: Codecs: mp4: Support object type 29 (AAC LC + SBR + PS).

Backport libfaad commit https://github.com/knik0/faad2/commit/d35cf8f24d55112451074424f8896e695ce9ee6b
lib/rbcodec/codecs/libfaad/mp4.c [diff]
Roman Artiukhin
25th Sep 05:33 9af325a541: [BugFix] tagcache_search() must be closed with tagcache_search_finish()

fix a couple of places where this could be left open
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tagcache.c [diff]
William Wilgus
25th Sep 05:03 a0e95c888d: [Feature/Bugfix] Tagtree use insert context to speed up adding tracks to playlist

I forgot we had duplicated code between playlist.c and tagtree.c this saves a bit of space and should speed up adding tracks a bit

further I noticed a buf here where there was the potential to return without closing the opened track search
apps/tagtree.c [diff]
William Wilgus
25th Sep 04:54 ffebb9e244: [Bugfix] Enable Progressive loading for talk clips on devices <= 8MB

our voiceclips are getting in the way of allocs for the tree on these devices
apps/talk.c [diff]
William Wilgus
24th Sep 21:45 33495ef006: fonts: Major update for 12-Fixed-SemiCond (1767 -> 4531 codepoints)
fonts/12-Fixed-SemiCond.bdf [diff]
Solomon Peachy
24th Sep 14:48 5d2692375d: rbutil: Add erosqnative

- Give each brand its own entry, and make ranges of OF versions correspond to hardware changes.
- Temporarily disabled target aigoerosq.
- Post-install hint enabled.
- Added pre-install hint function
- Added optional parameter themename, in case the target name does not match the themesite name.
- Made Port Status (statusAsString()) only care about platform string prior to first '.'
- Manual: Remove note that rbutil does not support this model

Issues:

- Cannot uninstall the bootloader - manual instructions are available
manual/getting_started/installation.tex [diff]
utils/rbutilqt/base/bootloaderinstallhelper.cpp [diff]
utils/rbutilqt/base/bootloaderinstallhelper.h [diff]
utils/rbutilqt/base/playerbuildinfo.cpp [diff]
utils/rbutilqt/base/playerbuildinfo.h [diff]
utils/rbutilqt/changelog.txt [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.h [diff]
utils/rbutilqt/rbutil.ini [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
utils/rbutilqt/version.h [diff]
Dana Conrad
24th Sep 14:47 f0c208554c: [BugFix] Playback.c OOM with large voice file

with our large voice file being loaded in its entirety to the buffer there isn't enough room to allocate the required pcm buffer well prior to this patch we looked for 1k free to allow the talk buffer to be given away well the pcm buffer expects something like 5-600 kb on the clipzip and there is 1k allocatable but not 300 more

so instead get the required pcm buffer size and check against that
apps/pcmbuf.c [diff]
apps/pcmbuf.h [diff]
apps/playback.c [diff]
William Wilgus
24th Sep 14:27 c3f51b5fe9: opus: Re-add a ICONST_ATTR lost in 4c6bb798d6bebc80f07e863236adbaf8d156a9c
lib/rbcodec/codecs/libopus/celt/cwrs.c [diff]
Solomon Peachy
24th Sep 11:44 56bd6cd634: fonts: 12-Adobe-Helvetica.bdf: adjust width for few letters

Add more spacing to avoid overlap with other letters (includes A/\W and some more)
fonts/12-Adobe-Helvetica.bdf [diff]
Roman Artiukhin
24th Sep 11:44 306110479c: fonts: 12-Adobe-Helvetica.bdf: add missing Ukrainian letters

Added ІіЇїЄєҐґ
fonts/12-Adobe-Helvetica.bdf [diff]
Roman Artiukhin
24th Sep 11:44 d9c491121c: fonts: 12-Adobe-Helvetica.bdf: Fix metrics by gbdfed

These changes are made by saving the font in gbdfed without any explicit modifications
fonts/12-Adobe-Helvetica.bdf [diff]
Roman Artiukhin
23rd Sep 14:43 ff0ad4ca7d: metadata: aac: support .aac files with mp4 container inside
lib/rbcodec/metadata/aac.c [diff]
Roman Artiukhin
22nd Sep 20:44 77ff799502: lang: Delete two completely redundant strings
apps/lang/english.lang [diff]
apps/menus/eq_menu.c [diff]
Solomon Peachy
22nd Sep 14:41 8f8fb13edb: dbtool: Fix build when we have HOTSWAP but not MULTIVOLUME

(Not sure how that can happen, but... eh)
uisimulator/common/filesystem-sim.c [diff]
Solomon Peachy
22nd Sep 13:20 e5d4e33403: manual: Additional notes about Flash/SSD mods
manual/getting_started/installation.tex [diff]
Solomon Peachy
22nd Sep 12:54 1e7334a22c: manual: Document the 128GB AppleOS limit of early ipod6g models.

(And do some minor massaging of the other storage limit language)
manual/getting_started/installation.tex [diff]
Solomon Peachy
21st Sep 23:08 395311f7a1: simulator: Make sure we define the right stuff for sigaltstack()

We got some of this stuff through SDL1 implicitly.
firmware/export/config.h [diff]
Solomon Peachy
21st Sep 23:08 a7fba55fcf: warble: Fix build
firmware/export/config.h [diff]
Solomon Peachy
21st Sep 20:32 6ed8b9091c: Misc: Compiling under SDL2 uncovered a few issues unrelated to SDL itself
apps/playback.c [diff]
firmware/asm/thread.h [diff]
firmware/include/string-extra.h [diff]
Solomon Peachy
21st Sep 19:14 bc56e9a9dc: SDL: Don't apply settings when starting DMA playback

This seems to be redundant since it already happens in pcm.c
firmware/target/hosted/sdl/pcm-sdl.c [diff]
Christian Soffke
21st Sep 18:51 3f3ec8273a: metadata: aac: Fix any file is treated as valid aac

Fixup for d50470bc
lib/rbcodec/metadata/aac.c [diff]
Roman Artiukhin
21st Sep 17:15 1be795c9b1: fix red thanks to tex4htm being a doody-head
manual/getting_started/installation.tex [diff]
Solomon Peachy
21st Sep 17:01 babc1e57e1: manual: Add a blurb about Windows format tool limitations
manual/getting_started/installation.tex [diff]
Solomon Peachy
21st Sep 15:00 5d6e498178: manual: Document storage/capacity limits and "SSD Mods"
manual/getting_started/installation.tex [diff]
Solomon Peachy
21st Sep 14:48 9a714939e8: features: Add 'sd_storage' if the device uses SD cards
apps/features.txt [diff]
Solomon Peachy
18th Sep 14:43 a056150d52: updatelang: Flag '|' in voice strings too
tools/updatelang [diff]
Solomon Peachy
18th Sep 12:26 e0df9952fd: ata: Alter ata_is_active() when drive doesn't support power management

Due to the heisenberg principle, we don't want to check the battery level when the ATA drive is "spun up".

Unfortunately some ATA devices *cough most SD adapters cough* don't support mandatory ATA power management commands like flushing caches and
(safely) shutting down so we have to leave them "spinning".

This leads to us never updating our battery status with these out-of-spec devices. Work around this issue by having is_active() always return false if that's what we have.
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
17th Sep 15:09 c71b6265b0: Fix a mechanical error in the Simplified Chinese translation
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
17th Sep 14:21 e09c055a41: lang: Replace all <...> with [...]

<..> gets interpreted as a drive/volume ID, which has special voicing rules.

(this is especially visible in the DB browser)
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hindi.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
...and 18 more files.
Solomon Peachy
17th Sep 14:18 24ae4aee33: updatelang: Expand suspicius character tests.

* dest: < >
* voice: [ ] < > { }
tools/updatelang [diff]
Solomon Peachy
16th Sep 12:27 7d9fbae749: Minor mechanical updates to the Russian translation

...This should be sufficient to push it to 100%
apps/lang/russian.lang [diff]
Solomon Peachy
16th Sep 11:53 9fb6883d01: FS #13489: Updated Russian translation (Dmitry Prozorov)
apps/lang/russian.lang [diff]
Solomon Peachy
16th Sep 00:34 bb1c2ea0b1: Fix manual build in 018c54ad1c
manual/getting_started/hibyos_nativeinstall.tex [diff]
manual/getting_started/installation.tex [diff]
Dana Conrad
15th Sep 19:07 607adf00b5: manual: fix error in 018c54ad1c
manual/getting_started/installation.tex [diff]
Solomon Peachy
15th Sep 18:53 018c54ad1c: Manual: Update erosqnative

Update installation instructions, and add a couple things that were missing.
manual/configure_rockbox/sound_settings.tex [diff]
manual/getting_started/hibyos_nativeinstall.tex [new]
manual/getting_started/installation.tex [diff]
Dana Conrad
15th Sep 13:57 5ab334f07f: FS #13488: Updated Russian translation (Dmitry Prozorov)
apps/lang/russian.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
15th Sep 13:08 84375e5524: builds: Promote erosqnative, m3k, and q1 to stable
tools/builds.pm [diff]
Solomon Peachy
15th Sep 11:18 10382caa3b: FS #13487: Updated italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
13th Sep 15:22 de355d225c: Remove static buffer from shortcts.c

as long as we put it back the way we found it u.path is a writable buffer
apps/shortcuts.c [diff]
William Wilgus
13th Sep 14:19 563137b480: builds: Mark the 'erosqnative' manual as okay, so it gets built nightly
tools/builds.pm [diff]
Solomon Peachy
12th Sep 23:16 79bed1f422: RFC skin_tokens remove a static buffer

it was hard to hit this branch, I had to comment out: ln 555 else if (offset == 1) ln 556 pid3 = state->nid3;

as far as I can tell the reason for the separate filename buffer was due to the failure mode of audio_peek_track() wiping the id3->path, stands to reason for me that we can just fill it again

-Already found a gotcha playlist_peek() mutates the buffer makes me like this solution less, might rework tagcache_fill_tags() instead

--Fixed
apps/gui/skin_engine/skin_tokens.c [diff]
apps/tagcache.c [diff]
William Wilgus
12th Sep 21:09 2a0f3c8276: hibyos_nativepatcher: rewrite for either fresh install or uninstall

Since we can easily create our own install files for erosqnative, modify script to create fresh install image from bootloader.erosq or add bootloader to installation manifest of stock update file to uninstall rockbox.

USAGE:

hibyos_nativepatcher.sh <mkrbinstall/mkstockuboot> [arguments depend on mode, see below]

hibyos_nativepatcher.sh mkrbinstall <OFVERNAME (erosq or eros_h2)>
<path/to/output> <path/to/bootloader.erosq> <HWVER (hw1hw2 or hw3)> Output file will be path/to/output/erosqnative_RBVER-HWVER-OFVERNAME.upt. Only the Hifiwalker H2 v1.3 uses "eros_h2", everything else uses "erosq".

hibyos_nativepatcher.sh mkstockuboot <path/to/OFupdatefile.upt> Output file will be path/to/OFupdatefile-rbuninstall.upt.
tools/hibyos_nativepatcher/hibyos_nativepatcher.sh [diff]
Dana Conrad
12th Sep 14:46 85652e6bd1: FS #13486 - Updated Korean Voice translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
10th Sep 19:35 7e31b73eda: Multiple Translation updates

- Korean (Hoseok Seo)
- Polish (Adam Rak)
- Simplified Chinese ( 王吉)
- US English (Solomon Peachy)
apps/lang/chinese-simp.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/polski.lang [diff]
Solomon Peachy
10th Sep 14:08 6b67f0fd3d: Complete the french translation for the main menus and settings
apps/lang/francais.lang [diff]
Timothée Jaussoin
10th Sep 07:49 8b754ce591: tagtree add crc check so we can reuse already loaded entries

If you have a lot of tracks loaded in a database view and play a track it builds a playlist and puts you into the wps

if you stop playback and exit the WPS you are immediately loading entries that were just loaded

if you return to the database again reload data thats probably still there

this patch gets a crc of the data and if it matches reuses it in the tagtree rather than reloading it
apps/tagtree.c [diff]
William Wilgus
9th Sep 22:21 f7db73097a: Playlist viewer: Add new options to allow formatting using tags

Offer new options to show elegantly your entries in any playlist/dynamic playlist viewer. This is especially important if you dual boot an iPod with Stock OS and want to sync with iTunes; with this very popular setup, file names are obfuscated which results in any Rockbox playlist viewer difficult to enjoy, and it was a long standing issue reported by several Rockbox users over the years. The only way to show the title was to open a contextual menu on each song to get infos about the selected song, which is a very long and anti-ergonomic process to understand what is on your current playlist/randomized playlist. The idea of this patch is to provide new alternatives that the user can select. I personally selected the Title & Album view which provides excellent readability.

This patch was built with performance in mind using lazy loading to load one by one the tags then cache a string and use the little cache as much as possible to make scrolling in the same area as smooth as possible. Performance remains very acceptable even on an iPod 4G with its original hard drive. Using a real compact flash with my iPod Mini 2G reduces the latency even more.

Those new options are disabled by default because they impact noticeably the scrolling performance and are less relevant if your files are decently properly named.

Unfortunately, the search feature in a playlist will need to continue to use the raw filename because reading the tags for a whole playlist is a performance disaster. This works decently while viewing just because I made a code that load those one by one as much as possible.

I focused also on testing that the opening of the playlist viewer UI remained fast, and loading one by one with lazy loading allows to get very little overhead in this regard.
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/playlist.h [diff]
apps/playlist_viewer.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
Paul Sauro
8th Sep 21:10 a7cfee640d: erosqnative: only check for EROSQN_VER if bootloader build
firmware/export/config/erosqnative.h [diff]
Dana Conrad
8th Sep 18:31 1f1b3bce86: FS #13480: Updated Russian Translation (Dimitry Prozorov)
apps/lang/russian.lang [diff]
Solomon Peachy
8th Sep 18:31 868631e7d1: Update US English "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
8th Sep 16:57 37ca92d276: lua: button_helper needs $(EXTRA_DEFINES) on the host build side
apps/plugins/lua/lua.make [diff]
Solomon Peachy
8th Sep 16:32 83890c249c: FS #13482 - Corrected italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
8th Sep 16:31 1aa5d24a25: CREDITS: No nicks/handles, just RealNames.
docs/CREDITS [diff]
Solomon Peachy
8th Sep 16:29 89fd4d0a51: hibyOS: OF patcher script for Native ports

This is a script to patch a native bootloader
(bootloader.*) into a stock OF firmware image (update.upt).

Usage: hibyos_nativepatcher.sh <path/to/update.upt>
<path/to/bootloder.*>

Resulting file will be placed next to the original update, and will be named [$orig_name]_patched_[$rbver].upt

Now with some rudimentary error checking at key points!

Works on macos. Works on linux, at least debian in docker. Linux usage requires 7z and genisoimage.
tools/hibyos_nativepatcher/hibyos_nativepatcher.sh [new]
tools/hibyos_nativepatcher/patch_manifest.pl [new]
Dana Conrad
8th Sep 16:29 a5462d6192: erosqnative: Give erosqnative_v3 its own target ID and modelname

This is needed so "make clean; make reconf" will work correctly.
firmware/export/config/erosqnative.h [diff]
firmware/target/mips/ingenic_x1000/x1000boot.make [diff]
tools/configure [diff]
Dana Conrad
8th Sep 16:09 a86e2b5c6e: Tagtree selective random playlist -- rewrite

this is a bit cleaner without so much ram (or code) used

Credit to goes to Paul Sauro (OlsroFR) as this was his idea

if available space exists in the pluginbuf it uses fisher yates shuffle to get good probability and falls back to random permutation if not
apps/tagtree.c [diff]
William Wilgus
5th Sep 14:16 22b05c97a3: codec: cRSID: check whole load address

Due to a typo, only the high byte of the embedded load address was checked to be empty. For a full check, high and low byte must be evaluated, of course. Also, fixed in cRSID 1.3.
lib/rbcodec/codecs/cRSID/host/file.c [diff]
Wolfram Sang
4th Sep 14:58 55e1a78cf8: Reworks to the shuffle system

spread remaining songs amongst segments bit of code clean-up
apps/lang/english.lang [diff]
apps/tagtree.c [diff]
William Wilgus
4th Sep 14:58 34e54b33f7: codestyle changes on g5911
apps/onplay.c [diff]
apps/tagtree.c [diff]
apps/tree.c [diff]
William Wilgus
4th Sep 12:50 87e9ca2d3a: FS #13481: Updated Simplified Chinese translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
3rd Sep 15:21 142003328d: Translation updates:

* English-US (Solomon Peachy)
* Italian (Alessio Lenzi)
* Korean (Hoseok Seo)
* Polish (Adam Rak)
apps/lang/english-us.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/polski.lang [diff]
Solomon Peachy
2nd Sep 17:29 878e29396c: ErosQNative: Add v3 LCD support, conditional on bootloader

bootloader passes the player version to rockbox for LCD init changes

Credit ZappBranigan2972 on forums for original changes Credit Bilgus for devicedata additions
firmware/export/config/erosqnative.h [diff]
firmware/rolo.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
tools/configure [diff]
Dana Conrad
2nd Sep 17:29 a2cc7546d8: Add DeviceData to bootloaders

same vein as bootdata but for devices that need to pass info back to a running firmware
apps/debug_menu.c [diff]
apps/main.c [diff]
firmware/SOURCES [diff]
firmware/common/devicedata.c [new]
firmware/common/rb-loader.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/devicedata.h [new]
firmware/rolo.c [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
uisimulator/common/stubs.c [diff]
William Wilgus
31th Aug 14:44 c16dbbfd1f: Reworks to the shuffle system to improve performance and allow fast shuffling from a big library (but this work for all database views)

This improvement brings a huge performance improvement to start a random mix of your library. Previously, the only way to do this was to increase the size of a playlist with absurd sizes number. Now it will respect the limitation but will insert random songs from the current view.

Database: Add true random songs in playlist if it is gonna exceed its maximum capacity

More context is available here : https://www.reddit.com/r/rockbox/comments/1ez0mq4/i_developped_true_full_library_shuffle_for/

Also :
- Improved layout in the DB browser
- New default max playlists capacity is now 2000 on old PortalPlayer targets to give a better user experience and not having to wait dozens of seconds while creating a playlist
- "Show insert shuffled" option is now true by default
- Add a new shortcut to play all songs shuffled in the DB browser
- Now the feature is fully optional and enabled only on targets that have more than 2MB of RAM
- Add entries about this feature in the manual to explain it to the users
apps/gui/wps.c [diff]
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/playlist_viewer.c [diff]
apps/settings_list.c [diff]
apps/tagnavi.config [diff]
apps/tagtree.c [diff]
apps/tagtree.h [diff]
apps/tree.c [diff]
apps/tree.h [diff]
manual/rockbox_interface/tagcache.tex [diff]
Paul Sauro
30th Aug 12:33 f6e8c20188: FS #13475: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
30th Aug 12:32 8319d43b57: FS #13474: Updated Simplified Chinese translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
29th Aug 12:07 edd607c392: FS #13473: Update Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
29th Aug 12:06 976a2a22d5: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
29th Aug 11:59 054ba76d81: Morse code cheat sheet, better use [of] pixels available on screen

This improvement allows to show all characters even on a tiny screen like the screen of the iPod Minis
apps/recorder/keyboard.c [diff]
William Wilgus
29th Aug 01:38 14a8f9a863: Integrate the new option to the theme engine and to the manual
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
utils/themeeditor/resources/configkeys [diff]
Paul Sauro
29th Aug 01:26 49bbfe7505: Fix red fbc8b2156f

lcd_scroll is include in a weird manner and includes need to go in scroll_engine.c instead and still be blocked from bootloaders
firmware/drivers/lcd-scroll.c [diff]
firmware/scroll_engine.c [diff]
William Wilgus
29th Aug 00:26 fbc8b2156f: Credits: Adding me to the credits of the project
docs/CREDITS [diff]
Paul Sauro
29th Aug 00:24 f69d9c8a95: Settings: Add a new option to prevent text scrollings in the home screen

This option is especially useful for theme creators that want to create themes with lockscreens. When text is scrolling, it is breaking the lockscreen so setting this option to true prevent this. Text will continue to scroll normally in all other contexts.
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/menus/display_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/drivers/lcd-scroll.c [diff]
Paul Sauro
2024-08-27 f6b9e923dc: ErosQNative: Re-enable OF recovery

This is needed to be able to do updates to the OF due to the fact that the OF reboots when you select "update firmware".

By default, most OF update images do not update the bootloader, but it is easy to modify them to do so, and they already contain a uboot.bin binary.

I tested using the Aigo Recovery from our native bootloader and it sure seems to work fine.

If we patch the OF update images to load our own native bootloader, this will be doubly necessary for uninstallation.
bootloader/x1000/x1000bootloader.h [diff]
Dana Conrad
2024-08-27 56dd7ead63: rolo: Write bootdata regardless of whether running from root or redirect

As long as bootdata is valid, write it.
firmware/rolo.c [diff]
Dana Conrad
2024-08-26 ec8fb871f0: rockboxdev: fix glib compile error on hosts with Python 3.12 (FS #13471)

On hosts running Python 3.12, building the hosted MIPS toolchain fails on glib with the error

Traceback (most recent call last): File "<string>", line 2, in <module> ModuleNotFoundError: No module named 'imp' gmake[6]: *** [Makefile:982: install-codegenPYTHON] Error 1 gmake[6]: Leaving directory '/tmp/rbdev-build/build-glib-2.46.2/gio/gdbus-2.0/codegen'

due to 'imp' being removed from Python 3.12 after a long deprecation period. The module is imported by automake's py-compile script, but in newer versions of automake this has been updated to use 'importlib' instead, so running autoreconf fixes this.

We need to patch m4macros/glib-gettext.m4 to avoid an error running autoreconf (see: https://gitlab.gnome.org/GNOME/glib/-/issues/1159):

ac-wrapper: autoreconf: warning: auto-detected versions not found ( 2.69 2.69); falling back to latest available autoreconf-2.71: export WARNINGS= autoreconf-2.71: Entering directory '.' autoreconf-2.71: configure.ac: not using Gettext autoreconf-2.71: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS} am-wrapper: aclocal: warning: auto-detected versions not found (1.15); falling back to latest available m4macros/glib-gettext.m4:39: error: m4_copy: won't overwrite defined macro: glib_DEFUN m4macros/glib-gettext.m4:39: the top level autom4te-2.71: error: /usr/bin/m4 failed with exit status: 1 aclocal-1.16: error: /usr/bin/autom4te-2.71 failed with exit status: 1 autoreconf-2.71: error: aclocal failed with exit status: 1

This problem goes away in glib 2.47.5 when they switched to using upstream gettext.
tools/rockboxdev.sh [diff]
Aidan MacDonald
2024-08-25 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.
apps/plugins/puzzles/SOURCES [diff]
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/SOURCES.rockbox [diff]
apps/plugins/puzzles/compress.c [diff]
apps/plugins/puzzles/dummy/nullhelp.c [new]
apps/plugins/puzzles/help.h [diff]
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/mosaic.c [diff]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
...and 28 more files.
Franklin Wei
2024-08-23 3dd69ce23e: FS #13469: Updatd Simplified Chinese translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
2024-08-21 cd91c238de: Bootloaders: Include HAVE_MULTIVOLUME if BOOT_REDIR also present

We need HAVE_MULTIVOLUME in bootloaders for redirect functionality to work.
firmware/export/config.h [diff]
Dana Conrad
2024-08-21 5ddfdf6e2f: ErosQNative: Set extra ES9018K2M options

Set number of FSR edges required for DPLL/ASRC lock Set DPLL bandwidth larger

Both should help prevent dropouts, especially with sample rates >=96khz

Credit to ZappBranigan2972 on the forums
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
Dana Conrad
2024-08-20 3b040673cc: Add verification to multiboot redirect

check that a firmware file exists before we redirect to an invalid directory
firmware/include/dircache_redirect.h [diff]
William Wilgus
2024-08-16 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.
apps/plugins/puzzles/README.rockbox [diff]
apps/plugins/puzzles/SOURCES [diff]
apps/plugins/puzzles/help/tracks.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/puzzles/src/CMakeLists.txt [diff]
apps/plugins/puzzles/src/draw-poly.c [new]
apps/plugins/puzzles/src/drawing.c [diff]
apps/plugins/puzzles/src/inertia.c [diff]
apps/plugins/puzzles/src/mines.c [diff]
apps/plugins/puzzles/src/misc.c [diff]
apps/plugins/puzzles/src/puzzles.but [diff]
apps/plugins/puzzles/src/puzzles.h [diff]
apps/plugins/puzzles/src/signpost.c [diff]
apps/plugins/puzzles/src/twiddle.c [diff]
apps/plugins/puzzles/src/unequal.c [diff]
Franklin Wei
2024-08-16 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.
apps/plugins/puzzles/SOURCES [diff]
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/SOURCES.rockbox [new]
apps/plugins/puzzles/resync.sh [diff]
apps/plugins/puzzles/src/devel.but [deleted]
apps/plugins/puzzles/src/emcc.c [deleted]
apps/plugins/puzzles/src/emcccopy.but [deleted]
apps/plugins/puzzles/src/fuzzpuzz.c [deleted]
apps/plugins/puzzles/src/gtk.c [deleted]
apps/plugins/puzzles/src/list.c [deleted]
apps/plugins/puzzles/src/malloc.c [deleted]
apps/plugins/puzzles/src/nestedvm.c [deleted]
apps/plugins/puzzles/src/no-icon.c [deleted]
apps/plugins/puzzles/src/nullfe.c [deleted]
apps/plugins/puzzles/src/nullgame.c [deleted]
apps/plugins/puzzles/src/osx-help.but [deleted]
apps/plugins/puzzles/src/ps.c [deleted]
apps/plugins/puzzles/src/windows.c [deleted]
Franklin Wei
2024-08-14 ceea52ce0f: FS #13468: Updated Simplified Chinese translation for rbutil (王吉)

Had to make a minor edit to correct a syntax typo.
utils/rbutilqt/lang/rbutil_zh_CN.ts [diff]
Solomon Peachy
2024-08-13 19043660ac: FS #13467: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-08-12 ad0c131918: sim: stub out volume_partition() for sim targets

Not sure why this doesn't blow up in more places, but eh..
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2024-08-12 8c25fcfbf0: ...fix more red from 15e52374
apps/menus/main_menu.c [diff]
Solomon Peachy
2024-08-12 05354e1bef: Hopefully fix the remaining red from 15e52374

(imx233, ipodnano2g, !multidrive hosted/sims)
apps/debug_menu.c [diff]
apps/menus/main_menu.c [diff]
firmware/target/arm/imx233/partitions-imx233.c [diff]
firmware/target/arm/imx233/partitions-imx233.h [diff]
firmware/target/arm/imx233/sdmmc-imx233.c [diff]
Solomon Peachy
2024-08-12 6e69241279: Fix some of the red in 15e52374
apps/menus/main_menu.c [diff]
Solomon Peachy
2024-08-12 15e5237469: storage: 64-bit sector offsets

* Create new 'sector_t' type alias:
* uint64_t for all targets with HAVE_LBA48 or HAVE_SDUC
* unsigned long for the everything else
* Alter all storage APIs to use sector_t instead of 'unsigned long'
* Alter Volume/Partition/storage info structures to use sector_t
* Disk cache converted to sector_t
* ATA Core:
* convert to using sector_t for sector addresses and drive sizes
* Always fill out upper 16 bits of LBA48 addresses
* IDENTIFY INFO is fixed at 512 bytes, not SECTOR_SIZE
* USB mass storage:
* convert to using sector_t for sector addesses and drive sizes
* Implement READ_16/WRITE_16 for LBA48 addresses
* Convert FAT code to use sector_t for all sector references
* output_dyn_value() now accepts int64_t instead of 'int'
* Corrected "rockbox info" to work for (MULTIVOLUME & !MULTIDRIVE)
* Better reporting of disk and (logical+physical) sector sizes in debug info
* Detect SDUC cards and report on storage debug_info screen

To-do: SDUC

* Refactor SD core to remove duplicate code in every driver
* Card probe and init state machine
* Implement core SDUC support
* SD2.0 needs to be 2.0+ (fixed for jz47xx and x1000)
* Host and Card ID (ACMD41)
* 32-bit addressing for all read/write/erase operations (CMD22)
* ADD SDUC to target device drivers, defining HAVE_SDUC as appropriate
apps/debug_menu.c [diff]
apps/menus/main_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/plugin.h [diff]
firmware/common/disk.c [diff]
firmware/common/disk_cache.c [diff]
firmware/drivers/ata.c [diff]
firmware/drivers/fat.c [diff]
firmware/drivers/ramdisk.c [diff]
firmware/drivers/sd.c [diff]
firmware/export/ata.h [diff]
firmware/export/disk.h [diff]
firmware/export/fat.h [diff]
firmware/export/mmc.h [diff]
firmware/export/mv.h [diff]
firmware/export/nand.h [diff]
firmware/export/ramdisk.h [diff]
firmware/export/sd.h [diff]
firmware/export/sdmmc.h [diff]
firmware/export/storage.h [diff]
firmware/include/disk_cache.h [diff]
firmware/storage.c [diff]
firmware/target/arm/as3525/sd-as3525.c [diff]
firmware/target/arm/as3525/sd-as3525v2.c [diff]
firmware/target/arm/ata-nand-telechips.c [diff]
firmware/target/arm/imx233/nand-imx233.c [diff]
firmware/target/arm/imx233/partitions-imx233.c [diff]
firmware/target/arm/imx233/partitions-imx233.h [diff]
firmware/target/arm/imx233/sdmmc-imx233.c [diff]
...and 19 more files.
Solomon Peachy
2024-08-12 9ff308a589: Update multiple translations:

- English-US (Solomon Peachy)
- Italian (Alessio Lenzi)
- Chinese-Simplified ( 王吉)
- Korean (Hoseok Seo)
apps/lang/chinese-simp.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/korean.lang [diff]
Solomon Peachy
2024-08-11 a0f66dea9c: update MAINTAINERS
docs/MAINTAINERS [diff]
William Wilgus
2024-08-11 512f5561ba: fileop: Prevent poweroff during move

When overwriting an existing directory, the idle power off timer may fire during the mass-renaming of individual files.
apps/fileop.c [diff]
Christian Soffke
2024-08-11 ce417b3e1b: fileop: check dst path length during pre-scan

Use the known difference in path length between src and dst in order to detect an insufficient buffer size not just for the source, but also for the destination path during the pre-scan already.
apps/fileop.c [diff]
Christian Soffke
2024-08-11 48400b6ec1: fileop: fix slow pre-scan & flashing progress bar

Scanning files before a delete or copy operation was slowed down by splashf() being called too frequently.

- Delay and update splashf every 0.5s (the scan will often be finished in a split second)
- Only clear screen buffer before scan info is redrawn
- Display name of *top* level item only, to prevent bar from jumping around due to the string length changing
- Use item size for progress bar, so that the overall progress isn't interrupted by each file's progress
- Display processed & total file sizes (KiB if total is < 10MiB, or MiB otherwise)
- Move delete confirmation before scan to provide instant UI feedback
apps/fileop.c [diff]
Christian Soffke
2024-08-11 28badc5703: Fix yellow from commit 52b9656ed6
apps/plugins/playing_time.c [diff]
Christian Soffke
2024-08-11 52b9656ed6: Fix red/yellow from commit 8dcd781291
apps/lang/bulgarian.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/turkce.lang [diff]
apps/plugins/playing_time.c [diff]
Christian Soffke
2024-08-11 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).
apps/lang/english.lang [diff]
apps/plugins/playing_time.c [diff]
Christian Soffke
2024-08-09 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.
apps/plugins/puzzles/README.rockbox [diff]
apps/plugins/puzzles/genhelp.sh [diff]
apps/plugins/puzzles/src/map.c [diff]
Franklin Wei
2024-08-09 ab3982247d: puzzles: remove timestamp from genhelp.sh output.

This will reduce noise in the Rockbox commit history.
apps/plugins/puzzles/compress.c [diff]
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/mosaic.c [diff]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
apps/plugins/puzzles/help/range.c [diff]
apps/plugins/puzzles/help/rect.c [diff]
apps/plugins/puzzles/help/samegame.c [diff]
apps/plugins/puzzles/help/signpost.c [diff]
apps/plugins/puzzles/help/singles.c [diff]
...and 11 more files.
Franklin Wei
2024-08-04 66fa10f1ba: FS #13463: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2024-08-01 a7f9557c9c: list: Fix interrupted playback when scrolling l/r
apps/gui/list.c [diff]
Christian Soffke
2024-07-31 d471cd1e7b: FS #13462: Update Chinese translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
2024-07-30 82a3b21b96: Update multiple translations

- english-us (myself)
- polski (Adam Rak)
- korean (Hoseok Seo)
apps/lang/english-us.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/polski.lang [diff]
Solomon Peachy
2024-07-30 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.
apps/plugin.c [diff]
apps/plugins/properties.c [diff]
Christian Soffke
2024-07-30 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
apps/plugins/properties.c [diff]
Christian Soffke
2024-07-30 a430120b3f: plugins: properties: delay UI viewport update

Looks a little nicer whenever loading takes less than 0.5s
apps/plugins/lib/mul_id3.c [diff]
Christian Soffke
2024-07-30 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)
apps/lang/english.lang [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/file_picker.c [new]
apps/plugins/lua/rocklua.c [diff]
William Wilgus
2024-07-30 ef9490f683: ErosQNative: Debounce jack detection and make Line-Out default

Making line-out default output should allow detection to work correctly. Headphone detection should work whether or not headphone is currently the active output due to the low impedance (relatively) of the headphones. Line-Out sinks will likely be high impedance, so we need the output as a pull-down for detection.

Debounce detection to prevent false triggers due to voltage swings during playback.
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
Dana Conrad
2024-07-30 4d26f559ee: fonts: Rename COPYING to COPYING-fonts.txt in the fonts zip
tools/buildzip.pl [diff]
Solomon Peachy
2024-07-30 ea1ad28cfc: fonts: Include fonts/COPYING license text in fonts zip packages
tools/buildzip.pl [diff]
Solomon Peachy
2024-07-30 1a54398a33: fonts: Forgot to add the additonal Terminus sizes to the config
apps/plugins/rockbox-fonts.config [diff]
Solomon Peachy
2024-07-30 ea5e494ae9: fonts: Update to v4.49.1 of the Terminus font family

Doubles the number of glyphs (691->1356) and adds 18 and 22px sizes
docs/CREDITS [diff]
fonts/12-Terminus.bdf [diff]
fonts/14-Terminus-Bold.bdf [diff]
fonts/14-Terminus.bdf [diff]
fonts/16-Terminus-Bold.bdf [diff]
fonts/16-Terminus.bdf [diff]
fonts/18-Terminus-Bold.bdf [new]
fonts/18-Terminus.bdf [new]
fonts/20-Terminus-Bold.bdf [diff]
fonts/20-Terminus.bdf [diff]
fonts/22-Terminus-Bold.bdf [new]
fonts/22-Terminus.bdf [new]
fonts/24-Terminus-Bold.bdf [diff]
fonts/24-Terminus.bdf [diff]
fonts/28-Terminus-Bold.bdf [diff]
fonts/28-Terminus.bdf [diff]
fonts/32-Terminus-Bold.bdf [diff]
fonts/32-Terminus.bdf [diff]
fonts/COPYING [diff]
Solomon Peachy
2024-07-30 ddb3cc2b7d: Fonts: Update README

Mainly to eliminate the now-16-year-old mapping from old to new names
fonts/README [diff]
Solomon Peachy
2024-07-29 b918ec531b: QuickScreen: stop for first/last entry on repeated actions

Stops on first/last setting value when you switch quick setting using long button press. Useful for long settings list (like Skip Length).
apps/gui/option_select.c [diff]
Roman Artiukhin
2024-07-29 cff56c8e8c: builds: Temporarily switch nightly Bulgarian voice back to 'espeak'

Turns out the 'gtts' tool on the buildserver is too old to support Bulgarian. Once this is dealt with, go ahead and switch back.
tools/builds.pm [diff]
Solomon Peachy
2024-07-29 e722334ab1: init_volume_names() has to be called AFTER storage_init()

...So just move that call into storage_init and be done with it!

Hopefully this doesn't cause any functional regressions.
firmware/common/file_internal.c [diff]
firmware/storage.c [diff]
Solomon Peachy
2024-07-29 2363c7b095: genlang: Remove ability to output a sorted lang file.

This is handled by updatelang (if desired) and helps simplify genlang
tools/genlang [diff]
Solomon Peachy
2024-07-29 3c2a110728: updatelang: Add the ability to sort output file in the English file's order
tools/updatelang [diff]
Solomon Peachy
2024-07-28 d5a4230901: talk: Make talk_fullpath() do the right thing when voicing a directory

The component after the final '/' can be a directory, so don't unconditionally treat it as a file.

Also check to make sure there is something after the final '/' otherwise we end up voicing it as '//'
apps/talk.c [diff]
Solomon Peachy
2024-07-28 c5e1539c74: talk: When mangling paths, use PATH_SEPCH/SEPSTR

Strictly speaking all of our paths need to work this way..
apps/talk.c [diff]
Solomon Peachy
2024-07-28 86bff6214d: properties: Use talk_fullpath() for voicing directory names
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/properties.c [diff]
Solomon Peachy
2024-07-28 78283bda64: talk: Voice the volume name when browsing and when voicing full paths
apps/talk.c [diff]
apps/talk.h [diff]
apps/tree.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
Solomon Peachy
2024-07-28 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.
apps/onplay.c [diff]
apps/plugins/lib/mul_id3.c [diff]
apps/plugins/properties.c [diff]
Christian Soffke
2024-07-28 545271c4de: plugins: extract redundant functionality from stats/properties

Also:

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

- Displays file size in Stats
apps/plugins/lib/mul_id3.c [diff]
apps/plugins/lib/mul_id3.h [diff]
apps/plugins/properties.c [diff]
apps/plugins/stats.c [diff]
manual/plugins/stats.tex [diff]
Christian Soffke
2024-07-28 6d19214eeb: list: remove redundant setting of icon callback to NULL

gui_synclist_init already does this for us
apps/gui/option_select.c [diff]
apps/playlist_viewer.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/open_plugins.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/plugins/rb_info.c [diff]
apps/plugins/tagcache/tagcache.c [diff]
apps/plugins/text_editor.c [diff]
apps/radio/presets.c [diff]
apps/screens.c [diff]
Christian Soffke
2024-07-27 68fc5b4a7a: plugins: playing time: fix missing voice

appears to be a regression from 5d39d987c0
apps/plugins/playing_time.c [diff]
Christian Soffke
2024-07-27 adbb005fd2: builds: Switch default Bulgarian voice to 'gtts'

I don't like hitting an external service but the voice pool makes this largely a one-off.
tools/builds.pm [diff]
Solomon Peachy
2024-07-27 566d99aced: voice: Switch default English Piper voice to 'en_GB-semaine-medium'

The former one ('cori') had some very pathological corner cases especiallly when voicing single letters. This one is just better all around.
apps/lang/InvalidVoice_english.talk [diff]
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-07-27 2dddf16e2c: voice: Shorten silence threshold to 250ms (from 500ms)
tools/voice.pl [diff]
Solomon Peachy
2024-07-27 f95427c081: FS #13457: Korean translation for the Rockbox Utility (Hoseok Seo)
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/lang/rbutil_ko.ts [new]
Solomon Peachy
2024-07-26 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
apps/plugins/properties.c [diff]
Christian Soffke
2024-07-26 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.
apps/plugins/playing_time.c [diff]
Christian Soffke
2024-07-26 23e5f77ab0: Remove mp3info function & remove list_do_action from plugin_api
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/id3.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/playing_time.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/vbrfix.c [diff]
docs/API [diff]
docs/PLUGIN_API [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/rbcodec/metadata/metadata.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
Christian Soffke
2024-07-26 13830439fa: Fix multidrive/multivolume hosted builds.

Generalize the fix in 2348779ae6 to apply to hosted as well as simulator builds. Original regression introduced in c0ac043c6d
apps/main.c [diff]
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2024-07-26 e94f778f1c: plugin argparse update to add userdata to callback

fix a couple of gotchas if you aren't using NULL terminated strings
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
apps/plugins/pitch_screen.c [diff]
William Wilgus
2024-07-26 e8d7a8baaf: simulator: Fix browsing into secondary drive on multidrive targets
uisimulator/common/filesystem-sim.c [diff]
Solomon Peachy
2024-07-25 10e883fe02: FS #13455: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2024-07-25 2348779ae6: [Bugfix #2] initialize the volume names for the sim

and fix red for the devices that don't have ext drives
uisimulator/common/sim_tasks.c [diff]
William Wilgus
2024-07-25 67db38e766: [Bugfix] initialize the volume names for the sim

init_volume_names() wasn't being called by the sim
firmware/common/pathfuncs.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
2024-07-25 bcaeaa135a: build-info: Add a trailing newline to the output
tools/build-info.pl [diff]
Solomon Peachy
2024-07-24 780c05a64d: Fix empty string in the Bulgarian translation

From the Rockbox Translation website: When the English language is set to "" or none, the translation should follow. The strings below don't do this. This is an error and should be fixed.
apps/lang/bulgarian.lang [diff]
Vencislav Atanasov
2024-07-24 a872e38ccc: voices: Use espeak, not piper, to build bulgarian voices.

As there was no bulgarian piper voice, it defaulted to czech, with very bad results.
tools/builds.pm [diff]
Solomon Peachy
2024-07-24 e8975cf85c: Fix typo inadvertantly introduced in 89b4cd59ef1

Didn't cause any compile problems becuase we have no APPLICATION targets that support recording.
firmware/export/rbpaths.h [diff]
Solomon Peachy
2024-07-24 334def8431: configure: Fix android x86 build
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-07-24 89b4cd59ef: [BugFix] extra slashes in recording directory

the define for HOME_DIR has a single slash for native

hosted does or doesn't but native always has 2
firmware/export/rbpaths.h [diff]
William Wilgus
2024-07-24 cd1922fe74: puzzles: update documentation and copyright year.
apps/plugins/puzzles/README.rockbox [diff]
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2024-07-23 96f564fe64: manual: update single mode

reflects changes made in commit fe5375a
manual/configure_rockbox/playback_options.tex [diff]
Christian Soffke
2024-07-23 c0ac043c6d: get_volume_name generate volume names once then reuse
firmware/common/file_internal.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
William Wilgus
2024-07-23 254eaf509e: Fix the final two Bulgarian translation same-as-English issues
apps/lang/bulgarian.lang [diff]
Solomon Peachy
2024-07-23 8d436561e2: plugins: playing time: use cpu_boost + simplify a bit
apps/plugins/playing_time.c [diff]
Christian Soffke
2024-07-23 6dd9b9786c: voice: Fix typo in Bulgarian gtts default cmdline
tools/voice.pl [diff]
Solomon Peachy
2024-07-23 dd58b05f61: Update Bulgarian translation, part 2
apps/lang/bulgarian.lang [diff]
Vencislav Atanasov
2024-07-23 a153f6c266: voice: Add defaults for Bulgarian voicing, and add it to the nightly builds.
apps/lang/bulgarian.lang [diff]
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-07-23 ba4a6f2adc: Update Bulgarian translation
apps/lang/bulgarian.lang [diff]
Vencislav Atanasov
2024-07-23 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
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/mosaic.c [diff]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
apps/plugins/puzzles/help/range.c [diff]
apps/plugins/puzzles/help/rect.c [diff]
apps/plugins/puzzles/help/samegame.c [diff]
apps/plugins/puzzles/help/signpost.c [diff]
apps/plugins/puzzles/help/singles.c [diff]
apps/plugins/puzzles/help/sixteen.c [diff]
...and 16 more files.
Franklin Wei
2024-07-23 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.
apps/plugins/CATEGORIES [diff]
apps/plugins/puzzles/SOURCES [diff]
apps/plugins/puzzles/SOURCES.games [diff]
apps/plugins/puzzles/genhelp.sh [diff]
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/mosaic.c [new]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/nullgame.c [new]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
apps/plugins/puzzles/help/range.c [diff]
...and 154 more files.
Franklin Wei
2024-07-23 c72030f98c: voice: Add default voice entries for Korean for gtts and espeak

(Piper does not have a Korean voice set yet)
tools/voice.pl [diff]
Solomon Peachy
2024-07-23 e8257580c6: voices: Add Korean (using espeak-ng) to the nightly voice build set
apps/lang/korean.lang [diff]
tools/builds.pm [diff]
Solomon Peachy
2024-07-22 9a84e9eb34: tree: fix return to root after adding to existing playlist

When adding files to an existing playlist from the database or file browser, Rockbox returns to the root menu afterwards.

Appears to be a regression introduced in commit 72c539d for the file browser. For the database, it has only become noticeable since commit 188f025
apps/tree.c [diff]
Christian Soffke
2024-07-22 20948c1b0e: FS #13454: Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
2024-07-22 7720b0c4e4: [Bugfix] crashes on usb unplug, extra text on USB screen, viewportmgr ovfl on sim

make _lists_uiviewport_update_callback a oneshot and reset it each call of list_do_action_timeout()

block multiple runs of gui_usb_screen_run() in the sim
apps/gui/list.c [diff]
apps/gui/usb_screen.c [diff]
William Wilgus
2024-07-22 2bb9323de8: FS #13429: Add a freeform "player name" configuration setting

The idea is that a theme or whatever could use this to provide visual differentiation (eg "George's iPod") between multiple otherwise-identical players..

Defaults to an empty string.

Added to the manual but there is not a way to set this through the menus yet.
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
Solomon Peachy
2024-07-21 ca332b5473: Fixes for the SysCfg viewer

- decrease max entries to the required minimum
- merge two info lines
- fix value in too many entries error message
apps/debug_menu.c [diff]
Vencislav Atanasov
2024-07-21 f3a5fe2738: FS #13453: Updated Polish translation (Adam Rak)

(Another member of the growing 100% club!)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-07-21 fe5375a6cb: Improve Crossfade handling in Single Mode

Crossfade (see Playback Settings -> Crossfade) now works between songs in Single Mode (see Playback Settings -> Single Mode) unless it’s the last song to be played.
apps/pcmbuf.c [diff]
apps/playback.c [diff]
Roman Artiukhin
2024-07-21 9f366b1b8a: voice: Flag ':' in voiced strings.

Also corrected the 100% languages:

English, English-US, Chinese-Simplified, German, and Italian

(There is one Italian string I didn't know how to fix)
apps/lang/chinese-simp.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/italiano.lang [diff]
tools/updatelang [diff]
Solomon Peachy
2024-07-21 370fde68ab: Fix Korean VOICE_LANG_NAME

It needs to be "korean" not "english"
apps/lang/korean.lang [diff]
Solomon Peachy
2024-07-21 3294337a4c: builds: Based on feedback, switch default Slovak TTS to espeak-ng
tools/builds.pm [diff]
Solomon Peachy
2024-07-21 7c565fd40d: Fix a typo in the Korean translation
apps/lang/korean.lang [diff]
Solomon Peachy
2024-07-21 06123c3606: FS #13452: Major update to Korean translation (Hoseok Seo)

...It's nearly complete!
apps/lang/korean.lang [diff]
Solomon Peachy
2024-07-21 a286555578: plugins: properties: Add Directory Track Info
apps/plugins/properties.c [diff]
Christian Soffke
2024-07-21 a983e532fa: Track info: Hide codec when it differs between tracks

Instead of showing '???', to make it consistent with other displayed info
apps/screens.c [diff]
Christian Soffke
2024-07-21 188f025f51: [Bug Fix] Data Abort on Usb Unplug, database browser ran on USB dc

current_lists holds a pointer to whatver the current list is only problem is when in one of the function type menus like the plugin viewer, playlist viewer, shortcut menu probably a few others on usb unplug current_lists holds stale data and updates the list however the data has already been freed when the function returned

the issue with db browser was a return of true from dirbrowse() which was the value 1 which is the enum for GO_TO_DBBROWSER
apps/gui/list.c [diff]
apps/tree.c [diff]
William Wilgus
2024-07-20 2b7b4c24d5: FS #13448: Ignore directories with 'talkclips.ignore' file

Mirrors the functionality of the command-line 'voice.pl' script.
utils/rbutilqt/base/talkfile.cpp [diff]
Solomon Peachy
2024-07-20 e0b34a5c4d: FS #13449: Generate standalone voice clips in rbutil

VOICE_INVALID_VOICE_FILE and VOICE_LANG_NAME need to be discretely saved as "InvalidVoice_<langname>.talk" and "<langname>.lng.talk" under the target .rockbox/langs directory

This mirrors what the standalone voice.pl and buildzip.pl do.
utils/rbutilqt/base/voicefile.cpp [diff]
Solomon Peachy
2024-07-20 6bfcba4422: FS #13450: 100% Chinese-Simplified translation (Medu Hedan)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
2024-07-20 4e953434c3: FS #13446 - Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2024-07-20 fe5bee50be: Multivolume: Hosted targets are also limited to just one volume per "drive"

(It would be interesting to try and work around this but it would have to be done on a per-target/platform basis)
firmware/export/config.h [diff]
Solomon Peachy
2024-07-20 66b0280bb1: FS #13445: Fix AI regression in Superdom (Uwe Schächterle)

The fix in e72bae7c3ff was subtly wrong due to variable re-use.
apps/plugins/superdom.c [diff]
docs/CREDITS [diff]
Solomon Peachy
2024-07-20 f24271c73c: [Bugfix] Plugin Viewer Don't display SYSTEM folders or Volumes

recent changes added first level folders to the plugin viewer inserting a drive enumerates new folders into the namespace of the plugin viewer filter these entries OUT
apps/filetree.c [diff]
William Wilgus
2024-07-20 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
apps/gui/skin_engine/skin_tokens.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/cue_playlist.c [new]
apps/plugins/viewers.config [diff]
lib/rbcodec/metadata/metadata.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
William Wilgus
2024-07-20 072228bb70: [feature] playlist. show search progressbar when iterating playlist entries
apps/misc.c [diff]
apps/misc.h [diff]
apps/playlist.c [diff]
apps/tagtree.c [diff]
William Wilgus
2024-07-20 82cf845625: simulator supports only one logical volume per drive
firmware/export/config.h [diff]
Solomon Peachy
2024-07-20 4628009503: simulator: A few MULTIVOLUME cleanups in the code.
uisimulator/common/filesystem-sim.c [diff]
Solomon Peachy
2024-07-19 87ef6bb9e1: hosted: Don't unconditionally pull in mv.h on hosted environments

It causes some conflicts in plugins with the upcoming 64-bit storage enablement
firmware/target/hosted/filesystem-hosted.h [diff]
firmware/target/hosted/filesystem-unix.c [diff]
firmware/target/hosted/filesystem-win32.c [diff]
Solomon Peachy
2024-07-19 6af637645a: FS12727: Fix buggy strength calculation in superdom
apps/plugins/superdom.c [diff]
Solomon Peachy
2024-07-19 db8049d168: rbutil: Delete some obsolete entries from rbutil.ini

These are all sourced from build-info today.
utils/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2024-07-19 5f3d3b0550: FS #13443: Further updates to Chinese (Simplified) translation (Medu Hedan)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
2024-07-19 130ad0a262: voice: Have allvoices() sort voices by shortname (eg en_us)
tools/builds.pm [diff]
Solomon Peachy
2024-07-19 5d53c94255: voice: Switch all daily builds over to the Piper TTS engine

(And flip on Chinese as well)
tools/builds.pm [diff]
Solomon Peachy
2024-07-18 e32b1d6bd6: builds: More manual-related fixes
tools/builds.pm [diff]
Solomon Peachy
2024-07-18 a7159ad483: voice: Encode all tts options in the POOL filename.

It was only including about half. Unfortunately this will likely invalidate all existing pools.
tools/voice.pl [diff]
Solomon Peachy
2024-07-18 16094fca33: voice: Minor tweaks for Chineese TTS
apps/lang/chinese-simp.lang [diff]
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-07-18 8ddd94f3fd: voice: Add default mappings for Chinese-Simplified TTS
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-07-18 19b85e51e0: tex4ht can't handle Chinese unicode.
docs/CREDITS [diff]
Solomon Peachy
2024-07-18 bb563da87a: FS #13442: Updated Chinese-Simplified translation (王吉 / Medu Hedan)
apps/lang/chinese-simp.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2024-07-18 c3b83c0a5c: builds: tweak the 'manualbuilds' filter
tools/builds.pm [diff]
Solomon Peachy
2024-07-18 b072c60571: build-info: Unreleased 'stable' targets get demoted to 'unstable'

This keeps rbutil from being confused.

When a new release happens, all of this automagically fixes itself!
tools/build-info.pl [diff]
Solomon Peachy
2024-07-18 35fb94fc9b: builds: Flag several stable targets that don't have manuals
tools/builds.pm [diff]
Solomon Peachy
2024-07-18 350bb5fd74: builds: promote xDuoo X3ii and X20 to stable

They don't need a manual to be considered stable, but rbutil can install them just fine.
tools/builds.pm [diff]
Solomon Peachy
2024-07-18 4d97a4f3f2: builds: Create a function that generates a list of all manual builds
tools/builds.pm [diff]
tools/release/manuals.pl [diff]
Solomon Peachy
2024-07-18 9ddd9826d3: Delete a redundant AGPTek Rocker simulator bitmap
uisimulator/bitmaps/UI-rocker.bmp [deleted]
Solomon Peachy
2024-07-18 d5dd295ace: builds: Promote AGPTek Rocker to 'stable'
tools/build-info.pl [diff]
tools/builds.pm [diff]
Solomon Peachy
2024-07-17 a302aa565a: manual: Update copyright year to 2024.
manual/intro/main.tex [diff]
Solomon Peachy
2024-07-16 01ec79663d: ATA: Rework ata_isssd() slightly:

* If CF Timing mode is specified, treat it as SSD
(some SD adapters don't report CFA supported but but report this, and _all_ microdrives seen do not report this)
* If CFA compliant and CF power level 0, treat as SSD
firmware/export/ata.h [diff]
Solomon Peachy
2024-07-16 942e013eac: pp5020: Cache the result of the is_ssd check.

...So we don't look it up on every write.
firmware/target/arm/pp/ata-pp5020.c [diff]
Solomon Peachy
2024-07-16 27a0cda6ac: PP5020: Unconditionally use stock PIO timings

The SSD detection heuristic is flawed, and when it fails
(due to very crappy CF->SD adapters) we end up corrupting things.

So let's give up a slight amount of performance on the original hard drives (which are aging out anyway) in favor of guaranteeing safety.
apps/main.c [diff]
firmware/target/arm/pp/ata-pp5020.c [diff]
Solomon Peachy
2024-07-16 9c53fa1b0a: pp5020: It's okay to use DMA reads on non-SSDs

Fixes a regression introduced in 4b423e21f697af
firmware/target/arm/pp/ata-pp5020.c [diff]
Solomon Peachy
2024-07-16 a6f0044d40: Revert "ata: Use PIO0 when ATA_SET_PIO_TIMING is not defined"

This reverts commit 95d6c74627c7a27fe9f5244fcdd9265722c80268.
firmware/drivers/ata.c [diff]
Solomon Peachy
2024-07-16 95d6c74627: ata: Use PIO0 when ATA_SET_PIO_TIMING is not defined

If we have no way to tell the controller what timing to use, go with the slowest possible speed.
firmware/drivers/ata.c [diff]
Solomon Peachy
2024-07-13 9049d30da9: Add Evan Kenny to CREDITS
docs/CREDITS [diff]
Solomon Peachy
2024-07-13 96f42a5646: skin engine: Add tags to display Quickscreen Items

A set of new tags for themes that allow them to display a quickscreen item's name or value like what is displayed on the default quickscreen.

There are 8 tags in total, 2 for each direction or "item". One type of tag displays the setting name, while the other displays the setting's value.

All tags output an "ERR" string if no valid setting is found for that item.

Quickscreen Item name tags: %QT, %QR, %QB and %QL. Quickscreen Item value tags: %Qt, %Qr, %Qb and %Ql.
apps/gui/skin_engine/skin_tokens.c [diff]
lib/skin_parser/tag_table.c [diff]
lib/skin_parser/tag_table.h [diff]
manual/appendix/wps_tags.tex [diff]
Evan Kenny
2024-07-13 3891bcf3b9: [Revert] id3 title display playlist_viewer.c

reading the disk works fine for on disk playlist but trying to read from the disk with the current playlist becomes unbearably slow

removes the static playlist_track_info prefering the unused one already on the stack from search_playlist()
apps/playlist_viewer.c [diff]
apps/settings_list.c [diff]
William Wilgus
2024-07-12 8753c41b2e: tools: Fix the tools/release/manuals.pl script

It was looking for the versioned pdf filename, which it then renamed immediately anyway.
tools/release/manuals.pl [diff]
Solomon Peachy
2024-07-12 6a6fa0702a: manual: Just call the PDF build artifact rockbox-manual.pdf

...Instead of renaming it to include the player name and version. This was the _only_ build artifact treated that way, and I can't find an explanation of why.
manual/Makefile.pdflatex [diff]
Solomon Peachy
2024-07-12 da8d6152ad: playlist_viewer reduce bss usage

the extra title pointer and alignment adds around 1k to the bss area since we already have a pointer to track->name we can just save an offset for the title data
apps/playlist_viewer.c [diff]
William Wilgus
2024-07-12 8801ed0824: manual: Fix html manual build on MPIOHD300
manual/plugins/blackjack.tex [diff]
Solomon Peachy
2024-07-12 81c8be1568: manual: Fix html manual build on MPIO HD200
manual/platform/keymap-mpiohd200.tex [diff]
manual/platform/mpiohd200.tex [diff]
Solomon Peachy
2024-07-12 fec9f69ac8: agptekrocker: Fix manual build due to missing Quickscreen enter/exit

(Required adding a std quickscreen context keymap!)
apps/keymaps/keymap-agptekrocker.c [diff]
manual/platform/keymap-agptekrocker.tex [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
Solomon Peachy
2024-07-12 f8e602ecfd: manual: Fix iHP-H10 HTML build
manual/configure_rockbox/display_options.tex [diff]
Solomon Peachy
2024-07-12 a2747a1bd1: Playlist_viewer.c clean-up and a bit of optimization
apps/playlist_viewer.c [diff]
William Wilgus
2024-07-10 bdb5bf1511: [Bugfix] playlist_viewer.c

had the conditional backwards

changing display settings now reloads list
apps/playlist_viewer.c [diff]
William Wilgus
2024-07-10 43dfa7d084: opus: Re-add IRAM hints to some constant tables

Was accidently disabled in 14c6bb798d6bebc80f07e863236adbaf8d156a9c
(in January 2019)

See 8e8671a73efe117bd34815e3f4c16f3178143774 for the benchmarks.
lib/rbcodec/codecs/libopus/celt/cwrs.c [diff]
lib/rbcodec/codecs/libopus/celt/entcode.c [diff]
lib/rbcodec/codecs/libopus/celt/static_modes_fixed.h [diff]
Solomon Peachy
2024-07-10 67b5fa06d5: opus: Re-enable Coldfire ASM optimizations

Was accidently disabled in 14c6bb798d6bebc80f07e863236adbaf8d156a9c
(in January 2019)

(Had to make a minor change due argument differences)
lib/rbcodec/codecs/libopus/celt/_kiss_fft_guts.h [diff]
lib/rbcodec/codecs/libopus/celt/arch.h [diff]
lib/rbcodec/codecs/libopus/celt/cf/fixed_cf.h [diff]
lib/rbcodec/codecs/libopus/silk/macros.h [diff]
Solomon Peachy
2024-07-09 fdbaf7df59: [Feature] playlist_viewer id3 title display

Not sure this is a great idea from disk and battery standpoint but there is no reason you can't..

using the name buffer to fill title data prevent hitting the disk for each screen scroll

add get_metadata_ex to allow flags METADATA_EXCLUDE_ID3_PATH prevent copying the filename to the ID3 struct METADATA_CLOSE_FD_ON_EXIT instead of seeking to the beginning the file is closed before get_metadata returns

add logic to allow a invalid fd to signal that get_metadata should open and close the file within its call

bugfix per Chris_s don't use the tagcache for the trackinfo
apps/buffering.c [diff]
apps/iap/iap-core.c [diff]
apps/iap/iap-lingo4.c [diff]
apps/playback.c [diff]
apps/playlist_viewer.c [diff]
apps/settings_list.c [diff]
apps/tagcache.c [diff]
lib/rbcodec/metadata/metadata.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
William Wilgus
2024-07-07 07cf874191: simulator: Fix one set of errors, a new set crops up.
uisimulator/common/filesystem-sim.c [diff]
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2024-07-07 c51a9821e7: rk27xx: Fix simulator errors brought upon by HAVE_MULTIDRIVE but not HAVE_HOTSWAP
firmware/target/arm/rk27xx/sd-rk27xx.c [diff]
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2024-07-07 60c3fdbc11: More red fixes:

* hostfs_removeable()/present() needed IF_MDVOID() in their prototypes
* SIM_EXT_INSERTED/EXTRACTED are gated by HAVE_HOTSWAP
firmware/export/hostfs.h [diff]
firmware/export/storage.h [diff]
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2024-07-07 5a2bd580cd: Hopefully fix the last of the stragglers.

* xDuoo X3 fix some warnings due to an incorrect #ifdef
* stub storage_removeable() and storage_present() for non-HOTSWAP builds
* sim_trigger_external() is gated by HOTSWAP, not MULTIDRIVE
firmware/export/storage.h [diff]
firmware/target/hosted/sdl/button-sdl.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4760.c [diff]
uisimulator/common/sim_tasks.c [diff]
uisimulator/common/sim_tasks.h [diff]
Solomon Peachy
2024-07-07 1528b44349: More red fixes
firmware/export/config.h [diff]
firmware/export/config/sim.h [diff]
firmware/export/mv.h [diff]
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4760.c [diff]
uisimulator/common/filesystem-sim.c [diff]
Solomon Peachy
2024-07-07 520875ff00: simulator: Fix numerous latent issues

Interactions between HAVE_MULTIVOLUME, HAVE_MULTIDRIVE, and HAVE_HOTSWAP
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2024-07-07 dc364e44ef: Disable HAVE_MULTIVOLUME for bootloaders

Multivolume support is only necessary if mounting multiple volumes simultaneously, which the bootloader won't do.
firmware/export/config.h [diff]
Solomon Peachy
2024-07-07 f37b5a8349: Fix the remaining red in red from ea80d1cc9ca

Notably:

* double-paste in ihifi760 config.h
* jz4740 ATA & SD drivers used MULTIVOLUME instead of MULTIDRIVE
* Simulators implicitly rely on HAVE_HOTSWAP
firmware/export/config/ihifi760.h [diff]
firmware/export/config/sim.h [diff]
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c [diff]
Solomon Peachy
2024-07-07 181fe7530a: Fix most of the (extensive) red in ea80d1cc9ca
firmware/export/config.h [diff]
firmware/export/config/ihifi760.h [diff]
firmware/export/config/ihifi770.h [diff]
firmware/export/config/ihifi770c.h [diff]
firmware/export/config/ihifi800.h [diff]
firmware/export/config/ihifi960.h [diff]
firmware/export/config/rk27generic.h [diff]
firmware/target/mips/ingenic_x1000/sd-x1000.c [diff]
Solomon Peachy
2024-07-07 ea80d1cc9c: config: Change default HAVE_MULTIVOLUME settings

* HAVE_MULTIDRIVE implies HAVE_MULTIVOLUME as the latter is always removeable storage
* SD storage implies MULTIVOLUME
* ATA storage (with HAVE_LBA48) implies MULTIVOLUME
* Replace HAVE_MULTIDRIVE && NUM_DRIVES == 1 with HAVE_MULTIVOLUME

Since SD and ATA can exceed 2TB, we need multiple volumes to fully utilize available storage with FAT32.

In practice I believe this only affects the ipod devices.
firmware/export/config.h [diff]
firmware/export/config/cowond2.h [diff]
firmware/export/config/creativezen.h [diff]
firmware/export/config/creativezenxfi.h [diff]
firmware/export/config/creativezenxfi2.h [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/ihifi760.h [diff]
firmware/export/config/ihifi770.h [diff]
firmware/export/config/ihifi770c.h [diff]
firmware/export/config/ihifi800.h [diff]
firmware/export/config/ihifi960.h [diff]
firmware/export/config/mini2440.h [diff]
firmware/export/config/ondavx747.h [diff]
firmware/export/config/ondavx777.h [diff]
firmware/export/config/rk27generic.h [diff]
firmware/export/config/sansae200.h [diff]
firmware/export/config/shanlingq1.h [diff]
Solomon Peachy
2024-07-07 af1eddb6e9: release/voices: Update script to check for global POOL

...If it's already defined, don't override it.

And don't wipe its contents!
tools/release/voices.pl [diff]
Solomon Peachy
2024-07-07 7ea7112220: MAINTAINERS update

Largely consists of adding myself in a bunch more places, though I did "volunteer" a few folks in some places due to their existing and ongoing work.

The other noteworthy change is adding Alessio Lenzi as the Italian translation maintainer.
docs/MAINTAINERS [diff]
Solomon Peachy
2024-07-04 e4ee8c8879: [Fix Yellow] file_op.c Bad DEBUGF statement
apps/fileop.c [diff]
William Wilgus
2024-07-04 b0dfcde2f5: [Cleanup] onplay.c fileop.c

clean-up a bit more add/correct some comments

fix some error passing guard delete path on PATH_TOO_LONG

add some cpu_boost
apps/fileop.c [diff]
apps/fileop.h [diff]
apps/onplay.c [diff]
apps/onplay.h [diff]
William Wilgus
2024-07-04 3e9ca6ec8e: configure: Stray unquoted space in a sed expression

Should fix SDL builds where --static-libs are not present
tools/configure [diff]
Solomon Peachy
2024-07-04 5e13a1bb05: FS #13439: Fully updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2024-07-04 30ef953393: configure: Fix 'make reconf' when win64 sim builds are enabled
tools/configure [diff]
Solomon Peachy
2024-07-04 961f8a0f56: configure: if we can't link SDL statically, drop -static from the cmdline

Fixes building windows simulator builds on Fedora systems
tools/configure [diff]
Solomon Peachy
2024-07-03 e2fb4ecd5c: xduoox3: Completely strip USB support out of the bootloader.
bootloader/xduoox3.c [diff]
firmware/SOURCES [diff]
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
2024-07-03 80b9127727: Revert "jx47xx: Rename crt0 'init' sections to 'startup'"

This reverts commit 83bb89d0b836c2571315362603bc5a51cd3b804a.

...It breaks the jz47xx bootloaders.
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/crt0.S [diff]
Solomon Peachy
2024-07-03 d0e47affa9: xduoox3: Script to patch a firmware image with a new bootloader binary
tools/xduoox3-updatebl.sh [new]
Solomon Peachy
2024-07-01 e55618d07a: hosted: Minor corrections to the linux framebuffer driver.

* Query variable info _before_ mmaping the framebuffer
* Sanity-check the resolution/bitdepth, and if it doens't match try to set it to what we want.

This is functionally a no-op.
firmware/target/hosted/lcd-linuxfb.c [diff]
Solomon Peachy
2024-07-01 5f26f21ab2: samsungypr0/1: Minor improvements to framebuffer driver.

* Distinct error codes for all failures
* Corrected some comments and error messages

The ypr0/r1 target should be switched over to the generic lcd-linuxfb driver, but that will come later.
firmware/target/hosted/samsungypr/lcd-ypr.c [diff]
Solomon Peachy
2024-07-01 311f27606c: xrick: Fix build on RGB888 targets

Didn't realise they needed the same hand-holding as XRGB8888
apps/plugins/xrick/system/sysvid_rockbox.c [diff]
Solomon Peachy
2024-07-01 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;
apps/plugins/brickmania.c [diff]
docs/CREDITS [diff]
Solomon Peachy
2024-07-01 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.
apps/plugins/xrick/system/sysvid_rockbox.c [diff]
docs/CREDITS [diff]
manual/plugins/xrick.tex [diff]
Solomon Peachy
2024-06-30 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
apps/plugins/xrick/3rd_party/miniz/miniz.c [diff]
apps/plugins/xrick/e_them.c [diff]
apps/plugins/xrick/system/sysfile_rockbox.c [diff]
apps/plugins/xrick/system/sysvid_rockbox.c [diff]
manual/plugins/xrick.tex [diff]
Solomon Peachy
2024-06-30 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
apps/plugins/CATEGORIES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/xrick/3rd_party/miniz/miniz.c [new]
apps/plugins/xrick/README.md [new]
apps/plugins/xrick/README.rockbox [new]
apps/plugins/xrick/SOURCES [new]
apps/plugins/xrick/config.h [new]
apps/plugins/xrick/control.c [new]
apps/plugins/xrick/control.h [new]
apps/plugins/xrick/data/img.c [new]
apps/plugins/xrick/data/img.h [new]
apps/plugins/xrick/data/pics.c [new]
apps/plugins/xrick/data/pics.h [new]
apps/plugins/xrick/data/sounds.c [new]
apps/plugins/xrick/data/sounds.h [new]
apps/plugins/xrick/data/sprites.c [new]
apps/plugins/xrick/data/sprites.h [new]
apps/plugins/xrick/data/tiles.c [new]
apps/plugins/xrick/data/tiles.h [new]
apps/plugins/xrick/debug.h [new]
apps/plugins/xrick/devtools.c [new]
apps/plugins/xrick/devtools.h [new]
apps/plugins/xrick/draw.c [new]
apps/plugins/xrick/draw.h [new]
apps/plugins/xrick/e_bomb.c [new]
apps/plugins/xrick/e_bomb.h [new]
apps/plugins/xrick/e_bonus.c [new]
apps/plugins/xrick/e_bonus.h [new]
apps/plugins/xrick/e_box.c [new]
apps/plugins/xrick/e_box.h [new]
...and 58 more files.
Sebastian Leonhardt
2024-06-30 6f1e67e5e3: builds: Add an explicit 'simbuilds' list

It includes all targets that have a working simulator build.

* All stable targets except those that are flagged as bad
* All unstable targets that are flagged as good
tools/builds.pm [diff]
tools/list_targets.pl [diff]
tools/release/sims.pl [diff]
Solomon Peachy
2024-06-30 1c3f77eccd: Revert "Toolchains: Update to GCC 8.5.0"

Accidental push instead of going to gerrit. #!$!#!

This reverts commit 67dc833e46679c13f4b8d82cbb52d2393fef8fd8.
tools/configure [diff]
tools/rockboxdev.sh [diff]
tools/toolchain-patches/glibc-227-make44.patch tools/toolchain-patches/glibc-225-make44.patch [rename]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff [new]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff [deleted]
Solomon Peachy
2024-06-30 67dc833e46: Toolchains: Update to GCC 8.5.0

All toolchain dependencies are circa the GCC 8.5.0 release:

GCC 8.5.0, binutils 2.37, gmp 6.2.1, mpfr 4.1.0, mpc 1.2.1, isl 0.18

Native:

* arm (smoke tested on ipodvideo+mini2g)
* mips (seems to be stable on xDuoo X3)
* m68k (binaries untested)

Hosted:

* arm (binaries untested)
* mips (smoke tested on xDuoo X3ii)

Unchanged:

* Android NDK (unchanged at GCC 4.9.4)
tools/configure [diff]
tools/rockboxdev.sh [diff]
tools/toolchain-patches/glibc-225-make44.patch tools/toolchain-patches/glibc-227-make44.patch [rename]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff [deleted]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff [new]
Solomon Peachy
2024-06-30 36fdd3dfed: bootloader: Improvements for hibyos targets

* Make sure SD card is mounted prior to reading or writing boot mode file
* If rockbox boot fails, fall back into the tools menu
* Use a 1s timeout instead of 10s if booting from previous mode
(special case for first boot)
bootloader/rocker_linux.c [diff]
Solomon Peachy
2024-06-30 dc7486c7de: [Feature] onplay.c show file progress

first some clean-up of onplay.c

extend/move fileobject copy, move, delete routines in prep for other users

add error checking, better error codes pre scan to make sure the operation doesn't exceed system resources show progress for file and directory copies
apps/SOURCES [diff]
apps/fileop.c [new]
apps/fileop.h [new]
apps/misc.c [diff]
apps/misc.h [diff]
apps/onplay.c [diff]
William Wilgus
2024-06-30 c87c09658a: Minor German translation update (add credit, and one mecanical correction)
apps/lang/deutsch.lang [diff]
Solomon Peachy
2024-06-30 16a3f6d41e: FS #13436: Updated German Translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
2024-06-29 025841cfb5: ata: Use consistent error values for all invocations of set_features()

set_features() returns an error between -1 and -39, so make sure every caller adds -60 to that so no matter where an error is printed the value is consistent.
firmware/drivers/ata.c [diff]
Solomon Peachy
2024-06-28 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.
apps/plugins/fft/fft.c [diff]
Solomon Peachy
2024-06-27 dca5fb9514: simulator: Fix Samsung YP-R0 windows simulator build
firmware/SOURCES [diff]
Solomon Peachy
2024-06-26 8e280bdda8: configure: Hopefully resolve windows simulator builds issues for hosted targets
tools/configure [diff]
Solomon Peachy
2024-06-26 3611266d0f: simulator: fix ipod6g simulator build.

This wasn't caught because the ipod6gsim target was inadvertantly left out of the buildfarm.
apps/debug_menu.c [diff]
Solomon Peachy
2024-06-25 4691152f92: Add SysCfg viewer for iPod 6G in the debug menu
apps/debug_menu.c [diff]
firmware/SOURCES [diff]
firmware/target/arm/s5l8702/nor-target.h [diff]
Vencislav Atanasov
2024-06-24 c2c8fcb561: updatelang: ignore "same as english" flag when determining suggested voice string
tools/updatelang [diff]
Solomon Peachy
2024-06-24 f22a8c1c9b: FS #13438: Updated Polish translation (Adam Rak)

(With a few "Intentionally same as English" additions by me)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-06-24 b4bcabe532: Update english-us "Translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2024-06-24 a9254da767: build: Fix yellow introduced in 5d39d987c0
apps/plugins/playing_time.c [diff]
Solomon Peachy
2024-06-24 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
apps/plugins/playing_time.c [diff]
Roman Artiukhin
2024-06-24 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.
apps/lang/english.lang [diff]
apps/lang/russian.lang [diff]
apps/plugins/playing_time.c [diff]
Roman Artiukhin
2024-06-24 54e2facb85: Fix yellow introduced in f7a3b4dfa
firmware/drivers/tuner/tea5767.c [diff]
Solomon Peachy
2024-06-24 f7a3b4dfa3: Radio support and detection for Samsung YH92X [FOR TESTING].

Status:

- tested on:

Samsung YH920 - it uses this detection too, it always should have the radio. Samsung YH925 with the radio.

- untested on:

Samsung YH925 without the radio.
firmware/SOURCES [diff]
firmware/drivers/tuner/tea5767.c [diff]
firmware/export/config/samsungyh925.h [diff]
Szymon Dziok
2024-06-23 8f75b29aed: voice.pl: Fix an issue with the piper tts engine

It only arose with the dailybuild scripts.
tools/voice.pl [diff]
Solomon Peachy
2024-06-23 4c9d346cb2: translations: Add VOICE_LANG_NAME for Czech.
apps/lang/czech.lang [diff]
Solomon Peachy
2024-06-23 c862769977: voices: Enable nightly generation of Czech voice files.

It has a higher completion state than some of the others we're already generating.
tools/builds.pm [diff]
Solomon Peachy
2024-06-23 d117debca9: voice: Don't touch the voice pool file when we reference it.

...With over 14,000 pool files, it's silly.
tools/voice.pl [diff]
Solomon Peachy
2024-06-23 6319d71296: builds.pm: Add voices for the Piper TTS engine

This is only used by the nightly voice builds. Default remains espeak-ng.

Currently defined but disabled until their translation status improves:

Spanish (68%) Swedish (66%) Danish (62%) Estonian (19%)
tools/builds.pm [diff]
Solomon Peachy
2024-06-23 4ea3732bd7: Add ATA serial number to Disk info debug menu
apps/debug_menu.c [diff]
Vencislav Atanasov
2024-06-23 9c458bbb0d: Use literal ATA serial number for USB SN descriptor if the string is printable
firmware/usbstack/usb_core.c [diff]
Vencislav Atanasov
2024-06-23 9fda39d1ad: Prevent using PP-based iPods' set_serial_descriptor on S5L87xx-based ones

On PortalPlayer iPods, it looks like the serial number is available in a specific memory location. When adding support for Samsung S5L87xx-based iPods, this algorithm has not been limited to PP-only, so it sets the serial number USB descriptor to random memory data. With this change, it will use the ATA HDD serial number on iPod 6G. On Nano 2G it won't provide a serial number at all.
firmware/usbstack/usb_core.c [diff]
Vencislav Atanasov
2024-06-22 a1c526f35f: lua: Fix Windows Simulator build.

(Basically, use the OS-provided gmtime() instead. It's pulled in via another header we need..)
apps/plugins/lua/rockaux.c [diff]
Solomon Peachy
2024-06-22 231797dfa8: mikmod: use -DMIKMOD_STATIC to make building under windows happier
apps/plugins/mikmod/mikmod.make [diff]
Solomon Peachy
2024-06-22 fa6b6b6c2d: talk: Don't kill the talk engine after voicing the "invalid voice" clip

Unfortunately, this brings us back to the "Default" behavior of simply not voicing talk clips at all if there's no voice file.
apps/talk.c [diff]
Solomon Peachy
2024-06-21 bb12746972: voice: Make sure we always copy INVALID_VOICE and LANG_NAME clips

If they were in the pool, they'd not be copied out.
tools/voice.pl [diff]
Solomon Peachy
2024-06-21 eb8f6e578e: libspeex: Fix up two build regressions in 547b6a570

Broke rbspeex build if we weren't using system libspeex
lib/rbcodec/codecs/libspeex/resample.c [diff]
lib/rbcodec/codecs/libspeex/speex_header.c [diff]
Solomon Peachy
2024-06-21 bd2f5760ab: updatelang: More special VOICE_LANG_NAME handling.

If someone submits an incomplete translation without a VOICE_LANG_NAME, it will add the phrase but with a blank string. In subsequent runs, the blank string will be treated as an error.. and copied from English.

Make it so that if it is blank, it stays blank.
tools/updatelang [diff]
Solomon Peachy
2024-06-21 80cd799925: voice: If $POOL is not set, use <build-dir>/voice-pool by default

It will _vastly_ speed up repeated voice builds.

The voice pool directory will not be erased by a 'make clean'
tools/configure [diff]
tools/root.make [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-06-20 f58c15440f: build: 'make clean' should remove generated talk clips too
tools/root.make [diff]
Solomon Peachy
2024-06-20 e100daf343: voice: Voiced strings for INVALID_VOICE and LANGUAGE_NAME

* Voice generation script will create standalone .talk clips
* These talk clips will be included in the rockbox .zip file
* All .voice files will be included in the rockbox .zip file
* Added LANGUAGE_NAME for all languages in the nightly builds

This way, any voice pack installed will give you a the langauge voiced in the browser, and if the voice file fails to load you will get a natively translated error message.
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/turkce.lang [diff]
tools/buildzip.pl [diff]
tools/updatelang [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-06-20 8cb8a30f9d: [Feature] talk.c allow Invalid voice files for selected language

(if it exists)
apps/talk.c [diff]
William Wilgus
2024-06-20 b4668e2bd6: libc: Check for a null string argument in *printf

If we are passed a null string argument, use the fixed string "(null)" instead.
firmware/common/vuprintf.c [diff]
Solomon Peachy
2024-06-20 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!
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
2024-06-20 4d0d41a0f4: [Cleanup] abrepeat.c

ab_repeat_init() doesn't do anything and some of the checks are redundant
apps/abrepeat.c [diff]
apps/abrepeat.h [diff]
apps/gui/wps.c [diff]
William Wilgus
2024-06-20 547b6a570d: codecs: Update libspeex from 1.2beta3 to 1.2rc1

This is a relatively minor bump, but it's the first step towards bringing this current.
lib/rbcodec/codecs/libspeex/COPYING [diff]
lib/rbcodec/codecs/libspeex/README.rockbox [diff]
lib/rbcodec/codecs/libspeex/arch.h [diff]
lib/rbcodec/codecs/libspeex/bits.c [diff]
lib/rbcodec/codecs/libspeex/config-speex.h [diff]
lib/rbcodec/codecs/libspeex/fftwrap.c [diff]
lib/rbcodec/codecs/libspeex/filters_arm4.h [diff]
lib/rbcodec/codecs/libspeex/fixed_debug.h [diff]
lib/rbcodec/codecs/libspeex/fixed_generic.h [diff]
lib/rbcodec/codecs/libspeex/jitter.c [diff]
lib/rbcodec/codecs/libspeex/mdf.c [diff]
lib/rbcodec/codecs/libspeex/modes.c [diff]
lib/rbcodec/codecs/libspeex/modes_wb.c [diff]
lib/rbcodec/codecs/libspeex/preprocess.c [diff]
lib/rbcodec/codecs/libspeex/quant_lsp_bfin.h [diff]
lib/rbcodec/codecs/libspeex/resample.c [diff]
lib/rbcodec/codecs/libspeex/resample_sse.h [new]
lib/rbcodec/codecs/libspeex/speex.c [diff]
lib/rbcodec/codecs/libspeex/speex_callbacks.c [diff]
lib/rbcodec/codecs/libspeex/speex_header.c [diff]
lib/rbcodec/codecs/libspeex/stereo.c [diff]
Solomon Peachy
2024-06-19 8ef20383b1: sims.pl: Skip over 'obsolete' targets
tools/release/sims.pl [diff]
Solomon Peachy
2024-06-19 637f93074e: tools: Clean out some historical cruft from 'sims.pl'

It's intended to build all of the Windows Simulator builds in one fell swoop but has bitrotten a bit. Correct some of the glaring problems.
tools/release/sims.pl [diff]
Solomon Peachy
2024-06-19 204551444e: [Cleanup] viewport.c

hopefully the order of the events enable / disable don't matter as far as I can tell it doesn't
apps/gui/viewport.c [diff]
William Wilgus
2024-06-19 6f4d0b7eb1: m4a: Fix a warning under GCC 8.

...Not sure why this just cropped up now.
lib/rbcodec/codecs/libm4a/m4a.c [diff]
Solomon Peachy
2024-06-19 2ef10ec734: Fix typo in the previous commit
tools/configure [diff]
Solomon Peachy
2024-06-19 9beca004b9: simulator: Hopefully fix red introduced in 5b61c79cf

This problem only happened with GCC7 (and older?) simulator builds, and was introduced by an incorrect test that always stripped our default optimization (-Os) in simulator builds.

The fix is to correct the test to only strip -Os if the user explicitly enables a debug build.

Also, use -Og instead of (implicit) -O0, as per GCC recommendations.
tools/configure [diff]
Solomon Peachy
2024-06-19 b3e6b12266: Prevent rebooting in early USB mode in case of a RAM disk

If disk_mount_all() fails at startup, the device should enter USB mode, so the storage can be repartitioned/reformatted. After unmounting/ejecting, the device is rebooted. Unfortunately if the storage is a RAM disk, the data won't persist after a reboot, so this patch tries to mount the storage again, instead of just rebooting.
apps/main.c [diff]
Vencislav Atanasov
2024-06-19 e80cf93b67: Codecs: debugging: Disable compiler optimizations when DEBUG is defined
lib/rbcodec/codecs/codecs.make [diff]
Roman Artiukhin
2024-06-19 5b61c79cf8: simulator: debugging: Disable -Os compiler optimizations when DEBUG is defined

Otherwise, breakpoints may not correspond with the source code
tools/configure [diff]
Roman Artiukhin
2024-06-18 eb2146d683: plugins: add lang_is_rtl() to the plugin API.

So plugins can put stuff in the correct order, if they care.
apps/plugin.c [diff]
apps/plugin.h [diff]
Solomon Peachy
2024-06-18 57b3d2ffb1: FS #13358: Fix sansapatcher build against musl libc
utils/sansapatcher/sansaio.h [diff]
Solomon Peachy
2024-06-18 70c5d6239e: [Feature] splash.h split too long strings to multiple lines

If no split tokens are found the string just goes off into space

instead shoten the string till it fits and continue on with the remaining string
apps/gui/splash.c [diff]
William Wilgus
2024-06-18 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
apps/plugins/plugins.make [diff]
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/lib/libcodec.make [diff]
tools/configure [diff]
Solomon Peachy
2024-06-16 7b12cc3927: pathfuncs.c remove strip_leading_separators()

This should actually be strip_extra_leading_separators() but its not used anywhere else yet and I don't see enough callers in core to make it worth the extra overhead
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
William Wilgus
2024-06-14 ae25a425b6: ATA: Fix regression when trying to set power management mode with CF cards

Some CF cards claim to support Advanced Power Management, but error out when the command is issued. There is a special case in the code that ignored errors when issuing the APM command, but was referenced against a specific index in the feature table.

When the tagle was reorganized, the index was wrong depending on if ATA_DMA was enabled or not.

The fix is to test against the specific subcommand ID instead of the table index.
firmware/drivers/ata.c [diff]
Solomon Peachy
2024-06-14 de4a08f319: [Bugfix] filetree.c ft_assemble_path() absolute currdir

path_append throws away the basepath if currdir starts with a slash I thought I had this fixed but it was just getting covered up

instead step past all the slashes and use that for our append dir
apps/filetree.c [diff]
William Wilgus
2024-06-13 935fb736e8: [FixRed] tagcache.c

I think this should be APPLICATION for hosted
apps/tagcache.c [diff]
William Wilgus
2024-06-13 633b06dcfe: [Bugfix] tagcache.c reverse conditional for native targets
apps/tagcache.c [diff]
William Wilgus
2024-06-11 4d9c7e2063: Improve the "No partition found" behavior.

(This is a different implementation of the fix in g#5726, by Vencislav Atanasov)

The core problem is that the user is prompted to insert a USB cable to fix the partitioning etc but the code that monitors for USB insertion hasn't been started yet. Correct this.

If no USB support is present, reboot after 5 seconds if it's not a debug build.

If USB support is present, want for insertion first, then do the reboot-if-not-debug behavior.
apps/main.c [diff]
Solomon Peachy
2024-06-11 ec23260fd1: mikmod: Settings names should _NOT_ be i18n'd.

Regression was introduced back in 2019 in 2ebb8da275
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/text_viewer/tv_menu.c [diff]
Solomon Peachy
2024-06-11 11c70c6164: MAINTAINERS: Add our German translation maintiner
docs/MAINTAINERS [diff]
Solomon Peachy
2024-06-11 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
apps/plugins/text_viewer/text_viewer.c [diff]
apps/plugins/text_viewer/tv_action.c [diff]
apps/plugins/text_viewer/tv_bookmark.c [diff]
apps/plugins/text_viewer/tv_display.c [diff]
apps/plugins/text_viewer/tv_menu.c [diff]
apps/plugins/text_viewer/tv_pager.c [diff]
Solomon Peachy
2024-06-09 8c6b579b32: FS #13435: Update Polish Translation (Adam Rak)

...Also list Adam as the Polish language maintainer
apps/lang/polski.lang [diff]
docs/MAINTAINERS [diff]
Solomon Peachy
2024-06-09 8259c12a2f: docs: Update MAINTAINERS file to add a "this is pretty out of date" blurb

List myself as the active maintainer of a few more pieces
docs/MAINTAINERS [diff]
Solomon Peachy
2024-06-08 b222e909d4: lang: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2024-06-08 810e337a87: xduoox3: It doesn't have a radio, so don't put that in APPEXTRA
tools/configure [diff]
Solomon Peachy
2024-06-07 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.
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
2024-06-07 20f50bbca3: plugins: mikmod and chessbox weren't fully translated

This unfortunately required adding four more strings.
apps/lang/english.lang [diff]
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
2024-06-07 92b5255106: lang: Add a few more items to the "ignore if same as English" list
tools/langignorelist.txt [diff]
Solomon Peachy
2024-06-07 b9e6e67962: voice: Switch default piper voice for Italian
tools/voice.pl [diff]
Solomon Peachy
2024-06-07 3b9d804bdf: [coverity] playlist.c format_track_path() guard NULL pointers
apps/playlist.c [diff]
William Wilgus
2024-06-07 4829c2c894: [coverity] settings.c int_to_string() string_to_int() guard NULL deref
apps/settings.c [diff]
William Wilgus
2024-06-06 dbdcd8425a: [coverity] tagtree.c tagtree_exit() ensure dirlevel is within bounds

max I could get was 5 with the default tagnav cfg but we allow user code too so might be possible to exceed the depth
apps/tagtree.c [diff]
William Wilgus
2024-06-06 f9b15d951c: [coverity] folder_select.c find_from_filename() guard against NULL

its pretty doubtful you wouldn't find a slash in a folder path
apps/gui/folder_select.c [diff]
William Wilgus
2024-06-06 c6473f4e7f: [Fix Yellow] imx233_debug fix yellow
firmware/target/arm/imx233/debug-imx233.c [diff]
William Wilgus
2024-06-05 c96d728d81: [coverity] debug-imx233.c dbg_hw_info_audio() use strlcat, fix snprintf call

technically this isn't currently causing any issue but coverity correctly identified the potential for buffer ovfl
firmware/target/arm/imx233/debug-imx233.c [diff]
William Wilgus
2024-06-05 d68c314cea: [coverity] vuprintf.c format_double_radix() initialize data struct

it appears this is false positive but its compliaining about the uninitialized pointer, not a bad idea to initialize pointers to NULL anyway
firmware/common/vuprintf.c [diff]
William Wilgus
2024-06-05 e54dedd8df: [coverity] fat.c fatlong_parse_entry() buffer overrun, fix warning basisname

BYTES2INT16() uses [i + 0] and [i + 1] therefore 30 is the max element available in the raw byte array of size 32

(((uint32_t)array[pos+0] << 0) | \
((uint32_t)array[pos+1] << 8))

struct /* raw byte array */
{ uint8_t data[32];
};

basisname is only uninitialized in the . and .. dir entries both are likely false positives but cheap enough to guard against
firmware/drivers/fat.c [diff]
William Wilgus
2024-06-05 74552d5404: [coverity] RFC ata-imx31.c UDMA mode timing tables out of bounds reads

mode only goes 0-4 the original commit mixed up the index and mode bad stuff must happen but its been here for 16 years
firmware/target/arm/imx31/ata-imx31.c [diff]
William Wilgus
2024-06-04 2109d524e8: samsung yp-r0: Fix displaying non-Latin filenames on SD card

Supply iocharset=utf8 mount option. Otherwise, cyrillic symbols appear as question marks.
firmware/target/hosted/samsungypr/ypr0/system-ypr0.c [diff]
Roman Artiukhin
2024-06-04 fb39d852b0: [coverity] tagtree.c tagtree_enter selected_item_history guard against overrun
apps/tagtree.c [diff]
William Wilgus
2024-06-04 1b7d35126b: [coverity] playlist.c pl_save_update_control fix rest of potential fd leaks
apps/playlist.c [diff]
William Wilgus
2024-06-04 dad01f29ff: [coverity] multiboot.c write_bootdata_ fix memset size

the payload arg was swapped with the size arg
firmware/common/multiboot.c [diff]
William Wilgus
2024-06-03 afba86f0f7: [coverity] playlist.c pl_save_update_control() close fd on error
apps/playlist.c [diff]
William Wilgus
2024-06-03 283f31dd39: [coverity] language.c lang_load() check bytes read for headers
apps/language.c [diff]
William Wilgus
2024-06-03 ce6fbe4382: [coverity] cuesheet.c search_for_cursheet() if no dot strcpy to NULL

the logic here is a bit fuzzy to me maybe one of the copies to the cuepath buffer adds a dot but I don't see anything explicit
apps/cuesheet.c [diff]
William Wilgus
2024-06-03 f4a044e561: [coverity] playlist.c get_track_filename() uninitialized buffer

format_track_path() uses path_append_ex() which might use strlen on the existing buffer likely a false positive but cheap enough to guard against
apps/playlist.c [diff]
William Wilgus
2024-06-03 2903a8e8ac: [coverity] tlsf.c tlsf_malloc guard against empty mempool

on error mp could still be NULL
lib/tlsf/src/tlsf.c [diff]
William Wilgus
2024-06-02 82dcf32736: [BugFix] headphone should be removed on first toggle
firmware/target/hosted/sdl/button-sdl.c [diff]
William Wilgus
2024-06-02 31ae252dcc: [BugFix] Resume on headphone plug causes screen glitches
apps/misc.c [diff]
William Wilgus
2024-06-02 bbdba53413: [coverity] bookmark.c fix add_bookmark & false positive in remove_bookmark
apps/bookmark.c [diff]
William Wilgus
2024-06-02 2e60316500: [coverity] skin_parser.c load_skin_bitmaps check buffer length for bm_data
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2024-06-02 5c7fbe8f1b: [coverity] tree.c set_current_file_ex explicitly check strrchr output

the math size_t endpos = filename - path; if (filename && endpos < MAX_PATH - 1) should handle it just fine coverity doesn't think so
apps/tree.c [diff]
William Wilgus
2024-06-02 cc67f420f2: [coverity] font.c load_cache_entry check for successful read
firmware/font.c [diff]
William Wilgus
2024-06-01 5d34887d4a: voice: regression: Don't mangle the filename when spelling it out.

26c612f breaks file selections if you have filename extensions disabled and filenames spelled out, because it modified the filename in place breaking the caller.

Instead of using a lot of space to make a private copy, the simplest approach is, if we strip the extension off, simply restore it afterwards.
apps/tree.c [diff]
Solomon Peachy
2024-06-01 e16230de8c: FS #13433: Updated German Translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
2024-06-01 bcd34cfaa7: playlist catalogue (etc.): prune context menu

"Create Directory" option not applicable in browse filter modes, since directories do not get displayed
apps/onplay.c [diff]
Christian Soffke
2024-06-01 507fa214a8: Fix red in 3d7d1d4d
apps/plugins/lib/SOURCES [diff]
Christian Soffke
2024-06-01 3d7d1d4d5b: plugins: properties: show track info for whole playlist

Track Info can now be displayed for the set of all tracks contained in a playlist. This lets you calculate a playlist's length, for example, even if it is not currently playing.

This functionality can be accessed from the existing "Properties" screen for a selected playlist file. A line has been added at the very bottom to show Track Info.
apps/misc.c [diff]
apps/misc.h [diff]
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/properties.c [diff]
apps/tagtree.c [diff]
Christian Soffke
2024-06-01 ef1e7d8896: bookmarks: show 'Create Bookmark' for unsaved playlists

Instead of hiding this option when the current playlist is unsaved, we can offer to save the playlist, if necessary, before attempting to create a bookmark.

This simplifies the workflow by getting rid of steps 1 and 2 that a user currently needs to perform:

1) Open context menu, check if "Create Bookmark" option is available 2) If not: Re-open context menu. Select Current Playlist
-> Save Current Playlist 3) Re-open context menu. Select Bookmarks
-> Create Bookmark
apps/bookmark.c [diff]
apps/onplay.c [diff]
manual/configure_rockbox/bookmarking.tex [diff]
manual/main_menu/main.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Christian Soffke
2024-06-01 d1aeb7db9d: [Coverity] playback.c audio_auto_change_frequency check for valid id3
apps/playback.c [diff]
William Wilgus
2024-05-31 eaeaac598d: FS #13431: Provide a way to view the rockbox license in the menus

This adds a "Legal Notices" entry under the System menu that will launch the text viewer plugin to display:

1) COPYING.txt (containing the GPLv2 overall license for Rockbox) 2) LICENSES.txt (containing all other relevant licenses and notices)
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/menus/main_menu.c [diff]
Solomon Peachy
2024-05-31 d22dbe74cb: updatelang: '~' is not a legal character in dest or voice strings

...Unless it's the very first character (and will get stripped).

So detect and complain about this!
tools/updatelang [diff]
Solomon Peachy
2024-05-31 f0c1cf1eef: Update US English "Translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2024-05-30 09e01c89a7: FS #13430: Updated German translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
2024-05-30 aca41be3ca: [Feature] Simulator add headphone and lineout toggling
firmware/target/hosted/sdl/button-sdl.c [diff]
uisimulator/common/sim_tasks.c [diff]
uisimulator/common/sim_tasks.h [diff]
uisimulator/common/stubs.c [diff]
William Wilgus
2024-05-30 7ec1151ddd: [BugFix] add button maps for iPod6GSim
uisimulator/buttonmap/ipod.c [diff]
William Wilgus
2024-05-26 3a60f3a0f7: better Cyrillic for 14-Rockbox-Mix
fonts/14-Rockbox-Mix.bdf [diff]
fonts/COPYING [diff]
Andrey Maluy
2024-05-26 e72bae7c3f: [Superdom] Bugfix

Prevents the plugin from locking up on the highest difficulty level
apps/plugins/superdom.c [diff]
Franklin Wei
2024-05-25 4e54443dc9: manual: Document the fact that checkwps can validate %Sx theme tags
manual/appendix/wps_tags.tex [diff]
Solomon Peachy
2024-05-25 8b8c0c7c2a: checkwps: Validate translated strings (%Sx)

In verbose mode it will log valid the strings found, otherwise it will only complain when we encounter a missing string.

Unfortunately a missing string is not inherently a problem, due to conditional expressions. So all we can do is complain in checkwps or if wps debugging is turned on.

Meanwhile, this is the first step in actually enumerating the translated strings used by themes.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/lang/english.lang [diff]
firmware/export/button.h [diff]
firmware/export/config.h [diff]
tools/checkwps/SOURCES [diff]
tools/checkwps/checkwps.c [diff]
tools/checkwps/checkwps.make [diff]
tools/configure [diff]
Solomon Peachy
2024-05-24 ac20f8a73c: lang: Delete 12 unused strings
apps/bookmark.c [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
Solomon Peachy
2024-05-24 5dd9238004: Fix yellow in sim builds
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
2024-05-24 8825b33052: skin_debug: Don't segfault when dump a viewport with no children
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
2024-05-22 2dc6947a2d: lang: Get rid of *unused* LANG_EQUALIZER_EDIT_MODE and all deprecated strings

The documentation says to not delete things but that dates back to when we were a lot laxer in what we would accept at runtime.

I want to make things even stricter, and add a checksum or hash of the string IDs, so that *any* change to the base language invalidates translation and voice binaries at runtime.
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
Solomon Peachy
2024-05-20 62da4ad84b: voice: Correct all uses of spashf() with an ID2P() argument

...Instead voice the string and all of the arguments manually.
apps/playlist_catalog.c [diff]
apps/plugins/vbrfix.c [diff]
apps/tagtree.c [diff]
Solomon Peachy
2024-05-20 dfe409c993: voice: Revert one of the changes made in b6053c4d54

We already voiced the full text displayed in that splash message.
apps/alarm_menu.c [diff]
Solomon Peachy
2024-05-18 27cb1abcec: builds: Add disabled voice builds for Spanish, Estonian, and Czech

Including default voice selections

Note that piper does not have an Estonian voice option yet.
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-05-17 76de880ee0: lang: Replace "DAC's" with "DAC" in English source.

Fix up the translations afterwards
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/romaneste.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/svenska.lang [diff]
apps/lang/turkce.lang [diff]
apps/lang/vlaams.lang [diff]
Solomon Peachy
2024-05-17 8b1efab7a6: voice-corrections: move generic corrections to the END and document why

This is because a language may have a specific correction that should take precedence over the global one, but if the global one is applied first, then the language-specific correction gets skipped.
tools/voice-corrections.txt [diff]
Solomon Peachy
2024-05-17 6c2f8f640f: genlang: Strip _all_ leading '~' from dest/voice strings

(Instead of just the first)
tools/genlang [diff]
Solomon Peachy
2024-05-17 1530bb4849: voice-corrections: Correct an error in English and sort languages alphabetically

('ADC' was being converted to 'A C C' for some reason..)
tools/voice-corrections.txt [diff]
Solomon Peachy
2024-05-17 c615a02ee3: updatelang: Improve tests for illegal characters
tools/updatelang [diff]
Solomon Peachy
2024-05-17 b9755a3085: A handful of language cleanups
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/turkce.lang [diff]
Solomon Peachy
2024-05-17 eb71060e96: lang: Run the master English language file through a cleanup pass

Do a cleanup pass on english-US too.
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/screens.c [diff]
Solomon Peachy
2024-05-17 3a6ed727d4: lang: Add a special flag to differentiate "intentionally identical to english"

We normally treat "same as English" as a translation errors that needs to be corrected. However, many languages effectively use english words as-is, so we need a way of distinguishing the "intentionally the same" situations with our tools "automatically copying missing translated strings from English" to avoid blank or missing UI strings.

The solution is to make sure these "intentionally same as english" strings are actually different. This will be accomplished by prepending
'~' to the these strings. This special character is stripped from the binary data files used by the player and the voice generation tools.
tools/genlang [diff]
tools/updatelang [diff]
Solomon Peachy
2024-05-13 9d3b012ac0: [BugFix, Asan] skin_tokens.c get_dir path name underrun

preventing multiple slashes reads prior to the buffer by 1 byte when only a single slash exists
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
2024-05-13 556b466f05: shortcuts: allow empty name for sleep shortcuts with default duration

missed this in f631bfe
apps/shortcuts.c [diff]
Christian Soffke
2024-05-13 b94e5d77fe: Update English_US "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2024-05-13 08c35a2299: FS #13422: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-05-13 fdba79cd77: shortcuts: refactor sleeptimer / talk_timedate

move some functions around, with no effect on behavior
apps/menus/settings_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/shortcuts.c [diff]
Christian Soffke
2024-05-13 8eeef333a1: shortcuts: add 'reboot' type

Enabled by d55dcef
apps/shortcuts.c [diff]
apps/shortcuts.h [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
2024-05-13 f631bfe5b4: shortcuts: sleep timer: allow omitting number of minutes

'sleep' can now appear in the data field of a 'time' shortcut without being followed by a number, allowing you to stop a running timer, or to start a new one using the default sleep timer duration (the duration setting can already be added to the Shortcuts menu as well).

Also see here: https://forums.rockbox.org/index.php/topic,54312.msg250940.html
apps/menus/settings_menu.c [diff]
apps/shortcuts.c [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
2024-05-13 b8b4fdd999: shortcuts: voice fixes

- current time wasn't spoken
- 'sleep' shortcuts were voiced as "Time & Date"
- selected item wasn't spoken when returning from Delete confirmation dialog
apps/shortcuts.c [diff]
Christian Soffke
2024-05-13 51a5123f5e: shortcuts: 'browse' type: fix ignored name field

see https://forums.rockbox.org/index.php/topic,54619.0.html
apps/shortcuts.c [diff]
Christian Soffke
2024-05-13 b6053c4d54: voice: Fix a handful of non-voiced splash messages
apps/alarm_menu.c [diff]
apps/debug_menu.c [diff]
apps/onplay.c [diff]
apps/shortcuts.c [diff]
Solomon Peachy
2024-05-13 0bfc5d8d99: voice: Switch default piper voice for english-us

The original one was picked at random; while I personally find it pleasing, it's soft spoken and doesn't work well when voicing over already-playing music.
tools/voice.pl [diff]
Solomon Peachy
2024-05-12 cc45e4d88d: Really fix yellow this time
apps/settings_list.c [diff]
Aidan MacDonald
2024-05-12 2061448341: Fix yellow in 5f377c2613b5
apps/settings_list.c [diff]
Aidan MacDonald
2024-05-12 5f377c2613: Eros Q Native: Add Stereo SW behavior setting

Hopefully this should cover our bases so we can change the behavior of the stereo switch to keep line out working when they change the hardware on us!
apps/lang/english.lang [diff]
apps/menus/sound_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/drivers/audio/eros_qn_codec.c [diff]
manual/configure_rockbox/sound_settings.tex [diff]
Dana Conrad
2024-05-10 d0758c5330: builds: Add 'erosqnative' to the 'unstable' build list

This will add it to the nightly builds, and add voice etc generation
tools/builds.pm [diff]
Solomon Peachy
2024-05-09 4128a1fe48: [Bugfix/Feature] OpenPlugin and default plugins

selecting files to run is nice and all but you might not like the plugin you can edit it OpenPlugin Viewer Plugin but instead pop it when you add a file to reduce suprises

shortcut viewer is not ready for this so exclude it for now

adds: default plugin (if any) is selected in the open with dialog
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/open_plugin.c [diff]
William Wilgus
2024-05-09 6e82897bfc: make: Update help text
tools/root.make [diff]
Solomon Peachy
2024-05-09 54389dcf2f: configure: fix test for LD version on non-macos systems
tools/configure [diff]
Solomon Peachy
2024-05-09 e37cd0f2f5: x1000: Enable NOCROSSREFS_TO()

Start enforcing the correctness of references to the .init section.
firmware/target/mips/ingenic_x1000/app.lds [diff]
Aidan MacDonald
2024-05-09 1957237a46: Fix red in 8c86fb6da0 (ipod5g only)
apps/plugins/pacbox/pacbox_arm.S [diff]
firmware/target/arm/ipod/video/lcd-as-video.S [diff]
Solomon Peachy
2024-05-09 8c86fb6da0: arm: Use -masm-syntax-unified when compiling with gcc8 or newer

Annoyingly, this makes all of the '.S' files we compile get treated as divided syntax, so we need to make the syntax in them explicit.
apps/plugins/mpegplayer/libmpeg2/idct_arm.S [diff]
apps/plugins/mpegplayer/libmpeg2/idct_armv6.S [diff]
apps/recorder/jpeg_idct_arm.S [diff]
firmware/asm/arm/lcd-as-memframe.S [diff]
firmware/asm/arm/memcpy.S [diff]
firmware/asm/arm/memmove.S [diff]
firmware/asm/arm/memset.S [diff]
firmware/asm/arm/memset16.S [diff]
firmware/export/config.h [diff]
firmware/target/arm/ata-as-arm.S [diff]
lib/arm_support/support-arm.S [diff]
lib/rbcodec/codecs/demac/libdemac/udiv32_arm.S [diff]
lib/rbcodec/codecs/libtta/filter_arm.S [diff]
lib/rbcodec/dsp/dsp_arm.S [diff]
lib/rbcodec/dsp/dsp_arm_v6.S [diff]
lib/unwarminder/safe_read.S [diff]
tools/configure [diff]
Solomon Peachy
2024-05-08 0a89d1d4df: Fix a typo in English
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/norsk.lang [diff]
Solomon Peachy
2024-05-07 6bb6c20479: voice: Don't generate talkclips for directories with 'talkclip.ignore'

Add one of these to the .rockbox directory
tools/buildzip.pl [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-05-07 64e4f81ffc: voice: Properly handle UTF8-encoded filenames when generating talkclips

Eg this was happening before:

'11 - Breña.mp3' --> '11 - Breña.mp3'

As well as resulting in incorrect voicing, it was breaking the encoding of the .wav to .talk.
tools/voice.pl [diff]
Solomon Peachy
2024-05-06 3348d84206: open_plugins Fix Yellow
apps/plugins/open_plugins.c [diff]
William Wilgus
2024-05-06 ee840709d3: [Feature] Open plugins now recognizes known filetypes and can run them

now you can run your lua files without having to add the viewer to the shortcut or if you want a bmp file to be displayed when you start the device that can be done as well
apps/filetree.c [diff]
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/open_plugin.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
2024-05-06 30482bd908: [BugFix] Radio make sure resume frequency is in range

out of range frequencies hang the device (clip zip, others?)
apps/radio/radio.c [diff]
William Wilgus
2024-05-05 1189006a4b: Update .gitignore
.gitignore [diff]
Solomon Peachy
2024-05-05 f55483a966: lua --remove files moved to include directory
apps/plugins/lua_scripts.lua [deleted]
apps/plugins/lua_scripts/dbgettags.lua [deleted]
apps/plugins/lua_scripts/filebrowse.lua [deleted]
apps/plugins/lua_scripts/fileviewers.lua [deleted]
William Wilgus
2024-05-05 c34076b2a5: Theme Editor: Make it compile with modern toolchains
utils/themeeditor/quazip/crypt.h [diff]
utils/themeeditor/quazip/unzip.c [diff]
utils/themeeditor/quazip/zip.c [diff]
Solomon Peachy
2024-05-05 d7c541742f: Allow first level folders in plugin menu

add sorting directories as files move picross files to a hidden folder

use directory for lua_scripts, sgt_puzzles

make plugin browser able to handle 1st level directories
apps/filetree.c [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lua/include_lua/dbgettags.lua [new]
apps/plugins/lua/include_lua/filebrowse.lua [new]
apps/plugins/lua/include_lua/fileviewers.lua [new]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua_scripts/lua_scripts.lua [new]
apps/plugins/lua_scripts/lua_scripts.make [diff]
apps/plugins/picross.lua [diff]
apps/plugins/picross/picross.make [diff]
apps/settings.h [diff]
apps/tree.c [diff]
tools/buildzip.pl [diff]
William Wilgus
2024-05-02 efcea66280: Revert "readdir_r use in tagcache.check_dir, ft_load"

This reverts commit 0c737d3b2e4728347cf4d52025f9fc2ebbee6e90.

Reason for revert: Not really a concern as open_stream returns an independent buffer since g#566
apps/filetree.c [diff]
apps/tagcache.c [diff]
firmware/common/dir.c [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/hosted/filesystem-app.h [diff]
uisimulator/common/filesystem-sim.c [diff]
uisimulator/common/filesystem-sim.h [diff]
William Wilgus
2024-05-02 0c737d3b2e: readdir_r use in tagcache.check_dir, ft_load
apps/filetree.c [diff]
apps/tagcache.c [diff]
firmware/common/dir.c [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/hosted/filesystem-app.h [diff]
uisimulator/common/filesystem-sim.c [diff]
uisimulator/common/filesystem-sim.h [diff]
William Wilgus
2024-05-02 f2f5543856: Minor mechanical corrections to the Serbian translation

Just silencing some warnings that prevented 100% completion status.
apps/lang/srpski.lang [diff]
Solomon Peachy
2024-05-02 edb32a022d: FS #13421: Update Serbian translation (Ivan Pesic)
apps/lang/srpski.lang [diff]
Solomon Peachy
2024-05-02 8ad2512a02: FS #12549: Improve manual with respect to shortcut talkclips
manual/main_menu/main.tex [diff]
Solomon Peachy
2024-05-01 2ba12c1674: trnslation: Fix minor errors in the Dutch and Italian translations
apps/lang/italiano.lang [diff]
apps/lang/nederlands.lang [diff]
Solomon Peachy
2024-05-01 b32266b7db: updatelang: Avoid some runtime warnings

...And add '"' to the suspicious character list
tools/updatelang [diff]
Solomon Peachy
2024-05-01 67f61e1e13: Minor fix for the Turkish translation

...Quotes (") are not legal characters in a string
apps/lang/turkce.lang [diff]
Solomon Peachy
2024-05-01 69828c36a8: FS #13419: Updated Turkish translation (Eren Akpolat)
apps/lang/turkce.lang [diff]
Solomon Peachy
2024-05-01 0c0b1b1a6b: updatelang: Sanity-check the translated LANG_VOICED_DATE_FORMAT

This must be *localized* not translated!
tools/updatelang [diff]
Solomon Peachy
2024-04-30 6485a489cf: FS #13418: Partial update of Turkish translation (Eren Akpolat)
apps/lang/turkce.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2024-04-30 34c6ee539f: updatelang: Include the old/incorrect format specifier in the error message
tools/updatelang [diff]
Solomon Peachy
2024-04-30 73a47a1b5e: updatelang: Make sure translated string has the correct format

We do this by parsing out the format specifiers and making sure the translation has the correct number, type, and order of specifiers. Percent literals ('%%') are ignored.

Mis-matched formats can lead to much badness, so to be safe, use the untranslated string instead and flag it as a problem on the translation site.
tools/updatelang [diff]
Solomon Peachy
2024-04-29 9fd4782c6a: updatelang: Complain about suspicious characters in voiced strings.

The main intent is to catch printf() format specifiers (ie '%')
tools/updatelang [diff]
Solomon Peachy
2024-04-29 bf325de48e: FS #13417: Updated Dutch translation (Leander Lismond)
apps/lang/nederlands.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2024-04-29 65861c4d6f: FS #13416: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-04-29 7550ed3df7: FS #13415 Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2024-04-28 6fccac3f44: lua extend stars demo plugin

extend the stars demo plugin with hit testing and more

draw_poly now returns the extent of the figure it drew

the sim doesn't strip debug info now

unnamed upvals will display "" instead of just ending the debug line

[Bugfix] fix make file name conflict for picross
apps/plugins/lua/include_lua/draw_poly.lua [diff]
apps/plugins/lua/lapi.c [diff]
apps/plugins/lua/luaconf.h [diff]
apps/plugins/lua_scripts/stars.lua [diff]
apps/plugins/picross/picross.make [diff]
William Wilgus
2024-04-28 2c7e47fc12: New plugin: Picross

Picross is a puzzle game also known as Picture Crossword, Nonograms, or Paint By Numbers. See http://en.wikipedia.org/wiki/Nonogram for information on how to play.

Update 1: nicer graphics with less images, fixed directory listing, changed how the board works to make a lot of math more sane

Update 2: added missing rb.yield to viewPicture loop

Update 3: you can now save a game in progress

Update 4: fixed a file pointer leak, improved the numbers font

Update 5: no images, use vector num draw library add zoom, freedraw -- Bilgus
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/picross.lua [new]
apps/plugins/picross/picross.make [new]
apps/plugins/picross/picross_default.picross [new]
apps/plugins/picross/rb.picross [new]
tools/buildzip.pl [diff]
Nathan Korth
2024-04-27 3ae48284c1: manual: update "Load to RAM" setting, Shortcuts
manual/main_menu/main.tex [diff]
manual/rockbox_interface/tagcache.tex [diff]
Christian Soffke
2024-04-27 0dd5df4060: [BugFix] tlsf get_new_area should return 0u or OOM
apps/plugins/lua/tlsf_helper.c [diff]
lib/tlsf/src/tlsf.c [diff]
William Wilgus
2024-04-26 26c612f6c0: FS #13348: Don't voice/spell out the file extension if it's not displayed

(This only applies if there is no talk clip for the file)
apps/tree.c [diff]
Solomon Peachy
2024-04-26 aa7357861a: ipod6g: Issue a FLUSH_CACHE[_EXT] command if device can't sleep.

Additionally, synchronize with the standard ATA driver's feature table

* Acoustic management set to quietest
* Set power mode to lowest w/o standby
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
2024-04-26 9a17185e63: ata: Enable volatile write cache (if device supports it)

Rejigger the options table a little for clarity
firmware/drivers/ata.c [diff]
Solomon Peachy
2024-04-26 8fb2cedc8e: coldfire: Fix bootloader builds on GCC8

(missing 'static' on an inline function definition)
bootloader/iaudio_coldfire.c [diff]
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
Solomon Peachy
2024-04-26 98971604c7: Correct one of the GCC14 warning workarounds

(Accidentally pushed an out-of-date commit)
lib/rbcodec/codecs/libopus/celt/celt_lpc.c [diff]
Solomon Peachy
2024-04-26 ba4b41663c: [Fix Red] Remove amaze plugin from lowmem targets
apps/plugins/SOURCES [diff]
manual/plugins/main.tex [diff]
William Wilgus
2024-04-25 1922ac1aac: Temporary fix for build warnings under GCC 14.0.1

...Both appear to be false positives, and will hopefully be resolved in a later GCC point release. I will periodically revisit this.
lib/rbcodec/codecs/libayumi/lzh.c [diff]
lib/rbcodec/codecs/libopus/celt/celt_lpc.c [diff]
Solomon Peachy
2024-04-25 04181bb832: Fix sim build error with GCC14.

This is a (thankfully harmless) long-standing callback prototype mismatch; I'm surprised this wasn't caught before!
apps/plugins/puzzles/rockbox.c [diff]
Solomon Peachy
2024-04-25 c718724a70: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2024-04-24 6efd7f8f3e: FS #8647: Amaze - 3D maze game plugin

- update to build against latest Git
- cleanup (whitespace, indentation)
- fixed old PLA handling
- update indentation/curly brace style
- improve load/save mechanism
- enable marking ground with "select" button
- add compass view
- improve display on 1-bit-targets (floor pattern)
- graphics update: add 3x3 and 5x5 tiles, rework 7x7 and 9x9 tiles, load tiles dependant of screen size
- fix: on some targets (Fuze+) division by 0 could occur. Fix by calculating the exact view depth on all targets.
- fix: duplicate error checks when saving prefs
- Fully translate it
- Add a simple manual entry (including screenshots for some platforms)
apps/lang/english.lang [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/amaze.c [new]
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/amaze_tiles_3.3x3x1.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_3.3x3x16.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_3.3x3x2.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_5.5x5x1.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_5.5x5x16.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_5.5x5x2.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_7.7x7x1.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_7.7x7x16.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_7.7x7x2.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_9.9x9x1.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_9.9x9x16.bmp [new]
apps/plugins/bitmaps/native/amaze_tiles_9.9x9x2.bmp [new]
docs/CREDITS [diff]
manual/plugins/amaze.tex [new]
manual/plugins/images/ss-amaze-128x160x24.png [new]
manual/plugins/images/ss-amaze-128x64x1.png [new]
manual/plugins/images/ss-amaze-138x110x2.png [new]
manual/plugins/images/ss-amaze-176x132x16.png [new]
manual/plugins/images/ss-amaze-240x320x24.png [new]
manual/plugins/images/ss-amaze-320x240x16.png [new]
manual/plugins/main.tex [diff]
Franklin Wei
2024-04-24 2dbf26f11a: FS13414: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-04-24 b501788629: manual: update browsing, playlists, bookmarking, ipod keymap
manual/configure_rockbox/bookmarking.tex [diff]
manual/main_menu/main.tex [diff]
manual/platform/keymap-ipod1g2g.tex [diff]
manual/platform/keymap-ipod3g.tex [diff]
manual/platform/keymap-ipod4g.tex [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
manual/rockbox_interface/wps.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2024-04-24 e8816552f6: Offer choice of default browsers

The database or playlist catalogue can now be set as the browser that is launched when pressing ACTION_WPS_BROWSE on the WPS, unless another browser has more recently been opened.

Previously you'd always have to exit the File Browser first, after the player had been restarted, which is annoying for users who prefer the database.

The playlist catalogue has become part of the MRU browser list, so pressing ACTION_WPS_BROWSE after selecting a track from a playlist in the playlist catalogue will now take you back there.

Settings menus have been slightly restructured.

- Eliminated "Set WPS Context Plugin" and "Hotkey" menus from the General menu

- Added "What's Playing Screen" menu in Settings-General with option for setting default browser. The "WPS Hotkey" and "WPS Context Plugin" menu options have been moved to this menu.

- "File Browser Hotkey" is now part of the File View menu, which means it is accessible from the browser's context menu as well.

Overview of resulting menu structure in Settings->General:

What's Playing Screen Default Browser WPS Hotkey Set WPS Context Plugin

File View
(...) File Browser Hotkey
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/root_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/file_view.tex [diff]
manual/configure_rockbox/hotkey_settings.tex [deleted]
manual/configure_rockbox/main.tex [diff]
manual/configure_rockbox/wps.tex [new]
manual/configure_rockbox/wps_context_plugin.tex [deleted]
manual/rockbox_interface/hotkeys.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Christian Soffke
2024-04-24 3ce3b102dd: Provide "quick" option for loading database into RAM

The directory cache and the database's Load to RAM feature each result in a much better user experience.

But, when both features are enabled at the same time, it can take a very long time on older players - easily several minutes for larger libraries - until all of the database's dircache references have been updated.

Include a 'Quick' option that causes the database to ignore dircache references which can *significantly* reduce disk activity after booting.
apps/lang/english.lang [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/tagcache.c [diff]
manual/rockbox_interface/tagcache.tex [diff]
Christian Soffke
2024-04-24 4a52147122: configure: strip '--voice' from the 'make reconf' option list to avoid dupes
tools/configure [diff]
Solomon Peachy
2024-04-23 0909c4fe3a: FS #13413: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-04-23 a5d75a5743: Russian translations update
apps/lang/russian.lang [diff]
Igor B. Poretsky
2024-04-23 1a60255633: Remove obsolute 'talkclips.py' script, voice.pl does it all and more
tools/talkclips.py [deleted]
Solomon Peachy
2024-04-23 446496c221: Have Repeat Shuffle turn on Shuffle

When "Repeat Shuffle" is enabled, it may make sense to visibly turn on the Shuffle setting once a playlist ends and starts from the beginning again.

This seems to fix a few issues:

- After (an unmodified) playlist has been shuffled, bookmarks now behave correctly in terms of restoring the playlist's shuffled state and using the correct resume index. This wasn't the case before. The alternative may be to set the playlist as modified once it is shuffled, to prevent creation of bookmarks from that point on.

- Lets you return to the un-shuffled state of the playlist at any point

- Icon makes it easy to tell if the "unmodified" playlist has been shuffled already, or not, which wasn't obvious before.
apps/playlist.c [diff]
Christian Soffke
2024-04-22 2905ba2f72: ipod6g: ata: Don't power down devices that can't handle it

...by checking to see if the mandatory ATA PM feature flag is set

The common CF->SD adapters don't report this.

TODO: When PM is not available, issue a CMD_FLUSH[_EXT] instead?
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
2024-04-22 4b423e21f6: pp5020: Use DMA Writes by default for SSDs

It is likely that these things accept data far faster than the spinning rust drives ever would, and while there is a question about PIO timings, DMA timings seem to be solid.
firmware/target/arm/pp/ata-pp5020.c [diff]
Solomon Peachy
2024-04-22 886060475e: ata: Heavily rework sleep and poweroff logic

* Use of ata_disk_can_poweroff() was inverted, resulting in SATA SSDs getting powered off but leaving _everything_ else on, including spinning rust!
* Replace the can_poweroff() heuristic with a test for the mandatory ATA power mgmt feature flag. Notably, the CF->SD adapters don't claim to support this!
* Eliminate duplicated tests in sleep code
* Wrap all poweroff-related code with HAVE_ATA_POWER_OFF
* Don't ever use SLEEP command, only STANDBY_IMMEDIATE
* Gate call to STANDBY_IMMEDIATE behind a can_poweroff() test
* Prefer FLUSH_CACHE_EXT to FLUSH_CACHE where available.
* Improve SSD detection heuristics to any of these:
* Explicltly identifies as SSD (covers newer CF and SATA)
* TRIM support
* CFA compliant AND (CF level 0 OR high speed support)
* Report SSD detection in debug menu
apps/debug_menu.c [diff]
firmware/drivers/ata.c [diff]
firmware/export/ata.h [diff]
Solomon Peachy
2024-04-22 6cbcde13b9: skin engine: Fix bug with touch region labeling

Auto-created regions associated with a progress bar did not have a label which could result in an out of bounds read when looking up touch regions by label. Fix by initializing the label to NULL.
apps/gui/skin_engine/skin_parser.c [diff]
Aidan MacDonald
2024-04-22 591a83a089: plugins: multiboot_select: Support touchscreen pointing mode

The plugin is menu based, so it should respect the global setting.
apps/plugins/multiboot_select.c [diff]
Aidan MacDonald
2024-04-22 306caa2754: touchscreen: Fix menu callbacks in touchscreen pointing mode

Touchscreen events get translated into standard actions only after the call to gui_synclist_do_button(). The menu callback doesn't get a chance to see the real action if it is called before do_button.

Moving the do_button call up could potentially break callbacks that want to intercept actions before they hit the list code. Therefore we need to manually handle touch events first, and pass the action to do_button afterward.

Fixes a bug where exiting a plugin in touchscreen point mode always goes to the games list because the callback wasn't invoked properly.
apps/menu.c [diff]
Aidan MacDonald
2024-04-22 fd4a10719d: apps: Move action_cur_t and action_last_t to action.c

These types are not needed outside action.c.
apps/action.c [diff]
apps/action.h [diff]
Aidan MacDonald
2024-04-21 7b1dd6b60a: RFC: Extend skin engine to handle EQ settings

EQ settings are actually an array of 3 ints. I added a skin parameter token that allows specifying which array element to use.

So instead of this now-incorrect syntax:

%St(0,0,-,-,image,eqbar.bmp,vertical,setting,eq band 1 gain)

You would use:

%St(0,0,-,-,image,eqbar.bmp,vertical,soffset,2,setting,eq peak filter 1)

(the 'gain' is the third element in the eq setting array, thus soffset 2)
apps/gui/option_select.c [diff]
apps/gui/option_select.h [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
manual/appendix/wps_tags.tex [diff]
Solomon Peachy
2024-04-21 e8a51569ad: voice: Add support for the Piper TTS engine

https://github.com/rhasspy/piper

High quality, offline, neural-network-based, with good language coverage

Note that you have to manually download the piper voice models, and set PIPER_MODEL_DIR appropriately. The configure script will let you choose from the available models and remember your choices.
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-04-21 418a5acea0: translations: Fix some broken strings in the Turkish translation

They had trailing tabs which broke the piper TTS engine
apps/lang/turkce.lang [diff]
Solomon Peachy
2024-04-21 06cf2f0da5: voice: touch re-used voice pool files so we know they're used.
tools/voice.pl [diff]
Solomon Peachy
2024-04-21 ea5ce8034b: Replace "Reload After Saving" with option to remove queued tracks

The "Reload After Saving" setting was added in g3347 (4f83e66) to solve FS #13287, by allowing you to bookmark a modified playlist after saving, without having to manually reload it first.

Since the rewrite of playlist_save in g5192
(90e3571), a modified playlist doesn't have to be reloaded anymore in order to be bookmarked after it's been saved, unless it contains queued tracks.

To cover the remaining use cases of the previously available option, Rockbox will now offer to remove any queued tracks from a playlist when saving it.
apps/filetree.c [diff]
apps/filetree.h [diff]
apps/iap/iap-lingo4.c [diff]
apps/lang/english.lang [diff]
apps/menus/playlist_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/playlist.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/bookmarking.tex [diff]
manual/configure_rockbox/playlist_options.tex [diff]
manual/main_menu/main.tex [diff]
manual/rockbox_interface/wps.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2024-04-20 e5c65a0039: ft_assemble_path: fix prematurely cut-off path

bug report at https://forums.rockbox.org/index.php/topic,54842.msg
apps/filetree.c [diff]
Christian Soffke
2024-04-18 123858287b: fix red rli_img

devices > 16 bit depth use a struct of values for the pixels this needs converted to use by functions expecting a single integer as a pixel value
apps/plugins/lua/rocklib_img.c [diff]
William Wilgus
2024-04-18 a6570b7d37: lua use lcd_drawline to draw lines inside rliimages

rewrite draw_text to use new viewport buffer

set_viewport now accepts rliimage to allowe interfacing with rb. functions

fix long standing 2-bit bug with text drawing in lua fix 2-bit img saving bug (i'm guessing just a one off, just enabled clipping)

fix font_getstringsize bug

fix shape of numbers draw_num.lua also add auto centering

add page scrolling to printtable

add a new demo script 'stars'
apps/plugins/lua/include_lua/draw_num.lua [diff]
apps/plugins/lua/include_lua/draw_text.lua [diff]
apps/plugins/lua/include_lua/image_save.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/plugins/lua_scripts/rlimg.lua [diff]
apps/plugins/lua_scripts/stars.lua [new]
William Wilgus
2024-04-18 7f1b49693c: translations: Update US English "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2024-04-18 ac9003546f: release: Revamp release scripts

Covers bins, voices, manuals, fonts, and source tarballs.

Only thing remaining is build-info integration
tools/release/README [diff]
tools/release/bins.pl [diff]
tools/release/manuals.pl [diff]
tools/release/sources.sh [new]
tools/release/voices.pl [diff]
Solomon Peachy
2024-04-17 c38aeb3fbc: voice: add a 'make talkclips' target for voice builds.

This will use the configured tts engine and language to generate the talk clips for a specified directory.

TALKDIR=/path/to/somehere make talkclips TALKDIR=/path/to/somehere make talkclips-force

If 'TALKDIR' is not defined then it will error out gracefully.

Normally if a talkclip is present already it will not regenerate the file, but 'make talkclip-force' will regenerate it anyway.
tools/root.make [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-04-17 ebd952da2f: voice: minor refactoring in the voice gen script
tools/voice.pl [diff]
Solomon Peachy
2024-04-17 613a1432d6: voice: Improvements to the talk clip generation

This covers the voiced directory and filenames

* Don't regenerate a talk clip if one is present (?)
* Format awareness; ie if the TTS engine generates an mp3 file, convert it to a wav file so we can encode it properly
* Use a global variable for the wavtrim threshold
tools/voice.pl [diff]
Solomon Peachy
2024-04-17 39c9c350ae: voice: Fix voicefile generation

I updated the scripts to use a generic '.enc' as the filename as we haven't used true '.mp3' files for some time (and even then, only on the Archos devices) but I missed the voicefont generation tool.
tools/voicefont.c [diff]
Solomon Peachy
2024-04-16 c8dd31aab7: voice: Fix the 'gtts' voice generation backend.

* Language and dialect need to be specified separately
* Convert the mp3 files generated by gtts into wav into rbspeex
(Uses ffmpeg currently)
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2024-04-16 9af812c320: playlist viewer: fix track info for first track of a stopped current playlist

A playlist that hasn't finished and is resumed without starting playback has its index set to 0 by empty_playlist_unlocked. So ignore the index for stopped playlists.
apps/playlist_viewer.c [diff]
Christian Soffke
2024-04-13 b06073f771: buffering: ensure sufficient buffer size loading bitmaps

Commits 5aa0fc3 and 32f1418 (g#4451, g#4452) changed the amount of space that was allocated for loading bitmaps used to display album art.

Testing revealed that the size of the JPEG decode buffer can reach up to (38 * 1024)B in some cases.

When the limit is reached, additional space is required by the resize_on_load function.
apps/buffering.c [diff]
apps/recorder/jpeg_load.c [diff]
Christian Soffke
2024-04-11 05b070b0b8: playlist viewer: get Info for playing track from RAM

No need to hit the disk to retrieve metadata for the currently playing track
apps/playlist_viewer.c [diff]
Christian Soffke
2024-04-07 b57536db8d: [BugFix] Hosted incoming directory component leading slashes #2

Fix the rest..
firmware/target/hosted/filesystem-app.c [diff]
William Wilgus
2024-04-07 d1f14c7b46: [BugFix] Hosted incoming directory component leading slashes

leading slashes in directory components to path_append makes a path with a leading slash absolute and discards the basepath
firmware/target/hosted/filesystem-app.c [diff]
William Wilgus
2024-04-07 4e1faa032f: lcd: fix yellow from accidental commit
firmware/asm/lcd-as-memframe.c [diff]
Solomon Peachy
2024-04-07 75ad7c9792: Remove duplicate 'const' declaration in percent_to_volt_charge[]

Affetcs many hosted targets; probably was a typo that was copy-pasted everywhere else.
firmware/target/hosted/agptek/powermgmt-agptek.c [diff]
firmware/target/hosted/aigo/powermgmt-erosq.c [diff]
firmware/target/hosted/fiio/powermgmt-fiio.c [diff]
firmware/target/hosted/samsungypr/ypr0/powermgmt-ypr0.c [diff]
firmware/target/hosted/samsungypr/ypr1/powermgmt-ypr1.c [diff]
firmware/target/hosted/sonynwz/powermgmt-nwz.c [diff]
firmware/target/hosted/xduoo/powermgmt-xduoo.c [diff]
Solomon Peachy
2024-04-07 7b25c32388: lcd: Do not alias lcd_write_yuv420_lines_odither() to lcd_write_yuv420_lines()

Causes a warning with GCC8 as the protoypes are not the same.

Only affects targets that lack an asm-optimized version (eg mips)
firmware/asm/lcd-as-memframe.c [diff]
Solomon Peachy
2024-04-04 76a9a524c0: skin_tokens.c get_dir() improve path detection

get_dir grabs a component of a path it now handles multiple slashes, no leading slashes
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
2024-04-03 3714288f7a: add bootpath to bootdata debug menu

show the full path to the currently booted firmware
apps/debug_menu.c [diff]
William Wilgus
2024-04-03 8c994db247: multiboot_select plugin check volume root for valid firmware -- Try 2

I'm not sure why but on my fuze v2 I don't get the '.' nd '..' directories back from readdir

that make removing '.' to find /.rockbox inconsistent

Instead filter out files and strcmp the incoming dirs to BOOTDIR (.rockbox) and clear it when they match
apps/plugins/multiboot_select.c [diff]
William Wilgus
2024-04-02 4a91d37613: multiboot_select plugin check volume root for valid firmware
apps/plugins/multiboot_select.c [diff]
William Wilgus
2024-04-02 15fdaa3abc: [Fix Red] 957920e9 lcd-bitmap-common 16-bit devices

Bootloaders need lcd_ prepended as well
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2024-04-02 957920e915: lcd-bitmap-common 16-bit devices remove branch in character loop

do the depth check outside of the loop make a helper function to have same fn signatures between mono_bitmap_part & lcd_alpha_bitmap_part
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2024-04-01 5641e8140a: tagcache: Rename find_tag() -> tc_find_tag()

The overly-generic name "find_tag()" is part of the skin parser library and this can cause problems depending on what's included from headers. Unfortunately.
apps/tagcache.c [diff]
Aidan MacDonald
2024-04-01 9d585cbc05: Fix red in f026cc4e176f
apps/onplay.c [diff]
Aidan MacDonald
2024-04-01 f026cc4e17: tagcache: Add menu entry for customizing the DB path

Allow the database path to be set from the file browser's
"Set As" context menu, so it can be changed without editing the .cfg file by hand.
apps/debug_menu.c [diff]
apps/lang/english.lang [diff]
apps/onplay.c [diff]
apps/settings_list.c [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
Aidan MacDonald
2024-04-01 ac1f92d9e8: tagcache: Fix missing void in tagcache_rebuild() definition
apps/tagcache.c [diff]
Aidan MacDonald
2024-04-01 89a6fc087d: manual: Document database "Select directories to scan" option
manual/rockbox_interface/tagcache.tex [diff]
Aidan MacDonald
2024-04-01 f5a852304b: Sansa e200v2: bootloader: enable SD boot

Use rockbox_main.e200v2 for boot redirect

Max allowed size: 120860 Thumb build: 119579
firmware/export/config/sansae200v2.h [diff]
Roman Artiukhin
2024-04-01 cc210a7161: Fix red in c36d7768c539
firmware/export/lcd.h [diff]
Aidan MacDonald
2024-04-01 c36d7768c5: Sansa e200v2: bootloader: fit size

Max allowed size: 120860 Old thumb build: 128494 New thumb build: 118514 (fits!)

Disabled: Logo; alpha blending capabilities for bitmaps; Arm stack unwinder (backtrace);

Related forum discussion: https://forums.rockbox.org/index.php/topic,54768.0.html

Fixes FS #12380
bootloader/show_logo.c [diff]
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/export/config/sansae200v2.h [diff]
firmware/export/lcd.h [diff]
firmware/export/system.h [diff]
firmware/panic.c [diff]
firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c [diff]
firmware/target/arm/system-arm.c [diff]
Roman Artiukhin
2024-04-01 2570909e52: [Feature] Add root_realpath to Rockbox Info
apps/menus/main_menu.c [diff]
William Wilgus
2024-04-01 8e9a840d1d: [Fix Yellow] 1dc22c7241 use path_append for setting directories is several settings
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2024-04-01 1dc22c7241: use path_append for setting directories is several settings

sprintf, strcpy, memccpy can all just go thru path_append with the added benefit of some path sanitizing too
apps/gui/skin_engine/skin_parser.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/onplay.c [diff]
apps/playlist_catalog.c [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/hosted/rolo.c [diff]
William Wilgus
2024-04-01 47784a777e: FS #13403: Fix compilation error in scsitools
utils/imxtools/scsitools/stmp_scsi.h [diff]
Solomon Peachy
2024-03-31 e631fc4723: tree: handle trailing slashes in currdir when navigating up

Make ft_exit() ignore trailing slashes. Previously if these ended up in "currdir" then pressing the back button would just leave you in the same directory.
apps/filetree.c [diff]
Aidan MacDonald
2024-03-31 856e3d548b: Fix red in dc9d354ed22b
firmware/common/disk.c [diff]
firmware/include/dircache_redirect.h [diff]
Aidan MacDonald
2024-03-31 dc9d354ed2: multiboot: Add v1 boot protocol

v1 passes the drive and partition number of the boot volume instead of using the volume number. The volume number isn't reliable because the same filesystem might get a different volume number once the firmware is loaded, which will cause the firmware to use the wrong root volume and fail to locate the correct .rockbox directory.

Using drive and partition numbers avoids this issue because drive numbering is fixed and determined by the target.
apps/debug_menu.c [diff]
firmware/common/bootdata.c [diff]
firmware/common/multiboot.c [diff]
firmware/export/bootdata.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/rolo.c [diff]
Aidan MacDonald
2024-03-31 6ffd42548b: multiboot: Refactor boot data validation, add version numbers

Instead of verifying the CRC before every access of the boot data, verify the CRC once at startup and set a flag to indicate the boot data is valid.

Also add a framework to support multiple boot protocol versions. Firmware declares the maximum supported protocol version using a version byte in the boot data header. The bootloader chooses the highest version supported by it and the firmware when deciding what boot protocol to use.
apps/debug_menu.c [diff]
apps/main.c [diff]
firmware/SOURCES [diff]
firmware/common/bootdata.c [new]
firmware/common/multiboot.c [diff]
firmware/common/rb-loader.c [diff]
firmware/export/bootdata.h [diff]
firmware/export/multiboot.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/rolo.c [diff]
firmware/target/arm/pp/mi4-loader.c [diff]
Aidan MacDonald
2024-03-31 af644e02a1: Fix red in 5fd5f56cacdd
firmware/export/scroll_engine.h [diff]
Aidan MacDonald
2024-03-31 5fd5f56cac: Disable unused LCD scroll functions in bootloaders

These functions just reset some state related to the scroll engine, which is already disabled for bootloaders. They get called from the LCD code and compiled into the binary, but have no real effect when the rest of the scroll engine is not present. Replacing the calls with inline stubs gets rid of this dead code from bootloaders.
firmware/drivers/lcd-scroll.c [diff]
firmware/export/scroll_engine.h [diff]
Aidan MacDonald
2024-03-31 b0a8cacd1d: rolo: simplify parsing scramble header in load_firmware()

The standard load_firmware() function is used on targets which use the "scramble -add" method for generating Rockbox binaries.

While it tries to be a bit more generic and allows the CRC/data offsets to be placed anywhere in the file, there are no targets which actually need this flexibility, because they are all using plain old "scramble -add".

So we can actually simplify load_firmware() and remove defines from the target headers. All the targets used CRC offset = 0 and data offset = 8, except for a few which I assume never supported ROLO or were never tested -- eg. samsungyh820: the CRC and data offsets cannot both be 0.

The actual motivation for this is removing the calls to lseek(), which can help make bootloaders a tiny bit smaller, as lseek is typically not used anywhere else in bootloaders.
firmware/common/rb-loader.c [diff]
firmware/export/config/android.h [diff]
firmware/export/config/cowond2.h [diff]
firmware/export/config/creativezen.h [diff]
firmware/export/config/creativezenmozaic.h [diff]
firmware/export/config/creativezenv.h [diff]
firmware/export/config/creativezenxfi.h [diff]
firmware/export/config/creativezenxfi2.h [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/creativezenxfistyle.h [diff]
firmware/export/config/creativezv.h [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/gigabeatfx.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
firmware/export/config/gogearsa9200.h [diff]
firmware/export/config/hifietma8.h [diff]
firmware/export/config/hifietma8c.h [diff]
firmware/export/config/hifietma9.h [diff]
firmware/export/config/hifietma9c.h [diff]
firmware/export/config/hifimanhm60x.h [diff]
firmware/export/config/hifimanhm801.h [diff]
firmware/export/config/iaudiom3.h [diff]
firmware/export/config/iaudiom5.h [diff]
firmware/export/config/iaudiox5.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/export/config/ihifi760.h [diff]
...and 62 more files.
Aidan MacDonald
2024-03-31 7dc8d754a2: Disable legacy codepage handling in bootloaders

Turn off legacy codepage handling in the filesystem code for bootloaders, and support ISO-8859-1 (Latin-1) only.

This only affects DOS 8.3 filename parsing when FAT32 long names are unavailable; long names are Unicode and can always be decoded properly regardless of this setting.

In reality, bootloaders never supported codepages other than Latin-1 in the first place. They did contain the code to load codepages from disk, but had no way to actually change the codepage away from Latin-1.

Compiling out this useless codepage handling code frees up precious space for very size-constrained bootloaders like the Sansa e200v2.
firmware/common/file_internal.c [diff]
firmware/export/config.h [diff]
Aidan MacDonald
2024-03-31 4f652b49ae: clipzip clean up lcd driver a bit

consolidate some of the lcd cmd / data calls
firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c [diff]
William Wilgus
2024-03-30 8bdf08cd2d: Sansa e200v2: Enable thumb for bootloader by default

Thumb bootloaders were confirmed to work in this post:

https://forums.rockbox.org/index.php/topic,54768.msg253473.html#msg253473
tools/configure [diff]
Aidan MacDonald
2024-03-30 9f3d83d03f: tools: update shebang in thumb-cc.py

Some distros, including Ubuntu/Debian, don't provide a "python" command unless an additional package is installed. Using "python3" explicitly should work everywhere.

Using "/usr/bin/env" respects the user's PATH, so they can choose a specific Python version instead of forcing the systemwide copy.
tools/thumb-cc.py [diff]
Aidan MacDonald
2024-03-30 fe00906abb: pathfuncs.c add path_strip_leading_separators()

added to path_append as well
apps/playlist_catalog.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
William Wilgus
2024-03-30 777098fca9: usb: fix usb_storage_disconnect shouldn't call core_free for static buffer

Fixes Sansa e200v2 bootloader doesn't boot after 3301c5a
firmware/usbstack/usb_storage.c [diff]
Roman Artiukhin
2024-03-29 52e22b253d: [Bugfix] ft_assemble_path extra slashes, Volume unmound double free
apps/filetree.c [diff]
firmware/common/rb_namespace.c [diff]
firmware/include/dircache_redirect.h [diff]
William Wilgus
2024-03-28 19f21a2b3f: Codecs: mp4: Enable FAAD_STATIC_ALLOC

Allocates several SBR + PS arrays and variables statically Prevents out of memory exceptions for long audiobooks

Note from original commit a602f46d why it was disabled: For now malloc is not fully removed but used by a few arrays needed for AAC-HE SBR+PS only. Reason to keep malloc is to have this amount of memory available for AAC-LC files which might require large m4a tables.

But now with "shrinkable" seek table 2c6dfd06 it's no longer a critical issue for aac-lc files (we just load less seek entries) but might be critical for aac-he files.

Fixes issue described here https://www.rockbox.org/tracker/task/13049#comment44587
lib/rbcodec/codecs/libfaad/common.h [diff]
Roman Artiukhin
2024-03-26 6e058fe77f: platform: hiby: Increase CODEC_SIZE to 1 Mb

Unifies codec size with most targets.

Apart from other things increased size improves seek accuracy in long m4b audiobooks.

Tested on Agptek Rocker and XDuoo X3II

Related discussion: https://www.rockbox.org/tracker/task/13049#comment44591
firmware/export/config/fiiom3klinux.h [diff]
firmware/export/config/hibylinux.h [diff]
Roman Artiukhin
2024-03-24 53e7176196: dircache: don't unpin invalid buflib handle when building volumes

Buflib pinning was introduced here in 1718cf5.

If the device has to immediately shut down after booting because of a low battery, the directory cache may be disabled by the time core_unpin() is reached.

Its handle will have been reset to 0 in that case, triggering a panic message due to an invalid buflib handle.
firmware/common/dircache.c [diff]
Christian Soffke
2024-03-24 34361c82f1: [BugFix] Database Track>Filename returned Directory Attribute

Navigating to track listing by Filename in the database passed the whole directory to the playlist and track info plugin insead of the track filename

this was due to 'tag_virt_basename' not being recognized as a valid audio file
apps/tagtree.c [diff]
William Wilgus
2024-03-24 c00dff157c: ....Fix the fix, properly.
firmware/SOURCES [diff]
Solomon Peachy
2024-03-23 57f76784c5: Fix build for hosted targets.

Basically the namespace code _never_ actually linked properly on hosted targets, but nobody noticed as there were no users, causing the symbols to be dropped with no fuss.

The tagcache namespace awareness stuff pulled in the namespace code, which made things go kaboom due to it relying on native FAT parsing code.
apps/tagcache.c [diff]
firmware/SOURCES [diff]
Solomon Peachy
2024-03-23 fa54e218ff: Multiboot Database duplicate files -- Fix Yellow
firmware/common/rb_namespace.c [diff]
William Wilgus
2024-03-23 fdc3668a6a: [BugFix] Multiboot Database duplicate files

When the sd card is mounted into the root namespace the database picks up files through both paths

previously we hid the mounted drive but this causes issues with users databases when the drive letter changes

Adds a way to keep track of volumes mounted in the root namespace

Hides the enumerated volume in root

Database: we can just parse the root directory ('/') and get to any mounted volume but we can also enumerate a volume in the root directory when this occurs it leads to multiple entries since the files can be reached through multiple paths ex, /Foo could also be /SD1/Foo Instead we will attempt to rewrite the root with any non-hidden volumes failing that just leave the paths alone
apps/filetree.c [diff]
apps/filetree.h [diff]
apps/tagcache.c [diff]
apps/tree.c [diff]
firmware/common/dir.c [diff]
firmware/common/rb_namespace.c [diff]
firmware/include/dir.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/include/rb_namespace.h [diff]
firmware/target/hosted/filesystem-app.c [diff]
uisimulator/common/filesystem-sim.c [diff]
William Wilgus
2024-02-23 ae01ea7fd9: FS #13404: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2024-02-20 386b6d6bae: dbtool: Make the dbtool marginally more user friendly.

* Inform you what target it is compiled for
* Complain if it doesn't find the '.rockbox' directory
(Instead of creating the directory if it's not found!)
* Report basic (starting/finished) progress
tools/database/database.c [diff]
Solomon Peachy
2024-02-03 e122243bb0: plugins: playing time: fix possible crash on sys event
apps/plugins/playing_time.c [diff]
Roman Artiukhin
2024-02-02 76ec55cc49: Remove ATRAC3 specific fields (channels, extradata_size) from mp3entry

Also fixes typo of using never initialized id3->channels in wav metadata (introduced in 2d1937a1)
lib/rbcodec/codecs/atrac3_oma.c [diff]
lib/rbcodec/codecs/atrac3_rm.c [diff]
lib/rbcodec/codecs/libatrac/atrac3.c [diff]
lib/rbcodec/codecs/libatrac/atrac3.h [diff]
lib/rbcodec/metadata/metadata.h [diff]
lib/rbcodec/metadata/mpc.c [diff]
lib/rbcodec/metadata/oma.c [diff]
lib/rbcodec/metadata/rm.c [diff]
lib/rbcodec/metadata/tta.c [diff]
lib/rbcodec/metadata/wave.c [diff]
lib/rbcodec/test/warble.c [diff]
Roman Artiukhin
2024-01-24 be16edc94b: Codecs: mpa: Use both time and offset when resuming files

The supplied time may be more accurate than the calculated time from the bitrate (can be quite inaccurate for long vbr files and even for cbr due to padding)
lib/rbcodec/codecs/mpa.c [diff]
Roman Artiukhin
2024-01-24 1122cae028: Codecs: mpa: Improve seek in large mp3 vbr files

Use current position as toc mark and use it if it gives better accuracy.

Continuation of 3883c978
lib/rbcodec/codecs/mpa.c [diff]
Roman Artiukhin
2024-01-24 49910eca4b: Implement dart scorer plugin application.

Edit:
- Add name to credits
- Add entry in manual
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/dart_scorer.c [new]
docs/CREDITS [diff]
manual/plugins/dart_scorer.tex [new]
manual/plugins/main.tex [diff]
JJ Style
2024-01-22 d50470bc7d: Codecs: aac: Improve ADTS stream detection

Captured ADTS streams might start from some garbage data from previous frame. We should check for sync errors even for first frame.
lib/rbcodec/codecs/libfaad/decoder.c [diff]
lib/rbcodec/metadata/aac.c [diff]
Roman Artiukhin
2024-01-12 fd12225861: plugins: alarmclock: fix input lag
apps/plugins/alarmclock.c [diff]
Christian Soffke
2024-01-12 3080892d21: Codecs: mp4: Re-Fix loading tracks with metadata at the end of file

first_frame_offset is not set for mp4 files so seeking to it doesn't make any sense. It can lead only to additional re-buffer request. So instead let's just allow seek back for m4a_check_sample_offset check. And do seek_buffer(0) before reading metadata (fixes possible hang introduced in fc65bdab)
lib/rbcodec/codecs/aac.c [diff]
Roman Artiukhin
2024-01-07 de16065265: plugins: disktidy: fix loading of filetypes to clean

regression introduced in 1648441
apps/plugins/disktidy.c [diff]
Christian Soffke
2024-01-02 ed27dac432: Fix CODEC_AAC_SBR_DEC check with undefined CONFIG_CPU

Define CONFIG_CPU if not defined

This fix makes sure that AAC-LC decoding is used both on device and simulator. It's important for testing purposes as proper AAC-LC decoding requires changes both in decoder and in metadata handling.

Fixup for 4cd65b9d9.
firmware/export/config.h [diff]
roman.artiukhin
2024-01-02 8cc7476735: ErosQ Native ES9018K2M: Add digital filters capability

Setting not yet hidden for older hardware revision.
apps/features.txt [diff]
firmware/drivers/audio/es9018k2m.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/es9018k2m.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
Dana Conrad
2024-01-02 a3fe07ff12: ErosQ New Revision HW volume

Add HW volume control via ES9018K2M, and reorganize eros_qn_codec.c/.h, audiohw-erosqnative.c.

This automatically detects the presence of the new DAC and uses its hardware volume scaling. If not present, use same SWVOL we have been using so far.

Add debug menu readout of SWVOL/I2C result.

Break out es9018k2m stuff into its own file so that maybe it can be useful to other ports.

Note that we may need to get smarter about detecting the DAC type if/when another model emerges.
firmware/SOURCES [diff]
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/drivers/audio/es9018.c [diff]
firmware/drivers/audio/es9018k2m.c [new]
firmware/export/audiohw.h [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/export/es9018k2m.h [new]
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/gpio-target.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/i2c-target.h [diff]
Dana Conrad
2024-01-01 161c861153: Fix red in 4cd65b9d9
firmware/export/config.h [diff]
Solomon Peachy
2024-01-01 4cd65b9d97: Codecs: mp4: Disable SBR decoding for PP5002 - PP5022 platforms

Includes ipod video (5G) and earlier models, sansa c200 and others players not capable to decode AAC-HE.

Allows to play backward compatible files as AAC-LC.
apps/features.txt [diff]
firmware/export/config.h [diff]
lib/rbcodec/codecs/libfaad/common.h [diff]
lib/rbcodec/codecs/libfaad/specrec.c [diff]
lib/rbcodec/metadata/aac.c [diff]
lib/rbcodec/metadata/mp4.c [diff]
manual/appendix/file_formats.tex [diff]
roman.artiukhin
2023-12-23 fc65bdab4e: Codecs: mp4: Fix loading tracks with metadata at the end of file

Fixes FS #13402
lib/rbcodec/codecs/aac.c [diff]
roman.artiukhin
2023-12-22 5cf8248442: plugins: Associate markdown (*.md) files with the text viewer/editor
apps/plugins/viewers.config [diff]
manual/plugins/main.tex [diff]
Solomon Peachy
2023-12-21 98ca066bd1: Fix zlib download url in rockboxdev.sh
tools/rockboxdev.sh [diff]
roman.artiukhin
2023-12-04 9e802be969: [BugFix] run filebrowser automatically for out of tree shortcuts

missed a case for out of tree shortcuts coming from the quickscreen in the main menu
apps/root_menu.c [diff]
William Wilgus
2023-12-03 83566008a0: [Feature] run filebrowser automatically for out of tree shortcuts

supersedes g#5499 run .link shortcuts within menu shortcuts and just extends it to the whole plugin stack which makes sense as long as it doesn't cause any new bugs ;)
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2023-12-03 1e3e9c68c8: [FixRed] Touchscreens in the YesNO dialog
apps/gui/yesno.c [diff]
William Wilgus
2023-12-03 9dd1b0f46d: [BugFix] YesNo screen scrolling

clearing the viewport stops the scroller so instead clear the viewport ourselves
[this might cause some glitching but should be acceptable] in testing this causes no discernible ill effect -- time will tell..
apps/gui/yesno.c [diff]
William Wilgus
2023-12-03 58ec8c62bb: fonts: Update the 16px GNU Unifont to a derivative of 15.0.06-JP

Sourced from the UnifontEX (https://github.com/stgiga/UnifontEX) fork

The existing one is over 15 years old (5.1.20080820) and there has been a LOT of progress since then, even before the additional work done in the UnifontEX fork.
docs/CREDITS [diff]
fonts/16-GNU-Unifont.bdf [diff]
Solomon Peachy
2023-12-01 8347203dc6: [BugFix] scroll_stop_viewport_rect off by 1

when you do the math yes there are 8 slots between y = 16 and h = 8 and y = 24 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 but 16 + 8 = 24 ah an off by 1 error
firmware/drivers/lcd-scroll.c [diff]
William Wilgus
2023-11-30 857267e9df: x1000: Support GD5F1GQ5xExx NAND chips

This is basically identical to the GD5F1GQ4xExx series, except for the addition of double-data-rate transfer modes (which are useless for us). These devices may be found in some Surfans F20s.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
Aidan MacDonald
2023-11-25 4e53ec80b5: [Fix Yellow] root_menu.c
apps/root_menu.c [diff]
William Wilgus
2023-11-25 40e685fb71: [Feature] run .link shortcuts within menu shortcuts
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2023-11-24 b6ce98c55c: [BugFix] yesno screen disappears

sending GUI_EVENT_NEED_UI_UPDATE ensured we got redrawn but it also sometimes resulted in the yesno screen being overdrawn depending on which event callback was called last

now increasing the update frequency, clear the dirty bit on whatever vp we are replacing and well as call our redraw function instead of sending UI_UPDATE

also found a potential bug in get_font()
apps/gui/yesno.c [diff]
firmware/font.c [diff]
William Wilgus
2023-11-24 cb3b5397b3: Revert "Extend path_append_ex to truncate compname, remove some strmemdupa"

This reverts commit dbe20d453d5e93bd0f1188a8851c6cf4fd230b26.

Reason for revert: Crashes ipod Classic
apps/playlist.c [diff]
firmware/common/dircache.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
William Wilgus
2023-11-23 53a47970e3: [BUGFIX] some files wouldn't run as shortcut

make sure we have a chance to get the dirfilter otherwise it may be rejected

adds some sanity checks and safeguards too
apps/plugins/shortcuts/shortcuts_view.c [diff]
apps/tree.c [diff]
William Wilgus
2023-11-22 5c60975d4f: Revert "Revert "tree.c cleanup update_dir()""

This reverts commit b6ac9a9f395b486baf5de455cf2505351b32d8ec.

Reason for revert: RED Herring
apps/tree.c [diff]
William Wilgus
2023-11-22 b6ac9a9f39: Revert "tree.c cleanup update_dir()"

This reverts commit 1d2dfb3a7681ab462bb5ca31d3362dbf2d0fcfcb.

Reason for revert: crash on ipod Classic boot
apps/tree.c [diff]
William Wilgus
2023-11-22 1d2dfb3a76: tree.c cleanup update_dir()
apps/tree.c [diff]
William Wilgus
2023-11-22 72c539d35e: [Bug_Fix] shortcut to directory in .link files caused crash

since the plugin browser is now closed when running plugins rb->set_current_file() had no valid browser context and used 'random' memory instead

also adds a way to discard levels so we can load the desired directory instead of returning to the previous

https://forums.rockbox.org/index.php/topic,54694.0.html
apps/filetree.c [diff]
apps/open_plugin.c [diff]
apps/plugins/shortcuts/shortcuts_view.c [diff]
apps/tree.c [diff]
apps/tree.h [diff]
William Wilgus
2023-11-21 6e90bfe029: lcd-color: Fix mpeg_player regression introduced in 034b6d5b

The lcd_blit_yuv() function shadowed a variable, but was "fixed" by removing the inner declaration entirely, causing the inner loop to clobber a variable used by the outer loop.

Fix this by declaring these variables independently, and for clarity moved the inner loop declarations to a narrower scope.
firmware/drivers/lcd-color-common.c [diff]
Solomon Peachy
2023-11-19 92e77ddbd8: [FIX_RED] microtar.c #2
lib/microtar/src/microtar.c [diff]
William Wilgus
2023-11-19 58707b0429: [FIX_RED] strcmp missing on microtar.c ??
lib/microtar/src/microtar.c [diff]
William Wilgus
2023-11-19 263fc8b98f: [FIX RED] include stdio for snprintf
firmware/common/pathfuncs.c [diff]
William Wilgus
2023-11-19 dbe20d453d: Extend path_append_ex to truncate compname, remove some strmemdupa

remove some duplicated strings previously allocd off the stack

just removing string duplications that are easily handled with truncation now available with path_append_ex()

this also has an advantage of less stack used in worst case scenarios
apps/playlist.c [diff]
firmware/common/dircache.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
William Wilgus
2023-11-19 a7d0ff2000: Playlist Viewer: Reload indices after saving currently playing playlist

First index may have changed
apps/playlist_viewer.c [diff]
Christian Soffke
2023-11-18 35f9a5b415: Skin Engine: Fix loading images with same file name

Looks like this was a regression introduced in 01cbb79. The duplicate img uses an existing buflib handle for the data, but still didn't have access to the dimensions from the bitmap struct.

Test case: DancePuffDuo theme for Sansa E200. Only one dancepuff was displayed. Thank you to goatikins for reporting the issue.
apps/gui/skin_engine/skin_parser.c [diff]
Christian Soffke
2023-11-15 5114827937: Fix: Rotate indices after saving playlist w/ first_index > 0

When saving the current playlist, entries written out to disk were rotated, but its indices were not, resulting in first_index being out of sync between the two. Thus, an incorrect index was used for any playlist commands, from the moment you saved the playlist until the next time you resumed, which didn't produce the right playlist.
apps/playlist.c [diff]
apps/root_menu.c [diff]
Christian Soffke
2023-11-12 bd93f9f96f: Increase playlist control file's version number

This should have probably been included in e9b4275, since a control file generated with that build will potentially cause issues when used with older versions, in case -8 appears as an insert position.
apps/playlist.c [diff]
Christian Soffke
2023-11-10 a82b30735d: Fix queued track when resuming after PLAYLIST_COMMAND_CLEAR

PLAYLIST_COMMAND_CLEAR needs to save the index of the currently playing track, or a track with index 0 will be left queued after resuming from control commands
apps/playlist.c [diff]
Christian Soffke
2023-11-10 ba14aecd5e: Fix INSERT_LAST_SHUFFLED when playlist's first_index > 0

Tracks were inserted into the middle of the playlist
apps/playlist.c [diff]
Christian Soffke
2023-11-10 8a6aaaa5ed: Playlist Viewer: Make Shuffle behave like Reshuffle

Moves currently playing track to the front of the playlist when shuffling.

Also fixes issues with an incorrect resume index after repeatedly applying shuffle.
apps/playlist_viewer.c [diff]
Christian Soffke
2023-11-10 d4f1247aec: Playlists: Fix moving songs in reshuffled playlist

The current index wasn't always correct after moving in a playlist with first index > 0
apps/playlist.c [diff]
Christian Soffke
2023-11-10 e9b4275d1f: Playlists: Fix resuming from control commands with first_index > 0

add_track_to_playlist_unlocked only increased a playlist's first index as necessary when its position parameter was negative (i.e. one of the special insert positions was specified).

A negative value was not stored in the control file, but was always converted into an absolute position. Thus, any adjustments to first_index weren't repeated when resuming from the control file.

In particular, shuffled playlists were affected (in case of first_index > 0), when inserting at positions <= first_index, including appending a track to the end of a playlist. This works by inserting at first_index and increasing first_index by 1 afterwards.

Similarly, adding tracks in a shuffled fashion could increase first index, whenever that was the value randomly calculated for a track position, effectively appending it (I assume this is on purpose).

To make sure that first_index adjustments are recovered when resuming from the control file, and to be able to differentiate between a prepended or appended track, store the special value PLAYLIST_INSERT_LAST_ROTATED as the insert position in the control file whenever first_index would have been used before, and a special position (other than PLAYLIST_PREPEND) was provided to the function.
apps/playlist.c [diff]
apps/playlist.h [diff]
Christian Soffke
2023-11-10 dd1063fc2c: [BUGFIX] path_append_ex() component string

basepath_max is used to truncate basepath but was being applied to component as well in error
firmware/common/pathfuncs.c [diff]
William Wilgus
2023-11-10 7ac4d34dd6: Playlist slight optimizations for playlist_resume
apps/playlist.c [diff]
apps/playlist.h [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
William Wilgus
2023-11-09 7f455af905: hwstub lib: Introduce framework for device filtering

The rationale behind this was ability to filter usb device by bus numer and device address. This allows to connect with selected device in case there is more then one connected device implementing hwstub interface. For now only USB backend makes use of this but the foundation is generic and can be easily extended to other backends.
utils/hwstub/include/hwstub.hpp [diff]
utils/hwstub/include/hwstub_usb.hpp [diff]
utils/hwstub/lib/hwstub_uri.cpp [diff]
utils/hwstub/lib/hwstub_usb.cpp [diff]
Marcin Bukat
2023-11-03 154f10c2d2: boost cpu when resuming playlists
apps/playlist.c [diff]
William Wilgus
2023-11-02 2030d681e4: Codecs: mp4: Fix sign overflow in seek by offset
lib/rbcodec/codecs/libm4a/m4a.c [diff]
roman.artiukhin
2023-11-01 332a0fa968: Playlist sort/shuffle: Fix data type

I noticed that setting first_index to the current track when shuffling a playlist could fail in the Simulator.
apps/playlist.c [diff]
Christian Soffke
2023-11-01 63f75d22b4: Fix potential stuck on auto track change when buffering is stopped

pcmbuf might wait for next track for proper crossfade/gapeless playback (see pcmbuf_start_track_change). It's not going to happen with stopped buffering.

Fixup for 831faa3b (#5394)
apps/playback.c [diff]
roman.artiukhin
2023-10-31 11b8336c64: Fix rewind on resume is applied for skip length across tracks action after auto frequency switch

Add resume adjustments flag in mp3entry struct which is required for proper AUDIO_START_RESTART resume handling

Fixup for 4fb37ecb (#5196)
apps/playback.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
roman.artiukhin
2023-10-31 ba62798746: Playing Time plugin: Fix calculation for shuffled playlists

Playing Time produced incorrect results when the playlist's first index wasn't 0.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/playing_time.c [diff]
Christian Soffke
2023-10-31 9c79a4449a: Playlist Viewer Track Info: Fix displayed index

Index was incorrect for shuffled playlists
apps/playlist_viewer.c [diff]
Christian Soffke
2023-10-31 f377ad3ce7: Restore clearing resume info for current track in playing_id3_sync

Regression introduced in 3d5dd97c (#5426)

Without it current playlist keeps last bookmark info so next time track is played again from bookmark.
apps/playback.c [diff]
roman.artiukhin
2023-10-30 d78be6716b: [BUGFIX] block SYS_EVENTS from some action switches

fixes some of the places where SYS EVENTS cause issues with action switches that don't have handling for system events

more exist..
apps/cuesheet.c [diff]
apps/debug_menu.c [diff]
apps/gui/list.c [diff]
apps/gui/wps.c [diff]
William Wilgus
2023-10-30 d77c417fd1: Fix bookmarking/reloading after saving shuffled playlist

The resume index into the playlist file that was used for bookmarks created immediately after saving a shuffled playlist, or for reloading the saved playlist (in case "Reload After Saving" was enabled), tended to be incorrect.

The playlist file effectively isn't shuffled anymore after saving it to a file, but the resume index may still have to be rotated unless playback has been stopped and resumed before bookmarking, due to indices that are shifted by first_index.
apps/bookmark.c [diff]
apps/menus/playlist_menu.c [diff]
apps/playlist.c [diff]
Christian Soffke
2023-10-30 3f3e185460: Fix return value for playlist_get_resume_info

(Only) bookmark_is_bookmarkable_state() seems to require a return value atm.
apps/playlist.c [diff]
Christian Soffke
2023-10-30 96dd251571: Remove playlist_shutdown from playlist_resume

This was added in 5e757b4 as a band-aid to prevent control data from being discarded, but has since become superfluous after the removal of the control file cache in 2e99e21.
apps/playlist.c [diff]
Christian Soffke
2023-10-30 45746934c4: playlist_set_current: Fix outdated dircache filerefs

Entries from a previously playing playlist may not have been replaced after selecting a track from a different playlist in the Playlist Viewer when playback was stopped (not paused), since the index buffer of a playlist opened in the Playlist Viewer is shared with the current playlist when nothing is playing.
apps/playlist.c [diff]
Christian Soffke
2023-10-29 1651254ba4: powermgmt: Don't force shutdown when externally powered

In rare cases, battery voltage at boot can be below the shutdown threshold even if a charger is plugged in. This triggers a forced shutdown and tells you to "RECHARGE!" despite there being plenty of power available, which is annoying.

Tweak the forced shutdown check so it accounts for external power sources; if any are present, battery voltage will be ignored.
firmware/powermgmt.c [diff]
Aidan MacDonald
2023-10-28 954dd0ff75: Playlist Viewer: Don't set unmodified after saving

90e3571 has made this redundant
apps/playlist_viewer.c [diff]
Christian Soffke
2023-10-28 bdec7ed31b: Suggest numbered filename when saving untitled playlist

+ update misleading comment for catalog_add_to_a_playlist's m3u8name parameter (the keyboard picker will be shown even if it's not NULL)
apps/menus/playlist_menu.c [diff]
apps/playlist.h [diff]
apps/playlist_catalog.c [diff]
apps/playlist_catalog.h [diff]
Christian Soffke
2023-10-28 831faa3b82: Rework auto playback frequency switch

Moved logic outside playback events to be executed early. Stops buffering when frequency change is detected (additional STATE_STOPPED state is introduced)

Removed no longer used AUDIO_START_REFRESH flag
apps/playback.c [diff]
firmware/pcm.c [diff]
roman.artiukhin
2023-10-28 90e35716e3: playlist: Rewrite playlist_save(), optimization & fixes

playlist_save() was a poorly thought out mess. This fixes the glaring issues and hopefully ensures that saving the playlist never loses state (such as queued tracks or modified status) after save+resume.

Indices are now updated on the fly, which is faster and needs no extra memory. But if an error occurs, the playlist will be corrupted. There is currently no attempt to handle this since errors should be unlikely, but some error handling needs to be added in the future.
apps/menus/playlist_menu.c [diff]
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-10-27 1ee152b5a4: sansaclipplus: enable usb-hid mouse support
docs/CREDITS [diff]
firmware/export/config/sansaclipplus.h [diff]
Uwe Kleine-König
2023-10-24 0391f2410a: FS13397: Fix ipodpatcher standalone build

Patch from revo
utils/ipodpatcher/Makefile [diff]
Solomon Peachy
2023-10-22 3d5dd97c48: Fix playing_id3_sync not properly syncing resume data

Fixes bookmark resume for tracks with different sample rates (should fix FS #13295)
apps/playback.c [diff]
roman.artiukhin
2023-10-22 4fb37ecbc6: Skip Length across tracks

Allows to use Prev button to skip length from the end of previous track.

Can be enabled with: Settings -> Playback Settings -> Skip Length set to some time interval and Settings -> Playback Settings -> Rewind Across Tracks set to Yes
apps/gui/wps.c [diff]
apps/playback.c [diff]
roman.artiukhin
2023-10-21 5c36643132: manual: Fix a formatting error in the database commit documentation
manual/rockbox_interface/tagcache.tex [diff]
Solomon Peachy
2023-10-19 34408af994: Fix warble error 4cfd7cc
apps/screens.h [diff]
Christian Soffke
2023-10-19 4cfd7cc77d: Track Info [Playlist] field: Add playlist name

For any selected track that is part of a playlist, additional info about the list is now provided in the [Playlist] field of the Track Info screen.

1) Asterisk indicates if playlist has been modified. 2) Playlist filename is visible, unless the current playlist is *not* associated with a file on disk, in which case the following will be shown instead:

- (Folder) for unmodified folder playlists.
- (Dynamic) for playlists that are neither associated with a playlist file, nor with a folder.
apps/playlist_viewer.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
Christian Soffke
2023-10-18 759aaecdff: Playlist Viewer: Eliminate 'dirty' flag

A playlist's explicit 'modified' flag is now used for keeping track of whether it's been modified in the Playlist Viewer, not just in case of the currently playing list, but for other playlists as well.

When you start playback of a track from the Playlist Viewer, a playlist's 'modified' status is now carried over to the current playlist, so as to produce a warning when there is an attempt to replace the list at a later point. This also prevents (auto) bookmarking of the playlist if it had been modified in the Playlist Viewer prior to becoming the current playlist. (Bugfix)
apps/playlist.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
2023-10-17 9cd4943950: Properties/Tagcache Track Info Retrieval: Skip files with errors (2)

Addendum to e3b2293

Don't abort even when the database has returned a filename, since metadata retrieval may still fail.
apps/plugins/properties.c [diff]
Christian Soffke
2023-10-17 f932522d8a: WPS context menu: Set modified after reshuffle

Prevents incorrect bookmarking of permanently
(not just temporarily) shuffled playlists, which need to be resaved, before they can be correctly bookmarked.
apps/onplay.c [diff]
Christian Soffke
2023-10-17 e3b22935f2: Properties/Tagcache Track Info Retrieval: Skip files with errors

File names exceeding the max length will not be retrievable from the database. Skip such files, instead of cancelling the operation at that point.
apps/plugins/properties.c [diff]
apps/tagtree.c [diff]
Christian Soffke
2023-10-17 f2af0711b0: Delete existing bookmark file when saving a new playlist

Deleting a playlist leaves its bookmark file behind.

When a new playlist was saved under the same name as an existing bookmark file, unrelated bookmarks were shown for the new playlist
apps/playlist_catalog.c [diff]
Christian Soffke
2023-10-17 ebb7f33a9f: Fix backlight undefined preprocessor typo
apps/settings_list.c [diff]
neofright
2023-10-16 5c791f2d2b: lang: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2023-10-11 3c89adbdbd: [Feature] lastfm_scrobbler don't return to plugin on WPS resume failure

if resume playback on start was set and there was nothing to resume the menu was entered
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2023-10-10 75befe19ef: Hide Bookmark menu for new dynamically generated playlists

The bookmark menu with the option to create a bookmark was inadvertently displayed for new dynamic playlists, that had no associated folder or playlist file on disk.
(e.g. after selecting some track from the database for playback), until the playlist was modified by the user.
apps/bookmark.c [diff]
apps/playlist.c [diff]
apps/playlist.h [diff]
Christian Soffke
2023-10-10 a0c29d8857: db_commit swap threads, add ability to cancel, backup/restore

extends the db_commit plugin with the ability to delete the database backup, restore, dis/enable auto-commit
apps/plugins/tagcache/tagcache.c [diff]
apps/tagcache.c [diff]
William Wilgus
2023-10-10 eb13628bb8: [BUGFIX] yesno.c use TIME_AFTER macro
apps/gui/yesno.c [diff]
William Wilgus
2023-10-09 ff0055ba6b: list allow VOICE_ONLY strings
apps/gui/bitmap/list.c [diff]
William Wilgus
2023-10-06 57713f6308: ipod: Support IAP remote MENU/SELECT/UP/DOWN keys in MODE2

Only the primary contexts (standard, wps, quckscreen, tree, radio) handle the new keys so far.

Todo contexts: Settings, keyboard, pitchscreen, bookmark, & recording.

Available docs for MODE4 don't list anything other than playback controls, so it's not clear if there is a path forward here.
apps/iap/iap-lingo2.c [diff]
apps/keymaps/keymap-ipod.c [diff]
firmware/target/arm/ipod/button-target.h [diff]
firmware/target/arm/s5l8700/ipodnano2g/button-target.h [diff]
firmware/target/arm/s5l8702/ipod6g/button-target.h [diff]
Solomon Peachy
2023-10-06 17a8a54780: [BugFix] tagcache/tagtree remove static buffer from tagcache_get_next

remove sizeof(buf) infavor of the actual size provided by bufsz
apps/tagcache.c [diff]
William Wilgus
2023-10-06 2e184d129d: [FixRed] db_commit Non Tagcache targets
apps/plugin.c [diff]
apps/plugin.h [diff]
William Wilgus
2023-10-06 f3baff762a: [FixRed] db_commit add rb-> to plugin function
apps/plugins/tagcache/tagcache.c [diff]
William Wilgus
2023-10-06 f671c3339e: [FixRed] db_commit plugin

Fix Hosted and Touchscreen targets
apps/plugins/tagcache/tagcache.c [diff]
William Wilgus
2023-10-06 1ed640da24: [Feature] db_commit plugin allows a more verbose commit

prints logf messages to the screen buffer and dumps the output to .rockbox/db_commit_log.txt

logs warnings about tags that can't be displayed by the current font

adds an option to the tagcache using the file
.rockbox/database_commit.ignore to prevent auto commit
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/SUBDIRS.app_build [diff]
apps/plugins/tagcache/SOURCES [new]
apps/plugins/tagcache/tagcache.c [new]
apps/plugins/tagcache/tagcache.h [new]
apps/plugins/tagcache/tagcache.make [new]
apps/tagcache.c [diff]
apps/tagcache.h [diff]
manual/rockbox_interface/tagcache.tex [diff]
William Wilgus
2023-10-04 6634a60bf0: tagcache/tagtree remove static buffer from tagcache_get_next

callers can supply their own buffer
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
William Wilgus
2023-10-03 eee48dca39: tagcache reduce stack usage in tmpbuf_insert and build_index functions #2

move some functions around for later ifdef for tagcache commit plugin

used fixed width variables in struct temp_file_entry
apps/tagcache.c [diff]
William Wilgus
2023-10-03 69f62b7891: Codecs: mp4: Fix seek to end of track

Fix possible crash due to out of bound access.

Fixes FS #13371
lib/rbcodec/codecs/aac.c [diff]
lib/rbcodec/codecs/alac.c [diff]
roman.artiukhin
2023-10-03 b64d46d9d4: Revert "tagcache reduce stack usage in tmpbuf_insert and build_index functions"

This reverts commit 3bb3e3d1a6297c7bc9015d008389266e529758c1.

Reason for revert: lifetimes do not overlap but patch has issues
apps/tagcache.c [diff]
William Wilgus
2023-10-03 3bb3e3d1a6: tagcache reduce stack usage in tmpbuf_insert and build_index functions

move some functions around for later ifdef for tagcache commit plugin

used fixed width variables in struct temp_file_entry
apps/tagcache.c [diff]
William Wilgus
2023-10-02 7616822fbb: Codecs: mp4: Ignore decode errors till next chunk present in lookup_table

In files with gaps between chunks and reduced lookup_table we can't properly detect all gaps in m4a_check_sample_offset. So just ignore decode errors till next chunk present in lookup_table
lib/rbcodec/codecs/aac.c [diff]
roman.artiukhin
2023-10-01 f017ef9617: [FixRed] android yesno dialog

add a dummy fn with not for future dev
apps/hosted/android/yesno.c [diff]
William Wilgus
2023-10-01 1c47722226: [Feature] add a prompt to database commit on start-up

adds a new function: gui_syncyesno_run_w_tmo(ticks, tmo_default_res, main_msg,yes_msg, no_msg)

when a database needs committed on start-up a yes no prompt will appear if not answered within 5 seconds it defaults to Yes

if instead you choose No next start-up you will be asked again

you could rebuild the db still and waste time but it wouldn't hurt anything so I don't think that path needs blocked
apps/gui/yesno.c [diff]
apps/gui/yesno.h [diff]
apps/menus/main_menu.c [diff]
apps/tagcache.c [diff]
William Wilgus
2023-10-01 7ccbd705f4: playlist: Rework playlist modified detection and dirplay

The modified state is now an explicit flag that has to be set whenever a user-triggered modification occurs. This is recorded in the control file to ensure it doesn't get lost after resume. There may be some places I missed where the modified flag should be set/cleared, but it seems to work well enough right now.
apps/filetree.c [diff]
apps/onplay.c [diff]
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/playlist_viewer.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tagtree.c [diff]
apps/tree.c [diff]
Aidan MacDonald
2023-10-01 781f955aa2: Remove structec API

In my opinion this API is just not very useful - design is kind of questionable. There are hidden limits on the struct size and bugs on 64-bit platforms due to assuming sizeof(long) == 4.

At the end of the day, the only major user was the tagcache and it's actually less code size to do endian swapping manually.
firmware/SOURCES [diff]
firmware/common/structec.c [deleted]
firmware/export/structec.h [deleted]
tools/database/SOURCES [diff]
Aidan MacDonald
2023-10-01 d3b588678f: Remove structec API from tagcache

Replace structec usage with explicit endian swapping routines for the various data types. Simplify endianness detection when loading the database. Make foreign endianness support optional, but leave it enabled for now.
apps/tagcache.c [diff]
Aidan MacDonald
2023-10-01 825ec0b601: Remove structec API from debug_menu.c
apps/debug_menu.c [diff]
Aidan MacDonald
2023-10-01 18fc68401c: Remove structec API from talk.c
apps/talk.c [diff]
Aidan MacDonald
2023-10-01 1131320d48: Remove structec API from codecs
lib/rbcodec/metadata/ape.c [diff]
lib/rbcodec/metadata/vorbis.c [diff]
lib/rbcodec/test/SOURCES [diff]
Aidan MacDonald
2023-09-30 4745970974: playlist: Use PLAYLIST_QUEUED instead of PLAYLIST_QUEUE_MASK

We don't need two names for the same 1-bit field.
apps/playlist.c [diff]
Aidan MacDonald
2023-09-30 a6eaffe40d: powermgmt: Remove CURRENT_USB

CURRENT_USB overrides CURRENT_NORMAL when USB is plugged. It defaults to 2 mA and wasn't defined on any target, but this doesn't make sense to me. After all, the current drawn by the CPU or other components won't change just because USB was plugged in.

As far as I can tell, the only side effect of removing this is reducing the estimated USB charging current. This might mean CURRENT_MAX_CHG should be increased by CURRENT_NORMAL on some (all?) targets to compensate, but I'm not sure which targets would be affected.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
Aidan MacDonald
2023-09-29 d05f6aac2d: Codecs: mp4: Skip FOURCC filetype chunk check

Instead of FOURCC it needs ignore-case text match. Also value can contain \0 ('m4a\0' instead of expected 'm4a ').But let's simply skip it and let decoder handle it.
lib/rbcodec/codecs/libm4a/demux.c [diff]
lib/rbcodec/metadata/mp4.c [diff]
roman.artiukhin
2023-09-28 fee5013514: disk: Remember the partition number for each volume
firmware/common/disk.c [diff]
firmware/export/mv.h [diff]
Aidan MacDonald
2023-09-28 028f283ee5: disk: Add "struct volumeinfo" to store volume related info
firmware/common/disk.c [diff]
firmware/export/mv.h [diff]
Aidan MacDonald
2023-09-28 440fcb86d6: ATJ213x: minor changes to hwstub port

1) Make use of $gp addressing. This saves some bin size and makes code slightly faster. 2) Substitute jr with simple j instruction in exception handling. Code is small and j can easily encode target address. 3) Remove nop after eret in interrupt handler. According to mips32r2 ISA manual eret does not have branch delay slot.
utils/hwstub/stub/atj213x/Makefile [diff]
utils/hwstub/stub/atj213x/crt0.S [diff]
utils/hwstub/stub/atj213x/hwstub.lds [diff]
Marcin Bukat
2023-09-27 0bfdb73b4d: ATJ213x: Convert register description to v2 format utils/regtools/desc/regs-atj213x-v1.xml [new]
utils/regtools/desc/regs-atj213x.xml [diff]
Marcin Bukat
2023-09-27 609db995d5: hwstub: Remove code duplication in ATJ213x exception handling utils/hwstub/stub/atj213x/crt0.S [diff]
Marcin Bukat
2023-09-27 bf81914217: hwstub: Force alignment of the context buffer

Exception handling code assumes at least word alignment of the context buffer. So far we were lucky that compiler placed it correctly but after compiler upgrade I was hit by the bug caused by missalignment of the context buffer.

Credit goes to pamaury
utils/hwstub/stub/asm/mips/system.S [diff]
Marcin Bukat
2023-09-26 4c533475d8: codec.h fix ifdef for older compilers

elifdef appears to be finally supported in C23 elif defined() works everywhere
lib/rbcodec/codecs/codecs.h [diff]
William Wilgus
2023-09-26 ec2c507e60: Support per file logging with LOGF_ENABLE in codecs

Codecs mostly use custom LOGF define for logging (i.e. see aac.c). Now such logging can be enabled in single file with #define LOGF_ENABLE
lib/rbcodec/codecs/codecs.h [diff]
lib/rbcodec/codecs/libfaad/common.h [diff]
roman.artiukhin
2023-09-23 62db16c82c: [BugFix] bookmark.c root_dir bookmark

in some calls to generate_bookmark_file_name()

len gets specified in order to not NULL terminate the buffer string unfortunately, I missed the root_dir case in g#4839
apps/bookmark.c [diff]
William Wilgus
2023-09-23 fcc82dfdca: [BugFix] REPEAT_ONE manual track skip

Still having problems with determining the type of track change

lets try just watching the audio_next/prev functions
apps/playback.c [diff]
apps/playlist.c [diff]
William Wilgus
2023-09-22 a45204f5df: Codecs: mp4: Fix seek in files with single element in lookup_table

lookup_table offset shouldn't be zero terminated. And fix possible out of bound access.
lib/rbcodec/codecs/libm4a/demux.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
roman.artiukhin
2023-09-22 57a47ef67a: calculator: Fix compile issue in mingw32
apps/plugins/calculator.c [diff]
Solomon Peachy
2023-09-22 74ded2bdd7: settings: Fix up the remaining stragglers from 8cc3266b
apps/menus/display_menu.c [diff]
apps/menus/recording_menu.c [diff]
Solomon Peachy
2023-09-22 8cc3266b2a: Settings: Rename INT/BOOL setting type enum to RB_INT/RB_BOOL

....Because INT and BOOL are already defined in mingw32.
apps/debug_menu.c [diff]
apps/enc_config.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/plugins/announce_status.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clock/clock_menu.c [diff]
apps/plugins/dice.c [diff]
apps/plugins/doom/rockdoom.c [diff]
apps/plugins/fireworks.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lastfm_scrobbler_viewer.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/pacbox/pacbox.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/pitch_detector.c [diff]
apps/plugins/reversi/reversi-gui.c [diff]
apps/plugins/rockboy/menu.c [diff]
apps/plugins/rockpaint.c [diff]
apps/plugins/snake2.c [diff]
apps/plugins/solitaire.c [diff]
apps/plugins/sudoku/sudoku.c [diff]
apps/plugins/superdom.c [diff]
apps/plugins/test_codec.c [diff]
apps/plugins/test_sampr.c [diff]
...and 8 more files.
Solomon Peachy
2023-09-21 cb3a6877fc: RFC: Turn Playing Time function into plugin

Since this function already requires hitting the disk, it may make sense to turn it into a plugin.

A minor advantage (apart from cleaning up onplay.c and saving RAM) is that you can now access the menu not just from the WPS context menu, but also from the Shortcuts Menu or using the WPS plugin shortcut.

On the other hand, TSR plugins would have to be terminated when Playing Time is launched, as is already the case for other plugins such as PictureFlow.
apps/onplay.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/playing_time.c [new]
Christian Soffke
2023-09-21 6ac55adc88: Fix suggested file name when saving dirplay playlist

The suggested name was identical to the complete path of the played folder, with a slash at the end, which, if accepted, resulted in a file called only ".m3u8" being saved there.

In case the path contained one or more dots, the string was also stripped of the last dot and all chars following it.

Use Playlist Catalogue as the destination folder instead, and pick last path component as the file name.
apps/menus/playlist_menu.c [diff]
Christian Soffke
2023-09-21 8f3cb75df0: Delete bookmarks when replacing unrelated playlist

After saving a playlist to an existing file with a different name, any saved bookmarks for the old playlist were still displayed for the new one.
apps/playlist_catalog.c [diff]
Christian Soffke
2023-09-21 e43c703480: fiiom3k: Recording keymap adjustment

Long button presses to create a new file were in conflict with button presses to play/pause.

Pressing SELECT is now used to create a new file
(and start recording, if stopped), pressing PLAY/PAUSE will start or pause recording.
apps/keymaps/keymap-fiiom3k.c [diff]
manual/platform/keymap-fiiom3k.tex [diff]
Christian Soffke
2023-09-20 35150b83d4: Codecs: mp4: Fix sbr detections for some files

Use logic from libfaad/mp4.c AudioSpecificConfig2 for sbr detection

Fixes FS #12856
lib/rbcodec/metadata/mp4.c [diff]
roman.artiukhin
2023-09-20 951e239517: Cache folder album art

Fixes FS #13372
apps/playback.c [diff]
roman.artiukhin
2023-09-20 57409f52d5: Codecs: mp4: Accurate seek in large files with small lookup_table

Read sample_byte_sizes table on demand when it can't be cached
lib/rbcodec/codecs/libm4a/demux.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
lib/rbcodec/codecs/libm4a/m4a.h [diff]
roman.artiukhin
2023-09-19 e01055a287: [RFC] REPEAT_ONE manual track skip

I recently added track skipping while REPEAT_ONE was set

currently by registering a track skip callback I'm not entirely happy with the additional constant overhead of the event callback

Instead I went looking for a way to distinguish a pending track skip from some limited testing it appears to work just as well to compare playback's skip_pending == TRACK_SKIP_AUTO but the lack of lifetime control worries me slightly
apps/playback.c [diff]
apps/playlist.c [diff]
William Wilgus
2023-09-19 3dbf5a97ad: alac: Fix warnings introduced in ac82a653bb
lib/rbcodec/codecs/alac.c [diff]
Solomon Peachy
2023-09-19 ac82a653bb: libm4a: Fix warnings introduced in 001a338e51
lib/rbcodec/codecs/aac.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
lib/rbcodec/codecs/libm4a/m4a.h [diff]
Solomon Peachy
2023-09-19 001a338e51: Codecs: mp4: Reuse lookup_table index from seek in m4a_check_sample_offset
lib/rbcodec/codecs/aac.c [diff]
lib/rbcodec/codecs/alac.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
lib/rbcodec/codecs/libm4a/m4a.h [diff]
roman.artiukhin
2023-09-19 ef7d6009b4: Codecs: mp4: Optimize m4a_check_sample_offset

Make optimization from 2358fabb actually work. Fix potential out of bound access. Remove redundant zero offset check.
lib/rbcodec/codecs/aac.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
roman.artiukhin
2023-09-19 f96f7cd941: [Feature] Skip to next file even if loop one is set.

repeat one till manually skipped

https://forums.rockbox.org/index.php/topic,54218.0.html
apps/playlist.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
William Wilgus
2023-09-18 9242e4cadb: Codecs: mp4: Small cleanup

Remove unnecessary frame modification
lib/rbcodec/codecs/libm4a/demux.c [diff]
roman.artiukhin
2023-09-18 6acb6446e6: Codecs: mp4: Improve support for long files. Part 2

Don't store sample_to_chunk table and read data on demand instead (it's required only once for building lookup table). It allows to store 2x bigger lookup table.
lib/rbcodec/codecs/libm4a/demux.c [diff]
lib/rbcodec/codecs/libm4a/m4a.h [diff]
roman.artiukhin
2023-09-18 3c9be11411: option_select HASFLAG guard macro expansion with parens

cheap insurance
apps/gui/option_select.c [diff]
William Wilgus
2023-09-17 e8a17b1282: option_select.c clean-up option_screen

No functional changes
apps/gui/option_select.c [diff]
William Wilgus
2023-09-15 27aa95afcb: Codecs: mp4: Fix seek in very large files

Samples count requires 64 bit
lib/rbcodec/codecs/aac.c [diff]
lib/rbcodec/codecs/alac.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
lib/rbcodec/codecs/libm4a/m4a.h [diff]
roman.artiukhin
2023-09-15 d2f7777f7a: Codecs: mp4: metadata: Fix time length in very large files

Fix 40 hours long book reported as 14 hours due to samples overflow
lib/rbcodec/metadata/metadata.h [diff]
lib/rbcodec/metadata/mp4.c [diff]
roman.artiukhin
2023-09-14 df51d49b22: [BugFix] F_CB_ONLY_IF_CHANGED Overlapped NVRAM

the flag I chose was already used for nvram settings moved both CB flags to unused flags
apps/settings.c [diff]
apps/settings_list.h [diff]
William Wilgus
2023-09-13 d8b995c642: speed up adding files from filetree WIP

open an insert context

add tracks using the opened context

release opened context and sync the playlist
apps/filetree.c [diff]
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2023-09-11 84450dfd5d: Playback: Fix 'auto' frequency not applied when paused

A frequency change didn't go into effect immediately when a user picked "Auto" for the sample rate, while playback was paused
apps/playback.c [diff]
Christian Soffke
2023-09-10 c8c3de9926: [Fix Red] Ability to control backlight for soft lock action
firmware/backlight.c [diff]
William Wilgus
2023-09-10 7bbaf74c5c: Ability to control backlight for soft lock action

See Settings -> General Settings -> Display -> LCD Settings -> Backlight on Lock
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/backlight.c [diff]
firmware/export/backlight.h [diff]
roman.artiukhin
2023-09-10 6b0e3fe775: Codecs: mp4: Improve support for long files, prevent endless loop

pretty unlikely but I think in a memory exaustion scenario you might roll the uint8 over to zero and crash
lib/rbcodec/codecs/libm4a/demux.c [diff]
William Wilgus
2023-09-08 b3abb27179: FS13395: Update Italian Translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2023-09-06 2c6dfd06a6: Codecs: mp4: Improve support for long files

Reduce lookup_table (seek accuracy) till it fits on device

Fixes FS #13049
lib/rbcodec/codecs/libm4a/demux.c [diff]
roman.artiukhin
2023-09-06 a190d0ca9c: Codecs: mp4: Skip unknown chunks

Needed for opening some m4b books (see FS #13049)
lib/rbcodec/codecs/libm4a/demux.c [diff]
roman.artiukhin
2023-09-02 ed369e1d47: misc.c check_bootfile exit search loop after bootfile found
apps/misc.c [diff]
William Wilgus
2023-09-01 79b64a3fc7: setting_list.c playback frequency cleanup

moves the callback to settings_list

audio_set_playback_frequency now accepts an actual frequency 44100 192000 etc rather than an index
apps/lang/english.lang [diff]
apps/menus/playback_menu.c [diff]
apps/playback.c [diff]
apps/playback.h [diff]
apps/settings_list.c [diff]
William Wilgus
2023-08-29 873f49b1f0: settings_list add F_CB_ONLY_IF_CHANGED for settings

Recently I added F_CB_ON_SELECT_ONLY_IF_CHANGED in conjunction with the shuffle and repeat settings

instead it makes more sense to make F_CB_ONLY_IF_CHANGED and apply to all callbacks (F_CB_ON_SELECT_ONLY or on_exit)
apps/gui/option_select.c [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
William Wilgus
2023-08-29 e60ade1fbc: [BugFix] last fm scrobbler not saving pending tracks on shutdown
apps/menus/playback_menu.c [diff]
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2023-08-29 1c80f53581: [Bugfix] shuffle shenanigans from g5288 Fix #13369 shuffle & repeat callbacks

shuffle and sort were called on startup before playlist_init and also on setting switch even without select

repeat is also now handled in settings_list as well

after moving the callbacks to settings_list.c there was then a problem of unintended callbacks on exit of the menus fixed that with F_CB_ON_SELECT_ONLY

since the callback was called regardless of the setting being changed on F_CB_ON_SELECT_ONLY which is preferable in some circumstances I co-opted F_TEMPVAR to allow the callback only when the setting was changed with the flag F_CB_ON_SELECT_ONLY_IF_CHANGED
apps/gui/option_select.c [diff]
apps/gui/quickscreen.c [diff]
apps/menus/playback_menu.c [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
William Wilgus
2023-08-28 3883c978ab: Fix MP3 VBR seek jumps in wrong direction for long files

Fix jumps in the wrong direction by seeking relative to the current position
lib/rbcodec/codecs/mpa.c [diff]
roman.artiukhin
2023-08-27 8a22660770: Fix #13369: shuffle setting not working from shortcut.

Setting in shortcut was not being handled as it had no callback. In the settings menu it looks like the event is handled separately. Added a shuffle callback to the setting so it is called when changed from the shortcut.

Edit: move callback to within settings_list so playlist interface is unchanged.
apps/settings_list.c [diff]
JJ Style
2023-08-17 03d326fc90: Remove obsolete alias for audio_record function

Rockbox doesn't support HW codec anymore
apps/recorder/pcm_record.c [diff]
apps/recorder/recording.c [diff]
firmware/export/audio.h [diff]
Christian Soffke
2023-07-08 e5ecff3db7: font.c: Fix regression introduced in a749a95

Index was increased by 2 instead of by 1 in each loop iteration
firmware/font.c [diff]
Christian Soffke
2023-07-03 102dc49ed9: libmusepack: Fix inconsistent definition of an array size
lib/rbcodec/codecs/libmusepack/mpc_decoder.c [diff]
Solomon Peachy
2023-07-03 9fd59557fc: pdbox: Fix inconsistent function definition
apps/plugins/pdbox/PDa/src/m_glob.c [diff]
Solomon Peachy
2023-07-02 b1fac21e4e: playlist: Fix wrong handling of playlists without UTF-8 BOM

add_indices_to_playlist() wrongly assumes playlist->utf8 means the playlist has a UTF-8 BOM. It only means the file is UTF-8 encoded, and says nothing about the presence of a BOM.

Trying to seek past a BOM when there is none mangles the first filename in the playlist. Avoid this by closing & reopening the playlist, which ensures the BOM (or lack of it) gets detected properly.
apps/playlist.c [diff]
Aidan MacDonald
2023-07-02 3b1e95d480: playlist: Simplify get_track_filename()

Have get_track_filename() read track seek offset & insert type itself to avoid duplicating code. Most callers are not interested in that information, and only use it to call get_track_filename().
apps/playlist.c [diff]
Aidan MacDonald
2023-07-02 9ba51e3552: playlist: Remove playlist_add()

It was only used in filetree.c. It's still implemented in Lua so scripts using rb.playlist_add() won't break, but has been removed from the Lua API "backend".
apps/filetree.c [diff]
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lua/include_lua/playlist.lua [diff]
apps/plugins/lua/rocklib.c [diff]
apps/tree.c [diff]
Aidan MacDonald
2023-06-29 129fb4016b: Tagtree 'Play Next' Menu: Eliminate redundant filename retrieval

The file name for a track in the database has been retrieved already, before its context menu is displayed, or a hotkey is executed, see: https://github.com/Rockbox/rockbox/blob/8a22d2678a9fff97fd159a4b2eb45e637f08c79f/apps/tree.c#L811

So, skip over tagtree_current_playlist_insert and instead use playlist_insert_track() directly, when user selects something from the "Playing Next" menu or uses a hotkey.
apps/onplay.c [diff]
Christian Soffke
2023-06-23 207a7fe448: last.fm scrobbler: Use portable alignment
apps/plugins/lastfm_scrobbler.c [diff]
Christian Soffke
2023-06-22 8a22d2678a: skin: Fix minor compile warning caused by printf with size_t
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2023-06-22 2f0034e012: plugins: last.fm scrobbler: fix crashes on iPod/ARM
apps/plugins/lastfm_scrobbler.c [diff]
Christian Soffke
2023-06-22 939bd9c2c3: Playlist Viewer: Reset 'dirty' flag when saving playlist

Playlist Viewer, when quitting, should not ask you to save a playlist that hasn't been modified since it was last saved.
apps/playlist_viewer.c [diff]
Christian Soffke
2023-06-21 422ea20cef: Warn before overwriting another playlist on disk

When saving a playlist to an existing file on disk, warn user, unless the playlist's file name remains unchanged.
apps/menus/playlist_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/onplay.c [diff]
apps/playlist_catalog.c [diff]
apps/playlist_catalog.h [diff]
Christian Soffke
2023-06-15 2747e920ba: Track Info: Never return NULL in list item name callback

Just for good measure
apps/screens.c [diff]
Christian Soffke
2023-06-14 cfd5ef8db8: Current Track Info: Respond to track changes or finished playlist

Properly update displayed playlist index and all available metadata for the currently playing track. Also exit screen when playlist has finished to prevent nonsense data from being displayed.
apps/screens.c [diff]
Christian Soffke
2023-06-09 666a836227: Skin Engine: Enable dithering for images drawn onto backdrop layer

Backdrop images loaded using %X(filename) already had dithering enabled, but images loaded using the %x tag in viewports annotated with %VB did not.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Christian Soffke
2023-06-06 bd339dabac: FS #13993: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2023-06-06 412e0621c1: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2023-05-27 3ef49d9c5e: PictureFlow: Make Shuffle options available

The "Playing Next..." menu couldn't display any options for shuffling tracks of an album before
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/shortcuts.c [diff]
Christian Soffke
2023-05-26 028eafaeef: Onplay: Fix items from Queue submenu appearing at top level

If "Show Queue Options" was set to "in Submenu", the queue options would incorrectly appear at the top level after you had queued a track, at least until you entered and exited the submenu again without selecting an option.
apps/onplay.c [diff]
Christian Soffke
2023-05-26 31b8cd8f73: PictureFlow: Remove menu items for "Return" and "Clear Playlist"

On all players, it should be possible to return from the Main Menu by pressing the Back or Menu key. Unless I'm missing something...

"Clear Playlist" has hopefully become superfluous after the "Playing Next" context menu was added, which offers similar functionality.
apps/lang/english.lang [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2023-05-26 6e192dc28d: hiby: the second drive for these is "USB" not "HD1"
apps/lang/english.lang [diff]
Solomon Peachy
2023-05-26 49b877470d: PictureFlow: Add ability to go to last album

After launch, PictureFlow always goes to the currently playing album, or to a selected album, if applicable. Which is probably a useful default, but not always wanted. You can now get back to the album you were looking at when PictureFlow was last closed, or when the sorting was last changed.
apps/lang/english.lang [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2023-05-26 bbef598817: PictureFlow: Scroll through albums from track list

This lets players that can't spare any keys scroll through albums without leaving the track listing first, which was only possible on the M3K before.

Enter mode from Main Menu. While active, the gradient highlighting an album's selected track will not appear, and context menu options apply to the whole album instead of to a single track.

Exit mode by pressing buttons for Select/Back, or by quitting PictureFlow.

NB: Be sure to enable "Database in RAM" for a good experience, as the loading time for each album can become quite annoying otherwise.
apps/lang/english.lang [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2023-05-25 0f941488af: dbtool: Fix red.

Apparently _most_ targets have a dbtool built as a simulator variant, but _some_ are built as an application target. This commit fixes simulator-based targets, which weren't ever broken.

(Prior commits fixed things for _app_ targets, which haven't worked since at least 2020, maybe never..)
tools/database/database.c [diff]
Solomon Peachy
2023-05-25 8bc7ba5d22: dbtool: More fixes to dbtool operation

Now properly treats current directory as "/"
firmware/target/hosted/filesystem-app.c [diff]
tools/configure [diff]
tools/database/database.c [diff]
Solomon Peachy
2023-05-25 e803daae0a: dbtool: Fix it up so that it runs from the CURRENT working directory

This makes it far more useful, as before it insisted on scanning from the root directory and putting the generated db files in /.rockbox
tools/configure [diff]
tools/database/database.c [diff]
Solomon Peachy
2023-05-25 11e858b209: fix yellow introduced in previous commit
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2023-05-25 220fb04250: hosted: Fix the disk storage display in the rockbox info page

This was introduced by adding multivolume support to the hibyplayer units, and might affect other things, if so a more general fix might be needed.
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2023-05-24 f2a5b78b51: Sansa Clip keymap: Playlist on short Down press and Hotkey on long Down press in WPS
apps/keymaps/keymap-clip.c [diff]
manual/platform/keymap-sansaclip.tex [diff]
roman.artiukhin
2023-05-23 3acd5f86e5: build: Fix problems compiling old glibc with gmake >= 4.4

Three separate problems:

1) Make 4.4 defaults to a named pipe for jobserver control, this was incompatible with how glibc did recursive makes 2) Make 4.4 passed long arguments ( --foo ) into MAKEFLAGS and this broke stuff that wasn't expecting it 3) Circular dependency in a header generation due do make 4.4 being stricter/more consistent in how it orders rules vs which makefiles they came from. This one was the real !@#!@ to deal with.

This patch set fixes the hosted arm (glibc 2.19) and mips (glibc 2.25) toolchains.
tools/rockboxdev.sh [diff]
tools/toolchain-patches/glibc-220-make44.patch [new]
tools/toolchain-patches/glibc-225-make44.patch [new]
Solomon Peachy
2023-05-22 56fe1129da: configure: Deal with more variations of the 'ld' version output

eg, our current toolchian generates this:

GNU ld (GNU Binutils) 2.26.1

But the system toolchain on the buildserver generates this:

GNU ld version 2.37-37.fc36
tools/configure [diff]
Solomon Peachy
2023-05-22 e7cc77e5b8: configure: Detect linker's NO_CROSSREFS_TO() support

NO_CROSSREFS_TO() was first introduced in binutils 2.27. It is used to have the linker report errors when symbols from a list of sections refer to a specified section, which is useful for verifying that normal code does not refer to INIT_ATTR code.

Note this doesn't actually start using NO_CROSSREFS_TO() for builds -- that will have to wait until the toolchain upgrade when we'll have a new enough binutils -- it just detects support for the feature so it can be conditionally enabled in linker scripts.
tools/configure [diff]
Aidan MacDonald
2023-05-22 6e05fcf4d0: FS #13551: Correct the native name for the Slovak language (in rbutil)
utils/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2023-05-22 92b80bdba5: lang: Support languages that speak the units before a numerical value

Previously, it was hardcoded to the english convention of units-last, so
"100%" would be voiced as "one hundred percent". This adds a new language flag that makes the units be voiced first, ie "100%" will be voiced as "percent one hundred".

So far only the Chinese-traditional and Chinese-simplified languages utilize this feature (taken from an old ticket, FS #10340) but I'm sure others would want this feature too.
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/language.c [diff]
apps/language.h [diff]
apps/talk.c [diff]
tools/genlang [diff]
Solomon Peachy
2023-05-22 ab0ba139f5: pdbox: Gate the warning suppression to apply only to GCC 13 and newer.
apps/plugins/pdbox/PDa/src/m_obj.c [diff]
Solomon Peachy
2023-05-22 3a8d5525ae: pdbox: Fix warning with GCC13
apps/plugins/pdbox/PDa/src/m_obj.c [diff]
Solomon Peachy
2023-05-22 5dc0e4e0bc: disk: Support GUID Partition Tables (GPT)

Notes:

* Currently limited to 32-bit sector addresses due to internal Rockbox APIs. So this means a practical limit of 2TiB per drive.
* Only 'General Data' GPT partition type is recognised, as that's what SD cards seem to use for exFAT/FAT32.

Note that _booting_ off GPT-partitioned drive will require rebuilding the various rockbox bootloaders, and even then there may be platform limitations that preclude this.
firmware/common/disk.c [diff]
firmware/export/disk.h [diff]
Solomon Peachy
2023-05-21 8fbd44a3d3: [BugFix] Last Fm Scrobbler corrupted entries

I couldn't seem to reproduce the issue here: https://forums.rockbox.org/index.php/topic,54165.msg252081.html#msg252081

but I figure its probably a threading issue

so we now have a mutex on the cache

and to top it all off each cached entry has a crc and length that are checked before writing the entry to the file otherwise it is prepended with # FAILED - so hopefully scrobbler 'parsers?' don't barf on the log

Other changes: there is now a MRU table for tracks this should help prevent duplicates it is configurable..

the cache buffer now no longer uses fixed chunks allowing more tracks to be written between flushes
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2023-05-17 4554b90859: sdl: fix two bugs in ROCKBOXAUD_PlayAudio()

First was an off-by-one bug in the loop over buffers. The condition was
`i < this->hidden->n_buffers', but should have been <=, not <. This wasn't a critical issue, because the last iteration would check the currently playing buffer - an unlikely situation.

The second logic bug would make the code always think it had found an empty buffer, even when it had not, since `idx' was being unconditionally set every loop, rendering it unusable for a sentinel value. Fix that.
apps/plugins/sdl/src/audio/rockbox/SDL_rockboxaudio.c [diff]
Franklin Wei
2023-05-17 e232f69214: atjboottool: gzipped fw files, option for big-endian fw, clarify ECIES in fwu

Added fw modifications required to unpack real world player dumps.


Documented more fwu header fields, magic numbers and finite field arithmetics (extended Euclidean for inverse, long division for reducing modulo field_poly).

v3 encryption used is standard RC4 with the key additionally ciphered by the Elliptic Curve Integrated Encryption Scheme.

Either sect233k1 (NIST K-233) or sect163r2 (NIST B-163) curves can be used, with the former overwhelmingly prevailing, being hardwired in SDK's maker.exe. Using a private/public key scheme is superfluous because both are stored in the firmware, with the added level of complexity likely serving the purpose of obfuscation. The private key is generated at random with each invokation.

None of KDF or MAC from ECIES are used, RC4 key is directly xored with the shared secret. The random number r used to calculate rG isn't stored, but that's unimportant since only krG == rkG is actually used in the encryption.
utils/atj2137/atjboottool/Makefile [diff]
utils/atj2137/atjboottool/atj_tables.c [diff]
utils/atj2137/atjboottool/atj_tables.h [diff]
utils/atj2137/atjboottool/atjboottool.c [diff]
utils/atj2137/atjboottool/fw.c [diff]
utils/atj2137/atjboottool/fw.h [diff]
utils/atj2137/atjboottool/fwu.c [diff]
Nikita Burnashev
2023-05-17 72c0e49b41: scroll: Fix red from previous commit.

Targets with remote LCDs need to have the lcd scroll driver instantiated, even in the bootloader.

This is because lcd_remote_scroll_stop() is called, in addition to lcd_scroll_stop(). This could probably be excised.
firmware/drivers/lcd-scroll.c [diff]
firmware/scroll_engine.c [diff]
Solomon Peachy
2023-05-17 9134c688d9: scroll: Eliminate a warning when building a bootloader

Bootloaders don't support scrolling, so don't even try to compile the scroll_thread stuff
firmware/scroll_engine.c [diff]
Solomon Peachy
2023-05-09 fdf661606c: FS #13992: Update Serbian translation (Ivan Pesic)
apps/lang/srpski.lang [diff]
Solomon Peachy
2023-04-25 f4c95c70f9: [Bugfix] diacritic.c MRU discards an entry when slot available

a new slot gets added but it is set to 0 and an entry gets discarded instead set it to the last entry read
firmware/common/diacritic.c [diff]
William Wilgus
2023-04-22 67b98292a3: Temp quick fix for broken bookmarks

Mark playlist as not modified in playlist_resume
apps/playlist.c [diff]
roman.artiukhin
2023-04-18 8ff0fb6075: toolchain: Globally use '-fno-strict-overflow'

This turns on -fwrapv and -fwrapv-pointers.

As per GCC docs:

"This option instructs the compiler to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. This flag enables some optimizations and disables others."

All of our targets fall under this category.

For some time now we've been using -Wall which implies
-Wstrict-overflow=2, which only warns when the compiler actually implements a possibly questionable optimization, so I'd expect this to not affect our code size at all.
tools/configure [diff]
Solomon Peachy
2023-04-17 100e9ac137: Fix Red lastfm_scrobbler_viewer.c

plugins need rb-> for things like strlen
apps/plugins/lastfm_scrobbler_viewer.c [diff]
William Wilgus
2023-04-17 dfe12252bb: [Feature, Plugin] lastfm_scrobbler_viewer

a plugin to view lastfm scrobbler logs

uses print cell to give a spreadsheet view of scrobbler logs

buffers the whole file if possible otherwise it reads entries from disk

rudimentary text searching for columns include / exclude; all/any and case sensitive
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/keyremap.c [diff]
apps/plugins/lastfm_scrobbler.c [diff]
apps/plugins/lastfm_scrobbler_viewer.c [new]
apps/plugins/lib/printcell_helper.c [diff]
apps/plugins/lib/printcell_helper.h [diff]
apps/plugins/rb_info.c [diff]
apps/plugins/viewers.config [diff]
William Wilgus
2023-04-13 43b0fba75d: Track Info: Show number of tracks being inspected

Applies to the database and PictureFlow

+ fix red 6ca57ec
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/mul_id3.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/properties.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
Christian Soffke
2023-04-13 6ca57ec389: Track Info: Display larger file size and length values

When displaying Track Info for multiple tracks, the value for combined file sizes or length was capped at 2 GiB / ~596h. Limit has been raised by a factor of 1000.
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/mul_id3.c [diff]
apps/plugins/lib/mul_id3.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/properties.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
Christian Soffke
2023-04-08 78c92c5ca8: [Feature] Supress voice during sleep timer shutdown

if show_shutdown_message == false and sleep timer is active talk will be disabled on shutdown
apps/misc.c [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
William Wilgus
2023-04-05 3554306617: PictureFlow: Minor fixes/refactoring

- get_albumart_for_index_from_db: slide_index not allowed to be -1

- Fix visual glitch changing scroll direction: An errant frame was displayed when switching from one scroll direction immediately to the other

- Rename/combine functions and replace magic numbers for zoom animation

- iPods: Fix inability to skip or reverse zoom animation using Back button
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2023-04-05 8b95f2e758: plugins lib: use existing mp3info function
apps/plugins/lib/id3.c [diff]
apps/plugins/lib/id3.h [diff]
apps/plugins/lib/mul_id3.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/properties.c [diff]
Christian Soffke
2023-04-05 1e678977f2: Hotkey: Add List Bookmarks action
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/settings_list.c [diff]
roman.artiukhin
2023-04-05 31d56d4a59: Database: Disable delete hotkey unless audio file is selected

Fixes behavior where Rockbox would offer to delete nonexistent directories.
apps/onplay.c [diff]
Christian Soffke
2023-04-02 b31127db7d: [bugfix] x1000: Wait for FIFO to be empty rather than flushing

When data is not in packed-16-bit mode, flushing the fifo may result in swapping left and right channels if there happens to be an odd number of entries in the FIFO. This is especially likely when switching sample frequencies for some reason.

When stopping PCM DMA, disable DMA and Underrun Interrupts and then wait for FIFO to be empty before stopping AIC's playback.
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Dana Conrad
2023-04-01 287747591e: plugins: vbrfix: Fix fd leak & error handling

- mp3info returns true for error
- fd wasn't closed for non-vbr files
apps/plugins/vbrfix.c [diff]
Christian Soffke
2023-03-30 2456d28e21: [BugFix] open_plugin didn't recognize opx shortcuts

opx shortcuts allow an easy way to add parameters to plugins you should be able to set them as shortcuts now

the plugin hd a use after free bug on the dat file file descriptor
apps/open_plugin.c [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
2023-03-25 a2e5d9563f: [Feature] resume TSR plugins after interruption WIP

save tsr plugin path for later

resume tsr plugin when user stops the interrupting plugin

expand return of tsr_exit function to allow continue, suspend, terminate

tsr plugins check parameter at start to determine if the plugin is being resumed
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/announce_status.c [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/lastfm_scrobbler.c [diff]
apps/plugins/test_usb.c [diff]
William Wilgus
2023-03-24 2e99e2175b: playlist: Remove control file cache

Control cache entries cost 24 bytes per command, but cacheable commands are always less than that when written out to the file. We can actually cache *more* data by writing commands directly to the fd (native Rockbox has a 512-byte cache per fd) and it's much simpler.
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-03-24 a4cfa8ae6a: playlist: Unconditionally strip bogus dirs in playlist_peek()

The intent behind the check is to only do this if the filename comes from an on-disk file. With the RAM buffer is gone this is now "always" the case.
apps/playlist.c [diff]
Aidan MacDonald
2023-03-24 aab6a44fc5: filetree: Remove dead code in ft_build_playlist()

This checks for an out of memory condition when the filenames were buffered in RAM. The playlist no longer buffers anything in RAM so the code is unreachable.
apps/filetree.c [diff]
Aidan MacDonald
2023-03-24 1f1893f520: playlist: Remove in-ram filename storage

Use the playlist control file for directory playback instead of storing filenames in RAM. The implementation of that feature is very iffy and probably responsible for random crashes that may occur when skipping through directories rapidly.
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-03-24 ac1cbd5dd0: playlist: Clean up close_playlist_control_file()

Move locking outside the function since most callers already hold the lock.
apps/playlist.c [diff]
Aidan MacDonald
2023-03-24 e6534b051e: playlist: Add helpers for opening/closing .m3u playlist

This helps maintainability and ensures the opening is done consistently.
apps/playlist.c [diff]
Aidan MacDonald
2023-03-24 5eb24a9582: playlist: Cleanup get_next_dir()

Pass the direction as a signed integer to avoid jumping through unnecessary hoops.
apps/playlist.c [diff]
Aidan MacDonald
2023-03-23 58b2e45782: Fix unified syntax in ARM inline assembly

GCC 4.9 always emits assembly with divided syntax. Setting unified syntax in inline assembly causes the assembler to complain about GCC's generated code, because the directive extends past the scope of the inline asm. Fix this by setting divided mode at the end of the inline assembly block.

The assembler directives are hidden behind macros because later versions of GCC won't need this workaround: they can be told to use the unified syntax with -masm-syntax-unified.
apps/plugins/mpegplayer/mpeg_misc.h [diff]
firmware/asm/arm/corelock.c [diff]
firmware/asm/arm/thread.c [diff]
firmware/export/config.h [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
lib/rbcodec/codecs/demac/libdemac/vector_math16_armv6.h [diff]
Aidan MacDonald
2023-03-23 86429dbf1e: Using ARM Unified Assembler Language
apps/plugins/mpegplayer/libmpeg2/idct_arm.S [diff]
apps/plugins/mpegplayer/libmpeg2/idct_armv6.S [diff]
apps/plugins/mpegplayer/mpeg_misc.h [diff]
apps/recorder/jpeg_idct_arm.S [diff]
firmware/asm/arm/corelock.c [diff]
firmware/asm/arm/lcd-as-memframe.S [diff]
firmware/asm/arm/memcpy.S [diff]
firmware/asm/arm/memmove.S [diff]
firmware/asm/arm/memset.S [diff]
firmware/asm/arm/memset16.S [diff]
firmware/asm/arm/thread.c [diff]
firmware/export/config.h [diff]
firmware/target/arm/ata-as-arm.S [diff]
firmware/target/arm/ipod/video/lcd-as-video.S [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
lib/arm_support/support-arm.S [diff]
lib/rbcodec/codecs/demac/libdemac/udiv32_arm.S [diff]
lib/rbcodec/codecs/demac/libdemac/vector_math16_armv6.h [diff]
lib/rbcodec/codecs/libtta/filter_arm.S [diff]
lib/rbcodec/dsp/dsp_arm.S [diff]
lib/rbcodec/dsp/dsp_arm_v6.S [diff]
lib/unwarminder/safe_read.S [diff]
Chris Chua
2023-03-23 a64cad847e: playlist: Simplify playlist modified detection

Any modifications to the playlist (insert, delete, shuffle, etc) will cause the modified flag to be set. The flag is cleared when the playlist is saved. Code that generates playlists can manually clear the modified flag if appropriate; there is now a proper API for this so the tagcache and pictureflow don't need to resort to hacks.
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/playlist_viewer.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tagtree.c [diff]
Aidan MacDonald
2023-03-21 d40a598970: plugins: Simplify plugin/codec API versioning

Replace the minimum version bound with a check on the size of the API struct. The version only needs to be incremented for ABI breaking changes. Additions to the API won't need to touch the version number, resulting in fewer merge conflicts.
apps/codecs.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/imageviewer/image_decoder.c [diff]
apps/plugins/imageviewer/imageviewer.h [diff]
apps/plugins/lib/overlay.c [diff]
lib/rbcodec/codecs/codecs.h [diff]
Aidan MacDonald
2023-03-21 2fb2364686: makefiles: Fix escaping issues under GNU make 4.2

Make 4.3 and newer doesn't interpret comments in a shell call, whereas Make 4.2 and older do. Escaping the comment directly works on old makes, but on new makes the backslash is passed as well -- which we want to avoid.

The safe way to pass a literal "#" character to the shell on both versions is by embedding it in a variable and expanding that. It's ugly, but it works...
tools/functions.make [diff]
Aidan MacDonald
2023-03-21 ed7ab52e27: makefiles: Suppress stray backslash warnings with grep 3.8

GNU grep 3.8 warns about "\#" when compiling. The "#" has to be escaped for Makefiles and shell, but it isn't special to grep so grep thinks it's an invalid escape sequence.
apps/apps.make [diff]
manual/Makefile [diff]
tools/functions.make [diff]
tools/makesrc.inc [diff]
utils/hwstub/stub/hwstub.make [diff]
Aidan MacDonald
2023-03-20 977bc698db: [Feature] lastfm_scrobbler add option to set beep volume level
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2023-03-18 a0a59ab610: Fix locked context fallthrough

Enabling locked actions for all softlock targets accidentally broke keylock on touchscreens because the generic touchscreen keymap was missed. Trying to lookup CONTEXT_WPS|CONTEXT_LOCKED returned the mapping for CONTEXT_STD because the locked version wasn't explicitly handled.

But on almost all cases, a context's keymap does not change when the screen is locked. It makes more sense to mask out the locked flag and only check for it where needed.
apps/keymaps/keymap-agptekrocker.c [diff]
apps/keymaps/keymap-clip.c [diff]
apps/keymaps/keymap-erosq.c [diff]
apps/keymaps/keymap-fiiom3k.c [diff]
apps/keymaps/keymap-fiiom3klinux.c [diff]
apps/keymaps/keymap-fuzeplus.c [diff]
apps/keymaps/keymap-ma.c [diff]
apps/keymaps/keymap-nwz.c [diff]
apps/keymaps/keymap-ondavx777.c [diff]
apps/keymaps/keymap-rk27xx-generic.c [diff]
apps/keymaps/keymap-shanlingq1.c [diff]
apps/keymaps/keymap-touchscreen.c [diff]
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
apps/keymaps/keymap-ypr0.c [diff]
apps/keymaps/keymap-ypr1.c [diff]
apps/keymaps/keymap-zenxfi2.c [diff]
Aidan MacDonald
2023-03-18 0c29d1788e: [Bugfix] open_plugin_browse() not showing plugins

rockbox_browse() overrides the desired dirfilter with global_settings.dirfilter if you aren't using one of the SHOW_ modes > NUM_FILTER_MODES (which come with their own sideeffects)

add flag BROWSE_DIRFILTER to override global_settings.dirfilter with browse_context.dirfilter

add ability to set tc->browse to NULL to exit dirbrowse immediately
apps/open_plugin.c [diff]
apps/tree.c [diff]
apps/tree.h [diff]
William Wilgus
2023-03-10 b6d04d1ac0: [BugFix] chunk_alloc pass NULL to buflib_shrink

old_chunk has already been unpinned therefore the address could be incorrect NULL will ensure buflib_shrink uses the same start address
firmware/chunk_alloc.c [diff]
William Wilgus
2023-03-03 4faffe0a9c: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2023-03-03 f6db0c60e0: FS13390: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2023-02-16 fcf24ae387: [BUGFIX] chunk_alloc pinned buffer

if there weren't previous chunks new buffer was pinned without being unpinned
firmware/chunk_alloc.c [diff]
William Wilgus
2023-02-16 a749a95840: font.c cleanup

find_font_index can use font_filename_matches_loaded_id()

font_path_to_glyph_path doesn't need strcat
firmware/export/font.h [diff]
firmware/font.c [diff]
William Wilgus
2023-02-16 e7a01ca4b2: usb screen: honor HAVE_LCD_SPLIT

Clip+ displays the logo with the LCD split inbetween. Calculate the y offset to be directly after the split if possible. Thanks go to William Wilgus for fixing a similar issue and pointing me to macros I was looking for.
apps/gui/usb_screen.c [diff]
Wolfram Sang
2023-02-15 ff98a54cd9: font.c return false if id is out of range instead of NULL

forgot to change this to match the bool return
firmware/font.c [diff]
William Wilgus
2023-02-15 91c8633e8c: [BugFix] font.c filename was movable

stupid bug on my part font_filename was pointing to a movable alloc therefore that data could be moved out from under the returned pointer

instead pin the internal calls to core_get_data and remove font_filename in favor of a function that checks if a filename matches the loaded font as this was all it was used for anyway
apps/settings.c [diff]
firmware/export/font.h [diff]
firmware/font.c [diff]
William Wilgus
2023-02-09 3bb75e0039: tagtree.c optimize get_tag()

store tag length to shortcut strcmp

this is nearly as fast as making a hash table using gperf

its not the hottest path but its even slightly faster to shortcut based on string length

if (tagstr_len > match->len) continue; else if (tagstr_len < match->len) break;

but I found no measurable difference I don't think its worth the extra constraint of keeping tags sorted
apps/tagtree.c [diff]
William Wilgus
2023-02-07 23cb6139bd: SID: Disable SID on 2MB targets, as cRSID needs a lot of RAM.

Also add a note that SID might not play in realtime on all targets
lib/rbcodec/codecs/SOURCES [diff]
lib/rbcodec/codecs/codecs.make [diff]
manual/appendix/file_formats.tex [diff]
Solomon Peachy
2023-02-07 88f4f1c8d0: metadata: sid: allow RSIDs as well

cRSID also allows to play RSIDs (hence the name of the library). So, allow them as well.
lib/rbcodec/metadata/sid.c [diff]
Wolfram Sang
2023-02-07 70ce734ece: codec: sid: use cRSID as a library for playing SID files
docs/CREDITS [diff]
lib/rbcodec/codecs/cRSID/README.rockbox [new]
lib/rbcodec/codecs/cRSID/SOURCES [new]
lib/rbcodec/codecs/cRSID/cRSID.make [new]
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/sid.c [diff]
Wolfram Sang
2023-02-07 15c0f0576e: codec: sid: split cRSID header into a public and a private header

Needed to compile cRSID as a proper library.
lib/rbcodec/codecs/cRSID/C64/C64.c [diff]
lib/rbcodec/codecs/cRSID/C64/libcRSIDc64.h [new]
lib/rbcodec/codecs/cRSID/host/audio.c [diff]
lib/rbcodec/codecs/cRSID/libcRSID.h [diff]
Wolfram Sang
2023-02-07 e8135fea5a: codec: sid: add cRSID-1.0 for 21st century SID playback

Plain import of the library parts first. Adaptions to Rockbox will follow. A *lot* of kudos go to Mihaly Horvath for creating this library from his already lightweight cSID-light, mainly for Rockbox. Besides a lot of other things, he made his algorithms integer-only and significantly improved the C64 emulation, so finally RSIDs could be played as well as PSIDs. TinySID was nice for what it is, but this is a quantum leap in SID playback quality for Rockbox. Check for example:

https://hvsc.csdb.dk/MUSICIANS/P/Page_Jason/Eighth.sid https://hvsc.csdb.dk/MUSICIANS/J/Jeff/Blowing.sid
lib/rbcodec/codecs/cRSID/C64/C64.c [new]
lib/rbcodec/codecs/cRSID/C64/CIA.c [new]
lib/rbcodec/codecs/cRSID/C64/CPU.c [new]
lib/rbcodec/codecs/cRSID/C64/MEM.c [new]
lib/rbcodec/codecs/cRSID/C64/SID.c [new]
lib/rbcodec/codecs/cRSID/C64/SID.h [new]
lib/rbcodec/codecs/cRSID/C64/VIC.c [new]
lib/rbcodec/codecs/cRSID/README.txt [new]
lib/rbcodec/codecs/cRSID/host/audio.c [new]
lib/rbcodec/codecs/cRSID/host/file.c [new]
lib/rbcodec/codecs/cRSID/libcRSID.c [new]
lib/rbcodec/codecs/cRSID/libcRSID.h [new]
Wolfram Sang
2023-02-07 1c26f565bf: tagnavi make track submenu

add some faster options to the track menu add a shortcut for basename formatting sort basename results

filename - by sorted filename title - just title no formatting untagged items are unsorted as well title mm:ss - title and duration
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tagcache.c [diff]
apps/tagnavi.config [diff]
apps/tagtree.c [diff]
William Wilgus
2023-02-05 b5d93a6605: Revert "tagtree remove unneeded strlen"

This reverts commit 8379c6eb07e7daf26ca74aac7f46c4e331743d84.

Reason for revert: tcs.result_len is not the same as strlen(dptr->name) + 1 since it gets filled with filename
apps/tagtree.c [diff]
William Wilgus
2023-02-04 d5a84d42b0: [BugFix] tagcache.c fix off by one error in find_entry_disk()

the tagcache counts the null terminator strlen however, does not no matching entries makes for a terrible amount of disk searching and a hang on devices without dircache to save them
apps/tagcache.c [diff]
William Wilgus
2023-01-31 c955d93075: font.c dynamic path name

only alloc enough space for the path instead of a fixed buffer

round up the path buffer size to slightly more thna the longest common path length to reduce reallocations
firmware/font.c [diff]
William Wilgus
2023-01-29 78718aa7eb: playlist: Annotate locks as read/write

Distinguish read locks from write locks to aid converting the mutex to an MRSW lock at some point in the future. Everything is a write lock for now and a mutex is still used, so there's no change in behavior.
apps/playlist.c [diff]
Aidan MacDonald
2023-01-29 25bd3bc971: playlist: Optimize playlist_remove_all_tracks()

This was insanely slow for large playlists. Implement it as a constant-time operation to avoid the O(N!) blowup, and add a new "clear" command to the control file to avoid flooding it with individual delete commands.
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-01-29 2c4546ba99: playlist: Remove unused PLAYLIST_DELETE_CURRENT
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-01-29 d85f4b5e1c: pdbox: Move core thread off COP

This is all but guaranteed to be broken since pdbox doesn't use SHAREDBSS_ATTR or SHAREDDATA_ATTR, needed to share memory safely with COP threads.

Judging by the codec performance comparison on the wiki, if the iRiver H100 and H300 can run PDbox on one core, PP targets should have no problem doing it - they are 2-4x faster even on codecs that don't have multi-core optimizations.
apps/plugins/pdbox/pdbox.c [diff]
Aidan MacDonald
2023-01-27 4e5fcbe898: fix red #2 d6fb80d4
apps/tagcache.c [diff]
William Wilgus
2023-01-27 1d6ce5193f: fix red d6fb80d4
apps/tagcache.c [diff]
William Wilgus
2023-01-27 00e5c81ecb: debug_menu database delay redraw

only redraw every 100 entries
apps/debug_menu.c [diff]
William Wilgus
2023-01-27 d6fb80d4ff: Tagcache - Ramcache Move ref checks, speed up disk searches

move loading file reference to a separate function

some optimization of the disk search function check tag length before reading the actual entry & reduce number of lseek calls this affects startup resume as well before tagcache is done loading
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
William Wilgus
2023-01-23 1025283042: usb: Fix iPod video connection issues

Apparently a response is coming out of nowhere and tripping this check. I can't be bothered to look into it; it would be better to just update the ARC USB driver to the new control request API...
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2023-01-23 c0c1a6e5f0: Fix yellow 65b3ff81c5
apps/playlist.c [diff]
Aidan MacDonald
2023-01-23 65b3ff81c5: playlist: Fix dircache scan thread deadlocks

Fix deadlocks in the dircache scan thread caused by incorrect lock ordering. Mutating operations need to stop the thread to prevent it from accessing invalid data; this must always be done before taking the playlist lock to avoid deadlocking the scan thread.
apps/playlist.c [diff]
Aidan MacDonald
2023-01-23 ce52d0c870: playlist: Fix mutex initialization

This is a one-time thing; make sure it doesn't happen more than once.
apps/playlist.c [diff]
apps/playlist_viewer.c [diff]
Aidan MacDonald
2023-01-23 2a40d42012: playlist: Refactor control cache flush

Make background control file flushing work on non-dircache targets. It has nothing to do with dircache and doesn't belong in the dircache scan thread.
apps/playlist.c [diff]
Aidan MacDonald
2023-01-23 551e6aac50: playlist: Remove volatile from indices

This is not necessary. Volatile doesn't create a memory barrier wrt. non-volatile accesses and there are no interrupts involved, so there's no reason to use it here.
apps/playlist.h [diff]
Aidan MacDonald
2023-01-23 fcb6239aba: playlist: Remove current flag

Only current_playlist will have it set, so compare pointers instead.
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-01-22 dd2a0aeab0: Use perceptual volume scale for volume bars

Display volume bars using a perceptual scale instead of the linear dB scale. This makes adjusting volume with the bar a lot more usable on touchscreen targets.
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/wps.c [diff]
Aidan MacDonald
2023-01-22 82e26ff2e4: Fix manuals 5b27e2255a

Some targets don't have \ButtonVolUp and \ButtonVolDown so reword to avoid using them.
manual/configure_rockbox/system_options.tex [diff]
Aidan MacDonald
2023-01-22 5b27e2255a: Add perceptual volume adjustment

The perceived loudness change of a change in volume depends on the listening volume: at high volumes a 1 dB increment is noticeable, but at low volumes a larger increment is needed to get a comparable change in loudness.

Perceptual volume adjustment accounts for this fact, and divides the hardware volume range into a number of steps. Each step changes the dB volume by a variable amount, with most of the steps concentrated at higher volumes. This makes it possible to sweep over the entire hardware volume range quickly, without losing the ability to finely adjust the volume at normal listening levels.

Use "Volume Adjustment Mode" in the system settings menu to select perceptual volume mode. The number of steps used is controlled by "Number of Volume Steps". (Number of steps has no effect in direct adjustment mode.)

It's still possible to set a specific dB volume level from the sound settings menu when perceptual volume is enabled, and perceptual volume does not affect the volume displayed by themes.
apps/features.txt [diff]
apps/gui/list.c [diff]
apps/gui/quickscreen.c [diff]
apps/gui/wps.c [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/sdl/SDL_mixer/timidity/playmidi.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/config.h [diff]
manual/configure_rockbox/system_options.tex [diff]
Aidan MacDonald
2023-01-22 15c4447b66: Fix red dc83963962
apps/misc.c [diff]
Aidan MacDonald
2023-01-22 dc83963962: Add helpers for converting to/from normalized (perceptual) volume

These routines were taken from alsamixer and converted to fixed point for Rockbox.
apps/misc.c [diff]
apps/misc.h [diff]
docs/LICENSES [diff]
Aidan MacDonald
2023-01-22 66519000f4: ErosQNative: Enable Line Out capabilities on new revision players

The newer players have some changed hardware, but most importantly the line out now appears to be routed through the stereo switch instead of being hardwired directly off the DAC.

Disable muting the headphone amp, enable switching the stereo switch, and rename some of the GPIOs to be more generic since the DAC, headphone amp, and stereo switch all appear to have changed.
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/gpio-target.h [diff]
Dana Conrad
2023-01-22 c307d98e3f: playlist: pin dircache fileref buffer during background scanning

dircache_search() can yield, which would lead to memory corruption if the playlist dcfrefs buffer is moved at that point. Prevent this from happening by storing the buflib handle and pinning the buffer while scanning the dircache.
apps/playlist.c [diff]
apps/playlist.h [diff]
Aidan MacDonald
2023-01-19 32f365bf3c: database: make parent tables work with plugin

Enables the use of PictureFlow and the Properties plugin with parent tables of ALLSUBENTRIES, such as an album or album artist, instead of individual tracks.
apps/misc.h [diff]
apps/onplay.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/properties.c [diff]
apps/tagtree.c [diff]
apps/tagtree.h [diff]
Christian Soffke
2023-01-19 4d53d1b52b: PictureFlow: fix_path_part checked too many chars

Shouldn't have any effect if album_name is null-terminated, but still....
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2023-01-19 f441d6bf05: plugins: lrcplayer: eliminate redundant function
apps/plugins/lrcplayer.c [diff]
Christian Soffke
2023-01-19 36cef88d47: PictureFlow: id3 functions refactoring

- Move multiple-id3 functionality into lib
- Extract retrieve_id3 function

In preparation for using these functions from the Properties plugin.
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/id3.c [new]
apps/plugins/lib/id3.h [new]
apps/plugins/lib/mul_id3.c [new]
apps/plugins/lib/mul_id3.h [new]
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2023-01-19 6129bfbb95: PictureFlow: Eliminate 'prompt' launch parameter

This was added in commit d553bb1 and doesn’t seem to be used anymore.

Return PLUGIN_OK since an error message is already produced.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2023-01-19 1b383ef480: chunk alloc add buflib_get_pinned and chunk caching
apps/playlist.c [diff]
firmware/chunk_alloc.c [diff]
firmware/include/chunk_alloc.h [diff]
William Wilgus
2023-01-18 bd7b54a3c4: usb: Attempt to handle overlapped control requests in legacy drivers

It seems connecting an iPod Video to a Mac triggers the null request check, resulting in a panic. Ignoring the error with a bare return "fixes" it and allows the iPod to connect. This isn't ideal though, because it could silently introduce bugs on other targets.

The likely cause of this is the host sending control requests too fast, or a driver problem (the Video uses the ARC driver, which is still on the legacy interface), with multiple requests getting queued at once. Since the USB core expects to deal with only one request at a time, the second response trips the check.

Try to handle this situation a bit more gracefully by detecting overlapped requests and returning a STALL to the host when it occurs. At this point the USB stack is able to safely handle a new request.

Link: https://forums.rockbox.org/index.php/topic,54414.0.html
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2023-01-18 969e1ef6cd: Bump codec API version, remove dummy configure loop in dsp_init()

It turns out removing DSP_INIT broke the codec ABI and caused old codecs to crash; the loop and mdelay() was a red herring.

This reverts commit 541960a11061213f682d67bb036f861b2605f9d3.
lib/rbcodec/codecs/codecs.h [diff]
lib/rbcodec/dsp/dsp_core.c [diff]
lib/rbcodec/dsp/dsp_core.h [diff]
Aidan MacDonald
2023-01-16 aae34b2e7f: playlist: enable queue send

Apparently queue_send() silently falls back to queue_post() if sending isn't enabled. Doesn't seem like a good idea, as post and send are definitely *not* interchangeable!

The playlist code relies on queue_send()'s blocking behavior to prevent the dircache thread from using potentially stale pointers.
apps/playlist.c [diff]
Aidan MacDonald
2023-01-16 a9b93bb4cd: buflib_malloc: fixed signed/unsigned comparison
firmware/buflib_malloc.c [diff]
Aidan MacDonald
2023-01-16 d521020d21: [Feature] Add total entries to database info

show total database entries in debug>Database Info
apps/debug_menu.c [diff]
apps/tagcache.c [diff]
apps/tagcache.h [diff]
William Wilgus
2023-01-16 d39fcf5c89: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2023-01-16 0d8b3fe0b9: FS #13385: Updated Polish Translation (Adam Rak)

I applied the wrong diff, which missed a bunch of stuff.
apps/lang/polski.lang [diff]
Solomon Peachy
2023-01-15 2cb9c7ac29: FS #13385: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2023-01-15 56442f6b7f: rbcodec: Fix FLAC out of bounds read

Commit 6bcd830490 ported an optimization to decode_subframe_fixed() from FFmpeg (upstream commit 08965b22e2). This contains an out of bounds read, which doesn't affect the decoder output, but makes ASAN complain.

FFmpeg fixed the out of bounds read (upstream commit 0ec7b71de8) but that appears to increase code size a lot.

Inlining the initialization of a, b, c, d into the switch produces similar code as the non-bounds-checked version with only a handful of instructions of overhead (checked on MIPS & ARM).
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
Aidan MacDonald
2023-01-15 67cb2e3cdc: Add core_get_data_pinned(), use it where possible
apps/core_keymap.c [diff]
apps/misc.c [diff]
firmware/include/core_alloc.h [diff]
Aidan MacDonald
2023-01-15 9e53d5541f: "Fix" warble build warnings 800bc000a0

Not really sure how best to deal with the warnings (redefinition of ARRAYLEN, etc.) short of splitting things out of system.h but this is good enough for now.
lib/rbcodec/test/rbcodecconfig.h [diff]
Aidan MacDonald
2023-01-15 800bc000a0: buflib: Add pinned get/put data functions

These are more efficient than separate pin/unpin calls because pin count increment and decrement can be done cheaply when the data pointer is known.

Secondly, pinned access can be made safe against preemption by hardware interrupts or other CPU cores; buflib_get_data() can't. This makes it more useful under different threading models and for SMP targets; both of which are not particularly relevant to Rockbox now, but might be in the future.
firmware/buflib_malloc.c [diff]
firmware/buflib_mempool.c [diff]
firmware/include/buflib.h [diff]
firmware/include/buflib_malloc.h [diff]
firmware/include/buflib_mempool.h [diff]
Aidan MacDonald
2023-01-15 92565e9246: buflib: Add malloc-backed buflib

This is intended for improving the effectiveness of tools like ASAN when debugging memory errors in the sim. It's not meant to be a serious allocator for hosted targets.

Enable it by changing the buflib backend in config.h.
firmware/SOURCES [diff]
firmware/buflib_malloc.c [new]
firmware/export/config.h [diff]
firmware/include/buflib.h [diff]
firmware/include/buflib_malloc.h [new]
Aidan MacDonald
2023-01-15 f2f198663e: buflib: Move the API back into buflib.h

To minimize code duplication between buflib backends move the public part of the API to buflib.h. Also rewrote documentation for the whole API.
firmware/include/buflib.h [diff]
firmware/include/buflib_mempool.h [diff]
Aidan MacDonald
2023-01-15 f995c26de9: buflib: Add CONFIG_BUFLIB_BACKEND for selecting a buflib backend

Defaults to the normal "mempool" backend, which is currently the only implementation.
apps/plugin.h [diff]
firmware/SOURCES [diff]
firmware/buflib_mempool.c [diff]
firmware/core_alloc.c [diff]
firmware/export/config.h [diff]
firmware/include/buflib.h [new]
firmware/include/buflib_mempool.h [diff]
firmware/include/chunk_alloc.h [diff]
firmware/include/core_alloc.h [diff]
Aidan MacDonald
2023-01-15 680261fbb7: buflib: Prep for multiple backend support, rename to buflib_mempool

Rename the current buflib implementation to buflib_mempool.
apps/plugin.h [diff]
firmware/SOURCES [diff]
firmware/buflib.c firmware/buflib_mempool.c [rename]
firmware/core_alloc.c [diff]
firmware/include/buflib.h firmware/include/buflib_mempool.h [rename]
firmware/include/chunk_alloc.h [diff]
firmware/include/core_alloc.h [diff]
lib/rbcodec/test/SOURCES [diff]
Aidan MacDonald
2023-01-14 e23c78522a: si4700: remove unneeded ';' directly after a 'case'

Signed-off-by: Wolfram Sang
firmware/drivers/tuner/si4700.c [diff]
Wolfram Sang
2023-01-14 e61a5c957c: PictureFlow: Add ability to insert into playlists

Songs or albums can now be added to new or existing playlists directly from PictureFlow.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2023-01-14 1e4ee1917c: Fix red in 7f265ee
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/wrappers.h [diff]
Christian Soffke
2023-01-14 7f265ee8dd: Database: Add ability to insert multiple files into playlists

You could only add single files to playlists from the database browser before. This enables adding any database selection to a new or existing playlist.
apps/misc.c [diff]
apps/misc.h [diff]
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/playlist_catalog.c [diff]
apps/playlist_catalog.h [diff]
apps/playlist_viewer.c [diff]
apps/recorder/albumart.c [diff]
apps/tagtree.c [diff]
apps/tagtree.h [diff]
apps/tree.c [diff]
Christian Soffke
2023-01-14 cc79f1b543: on_play.c clean up playing_time

move seconds and sizes to arrays indiexed by enums use a loop for the display and talk of each stop exiting on SYS_EVENTs
apps/onplay.c [diff]
William Wilgus
2023-01-14 6e08731835: [Feature] onplay.c Playlist Playing Time more fault tolerant

bad tracks now get skipped with a message at the end of scanning rather than an error killing the count
apps/onplay.c [diff]
William Wilgus
2023-01-14 202d8939c8: [Feature] xduoo X3 add pitchscreen hotkey to wps

Back(home) + option in that order will bring up the pitchscreen
apps/keymaps/keymap-xduoox3.c [diff]
William Wilgus
2023-01-14 958daa925e: [BUGFix] ClipPlus move picker below yellow screen split

Sansa Clip and Clip+ have a split monochrome screen some versions have a dead line of pixels having text split at this line makes it hard to read move text picker below this split on these devices
apps/recorder/keyboard.c [diff]
William Wilgus
2023-01-14 91c7e333d7: Revert "keyboard.c make editline respect current UI font"

This reverts commit ebebef556652bd271000727484b72e19970477e1.

Reason for revert: I don't want to get too deep into this till I come back to the keyboard rewrite (hopefully)
apps/recorder/keyboard.c [diff]
William Wilgus
2023-01-13 255a34c685: fix red from #641e91aa2f
firmware/export/jz4740.h [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2023-01-13 641e91aa2f: jz47xx: Add support for INIT region
firmware/export/config.h [diff]
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/crt0.S [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2023-01-13 fe16ab33dd: toolchain: Bump zlib to 1.2.13, for reals this time.
tools/rockboxdev.sh [diff]
Solomon Peachy
2023-01-13 dc0d05e220: toolchain: Bump zlib to 1.2.13 due to 1.2.12 being withdrawn
tools/rockboxdev.sh [diff]
Solomon Peachy
2023-01-13 40355caefd: buflib_shrink use NULL to signal start isn't changing
apps/filetypes.c [diff]
apps/tagtree.c [diff]
firmware/buflib.c [diff]
firmware/chunk_alloc.c [diff]
firmware/linuxboot.c [diff]
William Wilgus
2023-01-13 719d48afc4: buflib: Refactor various debugging features

Gate buflib_get_data() checking, debug printing, and buflib integrity checks behind individual defines in buflib.h, and turn them all off by default. If needed, they can be turned on manually when compiling.

The buflib debug menu is only available if debug printing is enabled, so after this commit it will no longer be included in normal builds -- it isn't very useful to end users.
apps/debug_menu.c [diff]
firmware/buflib.c [diff]
firmware/core_alloc.c [diff]
firmware/include/buflib.h [diff]
firmware/include/core_alloc.h [diff]
firmware/kernel/thread.c [diff]
firmware/target/hosted/sdl/thread-sdl.c [diff]
Aidan MacDonald
2023-01-13 e492b51d83: buflib: Remove block start / end distinction

Removing the variable-length name in the middle of buflib metadata makes it a lot easier to deal with.
firmware/buflib.c [diff]
Aidan MacDonald
2023-01-13 5a3ee83555: buflib: Remove CRC checks

The CRC is a fairly useless safety check because we already have specific checks to validate the metadata, and CRCs are only verified before calling the move callback. Removing the check should not significantly reduce buflib's robustness.
firmware/buflib.c [diff]
firmware/include/buflib.h [diff]
Aidan MacDonald
2023-01-13 31f03d9433: buflib: Optimize away the BSIZE metadata field

Now that allocations are unnamed, BSIZE is a constant.
firmware/buflib.c [diff]
Aidan MacDonald
2023-01-13 1e9ad3ca0d: Remove buflib allocation names, part two

Remove allocation names from the buflib API and fix up all callers.
apps/action.c [diff]
apps/core_keymap.c [diff]
apps/debug_menu.c [diff]
apps/filetypes.c [diff]
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/iap/iap-core.c [diff]
apps/misc.c [diff]
apps/playback.c [diff]
apps/playlist.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/radio/radioart.c [diff]
apps/rbcodec_helpers.c [diff]
apps/recorder/pcm_record.c [diff]
apps/shortcuts.c [diff]
apps/tagcache.c [diff]
apps/tagtree.c [diff]
apps/talk.c [diff]
apps/tree.c [diff]
apps/voice_thread.c [diff]
bootloader/x1000/boot.c [diff]
bootloader/x1000/utils.c [diff]
firmware/buflib.c [diff]
firmware/common/dircache.c [diff]
firmware/common/unicode.c [diff]
firmware/common/zip.c [diff]
firmware/core_alloc.c [diff]
firmware/font.c [diff]
firmware/include/buflib.h [diff]
...and 9 more files.
Aidan MacDonald
2023-01-13 3301c5aa6d: Remove buflib allocation names, part one

Remove the name handling code, but leave the allocation structure otherwise untouched; it's as if all callers provided a NULL name. The public API still accepts names but names are no longer stored or returned.
firmware/buflib.c [diff]
Aidan MacDonald
2023-01-13 879888b158: Avoid using buflib names for storing font paths

Naming your allocations is more of a debugging feature; it's a bad idea to abuse this feature for storing some random string. The font code does exactly that to remember the path used to load a font, and it's the only code that uses buflib names in this way.

Store the path inside the font allocation instead as a regular char array. For simplicity it's MAX_PATH sized, so this'll use a bit more memory than the buflib name method, maybe 1-2 KiB if a few fonts are loaded.
firmware/font.c [diff]
Aidan MacDonald
2023-01-13 ebebef5566: keyboard.c make editline respect current UI font
apps/recorder/keyboard.c [diff]
William Wilgus
2023-01-13 2d9cb673e5: add chunk_alloc to playlist.c #2

dc_thread_playlist was asking for invalid indices since previously the name buffer would have been valid it just got whatever junk data was left over

add dc_discard_playlist_pointers for HAVE_DIRCACHE targets this allows the dc_playlist_thread to stop its current lookup loop
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2023-01-13 00c7817c9c: [BugFix] playlist.c DIRCACHE stop scanning when changing indices

dc_playlist_thread may continue loading pointers even while underlying indices are changing instead stop the loop by marking pointers as clean and rebuild later
apps/playlist.c [diff]
William Wilgus
2023-01-12 16a32c576c: Fix red in 7e5fc4076a
firmware/export/i2c.h [diff]
Aidan MacDonald
2023-01-12 7e5fc4076a: Add INIT_ATTR to i2c_init()

It's usually only called from init() in main.c, so this is safe.

There is one more call in system-dm320.c from system_init(), but that's also "safe". I don't know if it's okay to call i2c_init() twice, but presumably it works...
firmware/export/i2c-coldfire.h [diff]
firmware/export/i2c-rk27xx.h [diff]
firmware/export/i2c-s5l8700.h [diff]
firmware/export/i2c-s5l8702.h [diff]
firmware/export/i2c.h [diff]
firmware/target/arm/imx31/i2c-imx31.c [diff]
firmware/target/arm/imx31/i2c-imx31.h [diff]
firmware/target/arm/s3c2440/i2c-s3c2440.h [diff]
firmware/target/arm/tms320dm320/i2c-dm320.h [diff]
firmware/target/mips/ingenic_x1000/i2c-x1000.h [diff]
Aidan MacDonald
2023-01-12 39439f6909: Add INIT_ATTR to system_init()

On single-core targets, system_init() is only called from init() in main.c, which is also INIT_ATTR, so this is safe.

Multi-core targets additionally call system_init() from cop_main(), which isn't marked INIT_ATTR. I'm fairly certain that it would be safe to add INIT_ATTR to cop_main() with a bit of refactoring, but I don't have a way of testing it. So for now, leave INIT_ATTR off for multi-core targets.
firmware/export/system.h [diff]
firmware/target/arm/imx31/gigabeat-s/system-gigabeat-s.c [diff]
Aidan MacDonald
2023-01-12 541960a110: rbcodec/dsp: restore configure loop in dsp_init() (FS #13386)

It seems removing this causes a crash on the Clip+ when playing any file. Appears to be a timing-related issue as replacing the loop with an mdelay() also fixes it. Needs further investigation to identify the real cause of the problem, see FS #13386.
lib/rbcodec/dsp/dsp_core.c [diff]
lib/rbcodec/dsp/dsp_core.h [diff]
Aidan MacDonald
2023-01-11 746fd7f2db: Revert "add chunk_alloc to playlist.c"

This reverts commit 89c021fbfa6cfad58d272769a1e8762cf32be204.

Reason for revert: crash when playing on disk playlist then playing a directory as an in-ram playlist
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2023-01-11 89c021fbfa: add chunk_alloc to playlist.c
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2023-01-11 7faf6be35f: chunk_alloc

chunk_alloc allows arrays (or any data) to be allocated in smaller chunks

you have to save the indices.. variable data will have variable indices you need to store these as [chunk_alloc] doesn't keep track if you have a fixed size for each alloc you can do indice / sizeof(data) or index * sizeof(data) to convert

Lots of debug stuff still in and it needs optimization

User provides chunk_size and max_chunks max_chunks * struct chunk will be allocated at start with (1) chunk_size allocation initially

alloc_chunk() with size = 0 shrinks the last allocation to the size of the data used

add OOM checks on buflib_alloc -- oops

move bytes available to the header -- less memory per chunk & better alignment keep track of the current in use chunk index -- should speed things up a bit

Now allows: realloc chunk header larger allocations than chunk size

reallocs smaller than existing will shrink the current array rather than alloc a new and copy data

Comments welcome :)
firmware/SOURCES [diff]
firmware/chunk_alloc.c [new]
firmware/include/chunk_alloc.h [new]
firmware/include/core_alloc.h [diff]
William Wilgus
2023-01-10 a513cee822: PictureFlow: Add 'Track Info' for tracks or whole albums

Context menu gains new option to view metadata for individual tracks or albums.

Will display an album's length and total file size. Other fields are displayed only if they are identical across all tracks (except for the album year, which is determined by the highest value encountered).
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/screens.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2023-01-10 d5e38062ea: Fix hotkey strings

missed in 7d13c0c
apps/onplay.c [diff]
Christian Soffke
2023-01-08 3694314058: [BugFix] voicefont.c buffer overflow

voicefont.c expected a max of 999 voice IDs we are at 1013 or so bad stuff happened TM new limit is 2048 and added an error message
(no file will be created if limit exceeded)
tools/voicefont.c [diff]
William Wilgus
2023-01-08 282a54b23c: [Feature] filetree fallback to loading a playlist from disk

give user option to load playlist from disk when namebuffer is too small -- max_playlist size still limits the total entries but filename length won't stop them from playing the directory
apps/filetree.c [diff]
apps/playlist.c [diff]
William Wilgus
2023-01-08 593103cd8b: lcd: Fix 4bpp optimized 16-bit alpha blit

Fixes a bug introduced by commit 5d0c382a59 that caused graphical corruption on anti-aliased fonts.
firmware/drivers/lcd-16bit-common.c [diff]
Aidan MacDonald
2023-01-07 528b6a9a15: manual: Update screenshots
manual/rockbox_interface/images/ss-context-menu-112x64x1.png [deleted]
manual/rockbox_interface/images/ss-context-menu-128x128x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-128x128x2.png [diff]
manual/rockbox_interface/images/ss-context-menu-128x64x1-clip.png [diff]
manual/rockbox_interface/images/ss-context-menu-128x64x1-xduoox3.png [diff]
manual/rockbox_interface/images/ss-context-menu-128x96x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-128x96x2.png [diff]
manual/rockbox_interface/images/ss-context-menu-132x80x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-138x110x2.png [diff]
manual/rockbox_interface/images/ss-context-menu-160x128x1.png [diff]
manual/rockbox_interface/images/ss-context-menu-160x128x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-160x128x2.png [diff]
manual/rockbox_interface/images/ss-context-menu-176x132x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-176x220x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-220x176x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-240x320x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-320x240x16.png [diff]
manual/rockbox_interface/images/ss-context-menu-96x96x16-sansaclipzip.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-112x64x1.png [deleted]
manual/rockbox_interface/images/ss-playlist-menu-128x128x16.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-128x128x2.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-128x64x1-clip.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-128x64x1-xduoox3.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-128x96x16.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-128x96x2.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-132x80x16.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-138x110x2.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-160x128x1.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-160x128x16.png [diff]
manual/rockbox_interface/images/ss-playlist-menu-160x128x2-h100.png [diff]
...and 7 more files.
Christian Soffke
2023-01-07 7d13c0c4eb: Rename "Playing Next..." menu items & hide Queue/Shuffle

"Play Next" instead of "Insert Next"
"Add" instead of "Insert"
"Play Last" instead of "Insert Last"
"Add Shuffled" instead of "Insert Shuffled"
"Play Last Shuffled" instead of "Insert Last Shuffled"

-"Queue" items hidden by default
- Shuffled options hidden by default
(Both can be enabled in options)

Resulting default menu:

Playing Next... Play Next Add Play Last Play
apps/lang/english.lang [diff]
apps/onplay.c [diff]
apps/settings_list.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2023-01-07 ed95892a1f: Rename “Current Playlist” and “Playlist Catalogue” context menus

Use action-oriented and more descriptive titles

"Add to Playlist..." instead of "Playlist Catalogue"
- "Add to Existing Playlist" instead of "Add to Playlist"
- "Add to New Playlist" (unchanged)

- "Playing Next..." instead of "Current Playlist"

In WPS context menu:

- "Current Playlist" instead of "Playlist"
apps/lang/english.lang [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
manual/configure_rockbox/playlist_options.tex [diff]
manual/main_menu/main.tex [diff]
manual/plugins/pictureflow.tex [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
manual/rockbox_interface/wps.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2023-01-07 21ca64d7cd: File Browser: Add “Set As..." context menu

Moves options for configuring:

- Playlist Directory
- Recording Directory
- Start Directory

into a single menu.

Necessary prerequisite for giving the
"Playlist Catalogue" context menu item a title that's a little more action-oriented ("Add to Playlist…”).
apps/lang/english.lang [diff]
apps/onplay.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
Christian Soffke
2023-01-06 5bb062391f: playlist.c fix old out of bounds read

In case next_index == -1, this would read before the start of the playlist->indices buffer.
apps/playlist.c [diff]
Aidan MacDonald
2023-01-06 5d0c382a59: lcd: Rewrite 16bit alpha bitmap blit

Avoids a harmless out of bounds reads in ASAN that occurs with malloc buflib. Code size and performance is similar.
firmware/drivers/lcd-16bit-common.c [diff]
Aidan MacDonald
2023-01-06 b444ecfca2: plugins: Properties: Add 'Last Modified' for audio files

In commit f3358eb, the Properties plugin started using the Track Info screen for audio files, which didn't show when the file was last modified. This adds it back.
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/properties.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
Christian Soffke
2023-01-06 5750eb3181: browse_id3: Only push activity when called from WPS

The Properties plugin and playlist viewer have each started using the existing Track Info screen.

In both cases, it may not be necessary to push a new activity. Which eliminates the need to perform an additional skin refresh.

I've also noticed at least one theme in the wild that assumes ACTIVITY_ID3SCREEN will only ever display info for the currently playing track (as it did previously) and adjusts the skin specifically for that purpose.
apps/screens.c [diff]
Christian Soffke
2023-01-06 8366b8511d: Fix red in 9bd5249
apps/plugins/bitmaps/remote_native/SOURCES [diff]
Christian Soffke
2023-01-06 9bd5249445: plugins: Credits: Fix logo sizes

Commit 1930ca8 repurposed the 'Logo' plugin's logos, whose dimensions are different from those used by show_logo, which was previously called to display the logo.
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/creditslogo.112x30x1.bmp [new]
apps/plugins/bitmaps/native/creditslogo.128x40x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.128x42x1.bmp [new]
apps/plugins/bitmaps/native/creditslogo.128x42x2.bmp [new]
apps/plugins/bitmaps/native/creditslogo.132x40x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.138x46x2.bmp [new]
apps/plugins/bitmaps/native/creditslogo.160x50x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.160x53x1.bmp [new]
apps/plugins/bitmaps/native/creditslogo.160x53x2.bmp [new]
apps/plugins/bitmaps/native/creditslogo.176x54x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.220x68x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.240x74x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.320x98x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.480x149x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.640x198x16.bmp [new]
apps/plugins/bitmaps/native/creditslogo.96x30x16.bmp [new]
apps/plugins/bitmaps/remote_native/SOURCES [diff]
apps/plugins/bitmaps/remote_native/remote_creditslogo.128x42x1.bmp [new]
apps/plugins/bitmaps/remote_native/remote_creditslogo.128x42x2.bmp [new]
apps/plugins/credits.c [diff]
Christian Soffke
2023-01-05 9367ef1ed6: [BugFix] Fix some Shif related UB -- ASAN

these are the low hanging fruit identified by ASAN

cast the byte values before shift
firmware/export/pcm_sampr.h [diff]
lib/rbcodec/codecs/libopus/ogg/framing.c [diff]
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2023-01-05 ea33e66021: [BugFix] Buffering.c NULL src for memcpy is UB -- ASAN

No clue if our implementation would suffer the same fate but the C standard states: Where an argument declared as size_t n specifies the length of the array for a function, n can have the value zero […] pointer arguments on such a call shall still have valid values, as described in 7.1.4.
apps/buffering.c [diff]
William Wilgus
2023-01-02 a23ae63a31: Increase maximum files in directory limit

Increase the default limit to 5000 files for targets with at least 8 MiB of RAM (the vast majority). The upper limit of the setting is now 40,000 or 100,000 if you have at least 8 MiB or 16 MiB of RAM, respectively.

Update the manual to mention that this setting can also impact the database browser. "Using the Database" already mentions it, but it's useful to say so in the setting's description.
apps/settings_list.c [diff]
manual/configure_rockbox/system_options.tex [diff]
Aidan MacDonald
2023-01-02 9d6f9441ae: manuals: Update warning on max entries in file browser / playlist

These settings have a warning that increasing them will shorten the audio buffer. This is not very useful, because users might not know what "shortening the music buffer" implies.

Since the size of the audio buffer is probably irrelevant for flash based storage, display the warning only for HDD-based targets, and explain what the drawbacks may be if the settings are set too high.
manual/configure_rockbox/system_options.tex [diff]
Aidan MacDonald
2023-01-02 e8e781b006: lua: rocklib_events fix

Do not spawn threads on COP as PP lacks cache coherency between cores, making it unsafe to access cacheable memory that might be accessed by the other core.
apps/plugins/lua/rocklib_events.c [diff]
Aidan MacDonald
2023-01-02 84fe501f53: Add locked actions to all soft lock targets

fiio m3k native is currently the only player with defined buttons different from the standard mapping.

This allows the user to use the keyremap plugin to specify differing keymaps for their device in the locked state
apps/action.c [diff]
apps/keymaps/keymap-agptekrocker.c [diff]
apps/keymaps/keymap-erosq.c [diff]
apps/keymaps/keymap-fiiom3k.c [diff]
apps/keymaps/keymap-fiiom3klinux.c [diff]
apps/keymaps/keymap-fuzeplus.c [diff]
apps/keymaps/keymap-ma.c [diff]
apps/keymaps/keymap-nwz.c [diff]
apps/keymaps/keymap-ondavx777.c [diff]
apps/keymaps/keymap-rk27xx-generic.c [diff]
apps/keymaps/keymap-shanlingq1.c [diff]
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
apps/keymaps/keymap-ypr0.c [diff]
apps/keymaps/keymap-ypr1.c [diff]
apps/keymaps/keymap-zenxfi2.c [diff]
apps/plugins/keyremap.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipzip.h [diff]
William Wilgus
2023-01-02 a00bd421ac: clean up button.c optimize !filter_first_keypress

do a bit of cleanup in button_tick move filter_first_keypress to a function pointer
firmware/backlight.c [diff]
firmware/drivers/button.c [diff]
firmware/export/backlight.h [diff]
William Wilgus
2023-01-02 6cbf2160e5: tlsf fix corruption checks

Turns out (~PTR_MASK) != (0xFFFFFFFF - PTR_MASK) in 64 bit land

tmp_b = (bhdr_t*) ( (intptr_t)b->prev_hdr & BLOCK_SIZE );

using ~STATE_MASK or even #define BLOCK_SIZE (~PTR_MASK) resolves the issue

switching BLOCK_SIZE TO ~STATE_MASK appears to fix it

Also define BLOCK_SIZE (~PTR_MASK)

Fix a few signed / unsigned errors
lib/tlsf/src/tlsf.c [diff]
William Wilgus
2022-12-31 3def8fee8c: [FixRed] ClipV2 has a hold button -- news to me

HAVE_LOCKED_ACTIIONS requires !defined(HAVE_HOLD_BUTTON)
apps/action.c [diff]
firmware/export/config/sansaclipv2.h [diff]
William Wilgus
2022-12-31 6ebec601f9: [Feature/Bugfix] keyremap add Context flags

Add context flags to keyremap CONTEXT_LOCKED CONTEXT_REMOTE CONTEXT_REMOTE_LOCKED

--CONTEXT_PLUGIN-- Removed -- Plugins need a custom action list supplied and a method of supplying them
apps/action.c [diff]
apps/action.h [diff]
apps/keymaps/keymap-clip.c [diff]
apps/plugins/keyremap.c [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
William Wilgus
2022-12-31 0330aa8eb2: [BugFix] printcell_helper selection out of bounds

on load printcell.selcol is -1 whioch is out of bounds as an index into an array
apps/plugins/lib/printcell_helper.c [diff]
William Wilgus
2022-12-31 485e96d6be: tlsf: Update to upstream 2.4.6 release

Seems to resolve FS #13383 and FS #13384
lib/tlsf/Changelog [diff]
lib/tlsf/README [diff]
lib/tlsf/libtlsf.make [diff]
lib/tlsf/src/tlsf.c [diff]
lib/tlsf/src/tlsf.h [diff]
Solomon Peachy
2022-12-31 85410589d1: Revert "keyremap allow remaps to work when player is locked"

This reverts commit ea7b80dab0ee9f087c1db76975d9490db8b189d1.

Reason for revert: Adding Context flags to the keyremap plugin
apps/action.c [diff]
William Wilgus
2022-12-31 484a79fcc0: x1000: Add INIT_ATTR to various target specific functions

Add INIT_ATTR to some low-hanging fruit in the X1000 code: GPIO init, GPIO initial state tables, clock init, and DMA init.
firmware/target/mips/ingenic_x1000/clk-x1000.h [diff]
firmware/target/mips/ingenic_x1000/dma-x1000.h [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
2022-12-31 a980d5f869: x1000: Enable support for INIT_ATTR

Enable INIT_ATTR support in config.h. Load init code to the codec buffer, following the convention used by other targets that support INIT_ATTR.
firmware/export/config.h [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
2022-12-31 ea7b80dab0: keyremap allow remaps to work when player is locked

keyremap doesn't have a notion of locked contexts add CONTEXT_LOCKED after keyremap so users don't have to specify multiple context flags to get Advanced keylock working with keyremaps
apps/action.c [diff]
William Wilgus
2022-12-31 855540e1f5: [BugFix] keyremap browse missing root, entry count off by 1

browse_context was missing its root causing a NULL deref

Export User Keys was looking for at least 4 entries when it only needed 3
apps/plugins/keyremap.c [diff]
William Wilgus
2022-12-31 1773e56447: tagtree: Discard item history when selection changes in both directions

A changed selection only caused the item history for deeper levels to be discarded in tagtree_enter, when you were descending, but not in tagtree_exit when you were ascending the menu hierarchy again.
apps/tagtree.c [diff]
Christian Soffke
2022-12-31 178560f495: Treat cue file as folder for next/prev folder action

Do not get stuck if it's the only cue file in folder
apps/gui/wps.c [diff]
roman.artiukhin
2022-12-30 b321a719d3: option_select & time_menu : Fix unbalanced push/pop activity
apps/gui/option_select.c [diff]
apps/menus/time_menu.c [diff]
Christian Soffke
2022-12-30 e180e45e01: events.c clean-up

check for invalid userdata by assigning the address of 'invalid_userdata' this cleans up the functions a bit and removes some extra conditionals
firmware/events.c [diff]
William Wilgus
2022-12-29 d59e135b04: plugins: Xobox: Fix highscore table on 2bit grayscale displays

After finishing a game of Xobox, background and foreground were both the same color, making the high score table invisible..
apps/plugins/lib/highscore.c [diff]
Christian Soffke
2022-12-29 66bed14f17: plugins: SpaceRocks: iPod keymap, use Menu button for Menu

Missing from faa2cb9

- Thrust is now Right instead of Menu
- Teleport is Left instead of Play/Pause
- Pause is Play/Pause
apps/plugins/spacerocks.c [diff]
manual/plugins/spacerocks.tex [diff]
Christian Soffke
2022-12-29 faa2cb9942: plugins: Improve usability of iPod keymaps

- Reduce need to press multiple buttons at the same time to quit a plugin

- Have "Menu" be default way to quit plugins or to access plugin menu

- Fall back to (Long) "Select" or Long "Menu" in cases where Menu button isn't available
(e.g. in ImageViewer and many games)

out of scope: boomshine, lua_scripts, Rockpaint, Doom, Duke3D, Pacbox, Quake, Sgt-Puzzles, Wolf3D, XWorld, Minesweeper, Pixel Painter, Spacerocks
apps/plugins/2048.c [diff]
apps/plugins/alarmclock.c [diff]
apps/plugins/bounce.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/clix.c [diff]
apps/plugins/clock/clock.c [diff]
apps/plugins/codebuster.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/demystify.c [diff]
apps/plugins/dice.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/fireworks.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/jackpot.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lamp.c [diff]
apps/plugins/logo.c [diff]
apps/plugins/matrix.c [diff]
apps/plugins/maze.c [diff]
apps/plugins/mazezam.c [diff]
apps/plugins/metronome.c [diff]
apps/plugins/mosaique.c [diff]
apps/plugins/open_plugins.c [diff]
apps/plugins/oscilloscope.c [diff]
...and 64 more files.
Christian Soffke
2022-12-27 52f59f637d: plugins: VU Meter: Ignore backlight timeout
apps/plugins/vu_meter.c [diff]
Christian Soffke
2022-12-23 5f2ca6718d: Revert "buflib.c strip path from alloc name"

The font code expects the full path to be stored in the buflib alloc so this breaks eg. saving the glyph cache.

This reverts commit 2b4a4070c99439898e22c9c9da2c21877d18a367.
firmware/buflib.c [diff]
Aidan MacDonald
2022-12-23 ba010851fa: Remove lib/x1000-installer

Carrying this library is somewhat of a maintenance burden because some Rockbox APIs are mocked or duplicated in the test suite and thus need to be fixed up when refactoring.

It's also unused & incomplete, so there's no good reason to keep it in tree any more.
lib/x1000-installer/.gitignore [deleted]
lib/x1000-installer/Makefile [deleted]
lib/x1000-installer/SOURCES [deleted]
lib/x1000-installer/include/xf_error.h [deleted]
lib/x1000-installer/include/xf_flashmap.h [deleted]
lib/x1000-installer/include/xf_nandio.h [deleted]
lib/x1000-installer/include/xf_package.h [deleted]
lib/x1000-installer/include/xf_stream.h [deleted]
lib/x1000-installer/include/xf_update.h [deleted]
lib/x1000-installer/src/xf_error.c [deleted]
lib/x1000-installer/src/xf_flashmap.c [deleted]
lib/x1000-installer/src/xf_nandio.c [deleted]
lib/x1000-installer/src/xf_package.c [deleted]
lib/x1000-installer/src/xf_stream.c [deleted]
lib/x1000-installer/src/xf_update.c [deleted]
lib/x1000-installer/test/data/lines_shuffled.txt [deleted]
lib/x1000-installer/test/data/lines_sorted.txt [deleted]
lib/x1000-installer/test/main.c [deleted]
lib/x1000-installer/test/test.h [deleted]
lib/x1000-installer/test/test_flashmap.c [deleted]
lib/x1000-installer/test/test_stream.c [deleted]
lib/x1000-installer/test_lib/core_alloc.c [deleted]
lib/x1000-installer/test_lib/core_alloc.h [deleted]
lib/x1000-installer/test_lib/fakenand.c [deleted]
lib/x1000-installer/test_lib/file.c [deleted]
lib/x1000-installer/test_lib/file.h [deleted]
lib/x1000-installer/test_lib/md5.c [deleted]
lib/x1000-installer/test_lib/md5.h [deleted]
lib/x1000-installer/test_lib/nand-x1000.h [deleted]
lib/x1000-installer/test_lib/pathfuncs.c [deleted]
...and 5 more files.
Aidan MacDonald
2022-12-23 6e794c9a2d: rbcodec dsp: Refactor DSP init routines, restore INIT_ATTR

Refactor DSP init routines so there is a dedicated init function for the stages that need it. Remove the DSP_INIT configure message. This allows the init code to be safely marked INIT_ATTR, saving a bit of code size, and allowing the linker to verify that there are no unsafe references to the init routines.
lib/rbcodec/dsp/dsp_core.c [diff]
lib/rbcodec/dsp/dsp_core.h [diff]
lib/rbcodec/dsp/dsp_misc.c [diff]
lib/rbcodec/dsp/dsp_proc_entry.h [diff]
lib/rbcodec/dsp/dsp_sample_io.c [diff]
lib/rbcodec/dsp/dsp_sample_io.h [diff]
lib/rbcodec/dsp/resample.c [diff]
lib/rbcodec/dsp/resample.h [new]
lib/rbcodec/dsp/tdspeed.c [diff]
lib/rbcodec/dsp/tdspeed.h [diff]
Aidan MacDonald
2022-12-22 34a092a997: rbcodec dsp: Replace enum dsp_ids arguments with unsigned int

Because casting to and from "enum dsp_id" just adds noise, change everything to unsigned int.
apps/plugin.h [diff]
lib/rbcodec/dsp/dsp_core.c [diff]
lib/rbcodec/dsp/dsp_core.h [diff]
lib/rbcodec/dsp/dsp_misc.c [diff]
lib/rbcodec/dsp/dsp_sample_input.c [diff]
lib/rbcodec/dsp/dsp_sample_io.c [diff]
lib/rbcodec/dsp/dsp_sample_io.h [diff]
lib/rbcodec/dsp/resample.c [diff]
lib/rbcodec/dsp/tdspeed.c [diff]
Aidan MacDonald
2022-12-22 b96b7640de: rbcodec dsp: Move dsp_sample_io_configure() to its own file

Makes dsp_sample_input.c a bit less messy, and dependencies are more explicit. There's possibly a minor loss of inlining but it isn't a big deal.
lib/rbcodec/SOURCES [diff]
lib/rbcodec/dsp/dsp_sample_input.c [diff]
lib/rbcodec/dsp/dsp_sample_io.c [new]
lib/rbcodec/dsp/dsp_sample_io.h [diff]
lib/rbcodec/platform.h [diff]
Aidan MacDonald
2022-12-21 646d5f92ef: ata: Prevent powering-off ATA hardwre if it reports as mSATA or m.2

As those form factors are typically not runtime removable and as such expect to always being powered up.

This is an experimental change, and we might revert it if it doens't help
firmware/drivers/ata.c [diff]
firmware/export/ata.h [diff]
Solomon Peachy
2022-12-21 1387d6480e: [Fix Red] consolidate bmp_read function between icons and skin_parser
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2022-12-21 88f6628423: consolidate bmp_read function between icons and skin_parser

uses fd now rather than opening file twice
apps/gui/icon.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
William Wilgus
2022-12-20 2b4a4070c9: buflib.c strip path from alloc name
firmware/buflib.c [diff]
William Wilgus
2022-12-20 18ec1a2aa6: [Bug Fix] Credits Plugin don't set the back/foreground on greyscale displays
apps/plugins/credits.c [diff]
William Wilgus
2022-12-20 83bb89d0b8: jx47xx: Rename crt0 'init' sections to 'startup'

Mirrors the change made to the x1000 target
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/crt0.S [diff]
Solomon Peachy
2022-12-19 1930ca8d66: remove rockboxlogo after boot INIT_ATTR

nets about 5k on clipzip (less on mono, more on others) to move rockboxlogo to .initdata section

Remove show_logo completely and move to main.c remove plugin stub give credits plugin its own copy credit fallback is now show_info()
apps/main.c [diff]
apps/menus/main_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/credits.c [diff]
apps/plugins/lua/rocklib.c [diff]
tools/bmp2rb.c [diff]
William Wilgus
2022-12-19 f37ebe5ed2: [BugFix] root redirect failed to match the peoper drive when internal drive is missing

HAVE_MULTIVOLUME is a subset of HAVE_MULTIDRIVE in normal circumstances they are interchangable but when the internal drive is not found the assumption falls apart

at the moment most of the bootloader are less selective about what drives/volumes they will mount therefore the volume might not match between what the bootloader returns for multiboot and what the firmware sees

updating bootloaders will fix this but it should probably be made more robust at the same time
firmware/include/dircache_redirect.h [diff]
William Wilgus
2022-12-18 992455dc58: Fix red in 8165a6c245
lib/rbcodec/dsp/eq.c [diff]
Aidan MacDonald
2022-12-18 8165a6c245: rbcodec dsp: Remove INIT_ATTR from the DSP library

All of these are technically unsafe cross-section references but most aren't reported by the linker, probably due to inlining. In practice there was no problem because the affected code was only run at init time anyway.

For now, remove INIT_ATTR until the init code can be refactored to avoid the problematic references. This should also save code size by moving more code to the init section.

dsp_init() gets to keep its attribute because it's already OK.
lib/rbcodec/dsp/dsp_core.c [diff]
lib/rbcodec/dsp/dsp_core.h [diff]
lib/rbcodec/dsp/dsp_misc.c [diff]
lib/rbcodec/dsp/dsp_sample_input.c [diff]
lib/rbcodec/dsp/dsp_sample_output.c [diff]
lib/rbcodec/dsp/resample.c [diff]
lib/rbcodec/dsp/tdspeed.c [diff]
lib/rbcodec/platform.h [diff]
Aidan MacDonald
2022-12-18 b650e774a1: kernel: Fix unsafe cross-section reference in init_tick()

This is a small wrapper function which calls other init code and is only called from init code; mark it INIT_ATTR to fix the unsafe reference.
firmware/kernel/include/tick.h [diff]
Aidan MacDonald
2022-12-18 e8ad52be94: x1000: Rename crt0 .init sections to .startup

Avoid startup code clashing with the .init section, which is by convention used for INIT_ATTR code that can be discarded after app initialization.
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/spl-start.S [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
2022-12-18 68af18a56f: x1000: Simplify app linker script

Get the linker to automatically assign load addresses for the .iram and .tcsm sections. Taken from the i.MX31 linker script.
firmware/target/mips/ingenic_x1000/app.lds [diff]
Aidan MacDonald
2022-12-18 d6744c92b1: x1000: Add missing LCD activation event on LCD enable

This event is needed to trigger a GUI redraw when the backlight turns on.
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
Aidan MacDonald
2022-12-17 6c52fa139c: Remove browse_context_init()

Prefer to use designated initializers to avoid having to specify unneeded parameters. Non-initialized members are zero-initialized by the compiler.
apps/menus/plugin_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/open_plugin.c [diff]
apps/playlist_catalog.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/keyremap.c [diff]
apps/plugins/open_plugins.c [diff]
apps/plugins/otp.c [diff]
apps/plugins/rockpaint.c [diff]
apps/plugins/speedread.c [diff]
apps/plugins/text_viewer/tv_menu.c [diff]
apps/radio/presets.c [diff]
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
apps/tree.c [diff]
apps/tree.h [diff]
Aidan MacDonald
2022-12-17 701e262d3d: settings: Remove setting ID return from find_setting()

Now that all users have replaced setting IDs with direct pointers, find_setting() and friends don't need to return an ID value.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/playback_control.c [diff]
apps/plugins/rockboy/menu.c [diff]
apps/plugins/xworld/sys.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/shortcuts.c [diff]
apps/talk.c [diff]
docs/PLUGIN_API [diff]
Aidan MacDonald
2022-12-17 767ddef550: quickscreen: Settings ID to pointer conversion

Saves a good deal of code...
apps/gui/quickscreen.c [diff]
apps/gui/quickscreen.h [diff]
apps/menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
Aidan MacDonald
2022-12-17 c85a4f1fa4: menus remove reserved 'param' parameter

-- missed the plugin menu --
apps/enc_config.c [diff]
apps/menu.h [diff]
apps/menus/display_menu.c [diff]
apps/menus/eq_menu.c [diff]
apps/menus/main_menu.c [diff]
apps/menus/playlist_menu.c [diff]
apps/menus/plugin_menu.c [diff]
apps/menus/radio_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/onplay.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/lib/playback_control.c [diff]
apps/plugins/text_viewer/tv_menu.c [diff]
apps/radio/presets.c [diff]
William Wilgus
2022-12-17 ccf1aaa5be: menus move functions with parameters to their own type

left the union with function(void) and function_w_param(param) as a few areas might still need to use both (onplay.c)

there might be a few I missed yet..
apps/enc_config.c [diff]
apps/menu.c [diff]
apps/menu.h [diff]
apps/menus/audiohw_eq_menu.c [diff]
apps/menus/eq_menu.c [diff]
apps/menus/main_menu.c [diff]
apps/menus/playlist_menu.c [diff]
apps/menus/radio_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/onplay.c [diff]
apps/onplay.h [diff]
William Wilgus
2022-12-16 6f54bb63fc: open_plugin.c access open_plugin_entry through a function

just a few updates to open_plugin save a bit of space by granting access through a getter function
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/root_menu.c [diff]
William Wilgus
2022-12-16 626be18da0: [Bug Fix] haas surround use delay_ms instead of index surround_strength

this appears to be an old bug

rather than using an index use delay_ms directly
lib/rbcodec/dsp/surround.c [diff]
lib/rbcodec/dsp/surround.h [diff]
William Wilgus
2022-12-16 5903cd4bc8: [Bug Fix] setting.c fail to check F_TABLE_SETTING w/o arbitrary values

table settings have a list of valid values when they do not have F_ALLOW_ARBITRARY_VALS flag

they were not being treated as such
apps/settings.c [diff]
apps/settings_list.c [diff]
William Wilgus
2022-12-16 222ff0cb14: Plugin return: only skip SBS refresh if WPS was previous activity

1) the plugin return value isn't necessarily respected. 2) the screen will be updated regardless, before the WPS is displayed, which means the skin may appear in an "incorrect" state for a moment.

It is therefore better to simplify this to a single condition.
apps/plugin.c [diff]
Christian Soffke
2022-12-16 a6bafe51a6: WPS hotkeys: Don't enable SBS for pitch screen or bookmarking
apps/gui/wps.c [diff]
Christian Soffke
2022-12-16 79e6139f56: Playlist Viewer: Fix delayed appearance of backdrop on return from plugin
apps/plugin.c [diff]
Christian Soffke
2022-12-16 28f768cb84: onplay hotkey add flags

idea here as discussed with chris_s is to allow flags in the hotkey_assignment struct to change how items are displayed
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/settings_list.c [diff]
William Wilgus
2022-12-15 31759c9e53: [Bug Fix] quickscreen clashed with WPS Hotkey browser

chris_s noted: When you set the WPS hotkey as a QuickScreen item and shuffle through the options, it eventually gets to the "Open Plugin" option and will show the File Browser, clashing with the Viewports of the QuickScreen
apps/settings_list.c [diff]
William Wilgus
2022-12-15 99839960a2: abrepeat add dummy functions and remove some of the ifdefs
apps/abrepeat.h [diff]
apps/gui/wps.c [diff]
apps/playback.c [diff]
William Wilgus
2022-12-15 6b87bfadff: wps.c cleanup gui_show_wps

remove some old cruft move a few things around clean-up flow
apps/bookmark.c [diff]
apps/gui/option_select.c [diff]
apps/gui/quickscreen.c [diff]
apps/gui/usb_screen.c [diff]
apps/gui/wps.c [diff]
apps/menus/time_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.c [diff]
apps/plugins/pitch_screen.c [diff]
apps/radio/radio.c [diff]
apps/recorder/recording.c [diff]
apps/root_menu.c [diff]
apps/screens.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2022-12-14 eaf717744d: [Bug Fix] open_plugin.c update checksum check for spinning disks

Lang_id keys take LANG_LAST_INDEX_IN_ARRAY for the checksum spinning disks did not have the code to do so
apps/open_plugin.c [diff]
William Wilgus
2022-12-14 c6c1d62489: [Bug Fix] filetypes.c move voice data out of INIT_ATTR

tree_get_filetype_voiceclip is called after init it shouldn't be marked as INIT_ATTR

add _init to the functions & data that are used at init only to be a bit more clear
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/tree.c [diff]
William Wilgus
2022-12-14 8ff2c81bde: Improve transition between plugin and WPS

Eliminate flashing when plugins are launched from WPS, by not enabling the SBS, and by deferring other lcd updates.

Also prevents flashing root menu activity when returning from plugins.
apps/gui/wps.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/playlist_viewer.c [diff]
apps/plugin.c [diff]
apps/root_menu.c [diff]
Christian Soffke
2022-12-14 0e2e9df991: Plugins: Eliminate 'Loading' splash unless disk is inactive

My impression is that the waiting time for plugins is only ever significant if a disk needs to spin up.

In other cases, the experience seems nicer without a 'Loading' splash, especially for often-used plugins, such as 'Properties', when it is launched from the Database or from the File Browser.
apps/plugin.c [diff]
Christian Soffke
2022-12-14 d520dcbfbb: Exit Pitchscreen on BUTTON_HOME for Sansa Clip

ToggleMode is remapped to BUTTON_SELECT Reset is remapped to Long BUTTON_HOME or Long BUTTON_SELECT (avoids accidental reset by pressing BUTTON_SELECT)
apps/keymaps/keymap-clip.c [diff]
manual/platform/keymap-sansaclip.tex [diff]
roman.artiukhin
2022-12-13 0747415277: Settings.c add logf debugging to verify settings

decodes saved settings and available settings & flags
apps/settings.c [diff]
William Wilgus
2022-12-12 2b79ad43bd: Haas Surround add flag so the settings can be read back from the config file

not sure how long this has been broken
apps/settings_list.c [diff]
William Wilgus
2022-12-12 863538c50a: [Bug Fix] dsp_proc_enable init race / crash

haas surround is causing a seg fault

it appears process is null see https://www.rockbox.org/tracker/task/13382 for details

when the low_latency_callback is enabled it happens less frequently

lets default to an empty process that way there are no NULL pointers to call
lib/rbcodec/dsp/dsp_core.c [diff]
lib/rbcodec/dsp/dsp_proc_entry.h [diff]
William Wilgus
2022-12-11 ac9066dd44: Setttings: Eliminate gui_synclist_init_display_settings callbacks

Since synclists are now re-initialized after leaving Settings menus where the callback was used, it shouldn't be needed anymore.

gui_synclist_init_display_settings can also be made local to list.c now.
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/menus/display_menu.c [diff]
apps/menus/theme_menu.c [diff]
Christian Soffke
2022-12-11 dfd9c10589: Eliminate skin updates in between activities

1) Adds way to pop activity without refreshing the skin at the same time.

Activities are sometimes popped in immediate succession, or one activity is popped before another one is pushed right away. This can lead to the UI appearing glitchy, due to an activity only appearing for a split-second, which is especially noticeable with complex skins that change the dimensions of the UI viewport depending on the current activity

To fix this, prevent superfluous skin updates

* when switching between:
- WPS and browser
- WPS and Playlist Catalogue
- WPS and playlist
- WPS and Settings/System/Plugins

* when accessing Track Info or when displaying bookmarks using the context menu on the WPS

* when switching from QuickScreen to Shortcuts Menu

2) The playlist viewer activity was pushed & popped redundantly by playlist_view.

---- NB: Behavior has remained unchanged in all instances of the code where pop_current_activity() has been replaced by pop_current_activity(ACTIVITY_REFRESH_NOW).
apps/bookmark.c [diff]
apps/gui/option_select.c [diff]
apps/gui/quickscreen.c [diff]
apps/gui/usb_screen.c [diff]
apps/menus/playlist_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.c [diff]
apps/plugins/pitch_screen.c [diff]
apps/radio/radio.c [diff]
apps/recorder/recording.c [diff]
apps/root_menu.c [diff]
apps/screens.c [diff]
apps/shortcuts.c [diff]
apps/tree.c [diff]
Christian Soffke
2022-12-10 90d1ac0448: settings: Rewrite cfg_int_to_string() and cfg_string_to_int()

It's easier to do the parsing manually.
apps/settings.c [diff]
Aidan MacDonald
2022-12-09 fc18235323: Selective backlight add CONTEXT_MAINMENU

I think its better to just limit this to the mainmenu rather than all contexts
apps/action.c [diff]
apps/action.h [diff]
William Wilgus
2022-12-09 b63f4c5884: Exit option select on ACTION_STD_MENU

Similar to 59f3f43d. It makes it behave consistently with tree/playlists other menus. So it's possible to exit option select using Back button on Clip Zip or Power button on Rocker
apps/gui/option_select.c [diff]
roman.artiukhin
2022-12-08 7a00ad72e4: [Bug Fix] bookmark.c failure to compare existing tracks and playlist

the underlying global buffer fo bookmark is overwritten by the read function so instead make a hash of the playlist and track names

might needa better hash but hopefully CRC32 is sufficient
apps/bookmark.c [diff]
William Wilgus
2022-12-08 3555e84a7a: Bugfix: some settings can have spaces in them

90bc769 strips spaces from the settings value, but it goes to the first space rather than just stripping off the last one. Break out of the loop when we find the first non-space character.

Also change 0 to '\0' for readability.
apps/misc.c [diff]
Dana Conrad
2022-12-08 f6f12db062: events.c do_add_event() only traverse event array once

we already go through the whole array might as well save the free slot as well
firmware/events.c [diff]
William Wilgus
2022-12-08 66a411a1ba: Tree / Playlist Viewer / Menu: Fix redraw issues

1) Tree_lists was only initialized when booting the player.

In cases where a skin used custom UI viewports of different sizes, when switching between screens, such as between root menu, QuickScreen, and tree browser, this caused list titles to appear with a significant delay, unless a GUI_EVENT_ACTIONUPDATE was sent.

Tree_lists is now initialized when entering dirbrowse or when restoring/reloading the list.

This eliminates multiple redundant UI refreshes when entering the tree browser, due to gui_synclist_draw not being called twice anymore and by being able to omit GUI_EVENT_ACTIONUPDATE.

Separate calls to gui_synclist_init_display_settings have become unnecessary since it is already called by gui_synclist_init.

2) The synclist is also re-initialized when returning from the QuickScreen in the Playlist Viewer or regular menus, or when returning from Settings menus
apps/main.c [diff]
apps/menu.c [diff]
apps/playlist_viewer.c [diff]
apps/tree.c [diff]
apps/tree.h [diff]
Christian Soffke
2022-12-07 a9a284c1a0: lang: Correct a "mistranslation" in english-us

Introduced in 9a8ec7e0d from March 2021
apps/lang/english-us.lang [diff]
Solomon Peachy
2022-12-07 a1e4385acb: backlight.c move some conditionals out to functions

de clutter bavklight_thread a bit

no functional changes
firmware/backlight.c [diff]
William Wilgus
2022-12-07 90bc76956c: Ignore trailing whitespace in settings .cfg files

Have settings_parseline() strip trailing whitespace from the setting value.

Fixes a regression introduced by 5b1dd64f5, which caused filename settings to be parsed incorrectly when there is trailing whitespace in the .cfg file.
apps/misc.c [diff]
Aidan MacDonald
2022-12-07 f3b522cac6: bugfix: for Eros Q / Surfans F20, when the scroll wheel is moved, in addition to resetting the power-off timer, we also need to reset the backlight timer and turn it on in case it's currently off.
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
Richard Goedeken
2022-12-07 fceb4f6292: misc.c format_time_auto() make several const tables static
apps/misc.c [diff]
William Wilgus
2022-12-07 152a238947: playlist add mutex to public functions

mutexes are in just trying to refactor the rest and make it a smaller and more robust system

--Done
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2022-12-05 a89f279fd4: settings: Clean up NVRAM code

Code style fixes, tighten error checking, replace a static buffer with a stack allocated one.
apps/settings.c [diff]
Aidan MacDonald
2022-12-05 961e73b3a1: Addendum to d3d2045

Forgot to remove this...
apps/bookmark.c [diff]
Christian Soffke
2022-12-05 d3d2045cab: Bookmarks: Fix redraw issue in Select Bookmarks screen

Parts of the skin weren't redrawn after deleting a bookmark.
apps/bookmark.c [diff]
Christian Soffke
2022-12-04 1e6c8d2ea6: skin engine: Settings ID to pointer conversions

Convert %St tag to operate on settings pointers instead of IDs.
apps/gui/option_select.c [diff]
apps/gui/option_select.h [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2022-12-04 4ff97ae07c: settings: More settings ID to pointer conversions

Convert cfg_int_to_string(), cfg_to_string(), settings_write_config().
apps/gui/option_select.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
Aidan MacDonald
2022-12-04 08aa09e15d: add Richard Goedeken to CREDITS file
docs/CREDITS [diff]
Richard Goedeken
2022-12-04 d06cf3ac2d: bugfix: for ErosQ/SurfansF20, reset poweroff timer when scroll wheel is moved so that we dont blank the screen while the user is scrolling through a list
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
Richard Goedeken
2022-12-04 bbe3942039: settings: Settings ID to pointer for cfg_string_to_int()

Accept a pointer to struct settings_list instead of an index in the settings array. Refactor the skin engine's touchregion_setup_setting() to avoid the use of indices.
apps/gui/skin_engine/skin_parser.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
Aidan MacDonald
2022-12-04 0550c64226: Bookmarks: Fix autoload return from bookmark selection

- Fix placement of parentheses from commit 780990
- Return cancel when play_bookmark fails or user declines to erase dynamic playlist after warning
- Go back to Playlist Catalogue when user cancels out of screen
apps/bookmark.c [diff]
apps/playlist_catalog.c [diff]
Christian Soffke
2022-12-03 879b5dae39: Fix red 8f582c90de

global_settings is not defined when building the database tool. Add a path buffer in tc_stat to fix this. This also avoids race conditions that may occur if changing the path setting at runtime.
apps/tagcache.c [diff]
apps/tagcache.h [diff]
Aidan MacDonald
2022-12-03 3957aa8720: RFC BugFix tagtree.c reload data abort

TagNav.lua adds Reload to the Custom View menu of tagnav to allow users to make new search queries on the fly previously you had to reboot the device to do this

I was getting a data abort prior to calling tagnav_init now but it worked fine if I copy pasted the contents of the init function

I'm not sure how this fixed it but making a static init function makes it work as intended is it a race some weird thing with the compiler??

Ideas??
apps/tagtree.c [diff]
William Wilgus
2022-12-03 8f582c90de: tagcache: add a setting for customizing the database path

Add a new setting,

database path: /path/to/folder

to change where the database files are stored, which allows it to be shared by multiple builds when using multiboot. This avoids the need to maintain a separate copy of the database for each build. This setting can only be set from the config file; it has no menu option yet (due to lack of a GUI to pick the directory).
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/tagcache.c [diff]
manual/appendix/config_file_options.tex [diff]
Aidan MacDonald
2022-12-03 f033fd390e: Fix Red playlist update a few functions
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2022-12-03 98c7505c60: tagcache: move TAGCACHE_STATEFILE define to .c file

Provide a function to remove the statefile so that external users of this define can call that instead.
apps/main.c [diff]
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tree.c [diff]
Aidan MacDonald
2022-12-03 03c225fe54: playlist.c clean-up and organize

No functional changes
apps/playlist.c [diff]
apps/playlist.h [diff]
William Wilgus
2022-12-03 90dc64da32: tagcache: remove TAGCACHE_STRICT_ALIGN flag

This has been defined to 1 since forever, so the last remaining check presumably isn't catching anything.
apps/tagcache.c [diff]
Aidan MacDonald
2022-12-03 b6c2b54e01: tagcache: move most defines to .c file

Most of the defines in the header file are internal to the tagcache and therefore should not be exposed in the header, to make it clear that outside code does not depend on the values.
apps/tagcache.c [diff]
apps/tagcache.h [diff]
Aidan MacDonald
2022-12-02 177a15b2ed: playlist_catalog remove static playlist_dir in favor of generation at runtime

this needs tested by the heavy playlist users

with the addition of initialize_catalog_buf there shouldn't be any stack overflow concerns since we are no longer creating another max_path sized buffer when one is already available this also simplifies the code a bit

rather than carrying around the playlist directory just generate it on the fly copies the directory to the supplied buffer

add catbroswe_status to keep track of what browse context(s) are currently in use
apps/menus/playlist_menu.c [diff]
apps/playlist_catalog.c [diff]
apps/playlist_catalog.h [diff]
William Wilgus
2022-12-01 773fa7874d: RFC playlist.c add_indices_to_playlist() seek back to start of file

get_filename() changes the seek pos with out restoring it seek back to the beginning or after the BOM if utf8
-- the other option is to open our own file descriptor this will remove the need for the mutex but it would no longer block get_filename from getting potential stale / bad data
apps/playlist.c [diff]
William Wilgus
2022-12-01 d7557e8da8: settings: Update doc comment for struct settings_list::cfg_vals

cfg_vals has not been used in conjunction with F_T_UCHARPTR for quite a while.
apps/settings_list.h [diff]
Aidan MacDonald
2022-12-01 528dd0b03d: settings: Remove redundant lang_id check for F_PADTITLE settings

All the F_PADTITLE settings use a lang string so it's safe to assume the title (which is usually from the setting's lang_id) is ok. Not like it's very useful or safe to show the cfg_vals, anyway...
apps/menu.c [diff]
Aidan MacDonald
2022-12-01 fb0757b913: settings: Remove F_ALLOW_ARBITRARY_VALS from hotkey settings

The hotkey settings come from a fixed enum, arbitrary values are not supported. It's not possible to use choice settings for them because some enum values are only used in the WPS, and some are only used in the tree.
apps/settings_list.c [diff]
Aidan MacDonald
2022-12-01 8aa3b22160: settings: Update int fallback check for settings with cfg_vals

This atoi() was added long ago in commit d490f441, and it looks like it's intended to allow arbitrary values in table settings. These table settings have some symbolic values (eg. off, on) but are otherwise int-valued.

As far as I can see the only settings that can take this branch are all table settings with F_ALLOW_ARBITRARY_VALS. It doesn't make a lot of sense to accept random integers without that flag, so make the atoi() conversion dependent on it.
apps/settings.c [diff]
Aidan MacDonald
2022-12-01 6346be51a3: settings: Clean up and simplify settings_load_config()

Use find_setting_by_cfgname() instead of doing it manually. Reduce the excessive level of indentation.
apps/settings.c [diff]
Aidan MacDonald
2022-12-01 5b1dd64f50: settings: Add helper function for handling filename settings

The old inline implementation was buggy -- it didn't check the suffix was actually at the end of the string before stripping it, and didn't check for truncation. This version also avoids using an extra buffer.
apps/settings.c [diff]
apps/settings.h [diff]
Aidan MacDonald
2022-12-01 afa58ef277: settings: Remove unused INT_SETTING_W_CFGVALS

This hasn't been used for quite some time; it appears to have been obsoleted by table settings.
apps/settings_list.c [diff]
Aidan MacDonald
2022-12-01 7819a06d74: Add rectangle utility functions
firmware/SOURCES [diff]
firmware/common/rectangle.c [new]
firmware/export/rectangle.h [new]
Aidan MacDonald
2022-12-01 52ca658069: x1000: Add support for DS35x1GAxxx flash chips

This flash chip is found on some Surfans F20 units. For our purposes it's the same as the GD5F1GA4xExx so just #define an alias instead of adding a whole new chip struct.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
Aidan MacDonald
2022-12-01 c9c340704f: playlist_create fix race condition

I'm pretty sure this is a very old bug I traced it down to the current_playlist getting changed out from under add_indices_to_playlist causing myriad of issues from buffer full to invalid control file to shifting indices

this only appears to happen with the dircache on

I still get an incorrect resume state with the wrong song very rarely -- turns out get_filename seeks the file FIXED

Some debugging left in for now till we can verify there are no other instances
apps/playlist.c [diff]
William Wilgus
2022-11-30 0ba3392b9f: Bug Fix bookmark.c fix resume_info overwritten

fix a bug where when 'most recent bookmarks' was enabled the next bookmark file written would get the info from the last 'most recent' bookmark instead of the current bookmark

also removed the global resume_info struct in favor of local variables

added verification of the resumed track
apps/bookmark.c [diff]
William Wilgus
2022-11-27 0c7394e39a: ata: Improve heuristics for detecting SSDs

mSATA devices should be new enough to report their form factor proprerly
firmware/drivers/ata.c [diff]
Solomon Peachy
2022-11-27 3f4e55a872: bookmark.c fix bookmark.c fix filename generator #2

strlcpy returns the size of the string it tried to create so we still need strlen

since we know what the sizes are of the strings just check for overflow first and use strmemccpy

fix bufsz on playlist_get_name()
apps/bookmark.c [diff]
William Wilgus
2022-11-27 65db4acabe: pcf56065: Fix a compile warning uncovered by GCC8

Basically, use '!' instead of '~' on bools.
firmware/drivers/rtc/rtc_pcf50605.c [diff]
Solomon Peachy
2022-11-27 b11777b06c: bookmark.c fix off by one error in filename generator

strlcpy expects the buffer size so the name gets truncated by one character
apps/bookmark.c [diff]
William Wilgus
2022-11-26 4ecf3970a6: Playlist Catalogue: Return to opened playlists

The playlist catalogue now remembers when you left a playlist open and will return to it automatically.
apps/playlist_catalog.c [diff]
Christian Soffke
2022-11-26 098a8fd334: Playlist Catalogue: Restore selection in playlist

Saves and restores the selected item in your most-recently accessed playlist, similar to Database and File Browser.
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/playlist_catalog.c [diff]
apps/playlist_viewer.c [diff]
apps/playlist_viewer.h [diff]
Christian Soffke
2022-11-26 88ecaf2b8c: bookmark.c remove static bookmark buffer
apps/bookmark.c [diff]
William Wilgus
2022-11-25 853d70e938: Fix Red confirm_delete, CHECKWPS & DBTOOL
apps/misc.c [diff]
William Wilgus
2022-11-25 71934d4c16: move confirm delete prompt to misc.c
apps/bookmark.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/onplay.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2022-11-25 3a22322ab7: bookmark.c parse_bookmark remove redundant conditional

we can just use the buffer not being NULL to decide
apps/bookmark.c [diff]
William Wilgus
2022-11-25 780990fe5d: bookmark.c remove some global buffers

refactor to allow removing some of the static buffers
apps/bookmark.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
William Wilgus
2022-11-25 8b522b8973: bookmark.c clean-up

No functional changes
apps/bookmark.c [diff]
William Wilgus
2022-11-24 1e6d643cfb: Fix Red lib/helper.h

missing brightness defines
apps/plugins/lib/helper.h [diff]
William Wilgus
2022-11-24 97a82ee3ec: plugins HAVE_BACKLIGHT helper remove ifdefs in favor of dummy functions lessen the ifdef hell
apps/plugins/2048.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/credits.c [diff]
apps/plugins/demystify.c [diff]
apps/plugins/doom/rockdoom.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/fireworks.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/lamp.c [diff]
apps/plugins/lib/helper.c [diff]
apps/plugins/lib/helper.h [diff]
apps/plugins/maze.c [diff]
apps/plugins/mazezam.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
apps/plugins/pacbox/pacbox.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/plasma.c [diff]
apps/plugins/pong.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/resistor.c [diff]
apps/plugins/rockblox.c [diff]
apps/plugins/rockboy/menu.c [diff]
apps/plugins/rockboy/rockboy.c [diff]
apps/plugins/rocklife.c [diff]
apps/plugins/sdl/main.c [diff]
apps/plugins/spacerocks.c [diff]
apps/plugins/speedread.c [diff]
...and 8 more files.
William Wilgus
2022-11-24 3745c813f9: misc.c open_pathfmt caller supplied buffer

Amachronic raised concern about open() blocking causing a static buf to get overwritten in multiple calls its prudent to just have the caller supply the buffer to minimize stack issues later
apps/bookmark.c [diff]
apps/debug_menu.c [diff]
apps/filetypes.c [diff]
apps/gui/icon.c [diff]
apps/logfdisp.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/tagcache.c [diff]
apps/talk.c [diff]
William Wilgus
2022-11-24 80b8b13544: BUG FIX settings_list fix un-macro'd int_settings for backlight & contrast

missed these
apps/settings_list.c [diff]
William Wilgus
2022-11-23 8379c6eb07: tagtree remove unneeded strlen

unfortunately most of the overhead in searching for <Untagged> occurs in reading of entries so changing searching the resulting string faster doesn't do much good but any we don't need this strlen call since its already been computed
apps/tagtree.c [diff]
William Wilgus
2022-11-23 ec1611dfa6: Add a comment about the ordering of 'enum playmode'
apps/status.h [diff]
Aidan MacDonald
2022-11-23 9f09cdc9b8: skin engine: Streamline handling of the %mp tag a little

current_playmode() returns a value from 'enum playmode' and we can take advantage of the enum values to simplify the code.
apps/gui/skin_engine/skin_tokens.c [diff]
Aidan MacDonald
2022-11-23 3815ef8050: skin engine: Remove albumart viewport field

The viewport field in albumart is unnecessary, but for a different reason than eg. the progressbar was. The skin engine draws images by going over a global list of images shared between all viewports. Prior to drawing a viewport, every image is marked "not displayed." When an image display tag is encountered during rendering this mark is set to the index of the subimage to be displayed.

The albumart is handled similarily, by setting a handle to -1 and then updating it when the %Cd tag is encountered. The albumart is not drawn unless the handle is set to >= 0 by the %Cd tag. So we don't need to track or check viewports at all, because only the viewport that contains the %Cd tag will ever draw the albumart.
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2022-11-23 830436a282: skin engine: Remove viewport_colour viewport field

Yet again, no need to store the viewport because we already know it -- and this time the render code is obviously relying on that assumption.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2022-11-23 9368844ad1: skin engine: Remove progressbar viewport field

Again, we don't need to store the viewport in the progressbar struct because it's known at render time.
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_display.h [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2022-11-23 f242b0ec6c: Settings/System/Plugins: Go to WPS when ACTION_TREEE_WPS is pressed

Used to go to root menu before.
apps/root_menu.c [diff]
Christian Soffke
2022-11-23 17cae50497: PictureFlow: Add hotkeys for changing sorting on iPods / Update manual

Adjust current sorting by pressing both the Select button and Menu (or Play) at the same time.
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2022-11-23 0c7f66ab5f: Playlist Viewer: Display playlist name in title
apps/playlist_viewer.c [diff]
Christian Soffke
2022-11-23 6bc443f474: Hotkeys: Add placeholder for function return value

Seems a bit clearer to me than redefining the meaning of ONPLAY_OK in this context, which was easy to miss.

Fixes the return value for the bookmark_create_menu hotkey, too. It was previously mapped to ONPLAY_OK in case the function failed, and to ONPLAY_RELOAD_DIR if it succeeded. This had no ill effect - or any effect – since either of the values were disregarded by the WPS when executing a hotkey.

Return values of playlist_insert_shuffled also had no effect (by design, apparently, see commit 482b45b). Use ONPLAY_FUNC_RETURN in hotkey_assignment.

Behavior hasn't changed, it's only been made more explicit.
apps/onplay.c [diff]
apps/onplay.h [diff]
Christian Soffke
2022-11-23 0d355a9c47: filetree.c add back SORT_ALPHA_REVERSED

this is used for the playlist folder advance
apps/filetree.c [diff]
William Wilgus
2022-11-23 263cc13985: tagtree.c move sort_inverse out of compare function
apps/tagtree.c [diff]
William Wilgus
2022-11-22 2a9482ad7c: filetree.c move sort functions out of cmp function for SORT_ALPHA

move sort function decision out of the compare function
apps/filetree.c [diff]
William Wilgus
2022-11-22 1561b4ec9a: filetypes.c clean-up

make icon a voice struct one
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/tree.c [diff]
William Wilgus
2022-11-22 dc47bf8ae2: BUG FIX settings_list.c

fix dumb mistake reordered mavro args instead of just struct args
apps/settings_list.c [diff]
William Wilgus
2022-11-22 5240202226: filetypes.c put attr mask back

not totally sure of the implications but this mask should be here
apps/filetypes.c [diff]
William Wilgus
2022-11-22 b40dff510a: cuesheet.c guard against invalid digits causing underflow on field ASAN

is digit checks for invalid fields but could possibly check field = -1
apps/cuesheet.c [diff]
William Wilgus
2022-11-22 19aa4ca276: tree.c spell names AFTER voicing filetype
apps/tree.c [diff]
William Wilgus
2022-11-22 d077fec5f1: tree.c move voice filetypes to its own conditional
apps/tree.c [diff]
William Wilgus
2022-11-22 efdc6feddb: move inbuilt_filetypes.voiceclip to a separate struct

there are a lot of duplicated voiceclips in the inbuilt_filetypes struct its already looked up so deduplicate
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/tree.c [diff]
William Wilgus
2022-11-22 2056878e46: move inbuilt_filetypes.icon to a separate struct

there are a lot of duplicated icons in the inbuilt_filetypes struct its only used at load so deduplicate and look-up by attr
apps/filetypes.c [diff]
apps/filetypes.h [diff]
William Wilgus
2022-11-21 658cc95885: remove some sprintf putsxy calls in favor of putsxyf

we now have putsxyf in screens[] so no need for a separate buffer in these cases
apps/gui/color_picker.c [diff]
apps/gui/line.c [diff]
apps/menus/eq_menu.c [diff]
William Wilgus
2022-11-21 eb9b3513fa: Remove strtok_r.c

strtokspn emulates the original libc function
firmware/SOURCES [diff]
firmware/libc/strtok.c [deleted]
William Wilgus
2022-11-20 0661784469: make int_setting step & unit int16_t

since int_setting is the largest struct in the union of settings saving 32 bytes adds up over every setting

frees ~200 bytes
apps/menus/eq_menu.c [diff]
apps/menus/sound_menu.c [diff]
apps/settings.c [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
William Wilgus
2022-11-20 b7603adc64: Properties: Refactoring & Minor fix

- Extract functions for
* determining whether it's a file or dir
* showing stats for dir or file without id3

- Remove typedef for struct
- Fix unit string not being displayed correctly during scanning
(use %s instead of %cB)
apps/plugins/properties.c [diff]
Christian Soffke
2022-11-20 da2eaf3bf7: misc.c open_pathfmt fix yellow
apps/misc.c [diff]
William Wilgus
2022-11-20 e7e20fab1b: create function open_pathfmt() to allow printf formatting on open()

save some space by allowing printf formatting directly rather than having a buffer and using sprintf
apps/debug_menu.c [diff]
apps/filetypes.c [diff]
apps/gui/icon.c [diff]
apps/logfdisp.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
apps/tagcache.c [diff]
apps/talk.c [diff]
William Wilgus
2022-11-19 8fe42c43c6: WPS plugin hotkey: Fix UB

HOTKEY_PLUGIN action resulted in return value of void function being assigned and then returned by execute_hotkey.
apps/onplay.c [diff]
Christian Soffke
2022-11-19 dcde5aa89d: Database & Playlist Viewer: Fix return to WPS from plugin

After calling up PictureFlow from the database or from the Playlist Viewer, you would not be returned to the WPS as would be expected when picking a new song, selecting
"Go to WPS" or pressing the WPS action button.
apps/filetypes.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
2022-11-19 b3a464c9d1: Playlist Viewer & Catalogue: Go to WPS when ACTION_TREE_WPS is pressed
apps/playlist_catalog.c [diff]
apps/playlist_viewer.c [diff]
Christian Soffke
2022-11-19 3d34140cfb: Fix return to root after selecting items from playlist viewer

When selecting an item, Rockbox only checked that playback was stopped before entering the viewer and went to the WPS if music had started playing afterwards, but returned to the root menu otherwise

The WPS will now be displayed whenever a new item has been selected, even if audio was paused or playing before.

boomark_autoload required slight adjustments to its return values, so that the WPS would not be opened after a user cancels out of the bookmark selection screen for a playlist, since it previously returned true in that case, too.
apps/bookmark.c [diff]
apps/bookmark.h [diff]
apps/filetree.c [diff]
apps/onplay.c [diff]
apps/playlist_catalog.c [diff]
apps/playlist_catalog.h [diff]
apps/playlist_viewer.c [diff]
apps/root_menu.c [diff]
Christian Soffke
2022-11-19 3b1230b365: talk.c add busy loop to talk_spell

talk spell can lose the remainder of the words on longer sequences
apps/talk.c [diff]
William Wilgus
2022-11-19 b0ccb1b95f: talk.c clean up
apps/talk.c [diff]
apps/talk.h [diff]
William Wilgus
2022-11-17 38687821b2: skin engine: Remove playlistviewer viewport field

We already know the viewport at render time (I think... at least this seems to be the case for themes I tested) so there's no need to store a pointer to the viewport.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2022-11-17 7de16eee26: viewportmanager: Fix missing void in function definition
apps/gui/viewport.c [diff]
Aidan MacDonald
2022-11-17 15b36a02b1: Remove get_viewport_default_colour()

The function isn't used except for the skin engine's %Vf/%Vb tags, so inline it there and remove the separate function.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/viewport.c [diff]
apps/gui/viewport.h [diff]
Aidan MacDonald
2022-11-17 016090b2a4: Bug fix multiboot.c get_redirect_dir didn't reach index 0

add_path[0] was never reached
firmware/common/multiboot.c [diff]
William Wilgus
2022-11-17 7b3e2f6f85: fix yellow iap-core.c
apps/iap/iap-core.c [diff]
William Wilgus
2022-11-17 00f915d92e: strnatcmp.c use a fn pointer to call strcmp/strcasecmp
firmware/common/strnatcmp.c [diff]
William Wilgus
2022-11-17 972810f6cf: strlcpy finish cleanup

remove strlcpy & strlcat from string.h

document suspicious strlcpy call

convert strlcat.h users to string-extra
apps/misc.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/strlcpy.c [diff]
firmware/common/zip.c [diff]
firmware/drivers/fat.c [diff]
firmware/libc/include/string.h [diff]
lib/rbcodec/metadata/replaygain.c [diff]
William Wilgus
2022-11-17 0b7a387671: open_plugins add name when plugin can't open & check LANG_LAST_INDEX_IN_ARRAY

can't open '' was confusing for users so pass the key to open plugin in theory you could have a plugin that defaulted to these lang_ids run but its good enough to tell the user what failed to open IMO

lang_id changes mess with open_plugin since it uses them as look-up keys so add checks for LANG_LAST_INDEX_IN_ARRAY to the checksum

the plugin now removes entries with an invalid checksum

devices with harddrives only append their .dat file so have them skip entries with invalid checksums and only notify user if a valid entry wasn't found
(these users can run the open_plugins plugin to remove invalid entries)
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/plugins/open_plugins.c [diff]
apps/root_menu.c [diff]
William Wilgus
2022-11-17 4c3937591c: lua Fix potential event stack OVFL

you could return values in the event callbacks that would never be processed this would eventually cause a lua stack overflow

settop(0) eats all return values (if any)
apps/plugins/lua/rocklib_events.c [diff]
William Wilgus
2022-11-16 2f278af760: codecs: alac: Improve resume accuracy and clean up rounding errors

Resume by offset was obviously inaccurate for ALAC -- it tried to convert the offset to an elapsed time using the approximate bitrate, which is going to be wrong for VBR files. This became a problem since commit 26ffcd8f9f restored the ability to resume by offset.

It turns out that m4a_seek_raw() has terrible resolution since it can only seek to chunk boundaries, and lies about the real sample position; basically the same issue that affected seeking described in commit 4dd3c2b33e. Resuming by offset is still not very accurate because of this. Prefer to resume by time first, which is normally highly accurate (and never worse than offset) but use the file offset if it's the only thing we have.

There were a couple time calculations still using 32-bit math, so clean those up too to reduce issues due to rounding errors.
lib/rbcodec/codecs/alac.c [diff]
Aidan MacDonald
2022-11-16 ea61347a0b: codecs: aac: Prefer to resume by time instead of offset

m4a_seek_raw() is relatively inaccurate, so time-based resume should be preferred.
lib/rbcodec/codecs/aac.c [diff]
Aidan MacDonald
2022-11-16 5fdd491ceb: playlist: reduce memory usage for loading playlists

There's probably little benefit to using core_alloc_maximum() for loading playlists since they are parsed incrementally. I/O speed does not increase with increased read sizes beyond a certain point. Read by 32 KiB chunks since that is what the buffering thread does. Fall back to core_alloc_maximum() if a small allocation fails so that buflib will try harder to free up space.
apps/playlist.c [diff]
Aidan MacDonald
2022-11-16 dfa1539b13: Bug Fix test_viewports.c call scroll_stop before changing viewports
apps/plugins/test_viewports.c [diff]
William Wilgus
2022-11-16 7733abce29: strlcat use strlcpy for the copy part
firmware/common/strlcat.c [diff]
William Wilgus
2022-11-16 28af87526d: misc.c split_string replace with strtok_r

there isn't much difference from this function to strtok_r

now places a NULL in the last vector space permitting as well
apps/misc.c [diff]
William Wilgus
2022-11-16 3ad8c0ad7b: fix another non shadowed variable

another variable that shouldn't have been removed in 034b6d5b
apps/tagcache.c [diff]
William Wilgus
2022-11-15 be65ec2338: Fix menus in Settings

Commit 034b6d5b prevented other Settings menus on the same menu level from being displayed after accessing one item's context menu
apps/menu.c [diff]
Christian Soffke
2022-11-15 0458951464: translations: Update US English "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2022-11-15 cca954e427: FS #13363: Update Serbian Translation (Anonymous 'bugmenot' user)
apps/lang/srpski.lang [diff]
Solomon Peachy
2022-11-15 90f6aa2afa: FS13362: Update Dutch translation (Anonymous user 'bugmenot')
apps/lang/nederlands.lang [diff]
Solomon Peachy
2022-11-15 e68b727f4f: Add more space for Time Elapsed/Remaining on Rocker WPS

Similair to 41934360. To display 20+ hours long audiobooks without overlaps.

Removed tag duplicates
wps/cabbiev2.128x160x16.wps [diff]
roman.artiukhin
2022-11-15 73b1e30bb0: skin engine: Reduce scope of internal wps_data struct

A bunch of public API calls take a wps_data struct argument, but that's an internal type that doesn't have a direct getter. Instead the skin engine provides a gui_wps struct as a way to refer to a particular skin instance. Use that instead of wps_data in the public API.
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar-skinned.h [diff]
apps/gui/wps.c [diff]
apps/radio/radio_skin.c [diff]
Aidan MacDonald
2022-11-15 45bd4c7220: Fix last of red for strmemccpy
lib/rbcodec/test/SOURCES [diff]
William Wilgus
2022-11-15 687767bd8f: convert a few more strlcpy to strmemccpy calls Fix Red and Yellow

albumart is imported to plugins just use a macro substitution for now
apps/iap/iap-lingo4.c [diff]
apps/onplay.c [diff]
apps/playlist.c [diff]
apps/recorder/albumart.c [diff]
apps/tree.c [diff]
William Wilgus
2022-11-15 aea324b746: Fix red strmemccpy CheckWps & Database
tools/checkwps/SOURCES [diff]
tools/database/SOURCES [diff]
William Wilgus
2022-11-15 f6c719d7ec: replace strlcpy with strmemccpy

replace applicable calls to strlcpy with calls to strmemccpy which null terminates on truncation

in theory the strmemccpy calls should be slightly faster since they don't traverse the rest of the source string on truncation but I seriously doubt there is too much of that going on in the code base
apps/bookmark.c [diff]
apps/buffering.c [diff]
apps/cuesheet.c [diff]
apps/debug_menu.c [diff]
apps/gui/folder_select.c [diff]
apps/gui/option_select.c [diff]
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/hosted/android/keyboard.c [diff]
apps/iap/iap-lingo4.c [diff]
apps/menus/eq_menu.c [diff]
apps/misc.c [diff]
apps/onplay.c [diff]
apps/open_plugin.c [diff]
apps/playlist.c [diff]
apps/playlist_catalog.c [diff]
apps/playlist_viewer.c [diff]
apps/radio/presets.c [diff]
apps/radio/radioart.c [diff]
apps/recorder/albumart.c [diff]
apps/recorder/keyboard.c [diff]
apps/recorder/pcm_record.c [diff]
apps/root_menu.c [diff]
apps/screens.c [diff]
apps/settings.c [diff]
apps/settings_list.c [diff]
apps/shortcuts.c [diff]
apps/tagcache.c [diff]
...and 13 more files.
William Wilgus
2022-11-15 b25a9d8f99: add memccpy.c

Not sure if this is worth the added bin size yet but I will see where I can use it to try and make it worth it
apps/debug_menu.c [diff]
apps/playlist_viewer.c [diff]
apps/screens.c [diff]
firmware/SOURCES [diff]
firmware/libc/include/string.h [diff]
firmware/libc/memccpy.c [new]
William Wilgus
2022-11-14 034b6d5bfb: Remove some shadowed variables identified by -Wshadow

there are plenty more but these are the low hanging fruit
apps/cuesheet.c [diff]
apps/filetree.c [diff]
apps/gui/folder_select.c [diff]
apps/menu.c [diff]
apps/recorder/keyboard.c [diff]
apps/tagcache.c [diff]
apps/tagtree.c [diff]
apps/talk.c [diff]
firmware/drivers/lcd-color-common.c [diff]
William Wilgus
2022-11-14 f94a14b859: increase the number of file & directory handles for devices with more ram
firmware/include/fs_defines.h [diff]
William Wilgus
2022-11-14 c088a9453d: Database: Restore selection in lower menu levels

The database only remembered what you'd selected when ascending the menu hierarchy again from a lower level.

Now it restores a previous selection going in the other direction as well, when you enter a new menu, as long as the selection at the current level hasn't changed.
apps/tagtree.c [diff]
apps/tagtree.h [diff]
apps/tree.c [diff]
Christian Soffke
2022-11-14 e6ab74d4ac: Database: Eliminate redundant list item selection

- gui_synclist_select_item will be called in the update_dir function by dirbrowse()

- it is unnecessary to call when the tables opened by tagtree_enter are not being displayed but are only being used for inserting table contents into the current playlist.
apps/tagtree.c [diff]
Christian Soffke
2022-11-14 97936e0661: Database: Fix problematic dirlevel reset

Dirlevel is restored in this error case without exiting the previously entered tables.
apps/tagtree.c [diff]
Christian Soffke
2022-11-13 a634557a88: fix strptokspn, add strcspn, fix splash.c

fix off by 1 error in strptokspn, add strcspn, fix fallout in splash.c
apps/gui/splash.c [diff]
apps/playback.c [diff]
firmware/SOURCES [diff]
firmware/common/strptokspn.c [diff]
firmware/libc/strcspn.c [new]
William Wilgus
2022-11-12 ffe2df2e92: Implement Rewind across tracks functionality

Useful feature for audiobooks. To rewind from the end of the previous track - press rewind at the very beginning of the current track. So if you are in the middle of the track - first rewind till beginning then release and press rewind button again (Playback Settings -> Rewind Across Tracks option should be enabled)

Fixes FS #13290
apps/gui/wps.c [diff]
apps/lang/english.lang [diff]
apps/menus/playback_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
docs/CREDITS [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
roman.artiukhin
2022-11-12 30ec10c790: splash.c Fix yellow const char
apps/gui/splash.c [diff]
William Wilgus
2022-11-12 c756a8a89d: make splash split on control characters

splits on spaces also considers \r\n\f\v\t as mandatory breaks

I'm still working on the strptokspn function my goal is to use it directly rather than storing the matched char and modifying the source string with \0 in order to tokenize the output
--Done
apps/gui/splash.c [diff]
apps/screen_access.c [diff]
apps/screen_access.h [diff]
firmware/SOURCES [diff]
firmware/common/strptokspn.c [new]
firmware/export/font.h [diff]
firmware/font.c [diff]
firmware/include/strptokspn_r.h [new]
William Wilgus
2022-11-11 dd1fbd51fc: TagTree Show file name for tag_title [UNTAGGED] BugFix

limit result to tags that only show <UNTAGGED>
apps/tagtree.c [diff]
William Wilgus
2022-11-10 06f0465158: skin engine: Remove touchregion argument from skin_get_touchaction

Nobody uses the argument, and it exposes internals unnecessarily.
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/wps.c [diff]
apps/radio/radio_skin.c [diff]
Aidan MacDonald
2022-11-10 56389b21b1: skin engine: Remove gui_img viewport field

This is set but never used.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2022-11-10 2c1adac3f8: skin engine: Remove unused viewport_change flag in skin rendering
apps/gui/skin_engine/skin_render.c [diff]
Aidan MacDonald
2022-11-10 37da608f84: skin engine: Remove weird special casing for Onda VX747

I have no idea what bug this could possibly "fix", and nothing looks different on the sim after removing it. As far as I can tell the Onda has no unique features that could cause the skin engine to act flaky, so I'm willing to bet this workaround isn't needed.
apps/gui/skin_engine/skin_render.c [diff]
Aidan MacDonald
2022-11-09 c2220a3b50: eq_menu cleanup some getstringsize calls

remove some unused calls and save some space by only grabbing font h once it doesn't change throughout the function
apps/menus/eq_menu.c [diff]
William Wilgus
2022-11-09 e8aaee4979: misc.c show_logo remove 'ver.' when screen is too small

since its too early for the scroll engine just remove 'ver. '

cleanup the getstringsize calls, only need to calculate it once
apps/misc.c [diff]
William Wilgus
2022-11-04 51c1e3ce7f: Shortcuts: Fix return to wrong menu

Rockbox would go to a previously selected menu instead of returning to the current one when leaving the Shortcuts screen.
apps/menu.c [diff]
apps/tree.c [diff]
Christian Soffke
2022-11-04 8cbe5c95a9: screen.c remove unused getstringsize

getstringsize on SEPARATOR was overwritten by another call to getstringsize

lang files use position to decide target strings 'RTC' was after targets using different buttons therefore in error gained precedence
apps/lang/english.lang [diff]
apps/screens.c [diff]
William Wilgus
2022-11-02 9da3044cf7: Database: Remove firstpos/pos_history

From what I can tell, this is unused historical baggage that has no effect whatsoever these days.
apps/tagtree.c [diff]
apps/tree.c [diff]
apps/tree.h [diff]
Christian Soffke
2022-11-02 ca908d6336: Database: Fix FS #13368 – use separate selected item history

Database and File Browser were sharing each other’s selected item history before.

Since the database isn’t browsed recursively, it’s probably unnecessary to include its own history in the tree context and its backups, saving.a little bit of memory.
apps/root_menu.c [diff]
apps/tagtree.c [diff]
apps/tree.h [diff]
Christian Soffke
2022-11-02 59f3f43d10: Exit Shortcuts on ACTION_STD_MENU

It makes it behave consistently with tree/playlists other menus. So it's possible to exit Shortcuts using Back button on Clip Zip or Power button on Rocker
apps/shortcuts.c [diff]
roman.artiukhin
2022-11-01 4e60fb77e0: codecs: mpa: Improve seek & resume accuracy for VBR files

The codec used 32-bit math for elapsed time <-> file position calculations. The rounding errors seem to be the cause of poor seek/resume accuracy on long VBR files; switching to 64-bit math makes things much better.
lib/rbcodec/codecs/mpa.c [diff]
Aidan MacDonald
2022-11-01 26ffcd8f9f: playback: Fix track resume from file offset

Resuming a track with "Resume Playback" or a bookmark is supposed to pass both the file offset and elapsed time to the codec. Since commit dfff938dff08 the offset has been getting zeroed because the buffer handle wasn't open at the time of the buf_filesize() call, causing it to return a negative error code.

Having a valid offset improves resume accuracy with some codecs, like VBR MP3.
apps/playback.c [diff]
Aidan MacDonald
2022-11-01 0d30356734: Refactor to reuse seek code for resume by time

It fixes Playback/Bookmarks Resume for long vbr mp3 files It also fixes resume by time for asf files.

As a replacement for https://gerrit.rockbox.org/r/c/rockbox/+/4750
lib/rbcodec/codecs/mpa.c [diff]
roman.artiukhin
2022-10-30 5d7e15324b: Fix tree scrolling not showing end of text

Fixes FS #13243
apps/gui/bitmap/list.c [diff]
roman.artiukhin
2022-10-30 4193436000: Add more space for displaying time on WPS for Clip Zip

Replacing " of " with "/" allows to avoid overlaps for > 20 hours long audiobooks
wps/cabbiev2.96x96x16.wps [diff]
roman.artiukhin
2022-10-30 246152a671: Database: Fix possible crash

The File Browser and Database apparently share the same selected_item_history, which means that selected_item can be -1 even in the context of the database,

This leads to tree_get_file_position being called in id3db mode, which isn't safe to do.
apps/tree.c [diff]
Christian Soffke
2022-10-29 b4e7c60c6d: Shanling Q1: Disable recovery kernel boot option

The Q1 handles firmware updates by unpacking the firmware image from the player app, then rebooting into the recovery kernel. The recovery kernel reflashes the player kernel and rootfs with the unpacked update files on the SD card.

Booting the recovery kernel directly is therefore not useful to the vast majority of users; remove the option from the recovery menu and remove the key combo.
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-10-29 a5b08d0af7: Shanling Q1: Support OF-initiated firmware updates

It's now possible to install OF updates on a rockboxed Shanling Q1. Previously these didn't work because the RB bootloader interrupted the update process.

Updates will proceed as they normally do on a non-Rockboxed Q1, except at the end of the update you'll reboot to Rockbox instead of the OF. This is only a minor inconvienience and doesn't affect the update process.
bootloader/x1000/main.c [diff]
Aidan MacDonald
2022-10-28 d09fb6bb6b: x1000: Pass CPM scratch register to the bootloader
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
Aidan MacDonald
2022-10-28 744ea2ff43: x1000: Allow SPL and bootloader to pass arguments to next stage
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-10-28 9e258652c4: x1000: Add a basic sanity check for bootloader backups

The bootloader backup is intentionally simple, but it's a little
*too* simple. Add a sanity check to make sure what we're backing up or restoring contains the first 8 bytes of the SPL header. This isn't going to catch all possible problems, but it'll stop obviously non-functional backups from being restored.
firmware/target/mips/ingenic_x1000/installer-x1000.c [diff]
firmware/target/mips/ingenic_x1000/installer-x1000.h [diff]
Aidan MacDonald
2022-10-27 202eb8c06a: Fix wrong formatting in WPS Fixes FS #13354 and FS #12980
apps/gui/skin_engine/skin_display.c [diff]
roman.artiukhin
2022-10-27 4b7b7a0a83: shortcuts: Reduce SHORTCUTS_PER_HANDLE to 4

The current value of 32 per handle seems excessive. Buflib overhead per handle is only 20 bytes and a single shortcut is > 500 bytes. Reducing SHORTCUTS_PER_HANDLE means that minimum memory usage can be lower when there are a few shortcuts, at the cost of marginally increased usage for large numbers of shortcuts. This is helpful to keep memory usage under control for low-memory targets, where 16 KiB is almost 1% of system RAM!
apps/shortcuts.c [diff]
Aidan MacDonald
2022-10-27 b677da6595: shortcuts: Increase max shortcut name to 64 bytes

32 bytes is a little small, and it's also good to have extra space to accommodate non-English languages.
apps/shortcuts.c [diff]
Aidan MacDonald
2022-10-25 f8d1f791be: manual: update quickscreen defaults

'Show Files' hasn't been a default QuickScreen setting for a while
manual/main_menu/main.tex [diff]
Christian Soffke
2022-10-25 193ebb5a36: Enable access to Shortcuts Menu from QuickScreen

Offers a quick way of switching to the Shortcuts Menu by pressing the 'context menu' button while QuickScreen is active (e.g. long press Select on iPods and some other players)
apps/gui/quickscreen.c [diff]
apps/gui/quickscreen.h [diff]
apps/gui/wps.c [diff]
apps/keymaps/keymap-agptekrocker.c [diff]
apps/keymaps/keymap-clip.c [diff]
apps/keymaps/keymap-erosq.c [diff]
apps/keymaps/keymap-fiiom3k.c [diff]
apps/keymaps/keymap-fuzeplus.c [diff]
apps/keymaps/keymap-ipod.c [diff]
apps/keymaps/keymap-nwz.c [diff]
apps/keymaps/keymap-nwza860.c [diff]
apps/keymaps/keymap-zen.c [diff]
apps/menu.c [diff]
apps/tree.c [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
2022-10-22 498988d34a: PictureFlow: Minor fixes & changed defaults

- Fix FPS counter overlapping the artist string when
"Show album title" was set to
"Show album and artist at the top"

- Fix disappearance of center album if certain Settings menus had been accessed while list of tracks was showing and you then returned to the list of albums

- Fix disappearing album artwork after cache had been created until you started scrolling

- Enable context menu even if WPS integration is disabled

- Make splash screen appear only on first launch and for database updates, when it is actually on screen for long enough

- Eliminate 'Loading' splash if tagcache is in RAM

- Show both album and artist by default on displays whose height > 100px
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
Christian Soffke
2022-10-21 653082ad1d: Database: Adjust "Play Selected First"&"Shuffle" behavior

- With "Play Selected First" and "Shuffle" enabled, another item was randomly selected when returning to the list. This appears to be a bug

- With "Play Selected First" disabled, the first item was selected. This appeared to be intentional, since, at least with
"Shuffle" disabled, that is the item that was played back. This may not be helpful either, since it makes you lose your place in what can be a long list. It is also not consistent with the behavior of the File Browser. The current selection should probably be maintained in all cases.

- At least according to the manual and the behavior of the File Browser, "Play Selected First" should only apply when "Shuffle" is enabled.
apps/tagtree.c [diff]
Christian Soffke
2022-10-18 e27a6bad4f: skin engine: Remove redundant argument from do_non_text_tags()

The skin viewport is already passed in info->skin_vp.
apps/gui/skin_engine/skin_render.c [diff]
Aidan MacDonald
2022-10-18 015101bb2c: Remove prototype for nonexistent sb_skin_data_load()
apps/gui/statusbar-skinned.h [diff]
Aidan MacDonald
2022-10-18 14fbefdf39: Move skin global state to the WPS

This state is actually specific to the WPS and it makes more sense to put it there.
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/wps.c [diff]
apps/gui/wps.h [diff]
apps/radio/radio.c [diff]
Aidan MacDonald
2022-10-18 13da1ba785: Remove is_fading from the global WPS state

Turns out it was never assigned and always false.
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/wps.c [diff]
apps/gui/wps.h [diff]
apps/iap/iap-lingo4.c [diff]
Aidan MacDonald
2022-10-18 33a47e4a49: Remove ff_rewind from global WPS state

Turns out it's local to ffwd_rewind() in the WPS.
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/wps.c [diff]
Aidan MacDonald
2022-10-18 6e4c866756: Remove unused 'may_fade' argument of pause/unpause_action
apps/gui/wps.c [diff]
apps/gui/wps.h [diff]
apps/misc.c [diff]
Aidan MacDonald
2022-10-18 e03bc66594: Correct typo DEFAULT_SKIP_TRESH -> DEFAULT_SKIP_THRESH
apps/cuesheet.c [diff]
apps/gui/wps.c [diff]
apps/gui/wps.h [diff]
Aidan MacDonald
2022-10-18 46c3d1e030: Cleanup unused cruft in wps.h
apps/gui/wps.c [diff]
apps/gui/wps.h [diff]
Aidan MacDonald
2022-10-18 0761532d09: Don't autoload bookmarks after saving dynamic playlist

4f83e66 (FS #13287) introduced a useful option to immediately re-load the saved dynamic playlist, so that bookmark creation becomes possible.
(Current Playlist->Reload After Saving)

It seems unnecessary and won't produce the intended effect to autoload bookmarks after the playlist is saved, since playback position will be restored to where it was previously.

Additionally, with "Load last Bookmark" set to "Ask", the dialog for choosing a stored bookmark will appear after the playlist has been saved. The dialog is unwanted, since:

- Selecting a bookmark doesn't have expected effect
- Selecting "Don't resume" will actually resume
- Cancelling out of the screen will prevent the saved playlist from being loaded, without this being obvious to the user
- It causes a crash if the dynamic playlist is saved from within the Playlist Viewer (both the Playlist Viewer and the bookmark selection screen use the plugin buffer)
apps/filetree.c [diff]
apps/filetree.h [diff]
Christian Soffke
2022-10-17 55185277ba: Fix red for Android builds (c6ee9dc883)
apps/hosted/android/notification.c [diff]
Aidan MacDonald
2022-10-17 f805b492d5: Fix red for !HAVE_ALBUMART targets (c6ee9dc883)
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_display.h [diff]
Aidan MacDonald
2022-10-17 c6ee9dc883: Limit exposure of skin engine internals

Drop wps_internals.h from skin_engine.h. The WPS and to a lesser extent the radio screen are too tightly integrated to drop their dependency on wps_internals.h, unfortunately. Skinned lists, for obvious reasons, also need access to the internals.
apps/debug_menu.c [diff]
apps/gui/list.h [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_display.h [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar-skinned.h [diff]
apps/gui/wps.c [diff]
apps/radio/radio.c [diff]
apps/radio/radio_skin.c [diff]
apps/recorder/albumart.c [diff]
apps/recorder/albumart.h [diff]
Aidan MacDonald
2022-10-17 4bd97c6535: mips: consolidate exception handling, add exception backtraces

Merge the x1000 and jz47xx exception handling code since they use the same exception vectors and handlers. The interrupt handler is now called from the common exception vector, but remains separate for each board since they have different IRQ layouts.

The new exception handler can provide a stack traceback from the interrupted code, rather than the (uninteresting) caller traceback displayed by panicf. This allows you to see what led up to a null pointer deref or division by zero, which makes it _much_ easier to track down errors that occur in common leaf functions like strcmp.
firmware/SOURCES [diff]
firmware/panic.c [diff]
firmware/target/mips/exception-mips.S [new]
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/boot.lds [diff]
firmware/target/mips/ingenic_jz47xx/crt0.S [diff]
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
firmware/target/mips/system-mips.c [new]
firmware/target/mips/system-mips.h [new]
Aidan MacDonald
2022-10-16 56d4227897: yesno_res gui_syncyesno_run fix scroll run-on bug

the GUI_EVENT_NEED_UI_UPDATE event was not canceled till after the call to scroll_stop this resulted in the scrolled line being re-added after the function was done causing a crash

thanks spork, amachronic
apps/gui/yesno.c [diff]
William Wilgus
2022-10-16 5e864ecde9: linked list: add lld_insert_prev/next()
firmware/common/linked_list.c [diff]
firmware/include/linked_list.h [diff]
Aidan MacDonald
2022-10-16 ee9679993b: linked list: inline list init functions

These functions are so trivial it's always cheaper to inline them.
firmware/common/linked_list.c [diff]
firmware/include/linked_list.h [diff]
Aidan MacDonald
2022-10-16 8bf8036021: lcd: Fix clear_viewport on grayscale displays

The original drawmode change was "x = (~x & INVERSEVID) | SOLID" which is essentially XOR'ing the INVERSEVID bit, but I changed it to mask out INVERSEVID by mistake.

Fixes 44b9785465fc.
firmware/drivers/lcd-bitmap-common.c [diff]
Aidan MacDonald
2022-10-16 1718cf5f8a: Convert a number of allocations to use buflib pinning

Several places in the codebase implemented an ad-hoc form of pinning; they can be converted to use buflib pinning instead.
apps/gui/icon.c [diff]
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/tagcache.c [diff]
apps/tagtree.c [diff]
apps/tree.c [diff]
apps/tree.h [diff]
firmware/common/dircache.c [diff]
firmware/common/unicode.c [diff]
firmware/font.c [diff]
Aidan MacDonald
2022-10-16 b16bae6fe6: skin_display.c cleanup - No functional changes
apps/gui/skin_engine/skin_display.c [diff]
William Wilgus
2022-10-15 5e7c34f5b3: lcd: Fix off by one error in clipping check

When I converted all the clipping checks in 4b8fe8acd1c0 I messed up the hline and vline checks. This produced some weird panics on the Shanling Q1, probably memory corruption -- but somehow it got past AddressSanitizer. Go figure.
firmware/drivers/lcd-bitmap-common.c [diff]
Aidan MacDonald
2022-10-15 ffdc64bea2: skin_engine fix invalid buflib handle checks

buflib considers handles <= 0 as invalid skin engine was using handles < 0
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
William Wilgus
2022-10-15 f3d679aefe: skin_engine fix free pointer crash

skin_engine uses -1 to signify a free handle 0 causes crash
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2022-10-15 12ef045fdf: move buflib_free invalid handle check to the function

allow buflib_free to check for invalid or already freed handles within the function -- remove all the invalid handle guards thru core_free
apps/action.c [diff]
apps/debug_menu.c [diff]
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/playback.c [diff]
apps/plugin.c [diff]
apps/rbcodec_helpers.c [diff]
apps/recorder/pcm_record.c [diff]
apps/talk.c [diff]
firmware/buflib.c [diff]
firmware/common/dircache.c [diff]
firmware/common/zip.c [diff]
firmware/font.c [diff]
firmware/linuxboot.c [diff]
firmware/target/mips/ingenic_x1000/installer-x1000.c [diff]
firmware/usbstack/usb_storage.c [diff]
lib/x1000-installer/src/xf_nandio.c [diff]
lib/x1000-installer/src/xf_package.c [diff]
William Wilgus
2022-10-13 9d3d925295: Revert "RFC: Get rid of mpegplayer plugin"

This reverts commit d25d24812e8120c0eb133a412287ac030eb185c9.
apps/lang/english.lang [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/bitmaps/mono/SOURCES [diff]
apps/plugins/bitmaps/mono/mpegplayer_status_icons_12x12x1.bmp [new]
apps/plugins/bitmaps/mono/mpegplayer_status_icons_16x16x1.bmp [new]
apps/plugins/bitmaps/mono/mpegplayer_status_icons_8x8x1.bmp [new]
apps/plugins/mpegplayer/SOURCES [new]
apps/plugins/mpegplayer/alloc.c [new]
apps/plugins/mpegplayer/audio_thread.c [new]
apps/plugins/mpegplayer/disk_buf.c [new]
apps/plugins/mpegplayer/disk_buf.h [new]
apps/plugins/mpegplayer/libmpeg2/AUTHORS [new]
apps/plugins/mpegplayer/libmpeg2/README [new]
apps/plugins/mpegplayer/libmpeg2/README.rockbox [new]
apps/plugins/mpegplayer/libmpeg2/attributes.h [new]
apps/plugins/mpegplayer/libmpeg2/decode.c [new]
apps/plugins/mpegplayer/libmpeg2/header.c [new]
apps/plugins/mpegplayer/libmpeg2/idct.c [new]
apps/plugins/mpegplayer/libmpeg2/idct_arm.S [new]
apps/plugins/mpegplayer/libmpeg2/idct_armv6.S [new]
apps/plugins/mpegplayer/libmpeg2/idct_coldfire.S [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp.c [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp.h [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp_arm_c.c [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp_arm_s.S [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp_c.c [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp_coldfire_c.c [new]
apps/plugins/mpegplayer/libmpeg2/motion_comp_coldfire_s.S [new]
apps/plugins/mpegplayer/libmpeg2/mpeg2.h [new]
...and 30 more files.
Solomon Peachy
2022-10-13 418169aff8: Revert "Remove YUV blitting functions and LCD modes"

This reverts commit fe6aa21e9eb88f49005863efd2003d0982920048.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/test_fps.c [diff]
docs/PLUGIN_API [diff]
firmware/SOURCES [diff]
firmware/asm/arm/lcd-as-memframe.S [diff]
firmware/asm/lcd-as-memframe.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/drivers/lcd-memframe.c [diff]
firmware/export/config/mrobe500.h [diff]
firmware/export/lcd.h [diff]
firmware/target/arm/as3525/lcd-as-e200v2-fuze-fuzev2.S [new]
firmware/target/arm/as3525/lcd-fuze.c [diff]
firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c [diff]
firmware/target/arm/ipod/lcd-as-color-nano.S [new]
firmware/target/arm/ipod/lcd-color_nano.c [diff]
firmware/target/arm/ipod/video/lcd-as-video.S [diff]
firmware/target/arm/ipod/video/lcd-video.c [diff]
firmware/target/arm/iriver/h10/lcd-as-h10.S [new]
firmware/target/arm/iriver/h10/lcd-h10_20gb.c [diff]
firmware/target/arm/iriver/h10/lcd-h10_5gb.c [diff]
firmware/target/arm/lcd-c200_c200v2.c [diff]
firmware/target/arm/pbell/vibe500/lcd-as-vibe500.S [new]
firmware/target/arm/pbell/vibe500/lcd-vibe500.c [diff]
firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S [new]
firmware/target/arm/philips/hdd1630/lcd-hdd1630.c [diff]
firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S [new]
firmware/target/arm/philips/hdd6330/lcd-hdd6330.c [diff]
firmware/target/arm/philips/sa9200/lcd-as-sa9200.S [new]
firmware/target/arm/philips/sa9200/lcd-sa9200.c [diff]
...and 24 more files.
Solomon Peachy
2022-10-13 f9ea1fc79d: splash_progress add delay function

I figure this is a better way to allow a delay before showing the progress meter
apps/gui/splash.c [diff]
apps/gui/splash.h [diff]
apps/playlist.c [diff]
apps/tagtree.c [diff]
William Wilgus
2022-10-12 c607bfac6f: lcd: Fix update_viewport() for non-default stride viewports

Simplify update_viewport() by calling update_viewport_rect(). The resulting LCD driver calls are the same either way and for some reason, update_viewport() didn't handle non-default stride viewports correctly.
firmware/drivers/lcd-bitmap-common.c [diff]
Aidan MacDonald
2022-10-12 9549ddabba: lcd: Fix bug in grayscale clear_display() implementation

clear_display() on grayscale LCDs sets the number of scrolling lines to 0 but that's wrong, the scollers need to be shut down first. Call scroll_stop() for that, as is done on color LCDs.
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
Aidan MacDonald
2022-10-12 44b9785465: lcd: Move grayscale clear_viewport() to lcd-bitmap-common.c

All grayscale LCDs have the same clear_viewport() implementation.
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
Aidan MacDonald
2022-10-12 f737e5025d: lcd: Refactor viewport clipping functions

There's no need to generate separate copies of these functions for main and remote LCDs; we can just pass the viewport directly.
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
Aidan MacDonald
2022-10-12 6acc8a81a7: lcd: Cosmetic variable renaming

Assign lcd_current_viewport to a local variable for easier typing.
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
Aidan MacDonald
2022-10-11 726673c638: toolchains: Enhancements to build scripts

* Explicitly require 'xz' (we've implicitly required it for a while now)
* Prefer xz files in a few more places
* Much better logging for native toolchain builds
* Use -O2 for native toolchain binaries
tools/rockboxdev.sh [diff]
Solomon Peachy
2022-10-10 eb745d225d: toolchains: Get rid of crosstool-ng builds.

Nothing current uses them, and it's surely bitrotten by now.
tools/rockboxdev.sh [diff]
tools/toolchain-patches/crosstool-ng-1.13.2.diff [deleted]
Solomon Peachy
2022-10-10 2928b71a69: mips: Work around an issue with GCC 8.
firmware/target/mips/mmu-mips.h [diff]
Solomon Peachy
2022-10-10 af75619585: usb dwc2: Fix a potential garbage string print in an error path.
firmware/drivers/usb-designware.c [diff]
Solomon Peachy
2022-10-10 5c6d6bd612: keyremap: Use '%z' when printing size_t
apps/plugins/keyremap.c [diff]
Solomon Peachy
2022-10-10 eb5e15803b: Use splash_progress in database when inserting into dynamic playlist
apps/tagtree.c [diff]
Christian Soffke
2022-10-10 0374dea33a: playlist_resume add delay before progress splash
apps/playlist.c [diff]
William Wilgus
2022-10-09 f8e968991d: lcd: Move parameter handling calls to lcd-bitmap-common.c

No need to reimplement the same drawmode, getwidth, etc, calls for each pixel format.
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
Aidan MacDonald
2022-10-09 eaccdeeae2: lcd: Remove internal function get_viewport()

Only the scroll engine calls this, but it's easily replaced by the return value of set_viewport_ex().
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-scroll.c [diff]
firmware/scroll_engine.c [diff]
Aidan MacDonald
2022-10-09 4f9e4ddb99: lcd: Consolidate drawpixel, drawline, and drawrect functions

All three functions are nearly identical regardless of the LCD pixel format. Consolidate them into a generic version in lcd-bitmap-common.c.
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
Aidan MacDonald
2022-10-09 4b8fe8acd1: lcd: Consolidate in-viewport clipping routines

In-viewport clipping code is duplicated across 8 files, making it a chore to change anything related to clipping; refactor the clipping logic into dedicated functions.
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
Aidan MacDonald
2022-10-09 70d5b2cd45: splash_progress fix red for non-color targets
apps/gui/splash.c [diff]
William Wilgus
2022-10-09 d73aaf3d9e: add splash_progress

the loading track splash flashes and is ugly add a function to display a progressbar along with the splash message

spruce up database commit message as well
apps/gui/splash.c [diff]
apps/gui/splash.h [diff]
apps/main.c [diff]
apps/onplay.c [diff]
apps/playlist.c [diff]
apps/root_menu.c [diff]
William Wilgus
2022-10-05 e57b4f9099: gui: Remove gui_synclist_item_is_onscreen()

Only the "Rockbox Info" screen uses it for a rather silly purpose, so remove the function. This helps to decouple things from the GUI.
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/menus/main_menu.c [diff]
Aidan MacDonald
2022-10-05 1c5a0497cf: gui: Remove list "limit_scroll" member

Get rid of the "limit_scroll" member from lists and make it a local variable of gui_synclist_do_button().

Bump plugin API version since struct gui_synclist was changed.
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/plugin.h [diff]
Aidan MacDonald
2022-10-05 d5a081cbd1: gui: Remove "enum list_wrap" from list action functions

Removing the "list_wrap" argument is actually pretty easy. In practice, almost all lists are using LIST_WRAP_UNLESS_HELD behavior so we can make that the default. A couple of lists disable wraparound with LIST_WRAP_OFF; this is now achieved by setting the list "wraparound" flag to false when setting up the list. LIST_WRAP_ON was unused and is of questionable value, so it has been removed entirely.

This makes list wraparound behavior a property of the list, controlled solely by the "wraparound" flag. The result is a simpler list API and implementation, without changing the behavior of any lists.
apps/bookmark.c [diff]
apps/cuesheet.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/option_select.c [diff]
apps/menu.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/keyremap.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/main_menu_config.c [diff]
apps/plugins/open_plugins.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/plugins/rb_info.c [diff]
apps/plugins/shopper.c [diff]
apps/plugins/shortcuts/shortcuts_view.c [diff]
apps/plugins/text_editor.c [diff]
apps/radio/presets.c [diff]
apps/recorder/recording.c [diff]
apps/screens.c [diff]
apps/tree.c [diff]
docs/PLUGIN_API [diff]
Aidan MacDonald
2022-10-05 ff378deb69: gui: Remove gui_synclist_limit_scroll()

Since gui_synclist_do_button() overrides the setting at runtime there is no reason to have a public API call to set it. Really it should be a local variable, but it will be simpler to do that after refactoring how list wraparound behavior is handled.
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/option_select.c [diff]
apps/menu.c [diff]
apps/menus/display_menu.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/keyremap.c [diff]
apps/plugins/open_plugins.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/plugins/rb_info.c [diff]
apps/plugins/shopper.c [diff]
apps/plugins/shortcuts/shortcuts_view.c [diff]
apps/plugins/text_editor.c [diff]
docs/PLUGIN_API [diff]
Aidan MacDonald
2022-10-05 ead172c05d: gui: Remove redundant copies of list scrolling settings

gui_list_screen_scroll_step() and gui_list_screen_scroll_out_of_view() just copy the global setting into a local static variable. Since they don't do anything special when the setting changes it's simpler to use the global setting directly.
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/menus/display_menu.c [diff]
apps/plugins/rb_info.c [diff]
apps/settings.c [diff]
apps/settings_list.c [diff]
Aidan MacDonald
2022-10-03 fe6aa21e9e: Remove YUV blitting functions and LCD modes

None of this is needed now that mpegplayer is gone.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/test_fps.c [diff]
docs/PLUGIN_API [diff]
firmware/SOURCES [diff]
firmware/asm/arm/lcd-as-memframe.S [diff]
firmware/asm/lcd-as-memframe.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/drivers/lcd-memframe.c [diff]
firmware/export/config/mrobe500.h [diff]
firmware/export/lcd.h [diff]
firmware/target/arm/as3525/lcd-as-e200v2-fuze-fuzev2.S [deleted]
firmware/target/arm/as3525/lcd-fuze.c [diff]
firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c [diff]
firmware/target/arm/ipod/lcd-as-color-nano.S [deleted]
firmware/target/arm/ipod/lcd-color_nano.c [diff]
firmware/target/arm/ipod/video/lcd-as-video.S [diff]
firmware/target/arm/ipod/video/lcd-video.c [diff]
firmware/target/arm/iriver/h10/lcd-as-h10.S [deleted]
firmware/target/arm/iriver/h10/lcd-h10_20gb.c [diff]
firmware/target/arm/iriver/h10/lcd-h10_5gb.c [diff]
firmware/target/arm/lcd-c200_c200v2.c [diff]
firmware/target/arm/pbell/vibe500/lcd-as-vibe500.S [deleted]
firmware/target/arm/pbell/vibe500/lcd-vibe500.c [diff]
firmware/target/arm/philips/hdd1630/lcd-as-hdd1630.S [deleted]
firmware/target/arm/philips/hdd1630/lcd-hdd1630.c [diff]
firmware/target/arm/philips/hdd6330/lcd-as-hdd6330.S [deleted]
firmware/target/arm/philips/hdd6330/lcd-hdd6330.c [diff]
firmware/target/arm/philips/sa9200/lcd-as-sa9200.S [deleted]
firmware/target/arm/philips/sa9200/lcd-sa9200.c [diff]
...and 24 more files.
Aidan MacDonald
2022-10-03 b371ff1f47: mrobe500: Fix missing parentheses in #define
firmware/export/config/mrobe500.h [diff]
Aidan MacDonald
2022-10-02 d25d24812e: RFC: Get rid of mpegplayer plugin

It might have made sense once upon a time, but in today's world...
apps/lang/english.lang [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/bitmaps/mono/SOURCES [diff]
apps/plugins/bitmaps/mono/mpegplayer_status_icons_12x12x1.bmp [deleted]
apps/plugins/bitmaps/mono/mpegplayer_status_icons_16x16x1.bmp [deleted]
apps/plugins/bitmaps/mono/mpegplayer_status_icons_8x8x1.bmp [deleted]
apps/plugins/mpegplayer/SOURCES [deleted]
apps/plugins/mpegplayer/alloc.c [deleted]
apps/plugins/mpegplayer/audio_thread.c [deleted]
apps/plugins/mpegplayer/disk_buf.c [deleted]
apps/plugins/mpegplayer/disk_buf.h [deleted]
apps/plugins/mpegplayer/libmpeg2/AUTHORS [deleted]
apps/plugins/mpegplayer/libmpeg2/README [deleted]
apps/plugins/mpegplayer/libmpeg2/README.rockbox [deleted]
apps/plugins/mpegplayer/libmpeg2/attributes.h [deleted]
apps/plugins/mpegplayer/libmpeg2/decode.c [deleted]
apps/plugins/mpegplayer/libmpeg2/header.c [deleted]
apps/plugins/mpegplayer/libmpeg2/idct.c [deleted]
apps/plugins/mpegplayer/libmpeg2/idct_arm.S [deleted]
apps/plugins/mpegplayer/libmpeg2/idct_armv6.S [deleted]
apps/plugins/mpegplayer/libmpeg2/idct_coldfire.S [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp.c [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp.h [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp_arm_c.c [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp_arm_s.S [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp_c.c [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp_coldfire_c.c [deleted]
apps/plugins/mpegplayer/libmpeg2/motion_comp_coldfire_s.S [deleted]
apps/plugins/mpegplayer/libmpeg2/mpeg2.h [deleted]
...and 30 more files.
Solomon Peachy
2022-10-02 9ce5b2a2ed: gui: Remove show/hide selection option in lists

The implementation of the "show_selection_marker" option in lists isn't great. It's a cosmetic option used to hide the selection, but it causes the list to do funny things to the selected_item and doesn't play nice with voiced menus, since these rely on the selection to determine what item is spoken.

There are only two user-facing lists that use the option, the
"Rockbox Info" screen and a menu in the superdom plugin. The rest are debug screens, and cosmetics don't matter much there.

Given how little used the option is, and its issues, removing it seems reasonable.
apps/debug_menu.c [diff]
apps/gui/bitmap/list-skinned.c [diff]
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/menus/main_menu.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/superdom.c [diff]
Aidan MacDonald
2022-10-02 c1d75a6bcb: Fix yellow from 5b0506e9de
apps/debug_menu.c [diff]
Aidan MacDonald
2022-10-02 5b0506e9de: gui: Constify list title text

Use const char* pointers for list titles. Only one debug menu actually modifies the title, and in that case it's legal to cast away const because the title points to a known mutable buffer on the stack.
apps/debug_menu.c [diff]
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar-skinned.h [diff]
apps/plugin.h [diff]
apps/plugins/lib/printcell_helper.c [diff]
Aidan MacDonald
2022-10-01 420fb1163c: skin engine: Fix bug with %Vs(color) tag

The %Vs(color) tag doesn't set the text style properly and causes the background to not be cleared when rendering lines. For static text this is rarely a problem, but for scrolling text it'll cause the text to "smear" once it starts scrolling.

Fix this by setting STYLE_DEFAULT, so the background gets redrawn when the line scrolls.

Bug report: https://forums.rockbox.org/index.php/topic,54320.0.html
apps/gui/skin_engine/skin_parser.c [diff]
Aidan MacDonald
2022-09-30 3bc6408bbe: lcd: Fix incorrect use of LCD_STRIDEFORMAT for remote LCDs

The get_address_fn implementations for some remote LCDs were checking LCD_STRIDEFORMAT unconditionally, but that macro is only valid for the main LCD. The remote LCD code only supports horizontal strides, so when compiling for a remote LCD, force the use of horizontal stride addressing.

This fixes a buffer overflow and out of bounds write that occurs with the M:Robe 500 remote LCD. (Tested with sim + ASan only.)
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
Aidan MacDonald
2022-09-30 f373c97c90: Define LCD_STRIDEFORMAT unconditionally

Instead of putting "#ifdef LCD_STRIDEFORMAT" at every usage of the macro it's simpler to have config.h define LCD_STRIDEFORMAT to the default of horizontal stride when the target leaves it unspecified.
apps/plugins/SOURCES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
apps/plugins/imageviewer/ppm/ppm_decoder.c [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/lib/bmp_smooth_scale.c [diff]
apps/plugins/lib/osd.c [diff]
apps/plugins/lib/pluginlib_bmp.c [diff]
apps/plugins/lib/xlcd_scroll.c [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/test_viewports.c [diff]
apps/plugins/xworld/sys.c [diff]
apps/recorder/resize.c [diff]
firmware/SOURCES [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/export/config.h [diff]
firmware/export/lcd.h [diff]
firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c [diff]
firmware/target/hosted/sdl/lcd-sdl.c [diff]
Aidan MacDonald
2022-09-27 9ed36ec22f: FS #13361: Fix some compilation under MacOS (Michael Landherr)
docs/CREDITS [diff]
firmware/export/config.h [diff]
Solomon Peachy
2022-09-27 09cb3c7843: lcd: Remove HAVE_VIEWPORT_CLIP

This was only enabled for the mrobe500 and sansaconnect targets. Most targets are therefore running without this "safety" measure, and presumably we'd have noticed long ago if there was a problem. So in all likelihood this is just a bunch of dead code that we don't need to carry around.
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/export/config/mrobe500.h [diff]
firmware/export/config/sansaconnect.h [diff]
Aidan MacDonald
2022-09-25 24daa26598: FS13356: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2022-09-25 36ea69b27e: FS #13365: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2022-09-25 464889ecee: Fix red in e75a3fb8
firmware/export/config.h [diff]
Aidan MacDonald
2022-09-25 e75a3fb8c7: usb: add debounce interval for USB status by event

This makes status by event debounce status changes over a 200ms period, which is what polling was already using.

This is helpful on targets where events are excessively noisy and generate a lot of transitions during insertion and extraction.
firmware/usb.c [diff]
Aidan MacDonald
2022-09-25 e4aec7d648: key remap: simplify and use movable allocations

Have action.c control the key remap buflib allocation so that it can be made movable. With memory management offloaded, core_keymap.c only needs to deal with loading keymap files. Simplify the code there and use buflib pinning so the file can be loaded directly into the buffer.
apps/action.c [diff]
apps/action.h [diff]
apps/core_keymap.c [diff]
apps/core_keymap.h [diff]
Aidan MacDonald
2022-09-19 f47aa584a8: buflib: add pin/unpin operation

An allocation is pinned by calling buflib_pin() to up its pin count. The pin count is like a reference count: when above 0, buflib won't move the allocation and won't call its move callbacks. This makes it safe to hold the pointer returned by buflib_get_data() across yields or allocations.

Note that pinned allocations can still shrink because there are some use cases where this would be valid, if buffer users coordinate with the shrink callback.
firmware/buflib.c [diff]
firmware/core_alloc.c [diff]
firmware/include/buflib.h [diff]
firmware/include/core_alloc.h [diff]
Aidan MacDonald
2022-09-19 ecfec3e9bf: buflib: add handle_to_block_end
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 88b21731fc: buflib: enable all paranoia checks

Since allocation is infrequent in Rockbox enabling the extra checks to catch memory corruption is probably worth the time and code size cost.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 8f896b14d3: buflib: remove the 'name' member from union buflib_data

Using a length 1 char array to point to the name buffer triggers a -Warray-bounds warning from GCC when fortified strcpy is used.

This type of construct isn't safe in general -- if the compiler makes assumptions based on the array bound it can create subtle bugs when accessing the array out of bounds.

Instead, add a function get_block_name() which returns a pointer to the name field by casting. This suppresses the warning and it should be a bit more portable.
firmware/buflib.c [diff]
firmware/include/buflib.h [diff]
Aidan MacDonald
2022-09-19 6e9b1b344b: buflib: remove buflib_print_allocs / buflib_print_blocks

These don't have any users and there is already another way to print blocks (which is actually used by the debug menu).
firmware/buflib.c [diff]
firmware/include/buflib.h [diff]
firmware/include/core_alloc.h [diff]
Aidan MacDonald
2022-09-19 3090cf0da4: buflib: update BUFLIB_ALLOC_OVERHEAD

Allocation overhead should be 5 units, not 6.
firmware/include/buflib.h [diff]
Aidan MacDonald
2022-09-19 59edcc57a2: buflib: omit CRC field if CRC paranoia is not enabled

If we don't check or generate CRCs then the CRC field can be left out of the header, which reduces buflib overhead slightly.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 dcc4e54b77: buflib: refactor CRC checks as paranoia

Move CRC checking and updating behind a paranoia bit, like the other checks, so it can be enabled and disabled.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 f82f3044a7: buflib: add paranoia checks for handles

Handle checks ensure that the data in the handle table points within buflib memory and checks handle entry pointers in block headers before dereferencing them.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 73b9b227eb: buflib: add block length paranoia checks for loops

Tighten up checking by adding length checks to loops which ensure the iteration stays within bounds. Check is disabled by default and can be enabled using a BUFLIB_PARANOIA bit.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 b12427741a: buflib: clean up and refactor to improve maintainability

Buflib is written with a lot of hardcoded offsets to header fields, arbitrary pointer arithmetic, and similar but not quite duplicated code, making maintenance a nightmare.

Most of the pointer arithmetic involving header fields is replaced by indexing from two well-defined pointers, the block start and end pointers. The start pointer points to the first header field, and he end pointer is one past the end of the header.

Hardcoded field indices are replaced by two enums. Forward indices
(fidx_XXX) are used to access fields from a block start pointer and negated backward indices (-bidx_XXX) are used to index from a block end pointer. There is no overlap between the indices because of the variable length name field in the middle of the header. The length of the fixed fields in the block header is now a #define'd constant rather than being open coded.

There is now a function to acquire the block end pointer from the user data pointer (ie. the pointer stored in the handle table). The old code was not consistent in this; some functions would handle a non-aligned user pointer, which may occur as a result of shrinking, while other uses just assumed the user pointer was aligned.

Block CRC calculations have also been factored out to a function that accepts block start and end pointers.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 fdde6bb5a7: buflib: optimize getting start of block from end of block

The block header has a variable length due to the embedded name. The name length is stored at the back of the header after the name, in order to allow finding the start of the header if only the user data pointer is known (eg. from the handle table).

The name length is actually not interesting in itself; storing the total length of the block header instead is marginally more efficient, saving one addition in handle_to_block().

Instead the extra arithmetic must be done by buflib_get_name(), which is a much less common operation than handle_to_block().
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 ef476ba298: buflib: correct a confusingly indented comment
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 c8365b2bdd: buflib: fix bug in handle_table_shrink

The way it iterated over the handle table is unsafe if *every* handle is free, leading to an out of bounds access.

This is a contrived example, but the bug can be triggered by making several allocations, freeing them out of order so that the handle table remains uncompacted, and then triggering a compaction using buflib_alloc_maximum().
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 4d3bf1c446: buflib: add comment in handle_alloc, remove a dead store

It isn't obvious why the "handle->val = -1" at the end of handle_alloc is needed so add an explanatory comment. But "handle->val = 1" prior to calling handle_free is simply a dead store.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 840f6b79c7: buflib: update first_free_handle in handle_alloc

Since we're scanning the handle table for the first free slot, we know none of the scanned slots are free. Use that knowledge to update first_free_handle and avoid rescanning filled slots again when the next handle is allocated.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 f622bcfe4f: buflib: fix buflib_context_relocate alignment check

Use the standard IS_ALIGNED macro and check alignment against sizeof(buflib_data), as it can be greater than 4 bytes if we're on a 64-bit platform (eg. simulator).
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-19 bcaa9465e9: buflib: optimize find_block_before

Exiting the loop implies next_block == block, so remove that check. The check ret < block is false only if block is the first block, which can be checked before the loop, saving a few cycles in that case.
firmware/buflib.c [diff]
Aidan MacDonald
2022-09-18 6beebd75e7: Cabbie v2: 240x320: Increase font size to 18. Remove linespace and increase the size of the album art slightly to better utilize the screen area.
apps/settings_list.c [diff]
wps/WPSLIST [diff]
wps/cabbiev2.240x320x16.wps [diff]
James D. Smith
2022-09-18 38a0f1a96f: Cabbie v2: Place album above title and track on the WPS. The idea is to have the album immediately beneath any album art.
wps/cabbiev2.112x64x1.wps [diff]
wps/cabbiev2.128x128x16.wps [diff]
wps/cabbiev2.128x128x2.wps [diff]
wps/cabbiev2.128x160x16.wps [diff]
wps/cabbiev2.128x64x1.wps [diff]
wps/cabbiev2.128x96x16.wps [diff]
wps/cabbiev2.128x96x2.wps [diff]
wps/cabbiev2.132x80x16.wps [diff]
wps/cabbiev2.138x110x2.wps [diff]
wps/cabbiev2.160x128x1.wps [diff]
wps/cabbiev2.160x128x16.wps [diff]
wps/cabbiev2.160x128x2.wps [diff]
wps/cabbiev2.176x132x16.wps [diff]
wps/cabbiev2.176x220x16.wps [diff]
wps/cabbiev2.220x176x16.wps [diff]
wps/cabbiev2.240x320x16.mini2440.wps [diff]
wps/cabbiev2.240x320x16.wps [diff]
wps/cabbiev2.240x400x16.wps [diff]
wps/cabbiev2.320x240x16.mrobe500.wps [diff]
wps/cabbiev2.320x240x16.wps [diff]
wps/cabbiev2.320x480x16.wps [diff]
wps/cabbiev2.360x400x16.wps [diff]
wps/cabbiev2.400x240x16.wps [diff]
wps/cabbiev2.480x800x16.wps [diff]
wps/cabbiev2.800x480x16.wps [diff]
wps/cabbiev2.96x96x16.wps [diff]
James D. Smith
2022-09-18 972c8c0ab6: Suppress bogus GCC 12 -Waddress warnings for SKINOFFSETTOPTR

This appears to be a bug in GCC 12 due to more aggressive -Waddress warnings. According to the GCC documentation, the warning should be suppressed because the "problem" code is coming from a macro, but it doesn't happen for cases like "if(!SKINOFFSETTOPTR(...))" where the macro is negated.

Assigning the result of SKINOFFSETTOPTR() to a temporary and checking that suppresses the warning.
lib/skin_parser/skin_parser.h [diff]
Aidan MacDonald
2022-09-17 bab8a41532: x1000: add support for GD5F1GQ4xExx NAND flash

This is another chip used in newer Surfans F20 units. Like the Winbond chip, it's a 1-gigabit chip with on-die ECC. Notably it has an expanded 128-byte OOB area that is only accessible when on-die ECC is disabled.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
Aidan MacDonald
2022-09-17 e64b0e81ad: x1000: add support for the W25N01GVxx NAND flash

This chip is apparently used in some Surfans F20 units, and has the same geometry as the ATO25D1GA. It has an on-die ECC engine.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-09-17 17443de221: x1000: refactor NAND chip identification

Decouple chip IDs from chips, and allow the chip ID table to list which read ID method should be used. Use a safe controller setup during identification instead of using the first chip's parameters.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-09-17 189dee08ea: rockboxdev.sh: Mention older NWZ for the arm toolchain.

The description for arm-linux mentions "Linux-based Sony NWZ", which is misleading for people who aren't very familiar with the various targets and history. People setting up toolchains for the first time for their "traditional" NWZ will overlook the "linux" part (or not understand what it means) and build the wrong compiler.

Mentioning "older Sony NWZ" may of course not immediately tell those people which one to pick, but at least they'll know they need to look things up.
tools/rockboxdev.sh [diff]
Frank Gevaerts
2022-08-21 3f3b738e06: Partial fix for FS #12702: playlist catalogue silently fails to save files
apps/playlist_catalog.c [diff]
Christian Soffke
2022-08-19 a6e9ecb086: Updated keymaps for Sansa Connect

* added scroll wheel to doom
* added scroll wheel to brickmania
* changed spacerocks to use scroll wheel instead of buttons
apps/plugins/brickmania.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/spacerocks.c [diff]
Benjamin Brown
2022-08-19 c1c0318c8d: Playlist Viewer: Fix unintentional fallthrough
apps/playlist_viewer.c [diff]
Christian Soffke
2022-08-19 5e757b4d6e: Playlists: Fix losing cached control data when resuming

Shuffle and Unshuffle commands are not flushed to disk when control data is updated. The same applies to Delete and Reset commands, unless HAVE_DIRCACHE is undefined (see update_control() function in playlist.c)

playlist_resume() discards cached control data.

This resulted in a bug where (e.g.) removed tracks from the current playlist would reappear if you stopped and resumed playing immediately afterwards (instead of restarting in between).
apps/playlist.c [diff]
Christian Soffke
2022-08-19 8f6d0efd71: tagtree: Delay showing search progress when ramcache is enabled

The disk doesn't need to spin up when the database is in RAM. Results are usually returned without any noticeable delay, so the splash only creates distraction.
apps/tagcache.c [diff]
apps/tagtree.c [diff]
Christian Soffke
2022-08-16 cf37676fb1: pictureflow: fix FS #13360 softlock cannot be disabled
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-08-16 7a3d829543: pictureflow: fix stack overflow

I noticed a stack overflow on the Fiio M3K when launching PictureFlow from the Playlist Viewer after opening a playlist from the file browser using the context menu's "View" option.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-08-05 d4917888e3: Fix yellow introduced in cef9fa22ef11511f6d174b1e92f3350e514ef7d7

(Wrap new function in HAVE_HOTKEY)
apps/playlist_viewer.c [diff]
Solomon Peachy
2022-08-05 cef9fa22ef: playlist viewer: enable hotkey

'File Browser' hotkeys can now be used while browsing a playlist.

The manual has been updated to reflect this and to say that the File Browser hotkey works in the context of the database as well (existing behavior)
apps/playlist_viewer.c [diff]
manual/rockbox_interface/hotkeys.tex [diff]
Christian Soffke
2022-08-05 3edf3ba18d: add hotkeys for properties and pictureflow
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
Christian Soffke
2022-08-05 7727486423: playlist viewer: add menu option to show songs in pictureflow

(The playlist viewer has to be re-initialized after returning from PictureFlow, since they both use the plugin buffer)
apps/playlist_viewer.c [diff]
Christian Soffke
2022-08-04 f0a05e0993: Properties plugin: Fix crash when parameter is zero-length string

This seems to be what is provided by the database when length of path+file name of an entry is larger than MAX_PATH.
apps/plugins/properties.c [diff]
Christian Soffke
2022-07-21 4101aeac54: x1000: simplify NAND command macros

There is actually no need to parameterize most commands with row or column cycles, usually the opcode and row/column address width are linked. When this is not the case we can use raw SFC commands or define new macros.
bootloader/x1000/utils.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-07-21 9ab5d311cb: x1000: move NAND commands to chip data

Using predefined commands is too inflexible so allow the chip data to specify I/O commands directly.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-07-19 2fce0a98f8: x1000: add flash ONFI info dumper to bootloader

Dumps parts of the standard ONFI info located at page 0x01 of the OTP area to a file for easy copy'n'pasting.
bootloader/x1000/recovery.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-07-19 c72f9c6d0f: x1000: add NAND OTP access switch

Provide a way to toggle the OTP bit for reading OTP pages, mostly useful for debug purposes.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-07-19 45e2d5d641: x1000: check for ECC failures in bootloader uimage reader

Update the uimage reader's bad block handling to treat an ECC uncorrectable error on the first page of the block as a bad block.
bootloader/x1000/utils.c [diff]
Aidan MacDonald
2022-07-12 5901ac8756: ipod6g: increase plugin buffer size from 512 KiB to 2 MiB

The iPod classic/6G comes with 64MB of RAM. This brings it in line with the plugin buffer size of some other targets that have the same amount of RAM, such as the Fiio M3K, and enables the use of PictureFlow for users with very large databases.
firmware/export/config/ipod6g.h [diff]
Christian Soffke
2022-07-12 23fea5dfa8: manual: add 'autoupdate bookmarks' to config file options

(from db1b823)
manual/appendix/config_file_options.tex [diff]
Christian Soffke
2022-07-11 840fb4d47b: doom: Fix a potential buffer trashing in the doom plugin

(caught by GCC12's -Waddress)
apps/plugins/doom/d_deh.c [diff]
Solomon Peachy
2022-07-11 632af4837e: xworld: Fix a really old bug that effectively disabled fast movement

(Thank GCC12's -Waddress for catching this)
apps/plugins/xworld/engine.c [diff]
Solomon Peachy
2022-07-11 05149cd4dc: Fix a couple of warnings uncovered by GCC12
apps/menus/main_menu.c [diff]
lib/rbcodec/codecs/libgme/blip_buffer.c [diff]
Solomon Peachy
2022-07-11 4917f764bb: rbutil: Try to use system-wide QuaZIP in preference to building our own

QuaZIP is included in several major Linux distributions and packaging policies strongly oppose bundling of libraries.
docs/CREDITS [diff]
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/base/ziputil.cpp [diff]
utils/rbutilqt/base/ziputil.h [diff]
James Le Cuirot
2022-07-10 db2817eb1a: Fix red in commit 131566b8f8

Use per-function sections to avoid linking in x1000_boot_linux() on normal builds, which prevents link errors due to referencing a non-existent usb_close().
firmware/target/mips/ingenic_x1000/boot-x1000.h [diff]
Aidan MacDonald
2022-07-10 47cbeb2e67: x1000: add support for simple on-die ECC with NAND flash

Many SPI NAND flash chips have on-die ECC engines that report ECC status via the status feature register. This code handles the common case where ECC status is reported with 2 bits: one bit to indicate if flips were detected & corrected, and another bit to indicate an uncorrectable error.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-07-10 df29c7991a: x1000: add setup_chip hook for NAND chips

Add a chip setup hook for configuring vendor specific registers after the chip is identified.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-07-10 ad8ace53e5: x1000: remove 'typedef struct' from NAND driver

Using 'typedef struct' is not in line with the project coding style and somewhat problematic, so get rid of it here.
bootloader/x1000/utils.c [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.c [diff]
firmware/target/mips/ingenic_x1000/installer-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl-nand-x1000.c [diff]
Aidan MacDonald
2022-07-10 cc017f211a: x1000: support 2nd device ID byte for NAND flash

Some components have additional ID bytes. Add support for an optional 2nd device ID byte during the identification routine.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-07-10 131566b8f8: x1000: fix linux boot USB issues

If the USB controller is active when we hand over to Linux it'll often trigger "irq nobody cared" warnings. Disabling the controller before boot prevents that.

Also move the USB PHY bit workaround from the dualboot cleanup hook to the main Linux boot function. Mainline kernels don't clear these bits either.
firmware/export/config.h [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.c [diff]
Aidan MacDonald
2022-07-10 d0d13baf3e: x1000: fix command line passing for linux boot
firmware/target/mips/ingenic_x1000/boot-x1000.c [diff]
Aidan MacDonald
2022-06-26 ec9e484f64: firmware: Add load/store with endianness functions

Define common functions for loading 16/32/64-bit unsigned integers with big, little, or host endianness, and distinguishing unaligned and aligned cases.

Unaligned loads are supported generically by default, but this can be overridden with a more efficient implementation on architectures which support unaligned loads natively.
firmware/include/rbendian.h [diff]
Aidan MacDonald
2022-06-22 c3e75a1ce7: Reset settings on button hold fix lang for non supported ipods
apps/lang/english.lang [diff]
William Wilgus
2022-06-22 8283752223: Reset settings on button hold

extend this properly to the gigabeast and iriver updated manual entries
apps/features.txt [diff]
apps/lang/english.lang [diff]
apps/main.c [diff]
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/startup_shutdown_options.tex [diff]
William Wilgus
2022-06-22 e75e07e1b6: plugin sliding puzzle fix unneeded check
apps/plugins/sliding_puzzle.c [diff]
William Wilgus
2022-06-22 e1c5a3e296: fix uninitialized warning in libopus

likely this is truly a bug but I imagine much worse things happen before this point in that case
lib/rbcodec/codecs/libopus/silk/NLSF2A.c [diff]
William Wilgus
2022-06-22 75f618ea62: Rb Manual Fix missing bracket

Fix missing bracket from 7e0492444c38f2ed350016be15b6a4d8ba489bcd g#4568
manual/configure_rockbox/system_options.tex [diff]
William Wilgus
2022-06-21 7e0492444c: usb: remove "Ask" USB Mode (FS #13317)

USB ask mode is basically a footgun: it can't work on native targets and doesn't work reliably on hosted ones, and it continually produces a slow trickle of problems. FS #13317 gives a rundown of the issues. Removing the setting seems like the best solution for now, since a fix would be pretty involved.

This partially reverts 60f581e8f5. The USB Mode setting is left in place so the option can be added back later in a non-buggy way.
apps/settings_list.c [diff]
firmware/export/usb.h [diff]
firmware/usb.c [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/rockbox_interface/main.tex [diff]
Aidan MacDonald
2022-06-21 6cdd142d5c: Setting reset fix red
apps/main.c [diff]
William Wilgus
2022-06-20 ed37c2e894: FS #13193 - Add option to disable settings reset on startup

Updated version of the patch originally by user cockroach

UNTESTED Ipods?, Iriver H10, I do not own these players so YMMV

https://www.rockbox.org/tracker/task/13193
apps/features.txt [diff]
apps/lang/english.lang [diff]
apps/main.c [diff]
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/startup_shutdown_options.tex [diff]
William Wilgus
2022-06-13 58bf7c7e6f: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2022-06-12 7d5aeeecf1: FS13343: Updated Serbian translation (Ivan Pesic)
apps/lang/srpski.lang [diff]
Solomon Peachy
2022-06-12 6a707cd913: FS13346: Updated Slovak translation (Matej Golian)
apps/lang/slovak.lang [diff]
Solomon Peachy
2022-06-12 595a34640b: FS13345: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2022-06-12 7296f30490: jz4760: Reformat USB driver a little. Prep work for later changes.
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
Solomon Peachy
2022-06-12 b9e7075837: Rockbox Utility: updated Czech translation

translated missing strings and revised existing
utils/rbutilqt/lang/rbutil_cs.ts [diff]
Pavel Rzehák
2022-05-30 4d01168b9b: x1000: add flash probe tool to bootloader

The flash probe mimics the boot ROM's flash read routines and dumps the manufacturer & device IDs and 16-byte parameter data to a file on the SD card.
bootloader/x1000/recovery.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-05-30 e05aa27124: x1000: move NAND commands to header file
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-05-28 1d39261338: lastfm_scrobbler Add settings WIP

add settings to the scrobbler plugin Start Playback -- resume playback at plugin start
(while enabled if nothing to resume will bring you back to scrobbler menu) Save Threshold 0-100% -- when this much time has passed the track will be saved and marked (L)istened

Verbose -- Supress messages such as 'Scrobbler Started' and 'Scrobbler Flushed'

run the plugin a second time to bring up the menu if you have resume playback enabled and there is nothing to resume it brings you back to the scrobbler menu as well
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2022-05-28 7345666d9c: plugins: use menu for lastfm scrobbler TSR exit callback

Use standard menus and yes/no screen for the TSR exit callback, similar to the recently added test_usb plugin. This removes the need to define key bindings and it provides a more consistent user experience.

It also allows the "flush cache" message to be popped up in the main thread - doing it from the worker thread is unreliable and the message often disappeared because the main thread did a UI update immediately after leaving the plugin.

One issue is that quitting the plugin by selecting the scrobbler plugin itself immediately restarts the scrobbler. This is because there is currently no way for TSR plugins to terminate themselves either through the exit_tsr callback or otherwise.
apps/plugins/lastfm_scrobbler.c [diff]
Aidan MacDonald
2022-05-22 85232fadbb: simulator: fix off by one error in USB ack calculations

The sim's printout of the number of expected USB acks was off by one. Since the sim queue is not registered for broadcasts, it will not receive an ack message and does not need to account for itself when determining the number of acks to expect, unlike the USB code.
uisimulator/common/sim_tasks.c [diff]
Aidan MacDonald
2022-05-22 5ee9a45126: mips: stop backtraces at main()

Initialize ra=0 before calling main so backtraces don't walk through the startup code.
firmware/target/mips/ingenic_jz47xx/crt0.S [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-05-22 981e972839: mips: add native backtrace implementation

Should make debugging crashes on native MIPS targets far easier. This is by no means a 100% complete or robust implementation but it seems to handle the vast majority of functions.
firmware/export/backtrace.h [diff]
firmware/export/system.h [diff]
firmware/panic.c [diff]
lib/mipsunwinder/SOURCES [new]
lib/mipsunwinder/backtrace-mips32.c [new]
lib/mipsunwinder/backtrace-mipsunwinder.h [new]
lib/mipsunwinder/init_context_32.S [new]
lib/mipsunwinder/mipsunwinder.make [new]
tools/root.make [diff]
Aidan MacDonald
2022-05-22 cade488b08: pictureflow: Fix 'Update Cache' function and update manual

The artwork cache was previously always rebuilt, even if you had selected the option to update.

"Preparing artwork" should be much quicker now after a database update.
apps/plugins/pictureflow/pictureflow.c [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2022-05-22 b357585852: pictureflow: Fix slide_index bound

Parameters for fbound were in the wrong order and slide_frame wasn't assigned the bounded value
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-05-22 5146c3043f: pictureflow: Fix concurrency issues building art cache

Guards against possible image corruption
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-05-21 c116db6065: plugins: add USB TSR test plugin

This is intended for testing USB event delivery to TSR plugins. Usage:

1. enter plugin -> select Start 2. plug and unplug USB 3. reenter plugin -> select Status it should display "State: disconnected" then "Prev: connected" 4. when done -> select Stop Plugin
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/test_usb.c [new]
Aidan MacDonald
2022-05-15 2f71571c0a: Fix faulty Play Shuffled behavior (FS #13347)

When replacing a dynamic playlist with Play Shuffled, the current track could incorrectly be left at the end of the new playlist. Fix this - the current track should always be at the beginning, so it can be skipped past regardless of the repeat/shuffle mode.
apps/onplay.c [diff]
Aidan MacDonald
2022-05-14 2315266628: kernel: remove unused function mutex_test()

No longer needed since the only user was in the Archos code.
firmware/kernel/include/mutex.h [diff]
Aidan MacDonald
2022-05-14 dafc8e5904: kernel: remove unused kernel/pthread/*.c files

These don't seem usable and it looks like the files were added by accident by d66346789c "buflib: Check the validity of of handles passed to buflib_get_data() in DEBUG builds."
firmware/kernel/pthread/corelock.c [deleted]
firmware/kernel/pthread/mutex.c [deleted]
firmware/kernel/pthread/thread.c [deleted]
Aidan MacDonald
2022-05-14 d20071def0: apps: Add "keep current track when replacing playlist" setting

Add a setting that makes Play and Play Shuffled in the playlist context menu leave the current song (if any) playing when they replace the playlist. Default to on, since this was the behavior of the old "Clear List & Play Next" option.
apps/lang/english.lang [diff]
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/playlist_options.tex [diff]
manual/working_with_playlists/main.tex [diff]
Aidan MacDonald
2022-05-14 70087fb9f3: apps: Change playlist context menu behavior, fix FS #13336

Rename the "Clear List & Play" options to simply Play and Play Shuffled, and change their behavior slightly. Previously they would leave the current song playing, but now they will start playing the first song of the new playlist immediately.

Shuffle options are now consistently hidden whenever a single file is selected.

Fixes FS #13336 -- Play Shuffled is now always displayed where applicable, regardless of playback state.
apps/lang/english.lang [diff]
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Aidan MacDonald
2022-05-09 7363d65f10: manual: Fix up some issues to try and get texlive2021 working ok.
docs/CREDITS [diff]
manual/platform/keymap-xduoox3.tex [diff]
manual/plugins/pictureflow.tex [diff]
manual/plugins/text_viewer.tex [diff]
manual/preamble.tex [diff]
Solomon Peachy
2022-05-09 f3358eb20a: Properties plugin: Eliminate redundant Track Info code

When opening an audio file from the file browser or database using the Properties plugin, it will now use existing code from the Show Track Info screen for displaying metadata. The menu option has been renamed accordingly.
apps/lang/english.lang [diff]
apps/onplay.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/properties.c [diff]
apps/screens.c [diff]
Christian Soffke
2022-05-07 4b293285ea: pictureflow: fix album index alignment in load_album_index
apps/plugins/pictureflow/pictureflow.c [diff]
Aidan MacDonald
2022-05-07 f661dc596e: pictureflow: fix bug in calculation of album art buf size

I intended to check for enough space in buffer but this isn't really doing it and it is making aa_bufsz slightly too big so it's a possible buffer overflow.

Restore the old ALIGN_DOWN(..., 4) rounding in case it's important, if not, then no harm done.
apps/plugins/pictureflow/pictureflow.c [diff]
Aidan MacDonald
2022-05-05 2c4480979f: tdspeed.c remove buffer name strings

get rid of the magic buffer size and the whole name buffer naming the buffers individually doesn't serve any real purpose instead add a static string for all td buffers
apps/rbcodec_helpers.c [diff]
William Wilgus
2022-05-04 09ef94ed8b: add const to const * strings iriver Fix Red

the iriver devices overwrite the pointer
apps/recorder/recording.c [diff]
William Wilgus
2022-05-04 79864c6ec2: add const to const * strings

I don't think this will amke any difference except maybe for hosted ports
apps/gui/skin_engine/skin_parser.c [diff]
apps/misc.c [diff]
apps/recorder/albumart.c [diff]
apps/recorder/recording.c [diff]
apps/shortcuts.c [diff]
apps/tagcache.c [diff]
firmware/target/arm/imx233/debug-imx233.c [diff]
firmware/target/arm/s5l8700/debug-s5l8700.c [diff]
firmware/target/arm/s5l8702/debug-s5l8702.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
firmware/target/hosted/ibasso/sysfs-ibasso.c [diff]
firmware/target/hosted/usb-hiby.c [diff]
lib/rbcodec/dsp/tdspeed.c [diff]
lib/rbcodec/dsp/tdspeed.h [diff]
William Wilgus
2022-05-02 4dd3c2b33e: codecs: m4a: improve seek accuracy

Seeking doesn't work well in M4A files with very few chunks due to the seek method used (chunk based using the info in the 'stco' atom). According to libm4a/demux.c the expected seek resolution using this method is 1/4 to 1/2 seconds. However, ffmpeg generates files with a 1 megabyte chunk size, so the resolution is much worse than expected on some files: around 30-40 seconds at 256kbps.

There was a bug with the seek position reported back to Rockbox: the codec pretended it could seek exactly to the requested sample, but it would only seek to the start of a chunk. This could leave the UI in a confusing state because the real playback position was different from what the elapsed time showed. Fix this by recalculating the reported sample position using the chunk start.

To fix the low seek accuracy, use the table in the 'stsz' atom to skip individual packets within a chunk. This is very accurate, but it takes a lot of RAM to allocate the table. Currently the table is not allowed to use more than half of the codec RAM, which should suffice for short files on most targets. On files where the table is too large the codec will fall back to the less accurate chunk-based seek method.
lib/rbcodec/codecs/libm4a/demux.c [diff]
lib/rbcodec/codecs/libm4a/m4a.c [diff]
lib/rbcodec/codecs/libm4a/m4a.h [diff]
Aidan MacDonald
2022-05-02 b79eefc858: apps: fix tagtree arithmetic on null pointers

It was possible for the tag tree's buflib move callback to turn a null pointer non-null. The tagcache_search_clause->str can be null for OR clauses. Also ensure that clauses are zeroed on allocation to ensure garbage pointers don't creep in.
apps/tagtree.c [diff]
Aidan MacDonald
2022-05-02 6e37b31851: apps: fix use of negative fd in open_plugin.c

Bug reported by UBSan.
apps/open_plugin.c [diff]
Aidan MacDonald
2022-05-02 dadfbfc6a5: apps: fix close of negative fd in talk.c

Bug reported by UBSan.
apps/talk.c [diff]
Aidan MacDonald
2022-05-02 e5e457b526: apps: fix int/long mismatch in playlist.c

A couple of places use sizeof(int) for allocations and copying but the indices are longs, which causes bugs in the simulator on 64-bit.
apps/playlist.c [diff]
Aidan MacDonald
2022-05-02 6b8c94a6e3: Fix some non-portable alignment values

UBSan reports an avalanche of unaligned pointer bugs stemming from hardcoded 4-byte alignments used in certain places. Use sizeof(long) instead to align to the machine word size.
apps/gui/skin_engine/skin_parser.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/recorder/jpeg_load.c [diff]
apps/tagcache.c [diff]
lib/skin_parser/skin_buffer.c [diff]
Aidan MacDonald
2022-05-02 366f00a3d3: plugins: fix out of bounds read in chopper

GCC complains about this when compiling with UBSan.
apps/plugins/chopper.c [diff]
Aidan MacDonald
2022-04-28 ab71b9e334: tree.c update settings when new theme selected
apps/tree.c [diff]
William Wilgus
2022-04-28 f0d3a62d91: keyboard.c change math for editline above picker
apps/recorder/keyboard.c [diff]
William Wilgus
2022-04-20 9e93796407: buffering: remove bufgettail/bufcuttail

These operations can only be used in limited circumstances and have exactly one user. bufgettail especially seems of dubious value; how often do you need to read N bytes from the end of a file without changing the file position?

strip_tags() was the only function using them, to strip off ID3v1 and APE tags off the end of buffered tracks. This would save only 32-192 bytes per track -- if the container format uses APE/ID3v1. It hardly seems worth the effort.
apps/buffering.c [diff]
apps/buffering.h [diff]
apps/playback.c [diff]
docs/PLUGIN_API [diff]
lib/rbcodec/metadata/metadata.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
Aidan MacDonald
2022-04-20 931d616071: Manual: Add Eros Q Native Bootloader download link

Forgot this in the previous patchset
manual/getting_started/jztool_install.tex [diff]
Dana Conrad
2022-04-19 002575dbcf: [BUGFIX] gui_synclist move global display settings to list struct

forgot to add the update function to the list_wraparound callback
apps/menus/display_menu.c [diff]
William Wilgus
2022-04-19 1c3f6e063a: fiiom3k Yes/No screen: Only accept Play button for YES

According to the on screen instructions, any other button should mean No.

More importantly, in my experience at least, the Select
"button", since it is touch-activated, can sometimes be pressed by accident, especially when a warning screen is displayed as a result of pressing that same button.
apps/keymaps/keymap-fiiom3k.c [diff]
Christian Soffke
2022-04-18 f8d54d0d1e: rbutil: Bump to 1.5.1.
utils/rbutilqt/Info.plist [diff]
utils/rbutilqt/version.h [diff]
Dominik Riebeling
2022-04-18 3ed515872c: rbutil: Fix progress dialog abort changed too early.

Don't change the abort button to Ok after a successful bootloader install, this will be done by the following steps.
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2022-04-18 80ac6893c0: rbutil: Update changelog.
utils/rbutilqt/changelog.txt [diff]
Dominik Riebeling
2022-04-18 e4cb1615f4: rbutil: run lupdate on all translations.
utils/rbutilqt/lang/rbutil_cs.ts [diff]
utils/rbutilqt/lang/rbutil_de.ts [diff]
utils/rbutilqt/lang/rbutil_fr.ts [diff]
utils/rbutilqt/lang/rbutil_gr.ts [diff]
utils/rbutilqt/lang/rbutil_he.ts [diff]
utils/rbutilqt/lang/rbutil_it.ts [diff]
utils/rbutilqt/lang/rbutil_ja.ts [diff]
utils/rbutilqt/lang/rbutil_nl.ts [diff]
utils/rbutilqt/lang/rbutil_pl.ts [diff]
utils/rbutilqt/lang/rbutil_pt.ts [diff]
utils/rbutilqt/lang/rbutil_pt_BR.ts [diff]
utils/rbutilqt/lang/rbutil_ru.ts [diff]
utils/rbutilqt/lang/rbutil_tr.ts [diff]
utils/rbutilqt/lang/rbutil_zh_TW.ts [diff]
Dominik Riebeling
2022-04-18 e2dc0a2c07: rbutil: Make zip install log less noisy.

No need to show a separate entry when a cached file has been used, do it the same way as bootloader downloads do.
utils/rbutilqt/base/zipinstaller.cpp [diff]
Dominik Riebeling
2022-04-18 1155851ffb: rbutil: Make "Info" tab more responsive.

Loading the information can take a bit depending on the speed of the disk. To make the application not appear as frozen update the UI more often, and display a "Loading" text during data retrieval.
utils/rbutilqt/gui/infowidget.cpp [diff]
Dominik Riebeling
2022-04-18 e71a441762: ImageViewer: Fix buffer overflow

np_file is a buffer of size MAX_PATH. After removing only the file name component and leaving the rest of the path, the available space may not be sufficient for appending another file name (possibly of size MAX_PATH itself) to it.

This can occur after a file of acceptable length is opened in ImageViewer, and you then advance to another file whose path
(including the file name) is longer than MAX_PATH.
apps/plugins/imageviewer/imageviewer.c [diff]
Christian Soffke
2022-04-18 1c66e97522: Database: Remove File View menu

These options don't seem to apply to the database...
apps/menus/settings_menu.c [diff]
apps/onplay.c [diff]
apps/onplay.h [diff]
Christian Soffke
2022-04-18 a234df30df: Fix sim build for glibc >=2.34
firmware/asm/thread.h [diff]
Aidan MacDonald
2022-04-18 4d7327b04d: Album Art: Eliminate redundant check

When the 'Album Art' setting was set to
'Prefer Image File' and neither image file nor embedded artwork were found, playback would check for files twice.
apps/playback.c [diff]
Christian Soffke
2022-04-18 b02123d349: Manual: Add Eros Q Native

Here is the PDF this patchset produces: https://www.dropbox.com/s/v1uz8p2fsgsz1ng/rockbox-erosqnative-923dabb5cd-220409.pdf?dl=0
manual/configure_rockbox/bookmarking.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/jztool_install.tex [diff]
manual/main_menu/main.tex [diff]
manual/platform/erosqnative.tex [new]
manual/platform/keymap-erosqnative.tex [new]
manual/rockbox_interface/browsing_and_playing.tex [diff]
manual/rockbox_interface/main.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Dana Conrad
2022-04-18 dc67d821c3: toolchain: update zlib to 1.2.12 for native mips targets

zlib has been updated to 1.2.12 on March 27, 2022 with the following note:

Due to the bug fixes, any installations of 1.2.11 should be replaced with 1.2.12.

The previous version has been removed and is no longer available for download on the official site.
tools/rockboxdev.sh [diff]
Bernd Busse
2022-04-17 fc38cd8215: rbutil: Fix uninstall not updating install log.
utils/rbutilqt/base/uninstall.cpp [diff]
Dominik Riebeling
2022-04-17 37a60d5461: rbutil: Enable themes install depending on theme selection.

Don't store the "Install Themes" option. Automatically enable themes installation if the themes selection has at least one entry selected instead.
utils/rbutilqt/base/rbsettings.cpp [diff]
utils/rbutilqt/base/rbsettings.h [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.h [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
utils/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
2022-04-17 62108a9613: rbutil: Use references to avoid creating temporary objects.

Get rid of some unnecessary object creating / copying by using references.
utils/rbutilqt/base/ttsbase.h [diff]
utils/rbutilqt/base/ttscarbon.cpp [diff]
utils/rbutilqt/base/ttscarbon.h [diff]
utils/rbutilqt/base/ttsexes.cpp [diff]
utils/rbutilqt/base/ttsexes.h [diff]
utils/rbutilqt/base/ttsfestival.cpp [diff]
utils/rbutilqt/base/ttsfestival.h [diff]
utils/rbutilqt/base/ttssapi.cpp [diff]
utils/rbutilqt/base/ttssapi.h [diff]
utils/rbutilqt/base/uninstall.cpp [diff]
utils/rbutilqt/base/utils.cpp [diff]
utils/rbutilqt/base/voicefile.cpp [diff]
utils/rbutilqt/base/zipinstaller.h [diff]
utils/rbutilqt/test/stubs/stubs-talkgenerator.cpp [diff]
Dominik Riebeling
2022-04-17 8c55ce62b9: rbutil: Move bootloader file check to base class.

Avoid constructing the bootloader file path in the caller. Pass filename list and mountpoint separately so it can directly fall back to the mountpoint.

Change some functions to use references instead of creating temporary objects.
utils/rbutilqt/base/bootloaderinstallbase.cpp [diff]
utils/rbutilqt/base/bootloaderinstallbase.h [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2022-04-17 1af92e5ff8: Fix red from 6f5af8e53c
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues-brasileiro.lang [diff]
apps/lang/portugues.lang [diff]
...and 15 more files.
Aidan MacDonald
2022-04-17 fca7b8e2ff: Fix undefined behavior that blocks compiling with UBSan

Left shifts are not defined in C if they would cause signed overflow, so these expressions get instrumented, which makes them unusable as switch values and triggers compile errors when compiling with UBSan.
firmware/kernel/include/queue.h [diff]
lib/rbcodec/metadata/metadata_common.h [diff]
Aidan MacDonald
2022-04-17 c6df8cc4f7: configure: Add support for compiling the simulator with UBSan

By passing --with-ubsan to tools/configure, you can now build the simulator with UBSan to catch undefined behavior at runtime.
tools/configure [diff]
Aidan MacDonald
2022-04-17 6f5af8e53c: Add Codec to Track Info screen
apps/screens.c [diff]
Christian Soffke
2022-04-17 c4156b1909: viewports, set flags to VP_DEFAULT_FLAGS

flags were getting un-initialized memory it really didn't matter with the flags getting initialized anyway But once I added a new flag that didn't explicitly set or clear the flag at init well here we are

set flags to VP_DEFAULT_FLAGS in viewport_set_defaults()

add the flags variable to the default vp's set to 0
(it was already initialized to 0 by bss, make it explicit)
apps/gui/viewport.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/export/lcd.h [diff]
William Wilgus
2022-04-17 6703f43f5c: Playlist Viewer: Always retrieve track Info from disk

Frequency, file size, and the codec are not stored in the database and thus can’t be displayed in the Playlist Viewer's Track Info screen when metadata is only retrieved from the database.
apps/playlist_viewer.c [diff]
Christian Soffke
2022-04-16 0e8f3669d0: Fix remaining red from 3fcdadce24
apps/plugins/SOURCES [diff]
Aidan MacDonald
2022-04-16 76035decc6: Fix red in 3fcdadce24
apps/plugin.c [diff]
apps/plugin.h [diff]
Aidan MacDonald
2022-04-16 f989339664: Remove dead code
apps/debug_menu.c [diff]
apps/screens.h [diff]
Christian Soffke
2022-04-16 68ac932585: PictureFlow: Disable 'Album Not Found' splash when stopped

...and go to last album, even if it hadn't been selected for playback
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-04-16 e3bf6f08e3: PictureFlow: Delay LCD Update until center slide is loaded

Eliminates flashing of slide right after launch or when changing sorting on the M3K using the volume buttons
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-04-16 3fcdadce24: plugins: Add multiboot select plugin

This plugin provides a menu for easily editing the root redirect file on targets that support multiboot. You can select a new root from a list of Rockbox installations detected on the filesystem or remove all redirects to boot from the default location.

To avoid searching the whole filesystem, only subdirectories of the volume roots are checked for valid installations. Only installations that are compatible with the current player will be displayed.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/multiboot_select.c [new]
apps/plugins/viewers.config [diff]
Aidan MacDonald
2022-04-16 d55dceff37: apps: Add ability to do a clean reboot

Allow a clean shutdown to end in either power off or reboot. Add a new event SYS_REBOOT to signal it and sys_reboot() to trigger the event. SYS_REBOOT signals a reboot request and should be listened for alongside SYS_POWEROFF events.
apps/iap/iap-core.c [diff]
apps/misc.c [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/lastfm_scrobbler.c [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/mpegplayer/mpeg_misc.c [diff]
apps/plugins/plugin_crt0.c [diff]
apps/plugins/solitaire.c [diff]
apps/recorder/recording.c [diff]
apps/tagcache.c [diff]
firmware/backlight.c [diff]
firmware/export/powermgmt.h [diff]
firmware/kernel/include/queue.h [diff]
firmware/powermgmt.c [diff]
Aidan MacDonald
2022-04-15 90960adf56: rbutil: Fix bootloader installation for various players.

Reworking handling of player specific data (static player configuration, as well as information retrieved from the server) changed the behaviour on a non-present configuration entry. This eventually caused the mountpoint not being set for players that don't have a bootloader file on disk. Fixing this accidentially removed the default-if-not-found handling for the bootloader file.

Restore the old default value behaviour for both cases.
utils/rbutilqt/base/bootloaderinstallbase.cpp [diff]
utils/rbutilqt/base/playerbuildinfo.cpp [diff]
Dominik Riebeling
2022-04-15 ff08841ea9: viewport FIX RED remote screens
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2022-04-15 d56d96031c: viewports add flag to disable updates

when drwing multiple areas of the screen with other gui elements you might want to combine updates into a single screen redraw
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/export/lcd.h [diff]
William Wilgus
2022-04-14 b9c3ab2e04: rbutil: Improve progress & responsiveness on (un)install.

- When uninstalling update the log file only at the end of removing all files. This gives a major speed improveness since othewise the log file is written after each file. This slows down things notably, especially on slow disks.
- Explicitly update the UI during install zip extraction. Avoids progress seemingly hanging due to the UI not getting updated often enough.
utils/rbutilqt/base/uninstall.cpp [diff]
utils/rbutilqt/base/ziputil.cpp [diff]
Dominik Riebeling
2022-04-14 97176d444e: rbutil: Use progress bar on uninstall.

When uninstalling parts with lots of small files the process can take quite some time. Update the progress accordingly.
utils/rbutilqt/base/uninstall.cpp [diff]
Dominik Riebeling
2022-04-14 6ef094c1a9: rbutil: Make QtMultimedia an optional component.

We only use it for playing the TTS sample so it's not too important. Since this is a separate Qt module it might not be installed, so make it optional.
utils/CMakeLists.txt [diff]
utils/rbutilqt/CMakeLists.txt [diff]
Dominik Riebeling
2022-04-14 8a6ceff376: rbutil: Fix sansapatcher bootloader install on Windows.

During bootloader installation sansapatcher disk access is accidentially set up twice. This is not a problem except on Windows, which will abort with a "permission denied" error.

This is basically the same problem as for ipodpatcher bootloader install.
utils/rbutilqt/base/bootloaderinstallipod.cpp [diff]
utils/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
utils/sansapatcher/sansaio-posix.c [diff]
utils/sansapatcher/sansaio-win32.c [diff]
Dominik Riebeling
2022-04-13 cc2f364926: rbutil: Fix ipodpatcher bootloader install on Windows.

During bootloader installation ipodpatcher disk access is accidentially set up twice. This is not a problem except on Windows, which will abort with a "permission denied" error.
utils/ipodpatcher/ipodio-posix.c [diff]
utils/ipodpatcher/ipodio-win32.c [diff]
utils/rbutilqt/base/bootloaderinstallipod.cpp [diff]
Dominik Riebeling
2022-04-11 b9ab75732a: bitmap/list.c fix red
--typo
apps/gui/bitmap/list.c [diff]
William Wilgus
2022-04-11 ddcab156f7: gui_synclist move global display settings to list struct

its really painful needing to override global settings in order to change some aspects of lists

this patch moves:

[scrollbar position, cursor type, talk_menus, keyclick, wrap around, scroll paginated]

to variables within the synclist, it also makes updating after settings changes a necessity

I think I have the static synclists in core covered

(I think the one in gui/list-skinned can be left as is)

this patch allows easy modification these flags on the fly
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/menus/theme_menu.c [diff]
apps/tree.c [diff]
William Wilgus
2022-04-09 8dbc0914f6: imageviewer: limit progress bar LCD update rate

The progress callback doesn't rate limit LCD updates, which causes excessive slowdowns (up to 150x!) on some targets. Limiting updates to 20fps solves the problem and should boost load speed across the board, particularly for large images and animated GIFs that may run the progress callback thousands of times.
apps/plugins/imageviewer/imageviewer.c [diff]
Aidan MacDonald
2022-04-09 32f1418c5a: buffering: fix buffer overflows with bitmap loading

In some circumstances it was possible for a bitmap to overflow its buffer and overwrite the next handle. The easiest way to trigger it is with a highly compressed JPEG that is decoded to a large bitmap. Because the JPEG file size is used to determine how much to allocate this would cause an obvious buffer overflow when the JPEG is smaller than the decoded bitmap. Fix this by using the decoded bitmap size as the allocation size. Some overhead must be added to deal with JPEGs, but it will be freed once the image is loaded.

A less obvious possibility is the fact that add_handle() will allow a handle to be added even if there's not enough space for the entire allocation. This is generally beneficial because it allows the first part of a file to be loaded while waiting for space to free up, but for bitmaps it is not valid because the whole image is loaded at once. Hence if there is not actually enough space in the buffer, the bitmap load can again overflow the actual free space and overwrite the next handle.

The buffering code supports an H_ALLOCALL flag for allocations that need the free space available immediately, so use it for bitmaps to avoid that bug.

load_image() had a sketchy-looking check for free space which stopped me from triggering the bug with simple tests, but since guessing the free space is obviously a bad idea when the caller *knows* how much free space there really is, remove that guess and let the caller tell load_image() the real deal.
apps/buffering.c [diff]
Aidan MacDonald
2022-04-09 5aa0fc3b00: jpeg: provide a rough estimate of decoder memory overhead

JPEG decoding requires additional space in the bitmap buffer beyond what is needed for the decoded pixel data. Provide a way to estimate how much overhead is needed.

The actual overhead is sizeof(struct jpeg) + decode_buf_size, where the latter depends on the image size and JPEG encoding used. From my testing decode_buf_size is normally pretty small (under 5 KiB) but looking at the code it could be large in some cases, primarily with large images, so 32 KiB seems to be a decent compromise. Someone who knows better about JPEG should pick a better value if that's too big.

Using a constant is obviously not the most accurate but it seems to be the simplest option for retrofitting to existing code.
apps/recorder/jpeg_load.c [diff]
apps/recorder/jpeg_load.h [diff]
Aidan MacDonald
2022-04-09 7718b24401: buffering: fix signed overflow in next_handle_id()

Not sure what the comment is talking about - signed overflow is undefined behavior and we don't use -fwrapv or other flags to make it defined. I can't see how a compiler could abuse it here, but the overflow is nonetheless easily avoided.
apps/buffering.c [diff]
Aidan MacDonald
2022-04-08 bd444ebd0a: BUGFIX keyboard.c make vp alloc static

don't stop playback to alloc viewports for the keyboard For the moment it doesn't make much difference each vp takes about 40 bytes (double that in the sim?) so not the end of the world 120 extra bytes
apps/recorder/keyboard.c [diff]
William Wilgus
2022-04-08 132034346f: Manual: Update PictureFlow

- Update the manual entry for PictureFlow with the latest features and fix keymap

- Strongly suggest enabling the database's
"Load to RAM" feature (in my experience, this can lead to a ~60x speedup when building the album index)

- Suggest enabling the dircache, as it can noticeably improve the loading times for album art.
manual/configure_rockbox/system_options.tex [diff]
manual/plugins/pictureflow.tex [diff]
Christian Soffke
2022-04-08 77717f36e0: Manual: Update fiiom3k keymap
manual/platform/keymap-fiiom3k.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Christian Soffke
2022-04-08 db55d30372: Allow cuesheet index offsets longer than 99 minutes.

While the track number is limited to 99, I know of no documented constraint on the value of offset minutes to 99.

As we are storing the millisecond offset as unsigned long, assuming 32 bit, we can allow 70,000 minutes (2^32 / 60000).

However, I've been unable to generate a test audio file 48 days long under 2GB, so I've set the limit to 30,000 minutes.

In addition, this change reduces the maximum number of seconds to 59, and frames to 74.

I've generated some silent test files with the filenames being cue_[minutes].mp3

http://peskett.co.uk/rockbox/test_cues/
apps/cuesheet.c [diff]
Nick Peskett
2022-04-07 d1be73cfc0: keyboard.c Use viewports, move text box pos

allows items to be moved around with less code changes

remove scrolling I was not overly impressed with it add test_kbd plugin
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/SOURCES.app_build [diff]
apps/plugins/test_kbd.c [new]
apps/recorder/keyboard.c [diff]
William Wilgus
2022-04-02 bf3e67204c: lastfm_scrobbler check for back to back repeat entries

if you skip a track after the halfway point the scrobbler may double post with slightly different timestamps but the same track info

take a crc of the non-unique part and check against the previously written track
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2022-04-02 43abe2d820: lastfm_scrobbler check pointers for validity

we need to make sure we don't deref NULL pointers
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2022-04-01 98f762316f: system: update MEM_ALIGN_ATTR for targets with CPU caches

MEM_ALIGN_ATTR should take advantage of cache line alignment on all native CPUs which define it, not just ARM CPUs. (This could arguably be done for hosted targets too, but we don't necessarily know the size of a cache line there.)
firmware/export/system.h [diff]
Aidan MacDonald
2022-04-01 de285741bf: ErosQ Native: Make power delay bootloader-only

gotta go fast
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
2022-04-01 7aa2a23b95: Eros Q Native: Add Original Firmware Boot option

Hold "Play" to boot the OF, or boot it from the recovery menu by holding "Vol. Up". If you had the hosted port installed on your player before installing the native port, you'll still have to go through the hosted bootloader.

A couple notes:

- When booting from the menu, the recovery menu disappears, then reappears before going into the OF.

- You need to hold the play button for like a half second after the blue light comes on in order to get into the OF.

The recovery appears to be there, but it doesn't seem to be intended for end users - it just says "Updater V1.1 - Insert TF Pls". I haven't tested it beyond seeing that it boots, so I'm going to comment it out for now.
bootloader/x1000/boot.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/lcd-x1000.h [diff]
Dana Conrad
2022-04-01 5ffe520de4: playlist: use path_strip_last_volume, clarify path conventions

The comment regarding Windows paths was fairly confusing as to its intent. What the code is trying to do is replace the drive letter with the volume containing the playlist, which appears reasonable. The middle of the comment was devoted to explaining why the code below was potentially incorrect which only served to add to the confusion.

AFAICT the last volume specifier in a path will cause search to start from the root of that volume, so any incorrect result can be avoided by using the new function path_strip_last_volume().

Finally, add a comment at the top of the function that explains what it does.
apps/playlist.c [diff]
Aidan MacDonald
2022-04-01 4f05a9d066: Add path_strip_last_volume

This gets the volume that the path eventually refers to by parsing the last volume specifier and returning the part of the path after it (which does not contain any volume specifiers). The initial part of the path therefore contains everything up to and including the last volume specifier.
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
Aidan MacDonald
2022-04-01 ca0c3dee0a: ImageViewer: M3K keymap allow scrolling up/down
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
Christian Soffke
2022-04-01 6e3937e836: lastfm Scrobbler: Substitute album artist for empty artist.
apps/plugins/lastfm_scrobbler.c [diff]
James D. Smith
2022-04-01 412dbaeffe: hosted: call 'sync' before poweroff

Might be needed to avoid filesystem corruption with buggy OF kernels.
firmware/target/hosted/system-hosted.c [diff]
Aidan MacDonald
2022-04-01 a9e02b4850: FS13338: Updated Slovak translation (Matej Golian)
apps/lang/slovak.lang [diff]
Solomon Peachy
2022-04-01 f08d083ed0: FS13441: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2022-04-01 cbb5efd525: FS13340: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2022-03-30 43830d0128: alarm_menu share setter with settime

share the time picker with the alarm

block the date portion, seconds are ignored
apps/alarm_menu.c [diff]
apps/lang/english.lang [diff]
apps/menus/time_menu.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
William Wilgus
2022-03-27 4c1fe3a899: rbutil: Bump to 1.5.0.
utils/rbutilqt/Info.plist [diff]
utils/rbutilqt/version.h [diff]
Dominik Riebeling
2022-03-27 7243f6b343: x1000: Add multiboot support

Enables multiboot for the FiiO M3K, Shanling Q1, and Eros Q native port. Note this requires an up-to-date Rockbox _and_ bootloader.

Usage instructions will (eventually) be found on the wiki: https://www.rockbox.org/wiki/MultibootBootloader
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-03-27 bcbb5a8b00: multiboot: Allow searching in volume 0 for redirect file

Searching in volume 0 is necessary for multiboot targets with only one drive, like the M3K/Q1/ErosQ. Without this the search code will never look at the redirect file on these targets.

The search bound is configured with a setting MULTIBOOT_MIN_VOLUME, which defaults to 0, but is defined to 1 for Sansa players so they keep their old behavior.
firmware/common/rb-loader.c [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansae200.h [diff]
firmware/export/config/sansafuze.h [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/export/config/sansafuzev2.h [diff]
Aidan MacDonald
2022-03-27 df3afcfa3b: PictureFlow: Configurable album sorting

Now offers sorting by:

- Album artist, then album name
- Album artist, then album year
- Album year
- Album name

Years are determined by the most recently released track appearing on an album, if the value differs between tracks.

On the M3K, instead of by going into Settings, volume buttons can also be used for quickly adjusting the current sorting
apps/lang/english.lang [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-03-27 aec8b36348: PictureFlow: Prevent queue overflow & simplify locking
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-03-27 ae121de149: PictureFlow: Write bitmaps in one go

Analogous to an earlier change w.r.t. reading bitmaps
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-03-27 a490ff896f: rbutil: Update german translation.
utils/rbutilqt/lang/rbutil_de.ts [diff]
Dominik Riebeling
2022-03-27 493dce212d: rbutil: Fix langstat script.
utils/rbutilqt/langstats.py [diff]
Dominik Riebeling
2022-03-26 aaf0f1c371: rbutil: Fix Qt6 Windows build.

It seems Qt6 doesn't require explicit linking to QSvgIconPlugin anymore, and cmake has trouble finding it. On native Windows builds it isn't required, so remove it.
utils/rbutilqt/CMakeLists.txt [diff]
Dominik Riebeling
2022-03-26 6bc19c98ca: rbutil: Fix implicit type conversion on Windows.
utils/rbutilqt/base/utils.cpp [diff]
Dominik Riebeling
2022-03-26 593d9f623d: lastfm_scrobbler fix yellow for targets w/o storage callback
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2022-03-26 053c1596d8: Last FM scrobbler remove manual entry
manual/configure_rockbox/playback_options.tex [diff]
William Wilgus
2022-03-26 f105ad7b23: lastfm_scrobbler fix red for devices w/o storage callback
apps/plugins/lastfm_scrobbler.c [diff]
William Wilgus
2022-03-26 fd15ea25d3: LastFm remove scrobbler from core make a TSR plugin WIP

remove scrobbler from core make it a plugin
apps/SOURCES [diff]
apps/lang/english.lang [diff]
apps/main.c [diff]
apps/menus/playback_menu.c [diff]
apps/misc.c [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lastfm_scrobbler.c [new]
apps/scrobbler.c [deleted]
apps/scrobbler.h [deleted]
apps/settings.h [diff]
apps/settings_list.c [diff]
William Wilgus
2022-03-25 8eb4689ab1: add way to lock portion of plugin buffer for TSR plugins

Some things in core that should probably be plugins steal the plugin buffer for their own use, TSR plugins have no way to detect or prevent this lock buffer reserves buffer_size bytes directly after the plugin itself returns the unreserved bytes still available from the plugin buffer
apps/plugin.c [diff]
apps/plugin.h [diff]
William Wilgus
2022-03-25 5d0f697e87: x1000: remove the last vestiges of boot option support

There should be no need for any compatibility hacks since this value was mostly used internally between the SPL and bootloader. clk_init() was the only user in the main Rockbox binary which accessed it, but when loaded by the Rockbox bootloader that code will not be reached since BOOT_FLAG_CLK_INIT is already set.
firmware/target/mips/ingenic_x1000/boot-x1000.h [diff]
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
2022-03-25 3ae4a98e3b: x1000: spl: remove selectable boot option support

Now the SPL boots the Rockbox bootloader unconditionally, which allows for some simplification.
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/erosqnative/spl-erosqnative.c [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [deleted]
firmware/target/mips/ingenic_x1000/shanlingq1/spl-shanlingq1.c [deleted]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
Aidan MacDonald
2022-03-25 2810c549a6: x1000: spl: remove dual boot support code

Removes the SPL's dual boot support code, and removes the dual boot selection code on the M3K and Q1 since they can now do it from the main bootloader.
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/spl-shanlingq1.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
Aidan MacDonald
2022-03-25 7cb49cfb33: x1000: spl: split off NAND storage to separate file

Just tidying. No functional changes.
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/spl-nand-x1000.c [new]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
Aidan MacDonald
2022-03-25 bd8cd58568: x1000: bootloader: Add button handlers for OF boot

The SPL soon won't be paying attention to buttons, so the bootloader should check them.
bootloader/x1000/main.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-25 cda8bd5437: x1000: bootloader: set touchscreen to button mode

The touchscreen "buttons" are used for screenshots on the Q1.
bootloader/x1000/main.c [diff]
Aidan MacDonald
2022-03-25 6bc69c797c: x1000: bootloader: accept button input during splash

This allows screenshots to be taken while a splash is displayed.
bootloader/x1000/gui.c [diff]
Aidan MacDonald
2022-03-25 3d88f455cf: Fix double define of BL_SCREENSHOT_NAME on fiiom3k
bootloader/x1000/x1000bootloader.h [diff]
Dana Conrad
2022-03-25 5160c90690: x1000: bootloader: add screenshot function

Screenshots of the recovery menu will be useful for documentation.

This can be disabled by turning off HAVE_BOOTLOADER_SCREENDUMP in the target config file if the bootloader should ever run up against max size limits.
bootloader/x1000/gui.c [diff]
bootloader/x1000/recovery.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
Aidan MacDonald
2022-03-25 4cf36dfbf3: x1000: bootloader: skip bad blocks when loading flashed kernels

Bad blocks in a kernel flash partition seem to be handled by skipping ahead to the next block; this is a common bad block management scheme for simple software like bootloaders (and is the default method for reading NAND partitions in u-boot).

Extend the uImage flash reader to skip bad blocks while reading.
bootloader/x1000/utils.c [diff]
Aidan MacDonald
2022-03-24 5b011c8dca: x1000: add bad block marker position to nand_chip info
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
Aidan MacDonald
2022-03-24 9bbe08f3ec: x1000: bootloader: add whole-chip flash dump option

I don't expect this will be all that useful, but why not...
bootloader/x1000/recovery.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-24 c3562b6df6: x1000: bootloader: add debug tools menu

Add a debug menu to invoke two new actions, dumping the OF kernel and recovery images from flash to the SD card.
bootloader/x1000/recovery.c [diff]
Aidan MacDonald
2022-03-24 0d21d80ca8: x1000: bootloader: add basic flash dump utility
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-24 ee68d9df8e: x1000: bootloader: display uimage load error code
bootloader/x1000/utils.c [diff]
Aidan MacDonald
2022-03-24 fbe9e4ac10: x1000: bootloader: refactor splash/splash2

Allow the use of printf formatting and multiple lines of text using newlines in the string.
bootloader/x1000/boot.c [diff]
bootloader/x1000/gui.c [diff]
bootloader/x1000/install.c [diff]
bootloader/x1000/main.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-24 41a8b874d2: linuxboot: add meaningful error codes
firmware/linuxboot.c [diff]
Aidan MacDonald
2022-03-24 f7a341555d: fiiom3k: trim OF kernel arguments to fix boot hangs

The M3K's kernel has an incredibly stupid function that mangles the kernel args and copies them to a 100-byte buffer without any kind of bounds checking. So, if the kernel arguments are more than 99 chars the stack may be corrupted, sometimes crashing the kernel.

Fortunately, most of the arguments the OF uses are useless, and the truly necessary arguments fit within the absurd 99-char limit.
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-24 6a6c6083fa: x1000: bootloader: fix Linux self-extracting kernel boot

Basically, there's longstanding bug in Linux with self-extracting kernels on MIPS which just happened to manifest now on the M3K as a hang on boot. The fix is applied to the M3K and Q1 since they both use this type of kernel image.
bootloader/x1000/boot.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
firmware/export/linuxboot.h [diff]
firmware/linuxboot.c [diff]
Aidan MacDonald
2022-03-24 44fbb1a593: x1000: bootloader: add LCD dualboot cleanup for the M3K

Disable LCD interrupts before booting the OF - the OF kernel hangs at boot if they are enabled.
firmware/target/mips/ingenic_x1000/boot-x1000.c [diff]
Aidan MacDonald
2022-03-24 90cb0b0ae5: x1000: bootloader: add mainline Linux boot option

This adds a *very basic* Linux loader to the Rockbox bootloader, which allows running a mainline Linux kernel using the following file layout on the SD card:

- /uImage
- /linux_cmdline.txt

The command line arguments are listed in linux_cmdline.txt, all lines are concatenated together and whitespace is converted into spaces. Comments aren't supported however.

The loader doesn't support the modern devicetree boot protocol, so it can only pass command line arguments. It would be easy to support an appended dtb though.
bootloader/x1000/boot.c [diff]
bootloader/x1000/recovery.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-24 53a92f0ecc: x1000: bootloader: add original firmware boot capability

Adds the ability to boot the OF's player or recovery kernels from the bootloader. Works on Shanling Q1 but broken on the FiiO M3K (kernel hang) so leave it disabled for the M3K.
bootloader/x1000/boot.c [diff]
bootloader/x1000/recovery.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-24 9bde653410: firmware: allow screendump in bootloader

Enabled if target defines HAVE_BOOTLOADER_SCREENDUMP
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/screendump.h [diff]
Aidan MacDonald
2022-03-24 e956f7dc83: firmware: minor screendump related cleanups

- Remove unused redefinitions of screen_dump() from bootloaders
- Use empty do-while when screendump is compiled out
bootloader/iaudio_coldfire.c [diff]
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
bootloader/mpio_hd200_hd300.c [diff]
firmware/export/screendump.h [diff]
Aidan MacDonald
2022-03-23 238cd13469: rbutil: Fix build info list handling with Qt6.

With Qt6 we need to check the type differently or we'd convert a stringlist to a string.
utils/rbutilqt/base/playerbuildinfo.cpp [diff]
utils/rbutilqt/test/test-playerbuildinfo.cpp [diff]
Dominik Riebeling
2022-03-23 f3b19de594: rbutil: Disable TTS test on Qt6.

Qt6 has QMultimedia, but QSound has been removed. It's only use for playing a TTS test sample. Disable that for now.
utils/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2022-03-23 00ec195c26: rbutil: Qt6 fixes.
utils/CMakeLists.txt [diff]
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/main.cpp [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2022-03-23 948637c42c: rbutil: Fix TalkGenerator string correction.

- Fix regexp case insensitive option being inverted.
- Pass more objects by reference.
- Some const-ness.
utils/rbutilqt/base/talkgenerator.cpp [diff]
utils/rbutilqt/base/talkgenerator.h [diff]
Dominik Riebeling
2022-03-23 215ba4abf7: rbutil: Remove unnecessary Q_OBJECT.

PlayerBuildInfo uses no signals/slots, so we don't need Q_OBJECT.
utils/rbutilqt/base/playerbuildinfo.h [diff]
Dominik Riebeling
2022-03-23 1aea2d5b7e: rbutil: Test for talkgenerator string correction.
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/test/stubs/stubs-talkgenerator.cpp [new]
utils/rbutilqt/test/test-talkgenerator.cpp [new]
utils/rbutilqt/test/test-talkgenerator.qrc [new]
Dominik Riebeling
2022-03-22 822b16b1c6: debug_menu dbg_buffering_thread show more on tiny screens

I think the clipzip has the smallest screen at 96 might need to be enabled for LCD_WIDTH <=128 too

remove scrolling thread info for larger screens
apps/debug_menu.c [diff]
William Wilgus
2022-03-22 7910f4a7aa: debug_menu cleanup/optimize some common format strings
apps/debug_menu.c [diff]
William Wilgus
2022-03-22 61bc7b91bc: tagcache.c remove 16-bit compression for add_uniqbuf

apparently there are tags such as year or genre that are indexed 1 byte apart, as much as I like the idea of this I cannot come up with a way to reliably denote 2 16 bit entries from a single 32 bit entry without losing data or adding bookkeeping which would likely make it pointless
apps/tagcache.c [diff]
William Wilgus
2022-03-22 cfeeb7889d: Lcd save function pointer to frame buffer get_address_fn before loops

Calling multiple levels of indirection in a loop slows things down

Really these need to be rewritten to take a start and end address like most of the rest of the codebase

But this is safer without having test hardware in hand
firmware/drivers/lcd-color-common.c [diff]
firmware/export/lcd.h [diff]
firmware/target/arm/as3525/lcd-ssd1303.c [diff]
firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c [diff]
firmware/target/arm/imx233/creative-zen/lcd-zenmozaic.c [diff]
firmware/target/arm/imx233/creative-zen/lcd-zenv.c [diff]
firmware/target/arm/imx233/creative-zen/lcd-zenxfistyle.c [diff]
firmware/target/arm/imx233/creative-zenxfi2/lcd-zenxfi2.c [diff]
firmware/target/arm/imx233/creative-zenxfi3/lcd-zenxfi3.c [diff]
firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c [diff]
firmware/target/arm/imx233/sony-nwz/lcd-nwze360.c [diff]
firmware/target/arm/imx233/sony-nwz/lcd-nwze370.c [diff]
firmware/target/arm/ipod/lcd-gray.c [diff]
firmware/target/arm/lcd-ssd1815.c [diff]
firmware/target/arm/olympus/mrobe-100/lcd-mr100.c [diff]
firmware/target/arm/rk27xx/lcdif-rk27xx.c [diff]
firmware/target/arm/s5l8700/yps3/lcd-yps3.c [diff]
firmware/target/arm/samsung/yh920/lcd-yh920.c [diff]
firmware/target/coldfire/iaudio/m3/lcd-m3.c [diff]
firmware/target/coldfire/iaudio/m5/lcd-m5.c [diff]
firmware/target/coldfire/iriver/h100/lcd-h100.c [diff]
firmware/target/coldfire/mpio/hd300/lcd-hd300.c [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
William Wilgus
2022-03-21 60e5786b48: lcd-bitmap-common optimize a few viewport functions
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2022-03-21 64c577a0c5: filetree.c cleanup

just a little cleanup of ft file filtering code

store result of filter mask to a local var

put skin apply code in its own function
apps/filetree.c [diff]
William Wilgus
2022-03-20 c7c9a0f069: rbutil: Minor code cleanup.
utils/rbutilqt/base/autodetection.cpp [diff]
utils/rbutilqt/base/autodetection.h [diff]
Dominik Riebeling
2022-03-20 04e22d8719: rbutil: Replace use of QRegExp with QRegularExpression.
utils/rbutilqt/base/system.cpp [diff]
utils/rbutilqt/base/talkfile.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2022-03-20 01d2979bce: [COV] metadata module, fix uninit warnings #2

decrease size hit of initializing asf by using a union remove init from bytes LE conversion in metadata common
-- bad idea for performance
lib/rbcodec/metadata/asf.c [diff]
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2022-03-20 2a88ec50cd: [COV] metadata module, fix uninit warnings
lib/rbcodec/metadata/aac.c [diff]
lib/rbcodec/metadata/asf.c [diff]
lib/rbcodec/metadata/metadata_common.c [diff]
lib/rbcodec/metadata/mp4.c [diff]
William Wilgus
2022-03-20 ccdd9e6784: rbutil: Fix TTS "waiting for engine" appearing randomly.

QProgressDialog shows / hides itself automatically based on the progress value set, so calling hide() directly doesn't prevent the dialog from showing itself.

Change the logic to set a value instead. Fixes the progress dialog sometimes appearing in situations where it wasn't used at all.
utils/rbutilqt/base/encttssettings.h [diff]
utils/rbutilqt/base/ttsfestival.cpp [diff]
utils/rbutilqt/encttscfggui.cpp [diff]
utils/rbutilqt/encttscfggui.h [diff]
Dominik Riebeling
2022-03-20 c21d10cb33: rbutil: Rework Festival TTS integration.

When communicating with Festival via socket don't assume readAll() would read all data we expect. We can only read the data that has been sent by the server so far, and this is not necessarily complete.

This notably improves the configuration dialog response and reliably.
utils/rbutilqt/base/ttsfestival.cpp [diff]
Dominik Riebeling
2022-03-19 e21f80f397: rbutil: Remove use of deprecated QSignalMapper.

With Qt5 we can now use lambdas instead.
utils/rbutilqt/encttscfggui.cpp [diff]
utils/rbutilqt/encttscfggui.h [diff]
Dominik Riebeling
2022-03-19 fcffe5fb81: rbutil: Change all download links to https.
utils/rbutilqt/changelog.txt [diff]
utils/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2022-03-19 7a2fdf3fd6: rbutil: Handle SSL certificate errors on first request.

Qt uses the systems certificate store. On old(er) systems the root certificate might not be present, so checking the certificate from the rockbox.org server might fail.

On startup we try to download the build-info file. If this fails with a certificate error allow the user to temporarily accept the rockbox.org certificate for all successive requests.
utils/rbutilqt/base/httpget.cpp [diff]
utils/rbutilqt/base/httpget.h [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/rbutilqt.h [diff]
Dominik Riebeling
2022-03-19 a0459de4d5: rbutil: HttpGet: Return NetworkError in done signal.

Return the status value instead of simply a bool.
utils/rbutilqt/base/bootloaderinstallbase.cpp [diff]
utils/rbutilqt/base/bootloaderinstallbase.h [diff]
utils/rbutilqt/base/httpget.cpp [diff]
utils/rbutilqt/base/httpget.h [diff]
utils/rbutilqt/base/voicefile.cpp [diff]
utils/rbutilqt/base/voicefile.h [diff]
utils/rbutilqt/base/zipinstaller.cpp [diff]
utils/rbutilqt/base/zipinstaller.h [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/rbutilqt.h [diff]
utils/rbutilqt/test/test-httpget.cpp [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
utils/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
2022-03-19 08b42791ff: tag_cache.c optimize str_begins_ends_oneof

the function is shared
apps/tagcache.c [diff]
William Wilgus
2022-03-19 ddbca125a6: tagtree/tagcache add new clause operators begins/ends _oneof

new operators @^, @$ begins_oneof and ends_oneof

albumartist @^ "L|The L" Led Zeppelin, The look

albumartist @$ "girls|Boys" spice girls, beasty boys
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
William Wilgus
2022-03-19 0f2d623216: tagcache add logging option for clause matching #2
apps/tagcache.c [diff]
William Wilgus
2022-03-19 a56975af6c: tagcache add logging option for clause mtching
apps/tagcache.c [diff]
William Wilgus
2022-03-19 b65763bc10: [COV] fix uninitialized warning
firmware/drivers/fat.c [diff]
William Wilgus
2022-03-18 a5e684c894: BUGFIX root_menu.c
apps/root_menu.c [diff]
William Wilgus
2022-03-18 b31444261e: [COV] cuesheet.c var line could be uninitialized
apps/cuesheet.c [diff]
William Wilgus
2022-03-18 99f8457279: cuesheet, fix dumb typo
apps/cuesheet.c [diff]
William Wilgus
2022-03-18 a13ae2afd5: [COV] folder_select buffer overrun
apps/gui/folder_select.c [diff]
William Wilgus
2022-03-16 b309fae2bc: touchscreen: fix quickscreen

Looks like I made a mistake testing this originally because there's no way this would've worked.
apps/gui/quickscreen.c [diff]
Aidan MacDonald
2022-03-16 67f7d399e5: x1000: restore crt0.S cache flush

I-cache must be flushed after copying code to IRAM... duh.
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-03-16 c676736792: x1000: optimize crt0.S, improve correctness

Replace inline section copy/fill loops with subroutines, which reduces code size a bit and and handle zero size copies properly.

Remove the cache initialization loop as well. There's no actual reason for this because the SPL initializes the caches and just dropping the cache can even be harmful (in this case it wasn't, because the SPL flushes the whole cache right before calling in).
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-03-16 0df71c952c: rds: make newly added function static

It won't be called outside the RDS core.
firmware/drivers/rds.c [diff]
Wolfram Sang
2022-03-16 b3e0d18f7d: skin_engine.c settings_apply_skins cleanup

just some cleanup and removal of ifdefs in favor of dummy functions
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar-skinned.h [diff]
William Wilgus
2022-03-15 a5c16d2990: rb_namespace add logf

add logging to the namespace file to allow debug of root redirect
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/rb_namespace.c [diff]
William Wilgus
2022-03-15 20b9ce5497: debug_menu make scrolling manual for OS Threads item

the automatic scrolling is not very nice to try and read instead use OK button to advance and long press std ok to reset to beginning
(or scroll up and down)
apps/debug_menu.c [diff]
William Wilgus
2022-03-14 542609bb31: metadata.c fix red

comma, helpful
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2022-03-14 9b4e784560: BUGFIX string_option parsers

fix bugs introduced in the switch over to using string_option instead of if else strcmp trees, embedded album art should work again skin parser had an error for 'noborder' and 'nobar'
apps/gui/skin_engine/skin_parser.c [diff]
lib/rbcodec/metadata/asf.c [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2022-03-14 6dcbf7ff77: debug_menu scroll os stack screen

the os threads items update too quick to see them scroll

implement a simple scroller
apps/debug_menu.c [diff]
William Wilgus
2022-03-13 6fdc160fab: dircache_redirect.h, hide root volume when only one mounted

there is no need to show the root of the drive when only the internal is mounted
firmware/include/dircache_redirect.h [diff]
William Wilgus
2022-03-13 6d122e3932: cuesheet, cleanup tag code with strncmp
apps/cuesheet.c [diff]
William Wilgus
2022-03-13 2352cef6d0: replace more strcmp if then trees with string_option() 1
apps/misc.c [diff]
apps/shortcuts.c [diff]
lib/rbcodec/metadata/asap.c [diff]
lib/rbcodec/metadata/asf.c [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2022-03-13 a62d36d9e7: Warble builds define WARBLE fix metadata_common in warble builds
lib/rbcodec/metadata/metadata_common.c [diff]
tools/configure [diff]
William Wilgus
2022-03-13 430999e399: utils: Work around windeployqt bug.

For Qt versions less than 5.14 MinGW windeployqt requires passing
--release or --debug to pick the correct libs to deploy. For newer version this must not be passed, or otherwise windeployqt errors out.

Use a conditional expression to only add the parameter for older Qt versions.
utils/cmake/deploy.cmake [diff]
Dominik Riebeling
2022-03-13 77e4dd81f5: option_string clean-up and consolidate with metadata_common
apps/gui/skin_engine/skin_parser.c [diff]
lib/rbcodec/metadata/metadata_common.c [diff]
lib/rbcodec/metadata/metadata_common.h [diff]
lib/rbcodec/metadata/mp4.c [diff]
lib/rbcodec/metadata/replaygain.c [diff]
William Wilgus
2022-03-13 eb86ee296a: skin_parser.c fix red stupid typo
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2022-03-13 3f2ad8bf2b: skin_parser.c fix red
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2022-03-13 74df3ba2d8: add function string_option to misc.c use in skin_parser.c

function string_option allows a string to be found in a supplied list of options
apps/gui/skin_engine/skin_parser.c [diff]
apps/misc.c [diff]
apps/misc.h [diff]
William Wilgus
2022-03-13 a9c62f2c39: metadata_common.c optimize parse_tag
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2022-03-12 22a6ae97a6: utils: Fix windeployqt step once more.

The path was actually correct before, the filename wasn't.
utils/cmake/deploy.cmake [diff]
Dominik Riebeling
2022-03-12 96f5b07d39: utils: Fix windeployqt call in cmake deploy step.
utils/cmake/deploy.cmake [diff]
Dominik Riebeling
2022-03-12 403cb96f3a: rbutil: Fix installing fonts / manual for development builds.

For development builds we provide a download URL, but use the daily build files. Those require the version of the daily build to be set when expanding the URL string.
utils/rbutilqt/base/playerbuildinfo.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/test/test-playerbuildinfo.cpp [diff]
Dominik Riebeling
2022-03-12 ce70e34476: rbutil: Fix ipodpatcher bootloader uninstall.

Fix mountpoint not passed and sectorbuf not initialized properly.
utils/rbutilqt/base/bootloaderinstallipod.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2022-03-12 5c7b0e071f: rbutil: Fix crash on sansapatcher access.

We now initialize sectorbuf explicitly, and there are situation where it wasn't initialized explicitly.
utils/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
Dominik Riebeling
2022-03-12 1ff11b627b: rbutil: Fix bootloader uninstall availability.

The logic for disabling the uninstall button was wrong.
utils/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2022-03-12 0ce287503c: x1000: bootloader: use list widget for the recovery menu

This allows the menu to scroll when there isn't enough vertical space to display the whole menu.
bootloader/x1000/recovery.c [diff]
Aidan MacDonald
2022-03-12 4b51ca5ce6: x1000: bootloader: add GUI list widget
bootloader/x1000/gui.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 8b4949381c: x1000: add TCSM section to linker script

This is intended for debugging OF kernel boot problems and has to be enabled manually at compile time to make it usable.
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-03-12 0de2d3a0b6: utils: rework cmake deploy function.

Use named arguments for function and allow passing additional executable targets to be copied to the deploy tree.

Update current uses and add ipodpatcher and sansapatcher to Rockbox Utility deployment.

This is in preparation for moving ipodpatcher / sansapatcher functionality out of Rockbox Utility so we eventually can avoid elevation / sudo of the whole installer. Currently this only results in Rockbox Utility releases shipping ipodpatcher / sansapatcher executables.
utils/cmake/deploy.cmake [diff]
utils/rbutilqt/CMakeLists.txt [diff]
utils/themeeditor/CMakeLists.txt [diff]
Dominik Riebeling
2022-03-12 7319356dfd: rbutil: Update build instructions.
utils/rbutilqt/INSTALL [diff]
Dominik Riebeling
2022-03-12 748b00a7fc: ipodpatcher: Split executable only parts out.

Allow building both as library and executable at the same time.
utils/CMakeLists.txt [diff]
utils/ipodpatcher/ipodpatcher-aupd.c [new]
utils/ipodpatcher/ipodpatcher.c [diff]
Dominik Riebeling
2022-03-12 08afedf1f5: sansapatcher: Add cmake target to build executable.
utils/CMakeLists.txt [diff]
Dominik Riebeling
2022-03-12 d56964cc2b: x1000: add dual boot helpers for the main bootloader

Two helpers (_init_clocktree and _init_uart2) already existed in the SPL and are copied verbatim from there. The SPL versions are still present and will be removed when dual boot works from the main bootloader.

The other two helpers (_cleanup and _load_pdma_fw) are new.
firmware/target/mips/ingenic_x1000/boot-x1000.c [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.h [diff]
Aidan MacDonald
2022-03-12 a87f93d8ff: x1000: add function for booting linux kernels
firmware/target/mips/ingenic_x1000/boot-x1000.c [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.h [diff]
Aidan MacDonald
2022-03-12 e6c2f26e82: x1000: bootloader: add uImage loaders

Adds loaders for uImages on the SD card or on a raw flash partition. These work similarily to load_rockbox() and return a buflib alloc and size. Booting the image is left up to the caller.
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 b87f2ed851: x1000: bootloader: refactor rockbox boot

Separate loading out into its own routine with a file name parameter in preparation for multiboot support.
bootloader/x1000/boot.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 ed897d1359: x1000: bootloader: move the main function to its own file

Now that everything has been refactored into separate files the main routine is the only thing left to move. Put it in main.c.
bootloader/SOURCES [diff]
bootloader/x1000.c bootloader/x1000/main.c [rename]
Aidan MacDonald
2022-03-12 5bdb2fccdb: x1000: bootloader: refactor usb handling

Drop init_usb(), instead initialize USB early in the main function so the hardware is placed into a known good state after a USB boot. The impact on boot time should be minimal.
bootloader/x1000.c [diff]
bootloader/x1000/recovery.c [diff]
bootloader/x1000/utils.c [diff]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 7554a49309: x1000: bootloader: refactor init_disk

Add check_disk() to query the disk insertion status and prompt the user if necessary. Use this in place of init_disk().

Perform an unconditional disk_mount_all() from the main function.
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
bootloader/x1000/boot.c [diff]
bootloader/x1000/install.c [diff]
bootloader/x1000/utils.c [new]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 905591215f: x1000: bootloader: split off recovery menu code
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
bootloader/x1000/recovery.c [new]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 e2fcbd04ea: x1000: bootloader: split off rockbox boot code
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
bootloader/x1000/boot.c [new]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 22cf852db1: x1000: bootloader: split off installer code
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
bootloader/x1000/install.c [new]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 6fb1b8b342: x1000: bootloader: split off GUI code
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
bootloader/x1000/gui.c [new]
bootloader/x1000/x1000bootloader.h [diff]
Aidan MacDonald
2022-03-12 8558255f45: x1000: bootloader: split off definitions to a header
bootloader/x1000.c [diff]
bootloader/x1000/x1000bootloader.h [new]
Aidan MacDonald
2022-03-12 58225bd2c8: x1000: remove plugin and codec buffers on bootloader

On the bootloader there's no point reserving memory for these, the only users of codecbuf/pluginbuf are in the apps/ tree.
firmware/target/mips/ingenic_x1000/app.lds [diff]
Aidan MacDonald
2022-03-12 38eafb60ff: x1000: use core_alloc in bootloader for loading rockbox

Using the audio buffer directly is a bad idea because this will render core_alloc non-functional if load_firmware() writes into the buffer but then fails, for example on a checksum mismatch.
bootloader/x1000.c [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
Aidan MacDonald
2022-03-12 376ffbcf9a: ARM support, optimize popcount fn
lib/arm_support/support-arm.S [diff]
William Wilgus
2022-03-12 eecf840989: playlist.c fix red for non-DIRCACHE targets
apps/playlist.c [diff]
William Wilgus
2022-03-12 a59b3c5d11: playlist_resume, wait for dircache to complete before loading songs

with root redirect and even relative paths eventually we need the dircache to get files from the disk
apps/playlist.c [diff]
William Wilgus
2022-03-12 97ec0a7e73: Root redirect un-hide root volume

this appears to be problematic for now
firmware/include/dircache_redirect.h [diff]
William Wilgus
2022-03-12 95af36d0dd: playlist.c fix red for non multivolume targets
apps/playlist.c [diff]
William Wilgus
2022-03-12 eb32238b22: playlist.c use basename for playlist_get_filename_crc32

strip the vol and use the relative portion
apps/playlist.c [diff]
William Wilgus
2022-03-12 359c66982f: playback.c use file_exists rather than open to check for bad files

the worst case is really slow for open
apps/playback.c [diff]
William Wilgus
2022-03-11 603412f447: x1000: Clarify definition & usage of RAM areas

Document what the symbols are supposed to mean, fixup SPL's usage of DRAM_END which should really be SDRAM_END instead. No functional changes.
firmware/export/x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
2022-03-11 cdee5284d4: jztool: support new binary header on x1000
utils/jztool/src/x1000.c [diff]
Aidan MacDonald
2022-03-11 35242c8d98: x1000: support new binary header in bootloader
bootloader/x1000.c [diff]
Aidan MacDonald
2022-03-11 428491df69: x1000: support new binary header in rolo
firmware/SOURCES [diff]
firmware/export/x1000.h [diff]
firmware/rolo.c [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.c [new]
firmware/target/mips/ingenic_x1000/boot-x1000.h [diff]
Aidan MacDonald
2022-03-11 7fa48faeb5: multiboot: Refactor duplicated functions to a separate file

The implementation of write_bootdata() and get_redirect_dir() was copied verbatim in two different places, obviously a bad thing for maintainability. This moves them to a new file multiboot.c as they are only used for multiboot.
apps/debug_menu.c [diff]
firmware/SOURCES [diff]
firmware/common/multiboot.c [new]
firmware/common/rb-loader.c [diff]
firmware/export/mi4-loader.h [diff]
firmware/export/multiboot.h [new]
firmware/include/dircache_redirect.h [diff]
firmware/include/rb-loader.h [diff]
firmware/rolo.c [diff]
firmware/target/arm/pp/mi4-loader.c [diff]
Aidan MacDonald
2022-03-11 439b4e8bca: multiboot: Remove bad multiboot code from hosted RoLo

This looks like it was copy-pasted blindly from elsewhere and it wouldn't even compile, since hosted RoLo is completely different from native RoLo.
firmware/target/hosted/rolo.c [diff]
Aidan MacDonald
2022-03-11 eae9f6f5b7: erosqnative: Fix missing END marker in LCD enable sequence
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [diff]
Aidan MacDonald
2022-03-11 355553baf4: playlist_resume, fix control fd, add some error info

I ocassionally see Playlist Invalid messages but which part is failing? eventually it works so its probably a race
apps/playlist.c [diff]
William Wilgus
2022-03-11 f6a2bf28e1: BUGFIX file.c open failure leaves open file handle
firmware/common/file.c [diff]
William Wilgus
2022-03-11 68d0175172: BUGFIX arm aeabi_sdivmod crashes in interupt mode
lib/arm_support/support-arm.S [diff]
William Wilgus
2022-03-09 57cffae369: rbutil: Change MacOS bundle identifer to org.rockbox.
utils/rbutilqt/Info.plist [diff]
Dominik Riebeling
2022-03-09 01e76548c3: backtrace, put pc and sp on their own lines
lib/unwarminder/backtrace-unwarminder.c [diff]
William Wilgus
2022-03-08 a8b997e4e9: skinparser cleanup, optimize

hash clause strings for =, ==, !=, <, > <=, >= store result of get_param() where possible
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2022-03-08 b1965b4197: rbutil: Fix setting bootloader "file" for Ipod bootloader.

On Ipods we use the bootloader "filename" to pass the mountpoint, which is then used to determine the correct device to use.
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2022-03-08 3cebc983a2: rbutil: Fix a crash for devices without bootloader file.

Don't try to get a bootloader filename from an empty list. This happens if the device doesn't have a bootloader file on disk.
utils/rbutilqt/base/bootloaderinstallbase.cpp [diff]
Dominik Riebeling
2022-03-08 911b216aff: rbutil: Properly initialize sansa / ipod bootloader buffer.

Fixes a crash on MacOS.
utils/rbutilqt/base/bootloaderinstallipod.cpp [diff]
utils/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
Dominik Riebeling
2022-03-06 ca12478df6: x1000: add simple binary header to declare the load address

The header format is basic, a variable length list of values tagged by 4-byte strings. The main application to to allow a loader to determine the load address of the binary at runtime instead of using a hardcoded address. But the header contents aren't fixed and it could be extended for other purposes too.
firmware/target/mips/ingenic_x1000/crt0.S [diff]
Aidan MacDonald
2022-03-06 19d95d7b56: keyremap add plain text import and export

allows users to edit and view keymaps in a text editor
(parser requires one entry per line (LF or CRLF work as line endings)

allow naming of files on save
apps/plugins/keyremap.c [diff]
William Wilgus
2022-03-06 bc3fa53937: Sansa Multiboot Root Redirect Enhance + bug fix

filename buffer was too small to retrieve redirect path

if redirected to sd root remove <SD1> as it is redundant
apps/debug_menu.c [diff]
firmware/include/dircache_redirect.h [diff]
William Wilgus
2022-03-04 ee87bfb933: Add support code for dealing with U-Boot uImages

Adds a loader for the legacy uImage format that is commonly used on embedded Linux systems. It verifies checksums and supports uncompressed and gzipped images. Supports arbitrary reader functions to allow the images to be streamed off any storage device, for optimal RAM use.
firmware/SOURCES [diff]
firmware/export/linuxboot.h [new]
firmware/linuxboot.c [new]
Aidan MacDonald
2022-03-04 d541a3a191: x1000: fix nand driver reference counting

Somehow I screwed this up as well. Seems it didn't cause trouble.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
Aidan MacDonald
2022-03-04 3cb7167e22: x1000: fix bug in nand_read_bytes

This didn't account for partial page reads properly which resulted in corrupted data. Fortunately, current released bootloaders do not perform such reads so they don't trigger this bug.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
Aidan MacDonald
2022-03-04 3bd5f335f7: inflate: Add helper for getting decompressed data size

Helper for another semi-typical operation: find out how big of a buffer should be allocated before decompressing. This can be useful when the stream container doesn't specify the decompressed size.
firmware/common/inflate.c [diff]
firmware/include/inflate.h [diff]
Aidan MacDonald
2022-03-04 ce4620413b: inflate: Add helpers for using in-memory buffers

Using an in-memory buffer for the input or output data for 'inflate' is likely to be extremely common and there's really only one way to do it, so predefined helpers should be provided.
firmware/common/inflate.c [diff]
firmware/include/inflate.h [diff]
Aidan MacDonald
2022-03-04 fe4628fc30: Fix Red Multiboot Firmware Root Redirect

Exclude bootloaders
firmware/include/dircache_redirect.h [diff]
William Wilgus
2022-03-04 c9857098ac: Multiboot Firmware Root Redirect - WIP

Loads external drive into root namespace Root Redirects can now be put into different folders For instance placing '/_test' into SD1/rockbox_main.<playername> will redirect to /<1>/_test/.rockbox Debug menu>Bootdata now has root directory listed in addition to RAW Bootdata

Redirect root work from Michael Sevakis g#1556, RESTORED -> g#4256
apps/debug_menu.c [diff]
firmware/common/disk.c [diff]
firmware/include/dircache_redirect.h [diff]
William Wilgus
2022-03-04 c7bbd5b090: Fix Red SDL, Android mounting root directory, and all the yellow too
firmware/include/dircache_redirect.h [diff]
firmware/target/hosted/android/filesystem-android.h [deleted]
firmware/target/hosted/sdl/filesystem-sdl.h [diff]
William Wilgus
2022-03-04 0ddac1fdaf: Fix Red SDL, Android mounting root directory

Not actually used in either atm
firmware/target/hosted/android/filesystem-android.h [new]
firmware/target/hosted/sdl/filesystem-sdl.h [diff]
William Wilgus
2022-03-03 9daacabd65: [RESTORED!] Allow mounting of any directory as the root directory.

Provide definitions for the macros:
* RB_ROOT_VOL_HIDDEN(v) to exclude certain items from the root.
* RB_ROOT_CONTENTS to return a string with the name of the directory to mount in the root.

Defaults are in export/rbpaths.h

It's a bit much for those that don't need the full functionality. Some conditional define can cut it back a lot to cut out things only needed if alternate root mounts are required. I'm just not bothering yet. The basic concept would be applied to all targets to keep file code from forking too much.

Author: Michael Sevakis
firmware/SOURCES [diff]
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/disk.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/fileobj_mgr.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/common/rb_namespace.c [new]
firmware/export/mv.h [diff]
firmware/export/pathfuncs.h [diff]
firmware/export/rbpaths.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/include/file_internal.h [diff]
firmware/include/fileobj_mgr.h [diff]
firmware/include/fs_defines.h [diff]
firmware/include/rb_namespace.h [new]
uisimulator/common/filesystem-sim.c [diff]
William Wilgus
2022-03-03 f88ea12bac: tagcache compress uniqbuf 2 16-bit indices occupy a single 32 bit slot

a lot of space is wasted when file indices less than 65535 entries should be more than 1 byte apart so use the LSB as a flag when indices are > 65535 set flag to 0 and proceed as before

explicitly mark uniqbuf as 32bit
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
William Wilgus
2022-02-28 ae97d410c5: utils: Set cmake build type to default to Release.
utils/CMakeLists.txt [diff]
Dominik Riebeling
2022-02-28 8d462a1edd: rbutil: Rework Logo display.

Replace QLabel with QSvgWidget so the widget draws the svg directly instead of first creating a pixmap from it.

This also avoids an issue when building with mxe which causes the image to not show due to a missing svg plugin (which doesn't happen for svg icons.)
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2022-02-28 83e4078d9c: cmake: Strip Release binaries when building with gcc.
utils/CMakeLists.txt [diff]
Dominik Riebeling
2022-02-28 72904569e3: Remove outdated theme editor deploy script.

This doesn't work anymore since the switch to cmake.
utils/common/deploy-themeeditor.py [deleted]
utils/common/deploy.py [deleted]
Dominik Riebeling
2022-02-28 fa1e6cc5bf: rbutil: Replace deploy with tarball script.

The old deployment script doesn't work anymore due to the change to cmake, and since we build the distribution packages (zip / dmg / AppImage) with cmake directly there's not much need left for the old deployment.
utils/common/gitscraper.py [diff]
utils/common/deploy-rbutil.py utils/common/tarball-rbutil.py [rename]
Dominik Riebeling
2022-02-28 045f52d475: tagtree.c optmize clause operator parsing

makes WS after a clause conditional optional
apps/tagtree.c [diff]
William Wilgus
2022-02-27 1bcb1e39ee: tagcache, coverity cleanup, Add TAGS_ALL_COUNT
apps/tagcache.c [diff]
apps/tagcache.h [diff]
William Wilgus
2022-02-26 6b360d8b04: action.c keyremap clean-up add logf to core_keymap.c move the remap out of the loop and eliminate a status flag
apps/action.c [diff]
apps/action.h [diff]
apps/core_keymap.c [diff]
William Wilgus
2022-02-26 887249671c: TagTree Show file name for tag_title [UNTAGGED]

fallback to filename as [UNTAGGED] is a terrible way to browse titles
apps/tagtree.c [diff]
William Wilgus
2022-02-26 836616b937: Tagcache Don't create filters when parsing a logical OR

if possible search clauses are converted to filters

once a logical OR is added to the mix (CLAUSE1|CLAUSE2 & CLAUS3)) if CLAUSE1,2 are database non-numeric tags they get made into filters but the logical OR gets carried to the next CLAUSE

Rather than trying to figure this out just keep all clauses around a logical OR
apps/tagcache.c [diff]
William Wilgus
2022-02-24 bba0564ec1: keyremap plugin use yes_no prompts, bugfix

use the supplied yes_no dialogs for file delete, key reset, save prompt

return to root menu automatically after loading a file

fix bug where deleting the last file in the list exited the menu
apps/plugins/keyremap.c [diff]
William Wilgus
2022-02-24 295ec3790d: Core Keyremap Allow setting keymap from plugin

Allow setting and removing keyremap on the fly

It was pretty annoying trying to work out a keyremap with a restart required to set the remap and was quite annoying when I was no longer able to navigate to the plugin or filebrowser due to setting the wrong remap

now you can try out a keymap and if it doesn't work a restart will sort things out
apps/core_keymap.c [diff]
apps/core_keymap.h [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/keyremap.c [diff]
William Wilgus
2022-02-23 f7bb9e2167: Add custom action mapping to core

results of an idea I discussed in IRC

changed the way the lookup in the remap file works..

entries consist of 3 int [action, button, prebtn] context look up table is at the beginning action_code contains the (context | CONTEXT_REMAPPED) button_code contains the index of the first remapped action for the matched context
[0] CORE_CONTEXT_REMAP(ctx1) offset1=(3), count=(1)
[1] CORE_CONTEXT_REMAP(ctx2, offset2=(5), count=(1)
[2] sentinel, 0, 0
[3] act0, btn, 0
[4] sentinel 0, 0
[5] act1, btn, 0
[6] sentinel, 0, 0

Note: last entry of each group is always the sentinel [CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE] contexts must match exactly -- re-mapped contexts run before the built in w/ fall through contexts ie. you can't remap std_context and expect it to match std_context actions from the WPS context.

-- Done --

Code for reading core remap entries

-- Done --

import of core remap entires from disk
-- Done --

plugin to set new key mapping (the hard part)

The plugin is started and FULLY functional you can add actions and contexts you can change context, action, button, prebtn delete keymap files load keymapfiles save user keymaps test keymaps before applying them loading keymaps to core still requires restart
-----------------------------------------------------------------------------------------------
apps/SOURCES [diff]
apps/action.c [diff]
apps/action.h [diff]
apps/core_keymap.c [new]
apps/core_keymap.h [new]
apps/main.c [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/keyremap.c [new]
apps/plugins/lib/action_helper.h [diff]
apps/plugins/lib/action_helper.pl [diff]
apps/plugins/lib/button_helper.h [diff]
apps/plugins/lib/button_helper.pl [diff]
apps/plugins/lua/rbdefines_helper.pl [diff]
William Wilgus
2022-02-22 7952687185: FS #13337: Updated Slovak translation (Matej Golian)
apps/lang/slovak.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2022-02-12 e8faf2f2ad: buflib: add a common dummy callbacks struct & use it

There are various allocations that can't be moved or shrunk. Provide a global callback struct for this use case instead of making each caller declare its own dummy struct.

Also fixed ROLO and x1000 installer code which incorrectly used movable allocations.
apps/playlist.c [diff]
apps/plugin.c [diff]
apps/recorder/pcm_record.c [diff]
apps/tagcache.c [diff]
firmware/buflib.c [diff]
firmware/common/zip.c [diff]
firmware/include/buflib.h [diff]
firmware/rolo.c [diff]
firmware/target/mips/ingenic_x1000/installer-x1000.c [diff]
firmware/usbstack/usb_storage.c [diff]
lib/x1000-installer/src/xf_nandio.c [diff]
lib/x1000-installer/src/xf_package.c [diff]
lib/x1000-installer/test_lib/core_alloc.c [diff]
lib/x1000-installer/test_lib/core_alloc.h [diff]
Aidan MacDonald
2022-02-07 95dfc489b5: sync clock with RDS time

Tested with my SansaClip+. I don't think this will need extra battery but let me know if I am wrong.
apps/features.txt [diff]
apps/lang/english.lang [diff]
apps/menus/radio_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/drivers/rds.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/time_and_date.tex [diff]
Wolfram Sang
2022-02-07 5b8873bf33: RFT: convert Gigabeat RDS to thread

This kind of reverts 7b596416bf ("Gigabeat S: Update RDS processing to use asynchronous I2C rather than thread."). However, requiring RDS to run in thread context will a) allow more upcoming features and b) remove quite some complexity from the codebase (see the diffstat here) because Gigabeat is the only user. iMX31 should be able to handle one more thread, as it can even run Linux.
firmware/drivers/rds.c [diff]
firmware/drivers/tuner/si4700.c [diff]
firmware/export/config.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/si4700.h [diff]
firmware/target/arm/imx31/gigabeat-s/fmradio-i2c-gigabeat-s.c [diff]
Wolfram Sang
2022-02-06 8d453ae9c3: Fix glitches with custom list title viewports

Elements were not being drawn correctly or title text appeared delayed in several places when using themes with a custom viewport for list titles.

E.g.:
- after deleting a shortcut
- when returning from a warning screen in Playlist Viewer
- returning to some Settings screens
- in "Playing time" screen
apps/menu.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/shortcuts.c [diff]
Christian Soffke
2022-02-01 04cbb3c7e4: misc: Add 'mpga' as a valid file extension

Some podcasts use this, apparently.
apps/filetypes.c [diff]
manual/advanced_topics/main.tex [diff]
manual/appendix/file_formats.tex [diff]
Solomon Peachy
2022-01-30 fb91184c4f: PictureFlow: Fix broken (iPod) keymap

I must have only tested de8ee6c9e9 using my custom iPod keymap. Re-mapping the "Left" and "Right" buttons in this context badly breaks existing behavior in Pictureflow when using Rockbox's default iPod keymap.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-01-30 2ddbb9cad5: Fix manual build on some targets (76a2a00732)
manual/advanced_topics/main.tex [diff]
Solomon Peachy
2022-01-30 b25d8457bc: Shanling Q1: fix DAC power mode switching

The OST prescaler bugfix (7a5130a277) broke runtime switching between 1.0V and 2.0V modes. The 1ms delay after shutting down the DAC isn't long enough to reset it, so it gets stuck in the power mode assigned at boot. Change the delay back to 4ms, the effective value prior to the OST bugfix.
firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c [diff]
Aidan MacDonald
2022-01-30 76a2a00732: si4700: optimize RDS cache update a little

use si4700_read() instead of si4700_read_reg() to make it clear we are not interested in the register itself but in the cache update. Also, a tiny bit more efficient as we save a function call and don't request a return value we don't use anyhow.
firmware/drivers/tuner/si4700.c [diff]
Wolfram Sang
2022-01-30 68887b4730: manual: reenable "Configuring the Theme" for devices without remote LCD

Commit 0c4f89370d ("[2/4] get rid of HAVE_LCD_CHARCELLS") missed a closing brace which disabled the above topic in my Sansa Clip+ manual.
manual/advanced_topics/main.tex [diff]
Wolfram Sang
2022-01-30 e91e8439ca: FS #13335: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2022-01-30 6fd18ef4a5: FS #13334: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2022-01-29 127bb1b6e1: FiiO M3K: remove volume setting on rec. screen

This controls the playback volume, which is not useful for the M3K because it's impossible to play back and record at the same time.
apps/recorder/recording.c [diff]
firmware/export/config/fiiom3k.h [diff]
Aidan MacDonald
2022-01-29 c1f1d91404: FiiO M3K: audio recording

Recording works now, although I'm sure there will be a few things that need fine-tuning. A major issue is that writing to the SD card creates noticable interference, which happens on the original firmware too but seems worse under Rockbox.

(Since Rockbox waits until RAM fills up before writing data, the interference will only be heard on >50 MiB recordings.)
apps/keymaps/keymap-fiiom3k.c [diff]
firmware/export/ak4376.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
manual/platform/keymap-fiiom3k.tex [diff]
Aidan MacDonald
2022-01-22 bc5a638594: Option to switch off album art or to prefer file over embedded

Large embedded album art can cause pauses during playback or when skipping between tracks, especially on older devices, but embedded art is currently loaded even when separately stored smaller image files would be available.

A workaround is to remove large album art from the metadata of files.

This now adds a setting to either turn off loading of album art completely, or to prefer loading the album art from a separate image file and thus ignore the embedded versions.
apps/gui/quickscreen.c [diff]
apps/lang/english.lang [diff]
apps/menus/playback_menu.c [diff]
apps/playback.c [diff]
apps/playback.h [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/shortcuts.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
Christian Soffke
2022-01-18 aafe2dd2d1: tagcache: don't allow temp commit buffer to be moved

The temporary buffer used during database commit did not have any buflib callbacks set, which allows it to be moved by buflib at any time. The code is not prepared to deal with this, so things break horribly if anything tries to allocate during the commit.

The solution is to pass dummy callbacks to prevent the buffer from being moved. I expect this may create other issues since the commit uses up all available RAM, but at least things won't get silently corrupted anymore.
apps/tagcache.c [diff]
Aidan MacDonald
2022-01-17 525eb15864: recording: fix mono mode mixdown functions

Rewrite copy_buffer_mono_* functions for correctness.

Bad pointer arithmetic in copy_buffer_mono_l produced wrong results, or panics on archs which can't handle the unaligned pointer.

None of the functions handled zero size copies properly though this probably wasn't an issue in practice.
apps/recorder/pcm_record.c [diff]
Aidan MacDonald
2022-01-17 f68c6c14d9: recscreen: clean up menu building code

Remove the use of constants and ifdefs in favor of a single enum and build the menu with a counter. This simplifies the source and optimizes to the same code.
apps/recorder/recording.c [diff]
Aidan MacDonald
2022-01-17 acc7d16e3b: Fix some hardcoded assumptions in recording.c

There were some hardcoded branches handling left/right gain for line-in or FM radio inputs. If the target only has a microphone, these bits are useless and cause compile errors due to missing audiohw settings, etc. This patch #ifdef's them out.
apps/recorder/peakmeter.c [diff]
apps/recorder/recording.c [diff]
Aidan MacDonald
2022-01-17 8e65f1db55: manual: Document the DAC power mode setting

Make a note of the fact that the M3K DAC's high performance setting is not necessarily the highest quality setting -- see forum post https://forums.rockbox.org/index.php/topic,52917.msg249741.html#msg249741
manual/configure_rockbox/sound_settings.tex [diff]
Aidan MacDonald
2022-01-17 d93e054419: fiiom3k: power down amp before switching DAC power modes

As detailed in the <Low Power Mode> section of the AK4376A datasheet, the amp should be powered down before switching power modes (or to a sample rate <= 12 KHz).
firmware/drivers/audio/ak4376.c [diff]
Aidan MacDonald
2022-01-17 dac3175445: audiohw: avoid magic numbers for DAC power mode

Define proper symbolic constants for power mode. Also allow targets to define the default power mode setting.
apps/settings_list.c [diff]
firmware/drivers/audio/ak4376.c [diff]
firmware/export/ak4376.h [diff]
firmware/export/audiohw.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/audiohw-shanlingq1.c [diff]
Aidan MacDonald
2022-01-17 18b3e91707: x1000: internal codec audio driver
firmware/SOURCES [diff]
firmware/drivers/audio/x1000-codec.c [new]
firmware/export/audiohw.h [diff]
firmware/export/x1000-codec.h [new]
Aidan MacDonald
2022-01-17 15e3d37110: x1000: core PCM recording support
firmware/export/x1000.h [diff]
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Aidan MacDonald
2022-01-16 0fbaeed250: Remove ACTION_SETTINGS_RESET

This action has never been used since its introduction in 2006. There's no real need for it, as it's possible to reset settings from the context menu.
apps/action.h [diff]
apps/keymaps/keymap-agptekrocker.c [diff]
apps/keymaps/keymap-c200.c [diff]
apps/keymaps/keymap-clip.c [diff]
apps/keymaps/keymap-creativezv.c [diff]
apps/keymaps/keymap-creativezvm.c [diff]
apps/keymaps/keymap-e200.c [diff]
apps/keymaps/keymap-erosq.c [diff]
apps/keymaps/keymap-fiiom3k.c [diff]
apps/keymaps/keymap-fiiom3klinux.c [diff]
apps/keymaps/keymap-fuze.c [diff]
apps/keymaps/keymap-fuzeplus.c [diff]
apps/keymaps/keymap-gigabeat-s.c [diff]
apps/keymaps/keymap-gigabeat.c [diff]
apps/keymaps/keymap-h10.c [diff]
apps/keymaps/keymap-h1x0_h3x0.c [diff]
apps/keymaps/keymap-hdd1630.c [diff]
apps/keymaps/keymap-hdd6330.c [diff]
apps/keymaps/keymap-hm60x.c [diff]
apps/keymaps/keymap-hm801.c [diff]
apps/keymaps/keymap-ihifi.c [diff]
apps/keymaps/keymap-ihifi770.c [diff]
apps/keymaps/keymap-ihifi800.c [diff]
apps/keymaps/keymap-m200.c [diff]
apps/keymaps/keymap-ma.c [diff]
apps/keymaps/keymap-meizu-m6sl.c [diff]
apps/keymaps/keymap-mini2440.c [diff]
apps/keymaps/keymap-mr100.c [diff]
apps/keymaps/keymap-mr500.c [diff]
apps/keymaps/keymap-nwz.c [diff]
...and 9 more files.
Aidan MacDonald
2022-01-09 c62c323ebc: axp-pmu: adc refactor

Remove the battery power ADC since it's not used right now, and seems to fluctuate too rapidly to be of much use.
firmware/drivers/axp-pmu.c [diff]
firmware/export/axp-pmu.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/power-shanlingq1.c [diff]
Aidan MacDonald
2022-01-09 b490f08b7c: axp-pmu: remove chip ID code

It's useless except to developers, who can easily add code somewhere to print the ID.
firmware/drivers/axp-pmu.c [diff]
Aidan MacDonald
2022-01-09 eee8243102: axp-pmu: clean up charge current setting
firmware/drivers/axp-pmu.c [diff]
firmware/export/axp-pmu.h [diff]
Aidan MacDonald
2022-01-09 eaee5e7339: Revert "AXP PMU rewrite (again)"

This caused LCD problems on the ErosQ, where the screen would go white until being put through a sleep/wake cycle. The exact reason for this isn't obvious, but the problem didn't exist prior to the AXP driver rewrite.

The two dependent changes,

42999913ba - x1000: Increase USB current limit to 500 mA at all times 90dd2f84a9 - x1000: Correctly limit USB charging current

ended up bringing the USB charging situation back to where it was prior to the rewrite, so the cleanest option is to revert the whole lot.

This reverts commit 42999913ba3a76221fceb04b1f935ed4e0e71476. This reverts commit 90dd2f84a9174c38dbfb07d582ec6ee7697b1939. This reverts commit 2d891439623bb76d38b98202ca5f3eea3c01c5f0.
firmware/SOURCES [diff]
firmware/drivers/axp-pmu.c [new]
firmware/drivers/axp192.c [deleted]
firmware/export/axp-pmu.h [new]
firmware/export/axp192-defs.h [deleted]
firmware/export/axp192.h [deleted]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/button-shanlingq1.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/power-shanlingq1.c [diff]
Aidan MacDonald
2022-01-09 8f063d49c2: ImageViewer: Fix FS #13329 (GIF File handle/memory leaks)
apps/plugins/imageviewer/gif/gif.c [diff]
apps/plugins/imageviewer/gif/gif_decoder.c [diff]
apps/plugins/imageviewer/gif/gif_decoder.h [diff]
Christian Soffke
2022-01-09 f379e1dbb3: ImageViewer: Fix GIF Decoder progress bar
apps/plugins/imageviewer/gif/gif_decoder.c [diff]
Christian Soffke
2022-01-09 18358ed541: ImageViewer: Fix gifs sporadically crashing on targets

ensure 32bit alignment
apps/plugins/imageviewer/gif/gif.c [diff]
Christian Soffke
2022-01-09 fbdcfca085: ImageViewer: Improve smoothness of animated gif playback

Don't disable grayscale overlay, don't show "resize" messages between frames and and don't clear display unless actually necessary
apps/plugins/imageviewer/gif/gif.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
Christian Soffke
2022-01-09 3adeae2026: ImageViewer: Fix crash when zooming on grayscale devices

lcd_update was called while the grayscale overlay was running

regression, apparently introduced by 0ceaff2

(only reproducible on target, not in Simulator)
apps/plugins/imageviewer/imageviewer.c [diff]
Christian Soffke
2022-01-08 f1ddd6f014: ErosQ Native: Fix Color Chooser keymap context

Was defaulting to standard, where we don't have increment or decrement defined.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
2022-01-05 131497d786: PictureFlow: Don't sync playlist after every file

Since we manually do it later, syncing after every file is unnecessary and can make the audio queue overflow
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-01-05 ea738e03d0: Printcell.c fix list item scrolling behavior

make every item in a selection scroll when no columns are selected otherwise title & currently selected column will be the only scrolling lines
apps/plugins/lib/printcell_helper.c [diff]
William Wilgus
2022-01-04 122ce0089a: PictureFlow: Don't insert tracks if track list not available
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-01-04 de8ee6c9e9: PictureFlow: Switch between albums from track view

Prev/next buttons on iPods or Fiio M3k can now be used to select another album without having to return to the albums view first. Scroll wheel/strip handles scrolling up and down in the track list as before.

Other targets probably have the necessary buttons for this, so the keymap can be extended in the future (same goes for alphabetic browsing)

Also prevents queue overflow and handles failure case for track list tagcache retrieval.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-01-04 d183959676: PictureFlow: Show track list loading message

When tagcache or storage are busy, it can take a few seconds for the list to appear. Meanwhile, the screen used to be either blank or the cover was left suspended in mid-animation, if the animation was skipped.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-01-04 dded97be34: PictureFlow: Fix buffer overflow

create_track_index appears to have relied on buflib_buffer_out returning a certain amount of space without checking that it was actually available. In at least one test case, as little as 16 bytes were returned, leading to a buffer overflow and later a segfault.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2022-01-04 e3b8b7fa80: PictureFlow: Utilize "Current Playlist" menu (+ GS fixes)

When appending tracks, they were always inserted last. You can now choose from the usual options offered by the "Current Playlst" context menu to queue or to insert tracks at the requested position. The splash after appending that forced you to wait for 2s has been eliminated.

Also fixes crashes on targets that use the grey_core lib if a splash showed up when playback was started, e.g. LANG_PLAYLIST_CONTROL_ACCESS_ERROR, or when PictureFlow quit.
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/playlist_viewer.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/shortcuts.c [diff]
Christian Soffke
2022-01-04 bfe3dac3ba: printcell_helper.c bugfix scrollbar spacing

when the scrollbar was on left and number of items was < nb_lines the spacing between title and items was off by sb_width

selected item no longer draws separators when no colums are selected
apps/plugins/lib/printcell_helper.c [diff]
William Wilgus
2022-01-02 cbb57fe714: rbutil: allow checking bootloader installer capabilities

Instead of checking for certain hardcoded strings, fetch the actual capability bitmask by instantiating an installer and querying it.
utils/rbutilqt/base/bootloaderinstallbase.h [diff]
utils/rbutilqt/base/bootloaderinstallhelper.cpp [diff]
utils/rbutilqt/base/bootloaderinstallhelper.h [diff]
utils/rbutilqt/base/bootloaderinstallipod.cpp [diff]
utils/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
Aidan MacDonald
2022-01-02 42999913ba: x1000: Increase USB current limit to 500 mA at all times

The 100 mA USB current limit added in commit 90dd2f84a9 is a problem when booting with a completely dead battery. Often 100 mA isn't enough to power the player, never mind charge the battery, so revert to the old behavior of only limiting charge current.

Given that the original firmware on these devices isn't following the USB spec to the letter, it's probably not worth trying to make Rockbox do so unless and until it causes a real problem - which hasn't happened yet.
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/power-shanlingq1.c [diff]
Aidan MacDonald
2022-01-02 83c2398384: x1000: Fix USB connection problems in bootloader

This problem actually had nothing to do with USB boot; it's because the cable is plugged in when the USB mode menu item is selected. The USB thread detected the select button press and went into charge-only mode (as it usually does when you hold down a key in Rockbox). This is fixed by having the USB thread ignore most keys in the bootloader.

USB connect events are delivered via the button queue, and there were also cases where the connection could be missed if the event happened within another UI screen. This should also be fixed.
bootloader/x1000.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
Aidan MacDonald
2022-01-02 af872b54ec: powermgmt: Bugfixes to time estimation code

Guard against division by zero and prevent the time_now value from going negative if the counter drops below zero.
firmware/powermgmt.c [diff]
Aidan MacDonald
2022-01-02 a7703e4926: gui lists add callback for owner drawn items

allow the guts of gui_sync_list to be used with owner drawn items

WIP

printcell_helper--

goal: allow data to be displayed in a spreadsheet format with an easy to use interface

printcell_set_columns(gui_synclist, title, icon) sets title and calculates cell widths each column is identified by '$' character ex 3 columns title = "Col1$Col2$Col3" also accepts $*WIDTH$ ex 3 columns varying width title = "$*64$Col1$*128$Col2$Col3 printcell_enable(gui_synclist, enable) sets the printcell function enabled

After setting the columns and enabling the printcell function items can be added to the list like normal column items are supplied delimited by '$' ex item = "Item1$item2$item3" they will be placed in cells defined by set_columns and scroll if the cell is too small

--Fixed for 1 bit & 2 bit displays
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/printcell_helper.c [new]
apps/plugins/lib/printcell_helper.h [new]
apps/plugins/rb_info.c [diff]
William Wilgus
2022-01-02 edc68b0657: Solitaire: Fix Quit option with no saved games

Selecting "Quit" would start the game instead of quitting if no games had previously been saved.
apps/plugins/solitaire.c [diff]
Christian Soffke
2022-01-02 14a5355278: Manual: fix FS #12603

"root menu order" item missing from "Config file options" chapter
manual/appendix/config_file_options.tex [diff]
Christian Soffke
2022-01-02 abfee36ce0: PictureFlow: enable theme in settings menus

Submenus for adjusting settings were previously left unthemed
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-29 025f780685: Update .gitignore for rbutil/ -> utils/ merge
.gitignore [diff]
Aidan MacDonald
2021-12-28 bbd1056afb: themeeditor: Fix dmg deploy steps.

- Fix binary name in Info.plist.
- Run dmgbuild as Python module, in some cases it isn't available directly.
- Add missing dmgbuild configuration for themeeditor.
utils/cmake/deploy.cmake [diff]
utils/themeeditor/Info.plist [diff]
utils/themeeditor/dmgbuild.cfg [new]
Dominik Riebeling
2021-12-28 3d983ad3a1: themeeditor: Create MacOS AppBundle / Win32 GUI application.

cmake needs to know about this, otherwise we'll only get an executable.
utils/themeeditor/CMakeLists.txt [diff]
Dominik Riebeling
2021-12-28 875fcc7daf: themeeditor: Fix cmake Qt major version.

Use the correct variable.
utils/themeeditor/CMakeLists.txt [diff]
Dominik Riebeling
2021-12-28 c055b5e933: rbutil: Add data tags to data driven unit tests.

Make tests implemented as data driven tests show a sensible test data tag value, so test can get identified more easily.
utils/rbutilqt/test/test-compareversion.cpp [diff]
utils/rbutilqt/test/test-playerbuildinfo.cpp [diff]
Dominik Riebeling
2021-12-28 0c8f539182: rbutil: Auto-discover tests with cmake.
utils/rbutilqt/CMakeLists.txt [diff]
Dominik Riebeling
2021-12-28 f37a917e9a: cmake: Disable QtTest discovery when cross compiling.
utils/cmake/QtTest.cmake [diff]
Dominik Riebeling
2021-12-28 c1ad915055: cmake: Add QtTest test discovery module.

Allow discivery of the QtTest based unit test. Taken from https://github.com/ocroquette/cmake-qtest-discovery
utils/cmake/QtTest.cmake [new]
utils/cmake/QtTestAddTests.cmake [new]
Dominik Riebeling
2021-12-28 f53f1fbafa: rbutil: Fix some more issues found by clazy.
utils/rbutilqt/base/httpget.h [diff]
utils/rbutilqt/base/mspackutil.h [diff]
utils/rbutilqt/base/utils.cpp [diff]
utils/rbutilqt/base/ziputil.h [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/progressloggergui.h [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/sysinfo.cpp [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
utils/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
2021-12-28 7dffbd84af: Playlist Viewer: Add Track Info

Adds a command for showing track info to the Playlist Viewer's context menu, which brings up the same screen used by the WPS for currently playing tracks.
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/playlist_viewer.c [diff]
apps/screens.c [diff]
apps/screens.h [diff]
Christian Soffke
2021-12-28 e8b9123205: Database: show song's album in PictureFlow

Adds a 'PictureFlow' command to database context menus for quickly bringing up the album for a song in PictureFlow.
apps/onplay.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/viewers.config [diff]
Christian Soffke
2021-12-28 7d59bbd170: Database: Fix selection being reset

Consistent with (preferable) behavior of file browser after selecting an item for playback
apps/tagtree.c [diff]
Christian Soffke
2021-12-28 96cfe329a6: powermgmt: Better time estimation

This method, while far from perfect, is able to make use of real-time battery usage information and updates frequently in fine-grained increments. This should make time estimates a lot more useful than they previously were.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
Aidan MacDonald
2021-12-28 90dd2f84a9: x1000: Correctly limit USB charging current

The way this was done before was wrong - limiting the charge current is not enough since the device will draw additional power to run. Use the AXP192's vbus current limit control to stay compliant with the USB specification.
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/power-shanlingq1.c [diff]
Aidan MacDonald
2021-12-28 2d89143962: AXP PMU rewrite (again)

I noticed a few mistakes in the old driver code and it was in need of an overhaul anyway... I decided to scale things back, simplify the code and remove most of the debug menus, netting a nice code size savings.

One new feature is an advanced debug menu which is accessible by recompiling the code with AXP_EXTRA_DEBUG. It adds quite a bit of code size and isn't useful other than for development so it must be manually enabled by editing the source.
firmware/SOURCES [diff]
firmware/drivers/axp-pmu.c [deleted]
firmware/drivers/axp192.c [new]
firmware/export/axp-pmu.h [deleted]
firmware/export/axp192-defs.h [new]
firmware/export/axp192.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/button-shanlingq1.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/power-shanlingq1.c [diff]
Aidan MacDonald
2021-12-28 b774699560: themeeditor: Remove qmake project files.

It is now part of building with cmake.
utils/themeeditor/themeeditor.pro [deleted]
Dominik Riebeling
2021-12-28 3e2a7a56c0: rbutil: Remove qmake project files.

To build it configure with cmake from utils/ folder.
utils/ipodpatcher/ipodpatcher.pro [deleted]
utils/rbutil.pro [deleted]
utils/rbutilqt/rbutilqt.pri [deleted]
utils/rbutilqt/rbutilqt.pro [deleted]
utils/rbutilqt/test/test-compareversion.pro [deleted]
utils/rbutilqt/test/test-httpget.pro [deleted]
utils/rbutilqt/test/test-playerbuildinfo.pro [deleted]
utils/rbutilqt/test/test-rockboxinfo.pro [deleted]
utils/sansapatcher/sansapatcher.pro [deleted]
Dominik Riebeling
2021-12-27 1ddc5a202d: themeeditor: Convert to cmake.
utils/CMakeLists.txt [diff]
utils/themeeditor/CMakeLists.txt [new]
Dominik Riebeling
2021-12-27 36cb0d4050: themeeditor: Add svg application icon and desktop file.
utils/themeeditor/RockboxThemeEditor.desktop [new]
utils/themeeditor/resources/rbthemeeditor.svg [new]
Dominik Riebeling
2021-12-27 2ecbc18535: rbutil: cmake: Make linuxdeploy download a global target.

That way we won't get duplicated targets when the deploy function is used for multiple targets.
utils/cmake/deploy.cmake [diff]
Dominik Riebeling
2021-12-27 67942629cf: rbutil: Explicitly enable AppImage qt deploy plugin.
utils/cmake/deploy.cmake [diff]
Dominik Riebeling
2021-12-26 88a50ab104: rbutil: Change MacOS dmgbuild to use plistlib.

We're not dealing with binary plist files, to biplist is not the one we want. Also, plistlib is part of Python.
utils/cmake/deploy.cmake [diff]
utils/rbutilqt/dmgbuild.cfg [diff]
Dominik Riebeling
2021-12-26 5999b4f791: rbutil: Fix cmake deploy function paths.

Update scripts paths with the split-up setup.
utils/cmake/deploy.cmake [diff]
Dominik Riebeling
2021-12-26 241d478ce9: rbutil: Replace QRegExp with QRegularExpression.

More updating for Qt6 compatibility.
utils/rbutilqt/base/talkfile.cpp [diff]
utils/rbutilqt/base/talkgenerator.cpp [diff]
Dominik Riebeling
2021-12-26 1ad4faa334: rbutil: Modernize connect() calls.

Auto fixed by clazy.
utils/rbutilqt/configure.cpp [diff]
utils/rbutilqt/createvoicewindow.cpp [diff]
utils/rbutilqt/gui/backupdialog.cpp [diff]
utils/rbutilqt/gui/changelog.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/installtalkwindow.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
utils/rbutilqt/uninstallwindow.cpp [diff]
Dominik Riebeling
2021-12-26 9f3d6e47e7: rbutil: Remove generated header from giversion interface target.

cmake on Windows doesn't like this, and it's not necessary.
utils/CMakeLists.txt [diff]
Dominik Riebeling
2021-12-26 80c0268c7a: rbutil: Make test compile with Qt6.
utils/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2021-12-26 35bc4590ae: rbutil: Remove ProgressLogger interface class.

Since we're using signals to connect to the Logger we don't need an interface class, and the only thing still used was the log level enum. Put those values in a dedicated header instead.
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/base/bootloaderinstallbase.h [diff]
utils/rbutilqt/base/bootloaderinstallfile.h [diff]
utils/rbutilqt/base/bootloaderinstallmi4.h [diff]
utils/rbutilqt/base/mspackutil.cpp [diff]
utils/rbutilqt/base/progressloggerinterface.h utils/rbutilqt/base/progressloglevels.h [rename]
utils/rbutilqt/base/talkfile.h [diff]
utils/rbutilqt/base/talkgenerator.h [diff]
utils/rbutilqt/base/uninstall.h [diff]
utils/rbutilqt/base/voicefile.h [diff]
utils/rbutilqt/base/zipinstaller.h [diff]
utils/rbutilqt/base/ziputil.cpp [diff]
utils/rbutilqt/progressloggergui.cpp [diff]
utils/rbutilqt/progressloggergui.h [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2021-12-25 01e245417e: rbutil: Fix various issues found by clazy.
utils/rbutilqt/base/system.cpp [diff]
utils/rbutilqt/base/talkfile.cpp [diff]
utils/rbutilqt/base/talkgenerator.cpp [diff]
utils/rbutilqt/base/ttsfestival.cpp [diff]
utils/rbutilqt/base/ttssapi.cpp [diff]
utils/rbutilqt/base/utils.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2021-12-25 0768705545: rbutil: Fix invalid access on error in test.
utils/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2021-12-25 c753d31549: rbutil: Remove unused variable from test.
utils/rbutilqt/test/test-rockboxinfo.cpp [diff]
Dominik Riebeling
2021-12-25 6ff75b475c: rbutil: Modernize connect() calls.

Auto fixed by clazy.
utils/rbutilqt/base/bootloaderinstallimx.cpp [diff]
utils/rbutilqt/configure.cpp [diff]
utils/rbutilqt/createvoicewindow.cpp [diff]
utils/rbutilqt/encttscfggui.cpp [diff]
utils/rbutilqt/gui/backupdialog.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/installtalkwindow.cpp [diff]
utils/rbutilqt/preview.cpp [diff]
utils/rbutilqt/progressloggergui.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/test/test-httpget.cpp [diff]
utils/rbutilqt/themesinstallwindow.cpp [diff]
utils/rbutilqt/uninstallwindow.cpp [diff]
Dominik Riebeling
2021-12-25 dce2ccdd96: rbutil: Remove unused mspack source to fix warning.

We don't need this file, and the implementations are stubs, causing a compile warning. Remove it from the build.
utils/rbutilqt/CMakeLists.txt [diff]
Dominik Riebeling
2021-12-25 afe0e18113: mkamsboot: Fix a warning.
utils/mkamsboot/mkamsboot.c [diff]
Dominik Riebeling
2021-12-25 eb8dc75d38: rbutil: Create git version information at build time.
utils/CMakeLists.txt [diff]
utils/cmake/gitversion.cmake [new]
utils/rbutilqt/CMakeLists.txt [diff]
utils/rbutilqt/version.h [diff]
Dominik Riebeling
2021-12-25 6783b2c8a7: rbspeex: Fix unused variable warning.
tools/rbspeex/rbspeex.c [diff]
Dominik Riebeling
2021-12-25 e9ef7f0dd3: rbutil: Split out rbutilqt parts into separate cmake list.
utils/CMakeLists.txt [diff]
utils/rbutilqt/CMakeLists.txt [new]
Dominik Riebeling
2021-12-25 c979717b80: rbutil: Fix logger segfault on application exit.

Getting the values from a QMultiMap() returns a list, but not the same on consecutive calls. Thus calling it twice to get the iterators will yield different lists, causing the iterator to fail.

Fixes a segfault when destructing the logger.
utils/rbutilqt/logger/src/Logger.cpp [diff]
Dominik Riebeling
2021-12-25 774b35cccf: rbutil: Deploy support in cmake.

Add a "deploy" target that will create a distributable file.

- Linux: AppImage.
- Windows: zip file.
- MacOS: dmg.
utils/CMakeLists.txt [diff]
utils/cmake/deploy.cmake [new]
utils/cmake/download.cmake [new]
utils/rbutilqt/dmgbuild.cfg [diff]
Dominik Riebeling
2021-12-25 4eb3f05042: rbutil: Increase test timeout value for HttpGet tests.

The test timeout is used to abort the tests if something goes wrong and should not occur during normal test run. On some systems the current value is too small, causing a timeout and thus test failure before HttpGet responds. Increasing the timeout fixes this.
utils/rbutilqt/test/test-httpget.cpp [diff]
Dominik Riebeling
2021-12-25 f2798c225a: rbutil: Simplify reading rockbox-info.txt.

Simplify, and replace use of QRegExp with QRegularExpression for Qt6 compatibility.

Also fix the test running on Windows. RockboxInfo constructs the filename from path and filename, so we cannot pass an empty path, since that results in an invalid path. On Linux / MacOS this works only because we use an absolute path.
utils/rbutilqt/base/rockboxinfo.cpp [diff]
utils/rbutilqt/test/test-rockboxinfo.cpp [diff]
Dominik Riebeling
2021-12-25 dc677208d0: rbutil: Fix unit tests on Windows.
utils/rbutilqt/test/stubs/stubs-compareversion.cpp [diff]
Dominik Riebeling
2021-12-25 3d6d186d2e: rbutil: Initial cmake support.

Rewrite in cmake, and include all necessary libs. This removes calling separate Makefiles which is rather error-prone on non-Linux systems.
utils/CMakeLists.txt [new]
Dominik Riebeling
2021-12-24 f3a54a7c22: rbutil: Put translation qrc next to translations.

That way we don't need to put paths in the file, and will help with cmake support later.
utils/rbutilqt/lang/rbutilqt-lang.qrc [new]
utils/rbutilqt/rbutilqt-lang.qrc [deleted]
utils/rbutilqt/rbutilqt.pri [diff]
Dominik Riebeling
2021-12-24 2fdc056fee: rbutil: Use https URLs in Changelog links.
utils/rbutilqt/gui/changelog.cpp [diff]
Dominik Riebeling
2021-12-24 9e28474e47: rbutil: Replace QRegExp with QRegularExpression.

The former is not part of Qt6 anymore, while the latter has been introduced with Qt5. We don't support Qt4 anymore, so move to QRegularExpression.
utils/rbutilqt/base/bootloaderinstallipod.cpp [diff]
utils/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
utils/rbutilqt/base/talkgenerator.cpp [diff]
utils/rbutilqt/base/ttsfestival.cpp [diff]
utils/rbutilqt/base/utils.cpp [diff]
utils/rbutilqt/configure.cpp [diff]
utils/rbutilqt/gui/changelog.cpp [diff]
utils/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
utils/rbutilqt/installtalkwindow.cpp [diff]
utils/rbutilqt/rbutilqt.cpp [diff]
utils/rbutilqt/sysinfo.cpp [diff]
Dominik Riebeling
2021-12-24 72071d108c: rbutil: Remove unnecessary include from logger.
utils/rbutilqt/logger/src/Logger.cpp [diff]
Dominik Riebeling
2021-12-24 c876d3bbef: rbutil: Merge rbutil with utils folder.

rbutil uses several components from the utils folder, and can be considered part of utils too. Having it in a separate folder is an arbitrary split that doesn't help anymore these days, so merge them.

This also allows other utils to easily use libtools.make without the need to navigate to a different folder.
rbutil/bspatch/LICENSE utils/bspatch/LICENSE [rename]
rbutil/bspatch/Makefile utils/bspatch/Makefile [rename]
rbutil/bspatch/bspatch.c utils/bspatch/bspatch.c [rename]
rbutil/bspatch/bspatch.h utils/bspatch/bspatch.h [rename]
rbutil/bspatch/main.c utils/bspatch/main.c [rename]
rbutil/bzip2/LICENSE utils/bzip2/LICENSE [rename]
rbutil/bzip2/Makefile utils/bzip2/Makefile [rename]
rbutil/bzip2/blocksort.c utils/bzip2/blocksort.c [rename]
rbutil/bzip2/bzlib.c utils/bzip2/bzlib.c [rename]
rbutil/bzip2/bzlib.h utils/bzip2/bzlib.h [rename]
rbutil/bzip2/bzlib_private.h utils/bzip2/bzlib_private.h [rename]
rbutil/bzip2/compress.c utils/bzip2/compress.c [rename]
rbutil/bzip2/crctable.c utils/bzip2/crctable.c [rename]
rbutil/bzip2/decompress.c utils/bzip2/decompress.c [rename]
rbutil/bzip2/huffman.c utils/bzip2/huffman.c [rename]
rbutil/bzip2/randtable.c utils/bzip2/randtable.c [rename]
rbutil/chinachippatcher/Makefile utils/chinachippatcher/Makefile [rename]
rbutil/chinachippatcher/chinachip.c utils/chinachippatcher/chinachip.c [rename]
rbutil/chinachippatcher/chinachip.h utils/chinachippatcher/chinachip.h [rename]
rbutil/chinachippatcher/main.c utils/chinachippatcher/main.c [rename]
rbutil/e200rpatcher/Makefile utils/e200rpatcher/Makefile [rename]
rbutil/e200rpatcher/README utils/e200rpatcher/README [rename]
rbutil/e200rpatcher/e200rpatcher.c utils/e200rpatcher/e200rpatcher.c [rename]
rbutil/e200rpatcher/e200rpatcher.manifest utils/e200rpatcher/e200rpatcher.manifest [rename]
rbutil/e200rpatcher/e200rpatcher.rc utils/e200rpatcher/e200rpatcher.rc [rename]
rbutil/ibassoboot/jni/Android.mk utils/ibassoboot/jni/Android.mk [rename]
rbutil/ibassoboot/jni/chooser.bmp utils/ibassoboot/jni/chooser.bmp [rename]
rbutil/ibassoboot/jni/ibassodualboot.c utils/ibassoboot/jni/ibassodualboot.c [rename]
rbutil/ibassoboot/jni/qdbmp.c utils/ibassoboot/jni/qdbmp.c [rename]
rbutil/ibassoboot/jni/qdbmp.h utils/ibassoboot/jni/qdbmp.h [rename]
...and 464 more files.
Dominik Riebeling
2021-12-24 6c6f0757d7: PictureFlow: Show background cache building progress

There was no easy way to see how far along PictureFlow was in building the art cache, once background scanning had commenced.

PF now uses the screen area normally used by the FPS meter to show completed percentage until building the art cache has finished.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-24 f4fbc1bceb: tagtree: Support user override config file

Allow users to create an alternative tagnavi config file named
"tagnavi_user.config" in the .rockbox directory. If present, it will be used instead of the default tagnavi.config, allowing the default menu to be completely redefined.

This makes it much easier to maintain customizations which remove or modify parts of the default config -- since the default config is shipped in the Rockbox zips, a customized tagnavi.config would have to be saved with manual intervention on each & every update.
apps/tagnavi.config [diff]
apps/tagtree.c [diff]
Aidan MacDonald
2021-12-24 6b5c811d1c: PictureFlow: reset idle timer when art cache is being built

- creating the album index and art cache can take longer than what the idle poweroff timer is set to, so make sure to reset it periodically

- when finished, make sure progress is stored to disk immediately, so it isn't lost on idle poweroff
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-24 d04804b6ff: Root menu: prevent infinite loop trying to exit plugin

Rockbox could enter into an infinite loop when last_screen and next_screen were both GO_TO_PREVIOUS, which happened when trying to quit PictureFlow in the following scenario:

1) start playback from PictureFlow plugin 2) return (or be returned) to WPS directly 3) wait for playback to finish and to be returned to PF plugin
apps/root_menu.c [diff]
Christian Soffke
2021-12-24 747c8d5ea4: Remove dead code/documentation/comments
apps/gui/statusbar.c [diff]
apps/gui/statusbar.h [diff]
apps/onplay.c [diff]
apps/plugin.h [diff]
docs/PLUGIN_API [diff]
Christian Soffke
2021-12-23 22d0c4da70: Revert "powermgmt: Remove an unnecessary function"

This reverts commit 6ff1a935b923b69d34d18e68af612297912c806b.

Reason: it created a mismatch between the displayed voltage and percent since the voltage was unfiltered but percentage was based off the filtered voltage.
apps/debug_menu.c [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/target/coldfire/debug-coldfire.c [diff]
Aidan MacDonald
2021-12-23 1a313dc9bf: Report battery current on all X1000 native targets

This allows battery run time to be calculated from the actual battery usage on the FiiO M3K and Shanling Q1. This isn't very good for the time being and the estimate tends to go all over the place due to small variations in current or voltage.

The Eros Q can support this feature as well, but since it already has fixed estimates defined and the quality of the "real time" estimate is low I am not enabling it there.
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/power-shanlingq1.c [diff]
Aidan MacDonald
2021-12-23 fc678bd001: battery_bench: Log battery current information

Works on targets supporting CURRENT_MEASURE.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/battery_bench.c [diff]
Aidan MacDonald
2021-12-23 9ae983068a: Display battery current in debug menu
apps/debug_menu.c [diff]
Aidan MacDonald
2021-12-23 ad05c872fe: powermgmt: Add battery current measurement

This allows targets to report the actual discharging or charging current if they are able to.
firmware/export/config.h [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
uisimulator/common/powermgmt-sim.c [diff]
Aidan MacDonald
2021-12-23 923f92cb12: Fix yellow from 4506f2b58d
firmware/powermgmt.c [diff]
Aidan MacDonald
2021-12-23 4506f2b58d: powermgmt: Refactor battery measurement code

I've tried to clean up cruft and clarify what's being done, prior to adding new features. The behavior should be unchanged.
firmware/powermgmt.c [diff]
uisimulator/common/powermgmt-sim.c [diff]
Aidan MacDonald
2021-12-18 d6faef8205: FS #13330: Updated Dutch translation (Issa Beganović)
apps/lang/nederlands.lang [diff]
Solomon Peachy
2021-12-18 bdef4fc80d: FS #13228: More Turkish translation updates (Selami Dinçer)

This one is focused on corrections to existing strings
apps/lang/turkce.lang [diff]
Solomon Peachy
2021-12-17 ded161e81a: FS #13327: Further Turkish translation updates (Selami Dinçer)

(Continuing to fix strings that were the same as English)
apps/lang/turkce.lang [diff]
Solomon Peachy
2021-12-16 0300f62bf1: FS #13326: Further Turkish translation updates (Selami Dinçer)
apps/lang/turkce.lang [diff]
Solomon Peachy
2021-12-16 6a6f5fbd6c: Voices: Enable the generation of turkish voice files.
tools/builds.pm [diff]
Solomon Peachy
2021-12-16 f496e1fb97: FS #13325: Further Turkish translation updates (Selami Dinçer)

Making a big dent in the "same as English" list
apps/lang/turkce.lang [diff]
Solomon Peachy
2021-12-16 b53d2bc432: languages: Fix RTL language file generation

The 'rtl' flags for Arabic and Hebrew was inadvertantly deleted in 7ff3c94e1 (over a year ago, in November 2020!) but it's actually been broken since the introduction of 'updatelang', in 2305966d (July 2020)

The fix here is to change the 'RTL' flag from an <options> section in the language file to a comment in the header. It's not as pure in a design sense but it makes for a much cleaner implementation.

I may further revamp this by making the 'RTL' flag into an explicit LANG_xxx string
apps/lang/arabic.lang [diff]
apps/lang/hebrew.lang [diff]
tools/genlang [diff]
Solomon Peachy
2021-12-15 651853f5df: FS #13324: Updated Turkish translation (Selami Dinçer)
apps/lang/turkce.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2021-12-14 f996f4ed70: FS13323: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2021-12-11 75d615e818: Fix yellow from 69d08be0
apps/lang/czech.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
Aidan MacDonald
2021-12-11 69d08be083: Additional Single Mode options

In addition to the existing behavior of pausing after each song, this adds options to pause after playing current:

Album, Album Artist, Artist, Composer, Grouping / Work, or Genre.

Allows you, for example, to only listen to the remaining movements of a classical work without having to purge your playlist of any upcoming songs.
apps/pcmbuf.c [diff]
apps/playback.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
Christian Soffke
2021-12-11 8060c79775: allow sim to shutdown while 'charging'
firmware/export/config.h [diff]
William Wilgus
2021-12-11 68ed534f83: Automated translation fixups for a couple of strings
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues-brasileiro.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/romaneste.lang [diff]
...and 11 more files.
Solomon Peachy
2021-12-11 21866949dc: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-12-11 06f98fa2e7: FS #13322: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2021-12-11 e05db7304e: Update Chinese translations

Lifted from the Rockbox-RCC github repo, plus several cleanups by myself.
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
Solomon Peachy
2021-12-11 fde78a0c8d: lang: Use consistent capitalization for button names
apps/lang/english.lang [diff]
Solomon Peachy
2021-12-11 dcac2c616f: Add setting for numeric list sort order

The sort order of numeric lists can now be changed with the new "List Order" setting. It defaults to ascending for most scrollwheel targets and descending for all others, matching the old hardcoded behavior.
apps/gui/option_select.c [diff]
apps/gui/option_select.h [diff]
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
Aidan MacDonald
2021-12-10 a3684e090e: m3k simulator: remove white border
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-fiiom3k.bmp [diff]
uisimulator/buttonmap/fiio-m3k.c [diff]
Christian Soffke
2021-12-10 f1eb0483d6: m3k simulator: add screen bezel
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-fiiom3k.bmp [diff]
uisimulator/buttonmap/fiio-m3k.c [diff]
Christian Soffke
2021-12-10 f78a0e5230: Manual (HTML): fix image aspect ratio and size
manual/appendix/file_formats.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/preamble.tex [diff]
manual/rockbox_interface/main.tex [diff]
Christian Soffke
2021-12-10 694f929a99: Credits plugin: use black background

Sets the lcd background color to black and foreground color to white when displaying the 16bit logo, so that it always blends in with the background regardless of theme colors.
apps/plugins/credits.c [diff]
Christian Soffke
2021-12-10 938395be72: Update US English "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-12-10 fb339a5a09: FS #13220: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2021-12-09 43d811073a: Credits plugin: whitespace fixes
apps/plugins/credits.c [diff]
Christian Soffke
2021-12-09 7e0e4fe888: Add setting to hide shutdown message

Also keeps display from lighting up before shutdown, which reduces distractions, especially at night and when the sleep timer is used by allowing the screen to remain dark.
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/misc.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/backlight.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/startup_shutdown_options.tex [diff]
Christian Soffke
2021-12-09 5433ea5405: random_playlist.lua make index more sparse

The name of the game here is to load the database file without taking over the audio buffer.

5mb database file will now successfully load

added an option to save playlist directly to disk and bypass the rb builtin function completely however if you choose play the playlist will be loaded back from the disk into the inram dynamic playlist
apps/plugins/lua_scripts/random_playlist.lua [diff]
William Wilgus
2021-12-09 8c88d5c5e2: playlist.c remove panic from OOM conditions

the splash suffices as warning let the calling code decide what to do with it

everything I saw calling expected failure with a -1 return so it shouldn't cause any issue removing the panic
apps/playlist.c [diff]
William Wilgus
2021-12-06 221e8752cc: plugin.h & lua add playlist_insert_playlist

having issues running lua and loading a playlist
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/lua_scripts/random_playlist.lua [diff]
William Wilgus
2021-12-05 f02cd18ad0: powermgmt: Refactor battery current estimation

Create a new battery_current() function to report the the battery's charging/discharging current. Move the old runcurrent() implementation into it and clean up some of the related defines.
firmware/export/config/iaudiox5.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/mrobe500.h [diff]
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/samsungypr1.h [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
Aidan MacDonald
2021-12-05 8a8dfa0e52: random_playlist.lua bugfix

removing trackks after create appears to cause crashes removing the playlist appears to be sufficient to prevent append to the currently saved random_playlist.m3u8

added yield on screent update, since we have no sleep this could be an issue
apps/plugins/lua_scripts/random_playlist.lua [diff]
William Wilgus
2021-12-05 0e985a4461: settings: fix a confusing indentation and add missing whitespaces
apps/settings_list.c [diff]
Wolfram Sang
2021-12-05 6ff1a935b9: powermgmt: Remove an unnecessary function

Remove battery_read_info() which is a simple wrapper function only used by debug screens. Use the polling functions directly to save a bit of code size.
apps/debug_menu.c [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/target/coldfire/debug-coldfire.c [diff]
Aidan MacDonald
2021-12-05 d93a3cac50: Use LIST_WRAP_UNLESS_HELD consistently

LIST_WRAP_ON seems to only be used in 3 places at this point.

- Keybox Plugin
- Puzzles Plugin
- (File) Properties Plugin

Switch them them over to LIST_WRAP_UNLESS_HELD as that is used everywhere else and is arguably preferable (the option to turn off list wrapping completely remains, of course).
apps/plugins/keybox.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
Christian Soffke
2021-12-05 daa3967071: Properties Plugin: Fix track or disc number not appearing
apps/plugins/properties.c [diff]
Christian Soffke
2021-12-05 81da5e6409: Restore Album Artist to the default database menu

Undo the removal as discussed in g#3947.
apps/tagnavi.config [diff]
Aidan MacDonald
2021-12-05 e3ee1908dd: powermgmt: Small cleanups to battery capacity code

- Don't include the 'battery capacity' setting unless the target allows changing it.
- Clean up the preprocessor conditionals used to check for variable battery capacity support.
- Don't use a variable for battery capacity unless it is actually needed.
apps/menus/settings_menu.c [diff]
apps/plugins/battery_bench.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/config.h [diff]
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
Aidan MacDonald
2021-12-05 204be7f637: fiiom3k: Remove unneeded powermgmt-target.h
firmware/target/mips/ingenic_x1000/fiiom3k/powermgmt-target.h [deleted]
Aidan MacDonald
2021-12-05 8eb685ffdf: Remove a couple of #ifdefs

Give iBasso DX50/DX90 empty adc-target.h headers like all the other hosted targets to avoid special cases.
apps/main.c [diff]
firmware/powermgmt.c [diff]
firmware/target/hosted/ibasso/dx50/adc-target.h [new]
firmware/target/hosted/ibasso/dx90/adc-target.h [new]
Aidan MacDonald
2021-12-05 a6e90d2355: powermgmt: Remove outdated defines

CHARGING_DEBUG_FILE is not referenced anywhere else so just remove the #ifdef block.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
Aidan MacDonald
2021-12-05 34b7b715e8: lcd-16bit: rewrite mono_bitmap_part

Rewrite the loop to update the framebuffer by rows rather than by columns. This should (a) be more efficient on the majority of targets using horizontal stride framebuffers,
(b) skimp a bit on code size and (c) avoid AddressSanitizer errors caused by reading past the end of the source buffer.
firmware/drivers/lcd-16bit-common.c [diff]
Aidan MacDonald
2021-12-04 46a8fe0b72: Add voicing to top level debug menu
apps/debug_menu.c [diff]
William Wilgus
2021-12-04 2bd0d5738f: PictureFlow: Preliminary fix for infinite loop

Supposed to prevent situations where PictureFlow enters into an infinite loop while unsuccessfully looking for a slide cache slot.

Technically more of a bandaid than a fix at this point, since it masks behavior that shouldn't occur in the first place, but at least it will make the issue essentially unnoticeable by the user for the time being.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-04 09e1cd489f: PictureFlow: Add alphabetic browsing (iPod&fiiom3k)

Offers more efficient navigation when number of albums is large. Scrolling with the touch wheel or touch strip works as before, but the prev/next buttons jump between album artists by first letter now.

- Keymap has only been adjusted for iPod and Fiio M3K at the moment.
- requires separate fix for infinite loop
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-03 7200b738a5: lua random_playlist generator

uses the database to create random playlists of specified size

with the advanced GUI you can.. set the number of songs (up to max playlist buffer) set the number of tracks before a repeat is allowed play the tracks when finished

-- fix a parsing bug where first and last entry in database were corrupted

-- Incremental loading for very large databases, allows decent speed and lower ram usage
apps/plugins/lua_scripts/dbgettags.lua [diff]
apps/plugins/lua_scripts/random_playlist.lua [new]
William Wilgus
2021-12-03 c94acc771d: PictureFlow: Read bitmaps in one go

As suggested by amachronic, this may significantly benefit performance.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-03 101d431d79: PictureFlow: Fix playback behavior after appending

- Once items have been appended, the existing playlist can not be reused when selecting an album for regular playback, since the playlist will be out of sync with the album's track list

- Don't re-shuffle playlist after appending items
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-03 9597d7256d: Fix lingering yellow from 8325b59f3b
apps/plugins/pictureflow/pictureflow.c [diff]
Solomon Peachy
2021-12-02 0f12a77d60: Fix red from 8325b59f3b
apps/plugins/pictureflow/pictureflow.c [diff]
Solomon Peachy
2021-12-02 64192cdfa8: Fix FS #13319
apps/shortcuts.c [diff]
Christian Soffke
2021-12-02 6325971451: Warn before replacing playlist when “Insert” hotkey is used

Makes warning for "Insert" hotkey consistent with that of "Insert Shuffled hotkey" (both will result in the current playlist being erased if playback is stopped).
apps/onplay.c [diff]
Christian Soffke
2021-12-02 8325b59f3b: PictureFlow: (grayscale) invert ‘Added to Playlist’ message

Feels less interruptive this way, since the background doesn't suddenly switch from dark to light.

Also moved message to separate function and added missing lcd_update() after clearing display.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-02 2ee4f50fa6: PictureFlow: whitespace fixes
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-02 0da0390b85: PictureFlow: Warn Before Erasing Playlist

Respect system-wide setting, in consistence with browser behavior
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-12-02 2512ed1c56: Make inline functions in headers 'static inline'

Future-proofing against newer versions of GCC/binutils which are stricter about the use of 'inline' functions in headers.
firmware/export/i2c-async.h [diff]
firmware/target/mips/ingenic_x1000/clk-x1000.h [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.h [diff]
Aidan MacDonald
2021-11-30 4162a46184: config: Get rid of an (incorrect) duplicate definition for USB_DESIGNWARE
firmware/export/config.h [diff]
Solomon Peachy
2021-11-28 dbb7371065: manual: fix layout of Backlight Exemptions description

Use a {description} block rather than an {itemize} since the latter doesn't look very good here.
manual/configure_rockbox/display_options.tex [diff]
Aidan MacDonald
2021-11-28 1ad60c3344: x1000-installer: remove redundant overflow check

This overflow is impossible to trigger due to the simple relationship between binary and hexadecimal numbers.
lib/x1000-installer/src/xf_flashmap.c [diff]
Aidan MacDonald
2021-11-28 c086a3386f: x1000-installer: map filenames accept only valid characters

Instead of using isgraph(), check for legal FAT32 characters excluding spaces (which are used as field separators).
lib/x1000-installer/src/xf_flashmap.c [diff]
Aidan MacDonald
2021-11-28 31242f8570: x1000-installer: add test for xf_map_parseline
lib/x1000-installer/Makefile [diff]
lib/x1000-installer/test/main.c [diff]
lib/x1000-installer/test/test_flashmap.c [new]
Aidan MacDonald
2021-11-28 4879891da3: x1000-installer: xf_stream_read_lines bugfixes

- Only treat EOF as newline if the line is non-empty to suppress a useless empty line after the end of a file.
- Deal with 0- and 1-byte line buffers safely.
- Remove whitespace stripping and comment handling which was left over from refactoring. Move it to xf_map_parse() where it belongs.
lib/x1000-installer/src/xf_flashmap.c [diff]
lib/x1000-installer/src/xf_stream.c [diff]
Aidan MacDonald
2021-11-28 420d545018: x1000-installer: tests for xf_stream.c
lib/x1000-installer/Makefile [diff]
lib/x1000-installer/test/data/lines_shuffled.txt [new]
lib/x1000-installer/test/data/lines_sorted.txt [new]
lib/x1000-installer/test/main.c [diff]
lib/x1000-installer/test/test_stream.c [new]
Aidan MacDonald
2021-11-28 b027063c03: x1000-installer: simple test suite runner
lib/x1000-installer/test/main.c [diff]
lib/x1000-installer/test/test.h [new]
Aidan MacDonald
2021-11-28 7ca8623927: x1000-installer: add test & code coverage support to makefile

Pass COVERAGE=1 to enable clang-based code coverage and pass SANITIZE=1 to enable sanitizers. 'make cov' will run the test app and show a coverage summary.
lib/x1000-installer/.gitignore [diff]
lib/x1000-installer/Makefile [diff]
Aidan MacDonald
2021-11-27 06423cab58: x1000-installer: Initial commit of new framework

This is a new flash installer framework for the X1000 targets.

A bunch of this code is *UNTESTED* but there is an external test harness which allows the library to be built and tested on a PC.

Once tests are written and the bugs are ironed out this framework will replace the existing installer code.

New features:

- Update tarballs are MD5-checksummed to guarantee integrity.
- The flash map is no longer fixed -- updates are self describing and carry a map file which specifies the areas to update.
- Can take full or partial backups with checksums computed on the fly.
- Supports an additional verification mode which reads back data after writing to ensure the flash contents were not silently corrupted.
lib/x1000-installer/.gitignore [new]
lib/x1000-installer/Makefile [new]
lib/x1000-installer/SOURCES [new]
lib/x1000-installer/include/xf_error.h [new]
lib/x1000-installer/include/xf_flashmap.h [new]
lib/x1000-installer/include/xf_nandio.h [new]
lib/x1000-installer/include/xf_package.h [new]
lib/x1000-installer/include/xf_stream.h [new]
lib/x1000-installer/include/xf_update.h [new]
lib/x1000-installer/src/xf_error.c [new]
lib/x1000-installer/src/xf_flashmap.c [new]
lib/x1000-installer/src/xf_nandio.c [new]
lib/x1000-installer/src/xf_package.c [new]
lib/x1000-installer/src/xf_stream.c [new]
lib/x1000-installer/src/xf_update.c [new]
lib/x1000-installer/test/main.c [new]
lib/x1000-installer/test_lib/core_alloc.c [new]
lib/x1000-installer/test_lib/core_alloc.h [new]
lib/x1000-installer/test_lib/fakenand.c [new]
lib/x1000-installer/test_lib/file.c [new]
lib/x1000-installer/test_lib/file.h [new]
lib/x1000-installer/test_lib/md5.c [new]
lib/x1000-installer/test_lib/md5.h [new]
lib/x1000-installer/test_lib/nand-x1000.h [new]
lib/x1000-installer/test_lib/pathfuncs.c [new]
lib/x1000-installer/test_lib/pathfuncs.h [new]
lib/x1000-installer/test_lib/strlcpy.c [new]
lib/x1000-installer/test_lib/strlcpy.h [new]
lib/x1000-installer/test_lib/system.h [new]
lib/x1000-installer/x1000-installer.make [new]
Aidan MacDonald
2021-11-27 98f1271aec: x1000: Fix AIC I2S divider clamping with EXCLK source
firmware/target/mips/ingenic_x1000/aic-x1000.c [diff]
Aidan MacDonald
2021-11-27 f1215a338b: uisimulator: remove an unused file

Appears to be a holdover from archos.
uisimulator/battery.c [deleted]
Aidan MacDonald
2021-11-27 9eaa14dc02: usb-designware: fix setup packet error handling

This handles the case where the host sends a new setup packet in the middle of an ongoing control transfer.
firmware/drivers/usb-designware.c [diff]
Aidan MacDonald
2021-11-27 fd50baa23f: PictureFlow: Reversible and interruptible animations

Makes PF usable on older devices with few FPS, and makes it quicker to navigate on current devices.

- PF_BACK while zooming in to zoom out again
- PF_SELECT or PF_PREV/PF_NEXT while zooming in to skip animation

- PF_BACK while zooming out to skip animation
- PF_PREV/PF_NEXT while zooming out to skip animation + scroll
- PF_SELECT while zooming out to zoom in again
- PF_CONTEXT while zooming out to skip animation and append

- PF_CONTEXT while scrolling to append
- PF_SELECT while scrolling to zoom in
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-11-27 e4d8431211: Update microtar users to new library API
firmware/target/mips/ingenic_x1000/installer-x1000.c [diff]
rbutil/jztool/src/x1000.c [diff]
Aidan MacDonald
2021-11-27 c1709e3194: microtar: Update to latest upstream commit

This is a major overhaul of the library with some API changes and ease of use improvements, particularly for creating new archives.

The updated functionality is intended to support a new X1000 installer framework.
lib/microtar/.gitignore [new]
lib/microtar/LICENSE [diff]
lib/microtar/Makefile [new]
lib/microtar/README.md [diff]
lib/microtar/README.rockbox [new]
lib/microtar/mtar.c [new]
lib/microtar/src/microtar-rockbox.c [diff]
lib/microtar/src/microtar-rockbox.h [new]
lib/microtar/src/microtar-stdio.c [diff]
lib/microtar/src/microtar-stdio.h [new]
lib/microtar/src/microtar.c [diff]
lib/microtar/src/microtar.h [diff]
Aidan MacDonald
2021-11-25 4052a9ddcf: Manual: Update Metadata limitations

Limit for devices with more than 8MB of memory had previously been increased from 300 to 500 bytes for individual fields, and to 1800 from 900 bytes for buffer containing all fields.

See a8846e3
apps/features.txt [diff]
manual/appendix/file_formats.tex [diff]
Christian Soffke
2021-11-25 871572b6c3: touchscreen: improved pixelwise scrolling in lists

Scrolling via the scrollbar is now a bit smoother -- it's now drawn pixelwise, and dragging it will scroll the list pixelwise instead of rigidly snapping to items.

Several other general UX issues were fixed:

- List and scrollbar now occupy the full viewport height, to maximize use of screen space.
- Fixed issue with last item in the list suddenly appearing or disappearing while scrolling.
- Prevented scrolling into blank space after the last item.
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
2021-11-24 44acbc6629: Shanling Q1: enable multi-touch reporting

The FT6x06 driver used for the Shanling Q1's touchscreen has been extended to report more than one touch point. It can also return the gesture detected by the controller, but this doesn't seem to report anything useful on the Q1.

Multi-touch is only useful in 3x3 grid mode since the Rockbox button API cannot report more than one touch point.

The FiiO M3K uses the same driver so it's been updated to the multi-touch API, but functionality is unchanged.
firmware/drivers/ft6x06.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
firmware/export/ft6x06.h [diff]
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/button-shanlingq1.c [diff]
Aidan MacDonald
2021-11-23 b39acee3ab: rb_info plugin and button,action+context name helper

rb_info is just a test plugin

just some info from the running rockbox install

the real star here is the generator scripts to make actions_helper.c and button_helper.c
apps/action.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/action_helper.c [new]
apps/plugins/lib/action_helper.h [new]
apps/plugins/lib/action_helper.pl [new]
apps/plugins/lib/button_helper.c [new]
apps/plugins/lib/button_helper.h [new]
apps/plugins/lib/button_helper.pl [new]
apps/plugins/plugins.make [diff]
apps/plugins/rb_info.c [new]
William Wilgus
2021-11-22 3d07ec46ee: jz47x0: Minor code quality improvements in the jz47xx USB drivers

* Replace magic nubmers with #defined constant
* Tweak some logf messages

No functional changes!
firmware/export/jz4760b.h [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
Solomon Peachy
2021-11-22 5bd9ed801f: Fix: PictureFlow splash() crash on grayscale targets

On targets where the grayscale framework is used, splash() won't work (and may crash) if the overlay is not switched off first. This is not reproducible in the simulator.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-11-22 f9ce8720c4: Fix: PictureFlow crashes

- After appending albums, when memory had been borrowed from the buflib buffer by shifting memory up using buflib_buffer_out() in create_track_index(), memory was later not shifted down using buflib_buffer_in() (the latter was only called after displaying the track list).

- The picture loading thread was able to allocate memory from the buflib pool while the main thread was moving the buffer around. Slide loading will now be paused before shifting operations, and continued afterwards.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-11-21 3f966b2aa4: touchscreen: make quickscreen easier to use

In absolute pointing mode, the quickscreen now accepts a touch anywhere in the middle third of the screen edge to trigger an item, and pressing anywhere else on the
'grid' will exit -- the same as how 3x3 mode works.

Previously it required a touch inside the text viewport to trigger an item, and exited after any touch outside the viewports. This made it very difficult to use since the text viewports are too small to reliably touch.
apps/gui/quickscreen.c [diff]
Aidan MacDonald
2021-11-21 bff63a4f90: touchscreen: change odd sentinel value for time of last touch

Using tick 0xffff does not make any sense, use -1 instead.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
firmware/drivers/button.c [diff]
firmware/export/button.h [diff]
Aidan MacDonald
2021-11-21 7e428ad190: touchscreen: force 3x3 mode in the keyboard

In absolute pointing mode the keyboard is virtually unusable since the keys are too tiny (just 8x6). There are other issues too: for example putting the keys on top doesn't make sense on touchscreens and there is a lot of empty space in between keys that serves no real purpose.

Until these issues can be addressed properly simply force 3x3 mode when in the keyboard.
apps/recorder/keyboard.c [diff]
Aidan MacDonald
2021-11-21 ad66c3b807: touchscreen: use repeat acceleration for button input

Touch devices have physical buttons too, and these should be subject to repeat acceleration. That feature was disabled for the sake of better touch event responsiveness (apparently).

So, re-enable the acceleration feature & add a special case to exempt BUTTON_TOUCHSCREEN from acceleration.
firmware/drivers/button.c [diff]
Aidan MacDonald
2021-11-21 990c543ebc: Revert "Pictureflow: Update for tag_virt_canonicalartist."

This reverts commit 60125f6bc987f4e234610f3e23a0e45e5d9b6d6e.

Reason for revert: See g#3947.
apps/plugins/pictureflow/pictureflow.c [diff]
James Smith
2021-11-21 a14347a6b3: quickscreen: fix non-intuitive behavior of top/bottom items

The behavior of the top/bottom items is not intuitive when used with settings like volume or brightness -- pressing up will actually *decrease* the setting, and down will increase it. This patch inverts the direction, so the top item will increase the setting.

The reason for this is that historically, the quickscreen seems to have had only 3 directions -- left, right, and bottom. Bottom therefore selected the next value, and when top was introduced it selected the previous value.

The counter-intuitive nature of this was later reported as a bug on the Fuze V2 and got an incorrect fix (commit 2271995517) under the assumption that ASCENDING_INT_SETTINGS was the issue.
apps/gui/quickscreen.c [diff]
Aidan MacDonald
2021-11-20 16a71a19a8: debug_menu: add format specifier for seconds in RDS timestamp

Add the 6th format specifier for the 6th parameter and show seconds, too. Most radio stations will update once per minute only, but still...
apps/debug_menu.c [diff]
Wolfram Sang
2021-11-18 336ea51af6: WIP: Samsung YPR0/1: switch to generic SI47xx polling

Should work(tm). But I don't have the hardware, so it needs to be tested.
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/samsungypr1.h [diff]
firmware/target/hosted/samsungypr/radio-ypr.c [diff]
Wolfram Sang
2021-11-18 de0346065b: Sansa Clip+: add RDS support

Based on a patch by Amaury Pouly which was based on a patch from Ryan Hitchman.

I mainly moved the code for polling into the tuner driver so it can be reused by other targets. I added the CONFIG parameter for the polling frequency (in ticks) to save energy. Also, I did some minor cleanups.
firmware/drivers/tuner/si4700.c [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/si4700.h [diff]
firmware/target/arm/as3525/fmradio-i2c-as3525.c [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
Wolfram Sang
2021-11-18 701d4ba77e: x1000: Merge makefiles used for the bootloader

All three X1000 native targets turned out to have a very similar boot configuration and used a nearly identical makefile. Eliminate this duplication by moving the logic into the main makefile.
firmware/target/mips/ingenic_x1000/erosqnative/boot.make [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/boot.make [deleted]
firmware/target/mips/ingenic_x1000/shanlingq1/boot.make [deleted]
firmware/target/mips/ingenic_x1000/x1000boot.make [diff]
tools/configure [diff]
Aidan MacDonald
2021-11-14 6e61e6f0c8: usb_core: don't buffer control request unnecessarily

Due to how the old control request API worked, the request pointer (and the pointed-to contents) passed by the driver must remain valid for the lifetime of the request.

The buffered copy wasn't used consistently anyway, so it should be safe to just get rid of it.

(This only affects the old API compatibility layer.)
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-11-13 f8810be6de: usb_core: More legacy control API fixes

In the old API, usb_core_transfer_complete() would ignore any completions on EP0. The legacy control API will also ignore most completions on EP0, but it only did so after filling in the completion event.

If the driver submits a spurious completion on EP0, then this could clobber a previously queued completion event.

Fix this by deciding whether to ignore the completion
*before* modifying the event data.
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-11-13 a4e422db9e: Stop audio before applying skin

Should prevent a delay, dropouts and memory corruption that can occur when applying a skin while music is playing
apps/gui/skin_engine/skin_engine.c [diff]
Christian Soffke
2021-11-13 11ddc6cf1c: announce_status Fix USB fall through and usb on plugin start

When running and USB plugged announce status ack'd the USB and then un intentionally fell through to EV_EXIT this caused the thread to exit but not the TSR hook

Now: plugin keeps track of usb status and doesn't announce till usb is unplugged again on unplug the start-up beep is played to announce its presence

announce_status on startup blocks usb since USB handling is done in the thread that hasn't started yet Now: don't start if USB is plugged

Plugin now beeps if it couldn't play the announcement excpept for missing voice file unfortunately
apps/plugins/announce_status.c [diff]
William Wilgus
2021-11-12 59ef877c94: x1000: delay power thread until valid battery read

Appears to return 0 until the axp has (presumably) completed its first real measurement.

Note about erosq: keep the power_inint() delay large to ensure nothing breaks in the bootloader for the time being.
firmware/powermgmt.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
2021-11-12 ee27ba416f: uisimulator: add keyboard mappings for M3K scrollstrip
uisimulator/buttonmap/fiio-m3k.c [diff]
Aidan MacDonald
2021-11-11 fbf83dc4ce: Add setting for disabling wrap-around lists

Allows user to decide whether scrolling lists will wrap around to the opposite end after the first or last item has been reached.
apps/gui/list.c [diff]
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/recorder/keyboard.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
Christian Soffke
2021-11-11 30a23fdd6d: folder_select.c move to plugin as db_folder_select

handles the folder selection for autoresume paths and database paths

folder_select uses the pluginbuf to build the directory tree hopefully having it as a plugin will make it stop corrupting TSR plugins like battery_bench and announce_status

I left the original include and source in the gui directory for now there are currently no other users..
apps/menus/settings_menu.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/db_folder_select.c [new]
William Wilgus
2021-11-11 cf009b4cbb: pitchscreen make it a plugin

full commandline parsing
-has pitch, speed, time_stretch
/* pitch_screen
* accepts args -q, -g, -p=, -s=, -k=; (= sign is optional)
* -q silences output splash
* -g runs the gui (Runs immediately)
* -p100 would set pitch to 100%
* -s=90 sets speed to 90% if timestrech is enabled
* -k=true -k1 enables time stretch -k0 -kf-kn disables
*/
apps/gui/pitchscreen.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
apps/plugins/pitch_screen.c [new]
William Wilgus
2021-11-11 67fb558c89: as3525: debug: use 'kHz' where applicable instead of "MHz" or "KHz"
firmware/target/arm/as3525/debug-as3525.c [diff]
Wolfram Sang
2021-11-10 eb4455b00b: manual: add space after \ActionFMPreset
manual/main_menu/fmradio.tex [diff]
Wolfram Sang
2021-11-10 e6313201c1: Playback: Skip invalid entries from playlist

Reverts to the behavior pre-commit dfff938 with the additional change that it will not skip the last entry.
apps/playback.c [diff]
Christian Soffke
2021-11-10 ce18e13504: Manual: add Single Mode to config file options
manual/appendix/config_file_options.tex [diff]
Christian Soffke
2021-11-10 a7d09f8104: PictureFlow: remember inspected album artwork

Each time PictureFlow was launched, it would rebuild the album artwork cache from the beginning.

Depending on the number of albums, this could take a while and resulted in choppy scrolling.

PictureFlow will now remember how many albums have been inspected already, and only rescan and write new artwork when the album index cache gets updated or rebuilt.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
2021-11-10 687096e3f5: Fix: Shortcuts Menu data loss & crash

- Shortcuts Menu would delete SHORTCUT_TIME shortcuts when deleting any other shortcut.

- Shortcuts would crash or show wrong number of items after deleting a shortcut and then launching a shortcut when simplelist_show_list was executed again.
apps/shortcuts.c [diff]
Christian Soffke
2021-11-10 9ee321cf90: ErosqNative: increase battery stabilization delay again

Hopefully 250 is long enough for any devices out there!
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
2021-11-10 58462184d1: folder_select.c partial rewrite -- remove static, add full notification

| with some code refactoring we can eliminate the static char buffer in get_full_path()

I'm guessing making the functions recursive prompted the static buffer I don't see any reason we can't just pass the same buffer
| During tested I noted failure after buffer was full
-- splash added for buffer full notification

added some logic to not add partial entries and try to find a
| selected item that will fit in the remaing buffer
------------------------------------------------------------------------

While looking through the source I noticed a few potential pitfalls with the current code.

Namely the stack allocated temporary buffer sized to setting_len.

I also noted the rigid vect[32] with the timeless --
/* 32 separate folders should be Enough For Everybody(TM) */ and decided to make it a bit more robust

The saved items are hashed with crc32 on all the paths and a hashed_len is kept to aid in the buffer full message before the user actually goes to save the changes
(assuming they even get the message)

In the old code, buffer might be the same since it ran out of space and didn't get their later selections

the hashed_len could easily be turned into a way to get a needed buffer size as well for someone in the future just pass a really large maxlen

I made get_full_path non recursive since it liked to blow the stack while embedded in all the other recursive calls making it a pain to debug
(the real reason the buffer was static?) traverse first from the current folder to root mutating the parent pointers to point at the previous child next traverse back to the folder unmutating & taking names on the way

Folder depth is now uint16 65535 levels is probably excessive children_count is also uint16 as well I made the first folders below root '/' stay below root instead of shifting since the horizontal real estate is limited

slightly smaller than it began but hopefully faster & more reliable
apps/gui/folder_select.c [diff]
William Wilgus
2021-11-09 b14df9077f: 2048 plugin: Fix disappearing numbers (FS #13303)
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/_2048_tiles.26x26x2.bmp [new]
Christian Soffke
2021-11-09 7af98ce6bb: usb: Fix possible SET ADDRESS data corruption

The address from the packet needs to be saved before sending the response -- after the response the request being pointed to could get overwritten. This used to be done correctly but I unintentionally broke it when updating the handler to the new control request API.
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-11-08 9f1cab154c: lcd-16bit-common move bugfix to sim only

Ive seen no ill effects having this disabled on target so limit it to the sim to stop Address Sanitizer from dumping on the extra byte read. the bad data is never used AFAICT since the loop ends
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
2021-11-08 8c954c68e5: usb: Attempt to fix race condition in compatibility layer

Because usb_core_legacy_control_request() is called by an interrupt handler the global variables used to track the current control request at the very least need to be volatile.

It might also be necessary to disable IRQs but I'm not sure of that.
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-11-08 aed113042d: RFC settings & nvram.bin save setting to tmp file save old

save to a .tmp file on save and rename on next load

I think this should pretty minimally invasive as the same file still gets overwritten in subsequent attempts until it is loaded again

the save path is still static so it won't cause issues holding up shutdown.

load might be a bit slower with the searching for tmp+current file and renaming them

Plus there is now a backup of your last settings file
apps/settings.c [diff]
William Wilgus
2021-11-08 25941d5e0c: fiiom3k (keymap): Allow scrolling up/down in keyboard context
apps/keymaps/keymap-fiiom3k.c [diff]
Christian Soffke
2021-11-07 f07bacac9e: plugin_screen don't save settings on every plugin execution

we shouldn't need to save the last_screen unless the plugin were to bypass the normal shutdown procedure

if its a crash do we really want to resume the plugin? its it is intentional save the settings prior.
apps/root_menu.c [diff]
William Wilgus
2021-11-07 cfbc1cfce1: Shortcuts, allow plugins to run through inbuilt file browser

since the plugin browser now exits before running plugins it has already loaded the dest data for the plugin the plugin will be run from the root menu with the open_plugin run key

BUT, since the calls originated from the shortcuts menu it overwrites the run key with its own this patch allows the shortcuts menu to overwrite the dest key as well so it can run the loaded plugin
apps/root_menu.c [diff]
William Wilgus
2021-11-07 1d67f83c58: root_menu.c fix recent regression for shortcuts add resume for plugins

recent changes broke shortcuts when they originated from the root menu

I mistakenly thought GO_TO_ROOT only happened at start and otherwise was GO_TO_PREVIOUS

this commit also adds a few missing features for Start In Previous to resume the last plugin running at shutdown

Additionally GO_TO_ROOT now overwrites the global last_screen so you can return to the main menu on next startup
apps/open_plugin.c [diff]
apps/root_menu.c [diff]
William Wilgus
2021-11-05 13ac485625: Add single playback mode
(FS #482)
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/hebrew.lang [diff]
apps/menus/playback_menu.c [diff]
apps/pcmbuf.c [diff]
apps/playback.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
Moshe Piekarski
2021-11-03 22c2e0a7c2: Fix: Reset onplay-context for playlist viewer

The onplay-context was previously not reset when using the playlist viewer, which led to a bug if onplay() was last called in the context of the database. If you then tried to insert songs into a dynamic playlist using the playlist viewer, a selected track from the database would be picked, instead of one from the displayed playlist, due to special behavior of add_to_playlist() within the database context.
apps/onplay.c [diff]
Christian Soffke
2021-11-03 5e663f0420: xduoox3ii: Ignore the remote events when headphones aren't plugged in

This prevents the actual insertion/removal from triggering false events
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2021-11-01 2731144094: exit file browser before running plugins

now that the plugin browser is resumable exit it before running plugins

this causes a problem with the open plugin shortcuts that call other plugins but its now handled in count limited loop so plugins can run plugins in a chain

and overall with less overhead too..

the problem remaining -- the plugin exits on USB, returns to ROOT

the browser resumes the directory next time you select plugins making for an unwanted auto return
apps/filetree.c [diff]
apps/root_menu.c [diff]
William Wilgus
2021-11-01 684565b8f3: USB fix red for device without HAVE_USB_POWER again.
firmware/usb.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
2021-10-31 d72a0ed65d: Use USB events for storing plugin_menu state

use usb connected callback to cancel menu reentry after USB plug/unplug
apps/menus/plugin_menu.c [diff]
apps/tree.c [diff]
firmware/usb.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
2021-10-31 7a6737f471: USB Events fix red on devices without HAVE_USB_POWER
firmware/usb.c [diff]
William Wilgus
2021-10-31 894a9d9063: USB add Insertion and Extraction callback events

We have this nice event library laying around probably a few more places we could use event callbacks
firmware/export/events.h [diff]
firmware/usb.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
2021-10-29 0b1c05db40: Have ACTION_TREE_ROOT_INIT cause ACTION_STD_MENU

So that a “scroll left” button can be repurposed for returning to the main menu when there is no existing menu button mapping.
apps/gui/list.c [diff]
Christian Soffke
2021-10-29 139d447c6a: fiiom3k: Modified keymap

see https://forums.rockbox.org/index.php/topic,52917.msg249425.html#msg249425
apps/keymaps/keymap-fiiom3k.c [diff]
Christian Soffke
2021-10-29 dc24a18cef: PLUGINBROWSER make resumable

make the plugin browser remember the last item between invocations

this has bugged me for the longest time dealing with the plugin_menu

Fix a very old bug fix for reloading lang strings in the lang menu
FS #8117, sending multiple ENTER_MENU_ITEM callbacks from different areas of the code makes it hard to keep track of where your callback is originating
apps/menu.c [diff]
apps/menus/plugin_menu.c [diff]
apps/root_menu.c [diff]
apps/tree.c [diff]
William Wilgus
2021-10-28 8ee24d8cb4: onplay calls plugins to run other plugins
apps/onplay.c [diff]
apps/tree.c [diff]
William Wilgus
2021-10-27 f1ef5ab8a6: menu.c do_menu code cleanup

no functional changes here just removal of cruft
apps/menu.c [diff]
William Wilgus
2021-10-24 1cec2c7a73: root_menu fix red for devices with RTC_ALARM but no tuner or recording
apps/root_menu.c [diff]
William Wilgus
2021-10-24 3e10ecb82a: root_menu.c code clean up -- stir the ifdef mess?
apps/root_menu.c [diff]
William Wilgus
2021-10-23 36d319b084: Open Plugins Ignore hash for lang Ids

no need to look up a hash when we have another searchable field remove some un-needed checks
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
William Wilgus
2021-10-23 789b2e089e: plugin.h change plugin_open() path and parameter to const

it doesn't modify the args..
apps/plugin.c [diff]
apps/plugin.h [diff]
William Wilgus
2021-10-22 f4c7dc933d: lua add ability to pass PLUGIN_ ret vals with os.exit() + add defines
apps/plugins/lua/rbdefines_helper.pl [diff]
apps/plugins/lua/rocklua.c [diff]
apps/plugins/lua_scripts/return2WPS.lua [new]
William Wilgus
2021-10-21 1697b13693: whitespace fixes
apps/bookmark.c [diff]
apps/cuesheet.c [diff]
apps/gui/option_select.c [diff]
apps/menu.c [diff]
apps/playlist_viewer.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/main_menu_config.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/tree.c [diff]
manual/appendix/config_file_options.tex [diff]
Christian Soffke
2021-10-21 cf96a4d386: file tree filetype_list_viewers exit from list before execution

no need to do a callback just to exit the list right after executing a viewer plugin
apps/filetypes.c [diff]
William Wilgus
2021-10-21 af573708ed: extend filetype_get_plugin() search for viewer by fileext

I noticed the way filetree switch was modified for the lua (and then) opx and open plugin viewers since builtin files are assumed to be handled in the filetree switch what if instead filetype_get_plugin() could search the available viewers

this could probably be extended further with selectable defaults
apps/filetree.c [diff]
apps/filetypes.c [diff]
William Wilgus
2021-10-20 9878226e4d: filetree.c move static and stack allocated buffers around it makes more sense to make the main buffer static and make the second (infrequently needed) buffer as stack allocated
apps/filetree.c [diff]
apps/filetypes.c [diff]
apps/filetypes.h [diff]
William Wilgus
2021-10-19 e1553d860d: Open_Plugin add checksum on struct offsets

Adding a checksum over the struct offset will allow checking for compatibility across machines rather than using packed structs to ensure compability

For any file created by the user from the device this isn't really a concern

But for files between machines, across installs (sim v device), possibly even across compilers this at least will alert the user rather than returning junk data
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-10-18 0f68866ae5: fiiom3k: bump power on delay to 200ms

Needed due to a report that 80ms was not working.
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
2021-10-18 957add9d75: fiiom3k: adjust power on delay to 80ms

OST timer fix (7a5130a277) causes a boot failure on some units, the battery voltage reading needs more time to stabilize.
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
2021-10-16 6253cdebed: ErosQNative: Fix mdelay calls due to g3859

The battery stabilization delay call seems to need to be about 170 at minimum now, let's do 190 for safety (+20ms).
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
2021-10-16 7a5130a277: x1000: fix broken OST2 timer prescaler

It turns out the prescaler fields in OST_CTRL are 2 bits wide, not 3. The programming manual (as usual) is ambiguous and its diagram shows 2-bit wide fields, but the bit positions in the text give a 3-bit wide field. Ingenic's Linux code and my own testing shows that they are, in fact, 2 bits wide.

This caused the OST2 divisor to be 16 instead of 4; the OST1 divisor was correct. This means that all udelay/mdelay calls took 4x longer than they should've. After this change the OST2 prescaler will be 4, as intended, and udelay/mdelay calls will wait for the intended duration.
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/x1000/ost.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
2021-10-16 bf54002bc1: Fiio M3k UI Simulator: Fix upside-down mapping for volume buttons
uisimulator/buttonmap/fiio-m3k.c [diff]
Christian Soffke
2021-10-16 d085d01f5e: x1000: enable DMA for USB driver

This boosts USB transfer performance a bit, ~10% for reads and
~25% for writes, for large-ish file transfers. Rockbox is still around 33-50% slower than the OF.
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
Aidan MacDonald
2021-10-16 4fc37eb47f: usb-designware: port to new USB API

List of all platforms using this driver:

- Sansa Clip+ (tested, works)
- Sansa Clip v2 (untested)
- Sansa Clip Zip (tested, works)
- Sansa Fuze v2 (untested)
- iPod 6G (untested)
- iPod Nano 2G (untested)
- FiiO M3K (tested, works)
- Shanling Q1 (tested, works)
- Eros Q (tested, works)
firmware/drivers/usb-designware.c [diff]
firmware/export/config.h [diff]
firmware/export/usb-designware.h [diff]
Aidan MacDonald
2021-10-16 24294bda15: usb: ensure RX buffers are a multiple of the packet size

When performing an OUT transfer which is not a multiple of the max packet size, the last packet of the OUT transfer should be a short packet. However, there's no guarantee the host sends the expected amount of data in the final packet.

The DWC2 USB controller handles this case by accepting any size packet and copying it out to memory. So if the packet is bigger than expected, it'll overrun the caller's buffer and Bad Things will happen.

The USB 2.0 spec seems to endorse this behavior. Section 8.5.1 says "an ACK handshake indicates the endpoint has space for a wMaxPacketSize data payload." So it is possible that other USB controllers share the DWC2's behavior.

The simplest solution is to force all USB RX buffers to be big enough to hold the transfer size, rounded up to a multiple of the max packet size. For example, a transfer of 700 bytes would require a 1024-byte buffer if the MPS = 512 bytes.
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_serial.c [diff]
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
2021-10-16 a665c1faad: usb: remove dead code in usb_storage driver
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
2021-10-16 988f244c74: usb: port usb_storage control request handling to new API
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
2021-10-16 1b2cc053d3: usb: port usb_hid control request handling to new API
firmware/usbstack/usb_hid.c [diff]
Aidan MacDonald
2021-10-16 3318ba4795: usb: port usb_serial control requests handling to new API
firmware/usbstack/usb_serial.c [diff]
Aidan MacDonald
2021-10-16 77731c3579: usb: port usb_core control request handling to new API
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-10-16 82efb1150e: usb: implement new API with legacy emulation layer

All existing USB drivers now define USB_LEGACY_CONTROL_API to enable the emulation layer.

Control request handlers will be ported in follow-up commits.
firmware/export/config.h [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-10-16 dff8320a5d: usb: add request data argument to all control request handlers
firmware/usbstack/usb_class_driver.h [diff]
firmware/usbstack/usb_core.c [diff]
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_hid.h [diff]
firmware/usbstack/usb_serial.c [diff]
firmware/usbstack/usb_serial.h [diff]
firmware/usbstack/usb_storage.c [diff]
firmware/usbstack/usb_storage.h [diff]
Aidan MacDonald
2021-10-16 b69d43c247: usb: give USB transfer completion events two data pointers
firmware/export/usb.h [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-10-16 ec164c389c: usb: introduce new control request API
docs/usb-api.md [new]
firmware/drivers/isp1583.c [diff]
firmware/drivers/m66591.c [diff]
firmware/drivers/usb-designware.c [diff]
firmware/export/usb_core.h [diff]
firmware/export/usb_drv.h [diff]
firmware/target/arm/as3525/usb-drv-as3525.c [diff]
firmware/target/arm/rk27xx/usb-drv-rk27xx.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
firmware/target/arm/usb-drv-arc.c [diff]
firmware/target/arm/usb-s3c6400x.c [diff]
firmware/target/arm/usb-tcc.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-10-16 71cc1e78fd: Open_plugins.c bugfix address of packed struct element

helpful gcc warning after g#3895 change to packed struct
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-10-16 15ee740060: Open Plugins search by langids

On language change Stored plugins may fail to run due to hashing on lang dependent string

allows searching by langid when the supplied key is LANG_PTR

Fixes error on hash flush where previous entry was not restored

Adds routine to update file in-place (for ATA targets) Other targets make a temp file to copy entries

breaking changes: ROCKBOXDIR is no longer hashed since
/.rockbox directory may soon be able to be changed packed attribute added to op data structure -- oops
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/root_menu.c [diff]
William Wilgus
2021-10-13 6fb942d8ff: skin engine - fail gracefully when %Sx is used on non lang id string

CheckWPS doesn't catch errors involving translated strings Instead of breaking old themes when the langids no long exist return "<ERR>"
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
2021-10-06 e0468074fe: ErosQNative: Remove duplicate play_last_sample() call

My brain dun goofed, oops
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
Dana Conrad
2021-10-06 c0a59b9a6a: usbstack: Revise usb string descriptor table to use enum values for indices

This makes it possible for macros of conditionally included string descriptors to get a correct index no matter what other usb drivers are enabled or disabled due to the nature behavior of enums.
firmware/export/usb_core.h [diff]
firmware/usbstack/usb_core.c [diff]
James Buren
2021-10-06 4be81c2385: x1000: tweak USB fifo sizes

The old sizes limited the number of usable endpoints and were unnecessarily large.
firmware/target/mips/ingenic_x1000/usb-x1000.c [diff]
Aidan MacDonald
2021-10-06 67d4da5342: ErosQNative: Initialize AIC FIFO to -1

Write -1 to AIC_DR to initialize the "last sample" to -1 in order to prevent power-on clicks.

It appears necessary to completely fill the FIFO, otherwise I was able to get a click out of it, however uncommon it was.

Not only does this prevent a click when first playing a song after power-on, but it also seems to prevent any click at all when powering on - previously, a small click may have been heard when first booting.
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
Dana Conrad
2021-10-06 465c216636: Fix includes in usb_class_driver.h
firmware/usbstack/usb_class_driver.h [diff]
Aidan MacDonald
2021-10-05 3ae6fbc600: x1000: default to sending 0 samples on underflow

Previously it used the last sample, which turns out to be broken. The AIC appears to send out a random non-zero sample continously after boot -- probably because the last sample is uninitialized by the hardware. Disabling playback is supposed to make it send zero samples irregardless of the LSMP bit according to the docs, but it doesn't seem to work this way.

- Change eliminates the white noise heard on the M3K after boot.
- Change has no adverse effects on the Q1.
- Leave Eros Q on the old setting since sending zeros exacerbates clicking due to DAC's automute feature.
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Aidan MacDonald
2021-10-05 fd568d90a4: m3k: don't use mixer controls for volume control

According to a forum user, there's an audible click when changing the volume between -32 and -32.5 dB with some headphones. Fix this by not (ab)using the DAC digital mixer for volume control.

The mixer only provides an extra -6 dB of hardware volume range, so the only side effect is that software volume will now kick in at -32 dB instead of -38 dB.
firmware/drivers/audio/ak4376.c [diff]
Aidan MacDonald
2021-10-04 0a1d25d27a: Sansa E200v1 Bootloader ensure USB unplug is detected
bootloader/main-pp.c [diff]
William Wilgus
2021-10-04 e6740ed562: Sansa E200v1 Bootloader add break statement to exit to load fw
bootloader/main-pp.c [diff]
William Wilgus
2021-10-04 7c67a48332: Sansa E200v1 Bootloader attempt at enabling USB in boot loader

there is a 1MB free region that is used to load the firmware but we shouldn't need that till after a USB connection

so here is my 2nd try
bootloader/main-pp.c [diff]
firmware/core_alloc.c [diff]
William Wilgus
2021-10-02 75524a7eec: Shanling Q1: default to USB force charging

Force charging must be set or the Q1 will not draw 500 mA from an AC adapter (see 0ca0940f01).
firmware/export/config/shanlingq1.h [diff]
Aidan MacDonald
2021-10-02 a62fdf4751: scroll engine, allow clipped text in viewport

loosen the requirements on the scroll viewport allow clipped text
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2021-10-02 3a89fdee96: x1000: fix hang that may occur in USB mode

Upon getting a USB reset, the USB core will update charging current by calling usb_charging_maxcurrent_change(). On all current X1000 targets this may cause a hang, since changing the charge current involves a blocking I2C transaction.

Eg. if the host issues a reset when we're already configured as part of error recovery, the change from 500 mA -> 100 mA will cause a hang.
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2021-10-02 d435bb77b5: Yes/No Screen Keymap: add fallbacks to targets lacking them

With the addition of ignoring unknown actions to the yes/no screen, several (mostly older) targets won't have keys defined to cancel out of the yes/no screen.

Adding fallbacks to standard context to correct this.

Targets: Shanling Q1 - changed, untested (doesn't appear sim has buttons mapped) Sansa Connect - changed, untested (can't figure out sim keys)

HM60x - changed, untested (sim won't build) HM801 - changed, untested (sim won't build) ihifi - changed, untested (sim won't build) MA - changed, untested (sim won't build)

M3 - changed, tested on sim X5 - changed, tested on sim MPIO HD300 - changed, sim tested MPIO HD200 - changed, sim tested (remote not tested) Vibe 500 - changed, sim tested
apps/keymaps/keymap-hm60x.c [diff]
apps/keymaps/keymap-hm801.c [diff]
apps/keymaps/keymap-ihifi.c [diff]
apps/keymaps/keymap-m3.c [diff]
apps/keymaps/keymap-ma.c [diff]
apps/keymaps/keymap-mpio-hd200.c [diff]
apps/keymaps/keymap-mpio-hd300.c [diff]
apps/keymaps/keymap-sansa-connect.c [diff]
apps/keymaps/keymap-shanlingq1.c [diff]
apps/keymaps/keymap-vibe500.c [diff]
apps/keymaps/keymap-x5.c [diff]
Dana Conrad
2021-10-01 95b10ac74e: Add ability to dump cpu boost log to disk, include thread names

0.) B 0 /rockbox/apps/main.c:405 1.) B 1 /rockbox/firmware/kernel/thread.c thread[dircache]:1508 2.) B 2 /rockbox/apps/tagcache.c:4772 3.) U 3 /rockbox/apps/tagcache.c:4793

add logic to show count after log rolls over clean-up
apps/debug_menu.c [diff]
firmware/kernel/thread.c [diff]
firmware/system.c [diff]
William Wilgus
2021-09-29 5883cb4a52: languages: Prefer the translated <dest> over a <voice> that is identical to English

A lot of our translations have voice phrases that are identical to English, even though they are translated in the display text.

In these scenarios, just use the translated text when generating the voice files. These will still be flagged as problems by the translation web site!
tools/updatelang [diff]
Solomon Peachy
2021-09-29 757766e807: languages: Prefer translated <dest> over untranslated english <voice>

When a prase is translated but the voice is not, default to using the translated phrase over the untranslated English voice
tools/updatelang [diff]
Solomon Peachy
2021-09-29 2ebe69b67a: voice: Enable nightly Serbian & Norweigan voice generation.

The general rule is that languages with at least 90% coverage are enabled.
tools/builds.pm [diff]
Solomon Peachy
2021-09-29 cb2ee6b6cb: voice_thread.c ensure cpu gets re-boosted after Q_VOICE_STOP event

when the voice system is doing queued voice clips you can get a voice_stop event which cancels the cpu boost but the quiet count was not reset to 0 next clip may play unboosted causing stuttering

just boost unconditionally on Q_PLAY it'll unboost after timeout if unneeded
apps/voice_thread.c [diff]
William Wilgus
2021-09-29 b662ff945a: Bugfix AS3525 usb driver unboosted the cpu without first boosting it
firmware/target/arm/as3525/usb-as3525.c [diff]
William Wilgus
2021-09-29 4f450b6e11: Revert "Playlist Viewer: Add file properties to playlist entry menu."

This reverts commit 67716c6b46a7780bff6b80408b3452c01bfbfdc4.

Reason for revert: Only partially working on bare-metal ports, so revert this for now.
apps/playlist_viewer.c [diff]
James Smith
2021-09-29 a7f2d1ffb4: Revert "Fix the build for 67716c6b."

This reverts commit 483563a1b2cd5d463557580498d75a693dd79077.

Reason for revert: Only partially works.
apps/playlist_viewer.c [diff]
James Smith
2021-09-29 eeacffbd15: voice: Allow voiced date format to be overridden

This adds LANG_VOICED_DATE_FORMAT, a format string with these tokens:

Y 4-digit year A Month name m numeric month d numeric day of month

The default (english) is '23 January 2013' In comparison, english-us is 'January 23 2013'
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/talk.c [diff]
Solomon Peachy
2021-09-28 70e72e01d2: talk: Add support for languages that swap the tens position in numbers

For example, English would say "231" as "two hundred thirty one" but many other languages would say "two hundred one and thirty"

So, if VOICE_NUMERIC_TENS_SWAP_SEPARATOR is not an empty string, swap the tens and ones position and use that string ("and" in the above example) as the voiced separator.
apps/lang/dansk.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/talk.c [diff]
tools/updatelang [diff]
Solomon Peachy
2021-09-28 3cc7509e81: voice: Add default presets for Danish.

(The language remains <75% translated)
tools/voice.pl [diff]
Solomon Peachy
2021-09-28 fe5c1c8126: Revert "voice_thread.c ensure cpu gets re-boosted after Q_VOICE_STOP event"

This reverts commit 4695f80230f0d3e3eb03a4d9aade5253e2d51862.

Reason for revert: Something else is unboosting the thread this is a red herring
apps/voice_thread.c [diff]
William Wilgus
2021-09-28 4695f80230: voice_thread.c ensure cpu gets re-boosted after Q_VOICE_STOP event

reset quiet counter after Q_VOICE_STOP

when the voice system is doing un-queued voice clips you can get a voice_stop event which cancels the cpu boost but the quiet count was not reset next clip will play unboosted causing stuttering
apps/voice_thread.c [diff]
William Wilgus
2021-09-26 6d98c9e6b2: ErosQ Native: Adjust battery % scale

Adjust the battery scale to be a little better. I've set the 100% (discharge) point to be where the battery sags to when it is done charging but still plugged in.

Not quite sure how best to set the charge scale, it's just equal to the discharge scale for now.
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
2021-09-26 38b2648f48: win32: Add a stub for os_modtime() to make sim builds happy
firmware/target/hosted/filesystem-win32.c [diff]
Solomon Peachy
2021-09-21 412e76b487: configure: --no-ccache must disable CCACHE for $HOSTCC too!

Accomplish this by setting CCACHE_DISABLE=true
tools/configure [diff]
Solomon Peachy
2021-09-20 672bbe434b: usb: rename usb_drv_recv() to usb_recv_recv_nonblocking()

IMHO the current name is somewhat misleading:

- usb_drv_send() is blocking and we have usb_drv_send_nonblocking() for the non-blocking case. This inconsistent naming can only promote confusion. (And what would we call a blocking receive?)

- Other hardware abstraction APIs in Rockbox are usually blocking: storage, LCD, backlight, audio... in other words, blocking is the default expected behavior, with non-blocking calls being a rarity.
firmware/drivers/isp1583.c [diff]
firmware/drivers/m66591.c [diff]
firmware/drivers/usb-designware.c [diff]
firmware/export/usb_drv.h [diff]
firmware/target/arm/as3525/usb-drv-as3525.c [diff]
firmware/target/arm/rk27xx/usb-drv-rk27xx.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
firmware/target/arm/usb-drv-arc.c [diff]
firmware/target/arm/usb-s3c6400x.c [diff]
firmware/target/arm/usb-tcc.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
firmware/usbstack/usb_core.c [diff]
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_serial.c [diff]
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
2021-09-20 99f333c64f: usb_hid: fix accidental fallthrough

Successful SET REPORT requests would spuriously fail because of the fall through to GET REPORT.
firmware/usbstack/usb_hid.c [diff]
Aidan MacDonald
2021-09-20 483563a1b2: Fix the build for 67716c6b.
apps/playlist_viewer.c [diff]
James D. Smith
2021-09-20 0ca0940f01: Make USB Charging default value configurable per device

A reasonable default assumption for a user would be that they can plug their device into a USB AC adapter and it will charge with as much current as it reasonably can. With the previous default, an AC adapter will only do 100mA, basically a trickle charge.

Make this configurable default per-device, so as not to break old devices without testing.

Define TARGET_USB_CHARGING_DEFAULT to USB_CHARGING_FORCE to use the new default.

Tested on both erosQ Native and M3K.
apps/settings_list.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
Dana Conrad
2021-09-20 5765deb08e: Add Fabrice Bellard to the CREDITS.
docs/CREDITS [diff]
James D. Smith
2021-09-20 760277e096: Dir cache: Fix resume of relative path playlists.

Slightly modified from original patch by Fabrice Bellard.
apps/playlist.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
James D. Smith
2021-09-20 67716c6b46: Playlist Viewer: Add file properties to playlist entry menu.
apps/playlist_viewer.c [diff]
James D. Smith
2021-09-19 5312fe6bda: FS13255: Partial update of Hungarian Translation (Gergely Békési)

(plus a lot of patch rebaseing by myself)
apps/lang/magyar.lang [diff]
Solomon Peachy
2021-09-18 60125f6bc9: Pictureflow: Update for tag_virt_canonicalartist.
apps/plugins/pictureflow/pictureflow.c [diff]
James D. Smith
2021-09-18 fb04b9b5ee: Database: Merge 'Album Artist' entry with 'Artist' entry.

-Link 'Artist' entry to canonicalartist field.
-Convert all possible users of artist field to canonicalartist.
-Tweak 'Same as current -> Artist' menu to also include albumartist field matches.
apps/tagnavi.config [diff]
James D. Smith
2021-09-18 fcb9c06852: Database: Fix tag_albumartist; new tag_virt_canonicalartist.
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
James D. Smith
2021-09-18 cb0f4599e1: FS #13304: Updated Dutch translation (Issa Beganović)
apps/lang/nederlands.lang [diff]
Solomon Peachy
2021-09-18 7bf3b08303: FS #13309: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2021-09-18 52d4339c3f: Synchronize english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-09-16 78f0dc8175: File properties plugin: Add bitrate.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 a9d3e09611: File properties plugin: Add frequency.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 41e471e50e: File properties plugin: Add disc number.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 5ddfd37a8c: File properties plugin: Add track.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 7035e2e2b9: File properties plugin: Add year.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 3acbab15a1: File properties plugin: Add composer.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 f3874bda64: File properties plugin: Add comment.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 f971200cee: File properties plugin: Add genre.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-16 7882e093b2: File properties plugin: Add album artist.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
2021-09-12 67c4231e34: iPod mini backlight initialization

Fixes backlight not turning on after booting (tested on an iPod Mini 2G).

backlight_hw_init() copied from iPod 4G.
firmware/target/arm/ipod/backlight-mini1g_mini2g.c [diff]
firmware/target/arm/ipod/backlight-target.h [diff]
Christian Soffke
2021-09-05 4ba3231457: Fiio M3K: Fix Yes/No Keymap

The yes/no keymap does not fall back to the Standard keymapping, so keys other than Back and Power do not cancel, though the prompt says "any other key".

Adding fallback to standard context as well as explicit Left, Right, Vol+ and Vol- as they're not present in the standard context.

Tested on physical m3k
apps/keymaps/keymap-fiiom3k.c [diff]
Dana Conrad
2021-09-05 17263a813b: ErosQ (both): avoid clipping due to DC offset bandaid

Set the maximum volume on both hosted and native ports to -2 dB.

Verified behavior here on native and by borkitall on irc for hosted.
firmware/export/eros_qn_codec.h [diff]
firmware/export/erosqlinux_codec.h [diff]
Dana Conrad
2021-09-04 3e52c7c734: rockboxdev: Add 'g++' to the list of required tools for building toolchains
tools/rockboxdev.sh [diff]
Solomon Peachy
2021-08-31 a8253c57dd: lib/argparse fix red
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
William Wilgus
2021-08-31 c04a944c98: lib/argparse scale decimals to int for return to user

scales the fractional portion of the parsed number by ARGPARSE_FRAC_DEC_MULTIPLIER

Example ARGPARSE_FRAC_DEC_MULTIPLIER = 10 000 meaning .0009 returns 9 , 9 / 10000 = .0009
.009 returns 90
.099 returns 990
.09 returns 900
.9 returns 9000
.9999 returns 9999
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
William Wilgus
2021-08-31 d929444a41: iPod: Fix Yes/No Keymap

Add fallback to CONTEXT_STD and add explicit Play button cancel - Play button is not present in standard context, so it won't do anything if unknown actions are ignored.

tested on ipod simulator
apps/keymaps/keymap-ipod.c [diff]
Dana Conrad
2021-08-29 c11ed99cb4: bugfix: redraw yes/no screen after a full skin update

This fixes a bug reported on IRC:

1. Set 'bookmark on stop' to 'ask' 2. Play a track from the file browser 3. Stop playback, yes/no screen briefly flashes then disappears.

The screen still handles input correctly but the prompt will not be displayed on the LCD. Long story short, get_action() can cause the skin engine to do a full redraw which cleared the screen and erased the prompt.

There is a special event, GUI_EVENT_NEED_UI_UPDATE, which the list code uses to avoid precisely this problem.

Hooking up a handler for this event and redrawing the yes/no prompt fixes the bug.
apps/gui/yesno.c [diff]
Aidan MacDonald
2021-08-28 6322e66219: Remove long-deprecated old style EQ settings

These were deprecated by 1eb17dc9f4 back in 2013 just prior to the 3.13 release. We've had 3.14 and 3.15 since then and I guess nobody will complain if we finally remove them (fingers crossed...)

Also fix a line which got missed when converting hardcoded numbers to EQ_NUM_BANDS in that commit.
apps/menus/eq_menu.c [diff]
apps/settings_list.c [diff]
Aidan MacDonald
2021-08-27 965572705b: plugin lib/arg_helper parse 'command line' args

add a helper function to allow plugins to parse the parameter string passed into plugins support included for bool, char, string and numbers+decimals
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/arg_helper.c [new]
apps/plugins/lib/arg_helper.h [new]
William Wilgus
2021-08-26 cab8cea0f0: lcd_putsxyofs 16 bit lcd_mono_bitmap_part [AS] part duex

'Bugfix' mono_bitmap_part reads ahead in the buffer, if the height is <= char bit pixels other memory gets read found with [Address Sanitizer]

also g#3332 since this is clearly a problem across the code instead place the check for height < 8 in the lcd_mono_bitmap_part function

second try places the check above the negative y offset this was causing glitches on the Q1 and likely other TS targets since a negative y was added to height it made it < CHAR_BIT setting stride = 0 even though the bitmap was >= CHAR_BIT high
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
2021-08-26 30e96a3732: quickscreen: fix EQ enable not working in quickscreen

The EQ enabled setting needs to call into the DSP core when it's changed but this was only hooked into the EQ menu. The quickscreen uses option_select_next_val() so those DSP hooks were not getting called because the setting did not have any callback defined.

It seems this bug was introduced by 362f7a3220 removing the blanket call to settings_apply(). Other settings might be affected too.
apps/menus/eq_menu.c [diff]
apps/menus/eq_menu.h [diff]
apps/settings_list.c [diff]
Aidan MacDonald
2021-08-26 b2386405b9: xduoox3: Disable bootloader USB mode entirely

It's not yet working and because all storage is removable (and the OF works fine) it's of limited utility aynway.
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
2021-08-26 93c98606f1: xduoox3: Further bootloader improvements

* Power button is what forces entry into USB mode
(can't use the other buttons due to the long SADC warmup)
* Inching closer to working USB disk mode (starts then disconnects!
bootloader/xduoox3.c [diff]
Solomon Peachy
2021-08-26 987d195134: Plugin Api add core bitmaps Fix Yellow
apps/plugin.c [diff]
William Wilgus
2021-08-26 b56372bbcb: Plugin Api add core bitmaps

share all the core icons with plugins these are all small mono icons like usb plug icon or play, fast forward, rewind icons

--include the icon_helper function
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/icon_helper.c [new]
apps/plugins/lib/icon_helper.h [new]
apps/recorder/icons.c [diff]
apps/recorder/icons.h [diff]
William Wilgus
2021-08-25 cbf1970b56: Shanling Q1: minor update to keymap

- Enable repeat for prev/next keys
- Provide a way to access the context menu using buttons
- Update the manual
apps/keymaps/keymap-shanlingq1.c [diff]
manual/platform/keymap-shanlingq1.tex [diff]
Aidan MacDonald
2021-08-25 dbd051394e: Revert "lcd_putsxyofs 16 bit lcd_mono_bitmap_part [AS]"

This reverts commit 49edfc237ba9ae27eee5e915e86989d9ee01b1da.

Reason for revert: font rendering bug, https://gist.github.com/amachronic/5fa75da280432127de4b44ee2d760281
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
2021-08-22 97b0e5b5a1: xduoox3: More minor bootloader tweaks
bootloader/xduoox3.c [diff]
Solomon Peachy
2021-08-22 d1653bc4d8: touchscreen: fix smooth scrolling in lists

This fixes those annoying jumps that happen when you hit the end of a list while scrolling.
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
Aidan MacDonald
2021-08-22 569b165cff: touchscreen: handle scrollbar properly when UI viewport is used
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
2021-08-22 a59a629514: filetypes: handle missing or empty viewers.config

We want to load builtin filetypes and other config files even if there is a problem loading viewers.config. A lot of menus expect the builtin types to be there and don't work if they're missing.
apps/filetypes.c [diff]
Aidan MacDonald
2021-08-22 d282424ef2: xduoox3: Allow user to gracefully exit USB disk mode by pressing power
bootloader/xduoox3.c [diff]
Solomon Peachy
2021-08-22 4c745fe8ac: xduoox3: A few manual improvements

* Fix a typo in a URL
* Note how to enter the OF from the bootloader
* Document how to perform a hard reset
manual/getting_started/xduoox3_install.tex [diff]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2021-08-22 7059183438: bootloader: nuke a long-unused (and broken) code block
bootloader/common.c [diff]
Solomon Peachy
2021-08-22 2c9e2db721: xduoox3: More bootloader updates

* Rework the LCD initialization a bit
* Power off after 5 seconds if we hit a fatal error
* Turn on verbose output if PLAY is held down on powerup
* Minor code style cleanups

The goal is to not perform the LCD init unless it's needed; ie only if we run into an error or enter USB mode.
bootloader/xduoox3.c [diff]
Solomon Peachy
2021-08-22 e07c460eef: xduoox3: Bootloader improvements:

* Explicitly clear the caches prior to launching the binary
* Ensure the function that launches the binary is in iram
* Re-sequenced some of the subsystem initializations
* Fixes for USB mode
bootloader/xduoox3.c [diff]
Solomon Peachy
2021-08-20 247258b9d2: manual: Don't expect first char of name in CREDITS to be ASCII.

Fixes some names not showing in the manual.

Note that there's one name left not showing due to LaTeX unicode support missing the characters.
manual/credits.pl [diff]
Dominik Riebeling
2021-08-20 356133d321: manual: Add workaround for older KOMAscript versions.

KOMAscript 3.28 changes \ifpdfoutput to \Ifpdfoutput. Add a check and redefine the new command as the old one if it's missing since only the name was changed. Not all Linux distros have a recent enough version yet.
manual/preamble.tex [diff]
Dominik Riebeling
2021-08-19 c302c157d5: peakmeter: re-enable on hosted platforms

Has been disabled since HW codec support was dropped, but works fine. Tested on Surfans F20.
apps/recorder/peakmeter.c [diff]
Ulrich Hecht
2021-08-19 0679faf65d: lib/helper add talk_val()

talk_value_decimal() replaced talk_value()
apps/plugins/announce_status.c [diff]
apps/plugins/lib/helper.c [diff]
apps/plugins/lib/helper.h [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
William Wilgus
2021-08-19 24e8fa317e: plugins trade talk_value for talk_value_decimal

talk_value is just talk_value_decimal with 0 decimals

lets add the extended function instead

static inline int talk_val(long n, int unit, bool enqueue)
{
#define NODECIMALS 0 return rb->talk_value_decimal(n, unit, NODECIMALS, enqueue);
}
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/announce_status.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/vbrfix.c [diff]
William Wilgus
2021-08-18 4cbb5b4201: x1000: trigger the virtual LED on disk activity
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.h [diff]
Aidan MacDonald
2021-08-17 3e37013218: misc.c strip_extension() cleanup

optimize + add some error checking of inputO
apps/misc.c [diff]
William Wilgus
2021-08-15 5a4cc8da3f: Drop HAVE_RTC_RAM

Only Archos players ever used this feature and it isn't implemented on any current targets.
apps/gui/wps.c [diff]
apps/main.c [diff]
apps/settings.c [diff]
firmware/export/config/android.h [diff]
firmware/export/config/cowond2.h [diff]
firmware/export/config/nokian8xx.h [diff]
firmware/export/config/nokian900.h [diff]
firmware/export/config/pandora.h [diff]
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/sansam200v4.h [diff]
firmware/export/config/sdlapp.h [diff]
Aidan MacDonald
2021-08-15 de578bde1f: Add advanced build option to omit building plugins

Compiling the plugins takes quite a long time and is unnecessary if you're only working on the core code. Having an option is nicer than having to edit the configure script by hand.
tools/configure [diff]
Aidan MacDonald
2021-08-15 cc6b036ef5: logf: Fix an incorrect fix in 835d0c737a7
firmware/logf.c [diff]
Solomon Peachy
2021-08-15 eafdba87f8: icon.c bug fix handle read errors

read errors are negative buf_sz was a unsignbed int
apps/gui/icon.c [diff]
William Wilgus
2021-08-14 2ce7c716c3: apps/open_plugins cast menu id to (void*)
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-08-14 25cebf2f85: Fix red from 04fe77a4
firmware/target/arm/pp/system-target.h [diff]
Solomon Peachy
2021-08-14 04fe77a465: Remove the (very) incomplete port for the Tatung TPJ-1102

It was barely even a stub, and hasn't seen any development since 2009
apps/plugins/blackjack.c [diff]
apps/plugins/invadrox.c [diff]
bootloader/SOURCES [diff]
bootloader/tpj1022.c [deleted]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/tatungtpj1022.h [deleted]
firmware/target/arm/pp/system-pp502x.c [diff]
firmware/target/arm/pp/system-target.h [diff]
firmware/target/arm/pp/usb-fw-pp502x.c [diff]
firmware/target/arm/tatung/app.lds [deleted]
firmware/target/arm/tatung/boot.lds [deleted]
firmware/target/arm/tatung/tpj1022/adc-target.h [deleted]
firmware/target/arm/tatung/tpj1022/backlight-target.h [deleted]
firmware/target/arm/tatung/tpj1022/backlight-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/button-target.h [deleted]
firmware/target/arm/tatung/tpj1022/button-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/lcd-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/power-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/powermgmt-tpj1022.c [deleted]
tools/builds.pm [diff]
tools/configure [diff]
utils/themeeditor/resources/targetdb [diff]
Solomon Peachy
2021-08-14 786d06742a: Remove Samsung YP-Z5 port

It has only a couple GB of onboard flash storage with no storage driver in Rockbox. It hasn't seen any meaningful development since its initial commit, it's not on the build farm, and the bootloader build is broken by other refactoring.
apps/SOURCES [diff]
apps/keymaps/keymap-ypz5.c [deleted]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/samsungypz5.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/audio-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/backlight-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/backlight-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/button-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/button-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/debug-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/fmradio-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/ftl-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/lcd-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/lcd-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/powermgmt-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/powermgmt-ypz5.c [deleted]
firmware/target/arm/imx233/touchscreen-imx233.c [diff]
tools/configure [diff]
tools/scramble.c [diff]
Aidan MacDonald
2021-08-14 62260aa705: touchscreen: Fix softlock handling

Expands upon c067b344e8. The bug mentioned in that commit affects touchscreens as well as touchpads, plus touchscreens were subject to a few other issues because 'last->tick' was not always set.
apps/action.c [diff]
Aidan MacDonald
2021-08-14 8c36d8b131: lua Fix a few potential bugs
apps/plugins/lua/lauxlib.c [diff]
apps/plugins/lua/lmathlib.c [diff]
apps/plugins/lua/lparser.c [diff]
William Wilgus
2021-08-13 aad15d5cd7: code cleanup encase ;; in brackets {;;}
apps/plugins/lua/tlsf_helper.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/test_viewports.c [diff]
William Wilgus
2021-08-13 da97524252: lua strftime fix out of scope buffer sbuf goes out of scope of the case statement
apps/plugins/lua/strftime.c [diff]
William Wilgus
2021-08-13 2df306923a: file_internal.c guard file_cache_reset() from null pointer

I feel this is probably unlikely to be called with a NULL pointer for cachep but being that we are already doing the check why not guard file_cache_reset as well
firmware/common/file_internal.c [diff]
William Wilgus
2021-08-12 6de6e1459d: Eros Q Hosted: Apply DC Bias to PCM Data

Similar to the native port, the hosted port benefits from adding a -1 dc bias to the PCM data. This prevents almost all clicking artifacts.
firmware/export/erosqlinux_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Dana Conrad
2021-08-12 235e41578b: metadata/mp3data.c init vars & add sanity checks
lib/rbcodec/metadata/mp3data.c [diff]
William Wilgus
2021-08-12 30945f1180: metadata/metadata_common.c check read for proper bytes read
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2021-08-12 f05a7a10a6: metadata/metadata_common.c WS changes
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
2021-08-12 7aa0e0a898: metadata/asf.c ensure variable init & add sanity checks
lib/rbcodec/metadata/asf.c [diff]
William Wilgus
2021-08-11 d8bec3da63: enc_config.c don't overrun mp3_enc_bitr[] array
apps/enc_config.c [diff]
William Wilgus
2021-08-11 1dd531ff03: codec_thread.c don't overrun audio_formats[] array
apps/codec_thread.c [diff]
William Wilgus
2021-08-11 e3e72d6dba: metadata/mp4.c fix small oversight / bug

didn't set the genre string to null on case entry means read failure would leave genre string indeterminate

add explicit NULL & leave genre uninitialized
lib/rbcodec/metadata/mp4.c [diff]
William Wilgus
2021-08-11 c9e9558044: metadata/mp4.c check for read errors skip buffer appropriately

WIP
lib/rbcodec/metadata/mp4.c [diff]
William Wilgus
2021-08-10 77a98ada12: Eros Q Native: Make Mute logic channel-independent

An oversight on my part meant that setting channel balance to 100% L or 100% R would mute both channels - this logic will prevent that.
firmware/drivers/audio/eros_qn_codec.c [diff]
Dana Conrad
2021-08-10 cdd1f90131: touchscreen: Respect list item selection size

Some lists have tall items that span more than one line of text, eg. the bookmark menu or ID3 tag menu. The touchscreen code didn't handle these menus correctly and touching on the lower part of a list item could select "between" two items, leading to incorrect rendering and behavior due to callers relying on the selected item being properly aligned to the selection size. Fix this by ensuring the touch code only generates properly aligned selections.
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
2021-08-10 b103b07503: touchscreen: Fix annoying bug when switching touchscreen modes

Changing the touchscreen mode in the settings menu required a reboot to fully apply because this code was trying to reapply old settings. This is a hack. IMHO to fix it properly the behavior of touchscreen mode needs to be changed so code that needs a specific mode doesn't need to twiddle global state, but that's a bigger undertaking.
apps/menu.c [diff]
Aidan MacDonald
2021-08-10 69420e796c: touchscreen: Use pointing mode in the yes/no screen

Seems to fix the unintuitive / inaccurate behavior of this screen. Rejigger the generic touchscreen keymap because the 3x3 buttons are no longer used. Also map physical keys for yes/no on the Q1.
apps/gui/yesno.c [diff]
apps/keymaps/keymap-shanlingq1.c [diff]
apps/keymaps/keymap-touchscreen.c [diff]
Aidan MacDonald
2021-08-10 a8063054f9: skin engine: handle bitmap read errors appropriately
apps/gui/skin_engine/skin_parser.c [diff]
Aidan MacDonald
2021-08-10 614b189f7a: lua rockaux.c filetol fix invalid conditional
apps/plugins/lua/rockaux.c [diff]
William Wilgus
2021-08-10 ee6b737b65: pcm_record.c iAudioM5 FixRed

Share a bit of code in order to free up iRam for the iAudio M5
apps/recorder/pcm_record.c [diff]
William Wilgus
2021-08-10 4fb5aeb096: recorder/pcm_record.c cleanup copy function

re: coverity write_write_order: In long(*s++) + *s++, s is written in *s++ and written in long(*s++) but the order in which the side effects take place is undefined because there is no intervening sequence point.
apps/recorder/pcm_record.c [diff]
William Wilgus
2021-08-09 2f0fd66e44: re-synchronize english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-08-09 e4c5b082e8: inflate: fix public function pointers
firmware/include/inflate.h [diff]
James Buren
2021-08-08 275c762bb2: As3525 wavpack_enc document some intentional switch fall through
firmware/target/arm/as3525/audio-as3525.c [diff]
firmware/target/arm/as3525/debug-as3525.c [diff]
lib/rbcodec/codecs/wavpack_enc.c [diff]
William Wilgus
2021-08-07 0a6d7abd13: metadata/asap.c consolidate read char function and check return values

and a bit of cleanup using macros to make the code easier to follow
lib/rbcodec/metadata/asap.c [diff]
William Wilgus
2021-08-07 da778a1783: metadata/asap.c WS cleanup
lib/rbcodec/metadata/asap.c [diff]
William Wilgus
2021-08-07 5311ff0173: tagcache: Don't treat tag_virt_basename as a numeric tag
apps/tagcache.h [diff]
Aidan MacDonald
2021-08-07 cf3fa437fc: Remove unhelpful unsigned casting trick
apps/plugins/imageviewer/jpeg/jpeg_decoder.c [diff]
Aidan MacDonald
2021-08-07 39fff5cb53: move PCM_NATIVE_BITDEPTH definiton into global config code
firmware/export/audiohw.h [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Solomon Peachy
2021-08-07 eeb0aaf36f: fiiom3k: Add bookmark screen keymapping

Forgot to commit this back around the time I did the manual
apps/keymaps/keymap-fiiom3k.c [diff]
Aidan MacDonald
2021-08-07 a2bbd1a549: Fix warnings from 56b0dde545

Need a default bit depth in pcm-x1000.c
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Dana Conrad
2021-08-07 56b0dde545: Higher bitdepth software volume scaling

Operates between 0 and -74 dB (mute) without issue
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Dana Conrad
2021-08-07 16b0098256: ErosQ Native: Add DC Offset to PCM data

A small negative offset seems to silence all play/pause clicking on the PCM5102A.

Also adding PCM soft muting, and muting the headphone amp when the headphones are detected as removed. This has been tested to not cause any unintended side effects on the line out.

Also confirmed the numerical dB values are (approx.) correct.
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/pcm_sw_volume.c [diff]
Dana Conrad
2021-08-07 57293f1fd9: metadata/vfx.c cleanup string and character handling
lib/rbcodec/metadata/vtx.c [diff]
William Wilgus
2021-08-07 60933d98c6: inflate: import initial module for deflate decompression

This will eventually be used by the ZIP module and other things that support DEFLATE based streams.
firmware/SOURCES [diff]
firmware/common/inflate.c [new]
firmware/include/inflate.h [new]
James Buren
2021-08-07 603e749c1d: metadata/smaf.c handle read errors
lib/rbcodec/metadata/smaf.c [diff]
William Wilgus
2021-08-07 8a8fd3d4a3: metadata/mp3data.c set data to 0 in case of read error
lib/rbcodec/metadata/mp3data.c [diff]
William Wilgus
2021-08-06 2008b7d1b0: Fix yellow from d541a72a
apps/menus/eq_menu.c [diff]
Aidan MacDonald
2021-08-06 257ba1d2e0: Fix possible negative fd in playlist.c
apps/playlist.c [diff]
Aidan MacDonald
2021-08-06 02b940396b: Be sure to wipe id3 tag after failed parse in playback.c
apps/playback.c [diff]
Aidan MacDonald
2021-08-06 d541a72a0e: Bugfixes in eq_menu.c
apps/menus/eq_menu.c [diff]
Aidan MacDonald
2021-08-06 1a9a5fc279: Fix wrong printf format in system-hosted.c
firmware/target/hosted/system-hosted.c [diff]
Aidan MacDonald
2021-08-06 b8b195a296: Fix hosted glibc backtrace

According to backtrace(3) man page, the string returned from backtrace_symbols() contains the return address so we shouldn't need to print it ourselves.
firmware/target/hosted/backtrace-glibc.c [diff]
Aidan MacDonald
2021-08-06 6b1b7b6016: Fix use of uninitialized variable in mp4 metadata parser
lib/rbcodec/metadata/mp4.c [diff]
Aidan MacDonald
2021-08-06 34fcea0b20: Fix path buffer overflow in screendump

Overflow is due to a hidden assumption in create_datetime_filename() and create_numbered_filename() where buffer must be >= MAX_PATH bytes.
firmware/screendump.c [diff]
Aidan MacDonald
2021-08-06 835d0c737a: logf: Fix two issues with logf_panic_dump()

* It had a (read) buffer overflow when dumping the stuff on the back half of the buffer
* a highly questionable code construct was nuked
firmware/export/logf.h [diff]
firmware/logf.c [diff]
Solomon Peachy
2021-08-06 da45b37fac: tools/iriver: fix resource management in encode/decode functions
tools/iriver.c [diff]
James Buren
2021-08-05 a20755e9ef: test_disk: Minor fix in an error path

...Log the variable containing the actual error
apps/plugins/test_disk.c [diff]
Solomon Peachy
2021-08-05 9f0f2c6658: metadata: Fix sign extension in get_uint64_le() routine
lib/rbcodec/metadata/metadata_common.c [diff]
Solomon Peachy
2021-08-05 566d836ac6: mikmod: Uninitialized variable used in a control flow decision
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
2021-08-05 f3010c6a8e: hosted: Fix rtc_write_datetime() error handling

(if mktime() fails, don't attempt to write its result to the RTC)
firmware/target/hosted/rtc.c [diff]
Solomon Peachy
2021-08-05 cb6b0d2c0e: disk.c ensure a valid volume is returned from get_free_volume()

volume is used for element math and indexing into buffers
-1 volume is bad
firmware/common/disk.c [diff]
William Wilgus
2021-08-05 d57900ae12: misc.c format_sound_value guard division by zero
apps/misc.c [diff]
William Wilgus
2021-08-05 848633f921: lib/skin_parser check that malloc succeeded
lib/skin_parser/skin_parser.c [diff]
William Wilgus
2021-08-05 03a6eb63f1: Simplify clamp_component

Surprise surprise: the compiler generates shorter, branch-free code if we don't try to be clever with signed/unsigned casting tricks.
apps/recorder/jpeg_common.h [diff]
Aidan MacDonald
2021-08-04 429a7e2c0a: Avoid buffer overflow when generating bookmark file name
apps/bookmark.c [diff]
Aidan MacDonald
2021-08-04 bdd9c8dfc8: plugins: Fix issues in 2048

One of these was an unintentional fallthrough -- if you said no to
'quit without saving' it would save and quit.
apps/plugins/2048.c [diff]
Aidan MacDonald
2021-08-04 005c414e5f: Document intentional fallthroughs + fix harmless unintended ones
apps/debug_menu.c [diff]
apps/gui/list.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/doom/p_ceilng.c [diff]
apps/plugins/doom/p_floor.c [diff]
apps/plugins/goban/goban.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/metronome.c [diff]
apps/plugins/mpegplayer/libmpeg2/header.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/plugins/rocklife.c [diff]
apps/plugins/rockpaint.c [diff]
apps/tagcache.c [diff]
apps/usb_keymaps.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/vuprintf.c [diff]
lib/rbcodec/codecs/liba52/downmix.c [diff]
lib/rbcodec/dsp/crossfeed.c [diff]
Aidan MacDonald
2021-08-04 ef41cc6623: Revert "rbutil: Remove done() signal from Themes Install window."

The done() signal is acutally needed to indicate the installation being finished. Fixes installation being stuck after themes install.

This reverts commit fb6840e57260b1da35924914d47731e06597afea.
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
2021-08-04 c522917644: plugins/resistor: Fix incorrect check for a valid 4th band value
apps/plugins/resistor.c [diff]
Solomon Peachy
2021-08-04 37bfcab23f: powermgmt: Clean up some convoluted #ifdefs

Makes it more explicit what code is used under which circumstances.
firmware/powermgmt.c [diff]
Solomon Peachy
2021-08-03 0d0640e57a: menu.c guard against NULL menu, list, setting pointers apps/menu.c [diff]
William Wilgus
2021-08-03 074daea51f: lua fix potential null warning

I'm not sure this would happen but I suspect its possible to get malformed data back from lineinfo as this is how the error system tracks code flow and this is a hacked add-on to allow RLE (run length encoding) of said code flow data
apps/plugins/lua/lcode.c [diff]
William Wilgus
2021-08-03 1fd190d02d: mask_select guard against null pointers
apps/gui/mask_select.c [diff]
William Wilgus
2021-08-03 36e48a8bb2: icon.c guard against negative error values bytesread is copied to an unsigned int for core_shrink
apps/gui/icon.c [diff]
William Wilgus
2021-08-03 93c9d675af: folder_select prevent directory handle leak on error
apps/gui/folder_select.c [diff]
William Wilgus
2021-08-03 429eedf49e: list-skinned.c check label pointer for validity
apps/gui/bitmap/list-skinned.c [diff]
William Wilgus
2021-08-03 382b52b120: filetypes.c filesize() guard against negative error values buffer size is copied to an unsigned int for core_alloc
apps/filetypes.c [diff]
William Wilgus
2021-08-03 1fc4a17e1c: language.c fix possible buffer overrun

ensure zero termination regardless of data read from lang file
apps/language.c [diff]
William Wilgus
2021-08-03 3b6c3d769f: open_plugins bugfix failure to save

if you added a plugin through the core settings and then used the shortcut immediately the entry would never get flushed to disk
apps/open_plugin.c [diff]
apps/root_menu.c [diff]
William Wilgus
2021-08-02 0501af8b06: metadata/flac.c fix potential buffer overrun
lib/rbcodec/metadata/flac.c [diff]
William Wilgus
2021-08-02 247731fe8c: id3tags.c check for buffer overrun
lib/rbcodec/metadata/id3tags.c [diff]
William Wilgus
2021-08-02 2346a7aa6d: playlist_catalog fix strcpy overlap, potential buffer overrun
apps/playlist_catalog.c [diff]
William Wilgus
2021-08-02 83653023d4: tagcache.c clean up
apps/tagcache.c [diff]
William Wilgus
2021-08-01 a2fd00cf38: Software Volume: Remove sample rounding
firmware/pcm_sw_volume.c [diff]
Dana Conrad
2021-07-31 ecf0d631e7: tagcache.c Fix potential buffer overruns WIP

Needs tested
apps/tagcache.c [diff]
William Wilgus
2021-07-31 7413442411: tagcache.c WS changes
apps/tagcache.c [diff]
William Wilgus
2021-07-31 fad4c75163: crc32/adler32: add full copyright notice to source files
firmware/common/adler32.c [diff]
firmware/common/crc32.c [diff]
James Buren
2021-07-30 f32fc84ef6: adler32: import adapted implementation from tinf/zlib

This adds an adapted version of the adler32 algorithm from tinf/zlib which will be necessary to support ZLIB deflate streams in the future.
firmware/SOURCES [diff]
firmware/common/adler32.c [new]
firmware/include/adler32.h [new]
James Buren
2021-07-30 ee05b8574a: playlist.c fix multitude of sins Invalid Control file on USB unplug?

failure to close file handles reading memory prior to buffer on error loop variable integer overflow on error
apps/playlist.c [diff]
William Wilgus
2021-07-30 f9c5d1fccf: open_plugin.c (CORE) File input Bugfixes

Explicitly Null terminate char fields 0 is a valid file descriptor
apps/open_plugin.c [diff]
William Wilgus
2021-07-30 ea438ee132: cuesheet.c Fix potential NULL in INDEX parsing

untested
apps/cuesheet.c [diff]
William Wilgus
2021-07-30 7318d393ea: libc: atoi() is supposed to return 0 if handed a NULL pointer
firmware/libc/atoi.c [diff]
Solomon Peachy
2021-07-25 2e9443104f: rbcodec: Fix typo in makefile

Hopefully this will fix all those random build failures.
lib/rbcodec/codecs/codecs.make [diff]
Aidan MacDonald
2021-07-25 05d4d6a4f2: Fix remaining yellow from e532714d1f
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Aidan MacDonald
2021-07-25 148fac6f34: Fix yellow from e532714d1f
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
Aidan MacDonald
2021-07-25 e532714d1f: pcm: Remove unused function pcm_play_dma_get_peak_buffer()
firmware/export/pcm-internal.h [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/arm/as3525/pcm-as3525.c [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
firmware/target/arm/rk27xx/pcm-rk27xx.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c [diff]
firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
firmware/target/hosted/android/pcm-android.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
firmware/target/hosted/maemo/pcm-gstreamer.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Aidan MacDonald
2021-07-25 77ec752248: shortcuts: fix file handle leak on OOM condition
apps/shortcuts.c [diff]
Aidan MacDonald
2021-07-24 d0536b8b6b: Fix typo in f8bbe3352c4d9f21fde892ee8b60563decfc6a14
tools/builds.pm [diff]
Solomon Peachy
2021-07-24 f8bbe3352c: rocker: First crack at manual for the AGPTek Rocker

It needs screenshots and slightly better installation instructions

Includes bits shared with other HibyOS platforms
manual/advanced_topics/main.tex [diff]
manual/getting_started/hibyos_install.tex [new]
manual/getting_started/installation.tex [diff]
manual/platform/agptekrocker.tex [new]
manual/platform/keymap-agptekrocker.tex [new]
manual/rockbox_interface/main.tex [diff]
tools/builds.pm [diff]
Solomon Peachy
2021-07-24 a0948ddfa1: Enable building the manual for the FiiO M3K and Shanling Q1

The nightly manual builds previously only included targets that were marked as "stable" -- The M3K and Q1 are not because they lack rbutil integration, but we would like to provide the manual builds regardless.
tools/builds.pm [diff]
Solomon Peachy
2021-07-24 fde6eaa8e1: Add Fiio M3K and Shanling Q1 manuals

Includes installation instructions and a description of Rockbox's limitations versus the original firmware. Some things are still missing, notably screenshots for the Q1. The M3K image also needs to be updated to include the 'select' button.
manual/advanced_topics/main.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/jztool_install.tex [new]
manual/platform/fiiom3k.tex [new]
manual/platform/keymap-fiiom3k.tex [new]
manual/platform/keymap-shanlingq1.tex [new]
manual/platform/shanlingq1.tex [new]
manual/rockbox_interface/main.tex [diff]
Aidan MacDonald
2021-07-24 42ba117952: tree.c use strlcpy to avoid buffer ovfl
apps/tree.c [diff]
William Wilgus
2021-07-23 26fd90bb49: talk.c check for proper file load

few sanity checks on voice clip loads
apps/talk.c [diff]
William Wilgus
2021-07-23 cb92280eca: usb_storage: Fix a memset in SCSI_INQUIRY that overflowed its buffer

The funny thing is that the memset() for the field in question was redundant, as the overall inquiry structure was memset(0) already.
firmware/usbstack/usb_storage.c [diff]
Solomon Peachy
2021-07-22 68294da574: Document an intentional fallthrough in the volume limit menu code
apps/menus/sound_menu.c [diff]
Solomon Peachy
2021-07-22 1fea6f4670: plugins pong, properties remove dead code
apps/plugins/pong.c [diff]
apps/plugins/properties.c [diff]
William Wilgus
2021-07-22 363f6595b4: tlsf make ~0 explicitly unsigned ~0u
lib/tlsf/src/tlsf.c [diff]
William Wilgus
2021-07-22 00129ac872: Fix battery_bench bug by using a static buffer for stack

Since battery_bench is a TSR (terminate & stay resident) plugin it cannot allocate the plugin buffer -- various parts of the Rockbox core make use of it as temporary storage space. The buffer was used for stack space so this generated false 'Stkov' panics when one of those in-core users overwrote the buffer.

The default stack size of 1kb is a bit small, so use 4x the default size to be on the safe side.

This also fixes a minor issue where trying to view OS stack usage while battery_bench was running would cause audio dropouts, due to scanning the possibly huge stack with IRQs disabled.
apps/plugins/battery_bench.c [diff]
Aidan MacDonald
2021-07-21 f0e3a36fe4: autoresume: Properly check the path string, not the pointer.

(the pointer is _always_ valid as it's to a fixed buffer)
apps/playback.c [diff]
Solomon Peachy
2021-07-21 8cd4b8da84: talk.c check for 0 talk clips file descriptor leaks & announce_status fix typo

talk.c potential division by zero warrants a check

desowin pointed out multiple fd leaks

announce_status.c dumb typo
apps/talk.c [diff]
William Wilgus
2021-07-21 48c29e3b3b: Fix announce_status usage of plugin buffer

Since this is a TSR plugin, it is not safe to use the plugin buffer. Convert to using static buffers instead.
apps/plugins/announce_status.c [diff]
Aidan MacDonald
2021-07-20 b91ad60d63: timefuncs.c valid_time() should return false if tm == NULL and not try to deref

luckily no one has yet..
firmware/common/timefuncs.c [diff]
William Wilgus
2021-07-20 966e210e6d: Small fixes to kbd_create_layout

- Make the argument const since it's not actually mutated
- Actually return the size of the buffer used since this is what it was supposed to do (although no existing callers cared anyway)
apps/plugins/lib/kbd_helper.c [diff]
apps/plugins/lib/kbd_helper.h [diff]
Aidan MacDonald
2021-07-20 740a50687f: jztool: add support for Shanling Q1 and Eros Q
rbutil/jztool/Makefile [diff]
rbutil/jztool/README.md [diff]
rbutil/jztool/include/jztool.h [diff]
rbutil/jztool/jztool.c [diff]
rbutil/jztool/src/device_info.c [diff]
rbutil/jztool/src/identify_file.c [diff]
rbutil/jztool/src/ucl_unpack.c [new]
rbutil/jztool/src/usb.c [diff]
rbutil/jztool/src/fiiom3k.c rbutil/jztool/src/x1000.c [rename]
Aidan MacDonald
2021-07-20 6f042e91dd: FS #13302 - Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Aidan MacDonald
2021-07-20 df37450f91: talk: Explicitly cast -1 as unsigned before a left shift.

The code is explcitly relying on twos complement numerical represntation so this just shuts up the compiler and static analysis warnings.
apps/talk.h [diff]
Solomon Peachy
2021-07-18 09fc9ee9a3: sim: change Eros Q native bitmap to a symlink
uisimulator/bitmaps/UI-erosqnative.bmp []
Aidan MacDonald
2021-07-18 07a3f6bcdb: add Eros Q native simulator build
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-erosqnative.bmp [new]
Aidan MacDonald
2021-07-18 3e7a09cb0d: New Port: Eros Q Native

What works:
- LCD: 16-bit RGB565
- all buttons, including scrollwheel
- SD Card
- Battery level and charging/not charging status
- USB
- audio
- sample rate switching
- HP / LO detect, with "safe" fixed LO volume - LO volume will only be put to user-defined max volume if headphones are not present.
- rtc
- Plugins build, tried a couple and they seem OK
- Bootloader, installable to nand via usbboot

What doesn't work:
- Dual Boot
- power on/off has intermittent, low volume audio click
(sometimes it's completely silent, sometimes there's a click)
- Audio uses 16-bit volume scaling, so clicking/popping is pretty bad at lower volumes - need 32 bit volume scaling, 24 bit I2S data
- USB HID keys not yet defined
- no jztool support

Unknowns:
- Stereo Switch pins: Direction select, AC_DC
(probably not even hooked up)
- What is the actual purpose of the Stereo Swtich?
- How does the bluetooth module connect?

"Someday" stuff:
- get LCD working at higher bit depth
- Bluetooth
apps/plugins/rockpaint.c [diff]
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
firmware/SOURCES [diff]
firmware/drivers/audio/eros_qn_codec.c [new]
firmware/export/audiohw.h [diff]
firmware/export/config.h [diff]
firmware/export/config/erosqnative.h [new]
firmware/export/eros_qn_codec.h [new]
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/adc-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/backlight-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/backlight-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/boot.make [new]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/button-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/gpio-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/i2c-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/spl-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
tools/configure [diff]
tools/scramble.c [diff]
Dana Conrad
2021-07-18 64a24591ae: crc32: add fast variant of regular crc_32r function

This relies on a macro, CRC32R_FAST, to select which version to compile with. In tests the fast version is 2x faster at the expense of requiring 960 more bytes for the lookup table. For now the default is the space optimized version but in the future I would like to enable this for ports where we can afford the extra storage and/or memory requirements.
firmware/common/crc32.c [diff]
James Buren
2021-07-17 cd17decd5a: xduoox3ii: Add "Super Slow" filter roll-off

I'm not happy with the proliferation of filter-roll-off options but I don't have a less ugly solution.
apps/lang/english.lang [diff]
apps/settings_list.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/xduoolinux_codec.h [diff]
Solomon Peachy
2021-07-15 ec31a2b4ad: Fix builds.pm syntax error (1d72d9cf)
tools/builds.pm [diff]
Solomon Peachy
2021-07-15 1d72d9cf28: builds: add Shanling Q1 to unstable
tools/builds.pm [diff]
Aidan MacDonald
2021-07-15 144d1b1e81: misc: Fix up a few warnings uncovered by LTO

* direct use of memcpy() instead of ci->memcpy() in flac and mod
* uninitialized variable in mpegplayer
apps/plugins/mpegplayer/video_out_rockbox.c [diff]
lib/rbcodec/codecs/flac.c [diff]
lib/rbcodec/codecs/libspeex/modes_wb.c [diff]
lib/rbcodec/codecs/mod.c [diff]
Solomon Peachy
2021-07-13 4c60bc9e68: New port: Shanling Q1 native

- Audio playback works
- Touchscreen and buttons work
- Bootloader works and is capable of dual boot
- Plugins are working
- Cabbiev2 theme has been ported
- Stable for general usage

Thanks to Marc Aarts for porting Cabbiev2 and plugin bitmaps.

There's a few minor known issues:

- Bootloader must be installed manually using 'usbboot' as there is no support in jztool yet.

- Keymaps may be lacking, need further testing and feedback.

- Some plugins may not be fully adapted to the screen size and could benefit from further tweaking.

- LCD shows abnormal effects under some circumstances: for example, after viewing a mostly black screen an afterimage appears briefly when going back to a brightly-lit screen. Sudden power-off without proper shutdown of the backlight causes a "dissolving" effect.

- CW2015 battery reporting driver is buggy, and disabled for now. Battery reporting is currently voltage-based using the AXP192.
apps/SOURCES [diff]
apps/features.txt [diff]
apps/keymaps/keymap-shanlingq1.c [new]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/bitmaps/mono/SOURCES [diff]
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/bubbles_background.360x400x16.bmp [new]
apps/plugins/bitmaps/native/bubbles_emblem.360x400x16.bmp [new]
apps/plugins/bitmaps/native/invadrox_background.360x400x16.bmp [new]
apps/plugins/bitmaps/native/jewels.360x400x16.bmp [new]
apps/plugins/bitmaps/native/rockblox_background.360x400x16.bmp [new]
apps/plugins/bitmaps/native/sliding_puzzle.360x360x16.bmp [new]
apps/plugins/bitmaps/native/snake2_bottom.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_header1.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_header2.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_left.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_right.360x400x16.bmp [new]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
...and 80 more files.
Aidan MacDonald
2021-07-13 3abb7c5dd5: x1000: revamp MSC driver card detection logic

Debounce logic now handles both removal and insertion and verifies the detection is stable for 100ms before taking any action.

This solves the bootloader "file not found" issue on the Shanling Q1. It seems a false removal event was generated, causing the filesystem to be automatically unmounted. Probably this is due to some transient noise at boot. Delays didn't solve the problem, probably because the bogus hotplug event was queued, and normal mdelay() would simply delay event delivery.
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.h [diff]
Aidan MacDonald
2021-07-13 3c4fdf10e2: crc32: add fast variant of regular crc_32 function

This relies on a macro, CRC32_FAST, to select which version to compile with. In tests the fast version is 2x faster at the expense of requiring 960 more bytes for the lookup table. For now the default is the speed optimized version but in the future I would like to enable this for ports where we can afford the extra storage and/or memory requirements.
firmware/common/crc32.c [diff]
James Buren
2021-07-12 321680973b: Sansa Connect: Display battery info in debug menu

Show battery temperature, current, discharge power and available energy in battery debug menu.
apps/debug_menu.c [diff]
Tomasz Moń
2021-07-11 84362141a0: x1000: Unified flash bootloader installer
bootloader/x1000.c [diff]
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.h [deleted]
firmware/target/mips/ingenic_x1000/installer-x1000.c [new]
firmware/target/mips/ingenic_x1000/installer-x1000.h [new]
Aidan MacDonald
2021-07-11 e9d228832c: x1000: Unified bootloader
bootloader/SOURCES [diff]
bootloader/fiiom3k.c [deleted]
bootloader/x1000.c [new]
Aidan MacDonald
2021-07-11 d6dcb99684: uisimulator: implement sim_modtime
uisimulator/common/filesystem-sim.c [diff]
uisimulator/common/filesystem-sim.h [diff]
James Buren
2021-07-11 1298e47134: zip: include strlcpy.h
firmware/common/zip.c [diff]
James Buren
2021-07-11 fa743258ea: filesystem: implement os_modtime for unix
firmware/target/hosted/filesystem-app.h [diff]
firmware/target/hosted/filesystem-hosted.h [diff]
firmware/target/hosted/filesystem-unix.c [diff]
James Buren
2021-07-11 8846e087c0: zip: implement zip extraction support

This adds code sufficient to extract files to available storage given a suitable root directory to extract to. It works on an already open zip handle and also supports chain-loading a secondary callback in the event that integration into the process is desired.
firmware/common/zip.c [diff]
firmware/include/zip.h [diff]
James Buren
2021-07-10 a1bcca645b: zip: rename modts field to mtime

This brings it more in line with other structs with this exact same data type and usage.
firmware/common/zip.c [diff]
firmware/include/zip.h [diff]
James Buren
2021-07-10 6c084ac3ea: Sansa Connect: Ensure LCD starts before backlight

Extra delay prevents white flash after hold switch release.
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
Tomasz Moń
2021-07-10 b4ecd612f7: Sansa Connect: Use deviceid in USB Serial Number

Atmel AT88SC6416C CryptoMemory is almost I2C compatible. The device is connected to bitbanged I2C bus shared with compliant I2C devices.
firmware/SOURCES [diff]
firmware/drivers/generic_i2c.c [diff]
firmware/export/generic_i2c.h [diff]
firmware/target/arm/tms320dm320/i2c-dm320.c [diff]
firmware/target/arm/tms320dm320/i2c-dm320.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/cryptomem-sansaconnect.c [new]
firmware/target/arm/tms320dm320/sansa-connect/cryptomem-sansaconnect.h [new]
firmware/usbstack/usb_core.c [diff]
Tomasz Moń
2021-07-09 663539619c: configure: fix a typo that could break voice builds

(If you don't have espeak, festival, or flite installed)
tools/configure [diff]
Solomon Peachy
2021-07-09 8de163b8ae: Sansa Connect: Fix reported CPU frequency

Make frequency related comments accurate. Disable UART0 clock.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/crt0-board.S [diff]
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/wifi-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
firmware/target/arm/tms320dm320/system-target.h [diff]
Tomasz Moń
2021-07-09 60e2cd6de9: DM320: Regorganize LCD and TTB memory layout

Do not introduce any change for M:Robe 500 as it uses the two LCD frames in non-obvious way.

Sansa Connect and Creative ZVM use only single front framebuffer. Place TTB at DRAM end to minimize memory loss due to alignment. Reserve as little as possible memory for the LCD frames. On Sansa Connect this change extends audio buffer by 858 KiB.
apps/plugins/plugin.lds [diff]
firmware/export/dm320.h [diff]
firmware/target/arm/tms320dm320/app.lds [diff]
firmware/target/arm/tms320dm320/boot.lds [diff]
Tomasz Moń
2021-07-09 2e9b93dc5d: build: Nuke the ASMFLAGS workaround for gcc 3.4.x
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/libmad/libmad.make [diff]
lib/rbcodec/codecs/libspeex/libspeex.make [diff]
tools/make.inc [diff]
tools/root.make [diff]
Solomon Peachy
2021-07-08 2c984f3714: build: use gcc-ar / gcc-ranlib in preparation for link-time-optimization
tools/configure [diff]
Solomon Peachy
2021-07-08 2ff3425ab1: build: Rename SHARED_LDFLAG to SHARED_LDFLAGS
apps/plugins/lua/Makefile [diff]
apps/plugins/plugins.make [diff]
lib/rbcodec/codecs/codecs.make [diff]
tools/configure [diff]
Solomon Peachy
2021-07-08 a9f36efa62: file/fat: rework utime function as modtime extension

This eliminates the dependence on a special struct since we were only using the modtime anyway. But it no longer fits any known standard APIs so I have converted it to our own extension instead. This can still be adapted to existing hosted APIs if the need arises.
firmware/common/file.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/file.h [diff]
firmware/include/filesystem-native.h [diff]
firmware/libc/include/time.h [diff]
James Buren
2021-07-08 a0f1236e88: Fix yellow in android builds.
firmware/export/fat.h [diff]
Solomon Peachy
2021-07-08 17f7dfb9d2: build: Make checkwps use global GCCOPTS
tools/checkwps/checkwps.make [diff]
Solomon Peachy
2021-07-08 0e1a90ea1d: x1000: SPL refactoring

This streamlines the boot code a bit and reduces target specific boilerplate. The clock init hack used by the bootloader has been
"standardized" and works for the main Rockbox binary now, so you can boot rockbox.bin over USB without special hacks.
bootloader/fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.h [new]
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/clk-x1000.h [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
2021-07-08 65aa9ce570: x1000: more CPM register definitions
firmware/target/mips/ingenic_x1000/x1000/cpm.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
2021-07-08 a952cf52d5: voice: Corrections to 24-hour time voicing:

* Voice leading "Oh" if hours is under 10.

(ie "0900" is read as "oh nine hundred hours"
apps/talk.c [diff]
Solomon Peachy
2021-07-08 39b82afb45: Fix warnings introduced in c174d3a5 (redux)
firmware/export/fat.h [diff]
Solomon Peachy
2021-07-08 78eb87f453: Revert "Hosted & tool builds need utime.h"

This reverts commit a8fd590003774cb5554eaec2d5805d5e5b699fc4.

Reason for revert: Inverted polarity and it didn't work anyway.
firmware/export/fat.h [diff]
Solomon Peachy
2021-07-08 a8fd590003: Hosted & tool builds need utime.h

Should fix the warnings introduced in c174d3a5
firmware/export/fat.h [diff]
Solomon Peachy
2021-07-08 c174d3a544: file/fat: add utime function

This emulates the traditional utime function from UNIX clones to allow for manual updates of the modification timestamp on files and directories.

This should only prove useful for non-native targets as those usually have a libc version of utime.
firmware/common/file.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/file.h [diff]
firmware/include/filesystem-native.h [diff]
firmware/libc/include/time.h [diff]
James Buren
2021-07-08 e6ee3dd17c: builds: Move the Sansa Connect to unstable
tools/builds.pm [diff]
Solomon Peachy
2021-07-07 49ca4b3e5e: timefuncs: add dostime_localtime function

This does the opposite of dostime_mktime, converting time_t back to the two dos date time values. We use gmtime_r for native because that is what is available and acts the same as localtime_r on other platforms with a regular libc available.
firmware/common/timefuncs.c [diff]
firmware/include/timefuncs.h [diff]
James Buren
2021-07-07 bce6771730: Sansa Connect: Reduce USB RX buffers from 129 to 2

Reducing number of fake RX buffers saves a bit more than 127 KiB RAM. Fix compilation with CPPI logging enabled.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.h [diff]
Tomasz Moń
2021-07-07 7f638e54ee: RFC: Fix a couple more dangling stack-allocated viewports

They could end up getting referenced after the stack has been popped.
apps/gui/pitchscreen.c [diff]
apps/recorder/recording.c [diff]
Solomon Peachy
2021-07-07 99bf506407: Sansa Connect: Prevent unresponsive interface

AVR interrupt signal can remain active if the state has changed during state read. In such case, there won't be intterupt and the interface would appear unresponsive until AVR thread received event (e.g. USB connection/disconnect). Solve the issue by not waiting for event if AVR interrupt signal is active prior to event wait.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-07-07 e9ae1e9a8b: Fix red introduced in 841e704fc3
firmware/powermgmt.c [diff]
uisimulator/common/powermgmt-sim.c [diff]
Solomon Peachy
2021-07-07 841e704fc3: Sansa Connect: Read HDQ battery data

Make it possible for target to provide voltage, percentage and time to empty values. The voltage measurement is nice to have in debug menu even if the actions are taken only based on percentage. Perform battery level estimation based on voltage only if percentage is not available.

Use time to empty based on actual power consumption. This makes the estimated runtime displayed in Rockbox Info to react to backlight setting. The bq27000 updates time to empty estimate every 5.12 seconds so it is possible to see the estimate with backlight off on the screen if user enters Rockbox Info, activates hold switch, waits 11 seconds and releases the hold switch.
firmware/export/config/sansaconnect.h [diff]
firmware/powermgmt.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c [diff]
Tomasz Moń
2021-07-05 b87e75f768: zip: import initial module

This provides rudimentary support for parsing the contents of a ZIP file. For now this just supports uncompressed file entries but DEFLATE support is planned. This also only implements a low level public API so more work will be needed to make it usable by application code.
firmware/SOURCES [diff]
firmware/common/zip.c [new]
firmware/include/zip.h [new]
James Buren
2021-07-05 2acf8db3e1: Sansa Connect: Power off LCD to save power

Prevent startup screen flash by properly using AVR LCM functions. Power off LCD when not needed to improve battery runtime.
bootloader/sansaconnect.c [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/backlight-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
Tomasz Moń
2021-07-04 89d3ca77b6: Sansa Connect: Fix power off panic screen

Queue power off requests because power_off() can be called within tick context that must not acquire mutex.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c [diff]
Tomasz Moń
2021-07-04 e11fa5f74e: Sansa Connect: Initial libertas WiFi driver port

Import non-free firmware image from linux-firmware package.

Firmware loading works but is disabled at compile time because just loading firmware without configuring device results in higher power consumption without any benefit to end user.
apps/main.c [diff]
firmware/SOURCES [diff]
firmware/drivers/libertas/firmware/LICENCE.Marvell [new]
firmware/drivers/libertas/firmware/gspi8686_v9.bin [new]
firmware/drivers/libertas/firmware/gspi8686_v9_helper.bin [new]
firmware/drivers/libertas/if_spi.c [new]
firmware/drivers/libertas/if_spi.h [new]
firmware/drivers/libertas/if_spi_drv.h [new]
firmware/export/config/sansaconnect.h [diff]
firmware/export/wifi.h [new]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/wifi-sansaconnect.c [new]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
tools/buildzip.pl [diff]
Tomasz Moń
2021-07-03 c9f2308a1d: fat: move fattime_mktime to timefuncs

This moves the time conversion function to timefuncs since it has uses on ports that don't use the FAT driver. This function has no dependency on the FAT driver as it is so this should not cause any issues. To reflect this separation the function was renamed to dostime_mktime since it is really for DOS timestamps. The places where it was used have also been updated.
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/timefuncs.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/timefuncs.h [diff]
James Buren
2021-06-28 d1a92aafff: sdl: increase default worker thread size.

This fixes a mysterious, long-standing crash that's been bothering me on ipod6g for ages: a silent stack overflow in the sound mixing thread (which is triggered upon loading a new sound, apparently) will thrash the memory which is located directly before it in the address space.

In this case, it was the SDL_ButtonState variable which stores the mouse button state that was being trashed. This was manifesting itself by making the player always run forward, since MOUSE2 is mapped to +forward by default.

Fix this by quadrupling the stack size of SDL-spawned threads (not the main thread) from 1 KB to 4 KB.
apps/plugins/sdl/src/thread/rockbox/SDL_systhread.c [diff]
Franklin Wei
2021-06-27 9f950d8bbf: x1000: NAND rewrite

This new design saves on binary size and stack usage. The API is also block- and page-based, requiring awareness of the chip layout to use properly. Out-of-band areas are also exposed for reading and writing.

The byte-oriented routines are kept for compatibility with the existing installer and SPL.
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.h [diff]
Aidan MacDonald
2021-06-27 9246cbc65e: rbspeex: fix shared linkage on newer Linux distributions

The old linking order does not work anymore so reorder it to fix shared linkage.
tools/rbspeex/Makefile [diff]
James Buren
2021-06-27 91bae5837b: mkzenboot: fix implicit function warning

strcasecmp is defined in strings.h but it is not included here.
tools/mkzenboot.c [diff]
James Buren
2021-06-27 3c7c71030f: Sansa Connect: Ensure adequate AVR Slave Select delay

Waiting 10 us between selecting slave and transmitting data on SPI resolves spurious startup glitches.

Cache last read monotime value as it can differ from the first one.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-27 1b81bd8a61: Sansa Connect: Discard invalid monotime reads

Read monotime twice in a row and only accept the value if it matches or the two reads are 1 second apart.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-27 a4ab636423: Sansa Connect: More reliable AVR communication

AVR requires bigger delays between retries. Read state instead of version for synchronization purposes as it shifts more bytes.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-25 ead4bc0769: Sansa Connect: Retry AVR commands only 3 times

If the commands repeatedly fail it is likely that the AVR is not programmed. In such case simply continue normal operation. This is especially important in bootloader as it makes it possible to load new rockbox build using bootloader USB mode. Otherwise, the only recovery option would be to use I2C serial.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-25 3738510953: Sansa Connect: Implement RTC functionality

Use 32-bit monotime AVR counter for time tracking. Set the time by adding fixed offset to the counter value. Store the offset in rockbox directory to make it persistent between reboots.

Do not implement alarm functionality as wakeup is only possible from sleep and not from complete power off.
apps/keymaps/keymap-sansa-connect.c [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-25 635ec5bbbd: Sansa Connect: Manually drive SPI Slave Select

Keep Slave Select active during command transmission. This relaxes timing requirements on the AVR side.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-24 b972fe4cdf: misc: Add a .gitreview file for better gerrit integration
.gitreview [new]
Solomon Peachy
2021-06-22 6da490099b: Touchscreen: absolute point mode scrolling bugfix

Due to this inadequate bounds check, it was possible under certain conditions to cause a crash by touching & scrolling in the empty space "after" the last item of a list.
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
2021-06-22 76e07a7fd2: Touchscreen: adjust how bar padding is handled

The old way of padding out bars was to just create a bigger touch region, the intent being to make it easier to touch the end of a bar. Unfortunately, this didn't even accomplish that, and caused an annoying offset between the bar graphics and the touch point.

New method is to account for padding explicitly and clamp touches in the padding region so they are within the proper touch region.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
2021-06-22 02860d67c3: Touchscreen: adjust calculation of bar touch position

Increased the precision of the bar from 100 steps to 1000 steps so it is possible to make finer adjustments, and made it possible to pick the maximum value in a bar rather than just the maximum - 1.
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/wps.c [diff]
Aidan MacDonald
2021-06-22 8a6b2f3abc: Touchscreen: make volume bars respect volume step increment
apps/gui/wps.c [diff]
Aidan MacDonald
2021-06-22 b5c40d9991: Sansa Connect: Refactor AVR command handling

Add defines for all commands handled by AVR, including the unknown opcodes (0xC5, 0xD3, 0xD4, 0xD5, 0xD6).

Properly synchronize with AVR and keep repeating command until it looks like AVR has accepted it.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
Tomasz Moń
2021-06-21 581081a3df: mi4: replace chksum_crc32 with crc_32r

This uses an equivalent algorithm but with a different initial value than we normally use (all bits off vs all bits on). Use the new crc_32r to replace the original MI4 crc32 implementation.

This frees up some extra space on mi4 targets which gives us more room on a few very space constrained targets (sansa c200/e200, etc).
bootloader/fat32format.c [diff]
bootloader/main-e200r-installer.c [diff]
bootloader/main-pp.c [diff]
firmware/SOURCES [diff]
firmware/common/crc32-mi4.c [deleted]
firmware/include/crc32-mi4.h [deleted]
firmware/rolo.c [diff]
firmware/target/arm/pp/mi4-loader.c [diff]
James Buren
2021-06-21 fc92081080: rockbox: add a crc32 reverse polynomial function

This uses the reverse of the polynomial used by the current crc_32 function. The code for this was derived from the implementation used by tinf. This version is space optimized and should be a good way to reduce code duplication in other parts of rockbox that use the same crc32 algorithm. This is mainly of use in areas where DEFLATE is in use.
apps/plugin.c [diff]
apps/plugin.h [diff]
firmware/common/crc32.c [diff]
firmware/include/crc32.h [diff]
James Buren
2021-06-20 2ca5774cf9: Sansa Connect: Indicate charging status

Consider battery level down to 0 as safe as OF continues to operate normally even when at level 0.
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c [diff]
Tomasz Moń
2021-06-17 0faf978c3d: build: Add an 'xz' target to generate a .tar.xz image

Improve the tarball generation a bit too
tools/root.make [diff]
Solomon Peachy
2021-06-17 3831051c47: mknkboot: optimize verifyfirm

The checksum only needs to be calculated once. A small oversight on my initial implementation.
utils/MTP/beastpatcher/mknkboot.c [diff]
James Buren
2021-06-16 2ed4bf8a43: FS #13299: Handle MP3 files with more than 128K of headers before audio data

Encountered a file with ~600K of ID3v1 headers.

Optimize the potential overhead by minimizing reverse seeks.
lib/rbcodec/metadata/mp3data.c [diff]
Solomon Peachy
2021-06-16 fa9ddd5af9: Revert "FS #13299: Simplify VBR frame parsing in the metadata decoder."

This reverts commit 756c0d2ac82515ea8389c69f5f87ca395daca63d.
lib/rbcodec/metadata/mp3data.c [diff]
Solomon Peachy
2021-06-16 7aade87863: Fix yellow from 9ccae042
apps/plugins/calculator.c [diff]
Aidan MacDonald
2021-06-16 9ccae0421a: Implement x^y in calculator
apps/plugins/calculator.c [diff]
Moshe Piekarski
2021-06-16 a3f2b64a46: Enable float formatting in printf

Needed for g#3415, and if the comment is to be believed, this needed updating for recent MIPS targets anyway.

Just blanket enable everything for all targets with >= 8 MiB of RAM. The only targets with less than this are the Sansa Clip, c200v2, and m200v4, which all have 2 MB of RAM.

The added code size is around 4 KiB to 7 KiB, depending on the target.
firmware/common/vuprintf.c [diff]
Aidan MacDonald
2021-06-15 f6c7407cc3: DM320: Use SD/MMC data done interrupt

Wait on semaphore until DMA finishes instead of busy waiting. This allows the CPU to be used by other tasks during transfers.

Increase peripheral clock frequency, divide AHB by 2 instead of 3. Function clock frequency is AHB divided by MMC divider + 1.
firmware/export/dm320.h [diff]
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
2021-06-14 95408f2117: FiiO M3K: Add dual boot support
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
Aidan MacDonald
2021-06-14 89f4064743: x1000: Extend CPM registers for dual boot
firmware/target/mips/ingenic_x1000/x1000/cpm.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
2021-06-14 2d6ddd0c5b: x1000: NAND driver bugfixes

- Missing mutex unlock in nand_open()
- SET_FEATURE command incorrectly issued as a read operation
- Inverted protection bits, not sure how that happened...
- Block erase skipped ahead by a wrong amount, causing erases spanning multiple blocks to erase the wrong blocks

This code was buggy as hell... it's in need of a major overhaul. It's not very flexible or reliable, and access to the flash is useful during development of a new port, even if not useful once the port is complete.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
Aidan MacDonald
2021-06-14 02c4ec294c: Sansa Connect: Properly setup internal speaker

Switch to internal speaker when headphones are disconnected.
firmware/drivers/audio/aic3x.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-13 756c0d2ac8: FS #13299: Simplify VBR frame parsing in the metadata decoder.

The old code would seek forward by the frame length, expecting to see a frame header there, perform a validity check, and then seek back to the current header.

Unfortunately this doesn't handle situations where there is extra padding between the frames, leading us to potentially read garbage, causing the validity tests to fail and rejecting the file outright.

Instead, keep track of the previous valid header/position, and if we find
"valid" headers in a row return the first after seeking back to it.

This change allows the file referenced in FS13299 to be properly parsed, but further work is needed to get the file to be playable. (file reports itself as layer 1, variable bit rate, variable sample rate!)
lib/rbcodec/metadata/mp3data.c [diff]
Solomon Peachy
2021-06-12 c067b344e8: FS #13297: M3K Autolock allows one action before disabling touchpad

Intercept buttonpress and action, and nullify both if the button is part of the touchpad. Only affects autolock functionality.

Adding removal of note about autolock in the manual - the lock button no longer needs to be pressed at least once to prime the autolock, if enabled, since commit 14f7a95
apps/action.c [diff]
manual/configure_rockbox/system_options.tex [diff]
Dana Conrad
2021-06-12 f3f9d1fb95: USB Serial: Implement Abstract Control Management

On devices that can assign interrupt IN, bulk IN and bulk OUT endpoints this change results in the serial interface working out of the box on Linux and Windows. On Linux it is registered as ttyACM device and on Windows it is assigned a COM port number.

On devices that cannot assign the interrupt IN this change won't have any effect.

Implement minimum required interface control requests. Respond with whatever line coding was set to make terminal programs happy.
firmware/export/usb_ch9.h [diff]
firmware/usbstack/usb_serial.c [diff]
Tomasz Moń
2021-06-12 663d846cf3: Sansa Connect: Disable endpoint double buffering

Disabling double buffering results in expected CPPI TX behaviour. With the double buffering enabled, sending single ZLP resulted in two ZLPs being available. The two ZLPs is problematic because this causes Windows to reset USB device after failed SCSI command.

The problematic sequence on Windows 10 was as follows:
* Host sends SCSI Mode Sense(6) Informational Exceptions Control(0x1C)
* Device sends ZLP
* Device sends command failed response

With endpoint double buffering enabled the ZLP was read twice by host. As host was expecting command response on the second read (and got ZLP instead), host attempts recovery by resetting USB device and retrying.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Tomasz Moń
2021-06-12 a90ef8195b: mknkboot/beastpatcher: implement basic firmware validation

This imports the MD5 code used by other utilities and creates a function for checking the provided NK.bin against known original firmware checksums. Integration into mknkboot and beastpatcher is also added.

For the sake of consistency with beastpatcher, mknkboot had its printf statements rewrote to print to stderr like beastpatcher does.
utils/MTP/beastpatcher/Makefile [diff]
utils/MTP/beastpatcher/beastpatcher.c [diff]
utils/MTP/beastpatcher/md5.c [new]
utils/MTP/beastpatcher/md5.h [new]
utils/MTP/beastpatcher/mknkboot.c [diff]
utils/MTP/beastpatcher/mknkboot.h [diff]
James Buren
2021-06-11 fe9bcd0468: beastpatcher: fix some minor issues

This mainly fixes some compiler warnings and makes it work with mingw64.
utils/MTP/beastpatcher/Makefile [diff]
utils/MTP/beastpatcher/mtp_libmtp.c [diff]
James Buren
2021-06-11 ab0f23c4b1: sendfirm: fix some minor issues

This patches some compile warnings and also makes it work correctly with modern mingw64.
utils/MTP/Makefile [diff]
utils/MTP/sendfirm.c [diff]
James Buren
2021-06-11 d01f3192f2: Spin off common ft6x06 code to a driver

Allows for the i2c boilerplate to be shared between the M3K and Shanling Q1 ports. M3K-specific quirks remain in button-fiiom3k.
firmware/SOURCES [diff]
firmware/drivers/ft6x06.c [new]
firmware/export/config/fiiom3k.h [diff]
firmware/export/ft6x06.h [new]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
Aidan MacDonald
2021-06-10 551c74da55: Sansa Connect: Remove fake battery voltage scale

Use battery percentage as reported by AVR.
firmware/SOURCES [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/powermgmt-sansaconnect.c [deleted]
Tomasz Moń
2021-06-10 f26499bd67: Sansa Connect: Add missing include

Include usb.h to have usb_acknowledge() prototype.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
2021-06-09 163e3507f8: Sansa Connect: Working USB Mass Storage

Acknowledge SYS_USB_CONNECTED in all queues so USB task can gain exclusive access to the storage.

Reduce CPPI requeue timeout to speed up disk access.
bootloader/sansaconnect.c [diff]
firmware/export/config.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
2021-06-09 a11c88e0df: Sansa Connect: Fix sending ZLP on non-zero endpoint

This fixes panic when mass storage driver sends failed result.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Tomasz Moń
2021-06-09 efa173a923: Sansa Connect: Fix bulk transfers greater than 64 bytes

Correctly set endpoint maximum packet size so host will not consider end of transfer after receiving first packet when transfer is larger than 64 bytes (at High Speed the endpoint max packet size was set to 64 but according to descriptor it is 512).

Split DMA transfers up to CPPI_MAX_FRAG so we get single interrupt after each call to tnetv_cppi_send().
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Tomasz Moń
2021-06-09 7f3d0ce814: DM320: Fix SDHC response format 2 handling

Return complete R2 response to caller. Due to incorrect bitfield handling only bits [127-96] were ever returned to caller.
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
2021-06-07 41ced369f6: ErosQ Simulator: fix keymap

The eros q simulator keys have been weird for a while, found out why.
uisimulator/buttonmap/erosq.c [diff]
Dana Conrad
2021-06-07 55c95a9cf5: FiiO M3K: filter touchpad input when it's disabled

I had hoped this would fix FS #13297, but no luck. Might as well do this change anyway, because it's the "right" thing to do.
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
Aidan MacDonald
2021-06-06 4c94c17913: ErosQ: undo ACTION_YESNO_ACCEPT button release

I accidentally left this in commit 8056b7f, and I think I'm giving up on this for now - it just gets too complicated in the usb use case. Revert to BUTTON_PLAY.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
2021-06-06 2b23d3ecaf: x1000: Allow setting IRQ handlers dynamically

Avoids having to #define the names of GPIO pin interrupt handlers, as they can now be set at runtime instead.
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
firmware/target/mips/ingenic_x1000/usb-x1000.c [diff]
Aidan MacDonald
2021-06-06 e85bc74b30: x1000: GPIO refactor

The GPIO API was pretty clunky and pin settings were decentralized, making it hard to see what was happening and making GPIO stuff look like a mess, frankly.

Instead of passing clunky (port, pin) pairs everywhere, GPIOs are now identified with a single int. The extra overhead should be minimal as GPIO configuration is generally not on a performance-critical path.

Pin assignments are now mostly consolidated in gpio-target.h and put in various tables so gpio_init() can assign most pins at boot time.

Most drivers no longer need to touch GPIOs and basic pin I/O stuff can happen without config since pins are put into the right state. IRQ pins still need to be configured manually before use.
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/gpio-target.h [new]
firmware/target/mips/ingenic_x1000/fiiom3k/lcd-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
firmware/target/mips/ingenic_x1000/i2c-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.h [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
firmware/target/mips/ingenic_x1000/pwm-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/usb-x1000.c [diff]
Aidan MacDonald
2021-06-06 695d1701cd: jztool: add correct compiler flags for building on Mac
rbutil/jztool/Makefile [diff]
Aidan MacDonald
2021-06-06 474293a12b: Sansa Connect: Initial TNETV105 driver port

Port USB driver from Sansa Connect Linux kernel sources. The device successfully enumerates and responds to SCSI commands but actual disk access does not work. The SCSI response sent to host mentions that both internal storage and microsd card are not present.
bootloader/sansaconnect.c [diff]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.c [new]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.h [new]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [new]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.h [new]
firmware/target/arm/tms320dm320/sansa-connect/usb-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
firmware/target/arm/tms320dm320/system-target.h [diff]
Tomasz Moń
2021-06-05 77603c344d: DM320: Fix buffer overrun in sdmmc driver

Modify count, buffer and start address only after successful transfer. This makes the retry operation to use the same address and buffer as the just failed transfer.
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
2021-06-04 62098a0cc9: toolchain: To build GCC for hosted targets, we need -std=gnu++11 for stage2.

But for stage1 (and non-hosted targets) we can stick with -std=gnu++03.

This keeps everyone happy with no apparent regerssions on older host compilers.
tools/rockboxdev.sh [diff]
Solomon Peachy
2021-06-04 49dfc8be27: rockboxdev.sh fixes for hosted MIPS toolchain

Add --with-sysroot= to the configure args of glib and dbus because otherwise they get confused and try to use host system dependencies.

Also fix the broken restart logic so you can actually restart a build.
tools/rockboxdev.sh [diff]
Aidan MacDonald
2021-06-04 18288fcce6: toolchains: Fix gcc 4,9.4 compilation using GCC11.

Basically it defaults to using C++17, which breaks the GCC compilation. Instead, explicitly specify -std=c++03, which should work everywhere.
tools/rockboxdev.sh [diff]
Solomon Peachy
2021-06-04 ce5fe4d108: ata: fix a typo in a definition that's thankfully not used.
firmware/drivers/ata.c [diff]
Solomon Peachy
2021-06-04 00440f2137: ipod6g:: Get rid of magic command numbers in ata driver

Use CMD_* macros instead. Makes the code a bit easier to follow.

No functional change.
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
2021-06-04 14f7a958af: Softlock Improvements

Add a check to see if the keys are currently locked and allow them to be unlocked to ensure we don't get stuck when the current playlist ends while the WPS is locked.
(Original by Aidan MacDonald)

Adding initialization for unlock_combo and to arm the autolock
(if enabled) without the user needing to press the lock button at least once every boot (which is the prior behavior).

Removing screen_has_lock check from is_keys_locked()
apps/action.c [diff]
apps/action.h [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
Dana Conrad
2021-06-03 cec6422ace: x1000: LCD driver minor fixes & improvements

- Use unsigned bitfields in 'lcd_tgt_config'
- Set DTIMES when using an 8-bit bus width
- Allow using DMA big-endian mode
- Provide an #ifdef to avoid stopping DMA in the middle of a frame
- Correctly #ifdef LCD sleep code when target does not implement it
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/lcd-x1000.h [diff]
Aidan MacDonald
2021-06-02 a6b5de6a89: x1000: minor adjustments to PWM code

- Change busy loop to wait on the timer flag instead of hoping to catch the timer at exactly the right moment... unsurprisingly, that did not work well with higher frequency PWM outputs.
- Put GPIO data into a dedicated const array.
firmware/target/mips/ingenic_x1000/pwm-x1000.c [diff]
Aidan MacDonald
2021-06-01 0187fca640: axp173 driver: rename to "axp-pmu" + other changes

The old name was a bit misleading. AXP173 is sort of the lowest common denominator of a series of related chips. The M3K uses an AXP192 which has a few extra features vs. the AXP173.

New voltage regulator stuff was added for the sake of the Shanling Q1 native port (that player also uses an AXP192).
firmware/SOURCES [diff]
firmware/drivers/axp-pmu.c [new]
firmware/drivers/axp173.c [deleted]
firmware/export/axp-pmu.h [new]
firmware/export/axp173.h [deleted]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/i2c-target.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
2021-05-31 2066465b78: FiiO M3K: minor fixes

- Drop obsolete NAND patch script (it's simpler to use 'dd' directly)
- Remove an outdated comment
- Fix missing 'void' in a function definition
- Reset the poweroff timer when we poke the backlight
firmware/target/mips/ingenic_x1000/fiiom3k/backlight-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
utils/fiio_m3k_tools/nand_patcher.py [deleted]
Aidan MacDonald
2021-05-31 663c5268ac: AK4376 driver: refactoring

Some audiohw API calls are shared between playback and recording, eg. frequency settings. Implementing these in the DAC driver won't work for the M3K, as it uses a separate codec for microphone input.
firmware/drivers/audio/ak4376.c [diff]
firmware/export/ak4376.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
Aidan MacDonald
2021-05-30 f63edb52ef: x1000: refactor AIC initialization

Have pcm-x1000 handle most work, so target's audiohw code touches only the relevant settings.
firmware/target/mips/ingenic_x1000/aic-x1000.c [diff]
firmware/target/mips/ingenic_x1000/aic-x1000.h [diff]
firmware/target/mips/ingenic_x1000/dma-x1000.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
firmware/target/mips/ingenic_x1000/x1000/aic.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
2021-05-29 c78ba1aa68: MIPS: add another mipsr2 endian function

Used by WAV and AIFF encoders for recording.
firmware/target/mips/mipsr2-endian.h [diff]
Aidan MacDonald
2021-05-29 f64e8dc33c: x1000: Complete the register definitions

I think this covers everything now, although some fields are missing enum values. Those can be added in if and when they are needed.
firmware/target/mips/ingenic_x1000/x1000/aic.h [diff]
firmware/target/mips/ingenic_x1000/x1000/efuse.h [new]
firmware/target/mips/ingenic_x1000/x1000/pcm.h [new]
firmware/target/mips/ingenic_x1000/x1000/ssi.h [new]
firmware/target/mips/ingenic_x1000/x1000/uart.h [new]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
2021-05-28 8056b7fd1a: Yes/No Screen: Allow accept to be button release

Allows the ACTION_YESNO_ACCEPT action to be set to a button release by ignoring certain system events.

Moving USB init in main.c to the last thing to prevent getting stuck in the USB prompt, if enabled. Also changing ACTION_YESNO_ACCEPT to button release on erosq
apps/gui/yesno.c [diff]
apps/keymaps/keymap-erosq.c [diff]
apps/main.c [diff]
Dana Conrad
2021-05-24 10d199f9d5: Allow Softlock to happen in most contexts

All this tested on erosq, I'm not sure if this will break on other targets or if there is a reason this shouldn't be done.

apps/menu.c:

Added CONTEXT_MAINMENU|ALLOW_SOFTLOCK in do_menu(), this allows the user to lock the keys in most places within the main menu tree.

apps/tree.c:

Added CONTEXT_TREE|ALLOW_SOFTLOCK in dirbrowse(), this allows locking the keys in most other contexts not covered by the above.

Notable exceptions I've found that still cannot be locked: View Playlist, any settings change screen (ex. Shuffle No/Yes, Volume Select dB)

Adding fix for Advanced Key Lock feature brought to light by this change in apps/action.c.

Expected behavior for Advanced keylock is now (according to my testing here): Volume: Can be exempted from keylock anywhere Skip/Scrollwheel: Can only be exempted in WPS Seek: Can only be exempted in WPS Play: Can only be exempted in WPS

Backlight exemption is same except the Volume exemption doesn't work outside the WPS, but I don't believe that is due to this change.
apps/action.c [diff]
apps/menu.c [diff]
apps/tree.c [diff]
Dana Conrad
2021-05-23 b66990cf77: manual: Migrate the manual from freenode to libera
manual/getting_started/main.tex [diff]
Solomon Peachy
2021-05-22 5cbeb88541: FiiO M3K: keymap improvements & fixes

- Add support for skip and seek while the player is locked.
(Thanks to @bahus for the suggestion)
- Fix touch zones because the down button zone ended up being a lot smaller than expected due to the touchpad's wonkiness. Also added a visual display of the touchpad to its debug menu.
- Fixes the pictureflow keymap because it was mostly unusable.
apps/keymaps/keymap-fiiom3k.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
Aidan MacDonald
2021-05-22 a2bac25a63: Allow alternative keymap when keys are locked

To enable support targets must define HAVE_LOCKED_ACTIONS and then handle the CONTEXT_LOCKED flag from get_context_mapping().
apps/action.c [diff]
apps/action.h [diff]
Aidan MacDonald
2021-05-21 00b4626790: Sansa Connect: Clear recoverzap parameter

Clearing recoverzap parameter exists the Recovery Mode. This makes it possible to run Rockbox on Sansa Connect without relying on original Linux firmware.

Enable write-through cache on flash memory as write-back complicates handling without any real benefits. The flash memory accepts commands as series of writes at predefined addresses, so it is important that the cache does not interfere with the writes.
bootloader/sansaconnect.c [diff]
firmware/target/arm/tms320dm320/boot.lds [diff]
firmware/target/arm/tms320dm320/crt0.S [diff]
Tomasz Moń
2021-05-21 5388607968: [Cabbiev2] If the 'Artist' tag is empty read the 'Album Artist' tag.
wps/cabbiev2.112x64x1.wps [diff]
wps/cabbiev2.128x128x16.wps [diff]
wps/cabbiev2.128x128x2.wps [diff]
wps/cabbiev2.128x160x16.wps [diff]
wps/cabbiev2.128x64x1.wps [diff]
wps/cabbiev2.128x96x16.wps [diff]
wps/cabbiev2.128x96x2.wps [diff]
wps/cabbiev2.132x80x16.wps [diff]
wps/cabbiev2.138x110x2.wps [diff]
wps/cabbiev2.160x128x1.wps [diff]
wps/cabbiev2.160x128x16.wps [diff]
wps/cabbiev2.160x128x2.wps [diff]
wps/cabbiev2.176x132x16.wps [diff]
wps/cabbiev2.176x220x16.wps [diff]
wps/cabbiev2.220x176x16.wps [diff]
wps/cabbiev2.240x320x16.mini2440.wps [diff]
wps/cabbiev2.240x320x16.wps [diff]
wps/cabbiev2.240x400x16.wps [diff]
wps/cabbiev2.320x240x16.mrobe500.wps [diff]
wps/cabbiev2.320x240x16.wps [diff]
wps/cabbiev2.320x480x16.wps [diff]
wps/cabbiev2.400x240x16.wps [diff]
wps/cabbiev2.480x800x16.wps [diff]
wps/cabbiev2.800x480x16.wps [diff]
wps/cabbiev2.96x96x16.wps [diff]
James D. Smith
2021-05-20 e910f63bba: lua add a way to filter settings on read rather than dumping all the settings allow a filter function to choose desired settings

in menucoresettings you can see an how to do exact text matches or wilcard matches you can even use luas version of regex
apps/plugins/lua/include_lua/menucoresettings.lua [diff]
apps/plugins/lua/include_lua/rbsettings.lua [diff]
William Wilgus
2021-05-19 dcff9b85a3: lua latebound function update

return the nextfunction and nil instead of pairs it allows a faster return to lua rather than calling the lua function pcall(fnpairs) from c and returning the result back into lua to kick off the search yeah, no clue why I didn't realize that before..

testing in x86 and ARM.. its more RAM efficient to do the initial creation of the stack in lua code for the __pairs functon its not faster but being that its a one time hit per iter creation the reduced churn alone should be worth it along with a reduced peak RAM usage

fix bug where a failed module can not be reloaded

optimize filetol

fix potential bug in splash scroller when no break character is found
apps/plugins/lua/lauxlib.c [diff]
apps/plugins/lua/loadlib.c [diff]
apps/plugins/lua/lparser.c [diff]
apps/plugins/lua/rockaux.c [diff]
William Wilgus
2021-05-19 0c62177575: FS12845: Fix uninitialized read
firmware/drivers/synaptics-mep.c [diff]
Solomon Peachy
2021-05-19 3ed035769c: FS #9093: Database initialization hangs if there's no music file on the player

Original patch by William Poetra Yoga Hadisoeseno
apps/tagcache.c [diff]
Solomon Peachy
2021-05-18 0c4c1e6042: rbspeex: Fix build when using system speex libraries
tools/rbspeex/Makefile [diff]
Solomon Peachy
2021-05-15 64bed8361d: FS #13289: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2021-05-14 ad64293ae6: X1000: fix SD driver issues

- Added panic check for unaligned addresses
- Properly set 50 MHz high-speed mode timings
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
Aidan MacDonald
2021-05-14 eb0336eded: FAT: align writes when bounce buffering is enabled

Motivation: turns out the DMA in the M3K's MSC controller is buggy, and can't handle unaligned addresses properly despite the HW docs claiming otherwise.

Extending the FAT driver bounce buffering code is the easiest way to work around the problem (but probably not the most efficient).
firmware/drivers/fat.c [diff]
Aidan MacDonald
2021-05-14 ff28d238b8: ibasso: DX50/DX90 support 192KHz audio

Also bump max battery capacity to 7300mAh, to accomodate oversized aftermarket units that require case mods.
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
Solomon Peachy
2021-05-13 237919f1c3: Fix invalid use of bool in doom

Settings code tries to cast the bool pointer to an int pointer and then write through it, which makes AddressSanitizer whine.
apps/plugins/doom/doomdef.c [diff]
apps/plugins/doom/doomdef.h [diff]
apps/plugins/doom/m_misc.c [diff]
Aidan MacDonald
2021-05-12 942b1dd072: FS13094: Fix a divide-by-zero crash parsing zero-length WMA/ASF files
lib/rbcodec/metadata/asf.c [diff]
Solomon Peachy
2021-05-12 84a3cbe24d: ErosQ: Small keymap changes

- Move WPS Stop to Power (Hold)
- Add WPS Hotkey to Wheel scroll Fwd/Back
- Add WPS Quickscreen to Play (Hold)
- Add Tree Hotkey to Play (Hold)
apps/keymaps/keymap-erosq.c [diff]
firmware/export/config/aigoerosq.h [diff]
Dana Conrad
2021-05-12 b895fb6643: Add tm->yday to RTC ports missing it
firmware/common/timefuncs.c [diff]
firmware/drivers/rtc/rtc_d2.c [diff]
firmware/drivers/rtc/rtc_ds1339_ds3231.c [diff]
firmware/drivers/rtc/rtc_e8564.c [diff]
firmware/drivers/rtc/rtc_mr100.c [diff]
firmware/drivers/rtc/rtc_pcf50605.c [diff]
firmware/drivers/rtc/rtc_pcf50606.c [diff]
firmware/drivers/rtc/rtc_rx5x348ab.c [diff]
firmware/drivers/rtc/rtc_s35380a.c [diff]
firmware/drivers/rtc/rtc_s35390a.c [diff]
firmware/drivers/rtc/rtc_s3c2440.c [diff]
firmware/include/timefuncs.h [diff]
firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c [diff]
firmware/target/arm/s5l8702/ipod6g/rtc-6g.c [diff]
Moshe Piekarski
2021-05-12 3f26fcf340: FiiO M3K: New bootloader

SPL and UCL-compressed bootloader are now packed into one output, bootloader.m3k, eliminating the separate SPL build phase.

The Rockbox bootloader now has a recovery menu, accessible by holding VOL+ when booting, that lets you back up, restore, and update the bootloader from the device.
bootloader/SOURCES [diff]
bootloader/fiiom3k.c [diff]
firmware/SOURCES [diff]
firmware/export/installer.h [deleted]
firmware/target/mips/ingenic_x1000/boot.lds [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/boot.make [new]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.h [new]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-target.h [deleted]
firmware/target/mips/ingenic_x1000/nand-x1000-err.h [deleted]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl-start.S [new]
firmware/target/mips/ingenic_x1000/spl-x1000-defs.h [deleted]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/x1000boot.make [new]
tools/configure [diff]
tools/root.make [diff]
Aidan MacDonald
2021-05-12 cc22df198d: jztool: Support new M3K bootloader
rbutil/jztool/Makefile [diff]
rbutil/jztool/README.md [diff]
rbutil/jztool/include/jztool.h [diff]
rbutil/jztool/jztool.c [diff]
rbutil/jztool/src/context.c [diff]
rbutil/jztool/src/device_info.c [diff]
rbutil/jztool/src/fiiom3k.c [diff]
rbutil/jztool/src/identify_file.c [diff]
rbutil/jztool/src/paramlist.c [deleted]
rbutil/jztool/src/usb.c [diff]
rbutil/jztool/src/x1000.c [deleted]
rbutil/libtools.make [diff]
Aidan MacDonald
2021-05-12 3748117ee3: Add standalone UCL decompressor
firmware/common/ucl_decompress.c [new]
firmware/export/ucl_decompress.h [new]
Aidan MacDonald
2021-05-12 9a19360398: Add microtar library (for use by M3K bootloader)

This is an MIT-licensed library for reading and writing v7 format tar files. The version here is my fork, which fixes security issues in the original code (it hasn't been updated in 4 years, probably abandoned by the author).
docs/CREDITS [diff]
lib/microtar/LICENSE [new]
lib/microtar/README.md [new]
lib/microtar/SOURCES [new]
lib/microtar/microtar.make [new]
lib/microtar/src/Makefile [new]
lib/microtar/src/microtar-rockbox.c [new]
lib/microtar/src/microtar-stdio.c [new]
lib/microtar/src/microtar.c [new]
lib/microtar/src/microtar.h [new]
Aidan MacDonald
2021-05-07 adff45ca21: lua -- temp loader

fix a few bugs, improve memory usage
apps/plugins/lua/include_lua/create_kbd_layout.lua [diff]
apps/plugins/lua/include_lua/menubuttons.lua [diff]
apps/plugins/lua/include_lua/menucoresettings.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/include_lua/temploader.lua [diff]
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua_scripts/print_lua_func.lua [diff]
William Wilgus
2021-05-06 15ad1c42db: X1000: simplify NAND driver

- Removed unnecessary layers of generic code
- Software ECC is gone since we don't need it now (and maybe not ever)
- Removed bounce buffering, so callers must now align buffers
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/nand-fiiom3k.c [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/nand-target.h [deleted]
firmware/target/mips/ingenic_x1000/nand-x1000-err.h [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
2021-05-05 244aad750c: Update the english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-05-04 9b2f23319c: lua fix yellow and add temploader

temp loader allows some lua requires to be loaded and later garbage collected unfortunately the module needs to be formatted in such a way to pass back a call table in order to keep the functions within from being garbage collected too early

BE AWARE this bypasses the module loader which would allow code reuse so if you aren't careful this memory saving tool could spell disaster for free RAM if you load the same code multiple times
apps/plugins/lua/include_lua/create_kbd_layout.lua [diff]
apps/plugins/lua/include_lua/temploader.lua [new]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua/rocklib.c [diff]
William Wilgus
2021-05-04 489a5f3ff7: lua add ability to use custom kbd layouts

bring custom keyboard layouts to lua conversion to the proper format requires create_kbd_layout.lua just pass a lua string with your desired layout
apps/plugins/lua/include_lua/create_kbd_layout.lua [new]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/lua_scripts/print_lua_func.lua [diff]
William Wilgus
2021-05-03 4f83e66cd4: FS #13287 - Load a newly saved playlist and resume where it was

Works from any playlist saving operation accessed from the While Playing Screen, all other playlist saving operations are unchanged.

Now a user-selectable setting! Located in General Settings -> Playlists -> Current Playlist -> Reload After Saving (Yes/No)
apps/filetree.c [diff]
apps/filetree.h [diff]
apps/iap/iap-lingo4.c [diff]
apps/lang/english.lang [diff]
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/playlist_options.tex [diff]
Dana Conrad
2021-05-01 49edfc237b: lcd_putsxyofs 16 bit lcd_mono_bitmap_part [AS]

'Bugfix' mono_bitmap_part reads ahead in the buffer, if the height is <= char bit pixels other memory gets read found with [Address Sanitizer]

also g#3332 since this is clearly a problem across the code instead place the check for height < 8 in the lcd_mono_bitmap_part function
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
2021-04-30 20cd89908d: lua submenus add a way to dynamically add items

updated example script and renamed some functions as well

fixed bug in printtable cursor position if greater than maxlines for the screen would reset to item 1

now we move the list start and select it
(and try to center it on the screen)

fixed a few bugs in the add_menu code
apps/plugins/lua/include_lua/printsubmenu.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua_scripts/submenu_demo.lua [diff]
William Wilgus
2021-04-29 48b77898dc: jztool: portability fixes for Mac
rbutil/jztool/Makefile [diff]
rbutil/jztool/src/x1000.c [diff]
Aidan MacDonald
2021-04-28 16a1993cad: x1000: Remove some #ifdef SPL in the sfc/nand code
firmware/target/mips/ingenic_x1000/fiiom3k/nand-target.h [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.h [diff]
Aidan MacDonald
2021-04-28 423fcf951a: x1000: Rewrite clk_get code so it's more data driven

This is not pretty, but at least it should be usable by the SPL.
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/clk-x1000.h [diff]
Aidan MacDonald
2021-04-28 20fc928221: x1000: Centralize common definitions, memory layout
apps/plugins/plugin.lds [diff]
firmware/export/cpu.h [diff]
firmware/export/x1000.h [new]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
Aidan MacDonald
2021-04-28 ed8c977e2f: x1000: Fix stupid bug in the SPL

This overwrote the first 2 instructions of crt0 in the bootloader! I'm really not sure how this *didn't* cause a fatal exception.

This address isn't special as far as I know, so just move it to the TCSM by making it a static variable.
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
Aidan MacDonald
2021-04-28 63b6281505: lua add submenu module + cleanup

allows menus + submenus + context menus all with simple tables menu_t which is a table of strings func_t which are the corresponding functions to go with those strings

see lua_scripts/submenu_demo.lua
apps/plugins/lua/include_lua/menubuttons.lua [new]
apps/plugins/lua/include_lua/menucoresettings.lua [new]
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua/include_lua/printmenus.lua [diff]
apps/plugins/lua/include_lua/printsubmenu.lua [new]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua_scripts/submenu_demo.lua [new]
William Wilgus
2021-04-26 d5695822a7: MIPS: remove .MIPS.abiflags section

The abiflags data is only used to communicate ABI information to a program loader -- you can see what info is stored with readelf -A. Dropping it shaves 24 bytes off of every binary (including plugins).
apps/plugins/plugin.lds [diff]
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/boot.lds [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
2021-04-26 7d0d32dbc6: Nuke the never-functional iriver ifp-7xx port

It never worked, and hasn't compiled in something like a decade, Given the HW capabilities (limited onboard flash, no expandability) there's really no point in trying to fix/complete it.
apps/SOURCES [diff]
apps/keymaps/keymap-ifp7xx.c [deleted]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/greyscale.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/grey_core.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/pegbox.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/rockblox.c [diff]
apps/plugins/rockboy/rockboy.c [diff]
apps/plugins/stopwatch.c [diff]
apps/plugins/text_viewer/tv_button.h [diff]
apps/plugins/zxbox/keymaps.h [diff]
apps/plugins/zxbox/zxbox_keyb.c [diff]
firmware/SOURCES [diff]
firmware/drivers/ata_flash.c [deleted]
firmware/export/config.h [diff]
firmware/export/config/iriverifp7xx.h [deleted]
firmware/export/gdb_api.h [diff]
firmware/export/ifp_usb_serial.h [deleted]
firmware/ifp_usb_serial.c [deleted]
firmware/rolo.c [diff]
...and 28 more files.
Solomon Peachy
2021-04-26 3ba2f6e5c7: Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAX

They were never finished, never saw any release ever, and haven't compiled for the better part of a decade. Given their HW capabilities [1], they are not worth trying to fix.

[1] 1-2MB RAM, ~256MB onboard flash, no expandability
apps/SOURCES [diff]
apps/keymaps/keymap-c100.c [deleted]
apps/keymaps/keymap-iaudio67.c [deleted]
apps/keymaps/keymap-logikdax.c [deleted]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/pacbox/pacbox.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/plugin.lds [diff]
...and 73 more files.
Solomon Peachy
2021-04-25 77188e41f5: X1000: remove bogus GPIO Z mutex

There's absolutely no way for gpio_config() to get called from two different threads due to the co-operative threading model, and it is unsafe to call from IRQ context no matter what we do.
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
Aidan MacDonald
2021-04-25 a2dfafb2b2: X1000: disable SFC DMA
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
Aidan MacDonald
2021-04-25 d6220f618b: MIPS: emulate -ffunction-sections with macros in mmu-mips

Using a macro to put each function in its own .icode-based section allows us to put the functions in IRAM _and_ have linker GC. This removes a troublesome #ifdef BOOTLOADER_SPL on the X1000 target.
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/boot.lds [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/mmu-mips.h [diff]
Aidan MacDonald
2021-04-25 c37555d30d: FiiO M3K: remove the bootloader install debug menu

This menu serves no useful purpose anymore. I plan on adding an improved version of this functionality to the bootloader instead.
apps/debug_menu.c [diff]
Aidan MacDonald
2021-04-24 557ff6a981: lua print_button script

also allow splash_scroller to be used as static text display
apps/plugins/lua/rbdefines_helper.pl [diff]
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua_scripts/print_buttons.lua [new]
William Wilgus
2021-04-23 14c6bb798d: Sync opus codec to upstream git
lib/rbcodec/codecs/libopus/README.rockbox [diff]
lib/rbcodec/codecs/libopus/SOURCES [diff]
lib/rbcodec/codecs/libopus/analysis.c [new]
lib/rbcodec/codecs/libopus/analysis.h [new]
lib/rbcodec/codecs/libopus/celt/_kiss_fft_guts.h [diff]
lib/rbcodec/codecs/libopus/celt/arch.h [diff]
lib/rbcodec/codecs/libopus/celt/arm/arm2gnu.pl [new]
lib/rbcodec/codecs/libopus/celt/arm/arm_celt_map.c [new]
lib/rbcodec/codecs/libopus/celt/arm/armcpu.c [new]
lib/rbcodec/codecs/libopus/celt/arm/armcpu.h [new]
lib/rbcodec/codecs/libopus/celt/arm/armopts.s.in [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_fft_ne10.c [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_mdct_ne10.c [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_neon_intr.c [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_pitch_xcorr_arm.s [new]
lib/rbcodec/codecs/libopus/celt/arm/fft_arm.h [new]
lib/rbcodec/codecs/libopus/celt/arm/fixed_arm64.h [new]
lib/rbcodec/codecs/libopus/celt/arm/fixed_armv4.h [diff]
lib/rbcodec/codecs/libopus/celt/arm/fixed_armv5e.h [diff]
lib/rbcodec/codecs/libopus/celt/arm/mdct_arm.h [new]
lib/rbcodec/codecs/libopus/celt/arm/pitch_arm.h [new]
lib/rbcodec/codecs/libopus/celt/arm/pitch_neon_intr.c [new]
lib/rbcodec/codecs/libopus/celt/bands.c [diff]
lib/rbcodec/codecs/libopus/celt/bands.h [diff]
lib/rbcodec/codecs/libopus/celt/celt.c [diff]
lib/rbcodec/codecs/libopus/celt/celt.h [diff]
lib/rbcodec/codecs/libopus/celt/celt_decoder.c [diff]
lib/rbcodec/codecs/libopus/celt/celt_encoder.c [new]
lib/rbcodec/codecs/libopus/celt/celt_lpc.c [diff]
lib/rbcodec/codecs/libopus/celt/celt_lpc.h [diff]
...and 256 more files.
William Wilgus
2021-04-23 75d9393796: rockboy: Properly fix the GCC11 code style warnings.
apps/plugins/rockboy/cpu.c [diff]
Solomon Peachy
2021-04-23 aab72f969f: ata: Rework power management behavior a bit

After continued reports of corruption using iFlash adapters, I went digging for more clues, and this combination of changes seemed to solve data corruption with the iFlash adapters on the ipod video:

1) Instead of SLEEP, use STANDBY_IMMEDIATE when we detect drive as an SSD or CFA-compliant device. The latter is technically higher power than the former, but what this means in practice is unclear. 2) Don't check ATA powermanagement flag prior to issuing powermgmt commands. This reverts the previous "workaround" for the FC1307A -- and PM is a mandatory part of the ATA spec for any CFA device. 3) Prior to issuing SLEEP/STANDBY_IMMEDIATE, issue FLUSH CACHE. The ATA spec says this is redundant for the latter, but says nothing about the former. Either way it is always safe to call first. 4) Delete all other FC1307A_WORKAROUND code related to powermgmt flags.
firmware/drivers/ata.c [diff]
Solomon Peachy
2021-04-23 0271c0ed36: rockboy: Upstream code style trips GCC11 warnings.

Code in cpu.h is correct, so just disable -Wmisleading-indentation for the specific sections that matter.
apps/plugins/rockboy/cpu.c [diff]
Solomon Peachy
2021-04-23 ebb9090004: xzbox: Fix misleading indentation that triggered GCC11 warnings
apps/plugins/zxbox/zxbox_keyb.c [diff]
Solomon Peachy
2021-04-23 03695429cf: blackjack: Fix warning triggered by GCC 11
apps/plugins/blackjack.c [diff]
Solomon Peachy
2021-04-23 39939a164b: Promote FiiO M3K (native) to "unstable"

Now nightly and voice builds will show up.
tools/builds.pm [diff]
Solomon Peachy
2021-04-23 f968d6032a: ipodpatcher: fix warning for apple stop sign constant

Convert both instances of the apple stop sign constant to char array instances. This ensures sizeof will work as expected when applied to the constant.
rbutil/ipodpatcher/ipodpatcher.c [diff]
tools/scramble.c [diff]
James Buren
2021-04-22 79d1b68fe2: FiiO M3K: disable USB DMA

Although data transfer is reliable with DMA, it seems to cause hangs and lockups during the early stages of connection and it's not clear what the cause might be.
firmware/export/config/fiiom3k.h [diff]
Aidan MacDonald
2021-04-21 a544c8467d: FiiO M3K: increase bootloader font size

The default font was very small and hard to read.
tools/configure [diff]
Aidan MacDonald
2021-04-21 75cb8ba8a4: FiiO M3K/X1000: add USB support

This only required a minor patch to the usb-designware driver due to DMA requiring physical addresses -- on the X1000, these differ from virtual addresses so we have to do the usual conversion.

Both the mass storage and HID drivers work, but there are a few issues so this can't be considered 100% stable yet.

- Mass storage might not be detected properly on insertion, and USB has to be replugged before it shows up
- HID driver may occasionally panic or hang the machine
apps/keymaps/keymap-fiiom3k.c [diff]
bootloader/fiiom3k.c [diff]
firmware/SOURCES [diff]
firmware/drivers/usb-designware.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
firmware/target/mips/ingenic_x1000/usb-x1000.c [new]
firmware/target/mips/ingenic_x1000/x1000/cpm.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
2021-04-21 088ebb5fac: Minor enhancements to axp173 driver

- Added register names to reduce usage of magic numbers
- Added function to control max charging current, needed for USB
- Corrected comment about axp173, since FiiO M3K has an axp192
firmware/drivers/axp173.c [diff]
firmware/export/axp173.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
2021-04-21 f6d3680cb8: Make sure battery menu is shown if it contains settings

The #if statement didn't reflect all menu items in the battery menu, so if the USB charging enable setting was the only one present, the entire menu would be hidden.
apps/menus/settings_menu.c [diff]
Aidan MacDonald
2021-04-21 9313274302: FiiO M3K: fix LCD weirdness when booting via RoLo
firmware/rolo.c [diff]
Aidan MacDonald
2021-04-20 27b44bca73: configure: Get rid of the unused NOISEFLOOR option in voicefile generation
tools/configure [diff]
Solomon Peachy
2021-04-20 acda37edd1: lua print table put_line a do_menu alternative

add stylized lines to lua

the exported do_menu has a severe limitation of 64 items it also requires double the memory

put_line is the way rockbox builds menus

update printtable

user config from core -- done code cleanup fixed for 1-bit screens changed button behavior fixed for 2-bit screens
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua/include_lua/printmenus.lua [new]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua/rbdefines_helper.pl [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/plugins/lua_scripts.lua [diff]
apps/plugins/lua_scripts/file_browser.lua [diff]
apps/plugins/lua_scripts/fileview.lua [diff]
apps/plugins/lua_scripts/fileviewers.lua [diff]
apps/plugins/lua_scripts/printmenu.lua [deleted]
apps/plugins/lua_scripts/rlimg.lua [diff]
apps/plugins/lua_scripts/tagnav.lua [diff]
William Wilgus
2021-04-18 c71a47f649: Move usb-designware out of ARM target tree
firmware/SOURCES [diff]
firmware/target/arm/usb-designware.c firmware/drivers/usb-designware.c [rename]
Aidan MacDonald
2021-04-17 92140752d7: FiiO M3K: disable CPU frequency switching

After conducting some simplistic tests, I found that the power usage did not appear to be affected by the CPU frequency.

I tested by playing back a 44.1 KHz FLAC file on single track repeat, and measured current with the AXP173's battery discharge current ADC. The button and LCD backlights were set to always on. Headphones were unplugged and the volume was muted to eliminate any influence from the headphone amp.

On average the current usage was between 78-81 mA at 1008 MHz, 252 MHz, and 112 MHz. If anything, 1008 MHz drew _less_ current than the lower frequencies, by about 1-3 mA.

A possible explanation for this, assuming it's not just a bias of the test, is that the CPU idle state saves so much power that it's better to maximize the real time that the CPU spends idling. More systematic testing is needed to confirm this.
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/kernel-x1000.c [diff]
Aidan MacDonald
2021-04-17 fceffb7d4a: x1000: disable CPU idle stats by default

There's no point including this in normal builds: the stats are not used for anything, they are not really of interest to anyone except developers, and add a small overhead to the kernel tick.
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/kernel-x1000.c [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
2021-04-17 01d1eb4258: FiiO M3K/X1000: Do system clock initialization in the SPL

Initializing the clocks in the SPL brings Rockbox in line with how the FiiO M3K's original SPL works. It's likely other X1000 devices do this too.

There was a logic error in the previous setup: the code falsely assumed that DDR memory would always be running from MPLL, but it would be switched to APLL by the bootloader. Rockbox would then try to re-init APLL, albeit with the same parameters. Maybe this was the cause of the boot hang on some units.
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
2021-04-17 e123c5d2f2: x1000: don't reset all GPIOs at boot

What we really want is to avoid any interrupts being generated before the drivers which handle them are properly initialized. Intead of trashing all GPIOs, search for the problem pins and fix them, leaving the others alone.

This fixes the M3K's button light flickering on boot and should stop the M3K from entering a potentially confusing "dead" state where all the lights are off but the CPU is still on.
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
Aidan MacDonald
2021-04-17 b41d53792c: jztool: New utility for installing a bootloader on FiiO M3K

At present, this is just a command line tool for Linux only.

Integrating this with the Rockbox utility and porting to other platforms should be straightforward; the README contains more information.
.gitignore [diff]
rbutil/jztool/Makefile [new]
rbutil/jztool/README.md [new]
rbutil/jztool/include/jztool.h [new]
rbutil/jztool/jztool.c [new]
rbutil/jztool/src/buffer.c [new]
rbutil/jztool/src/context.c [new]
rbutil/jztool/src/device_info.c [new]
rbutil/jztool/src/fiiom3k.c [new]
rbutil/jztool/src/identify_file.c [new]
rbutil/jztool/src/jztool_private.h [new]
rbutil/jztool/src/paramlist.c [new]
rbutil/jztool/src/usb.c [new]
rbutil/jztool/src/x1000.c [new]
Aidan MacDonald
2021-04-17 1b8542490d: x1000: Redesign SPL, and allow it to flash the bootloader

SPL is now designed so core X1000 code is in control of the boot, under the reasonable assumption that the device boots from flash. It should not be too hard to adapt to other X1000 ports.

The biggest functional change is that the SPL can now read/write the flash, under the control of a host computer. The SPL relies on the boot ROM for USB communication, so the host has to execute the SPL multiple times following a protocol.
bootloader/SOURCES [diff]
firmware/SOURCES [diff]
bootloader/fiiom3k-spl.c firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [rename]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-target.h [new]
firmware/target/mips/ingenic_x1000/spl-x1000-defs.h [new]
bootloader/x1000-spl.c firmware/target/mips/ingenic_x1000/spl-x1000.c [rename]
firmware/target/mips/ingenic_x1000/spl-x1000.h [new]
Aidan MacDonald
2021-04-17 85fbbd9c7f: 16 bit lcd_mono_bitmap

'Bugfix' mono_bitmap_part reads ahead in the buffer, if the height is <= char bit pixels other memory gets read
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
2021-04-17 afe80742a5: Fix Pictureflow bugs

It turns out that aa_cache.buf, used to store decoded album art during background scanning, was not correctly allocated and overlapped with memory allocated for buflib. This was what caused all the segfaults.

Also fixed a logic error in read_pfraw(), which returns a buflib handle on success, but also returned 0 on failure -- since 0 is a valid buflib handle, it should return -1 on failure instead.
apps/plugins/pictureflow/pictureflow.c [diff]
Aidan MacDonald
2021-04-17 4dc602dd7f: erosq: Tweak volume scale to be approximately correct

Tested on eros q, everything measured from line out, open circuit.

- volume steps were approximately double the dB they were labelled as, so "-2 dB" would result in a change of about -4 dB from maximum (0, +6.2dBV)
- maximum volume defining the line out volume only changed every 10 values, and then was not close to correct- "-10 dB" resulted in -2.5 dB from maximum

This gets the volume dB approximately correct, and maximum volume correctly sets the line out volume. I was unable to get odd values in the max volume to work, so set the step size to 2 instead of one.

For "consumer level" (-10dBV), set to -16. For "Pro level" (+4dBu -> ~1.8dBV), set to -4.
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/export/erosqlinux_codec.h [diff]
Dana Conrad
2021-04-16 a9d3e9a13d: The Matrix plugin -- Bugfix

Off by one errorS in the matrix plugin

might even say its the matrix plugin re-loaded
apps/plugins/matrix.c [diff]
William Wilgus
2021-04-14 42dba708e3: hosted: Don't open alsa control device directly

It was just being used as a proxy "yeah, we called hw_init()" so just use a flag for that directly.

affects rocker, erosq, xduoo x3ii/x20, and fiiom3klinux
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/fiiolinux_codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2021-04-13 ec4b5c794e: ibasso: Found a reliable way to determine if SD card is present at startup
firmware/target/hosted/ibasso/vold-ibasso.c [diff]
Solomon Peachy
2021-04-12 c0a49d9bdf: ibasso: Default to assuming the external SD card is inserted

Detection at startup is proving to be unreliable. Even if card is not present at startup, upon insertion it will sort itself out properly.
firmware/target/hosted/ibasso/vold-ibasso.c [diff]
Solomon Peachy
2021-04-12 b6fce99046: ibasso: Implement proper PIVOT_ROOT filesystem access

Including direct use of the external SD card mount

Known issue: If SD card is inserted at startup, it must be ejected and reinserted to be registered.
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/ibasso/system-ibasso.c [diff]
firmware/target/hosted/ibasso/vold-ibasso.c [diff]
firmware/target/hosted/ibasso/vold-ibasso.h [diff]
Solomon Peachy
2021-04-11 e4345f2db8: build: Make the lang.h and genlang.h depend on the genlang tool

(So if genlang is updated, regenerate the language headers)
apps/lang/lang.make [diff]
Solomon Peachy
2021-04-11 6ae2b7140c: Fix red in bc416ff590

Most of it was due to checkwps breaking, the rest was m68k with radios.
apps/gui/skin_engine/skin_parser.c [diff]
apps/radio/presets.c [diff]
Solomon Peachy
2021-04-10 bc416ff590: misc: Only include rbpaths.h and string-extra.h in places that need it

(Don't include rbpaths.h in settings.h, or string-extra.h in rbpaths.h)

Build-tested on rocker, erosq, mini2g, nano2g, xduoox3, clipzip, dx50, and uisim
apps/gui/icon.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/menus/eq_menu.c [diff]
apps/menus/playlist_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/playlist_catalog.c [diff]
apps/radio/presets.c [diff]
apps/radio/radioart.c [diff]
apps/scrobbler.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/shortcuts.c [diff]
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/export/rbpaths.h [diff]
firmware/font.c [diff]
Solomon Peachy
2021-04-10 1303be3437: ibasso: Get rid of #include "settings.h" in the button code

(It mucks with paths causing the input device open to fail)
firmware/target/hosted/ibasso/button-ibasso.c [diff]
Solomon Peachy
2021-04-10 448f98d9c0: pp: fix adc mistake where base 10 was used instead of base 16
firmware/target/arm/pp/adc-pp5020.c [diff]
James Buren
2021-04-09 13dbcab6c0: erosq: When mucking with the clickwheel, ensure we keep the screen awake!
firmware/drivers/button.c [diff]
firmware/target/hosted/button-devinput.c [diff]
Solomon Peachy
2021-04-09 cd64aa2b10: xduoox3: Global volume_limit now applies to the line output as well

The X3's line out is a bit hot, at ~4.3Vpp, so allow it to be backed off.

(On my X3, backing it off to -6dB brings Vpp down to ~3.4V)
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
manual/configure_rockbox/sound_settings.tex [diff]
Solomon Peachy
2021-04-09 10facef17b: Skin engine: respect volume decimalization

This is basically the same problem as FS #13272, except it happens on certain themes, eg. rayboradio. The issue only affects targets with decimal volume levels.

Tested the fix using the rayboradio theme on the FiiO M3K and the Fuze+ simulator. Volume was displayed correctly on both.
apps/gui/skin_engine/skin_tokens.c [diff]
Aidan MacDonald
2021-04-09 9847f9c85e: x1000: don't add pointless '1' after SPL signature

I added this because it is present on the FiiO M3K's SPL, but nothing in Ingenic docs suggest this means anything.

Just get rid of it; the M3K boots fine without it.
tools/mkspl-x1000.c [diff]
Aidan MacDonald
2021-04-09 c0a823e2ab: x1000: Trim unused cache functions from the SPL build
firmware/target/mips/ingenic_x1000/system-target.h [diff]
Aidan MacDonald
2021-04-09 54b8e9131c: Revert "sound: add sound_numdecimals() to round out the sound setting query API"

There is already a sound_numdecimals() function, according to Git it's been around since 2005. No need to add another one :).

This reverts commit 92a0ab8789c622afecc47f3b399eda8abf26ee9e.
firmware/export/sound.h [diff]
firmware/sound.c [diff]
Aidan MacDonald
2021-04-09 1e2a9a651c: erosq: Switch to 32-bit PCM output, and do volume scaling in driver

Should improve audio output quality, especially at lower volumes.
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/export/config/aigoerosq.h [diff]
firmware/export/erosqlinux_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2021-04-09 e86d90905b: alsa: Fix an #ifdef typo in 54fcb907c1

HAE_ALSA_32BIT -> HAVE_ALSA_32BIT
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2021-04-09 54fcb907c1: alsa: instead of per-target tests, use HAVE_ALSA_32BIT

Affects all Sony NWZ (linux) and the fiio m3k linux targets.
firmware/export/config/fiiom3klinux.h [diff]
firmware/export/config/sonynwzlinux.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
Solomon Peachy
2021-04-09 e17337c9aa: ErosQ: fix panic on startup caused by ad55da5f

It turns out #include "settings.h" pulls in rbpaths.h which ends up remapping open() to the path-mangling rockbox open().

By defining RB_FILESYSTEM_OS we prevent the remap. My mistake for not testing this before committing!
firmware/drivers/audio/erosqlinux_codec.c [diff]
Solomon Peachy
2021-04-08 ad55da5f87: ErosQ: Set Line Level Output volume

With a full-scale 440Hz tone, the line out voltage measured approx. 5.8Vpp at the 0 setting. WAY too hot!
(9 dBV, in fact)

For 0.894Vpp (-10 dBV - consumer devices), -18 appears to be about right for line level signals, but for "pro" equipment a different level may be desired.

Therefore, the user to cap the line out level by re-using the global volume limit setting.
firmware/drivers/audio/erosqlinux_codec.c [diff]
Dana Conrad
2021-04-08 c77cd7027f: lua print_table add ability to draw a line separator

allows you to draw a line between items
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
William Wilgus
2021-04-08 f8ce18c286: Update the english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-04-08 d2f694696f: configure: Enable easy use of AddressSanitizer with sim builds
tools/configure [diff]
Solomon Peachy
2021-04-07 1b82ebc6e4: Fix: Directory stream not closed in Shortcuts menu
apps/shortcuts.c [diff]
Christian Soffke
2021-04-07 4b26372591: MIPS: make sure to fill 'jr' branch delay slot with 'nop'

Inline assembly in RoLO and the FiiO M3K bootloader used 'jr' to jump to a newly loaded Rockbox binary, but incorrectly left the branch delay slot open. That gives GCC an opening to place illegal instrutions, etc, which might cause an unhandled exception.
bootloader/fiiom3k-spl.c [diff]
bootloader/fiiom3k.c [diff]
firmware/rolo.c [diff]
Aidan MacDonald
2021-04-07 213d372c92: FS #13272: Fix up volume_limit to respect decimilaztion.
apps/menus/sound_menu.c [diff]
firmware/sound.c [diff]
Solomon Peachy
2021-04-07 c5cf15ed02: menu.c submenu items should be limited to MAX_MENU_SUBITEMS

maybe someone is checking somewhere but pretty sure the error message is a buffer overflow
apps/menu.c [diff]
William Wilgus
2021-04-07 da542020c4: FS #13285: Updated Italian Translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2021-04-07 8b56476a2c: list: After drawing scrollbars, explcitly switch back to old viewport.

The viewport used for the scrollbar is allocated on the stack, and falls out of scope before the next call to set_viewport(), which sets a flag in the now-out-of-scope "last" viewport.
apps/gui/bitmap/list.c [diff]
Solomon Peachy
2021-04-06 28c89386af: x1000: Improve NAND driver API

- Proper error codes are now returned from all functions. These codes will be used by a host-side flash tool for error reporting.

- nand_erase_block() was replaced by nand_erase_bytes(). The caller can't know how big an eraseblock is with the current API, so next best thing is to verify the correct alignment inside the call and reject the erase if it isn't properly aligned.

- Fixed typo in nandcmd_block_erase() which would cause an SFC error to be interpreted as success. Yikes.
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000-err.h [new]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
amachronic
2021-04-06 b5558c1cf9: x1000: place SPL's NAND bounce buffers in DRAM

This frees up 2 KiB in the SPL's memory map, leaving more room for code.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
amachronic
2021-04-06 1b314502c8: Remove a duplicate const
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
amachronic
2021-04-06 0fb333c85e: rbcodec: Fix typo in include guard
lib/rbcodec/codecs/libgme/m3u_playlist.h [diff]
amachronic
2021-04-05 74ae18cc8a: fiiom3k_linux: Enable HAVE_TOUCHPAD and add in missing bits
firmware/export/config/fiiom3klinux.h [diff]
firmware/target/hosted/fiio/button-fiio.c [diff]
firmware/target/hosted/fiio/button-target.h [diff]
Solomon Peachy
2021-04-05 1aed109fa8: Add ability to always have autolock on

Tested on ErosQ

Added a setting in the Advanced Softlock menu to always have autolock on, rather than having to "arm" it with the softlock button. Lock/Unlock still works the same with this on, but when the screen turns off, the device always ends up in the locked state. Requires Autolock On to be set as well, and the normal Autolock functionality is unchanged with this off.

Caveat: the power/softlock button must be pressed at least once after powering on the device or enabling the feature. After that, it should consistently always "arm" the autolock.

Added feature to manual in manual/configure_rockbox/system_options.tex. Also updated some labels I had changed in the Advanced Key Lock menu and added information for Disable All Lock Notifications in a previous commit. Shared items also updated in manual/configure_rockbox/display_options.tex for selective backlight.
apps/action.c [diff]
apps/action.h [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
manual/configure_rockbox/display_options.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
Dana Conrad
2021-04-04 962d412917: hdd1630/hdd6330: update battery capacities

Ensure the default setting reflects what the service manual says the official battery capacity is. Change the ranges to reflect what replacement batteries are actually available.

This range is actually much shorter in reality due to these units requiring the rarer 3 pin battery type that uses a thermistor. As such there's only one real replacement battery for each.

So the HDD1630 caps out around 700 mah while the HDD6330 caps out around 680 mah.
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
James Buren
2021-04-04 4bc7bafc68: Enable QuickScreen in filtered dir modes & playlist viewer

Will allow the QuickScreen to be accessed in the playlist catalogue and when editing a playlist using the playlist viewer.
apps/playlist_viewer.c [diff]
apps/tree.c [diff]
Christian Soffke
2021-04-03 4f374b3862: QuickScreen: Update status bar after changing volume

So that (e.g.) a skin's custom volume bar doesn't appear choppy during volume adjustments
apps/gui/quickscreen.c [diff]
Christian Soffke
2021-04-03 e09df1ce5b: Fix accidental fallthrough in FiiO M3K simulator keymap
uisimulator/buttonmap/fiio-m3k.c [diff]
Aidan MacDonald
2021-04-02 5d292d9283: README: Update cross-toolchain info
docs/README [diff]
Solomon Peachy
2021-04-02 2ebfbd3b7c: docs: Add myself to revelant parts of the MAINTAINERS file.
docs/MAINTAINERS [diff]
Solomon Peachy
2021-04-02 39db911164: h300: Fix html manual generation
manual/platform/iriverh300.tex [diff]
Solomon Peachy
2021-04-02 afec380a0d: gigabeats: Fix hang on startup caused by a stack overflow

headphone ADC thread stack was slightly too small. Bump it up a bit.

(it was _perfectly_ sized for the prior older toolchain+optimization flags...)
firmware/target/arm/imx31/gigabeat-s/headphone-gigabeat-s.c [diff]
Solomon Peachy
2021-04-01 9e15c19891: build: Make it easier to disable plugins

Instead of 'ifdef ENABLEPLUGINS' (which always gets set) use
'ifeq(yes,$(ENABLEPLUGINS))' which means any value other than 'yes' is treated as a negative.
tools/root.make [diff]
Solomon Peachy
2021-04-01 2f785c7797: PP: More cache invalidation fixes

Take into account the size of the pointer in the loop termination condition.
firmware/target/arm/pp/system-pp502x.c [diff]
Solomon Peachy
2021-04-01 9f7f1a841a: PP: Use CURRENT_CORE instead of IF_COP_CORE(CPU)

Use of IF_COP_CORE was mistakenly introduced as part of 89acde6af2, effectively short-circuiting multiple tests resulting in the code paths always being executed, on both cores.

Use the correct macro, so per-CPU paths are handled properly.
firmware/target/arm/pp/system-pp502x.c [diff]
Solomon Peachy
2021-04-01 0b20038d87: FiiO M3K: Hopefully fix the sim build
firmware/export/config/fiiom3k.h [diff]
Solomon Peachy
2021-04-01 674c07d654: (Fix FS #13281) Revert "Restore playlist state as necessary before checking whether current playlist has been modified"

This reverts commit 46085c897854d145b5313c009fb70af428f0e6bd.
apps/playlist.c [diff]
Christian Soffke
2021-04-01 89acde6af2: H10 PP Crash -- Fixed

This appears to finally fix the issue turns out the status register we were writing was only for the CPU COP cache flush wiped out the CPU cache
--

Added some defines to cut down on the magic numbers Added some comments explaining such

Set the address to full 20 bit address 0x1FFFFF which is then left shifted 11 internally -- somewhere around 4GB?

Link explains the cache status bits https://daniel.haxx.se/sansa/memory_controller.txt
firmware/export/pp5020.h [diff]
firmware/target/arm/pp/system-pp502x.c [diff]
William Wilgus
2021-03-28 058a9ec945: Add M3K native to the simulator
apps/debug_menu.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-fiiom3k.bmp [new]
uisimulator/buttonmap/SOURCES [diff]
uisimulator/buttonmap/fiio-m3k.c [new]
Solomon Peachy
2021-03-28 afd8361d08: Add native FiiO M3K to builds.pm

Note: It's marked as 'unusable' right now, so it won't show up on build.rockbox.org, nor will daily & voice files be created.
tools/builds.pm [diff]
Solomon Peachy
2021-03-28 3ec66893e3: New port: FiiO M3K on bare metal
.gitignore [diff]
apps/SOURCES [diff]
apps/debug_menu.c [diff]
apps/features.txt [diff]
apps/gui/option_select.h [diff]
apps/keymaps/keymap-fiiom3k.c [new]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
...and 113 more files.
Aidan MacDonald
2021-03-27 83fcbedc65: rk27xx: Take advantage of STORAGE_NEEDS_BOUNCE_BUFFER

(And get rid of its custom realignment code)
firmware/target/arm/rk27xx/sd-rk27xx.c [diff]
firmware/target/arm/rk27xx/system-target.h [diff]
Solomon Peachy
2021-03-27 961ffa61dd: Use STORAGE_NEEDS_BOUNCE_BUFFER instead of STORAGE_NEEDS_ALIGN

Enable its use in the jz47xx MIPS targets.

(accidently committed g#3249 before making these changes)
firmware/drivers/fat.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
Solomon Peachy
2021-03-27 c96dc1c886: xduoox3ii: Wrap the remote key detection in USE_REMOTE

Makes it straightforward to disable for debugging or defective hardware
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2021-03-27 ea1aef9b82: Have FAT filesystem respect storage buffer alignment on reads

This is just a minor cleanup of Solomon Peachy's code, and using per-filesystem buffers instead of a single static buffer.

Tested and working on the FiiO M3K.
firmware/drivers/fat.c [diff]
Aidan MacDonald
2021-03-26 f00eea4434: ErosQ: Fix text entry keymap

Text entry keymap was almost completely backwards, and it was impossible to submit without adding one last character.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
2021-03-25 018372bf39: usb: implement macro for initializing USB strings

This uses the new unicode string literal feature that is available now to greatly simplify the initialization of these special string types. This makes them much more readable at a quick glance.
firmware/export/usb_drv.h [diff]
firmware/usbstack/usb_core.c [diff]
utils/hwstub/stub/main.c [diff]
utils/hwstub/stub/usb_drv.h [diff]
James Buren
2021-03-25 7652e6f8df: rk27xx: Get rid of duplicate STORAGE_WANTS_ALIGN
firmware/export/config/ihifi770.h [diff]
firmware/export/config/ihifi770c.h [diff]
firmware/export/config/ihifi800.h [diff]
Solomon Peachy
2021-03-25 d5cc74ebd8: build: Get rid of suplerflous '-Os' references in linker calls

We should be using global optimization flags, and -Os is already our default.
firmware/target/hosted/agptek/rocker.make [diff]
firmware/target/hosted/aigo/erosq.make [diff]
firmware/target/hosted/fiio/fiio.make [diff]
firmware/target/hosted/samsungypr/ypr0/ypr0.make [diff]
firmware/target/hosted/samsungypr/ypr1/ypr1.make [diff]
firmware/target/hosted/sonynwz/sonynwz.make [diff]
firmware/target/hosted/xduoo/xduoo.make [diff]
tools/root.make [diff]
Solomon Peachy
2021-03-25 d121aa3fe8: build: We don't need sh-specific flags in the pictureflow build.
apps/plugins/pictureflow/pictureflow.make [diff]
Solomon Peachy
2021-03-25 3d9d2de34d: Revert "lcd framebuffer - Bugfix #2 ensure proper alignment"

This reverts commit 3a5c5edbf6cb3ac5e4b65fe036ca50b41fabaa89.

Reason for revert:pulling in system.h breaks SDL

:(
firmware/export/lcd.h [diff]
William Wilgus
2021-03-25 3a5c5edbf6: lcd framebuffer - Bugfix #2 ensure proper alignment

-- apparenty 0x4 aligned doesn't work properly

requires 0x8 alignment at least for the h10 20gb but enabled for all processors that define MEM_ALIGN_ATTR
firmware/export/lcd.h [diff]
William Wilgus
2021-03-24 a53864ed4a: build: Don't overwrite autoconf.h unless it has actually changed

This way we only rebuild the world if something relevant changed.
tools/configure [diff]
Solomon Peachy
2021-03-24 ed99b305a9: Revert "lcd framebuffer - Bugfix ensure proper alignment"

This reverts commit ffee661ab70e9622a05c9c2f24ecf474dad8f042.

Reason for revert: <INSERT REASONING HERE> iAudio M5 `IRAM' overflowed by 48 bytes
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-color-common.c [diff]
William Wilgus
2021-03-24 ffee661ab7: lcd framebuffer - Bugfix ensure proper alignment

-- apparenty 0x4 aligned doesn't work properly

requires 0x8 alignment at least for the h10 20gb but enabled for all arm processors

assign the default framebuffer to the default_vp as well
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-color-common.c [diff]
William Wilgus
2021-03-23 94b40ed314: Add asynchronous I2C bus API

The driver core is based off of the i.MX233 I2C implementation and should work on any platform.
firmware/SOURCES [diff]
firmware/drivers/i2c-async.c [new]
firmware/export/i2c-async.h [new]
Aidan MacDonald
2021-03-23 eedc8934a9: FS13279: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2021-03-23 9a8ec7e0df: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-03-23 e862816773: Fix FS #13278: error message when playing a song with Rockbox for the very first time

The function to check whether a playlist has been modified will now only try to resume a playlist, if the global resume index is not -1.

This also means that replacing a finished (modified) playlist will not produce a warning anymore if Rockbox has been restarted in between. In that respect, the behavior is identical to what it was *before* 46085c897854.
apps/playlist.c [diff]
Christian Soffke
2021-03-23 3682891772: FS13277: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2021-03-23 4d83f7a192: Call powermgmt_init_target() before polling the battery

In the old position of the call, the first battery reading would be made before initializing the target's power management code.

If the target needs to initialize before giving a battery reading, then the first reading would be wrong and the power thread might inappropriately shut down based on a false zero reading.

The new position avoids forcing special-case logic onto the target power management code.
firmware/powermgmt.c [diff]
Aidan MacDonald
2021-03-23 1c54c5227b: Add disable setting for all softlock notifications

Tested on erosq

Added ability to disable all softlock notifications. Setting is
"Disable All Lock Notifications" under Advanced Key Lock Settings.

Tested to make sure it doesn't interfere with backlight exemptions, keylock exemptions, or first press enables backlight only. When enabled, this overrules the existing Disable Notify setting, which only disables the reminders when a button is pressed while the device is already locked.

Also changed phrases in the Advanced Key Lock settings menu to make it more obvious what the options do. Changed LANG_ACTION_PLAY, LANG_ACTION_SEEK, and LANG_ACTION_SKIP from
"[button]" to "Exempt [button]". These language changes will also affect the Backlight Exemptions list, but the wording should be appropriate there as well.

Added LANG_SOFTLOCK_DISABLE_ALL_NOTIFY and LANG_ACTION_VOLUME, changed LANG_VOLUME to LANG_ACTION_VOLUME in display_menu.c for consistency.
apps/action.c [diff]
apps/action.h [diff]
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/menus/settings_menu.c [diff]
Dana Conrad
2021-03-22 bf9fdb13c4: Remove some HAVE_FUNCTIONAL_MODE bits

This was dead code introduced by 0662793c, and got missed by 08ab3aea which should've removed it.
apps/menus/sound_menu.c [diff]
apps/settings.h [diff]
Aidan MacDonald
2021-03-22 90ad920d44: debug_menu: revise how the ATA device bit is reported

According to the ATA specification this bit is used to indicate either an ATA device or a CF compatible card. We use it currently to indicate CF compatible status. So let's change the wording accordingly.
apps/debug_menu.c [diff]
James Buren
2021-03-22 55805e13a4: Add new audiohw capability: POWER_MODE_CAP

This allows the user to make use of the DAC's power-saving abilities. The two modes are "high performance" and "battery saver". This feature is supported by the AK4376 DAC in the upcoming FiiO M3K port.

The setting is only a manual toggle right now, but in the future it could be hooked up to the battery level (via another setting) so it can be toggled automatically when the battery gets too low.
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/menus/sound_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/drivers/audio/sdl.c [diff]
firmware/export/audiohw.h [diff]
firmware/export/audiohw_settings.h [diff]
firmware/export/sound.h [diff]
firmware/sound.c [diff]
Aidan MacDonald
2021-03-22 3a254a92c7: debug_menu: Fix compile error from previous commit
apps/debug_menu.c [diff]
James Buren
2021-03-22 3f88512b3b: debug_menu: report on ATA device type bits

This reports the ATA device type bits in a human readable format so that users can easily identify what their ATA device is claiming to be. This is mainly useful for troubleshooting a possible source of compatibility issues with their DAP. As such this is mainly an aid to CF modders.
apps/debug_menu.c [diff]
James Buren
2021-03-22 a8846e3003: Increase id3v2 max item size on high mem targets

As per multiple user requests: https://forums.rockbox.org/index.php/topic,53319.msg

The acceptable size for id3v2 fields currently maxes out at 240 bytes on targets with more than 2MB of memory.

The comments field, especially for Podcasts, can sometimes contain significantly more characters than Rockbox allows.

The limit for devices with more than 8MB of memory is increased to 500 bytes for individual fields, and to 1800 bytes for the buffer containing all fields.
lib/rbcodec/metadata/metadata.h [diff]
Christian Soffke
2021-03-20 d5676fcd90: If backlight is off and keys are unlocked, power button wakes screen only

tested on erosq

On devices with both a backlight and a softlock button, currently pressing the softlock button while the screen is off and the keypad is unlocked will wake the screen and also lock the keypad. Presumably, the user's intention is to use the device when they hit the softlock button in this state, so wake the screen without locking the keypad.
apps/action.c [diff]
Dana Conrad
2021-03-18 775645e649: Shortcuts.c fix regression from last bugfix

wiped out the lang id check which causes shortcuts menu to pop error message when browsing to folders

shortcut menu uses the return to check for validity
apps/open_plugin.c [diff]
William Wilgus
2021-03-18 48952d498d: shortcuts menu bugfix wps context plugin fallthrough

if you ran a plugin from shortcut menu that originated from the WPS next time you pressed select in the wps it would attempt to run the wps context plugin
apps/root_menu.c [diff]
William Wilgus
2021-03-18 29fa47d43d: Open Plugin cache plugin entry when possible

leave plugin entries in ram and try not to save them unless necessary doesn't use more space just a bit of careful ordering with the buffer
apps/misc.c [diff]
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/root_menu.c [diff]
William Wilgus
2021-03-17 10b873c407: xduoox3: In ROLO, allow the ADC to be shut down.

The hang we were seeing was due to IRAM wonkiness. that's fixed.
firmware/rolo.c [diff]
Solomon Peachy
2021-03-17 e049099165: erosq: Move ACTION_TREE_WPS to list context for use in Files and Database

The ACTION_TREE_WPS (held back button) was a part of the mainmenu context, moved to list context so it would work in Files and Database as well for consistency.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
2021-03-17 25c9f716ce: Manual: Mention/reference viewing playlists through the File Browser
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-17 cdf99f8564: Manual: update description of Current Playlist menu options

- note that availability of options depends on player state
- present options that only insert tracks separately from those that also remove tracks
- add short intro for the latter.
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-16 3bb78b468d: Resume audio after user selects a new song

Music currently doesn't begin playing after the user has selected a new song from a playlist or using the database/file browser, unless another item was already playing or the previous player state was "stopped" but not "paused". This results in an inconsistent user experience. The user's likely intention is to immediately listen to a song they select regardless of the previous player state.
apps/playlist.c [diff]
Christian Soffke
2021-03-16 576b56b35a: Offer function to Clear List & Play Shuffled when playback is stopped

(as per multiple user requests)

When playback is stopped, Rockbox will display an option to clear the current playlist and add selected tracks in random order, if Shuffled Adding options are enabled in Settings.

Insert options will not be displayed anymore when playback is stopped to lessen confusion.
apps/lang/english.lang [diff]
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-16 46085c8978: Restore playlist state as necessary before checking whether current playlist has been modified

Rockbox would previously not present a warning when you were about to replace a modified playlist after restarting the player, unless you first resumed playback.
apps/playlist.c [diff]
Christian Soffke
2021-03-15 efe493de3d: FS13274: Bump max battery capacity for iPod Videos to 3000mAh

3rd party batteries can go this high for users that have performed SSD mods.
firmware/export/config/ipodvideo.h [diff]
Solomon Peachy
2021-03-14 2d8e0f7c90: Customizable Current Playlist Submenu

Options to add shuffled tracks and to queue tracks in the Current Playlist Submenu can now be hidden, or the latter can also be put into its own submenu. Users can customize this in Settings by going to
"General Settings - Playlists -> Current Playlist" and choosing from "Show Shuffled Adding Options" (No / Yes) or "Show Queue Options" (No / Yes / In Submenu).

Allows for the paring down of the set of choices to a minimum of the 4 more common ones for adding tracks to a dynamic playlist (coming from the current total of 11).

Defaults have been set so that users have to actively modify their settings to notice any difference, which makes it unlikely that anybody's workflow would be negatively affected by this change.
apps/lang/english.lang [diff]
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/playlist_options.tex [diff]
manual/main_menu/main.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-14 99383a0f9b: erosq: change keymap to fix back button

Back button's ACTION_TREE_WPS state in the mainmenu context causes a jump back to the main menu root from anywhere in the settings tree. Changing it to a held button fixes this.

Also changed the ACTION_STD_CANCEL functionality of the back button in the standard context to be on release, just because I think it feels better to use.

Also added myself to docs/CREDITS
apps/keymaps/keymap-erosq.c [diff]
docs/CREDITS [diff]
Dana Conrad
2021-03-14 6b39e23074: Updated Italian Translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2021-03-14 406136f7c7: Update english-US "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-03-14 92a0ab8789: sound: add sound_numdecimals() to round out the sound setting query API

A necessary prerequisite for fixing FS #13272
firmware/export/sound.h [diff]
firmware/sound.c [diff]
Solomon Peachy
2021-03-14 714f7a21da: erosq: Have tree context fall back to list context rather than mainmenu.

Allows 'back' to cancel vs always popping into wps, for example.
apps/keymaps/keymap-erosq.c [diff]
Solomon Peachy
2021-03-14 b44dd11b6b: Add soft-keylock to standard context on the x20/x3ii/erosq targets

tap power to lock!
apps/keymaps/keymap-erosq.c [diff]
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
Solomon Peachy
2021-03-12 3d2783f367: Update manual (Working with Playlists)

- Bring description of "Create Playlist" command up to date
- Explain that entries added by Insert Shuffled aren't contiguous
- Introduce Queue options in a short paragraph
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-12 2743bde09b: ATA: Increase delay to power-off when device doesn't support ATA SLEEP

The storage subsystem aggressively issues SLEEPNOW events when idle and power off happened a fixed 2s later. This turns out to not be enough time for FC1307A (eg iFlash) adapters to flush outstanding writes.

So, when we detect a lack of PM support, increase the poweroff delay to 5 seconds to compensate for not being able to issue the ATA SLEEP command.

Hopefully this is enough time. If not, we will have to re-disable PM entirely when we detect these popular adapters. Thankfully that is now just an #ifdef away.
firmware/drivers/ata.c [diff]
Solomon Peachy
2021-03-12 04c29984ce: ipod6g: increase max battery capacity

It's possible to get up to 3000mAh batteries for this device, although it requires that you use an iFlash adapter to make enough space.

Signed-off-by: Caleb Connolly
docs/CREDITS [diff]
firmware/export/config/ipod6g.h [diff]
Caleb Connolly
2021-03-11 043e8a0c5c: Manual: Updates to Playlist Catalogue menu

Keeping in sync with how Rockbox currently works:
- Context menu doesn't include an option to "View Catalogue" anymore
- What used to be the "Playlists" menu is now the context menu of the "Playlist Catalogue"
- Context menu includes an option to "Reset Playlist Catalogue Directory"

Also updated info regarding the "Create Playlist" option.
manual/main_menu/main.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Christian Soffke
2021-03-11 76c9e3f558: Use "Save" instead of "Save Current Playlist" in Playlist Viewer

LANG_SAVE_DYNAMIC_PLAYLIST refers to dynamic playlists.

A playlist being edited is only the "current playlist" in case of a dynamic playlist. When other playlists are edited, the current playlist is different from the edited/selected playlist.

(A possible motivation for differentiating between the two here is because "Current Playlist" is already the title of a submenu in that same context menu where the name refers to the dynamic playlist and not to the selected playlist. "Save Current Playlist" is also used in the Playlist Catalogue's context menu for example, referring to the dynamic playlist.)
apps/playlist_viewer.c [diff]
Christian Soffke
2021-03-11 adac2c8880: Fix "Create Playlist" option in context menu of "Playlist Catalogue"

If the previously selected directory in the file browser was the playlist directory, creating a playlist with all files wouldn't work due to the fact that PLAYLIST_CATALOG_DEFAULT_DIR has an unexpected duplicate leading '/'.

The initialize_catalog function makes sure to remove this from playlist_dir.
apps/playlist_catalog.c [diff]
Christian Soffke
2021-03-11 49c230f630: Manual: fix spelling
manual/rockbox_interface/main.tex [diff]
Christian Soffke
2021-03-11 bd507fc7b4: ATA: When device doesn't support powermgmt, only gate ata sleep command.

The FC1307A ATA->SD chipset (used by the common iFlash adapters) doesn't support mandatory ATA power management commands, leading to massive data corruption if they were issued.

A workaround was identified (54629073ae) that basically disabled all of rockbox's power management code for these adapters, which extends well beyond the specific ATA commands issued.

This patch moves the gating test to the issuance of the actual SLEEP, so that the rest of rockbox's PM code can function as intended. This allows the device to get powered down when idle, yielding potentially significant improvements in battery life.
firmware/drivers/ata.c [diff]
Solomon Peachy
2021-03-11 eb9f05f835: ImageViewer Fix jpeg decoder

Image viewer compiles decoders as a plugin and removes CRT0 A resuklt static vars do not get initialized in decoders
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
William Wilgus
2021-03-11 87e37a4d48: xduoo_x3ii: Improvements in the meymappings!

* PREV/NEXT now swapped so they do what is expected in most contexts
* List and setting context retains prior behavior
* Enable the ADC that reads the headset remote and map the keys.
* As ADC-based remote "events" arrive as press/release pairs, delay the button release.
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/target/hosted/button-devinput.c [diff]
firmware/target/hosted/xduoo/button-target.h [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2021-03-11 a87abdb28f: Special-case the storage names for hibylinux-based hosted targets
apps/features.txt [diff]
apps/lang/english.lang [diff]
Solomon Peachy
2021-03-11 7201c3a685: fiiom3klinux: Fix a build warning.
firmware/target/hosted/power-linux.c [diff]
Solomon Peachy
2021-03-10 555299af9f: hosted: Consolidate the code that polls the battery charging status

affects all hiby targets, fiiom3k, and ibasso dx50/dx90

As well as deduplicating a small pile of code, this also implements hysteresis so we're not doing a sysfs read/lookup multiple times back-to-back every time the power management tick fires.
firmware/SOURCES [diff]
firmware/export/config/fiiom3klinux.h [diff]
firmware/export/config/hibylinux.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/agptek/power-agptek.c [diff]
firmware/target/hosted/agptek/power-agptek.h [diff]
firmware/target/hosted/agptek/powermgmt-agptek.c [diff]
firmware/target/hosted/aigo/power-erosq.c [diff]
firmware/target/hosted/aigo/power-erosq.h [diff]
firmware/target/hosted/aigo/powermgmt-erosq.c [diff]
firmware/target/hosted/fiio/power-fiio.c [diff]
firmware/target/hosted/fiio/power-fiio.h [diff]
firmware/target/hosted/fiio/powermgmt-fiio.c [diff]
firmware/target/hosted/ibasso/power-ibasso.c [diff]
firmware/target/hosted/power-linux.c [new]
firmware/target/hosted/xduoo/power-xduoo.c [diff]
firmware/target/hosted/xduoo/power-xduoo.h [diff]
firmware/target/hosted/xduoo/powermgmt-xduoo.c [diff]
Solomon Peachy
2021-03-10 b3b8310e4e: Move "View" option for playlists up one level

The "View" option for playlists/.m3u files is currently part of the "Current Playlist" submenu even though it refers to the selected file/playlist and has nothing to do with the current playlist. It has been relocated to the context menu of the playlist file where it makes more sense and is easier to get to.
apps/onplay.c [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
Christian Soffke
2021-03-10 73ec3971f7: Fix "Playlist" vs. "Current Playlist" menu terminology in manual

The manual has been updated to reflect the fact that the current title of the submenu for adding music in the context menu is "Current Playlist". (The WPS context menu has a different submenu called "Playlist")
manual/rockbox_interface/browsing_and_playing.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-10 0ba174789b: usb_hid: switch Battery Strength to use feature reports

This means we will no longer send them routinely and instead rely on the HID driver to send them when the host requests it. This also moves the reporting out of the power management code where it probably did not belong in the first place.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/usbstack/usb_hid.c [diff]
James Buren
2021-03-09 777f63d529: Move MIPS cache management functions to IRAM

Previously these were placed in DRAM, which is overwritten by RoLo when it loads a new image, but RoLo must call commit_discard_idcache() after loading the image.
firmware/target/mips/mmu-mips.h [diff]
Aidan MacDonald
2021-03-09 4e6609e9f2: Update english-US translation.
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-03-09 b2d13f1793: UI: Rename "Play Next" to "Clear List & Play Next"

The "Play Next" function replaces the current dynamic playlist, so it makes sense to convey that information to the user when displaying the option in a context menu.
apps/lang/deutsch.lang [diff]
apps/lang/english.lang [diff]
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-09 f4b891e408: Shortcuts Menu -- remove debug statements
apps/shortcuts.c [diff]
William Wilgus
2021-03-09 f348d921b6: Shortcuts Menu -- Update2

make shortcuts menu drop back into WPS on exit different icons for plugins and files versus folders
apps/gui/wps.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2021-03-09 d0ab6b24dc: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2021-03-09 6387d0352e: FS #13263: Rockbox deletes wrong file

The WPS calls onplay() with a pointer to the path of the current track . We need to make a copy of the path so it isn't affected by track changes.
apps/onplay.c [diff]
Christian Soffke
2021-03-09 5c3bbc6a9c: Reset filetype colors when resetting theme colors

Even though filetype colors can't currently be changed by going to Settings->Theme Settings->Colors, a user likely wishes to still reset them when selecting 'Reset Colors' after a .colours file may have been applied by a theme.
apps/menus/theme_menu.c [diff]
Christian Soffke
2021-03-09 3b9a803a5b: Show 'Play Next' option when playback is stopped

1) The Insert functionality was changed in abebc6b to not delete unfinished dynamic playlists anymore. "Play Next" has now been added as an option when playback is stopped. The behavior of
"Play Next" as such has not changed and it is now the consistent way to replace a current playlist in all playback modes.

2) The 'Insert' and 'Insert Shuffle' options will now only be displayed if there is a resumable dynamic playlist
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-03-09 13178d23b8: Shortcuts Menu Update

Change Browser shortcut to the plugin icon drop back into WPS on opx return allow same action to exit shortcut menu as entered -- might be problematic
apps/menu.c [diff]
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2021-03-08 c9e8d96e77: ibasso: Fix the dx50/dx90 build (and usb_mode selection)

(The usb_mode selection setting was actually broken even though it had been previously compiling...)
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
Solomon Peachy
2021-03-07 7c58b6f0db: usb_mode: Missed a #define that led to some sim build failures.
apps/menus/settings_menu.c [diff]
Solomon Peachy
2021-03-07 bbd85cf0c1: settings: Fix inconsistent #ifdefs wrapping the usb_mode stuff

It should be:

#if defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
Solomon Peachy
2021-03-07 9712d375ce: Shortcuts.c -- Update

Fix returns from shortcuts -- should now run plugins Fix formatting of file names to remove path from browser shortcuts
apps/gui/quickscreen.c [diff]
apps/gui/quickscreen.h [diff]
apps/gui/wps.c [diff]
apps/menu.c [diff]
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
apps/tree.c [diff]
William Wilgus
2021-03-07 0dce973729: OpenPlugins Allow opx shortcuts

Allow opx shortcuts to be run through the shortcut menu
apps/open_plugin.c [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-07 207514fb25: voice: Allow voice prompt volume to be configurable

It defaults to 100%, allow it to be dialed back
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/voice_thread.c [diff]
apps/voice_thread.h [diff]
manual/configure_rockbox/voice.tex [diff]
Solomon Peachy
2021-03-07 c16f9142f7: build: Make all other language files "depend" on english.lang

If we update english.lang, we need to re-run genlang on the other language files so any changes are picked up.
apps/lang/lang.make [diff]
Solomon Peachy
2021-03-06 308dd4ffee: Open_plugins.c fix red

rb->strncasecmp
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-06 87ad55b06e: Open_Plugins Add Features

Added an entry 'Add' to the main screen to lessen confusion

side note: its actually a shortcut back to this plugin with flag '-add' passed as a parameter
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-06 f647cde3c7: usb_hid: add support for Battery Strength

This allows rockbox to report its battery status through the HID Battery Strength method that is available through the Device Controls usage page.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_hid_usage_tables.h [diff]
James Buren
2021-03-06 9cf45374e0: Announce_status plugin bugfix use artist prior to albumartist

give id3->artist higer precedence than id3->albumartist
apps/plugins/announce_status.c [diff]
William Wilgus
2021-03-05 bac897381c: updatelang: Handle/flag the bad data that led to english-us breaking
tools/updatelang [diff]
Solomon Peachy
2021-03-05 0c958d2b4a: announce_status trackchange bugfix

!Properly remove callback! don't play voice prompt at startup if something is actively playing
apps/plugins/announce_status.c [diff]
William Wilgus
2021-03-05 83111eeece: English-US language had some issues that caused it to fail.
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-03-05 925dc59126: OOM on Audio_Reset_Buffer

Allow the talk file to be unloaded
apps/playback.c [diff]
William Wilgus
2021-03-05 895ed92496: Talk.c, playlist.c fix bugs

fix bug in talk.c

playlist.c only dump voice buffer if we are out of space
apps/playlist.c [diff]
apps/talk.c [diff]
William Wilgus
2021-03-05 03ae4e6019: Announce_status plugin make USB plug aware

Announce_status was blocking USB from working it now quits on USB plug
apps/plugins/announce_status.c [diff]
William Wilgus
2021-03-05 10b6707131: Talk Fix outright disable after first clip

Oops Sorry bout that ;P
apps/talk.c [diff]
William Wilgus
2021-03-05 b2732222e9: Talk.c Guard against use after free / failure to load voicefile

load_voicefile_data wasn't checked for success leading to a use after free situation

get_clip now checks for valid index_handle before using it
apps/talk.c [diff]
William Wilgus
2021-03-04 56a1e87501: ata: Make ata_disk_is_active() only special-case powermgmt-less devices.

SSDs that respect powermgmt commands should be treated the same, as the powermgmt commands are an important part of ensuring it's safe to shut down.

And greatly expand the comment explaining things.
firmware/drivers/ata.c [diff]
Solomon Peachy
2021-03-04 be99033cbb: Always indicate inactive ata disk if device is solid state or doesn't support power management

Commit 5462907 made sure that SLEEP commands weren't issued on devices that don't support ATA power management commands (e.g. certain CF->SD converters including several iFlash models).

Since Rockbox waits for the disk to become inactive in shutdown_hw(), which won't happen in this case, the OS would previously stall during the shutdown process until a timeout was reached.
firmware/drivers/ata.c [diff]
Christian Soffke
2021-03-04 fb99d890a8: Fix typo in MIPS cache discard
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-04 cbace906c6: mips: Revert to commiting the cache when we're told to discard an unaligned block.

The filesystem API often passes in unaligned receive buffers, and some code (eg BMP reader) processes data in-place, leading to data loss when we dropped the cache.

(And document exactly what we're doing, so we don't go through this again at $future_date)
firmware/target/mips/mmu-mips.c [diff]
Solomon Peachy
2021-03-04 bcee955169: rolo: use audio_hard_stop() instead of audio_stop()

This kills the audio thread entirely, including voice stuff.
firmware/rolo.c [diff]
Solomon Peachy
2021-03-04 a4a5f5f33f: Check core max allocations for valid handle

fix rolo warnings
apps/radio/radioart.c [diff]
apps/tagtree.c [diff]
firmware/rolo.c [diff]
William Wilgus
2021-03-04 2628155fc9: Clean up places that use #if defined(CPU_ARM | CPU_COLDFIRE | CPU_MIPS)

Since that encompasses _all_ of our native targets in a post-archos world, either replace it with #if (CONFIG_PLATFORM & PLATFORM_NATIVE) or delete it altogher as appropriate.
firmware/rolo.c [diff]
lib/rbcodec/codecs/libtremor/oggmalloc.c [diff]
lib/rbcodec/codecs/vorbis.c [diff]
Solomon Peachy
2021-03-04 15b4d22913: ROLO check for OOM

Splqash failure and return on OOM
firmware/rolo.c [diff]
William Wilgus
2021-03-04 80be135d0d: OOM on playlist_resume

Discovered on ClipZip but applicable to other LOW MEM targets

Back off voice buffer on playlist_resume
apps/playlist.c [diff]
William Wilgus
2021-03-04 de53965e3f: Third try fixing MIPS cache code

Changing this to be a pure discard operation after discussion on IRC
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-04 b82298ae2c: jz4740: Fix incorrect dcache flush in the USB RX DMA code.
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
Solomon Peachy
2021-03-03 8cb4c18310: Really fix the MIPS cache bug this time

In fixing the original bug I tried to optimize discard_dcache_range() to minimize writeback and inadvertently introduced a second bug, which typically ends in a TLB refill panic.

It occurs only if the range fits within one cache line, and when both the start and end of the range are not aligned to a cache line. This causes ptr to be incremented and end to be decremented, so ptr > end, and the loop can't terminate.
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-03 cde5ae755f: iPods: Allow using scroll wheel to change volume on QuickScreen

As suggested by forum user yuuiko
apps/action.h [diff]
apps/gui/quickscreen.c [diff]
apps/keymaps/keymap-ipod.c [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
2021-03-03 0f439bee99: ihifi: use STORAGE_WANTS_ALIGN rather than STORAGE_NEEDS_ALIGN
firmware/export/config/ihifi770.h [diff]
firmware/export/config/ihifi770c.h [diff]
firmware/export/config/ihifi800.h [diff]
Solomon Peachy
2021-03-03 74a3d1f5be: Fix MIPS cache operations and enable HAVE_CPU_CACHE_ALIGN on MIPS

- The range-based cache operations on MIPS were broken and only worked properly when BOTH the address and size were multiples of the cache line size. If this was not the case, the last cache line of the range would not be touched!

Fix is to align start/end pointers to cache lines before iterating.

- To my knowledge all MIPS processors have a cache, so I enabled HAVE_CPU_CACHE_ALIGN by default. This also allows mmu-mips.c to use the CACHEALIGN_UP/DOWN macros.

- Make jz4760/system-target.h define its cache line size properly.
firmware/export/system.h [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-03 f906df017d: Open Plugin -- Make first run show at least one item to user

Open plugin needs the context menu to allow the user to add an item on the first run there are no items and therefore nothing to pop the context menu from
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-03 5317953f4a: Battery Icon, Remove Hardcoded Overall Width

Icon no longer showed 100% with some fonts
apps/gui/statusbar.c [diff]
William Wilgus
2021-03-03 2cde135cfe: flac fix dumb typo
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
William Wilgus
2021-03-03 93d8be80ce: Remove a couple more stragglers from the Archos purge
apps/player/icons.h [deleted]
apps/player/keyboard.c [deleted]
Solomon Peachy
2021-03-03 118191479d: Nudge flac towards upstream FS #13266 -- Fix the Yellow still?
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
William Wilgus
2021-03-03 2252bde144: Nudge flac towards upstream FS #13266 -- Fix Yellow

unused variables
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
William Wilgus
2021-03-02 a017219488: Nudge flac towards upstream FS #13266

Some flac encoded files contain junk that our decoder picked up

upstream has some sign and overflow fixes too
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
lib/rbcodec/codecs/libffmpegFLAC/decoder.h [diff]
lib/rbcodec/codecs/libffmpegFLAC/golomb.h [diff]
William Wilgus
2021-03-02 7d78958f9d: Reset unknown file color when resetting filetype colors

The unknown file color is handled as a special case and also needs to be reset here
apps/filetypes.c [diff]
Christian Soffke
2021-03-02 22cc4e4fcf: Fixed bug in Fiio M3K port where up button didnt work in some menus
apps/keymaps/keymap-fiiom3klinux.c [diff]
docs/CREDITS [diff]
spencer-brennessel
2021-03-02 a6eafc86f8: Remove execute bit from file permissions from recent commit
apps/buffering.c [diff]
apps/buffering.h [diff]
apps/playback.c [diff]
apps/radio/radioart.c [diff]
apps/recorder/jpeg_load.c [diff]
William Wilgus
2021-03-02 73cee8f177: Add RegGen-NG tool and definitions for Ingenic X1000
utils/reggen-ng/reggen-ng.py [new]
utils/reggen-ng/x1000.reggen [new]
Aidan MacDonald
2021-03-01 7418ec5009: FS #13267: Fix crash when enabling Perceptual Bass Enhancment during playback

I think the assumption is that during playback, the DSP is already running so it assumes PBE needs to be flushed before it is properly enabled.
lib/rbcodec/dsp/pbe.c [diff]
Solomon Peachy
2021-03-01 640b14c08c: Fix inability to reset filetype colors without restarting

0ce42df prevented read_color_theme_file() from being executed when applying settings (from a cfg file) if the filetype colors setting was set to "-". Resetting custom filetype colors happens in that function though and thus wouldn't work. You had to restart Rockbox for the setting to be applied (at which point read_color_theme_file() is called from filetype_init() which is called by the init() function in main.c)

The safety check has been moved from settings.c directly into read_color_theme_file(). This has the added advantage that it will also apply during the init process where there existed no check before (prevents the problem mentioned in 2e3a8c7).
apps/filetypes.c [diff]
apps/settings.c [diff]
Christian Soffke
2021-02-28 670812a44a: Support MP3 audiostreams embedded in ASF containers.

Full credit to Igor Poretsky
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/libasf/asf.h [diff]
lib/rbcodec/codecs/mpa.c [diff]
lib/rbcodec/metadata/asf.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
Solomon Peachy
2021-02-28 13c7f482ce: Add ingenic_tools/usbboot utility

This is essentially an expanded version of jz4760_tools/usbboot, able to support both X1000 and JZ4760 CPUs and easily extended to handle other Ingenic CPUs using the same boot protocol.
.gitignore [diff]
utils/ingenic_tools/Makefile [new]
utils/ingenic_tools/usbboot.c [new]
Aidan MacDonald
2021-02-27 a3d41098c7: Adding myself to the credits
docs/CREDITS [diff]
Aidan MacDonald
2021-02-27 aacb0811d9: Rename symbols of FiiO M3K Linux-based port

Mainly a straight replacement of FIIO_M3K -> FIIO_M3K_LINUX.
apps/SOURCES [diff]
apps/bitmaps/native/SOURCES [diff]
apps/debug_menu.c [diff]
apps/keymaps/keymap-fiiom3k.c apps/keymaps/keymap-fiiom3klinux.c [rename]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
...and 35 more files.
Aidan MacDonald
2021-02-27 55dc86f5db: Specify correct dependencies for tools/descramble

Fixes the red introduced in 6224efb2
tools/tools.make [diff]
Solomon Peachy
2021-02-27 dad23a0607: database: Database tool was excluding all SWCODECs!

When fixing this, I used this this opportunity to clean up the Makefile
tools/database/database.make [diff]
Solomon Peachy
2021-02-27 ef685cc6da: Update manual to reflect new behavior from abebc6b

When playback is stopped and the user inserts songs, Rockbox will not erase a dynamic playlist anymore, unless it has finished playing.
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-02-27 6224efb238: Fix build system not respecting TOOLSET

It seems that 'toolset=' in tools/configure was set but not used, with the build system only generating a hardcoded set of tools. This change fixes the issue by exporting the required tools in the TOOLSET variable, and having root.make append those to the TOOLS list.
tools/configure [diff]
tools/root.make [diff]
Aidan MacDonald
2021-02-27 96019d23aa: Add regtools binaries to gitignore
.gitignore [diff]
Aidan MacDonald
2021-02-27 b8945734f5: Make headergen_v2's output include what it uses
utils/regtools/headergen_v2.cpp [diff]
Aidan MacDonald
2021-02-27 7d7a3156d3: Fix skin rendering issue entering dirbrowse

If the custom UI viewport (for displaying lists) changes size when entering dirbrowse, other viewports won't be correctly rendered and require a redraw.

The following is a minimal test case for an example SBS where (the specified background color for) the viewport at the top of the screen won't appear after the user has entered the (root menu of the) file or database browser:

%?if(%cs,=,1)<%VI(main)|%VI(other)>

%V(0,0,-,21,-)
%Vb(ededed)

%Vi(main,0,22,-,-,-)

%Vi(other,0,60,-,-,-)
apps/tree.c [diff]
Christian Soffke
2021-02-27 7d7850368e: Disable UDMA 2 on iPod4G target

ATA DMA was enabled for all PP502x targets in d118f47 after previously reported instabilities were thought to have been fixed. The iPod 4G target remains unstable when UDMA 2 is enabled. File system corruption will eventually occur even using stock hardware in normal usage, according to both my own experience and that of several other forum users. UDMA 1 appears to be stable.
firmware/target/arm/pp/ata-target.h [diff]
Christian Soffke
2021-02-27 317908e8c3: Warn before permanently reshuffling the current playlist

Reshuffling a playlist using the WPS context menu for the current playlist is a destructive operation since the previous order of items can't be restored. A warning should be displayed, so that the user can still cancel the operation in case they intended to select another menu item (e.g. one of the harmless "Playing Time" or "Save Current Playlist" items right next to it).
apps/onplay.c [diff]
Christian Soffke
2021-02-21 05f1006246: Convttf makefile: Replace freetype-config with pkg-config

Freetype-config has been deprecated and is no longer included in libfreetype-dev. Pkg-config serves as its replacement.

Convttf isn't built as part of Rockbox by default, but manually doing so will currently fail even when libfreetype-dev is installed.
tools/Makefile [diff]
tools/tools.make [diff]
Christian Soffke
2021-02-19 bdc3dd4fca: MP4: append mdat sections together in metadata parser

mp4 files can have multiple 'mdat' chunks. This is common for audiobooks, where there is often a secondary mdat containing the chapter names, but it's also legal to have multiple mdat chunks for a single logical "track"

This confuses the mp4 metadata parser, which assumes there is only a single mdat, and always uses the last mdat seen to determine the "filesize" of the data we're trying to decode.

Work around this by appending each mdat's size to result in the final
"filesize"
lib/rbcodec/metadata/mp4.c [diff]
Solomon Peachy
2021-02-19 8c76c1b1c2: Revert "Always resume audio after user picks a new song from a playlist"

This reverts commit 69746d840086c3e9e4499c3c19257cd981a9203a.
apps/playlist.c [diff]
Solomon Peachy
2021-02-17 436e64e09e: Fix playback queue bug when "Insert Next" is used with multiple songs at once

After using “Insert Next” to insert multiple songs at once (e.g. an album from the database browser or folder from the file browser), subsequent Insert operations will incorrectly insert items after the first song of all items that were previously inserted, instead of after the last song of the previously inserted items.

A bug fix was originally written by Costas Calamvokis for the file browser only. I adopted the original fix and added code analogous to it so that it works from the database browser as well.

See FS #7898, FS #7363 or this forum post for more info: https://forums.rockbox.org/index.php/topic,53741.0.html
apps/playlist.c [diff]
apps/tagtree.c [diff]
Christian Soffke
2021-02-17 abebc6b9ac: Don’t erase a user’s stopped dynamic playlist when inserting/queuing songs

Rockbox would unexpectedly and without warning erase the current dynamic playlist (when it hadn’t finished playing) if the user inserted or queued up items while playback was stopped.

This fix ensures that the playlist is only deleted if it has either finished playing or can't be resumed.
apps/onplay.c [diff]
Christian Soffke
2021-02-17 69746d8400: Always resume audio after user picks a new song from a playlist

Music currently doesn't begin playing after the user has selected a new song in a playlist, unless another item was already playing or the previous player state was "stopped" (but not "paused"). This results in an inconsistent user experience. The user's likely intention is to immediately listen to the song they select for playback regardless of the previous player state.
apps/playlist.c [diff]
Christian Soffke
2021-02-05 422aa56243: rockboxdev: fix issues with relative paths for commandline options

I wanted to build into a 'toolchain' directory like this:

$ tools/rockboxdev.sh --dlwhere=toolchain --builddir=toolchain/build --prefix=toolchain/bin

This failed twice:

a) the extraction stage could not uncompress because of the relative paths, so convert them to absolute paths in the script to fix the issue.

b) patches could not be applied because 'rockboxdevdir' was assigned a string with the directory twice and '\n' in the middle. Using readlink, this now works.
tools/rockboxdev.sh [diff]
Wolfram Sang
2021-02-05 a67c6934c1: rockboxdev: better error message for unknown compression

I hit this error and its message confused me because I interpreted it as
"bzip2 executable could not be found". The message was also outdated because xz is supported meanwhile. Update the message to something hopefully more helpful.
tools/rockboxdev.sh [diff]
Wolfram Sang
2021-02-05 e23d45536e: rockboxdev: fix summary output of options

'--download' is now named '--dlwhere' and 'target' was missing the '='
tools/rockboxdev.sh [diff]
Wolfram Sang
2021-02-05 165d926a63: rbutil: Add a new entry for the Hifiwalker H2 v1.3 variant
rbutil/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2021-02-04 e7e9cbb852: puzzles: only build manual for color targets

'SUBDIRS' file has puzzles inside a 'HAVE_LCD_COLOR' block. I found this issue because sgt-puzzles was in the Clip+ docs while they were not installed on the target.
docs/CREDITS [diff]
manual/plugins/main.tex [diff]
Wolfram Sang
2021-01-27 278e7457ea: skin_engine: Fix %if() when comparing against a negative number.

If the tag being checked returns a negative number (e.g. %LI does that when the current list item does not have an icon) the tag's value would always end up being 1.
apps/gui/skin_engine/skin_tokens.c [diff]
docs/CREDITS [diff]
Georg Gadinger
2021-01-21 befae2909f: Make delete_file_dir() more threadsafe

This should fix FS #13263
apps/onplay.c [diff]
Moshe Piekarski
2021-01-21 fe10830384: hiby_patcher: Tweak the fix needed to work around v1.31 AGPtek Rockers.
tools/hiby_patcher.pl [diff]
Solomon Peachy
2021-01-02 707f77c6a7: rbutil: Update german translation.
rbutil/rbutilqt/lang/rbutil_de.ts [diff]
Dominik Riebeling
2021-01-02 95cfa9a8c4: rbutil: Rework action texts for ipod6g bootloader installation.

The logging entries do word wrapping, so no need to add hard line breaks. Those will become problematic for translations and in some cases on UI scaling. Instead add an empty line after the header to make things clearer.
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
Dominik Riebeling
2021-01-02 e74cde1c6e: rbutil: Remove unused function.
rbutil/rbutilqt/base/progressloggerinterface.h [diff]
rbutil/rbutilqt/progressloggergui.cpp [diff]
rbutil/rbutilqt/progressloggergui.h [diff]
Dominik Riebeling
2021-01-02 bf17c347fc: rbutil: Fix some texts.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2021-01-02 f9d23bfd41: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/base/talkfile.cpp [diff]
rbutil/rbutilqt/base/ttsfestival.cpp [diff]
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/base/voicefile.cpp [diff]
rbutil/rbutilqt/base/zipinstaller.cpp [diff]
Dominik Riebeling
2021-01-02 022bbad762: rbutil: Fix cleaning cache.

As with calculating the size cleaning the cache folder needs to be recursive.
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2021-01-02 ec01c57022: rbutil: Fix cache size calculation.

We're using Qt's caching mechanism since long, which uses subfolders, so we need to recursively traverse that to get the size of the cache folder.
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/utils.h [diff]
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2021-01-02 65d0867a25: rbutil: Add option to langstat to pass git hash.

Don't always operate on the remote head, instead default to the local HEAD, and allow passing a hash to use for calculating statistics.
rbutil/rbutilqt/langstats.py [diff]
utils/common/gitscraper.py [diff]
Dominik Riebeling
2021-01-02 eaf86a22d3: rbutil: Add missing Q_OBJECT macro to PlayerBuildInfo.

Needed to make translated strings actually get translated.
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
Dominik Riebeling
2020-12-31 10e2f53ff5: bspatch: Fix the standalone build

(broken by 1e12990)
rbutil/libtools.make [diff]
Solomon Peachy
2020-12-25 ca09f91f64: Fix deadlocks when trying to buffer large album art.

Internally, buffering tries to load the entire album art file into the audio buffer, which will fail if the file is larger than the buffer. Playback.c interprets a file failing to buffer to mean that the buffer is full, so it waits for more space and tries again. This results in a deadlock since the file will never fit.

Change bufopen to return a new error condition when an image file will not fit on the buffer because it is too large: ERR_BITMAP_TOO_LARGE. Note that we arbitrarily set "too large" to be within 64KB of the entire buffer size or larger, this could be adjusted if needed.

Change audio_load_albumart to pass through error messages from bufopen.

In playback.c, check to see why audio_load_albumart fails. If it fails because the file is too large to buffer, simply ignore the file. If it fails because the file would fit but the buffer is full, try again later.
apps/buffering.c [diff]
apps/buffering.h [diff]
apps/playback.c [diff]
apps/radio/radioart.c [diff]
Michael Giacomelli
2020-12-24 b5e6c30a61: USB: Reset poweroff timer for all USB events

Without this, if a device is left plugged in and idle, unplugging it will trigger an immediate shutdown.
firmware/usb.c [diff]
Solomon Peachy
2020-12-17 c842a13651: voice: Fix accidental warnings
apps/voice_thread.c [diff]
Solomon Peachy
2020-12-17 1aaa2824b6: voice: Increase voice thread stack size on hosted targets

Fixes a stack overflow on Sony NWZ players when loading the voice file
apps/voice_thread.c [diff]
Solomon Peachy
2020-12-16 02119357dc: erosq: Enable HAVE_SCROLLWHEEL for saner scroll wheel handling

Basically no longer treat SCROLL_FWD/BACK as "button" events, instead relying on the scrollwheel hooks to handle things properly.
firmware/export/config/aigoerosq.h [diff]
firmware/target/hosted/button-devinput.c [diff]
Solomon Peachy
2020-12-14 0215c37ceb: rbutil: Remove logo that isn't used anymore.
rbutil/rbutilqt/icons/rblogo.png [deleted]
Dominik Riebeling
2020-12-14 2b00166a00: rbutil: Always use svg icon for Window icon.

Since we now have svg support enabled (and used) for all platforms we can simply use the svg one, and bring it in line with the rest of the icon.
rbutil/rbutilqt/icons/rockbox-128.png [deleted]
rbutil/rbutilqt/icons/rockbox-16.png [deleted]
rbutil/rbutilqt/icons/rockbox-256.png [deleted]
rbutil/rbutilqt/icons/rockbox-32.png [deleted]
rbutil/rbutilqt/icons/rockbox-48.png [deleted]
rbutil/rbutilqt/icons/rockbox-64.png [deleted]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.qrc [diff]
Dominik Riebeling
2020-12-14 7ae98845f0: rbutil: Change style to Fusion on Windows.

The default UI style has some issues with HiDPI support. Use the Qt built-in Fusion instead. This looks somewhat different to the native Windows UI, but works better on HiDPI displays.
rbutil/rbutilqt/main.cpp [diff]
Dominik Riebeling
2020-12-14 f3371c1d78: rbutil: Improve HiDPI support.

Since we embed a manifest file on Windows we also need to indicate HiDPI support in it. Otherwise it will only work partially.
rbutil/rbutilqt/rbutilqt.manifest [diff]
Dominik Riebeling
2020-12-14 64cc9aad73: Do not resize images greater than 32767 pixels in either dimension

Internally, the resizing code uses the rockbox dim structure, which uses signed shorts.
apps/recorder/jpeg_load.c [diff]
Michael Giacomelli
2020-12-14 56f4ec9668: voices: Enable Russian in the nightly voice builds.

It's using espeak-ng's default 'zle/ru' voice, which have to do until someone suggests better settings or engine.
tools/builds.pm [diff]
Solomon Peachy
2020-12-14 da1fbb6d1a: skinengine: Make sure logical IF operator doesn't compare a garbage value
apps/gui/skin_engine/skin_tokens.c [diff]
Solomon Peachy
2020-12-14 b6a16949e8: playlist: Fix out-of-bounds array access when the directory is blank
apps/playlist.c [diff]
Solomon Peachy
2020-12-14 ce7731527a: announce_status: Fix incorrect function prototype definition
apps/plugins/announce_status.c [diff]
Solomon Peachy
2020-12-13 72e9b61061: manual: Replace all rockbox.org urls with https.

In the process, utilize the \download{} and \wikilink{} commands instead of direct URLs.
manual/advanced_topics/main.tex [diff]
manual/appendix/appendix.tex [diff]
manual/configure_rockbox/theme_settings.tex [diff]
manual/getting_started/gigabeat_install.tex [diff]
manual/getting_started/h10_install.tex [diff]
manual/getting_started/iaudio_install.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/iriver_install.tex [diff]
manual/getting_started/main.tex [diff]
manual/getting_started/mpio_install.tex [diff]
manual/getting_started/mrobe100_install.tex [diff]
manual/getting_started/samsungyh_install.tex [diff]
manual/getting_started/vibe500_install.tex [diff]
manual/getting_started/xduoox3_install.tex [diff]
manual/intro/main.tex [diff]
manual/plugins/pdbox.tex [diff]
manual/plugins/sgt-puzzles.tex [diff]
manual/preamble.tex [diff]
manual/rockbox-html.cfg [diff]
Solomon Peachy
2020-12-13 b459ded533: updatelang: Fix a couple of typos in the output used by the translate site
tools/updatelang [diff]
Solomon Peachy
2020-12-13 55d301184d: Get rid of a _long_ obsolete tool.
tools/svnupcheck.pl [deleted]
Solomon Peachy
2020-12-12 f7005eb4e4: voice: Generate Dutch voice file now that the translation is complete
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-12-12 afad2c1dcc: FS #13261: Update Dutch Translation (Issa Beganović)
apps/lang/nederlands.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-12-12 512be370c6: list: reset viewport to avoid corrupting the text in the first line

While using Rockbox for a while on my 1st-gen iPod mini I noticed that the first entry of a list sometimes displays a wrong character at the 18th column. For example, the ':' character would display as 'z', the
'-' character as 'm', 0x00 would display '@' and so on. Oddly enough this only occurred when the scrollbar was enabled.

I figured that the call to `display->set_viewport(list_text_vp);` in the for loop inside `list_draw(...)` causes this. Digging deeper I noticed that in the `lcd-bitmap-common.c` driver the `current_viewport` was pointing to the start of the line's text. From what I can tell the cause of this was that the viewport was set to a struct with a shorter scope than the entire function.

The actual fix for this is quite straightforward -- once the scrollbar has been drawn the viewport is now changed back to the default one.
apps/gui/bitmap/list.c [diff]
Georg Gadinger
2020-12-11 b339400531: voice: Last commit didn't work from a clean build.
apps/lang/lang.make [diff]
Solomon Peachy
2020-12-11 227ac2b715: voice: Add voice-corrections.txt to voicestrings.zip

This is in keeping with un-hardcoding stuff from rbutil.
apps/lang/lang.make [diff]
Solomon Peachy
2020-12-11 60139cf9f1: FS #9273: Add a bunch of voice corrections for Japanese.

Heavily modified from the original patches.
tools/voice-corrections.txt [diff]
Solomon Peachy
2020-12-11 e4b514917e: lang: The "InvalidVoice" language file wasn't being included properly

It ended up inside the 'langs/voicestrings.zip' with an absolute path when it should of landed in langs/ directly.
apps/lang/SOURCES [diff]
tools/buildzip.pl [diff]
Solomon Peachy
2020-12-10 9ad1ef0e55: rbutil: Fix encoding for themes info data.

The themes info data uses utf-8 encoding, while QSettings defaults to ASCII and uses escape sequences, resulting in non-ASCII characters being garbled. Use the correct encoding.
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-12-10 52d437b33e: FS13260: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-12-10 d99320047c: Correct the filenames for the Sony NWZ-A680 pictures
manual/rockbox_interface/images/sonynwa860-front.pdf manual/rockbox_interface/images/sonynzwa860-front.pdf [rename]
manual/rockbox_interface/images/sonynwa860-front.png manual/rockbox_interface/images/sonynzwa860-front.png [rename]
manual/rockbox_interface/images/sonynwa860-front.svg manual/rockbox_interface/images/sonynzwa860-front.svg [rename]
Solomon Peachy
2020-12-10 c07c08506b: SVG image of the Sony NWZ-A860 and other formats for the manual.
manual/rockbox_interface/images/sonynwa860-front.pdf [new]
manual/rockbox_interface/images/sonynwa860-front.png [new]
manual/rockbox_interface/images/sonynwa860-front.svg [new]
Szymon Dziok
2020-12-10 dac0610626: SVG image of the FiiO M3K and other formats for the manual.
manual/rockbox_interface/images/fiiom3k-front.pdf [new]
manual/rockbox_interface/images/fiiom3k-front.png [new]
manual/rockbox_interface/images/fiiom3k-front.svg [new]
Szymon Dziok
2020-12-08 0b8c6bd5f0: rbutil: Fix log strings in s5l bootloader installation.

We can't use a ternary expression within the tr() function. While this initially might work as expected it completely breaks translating the actual string -- we need to use separate strings here, and replacing a single word in a sentence will also not work for translations.
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
Dominik Riebeling
2020-12-08 d148afca3b: rbutil: Improve HiDPI support.

Replace the Rockbox logo with an svg version. Since the file size (i.e. the page size in the svg) that isn't intended for use as icon we need to enable scaling, and since scaling the label content doesn't keep the aspect ratio we need to explicitly set the desired values.

Notably improves representation on HiDPI monitors. Now only the player icons are still raster images.
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-12-08 792f05f82a: lcd: Wrap anonymous union initializer in braces

GCC 4.9.4 is apparently smart enough to compile this, but 4.4.4 is not.
firmware/drivers/lcd-color-common.c [diff]
Franklin Wei
2020-12-07 40b6897f4f: puzzles: tooling to automate the resyncing process

This adds a resync.sh script that handles most of the resyncing process: copying new sources, regenerating help, and staging for commit. I also took this opportunity to make the process more efficient and consistent by only selecting the types of files that we care about and ignoring any autogenerated temporary files that may be in the upstream tree.
apps/plugins/puzzles/genhelp.sh [diff]
apps/plugins/puzzles/resync.sh [new]
Franklin Wei
2020-12-07 b7ce408f65: puzzles: update frontend for new midend_get_cursor_location semantics

midend_get_cursor_location now returns a bool indicating success.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-12-07 84cd812ccd: puzzles: resync with upstream

This updates the upstream sources to include a modified get_cursor_location patch that I anticipate Simon will merge shortly. Also, I've streamlined the resync process to only copy the exact files we need to reduce clutter.
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
apps/plugins/puzzles/help/range.c [diff]
apps/plugins/puzzles/help/rect.c [diff]
apps/plugins/puzzles/help/samegame.c [diff]
apps/plugins/puzzles/help/signpost.c [diff]
apps/plugins/puzzles/help/singles.c [diff]
apps/plugins/puzzles/help/sixteen.c [diff]
apps/plugins/puzzles/help/slant.c [diff]
...and 139 more files.
Franklin Wei
2020-12-05 ae59995553: rbutil: Update changelog.

Add changes that haven't been added yet.
rbutil/rbutilqt/changelog.txt [diff]
Dominik Riebeling
2020-12-05 731c5db875: rbutil: Fix autodetection messing up with multiple players.

When multiple players are connected, and at least one of them has a USB ID that is shared between multiple targets the resulting list would be off. Fix that by avoiding to modify a list while iterating over it, that's usually not a good idea.
rbutil/rbutilqt/base/autodetection.cpp [diff]
Dominik Riebeling
2020-12-05 82b53ebf54: rbutil: Merge finding player by USB ID with PlayerBuildInfo.

Remaining rework of player info data handling.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [deleted]
rbutil/rbutilqt/base/systeminfo.h [deleted]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/installtalkwindow.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
Dominik Riebeling
2020-12-05 0e315e848a: rbutil: Rework handling of available voice languages.

- Move Rockbox voice language names handling to PlayerBuildInfo, and handle it similarly to the rest of the device specific values. Rework internal handling to simplify things.
- Enable language list from build server for installing prerendered voice files other than english.
- Extend unit tests.
rbutil/rbutilqt/base/playerbuildinfo.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/createvoicewindow.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/test/test-playerbuildinfo.cpp [diff]
Dominik Riebeling
2020-12-05 ac5fc26085: rbutil: Make target list part of new player info.

Also remove the unused cases.
rbutil/rbutilqt/base/playerbuildinfo.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2020-12-04 c51c6c1eb3: rbutil: Add MIDI patchset to plugin data installation.

Add installing the MIDI patchset, and subsequently rename from Game Files to Plugin Data Files.
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/rbsettings.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
Dominik Riebeling
2020-12-03 7739bb31b3: rbutil: Convert RockboxInfo unit test to data driven QTest.
rbutil/rbutilqt/test/test-rockboxinfo.cpp [diff]
rbutil/rbutilqt/test/test-rockboxinfo.pro [diff]
Dominik Riebeling
2020-12-03 3300815c44: rbutil: Update and fix unit tests.

- Fix changed dependencies and provide real stubs.
- Update to use QTest global data for test table, so individual test vector entries show up as individual tests. That way a single comparison failing doesn't make all appear as failed and provide better indication what went wrong.
rbutil/rbutilqt/test/stubs/stubs-compareversion.cpp [new]
rbutil/rbutilqt/test/test-compareversion.cpp [diff]
rbutil/rbutilqt/test/test-compareversion.pro [diff]
Dominik Riebeling
2020-12-03 b064a6cbb5: rbutil: Rework and merge player and build server info handling.

Handling the data for players from rbutil.ini and the build-info data from the server is closely related. Splitting things up into different classes only creates tightly coupling, which is unnecessary, and the need to differentiate between them in the application.

Merge both classes into a single one and rework handling so the application doesn't have to deal with two separate classes anymore.

Furthermore, change URL templates to use new values from build-info instead of hard coding them.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.cpp [new]
rbutil/rbutilqt/base/playerbuildinfo.h [new]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [deleted]
rbutil/rbutilqt/base/serverinfo.h [deleted]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/talkgenerator.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/voicefile.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
rbutil/rbutilqt/test/stubs/stubs-playerbuildinfo.cpp [new]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [deleted]
rbutil/rbutilqt/test/test-playerbuildinfo.cpp [new]
rbutil/rbutilqt/test/test-serverinfo.pro rbutil/rbutilqt/test/test-playerbuildinfo.pro [rename]
rbutil/rbutilqt/test/test-serverinfo.cpp [deleted]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-12-03 78a01db47c: rbutil: Get rid of configure_modelname in rbutil.ini.

The target selection string used for configure is the same as the internally used player string, minus the (optional) variant suffix. Don't duplicate things, simply strip the suffix.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-11-29 10f05b3b27: build-info: Replace %MODEL% with %TARGET%
tools/build-info.pl [diff]
Solomon Peachy
2020-11-29 a5961c944b: FS #5320: Keypad hold doesn't let go until scrolling is used (ipod 4g/5g)

Patch by Boris Gjenero
firmware/target/arm/ipod/button-clickwheel.c [diff]
Solomon Peachy
2020-11-27 c8da2bc145: rbutil: Treat Aigo Eros clones as variant of it.

Fixes installing those builds, since they relied on the broken buildserver_modelname. Also simplifies internal handling.
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-27 8765650fe0: rbutil: Remove buildserver modelname string.

This isn't needed anymore, and the only player it was actually used for were the 8MB modded Archos ones, for which the usage was broken.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-27 716643572d: rbutil: Remove Archos 8MB modded players.

The Archos Recorder has 2MB RAM and can be modded to 8MB. While we previously had separate builds for those the last release which it was built for is 3.4; installing for 8MB modded players was broken and installed the normal 2MB build.

Since we never provided builds for other hardware mods (like Ondio backlight mod, h100 series RTC mod) there isn't much reason to do so for the 8MB mod. Furthermore, given that the current state is broken and nobody complained the number of users of the mod can be assumed to be very low, and people with a modded player also building Rockbox on their own.
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-26 3ee6ce956f: rbutil: Remove duplicated enum entry.

SystemInfo::PlatformName and Name actually retrieve the same value. That's not usefule, so remove one of both.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-23 185dfb42c2: rbutil: Fix wrong format string.

Only caused a warning, but no need to pass format parameters if there is no format string.
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2020-11-23 9a52991bbd: rbutil: Add support for installing daily builds.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
Dominik Riebeling
2020-11-23 1ba6785e46: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/sysinfo.cpp [diff]
rbutil/rbutilqt/systrace.cpp [diff]
Dominik Riebeling
2020-11-23 ec730f1609: rbutil: Fix selecting the previously selected build type.

When starting Rockbox Utility select the same build type that was used during the previous run. This broke during refactoring, fix it.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 64fe7e03a8: build-info: Additions for new rbutil.
tools/build-info.pl [diff]
Solomon Peachy
2020-11-22 f598ef9c27: rbutil: Add support for installing daily builds.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-22 0ea8f074ed: rbutil: Remove Install Voice button from Accessibility tab.

Installing the voice file is now done via the main installation.
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.h [diff]
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-11-22 0b911b7500: rbutil: Fix wrong section name in installation log.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 ff7e8b4293: deploy: Update sources list for Rockbox Utility.
utils/common/deploy-rbutil.py [diff]
Dominik Riebeling
2020-11-22 25529e4fe0: lang: More automated rejiggering, USB_MODE_* is no longer ibasso-specific
apps/lang/bulgarian.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/svenska.lang [diff]
apps/lang/turkce.lang [diff]
apps/lang/vlaams.lang [diff]
tools/updatelang [diff]
Solomon Peachy
2020-11-22 e8f8df4ee0: rbutil: Update Iriver h100 / h300 series bootloader paths.

The patching code now requires the new version 8.0 bootloaders.
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-22 1b9eebb39d: rbutil: Update Windows application icon.

Bring it in line with the other icons and always show the same image, regardless of size.
rbutil/rbutilqt/icons/rockbox.ico [diff]
Dominik Riebeling
2020-11-22 ba2bbd60bd: rbutil: Move Manual installation to main tab.

The manual tab didn't show the manual, so it's clearer to have that as part of the main tab.

Also fixes the wrong manual getting downloaded for releases.
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/rbsettings.h [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [deleted]
rbutil/rbutilqt/gui/manualwidget.h [deleted]
rbutil/rbutilqt/gui/manualwidgetfrm.ui [deleted]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.h [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-11-22 5f36aed4bf: rbutil: Unify template parameter for release version.

Don't use different parameter names for the same parameter.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-22 dfe9d63640: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 1a3d12ceea: rbutil: Don't try to install voice file if it's not available.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 0d2257d1f7: rbutil: Replace stringly types build type handling with enum.

Avoid having to repeat the same strings for lookup again and again and use an enum instead, which is also less error prone.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
Dominik Riebeling
2020-11-22 c2dacf6736: rbutil: Add voice installation to main widget.

Add checkbox for installing the prerendered voice file to the main install widget. Current limitations:
- only english for now. The available languages are available from the build server but are not yet taken into account.
- only for releases. This is the same limitations we had before. We do have voices for daily builds, but that requires adding daily builds again (those have been removed some time back.)
- Old voice installation dialog still present.
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/rbsettings.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2020-11-22 ad37655687: rbutil: Use pattern replacement for SystemInfo build type.

Use pattern replacement for lookup instead of expanded values. Will allow simplifying things later for better handling of different build types.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-22 6b3b4df6f6: rockbox: move firmware checksum algorithms into a common header

Before this was just implemented inline wherever it was needed. Now it is provided as 2 inline functions in a header called checksum.h. There should be no differences in actual behavior.
apps/plugins/crypt_firmware.c [diff]
apps/plugins/iriver_flash.c [diff]
firmware/common/rb-loader.c [diff]
firmware/include/checksum.h [new]
James Buren
2020-11-22 2eb191a3f4: manual: hopefully fix html generation

(by using the 'scrhack' package)
manual/preamble.tex [diff]
Solomon Peachy
2020-11-22 9d33ed10ab: manual: Remove some (very) obsolete latex style files.

* scrreprt.4ht
* booktabs.sty
* optional.sty
* pdfdraftcopy.sty

Use system-provided stuff instead.
manual/booktabs.sty [deleted]
manual/optional.sty [deleted]
manual/pdfdraftcopy.sty [deleted]
manual/scrreprt.4ht [deleted]
Solomon Peachy
2020-11-22 332433eb3d: fix a few manual warnings
manual/appendix/config_file_options.tex [diff]
manual/frontpage/frontpage.tex [diff]
manual/getting_started/main.tex [diff]
manual/intro/main.tex [diff]
manual/preamble.tex [diff]
manual/rockbox_interface/main.tex [diff]
Moshe Piekarski
2020-11-22 4641d86c46: xduoox3: Fix a few issues with the manual
manual/platform/keymap-xduoox3.tex [diff]
manual/plugins/pegbox.tex [diff]
manual/plugins/wormlet.tex [diff]
Solomon Peachy
2020-11-21 efacce58eb: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/base/bootloaderinstallams.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbspatch.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallchinachip.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallfile.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallimx.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallipod.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmi4.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmpio.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalltcc.cpp [diff]
Dominik Riebeling
2020-11-19 f29b81d521: rbutil: Avoid creating temporary object.

There's a static function for that.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/systrace.cpp [diff]
Dominik Riebeling
2020-11-19 fb6840e572: rbutil: Remove done() signal from Themes Install window.

This shadows a slot from the base class. Since it isn't used simply remove it.
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
2020-11-19 12764781c6: rbutil: Modernize code to use C++11 nullptr.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/autodetection.h [diff]
rbutil/rbutilqt/base/bootloaderinstallams.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbspatch.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallchinachip.h [diff]
rbutil/rbutilqt/base/bootloaderinstallhelper.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.h [diff]
rbutil/rbutilqt/base/bootloaderinstallimx.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallipod.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.h [diff]
rbutil/rbutilqt/base/bootloaderinstalltcc.cpp [diff]
rbutil/rbutilqt/base/encoderexe.h [diff]
rbutil/rbutilqt/base/encoderrbspeex.cpp [diff]
rbutil/rbutilqt/base/encoderrbspeex.h [diff]
rbutil/rbutilqt/base/httpget.h [diff]
rbutil/rbutilqt/base/mspackutil.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/system.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/talkfile.cpp [diff]
rbutil/rbutilqt/base/ttsbase.cpp [diff]
rbutil/rbutilqt/base/ttsespeak.h [diff]
rbutil/rbutilqt/base/ttsespeakng.h [diff]
rbutil/rbutilqt/base/ttsexes.h [diff]
rbutil/rbutilqt/base/ttsfestival.h [diff]
rbutil/rbutilqt/base/ttsflite.h [diff]
rbutil/rbutilqt/base/ttsmimic.h [diff]
...and 28 more files.
Dominik Riebeling
2020-11-19 f608de723c: rbutil: Convert ServerInfo to singleton.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-19 f8fb4274ee: rbutil: Rework server info data handling.

Remove map that isn't used anymore.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
Dominik Riebeling
2020-11-19 497618e51e: Add libraries to native MIPS toolchain to enable bluetooth support

libffi, zlib, glib, expat, and dbus
tools/rockboxdev.sh [diff]
Solomon Peachy
2020-11-19 b7b0c7c648: languages: convert recording_swcodec -> recording
apps/features.txt [diff]
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
...and 17 more files.
Solomon Peachy
2020-11-19 6d62a7a1bd: Clean out some obsolete strings from the Russian translation
apps/lang/russian.lang [diff]
Solomon Peachy
2020-11-18 3027cead01: hosted: Improve buffer underrun handling in the ALSA driver

* Bump internal mix buffer size by 4x, to 1K frames (matching ALSA period)
* Handle an underrun that occurs when filling the audio buffer
* Log underruns and make them available in the debug info
firmware/export/pcm_mixer.h [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
Solomon Peachy
2020-11-18 473aa615de: Minor additions to g#3035
manual/plugins/main.tex [diff]
Moshe Piekarski
2020-11-18 0aa702836b: Manual: remove most HWCODEC artifacts

This causes 3 changes in layout. 2 I can't track down and 1 is better this way.
manual/advanced_topics/main.tex [diff]
manual/appendix/appendix.tex [diff]
manual/appendix/config_file_options.tex [diff]
manual/appendix/file_formats.tex [diff]
manual/appendix/wps_tags.tex [diff]
manual/configure_rockbox/bookmarking.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
manual/configure_rockbox/main.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/configure_rockbox/recording_settings.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/configure_rockbox/theme_settings.tex [diff]
manual/getting_started/installation.tex [diff]
manual/main_menu/fmradio.tex [diff]
manual/plugins/lrcplayer.tex [diff]
manual/plugins/main.tex [diff]
manual/plugins/oscilloscope.tex [diff]
manual/plugins/pictureflow.tex [diff]
manual/plugins/text_viewer.tex [diff]
manual/plugins/theme_remove.tex [diff]
manual/rockbox_interface/main.tex [diff]
manual/rockbox_interface/tagcache.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Moshe Piekarski
2020-11-18 7c87467ba4: configure: Add prompt for USB Serial into the advanced mode

And explicitly disable USB_ENABLE_SERIAL when HAVE_USBSTACK is not define
firmware/logf.c [diff]
tools/configure [diff]
Solomon Peachy
2020-11-17 20774d88b5: Update english-US language
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-11-17 170f72156b: lang: Drop all deprecated strings, and rename LANG__NEVER to LANG_NEVER
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hindi.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
...and 17 more files.
Solomon Peachy
2020-11-17 7ff3c94e13: lang: Make all swcodec &| lcd_bitmap strings default.
apps/lang/afrikaans.lang [diff]
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hindi.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
...and 19 more files.
Solomon Peachy
2020-11-17 0400a391d3: usb: increase the stack size.

It's not large enough on some targets.

(this will be revisited when the USB insertion prompt stuff is moved out of the USB helper and over to the main thread)
firmware/usb.c [diff]
Solomon Peachy
2020-11-16 ad665a04d2: Manual Bugfix SetWPSContextPlugin
manual/configure_rockbox/wps_context_plugin.tex [diff]
William Wilgus
2020-11-16 4fd1e4364b: fwpatcher: fix compile errors and warnings on modern Linux
tools/fwpatcher/Makefile [diff]
tools/fwpatcher/main.c [diff]
James Buren
2020-11-16 84086af957: update fwpatcher and rbutil checksums for iriver h1x0/h300 V8 bootloader
rbutil/rbutilqt/irivertools/h100sums.h [diff]
rbutil/rbutilqt/irivertools/h120sums.h [diff]
rbutil/rbutilqt/irivertools/h300sums.h [diff]
tools/fwpatcher/h100sums.h [diff]
tools/fwpatcher/h120sums.h [diff]
tools/fwpatcher/h300sums.h [diff]
James Buren
2020-11-16 adee6a11bf: rockbox: fix iriver firmware validation for larger bootloaders

It turns out the code for the firmware size validation was incorrectly using the total length of the firmware file to check if it was too big for the flash rom which caused it to incorrectly flag larger bootloaders as too big even though they would still fit.

As it happens this situation can only really arise after mkboot has been run on the decoded firmware image. Because mkboot writes the actual binary size to the ESTFBINR header we will be using that to check if the firmware image is too large for the flash rom.

Now because this information is embedded in the decrypted / encrypted region we have to collect it as the region is processed so the validation is also moved to after the data processing loop.
tools/fwpatcher/iriver.c [diff]
tools/iriver.c [diff]
James Buren
2020-11-16 64ea644269: mkboot: fix the buffer size used for constructing the final firmware image

It was short by a fair number of bytes which could be reached when attempting to insert bootloaders near the maximum size of 64k. This ensures even the largest acceptable bootloader will not overflow the buffer.
tools/mkboot.c [diff]
James Buren
2020-11-16 63691ad106: Fix the fix, which managed to make things _worse_
apps/settings.c [diff]
Solomon Peachy
2020-11-16 3e32521be5: Fix the red introduced in 9c68c69
apps/settings.c [diff]
Solomon Peachy
2020-11-16 9c68c69cf0: FS13257: Fix inconsistent defaults in the USB mode selection
apps/settings.c [diff]
apps/settings_list.c [diff]
firmware/export/usb.h [diff]
firmware/usb.c [diff]
Solomon Peachy
2020-11-16 5252523937: fwpatcher: fix a few issues with the mksums.pl script

First, the way it was invoking mkboot was no longer correct so it was not producing files used in the later commands.

Second, support for the H300 1.31k firmware was added sometime ago but not to this script.
tools/fwpatcher/mksums.pl [diff]
James Buren
2020-11-16 c79ddb6bf4: iriver_flash: update valid bootloaders table

This removes all the pre-release bootloader of version 7 and replaces them with production releases of version 8. The pre-releases have their own problems and should be left behind as they were never officially released.
apps/plugins/iriver_flash.c [diff]
firmware/export/eeprom_settings.h [diff]
James Buren
2020-11-15 dec5421ca2: rbutil: Rework server info data handling.

Return status as int, not as string, and provide a separate function for converting to string. This allows to filter based on the actual status, not a (localized) status string, which is more robust.

Fix a regression that made players with missing status value show up as retired.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 af766ae10e: rbutil: Fix style warnings.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
Dominik Riebeling
2020-11-15 6c2780e709: rbutil: Rework server info data handling.

Allow constructing release candidate URL from configuration the same way we construct the URL for releases.

Note that the server path used does not exist, taken from old release candidate builds not available anymore.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 9bb60b7d85: rbutil: Rework server info data handling.

Allow extracting release candidate version even if no URL is present. Avoids a special case for version handling.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 104ff3433a: rbutil: Rework server info data handling.

Don't create our own in-memory map with server data. Instead use the configuration file retrieved from the download server, and do the resolve / replacement on the fly.

Simplifies things, and prepares for cleaner handling for different build types.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 2b2a7b9ae3: rbutil: Simplify manual download URL handling.

- Don't construct the URL directly. The ServerInfo already has it, use that instead.
- Don't manually construct the output filename. ZipInstaller will use the server filename automatically.
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
Dominik Riebeling
2020-11-15 687edc1866: rbutil: Extend test for ServerInfo.

- Further extend stubs, pull in less non-stubbed implementations.
- Change some test URLs to make sure the code actually uses the correct ones.
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.pro [diff]
Dominik Riebeling
2020-11-15 cb71e2154c: rbutil: Extend test for ServerInfo.

- Add tests for missing info values.
- Extend stubs, pull in less non-stubbed implementations.
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [new]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.pro [diff]
Dominik Riebeling
2020-11-15 7d1078a9d5: rbutil: Fix unit test.
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 1bc68d5ad7: h1x0/h300: change when the hold switch and failsafe are used

After reviewing the code awhile I realized that the failsafe and hold switch have no impact on the boot process when the usb or charger is connected. That makes no real sense to me. If these are connected then neither will be used at all. The boot process will never revisit it either once those other modes end and resume the boot process. It will just continue to try to boot from disk as if these emergency settings never existed.

I have decided it makes more sense for them to be evaluated once the higher priority charge and disk mode have finished their roles. Given how the code was originally written it seems to be they were not intended to run prior to these at the very least since the logical conditions preclude that possibility as they include the inverse of the conditions that trigger the charge and disk modes.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-15 fc5c8192ff: h1x0/h300: fix h300 bootloader hold switch check

This fixes an early boot bug on the h300 where hold_status is read before it has a chance to properly check whether the hold switch is even active. This was accomplished by porting over the method the h1x0 uses to perform the same check.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-15 29a20bd209: h1x0/h300: consolidate a few code paths to logical equivalents

This saves a few bytes of precious space by consolidating paths where they can be combined with no change to the underlying algorithm.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-15 3ef8455626: Remove some SWCODEC artifacts
apps/plugins/text_viewer/readme.txt [diff]
firmware/export/config/fiiom3k.h [diff]
Moshe Piekarski
2020-11-14 c10eea46a9: iriver_flash: add macros to reduce the rom chip table

The table is now gated by the FLASH_SIZE macro as any given target will not have a known rom chip of a differing size than the FLASH_SIZE. This will reduce the resulting code a bit as well.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-11-14 7d9ac021b5: h1x0/h300: bring the two bootloaders more in sync

The most major change here is the porting of the failsafe boot menu and eeprom settings support from the h1x0 bootloader to the h300 bootloader. This has been successfully tested already and indeed works about the same as it does on the h1x0 bootloader.

The other major change is the addition of new code to both bootloaders that will retry the flash boot function after exitting disk mode. It still falls back to booting from disk if this either fails or is not configured to boot from flash.

There were also various other modifications to bring the two closer in sync so there are fewer differences.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 33d42c20de: iriver_flash: do not let the backlight timeout while running

I discovered it was doing this on the H300 during longer operations and I freaked out at first. This disables this feature until the program is finished so as to not give anyone else an unnecessary fright while using it. It will also cut down on frivilous reports.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-11-14 be1be797b2: rbutil: Rework player configuration.

Rename config entries and remove now unnecessary default value handling.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/talkgenerator.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-11-14 2509def164: rbutil: Rework player configuration.

- Split internal configuration into player specific and common parts. Always require passing the player for player specific data instead of implicitly assuming the currently selected one; only use the currently selected one if the player name is explicitly passed as empty.
- Similarly adjust handling of server info data; prepare for splitting into build type specific values so the naming becomes cleaner.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/talkgenerator.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-11-14 440083af87: rbutil: Show HTTP error string on download failure.

Also show the error string, which usually is more helpful than just showing the HTTP error code.
rbutil/rbutilqt/base/zipinstaller.cpp [diff]
Dominik Riebeling
2020-11-14 aaa9a2ccee: h1x0/h300: clean up the bootloader source a bit

First this removes most of the conditionals for the CPP as they are always true for the targets that use the bootloader source.

Second this moves some global variable references around to reduce some redundancy in the h1x0 bootloader source.

All of this is done to make it easier to compare the two bootloaders as they are very heavily related to each other.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 37eabbfe51: h1x0/h300: remove trailing whitespace from bootloaders
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 5a223080fa: h300: enable usb charging for charge mode and disk mode

This enables USB charging when the bootloader is in charge mode or disk mode. As a byproduct there is a small change in behavior where charge mode is all that is available if it is triggered by the USB cable insertion. Disk mode only becomes available if the user requests to continue the boot process by pressing the power button. It had to be done this way as there's no way to tell this early whether the user wants to simply charge or trigger disk mode as well.
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 d5a2aeb6c4: rockbox: revise charger_inserted and power_input_present functions

This makes it so the thread cached variable is only read if building the regular firmware. For bootloaders the data is now read directly.

This fixes the functions for bootloaders so they do not have to import the power management code just so these functions will work when in the bootloader.
firmware/powermgmt.c [diff]
James Buren
2020-11-14 03cd773051: ibasso: Hopefully hack usb into building again.
apps/menus/settings_menu.c [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/ibasso/usb-ibasso.c [diff]
firmware/usb.c [diff]
Solomon Peachy
2020-11-14 43f90746d5: synclist add method for setting selection color
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
William Wilgus
2020-11-13 610ad6f6e3: ibasso: Fix red introduced in 60f581e
firmware/target/hosted/ibasso/usb-ibasso.c [diff]
Solomon Peachy
2020-11-13 60f581e8f5: usb: Add ability to prompt user about what to do upon usb insertion

v3: Add in config option v4: Bugfixes v5: Force a redraw upon exiting v6: keypress-in-chargeonly mode enables mass storage (and vice versa) v7: Fix bootloader builds v8: Update manual, and have bootloader respect keypresses v9: Change default to mass storage (ie no change in behavior)

todo:
* test-build dx50/dx90
* Switch from yes/no to proper menu?
* prevent WPS progress bar from drawing over us


...
apps/lang/bulgarian.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/svenska.lang [diff]
apps/lang/turkce.lang [diff]
apps/lang/vlaams.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/usb.h [diff]
firmware/target/hosted/ibasso/usb-ibasso.c [diff]
firmware/target/hosted/ibasso/usb-ibasso.h [diff]
firmware/usb.c [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2020-11-13 fc4fff0b81: builds: Enable German voicefile generation in the nightly builds
tools/builds.pm [diff]
Solomon Peachy
2020-11-13 6c3cc1cbb9: Skin_engine optimize element switches

it takes a lot of code to check validity and dereference a pointer for every numeric tag branch in get_token_value

apparently about 900 bytes actually
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
2020-11-13 47e1f96427: Bugfix Backlight_init should be called after lcd_init

the rest..
bootloader/ipod.c [diff]
bootloader/ipodnano2g.c [diff]
bootloader/iriver_h1x0.c [diff]
utils/atj2137/adfuload/test_binary/lcm/test_lcm.c [diff]
William Wilgus
2020-11-13 f65fb2a64a: h300, Others Bugfix Bootloader backlight_init()

backlight_init needs to be called after lcd_init when using lcd_enable()
bootloader/creativezvm.c [diff]
bootloader/iriver_h300.c [diff]
bootloader/meizu_m3.c [diff]
bootloader/mini2440.c [diff]
bootloader/sansaconnect.c [diff]
firmware/target/coldfire/iriver/h300/lcd-h300.c [diff]
William Wilgus
2020-11-13 8ac46f844f: h300: fix one long-standing bootloader bug

This was introduced in e13c6001332882291363bdf2f1155875439fe187 back when the author was trying to optimize the LCD code with DMA. For whatever reason this broke the bootloader for the last 10 years or so and no one could figure out why. This is now fixed.

However the bootloader is still currently broken in HEAD due to recent changes to the LCD code. A fix for that is not yet known.
firmware/target/coldfire/iriver/h300/lcd-h300.c [diff]
James Buren
2020-11-12 362f7a3220: Quickscreen: don't apply glabal settings
apps/gui/quickscreen.c [diff]
Moshe Piekarski
2020-11-12 b912ad5088: plugin: Un-export find_next_frame()

No in-tree users
apps/plugin.c [diff]
apps/plugin.h [diff]
docs/PLUGIN_API [diff]
Solomon Peachy
2020-11-12 388adff3cc: pcm: Further cleanup of unused bits of the PCM ACPI:

* pcm_get_bytes_remaining()
* pcm_calculate_peaks()
* pcm_get_peak_buffer()

Nothing in-tree uses these at all (except for the lua plugin wrapper)
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lua/include_lua/pcm.lua [diff]
apps/plugins/lua/rocklib.c [diff]
docs/PLUGIN_API [diff]
firmware/export/pcm.h [diff]
firmware/pcm.c [diff]
firmware/target/arm/as3525/pcm-as3525.c [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pnx0101/pcm-pnx0101.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
firmware/target/arm/rk27xx/pcm-rk27xx.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c [diff]
firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
firmware/target/hosted/android/pcm-android.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
firmware/target/hosted/maemo/pcm-gstreamer.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Solomon Peachy
2020-11-12 1a68856f52: Rocker Add WPS and Tree Hotkey, button codes in debug menu VolUp+VolDown becomes the wps and tree (file browser) hotkey
apps/keymaps/keymap-agptekrocker.c [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
William Wilgus
2020-11-12 4e5499606b: Russian translations update
apps/lang/russian.lang [diff]
Igor B. Poretsky
2020-11-12 b7560ce0af: Czech translations fix
apps/lang/czech.lang [diff]
Igor B. Poretsky
2020-11-12 b8ada839ee: Voice strings fixes
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/romaneste.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/tagalog.lang [diff]
apps/lang/vlaams.lang [diff]
apps/lang/walon.lang [diff]
Igor B. Poretsky
2020-11-11 869a8bfbe7: YesNo: Clear the button queue so a latent keypress doesn't skip the prompt
apps/gui/yesno.c [diff]
Solomon Peachy
2020-11-11 4aa749b59d: iriver_flash: refactor code to be easier to understand

This overhauls most of the code to be easier to understand in terms of the interactions with the flash. I found the original to be rather confusing with how it kept switching between byte and word offsets.

My solution was to make all external access to the flash in terms of sectors and bytes. Whatever the flash uses internally is now handled by the subroutines for performing the erase, program, and verify operations.

This helps make it far more consistent for the code that actually uses these operations as they do not need to concern themselves with word sizes and offsets anymore.

As a side effect of this change the flash operations are now done entirely by subroutines; even the batch operations that used to use custom loops.

Additionally some functions were merged with other functions in order to reduce the amount of functions as well as consolidating common code fragments.
apps/plugins/iriver_flash.c [diff]
firmware/export/config/iriverh100.h [diff]
firmware/export/config/iriverh120.h [diff]
firmware/export/config/iriverh300.h [diff]
firmware/export/system.h [diff]
James Buren
2020-11-08 c4254d10fc: Fuze+: Fix misplaced rectangle when lcd_flip set
firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c [diff]
Moshe Piekarski
2020-11-07 9fcdb44e55: rbutil: Show the license of all libraries included.

Replace the Speex license tab in the about dialog with one that lists all used libraries and their respective licenses, including Speex.

Previously only Speex required including the license in binary distribution; the recently added bspatch also wants this. Show the license for all used libraries so we can more easily add new ones in the future.
rbutil/rbutilqt/aboutbox.ui [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.qrc [diff]
Dominik Riebeling
2020-11-07 db7c4424e4: bspatch: Store license text in separate file.

Allow to easily show the license by having it in a separate file.
rbutil/bspatch/LICENSE [new]
Dominik Riebeling
2020-11-07 4820072a42: bzip: Add missing license to our copy of bzip2.
rbutil/bzip2/LICENSE [new]
Dominik Riebeling
2020-11-07 ba34b0fac3: rbutil: Modernize HttpGet implementation.

- Change signal-slot connections to new style, and fix renamed signal for Qt6.
- Make more use of RAII.
rbutil/rbutilqt/base/httpget.cpp [diff]
rbutil/rbutilqt/base/httpget.h [diff]
Dominik Riebeling
2020-11-07 4815a64f93: rbutil: Explicitly enable svg module.

Since most icons are svg now we need this. Linux implicitly enables it, Windows doesn't.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-11-07 87325ff957: rbutil: Enable HiDPI support on MacOS.

Since we provide our own Info.plist file we need to enable HiDPI support here.
rbutil/rbutilqt/Info.plist [diff]
Dominik Riebeling
2020-11-07 2e6a0df40e: rbutil: Enable HiDPI support on recent Qt versions.
rbutil/rbutilqt/main.cpp [diff]
Dominik Riebeling
2020-11-07 2e96657c36: rbutil: Replace most icons with their svg variant.

Replace png icons with svg ones for better HiDPI support.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/configurefrm.ui [diff]
rbutil/rbutilqt/createvoicefrm.ui [diff]
rbutil/rbutilqt/encttscfggui.cpp [diff]
rbutil/rbutilqt/gui/backupdialogfrm.ui [diff]
rbutil/rbutilqt/gui/changelogfrm.ui [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
rbutil/rbutilqt/icons/audio-input-microphone.png [deleted]
rbutil/rbutilqt/icons/audio-input-microphone.svg [new]
rbutil/rbutilqt/icons/audio-volume-high.svg [new]
rbutil/rbutilqt/icons/bootloader_btn.png [deleted]
rbutil/rbutilqt/icons/dialog-error.png [deleted]
rbutil/rbutilqt/icons/dialog-error.svg [new]
rbutil/rbutilqt/icons/dialog-information.png [deleted]
rbutil/rbutilqt/icons/dialog-information.svg [new]
rbutil/rbutilqt/icons/dialog-warning.png [deleted]
rbutil/rbutilqt/icons/dialog-warning.svg [new]
rbutil/rbutilqt/icons/document-save.png [deleted]
rbutil/rbutilqt/icons/document-save.svg [new]
rbutil/rbutilqt/icons/doom_btn.png [deleted]
rbutil/rbutilqt/icons/edit-clear.svg [new]
rbutil/rbutilqt/icons/edit-find.png [deleted]
rbutil/rbutilqt/icons/edit-find.svg [new]
rbutil/rbutilqt/icons/font_btn.png [deleted]
rbutil/rbutilqt/icons/go-next.png [deleted]
rbutil/rbutilqt/icons/go-next.svg [new]
rbutil/rbutilqt/icons/input-gaming.svg [new]
rbutil/rbutilqt/icons/media-eject.png [deleted]
rbutil/rbutilqt/icons/media-eject.svg [new]
rbutil/rbutilqt/icons/multimedia-player.svg [new]
...and 34 more files.
Dominik Riebeling
2020-11-06 4f1888dfc8: rbutil: Redo MacOS application icon.

Don't use different icons depending on the display size and recreate properly including all scaled formats.
rbutil/rbutilqt/icons/rbutilqt.icns [diff]
Dominik Riebeling
2020-11-06 f9d8a0e210: rbutil: Simplify qmake check.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-11-06 6bc737cb1d: rbutil: Enable use of libmp3lame on macOS.

Since we're now automatically falling back to using the command line lame if we cannot load the library we can enable it on macOS as well.
rbutil/rbutilqt/base/encoderbase.cpp [diff]
Dominik Riebeling
2020-11-06 07604d62ab: rbutil: Command line fallback on libmp3lame failure.

When loading libmp3lame fails fall back to using the command line lame. Avoids an unresolvable error when trying to create voice / talk files for Archos. Modernize code a bit.
rbutil/rbutilqt/base/encoderbase.cpp [diff]
rbutil/rbutilqt/base/encoderlame.cpp [diff]
rbutil/rbutilqt/base/encoderlame.h [diff]
Dominik Riebeling
2020-11-04 bb7aa6f311: rk27generic: keymap tweaks
apps/keymaps/keymap-rk27xx-generic.c [diff]
Marcin Bukat
2020-11-04 235cdeca73: qeditor: add better fallback mecanism for icons
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2020-11-04 b200cd7e4a: test_mem: fix asm variant of read/write test
apps/plugins/test_mem.c [diff]
Mihail Zenkov
2020-11-04 db87e1aae5: Fix typos and wording
apps/plugins/text_viewer/readme.txt [diff]
apps/plugins/text_viewer/tv_settings.c [diff]
Avi Eisenberg
2020-11-04 5db83c155a: pp5020: use ipod firmware timings for ATA PIO.

Some mSATA adapters seem to have trouble working with Rockbox using our normal PIO timings; the timing value we use is probably out of spec and is different to the OF. Switch to using the OF's timings according to which PIO mode we select. This may not completely resolve problems with these adapters but allows Rockbox to boot and play audio.
firmware/drivers/ata.c [diff]
firmware/export/ata.h [diff]
firmware/target/arm/pp/ata-pp5020.c [diff]
firmware/target/arm/pp/ata-target.h [diff]
Torne Wuff
2020-11-03 090bd9592d: Remove the firmware decompressor and a few more other SH-stragglers.
apps/plugins/chessbox/chessbox.make [diff]
firmware/decompressor/Makefile [deleted]
firmware/decompressor/decompressor.c [deleted]
firmware/decompressor/link.lds [deleted]
firmware/decompressor/sh_nrv2e_d8.S [deleted]
firmware/decompressor/startup.S [deleted]
gdb/linker.cfg [diff]
gdb/start.s [deleted]
tools/configure [diff]
Solomon Peachy
2020-11-03 066d471ae6: ATA: Check to see if the ATA device is solid-state (WIP)

Not all devices advertise this flag, unfortunately.
firmware/drivers/ata.c [diff]
Solomon Peachy
2020-11-03 8029c89808: erosq: Fix scrollwheel regression introduced in 125e97b0
firmware/target/hosted/button-devinput.c [diff]
Solomon Peachy
2020-11-03 611c18704c: FuzePlus USB+screen dump overflows usbstack

Bump USB stack by 128 bytes

adds USB_EXTRA_STACK
firmware/export/config/sansafuzeplus.h [diff]
firmware/usb.c [diff]
William Wilgus
2020-11-01 0c99a3f9fb: Skin engine Onda Vx747

Fixing issues that existed before framebuf rewrite

Fix swap issue
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
William Wilgus
2020-11-01 f9ba96cade: rbutil: Remove unneeded includes.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
Dominik Riebeling
2020-11-01 1fa826738d: rbutil: Simplify extenal encoder binary handling.

We only use lame as external encoder for voice on the Archos targets. Simplify the implementation by removing (unused) handling of (potential) other encoders.
rbutil/rbutilqt/base/encoderexe.cpp [diff]
rbutil/rbutilqt/base/encoderexe.h [diff]
Dominik Riebeling
2020-10-31 daefd5686f: Rocker: Fix a boneheaded bug introduced in dd82f13fa1
firmware/drivers/audio/rocker_codec.c [diff]
Solomon Peachy
2020-10-31 1058ed5b25: tomcrypt: Set target macOS version.

Make sure the target version isn't the default one so it also runs on older macOS version than the current one.
utils/tomcrypt/Makefile [diff]
Dominik Riebeling
2020-10-31 5aa7245077: rbutil: Create more fancy dmg on macOS using dmgbuild.

Add target to build a dmg containing Rockbox Utility, ipodpatcher and sansapatcher as single app bundle, and create a more fancy dmg using dmgbuild.
rbutil/rbutil.pro [diff]
rbutil/rbutilqt/dmgbuild.cfg [new]
Dominik Riebeling
2020-10-31 125e97b0bf: hosted: Consolidate common /dev/input code shared by the hiby targets

* Enable dynamic number of input devices, needed for bluetooth support
firmware/SOURCES [diff]
firmware/target/hosted/agptek/button-agptek.c [diff]
firmware/target/hosted/agptek/button-target.h [diff]
firmware/target/hosted/aigo/button-erosq.c [diff]
firmware/target/hosted/aigo/button-target.h [diff]
firmware/target/hosted/button-devinput.c [new]
firmware/target/hosted/fiio/button-fiio.c [diff]
firmware/target/hosted/xduoo/button-target.h [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-31 dd82f13fa1: nwz/alsa: various improvements

Also audiohw driver to specific device name, rewrite alsa controls code to cache more data, thus making the code easier and use less stack. Avoid using short/long in pcm alsa code since it's the wrong size on 64-bit (simulator for example)
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/fiiolinux_codec.c [diff]
firmware/drivers/audio/nwzlinux-codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/target/hosted/alsa-controls.c [diff]
firmware/target/hosted/alsa-controls.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
firmware/target/hosted/sonynwz/debug-nwz.c [diff]
Amaury Pouly
2020-10-31 ce9e7e7122: hosted: fix warning when LOGF is enabled
firmware/target/hosted/system-hosted.c [diff]
Solomon Peachy
2020-10-31 8e5c57a822: plugins: bump api version (missed it in fe2d52c)
apps/plugin.h [diff]
Solomon Peachy
2020-10-31 60f642ba4f: lcd_framebuffer bugfixes, sanity checks

several issues I saw that could pontentially cause problems scroll engine doesn't take text height into account when checking bounds

NBELEMS was one whole row too large hopefully I got them right this time
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/export/lcd-remote.h [diff]
firmware/export/lcd.h [diff]
William Wilgus
2020-10-31 202f9df0c1: Test_Viewports BUGFIX

putting a framebuffer on the stack is never a good idea

Added comments
apps/plugins/test_viewports.c [diff]
William Wilgus
2020-10-31 7eee526e6a: fix red introduced in the android pcm driver (rev fe2d52c)
firmware/target/hosted/android/pcm-android.c [diff]
Solomon Peachy
2020-10-31 fe2d52cc7d: pcm: Get rid of pcm_play_pause() and associated APIs

Nothing in the core has used it for some time. It's exported to the plugin API but the last plugins to use it were switched to the mixer API back in 2011.

This allows us to get rid of pcm_play_dma_pause() from all audio drivers
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lua/include_lua/pcm.lua [diff]
apps/plugins/lua/rocklib.c [diff]
docs/PLUGIN_API [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/export/fiiolinux_codec.h [diff]
firmware/export/pcm-internal.h [diff]
firmware/export/pcm.h [diff]
firmware/export/rocker_codec.h [diff]
firmware/export/xduoolinux_codec.h [diff]
firmware/pcm.c [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/arm/as3525/pcm-as3525.c [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pnx0101/pcm-pnx0101.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
firmware/target/arm/rk27xx/pcm-rk27xx.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c [diff]
firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
firmware/target/hosted/android/pcm-android.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
...and 5 more files.
Solomon Peachy
2020-10-30 2d85c72151: iriver_flash: fix issues with DoUserDialog

First the argument should be const since the original parameter is.

Second the pointer arithmetic for detecting whether rockbox is running from ROM or not is incorrect. It ends up being at a location twice as far as intended since the arithmetic does not account for the pointer type's underlying size. It should also be dependent on the target's FLASH_SIZE.

Third the LCD setup is moved to the entry point since it is the best place to setup and restore the LCD changes.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 fa3184f951: iriver_flash: make most remaining functions static

This increases opportunities for optimizations as well.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 7c498b9043: iriver_flash: revise valid_bootloaders and detect_valid_bootloader

The main change is revising how the checksums are guarded by macros. But both are also converted to static linkage so they can be better optimized by GCC. I also change the types around to reflect how the space the data types actually need. Furthermore I make use of C99 changes to how variables can be declared to move them closer to where they are used.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 6bc6af6a0e: iriver_flash: revise load_firmware_file function

This moves the checksum into the local stack and turns the second parameter into an optional argument. This also reads the model segment that was previously unused so it can also be checked as an extra safeguard in the event the checksum somehow matches yet the model is incorrect.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 07fcced4fb: Fix volume handling of steps in radio
apps/radio/radio.c [diff]
Amaury Pouly
2020-10-30 44023eb430: Volume adjustment in LISTS ignored AUDIOHW_SETTING values

AUDIOHW_SETTING() defines number of decimals and step size. This is taken into account in sound menu but ignored in lists
(had been recently fixed in WPS). This was not a problem so far since all drivers used 0 decimal places and step size equal 1.
apps/gui/list.c [diff]
Johannes Rauh
2020-10-29 f1bfbb52f1: iriver_flash: revise cfi_read_id and cfi_get_flash_info

First neither of these functions can fail on supported targets so they have become void functions. Their return values were not being used anyway.

Second support for other flash chips not even used on the supported targets has been removed. It appears they were only ever used on the discontinued Arch devices.

Third cfi_read_id was restructured to remove obsolete code for error checking that is not necessary at all. The datasheets appear to indicate that the commands used cannot fail.

Fourth cfi_get_flash_info was restructured to use a new approach to initializing the flash_info struct. It no longer initializes the structure twice.

Fifth the relevant code has been updated to use the full 16 bits that are exposed by the flash rom ID interface.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-29 96f82f828a: rbutil: More Qt6 compatibility.

Qt6 doesn't contain QTextCodec anymore but instead provides it in the optional core5compat module.
rbutil/rbutilqt/quazip/quazip.h [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-10-29 4594541b5f: rbutil: Simplify search.

No need to get keys from the map to search a key, we can check directly.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
Dominik Riebeling
2020-10-29 2d62f2d017: rbutil: More Qt6 compatibility.

Replace QProcess::pid() which has been replaced with QProcess::processId() starting with Qt5.3 and removed from Qt6.
rbutil/rbutilqt/base/ttsfestival.cpp [diff]
Dominik Riebeling
2020-10-29 86420bbe2b: rbutil: Remove unused assignment.
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2020-10-29 f65e410497: iriver_flash: rewrite how the flash commands wait for the ROM

This uses the toggle bit method referenced in the datasheets for the supported ROM chips and moves the code to a reusable subroutine. It also introduces a short delay to give the bus a chance to recover. The older ROM datasheet doesn't mention this delay as necessary but the newer one does so it now does this for both.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-29 c5c17fa799: Fix display regression from c85d8e2

Basically setting a null buffer is valid but it must be selected into a screen to initialize to the default buffer

I wrongly assumed screen type wouldn't matter but since I decided to reference backdrops directly to the default buffer
(since they are saved as an offset from what it later assumes to be the default framebuffer) SCREEN_MAIN/SCREEN_REMOTE are not longer optional
apps/gui/skin_engine/skin_backdrops.c [diff]
William Wilgus
2020-10-28 c7fb319151: fix checkwps build (introduced in a5a8e00)
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2020-10-28 a5a8e00b6d: Fix a crash introduced in a605cdf70

Pretty subtle problem; looks like the skin core was relying on a destructor to actually help initialize things.
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2020-10-28 8c8284bbe6: Fix statusbar display regression from a605cdf700
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2020-10-28 c85d8e2865: Framebuffer_viewport Rewrite -- BUG FIX

stride was not initialized for the skin_viewport

fixed a few other questionable areas
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
William Wilgus
2020-10-28 a605cdf700: Fix multiple potential null pointer dereferencess

GCC's optimizer thinks all of these _will_ fail at some point
apps/gui/bitmap/list-skinned.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/reversi/reversi-gui.c [diff]
Solomon Peachy
2020-10-28 621e363e70: libgme: Fix yellow in hosted MIPS builds
lib/rbcodec/codecs/libgme/nsfe_info.c [diff]
Solomon Peachy
2020-10-28 41a6da6043: builds: Enable -fno-delete-null-pointer-checks globally

* arm failures in lua, wolf3d, quake, flac
* m68k failures in lua, wmapro
* mips ???

I still think that most of these are actually due to latent bugs or ambiguous code.
tools/configure [diff]
Solomon Peachy
2020-10-28 bcbf8bbf0a: wmapro: Backport multiple fixes

upstream commits:

780d454 b28c678 9166f48 97a5add b21ba20 f734671 b86dd1 b4027d9 50f0a6b 4c0080b c7a7605 5dcb990 7ad698e
lib/rbcodec/codecs/libwmapro/wmaprodec.c [diff]
Solomon Peachy
2020-10-28 a5a19a3370: dircache: Fix a NULL pointer dereference

if idx == 0, get_idx_dcvolp() will return NULL.
firmware/common/dircache.c [diff]
Solomon Peachy
2020-10-27 7dbfda6c55: iaudiom5: Fix build.

Basically we're overflowing IRAM by 48 bytes. Shrink the stack by 48 bytes to compensate.

Fixing this properly will require careful decisions about what
(code and/or data) to eject from IRAM.
firmware/target/coldfire/app.lds [diff]
Solomon Peachy
2020-10-27 bee736f3ea: iriver_flash: make cfi_read_id use FB directly
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-27 e5b963b8e1: iriver_flash: remove trailing whitespaces
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-27 61f698715d: coldfire: We need -fno-delete-null-pointer-checks in flash controller code
firmware/target/coldfire/debug-coldfire.c [diff]
Solomon Peachy
2020-10-27 f62eee569c: iriver_flash: we need -fno-delete-null-pointer-checks
apps/plugins/iriver_flash.c [diff]
Solomon Peachy
2020-10-26 804a49886a: statusbar: Make statusbar height equal SYSFONT_HEIGHT

And size elements horizaontally based on SYSFONT_WIDTH

Unfortunately we need 16px icons to make 16px statusbar look right but at least it _works_ properly now.

Also: all targets currently use 8-px SYSFONT, except some hosted bootloaders
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/statusbar.h [diff]
apps/recorder/icons.h [diff]
apps/recorder/peakmeter.c [diff]
tools/configure [diff]
Solomon Peachy
2020-10-26 299c237075: 'Fix RED e200 Framebuffer_viewport_rewrite

Free malloc in checkwps too
firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c [diff]
tools/checkwps/checkwps.c [diff]
William Wilgus
2020-10-26 04e7bacc4c: FIX RED Framebuffer_viewport_rewrite
apps/plugins/reversi/reversi-gui.c [diff]
tools/checkwps/checkwps.c [diff]
William Wilgus
2020-10-26 ada919fc11: FIX RED framebuffer viewport rewrite
apps/plugins/rockboy/lcd.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/target/coldfire/iaudio/x5/lcd-x5.c [diff]
William Wilgus
2020-10-26 9b295ce135: FIX RED/YELLOW framebuffer viewport rewrite
apps/plugins/reversi/reversi-gui.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2020-10-26 40e98a2e49: Whitespace cleanup on fb_viewport Rewrite
apps/gui/pitchscreen.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/splash.c [diff]
apps/gui/viewport.c [diff]
apps/gui/viewport.h [diff]
apps/gui/yesno.c [diff]
apps/plugins/lib/xlcd_draw.c [diff]
apps/plugins/lib/xlcd_scroll.c [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/screen_access.c [diff]
apps/screen_access.h [diff]
apps/screens.c [diff]
bootloader/common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/export/config/mrobe500.h [diff]
firmware/export/lcd.h [diff]
William Wilgus
2020-10-26 3237ae4a4f: LCD core move buf ptr and address look up function viewport struct

I'm currently running up against the limitations of the lcd_draw functions I want these functions to be able to be used on any size buffer not just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear scrolling viewports no longer trigger wps refresh also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_) LCD_STRIDE(w, h) same as STRIDE_MAIN LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH) test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags
apps/alarm_menu.c [diff]
apps/gui/bitmap/list.c [diff]
apps/gui/color_picker.c [diff]
apps/gui/pitchscreen.c [diff]
apps/gui/quickscreen.c [diff]
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/splash.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/usb_screen.c [diff]
apps/gui/viewport.c [diff]
apps/gui/viewport.h [diff]
apps/gui/yesno.c [diff]
apps/menus/time_menu.c [diff]
apps/misc.c [diff]
apps/onplay.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/lib/grey.h [diff]
apps/plugins/lib/grey_core.c [diff]
apps/plugins/lib/grey_parm.c [diff]
...and 44 more files.
William Wilgus
2020-10-26 12f3ed1699: make the plugin API frambuffer agnostic
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/lib/grey_core.c [diff]
apps/plugins/lib/osd.c [diff]
apps/plugins/lib/xlcd_draw.c [diff]
apps/plugins/lib/xlcd_scroll.c [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/pacbox/pacbox.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/plasma.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/rockboy/lcd.c [diff]
apps/plugins/rockboy/sys_rockbox.c [diff]
apps/plugins/sdl/src/video/rockbox/SDL_rockboxvideo.c [diff]
apps/plugins/test_resize.c [diff]
apps/plugins/xworld/sys.c [diff]
apps/plugins/zxbox/zxvid_16bpp.c [diff]
apps/plugins/zxbox/zxvid_2bpp.c [diff]
firmware/export/lcd.h [diff]
Moshe Piekarski
2020-10-26 5d5f8169b5: statusbar: Respect 'numdecimals' when displaying the volume setting

eg with numdecimals=1, a value of "-300" actually means "-30.0" So divide it down appropriately, and only display the whole integer portion.
apps/gui/statusbar.c [diff]
Solomon Peachy
2020-10-26 845e5a4f03: sonynwz: A10 and A20 series support high bitrates
firmware/export/config/sonynwzlinux.h [diff]
Solomon Peachy
2020-10-26 dd3ea521ad: iriver_flash: correctly calculate when to stop erasing the bootloader

It was originally hard-coded at 0x200 which is 512 sectors. This only works for the H100 and H120. The larger ROM of the H300 is 1024 sectors in size. In either case the bootloader starts 16 sectors before the end of the ROM so rely on this fact to correctly calculate where to stop the bootloader erasure.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-26 c5d7cd5f9f: h300: add support for ROM image generation
firmware/export/config/iriverh300.h [diff]
firmware/rom.lds [diff]
tools/configure [diff]
James Buren
2020-10-26 28b9c8bfeb: rocker: Disable mute-on-pause, due to a platform kernel bug.

In short, the display fading back in after a pause resuming interferes with the audio codec, causing BadThings(tm) that cannot be recovered from

This really is just avoiding a known trigger; there's no guarantee this condition won't occur under random circumstances during normal use, and there's no good way to work around this from within rockbox.

I suspect the underlying problem is that both the display control and codec control share an i2c bus, but the kernel drivers implementing them isn't using proper linux bus access/locking.
firmware/drivers/audio/rocker_codec.c [diff]
firmware/export/rocker_codec.h [diff]
Solomon Peachy
2020-10-26 bde72efa30: coldfire: make the RAM and ROM image locations configurable by macros
firmware/export/config/iaudiom3.h [diff]
firmware/export/config/iaudiom5.h [diff]
firmware/export/config/iaudiox5.h [diff]
firmware/export/config/mpiohd200.h [diff]
firmware/export/config/mpiohd300.h [diff]
firmware/target/coldfire/crt0.S [diff]
James Buren
2020-10-26 129001909d: h300: enable support for iriver_flash

This also modifies the configuration file to include macros defined in the H100 / H120 implementation.
apps/plugins/SOURCES [diff]
apps/plugins/iriver_flash.c [diff]
firmware/export/config/iriverh300.h [diff]
James Buren
2020-10-26 f7e0ce8fb9: h300: expose the firmware functions in the plugin API
apps/plugin.c [diff]
apps/plugin.h [diff]
James Buren
2020-10-26 39a0d8bf86: x3ii/x20/rocker: Fix volume scaling.
firmware/export/rocker_codec.h [diff]
firmware/export/xduoolinux_codec.h [diff]
Solomon Peachy
2020-10-26 49c4577fa6: Get rid of another vestigal SH remnant in the rom linker script
firmware/rom.lds [diff]
Solomon Peachy
2020-10-25 1419070b3d: iriver_flash: add support for SST39VF3201 ROM chips

These are used in the iRiver H300 series.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-25 3fbca49929: Revert Non-Alpha Updated 8x8 tango icons

The new icons have no alpha channel thus these are being removed in favor of the old icons (that have alpha and match the rest of the set too)

This reverts commit 326b7a5c0c00b1d13cfd1319c1f290d18da8d824.
docs/CREDITS [diff]
icons/tango_icons.8x8.bmp [diff]
William Wilgus
2020-10-25 d4a80ce94b: pcm-alsa: fix red.
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-25 4afd1f9aa6: hosted: Document HW capabilities of audio drivers

One surprise: X3ii is capable of 384KHz playback
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2020-10-25 e7a492ef55: hosted: alsa: Fix two bugs when recording
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-24 ec2a34b321: pcm_mixer: Fix an idle frame calculation bug introduced in 2e708c48c5

Resulted in playback sometimes hanging after switching tracks
firmware/pcm_mixer.c [diff]
Solomon Peachy
2020-10-24 d78a37676e: ClipPlus BOOTLOADER DONT FIT!

REMOVED FROM ALL NATIVE BOOTLOADERS: finish removing the text scrolling pare down printf to a minimal subset (%c %s %l %d %u and %x(%p)) remove diacritic and rtl language support

GOAL 134000

START 135305

CURRENT 133700

SUCCESS! (ASSUMING IT WORKS -- UNESTED)
bootloader/SOURCES [diff]
bootloader/format.c [new]
bootloader/format.h [new]
bootloader/snprintf.c [new]
firmware/common/diacritic.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/scroll_engine.c [diff]
William Wilgus
2020-10-23 a8aa8403ad: samsungyp: Enable recording feature. No idea if it works. :D
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/samsungypr1.h [diff]
Solomon Peachy
2020-10-23 46e357f1bb: ALSA: Further rework:

* Get rid of non-async (ie tick task) mode due to inherent brokenness
* Get rid of nonblock mode; we never write if buffers aren't sufficient
* Move driver init into pcm_open() instead of pcm_init()
* Much better underrun handling
* Better error handling in some situations
* Add in recording functionality
* Use smaller audio buffers to avoid glitching
* Don't start audio buffer with silence
* Allow device name to be overridden by target

Recording portions based on work done by Lorenzo Miori in g#633
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
Solomon Peachy
2020-10-23 2cf75bf008: fire: exit out of the plugin with both PLA_EXIT and PLA_CANCEL
apps/plugins/fire.c [diff]
Solomon Peachy
2020-10-23 3a7a46d1c0: Hosted targets Fix timer cycle calculation overflow

at 1 GHZ the intermediate calculation for cycles overflows 32 bits this makes timer fail even with sensible values solution divide both sides by 100
apps/plugins/lua/rocklib_events.c [diff]
firmware/target/hosted/kernel-unix.c [diff]
William Wilgus
2020-10-23 186dbb4527: Convert FFT plugin to using PLA keymapings

Based on an old patch (g#188) by Jean-Louis Biasini
apps/plugins/fft/fft.c [diff]
Solomon Peachy
2020-10-23 7c06a9e208: SVG image of the Aigo Eros Q and other formats for the manual.
manual/rockbox_interface/images/aigoerosq-front.pdf [new]
manual/rockbox_interface/images/aigoerosq-front.png [new]
manual/rockbox_interface/images/aigoerosq-front.svg [new]
Szymon Dziok
2020-10-22 1e12990ba9: rbutil: Rename libbzip2.a to libbz2.a.

When cross compiling for Windows (at least mxe) links bz2, causing both our copy and the system one getting linked, resulting in symbol clashes. Make sure we use the same name as the system one, so the linker can pick one of both.
rbutil/bspatch/Makefile [diff]
rbutil/bzip2/Makefile [diff]
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-10-22 02c5dd3641: fiio: Another bugfix in the mute code.
firmware/drivers/audio/fiiolinux_codec.c [diff]
Solomon Peachy
2020-10-22 97b8692b65: fiio: add in a missing audiohw_mute() call.
firmware/drivers/audio/fiiolinux_codec.c [diff]
Solomon Peachy
2020-10-21 ce3da6238f: rbutil: Fix linking zlib on Windows.

With Qt4 zlib was linked implicitly (and explicitly linking it caused errors). This was a Qt issue that has been resolved with (at least current) Qt5, now we need to explicitly link zlib on native Windows.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-10-21 1801dcc999: rbutil: Fix native Windows build for tools.

- When make on Windows finds sh.exe it will try to use that. We use cmd.exe calls when detecting Windows, so make sure we use cmd.exe as shell.
- Add missing Windows compatibility to tomcrypt Makefile.
rbutil/libtools.make [diff]
tools/rbspeex/Makefile [diff]
tools/ucl/src/Makefile [diff]
utils/tomcrypt/Makefile [diff]
Dominik Riebeling
2020-10-21 884d8922e3: hosted: Allow ALSA driver to switch output device at runtime

* Allow output device name to be specified
* Set hw/swparams prior to actual playback start, not at init
* If told to open a new device, cleanly close down old one.
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-21 6b13437aff: Add UI Simulator for Eros Q / K series
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-aigoerosq.bmp [new]
uisimulator/buttonmap/SOURCES [diff]
uisimulator/buttonmap/erosq.c [new]
Solomon Peachy
2020-10-20 6834d1a02f: xduoox20: Start unmuted, as the least-worst option
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/xduoolinux_codec.h [diff]
Solomon Peachy
2020-10-19 dfae5d881d: nwza860: fix simulator build
apps/audio_path.c [diff]
Amaury Pouly
2020-10-18 08513103c6: nwzstools: add NW-A820 nvp nodes
firmware/target/hosted/sonynwz/nwz-db.c [diff]
utils/nwztools/database/nvp/nwz-a820.txt [new]
Amaury Pouly
2020-10-18 1a1338c379: rbutil: Fix ipodpatcher qmake based build on macOS.

On macOS we need to pass the used frameworks, otherwise linking will fail.
rbutil/ipodpatcher/ipodpatcher.pro [diff]
Dominik Riebeling
2020-10-18 a05d061aa3: rbutil: Pass isysroot to rbutil libs on macOS.

On macOS we pass the full path to the compiler. On recent versions this causes the compiler to not find its SDK path, this needs to get passed via the isysroot option.
rbutil/libtools.make [diff]
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
tools/rbspeex/Makefile [diff]
tools/ucl/src/Makefile [diff]
utils/tomcrypt/Makefile [diff]
Dominik Riebeling
2020-10-18 d097742155: sbtools: Change crypto wrapper implementation to C.

There's nothing C++ left.
rbutil/mkimxboot/Makefile [diff]
utils/imxtools/sbtools/Makefile [diff]
utils/imxtools/sbtools/crypto.cpp utils/imxtools/sbtools/crypto.c [rename]
Dominik Riebeling
2020-10-18 2037b837f8: sbtools: convert crypto to libtomcrypt.

Replace the use of crypto++ with tomcrypt, which is much smaller and C. This gets rid of various build issues for systems that don't ship crypo++ (i.e. everything except Linux.)
rbutil/mkimxboot/Makefile [diff]
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
utils/imxtools/sbtools/Makefile [diff]
utils/imxtools/sbtools/crypto.cpp [diff]
utils/imxtools/sbtools/crypto.h [diff]
Dominik Riebeling
2020-10-18 815b289cb3: imxtools: Replace use of "byte" with its underlying uint8_t.

libtomcrypt uses a macro "byte" which conflicts with this type. Since the underlying type is uint8_t and there's no real benefit from using a custom type use the actual underlying type.
rbutil/mkimxboot/mkimxboot.c [diff]
utils/imxtools/sbtools/crc.c [diff]
utils/imxtools/sbtools/crypto.cpp [diff]
utils/imxtools/sbtools/crypto.h [diff]
utils/imxtools/sbtools/dbparser.c [diff]
utils/imxtools/sbtools/misc.c [diff]
utils/imxtools/sbtools/misc.h [diff]
utils/imxtools/sbtools/sb.c [diff]
Dominik Riebeling
2020-10-18 387a45923c: utils: Add Makefile for our copy of libtomcrypt.
utils/tomcrypt/Makefile [new]
Dominik Riebeling
2020-10-18 caa9d9c1c5: utils: Add (partial) libtomcrypt.

Add the parts of libtomcrypt that we're about to use.
docs/CREDITS [diff]
utils/tomcrypt/LICENSE [new]
utils/tomcrypt/README.ROCKBOX [new]
utils/tomcrypt/src/ciphers/aes/aes.c [new]
utils/tomcrypt/src/ciphers/aes/aes_tab.c [new]
utils/tomcrypt/src/hashes/sha1.c [new]
utils/tomcrypt/src/headers/tomcrypt.h [new]
utils/tomcrypt/src/headers/tomcrypt_argchk.h [new]
utils/tomcrypt/src/headers/tomcrypt_cfg.h [new]
utils/tomcrypt/src/headers/tomcrypt_cipher.h [new]
utils/tomcrypt/src/headers/tomcrypt_custom.h [new]
utils/tomcrypt/src/headers/tomcrypt_hash.h [new]
utils/tomcrypt/src/headers/tomcrypt_mac.h [new]
utils/tomcrypt/src/headers/tomcrypt_macros.h [new]
utils/tomcrypt/src/headers/tomcrypt_math.h [new]
utils/tomcrypt/src/headers/tomcrypt_misc.h [new]
utils/tomcrypt/src/headers/tomcrypt_pk.h [new]
utils/tomcrypt/src/headers/tomcrypt_pkcs.h [new]
utils/tomcrypt/src/headers/tomcrypt_private.h [new]
utils/tomcrypt/src/headers/tomcrypt_prng.h [new]
utils/tomcrypt/src/misc/compare_testvector.c [new]
utils/tomcrypt/src/misc/crypt/crypt_argchk.c [new]
utils/tomcrypt/src/misc/crypt/crypt_cipher_descriptor.c [new]
utils/tomcrypt/src/misc/crypt/crypt_cipher_is_valid.c [new]
utils/tomcrypt/src/misc/crypt/crypt_register_cipher.c [new]
utils/tomcrypt/src/misc/zeromem.c [new]
utils/tomcrypt/src/modes/cbc/cbc_decrypt.c [new]
utils/tomcrypt/src/modes/cbc/cbc_encrypt.c [new]
utils/tomcrypt/src/modes/cbc/cbc_start.c [new]
Dominik Riebeling
2020-10-18 7603533f7f: tools: Modernize rbspeex Makefile.

- Replace echo with make internal info function.
- Make dependency generation implicit to avoid another compiler call.
- Align object handling with libtools.make.
tools/rbspeex/Makefile [diff]
Dominik Riebeling
2020-10-18 6a94f1e995: sonynwz: Properly support multidrive, with hotswap of the SD card
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/sonynwa20.h [diff]
firmware/export/config/sonynwza10.h [diff]
firmware/export/config/sonynwzlinux.h [diff]
firmware/target/hosted/sonynwz/system-nwz.c [diff]
Solomon Peachy
2020-10-18 5f75c493e3: xduoox20: Remove a duplicate config option
firmware/export/config/xduoox20.h [diff]
Solomon Peachy
2020-10-18 edbdefa09a: hosted: Drop a bootloader version string in /etc, and report it in debug menu
firmware/target/hosted/agptek/debug-agptek.c [diff]
tools/hiby_patcher.pl [diff]
Solomon Peachy
2020-10-18 4cdb28c167: Fix sim build for STORAGE_USB
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
2020-10-18 b1e21bbd7a: hosted: Consolidate common config of hiby-based units into a common header

* Enabled MULTIDRIVE and ROOTFS_HOTPLUG for full hotswap!
(Requires updated bootloader/integration!)
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/aigoerosq.h [diff]
firmware/export/config/hibylinux.h [new]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
tools/hiby_patcher.pl [diff]
Solomon Peachy
2020-10-17 7d3e39cfd8: hiby_patcher: Fix a couple of bugs in the hotplug scripts
tools/hiby_patcher.pl [diff]
Solomon Peachy
2020-10-17 6f9a157fca: hosted: Fix USB mounting code to work with HAVE_MULTIDRIVE enabled
firmware/target/hosted/fiio/usb-fiio.c [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/hosted/usb-hiby.c [diff]
Solomon Peachy
2020-10-17 f3ec58c05b: hosted: Support hot-swappable internal and external storage
firmware/target/hosted/fiio/system-fiio.c [diff]
firmware/target/hosted/system-hosted.c [diff]
Solomon Peachy
2020-10-17 d8d37ffdb8: Define a USB storage type, and hook it up for hosted targets
firmware/common/pathfuncs.c [diff]
firmware/export/config.h [diff]
firmware/export/hostfs.h [diff]
firmware/export/mv.h [diff]
firmware/export/storage.h [diff]
firmware/target/hosted/fiio/system-fiio.c [diff]
firmware/target/hosted/system-hosted.c [diff]
Solomon Peachy
2020-10-17 0a4a920029: hosted: ROLO: Fixes for PIVOT_ROOT targets
firmware/target/hosted/rolo.c [diff]
Solomon Peachy
2020-10-17 012908e064: hosted: Fix HAVE_MULTIDRIVE to work properly with PIVOT_ROOT
firmware/export/config/samsungypr0.h [diff]
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2020-10-17 a68fc3b6c2: xduoox3ii/erosq: Fix CPU frequency declared in header

(108 MHz -> 1008 MHz)
firmware/export/config/aigoerosq.h [diff]
firmware/export/config/xduoox3ii.h [diff]
Solomon Peachy
2020-10-17 13f5e123f9: samsung yp-r0/r1: use os-native opendir() in the low-level driver code

Fixes blank LCD on both R0/R1 and the PMU on the R1
firmware/target/hosted/samsungypr/lcd-ypr.c [diff]
firmware/target/hosted/samsungypr/ypr1/powermgmt-ypr1.c [diff]
Solomon Peachy
2020-10-17 0e667ff5b0: sonynwz: use os-native opendir() in the low-level input driver code

instead of the rockbox opendir() wrapper.
firmware/target/hosted/sonynwz/button-nwz.c [diff]
Solomon Peachy
2020-10-17 cd721754d0: Fix configure target name for the erosq/k series.
rbutil/rbutilqt/rbutil.ini [diff]
tools/configure [diff]
Solomon Peachy
2020-10-17 1b110daf08: rbutil: Add in the EROS Q / EROS K and clones
rbutil/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2020-10-17 ce40ef42ff: hosted: Make sure we don't call mixer/etc controls when we're not ready

(Might fix the rocker crash-on-shutdown bug)
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/fiiolinux_codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2020-10-16 d993448c9f: Add Samsung YP-R1 to the builds.pm file, as an unstable (but usable) target.
tools/builds.pm [diff]
Solomon Peachy
2020-10-16 318229e742: rbutil: Fix incorrect USB IDs for the xDuoo X3ii and X20
rbutil/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2020-10-16 c6d2a0358f: hosted: open input device as read-only.
firmware/target/hosted/agptek/button-agptek.c [diff]
firmware/target/hosted/aigo/button-erosq.c [diff]
firmware/target/hosted/fiio/button-fiio.c [diff]
firmware/target/hosted/sonynwz/button-nwz.c [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-15 1a76bc403e: erosq: Fix up builds.pm to match what we actually call the target
tools/builds.pm [diff]
tools/configure [diff]
Solomon Peachy
2020-10-15 df8b817c96: nwztools/scsitool: fix incorrect declaration in header file
utils/nwztools/scsitools/para_noise.h [diff]
Amaury Pouly
2020-10-15 2e07223690: m3k: Fixes for the M3K.

* Cannot turn off the LCD directly (have to rely on backlight)
* Only insmod/rmmod the usb gadget modules if state changes
firmware/export/config/fiiom3k.h [diff]
firmware/target/hosted/fiio/usb-fiio.c [diff]
Solomon Peachy
2020-10-15 455a23bdab: Promote the eros q/k to "unstable"
tools/builds.pm [diff]
Solomon Peachy
2020-10-15 82787709bd: update the hibi patcher script to handle initial m3k stuff
firmware/drivers/audio/fiiolinux_codec.c [diff]
tools/hiby_patcher.pl [diff]
Solomon Peachy
2020-10-15 0cde20fadb: xduoox3: Disable the DAC's digital de-emphasis filter.

Whether or not this is correct depends on how the source material was mastered, digitized, and/or encoded. There is no setting appropriate for everything.

Eventually I'd like to make this configurable, but I'd want to have it shared with more than one target first.
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
Solomon Peachy
2020-10-15 d544ce46a7: hosted: Unify the USB code for the hiby-based players.

* Specify exported USB VID/PID in target config header
* Don't fail if the sd filesystem has already been remounted
(ie due to platform hotplug)
firmware/SOURCES [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/aigoerosq.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/target/hosted/aigo/usb-erosq.c [deleted]
firmware/target/hosted/agptek/usb-agptek.c firmware/target/hosted/usb-hiby.c [rename]
firmware/target/hosted/xduoo/usb-xduoo.c [deleted]
Solomon Peachy
2020-10-15 4873a1ac61: fiiom3k: Temporarily disable filter rolloff programming

(Hardware control isn't wired into ALSA properly)
bootloader/rocker_linux.c [diff]
firmware/drivers/audio/fiiolinux_codec.c [diff]
Solomon Peachy
2020-10-14 ca4d63d4d9: m3k: Fixes to the launcher/loader.

* Execute the correct OF player binary
* We don't have adb, so error out
bootloader/rocker_linux.c [diff]
Solomon Peachy
2020-10-14 1b449abf39: erosq: Add battery discharge curve and initial runtime estimation.

(playing mp3 with headphones inserted lasted just over 13 hours)
firmware/export/config/aigoerosq.h [diff]
firmware/target/hosted/aigo/powermgmt-erosq.c [diff]
Solomon Peachy
2020-10-14 19d45c9257: Work around wonky inline asm issue with creativezenvm build.

The right thing here probably to just not bother at all, as this bootloader can't launch rockbox yet anyway.
firmware/target/arm/system-arm.h [diff]
Solomon Peachy
2020-10-14 105a0eb0b7: mrobe500 bootloader fix
bootloader/mrobe500.c [diff]
Solomon Peachy
2020-10-14 cddd8d66e2: Silence warnings that happen on newer GCCs

(code is presumably correct)
apps/plugins/pdbox/PDa/src/m_obj.c [diff]
apps/plugins/rockboy/mem.c [diff]
Solomon Peachy
2020-10-13 26bebd77ab: Fix more red.
firmware/drivers/isp1583.c [diff]
firmware/target/arm/rk27xx/hm60x/button-hm60x.c [diff]
Solomon Peachy
2020-10-13 e2adc6781f: bootloader: Work around linker wonkiness that broke PP bootloader builds.
bootloader/bootloader.make [diff]
Solomon Peachy
2020-10-13 09785a8499: fix more yellow
apps/debug_menu.c [diff]
apps/plugins/iriver_flash.c [diff]
firmware/drivers/isp1583.c [diff]
firmware/target/arm/rk27xx/hm801/button-hm801.c [diff]
firmware/target/arm/sandisk/sansa-c200/button-c200.c [diff]
firmware/target/coldfire/mpio/hd300/button-hd300.c [diff]
Solomon Peachy
2020-10-13 b94db707fb: Fix more warnings.
apps/plugins/iriver_flash.c [diff]
bootloader/ipod6g.c [diff]
firmware/drivers/rtc/rtc_e8564.c [diff]
firmware/target/arm/pbell/vibe500/button-vibe500.c [diff]
firmware/target/arm/samsung/button-yh82x_yh92x.c [diff]
firmware/target/arm/usb-drv-arc.c [diff]
firmware/target/coldfire/iaudio/m3/button-m3.c [diff]
firmware/target/coldfire/iriver/h100/button-h100.c [diff]
firmware/target/coldfire/iriver/h300/button-h300.c [diff]
firmware/target/coldfire/mpio/ata-mpio.c [diff]
firmware/target/coldfire/mpio/hd200/button-hd200.c [diff]
Solomon Peachy
2020-10-13 431caa4311: imx31: Work around an apparently not-quite-kosher abuse of CPP

(we were trying to foward-declare functions from within static initializer context. GCC no longer accepts this)
firmware/export/mc13783.h [diff]
firmware/target/arm/imx31/gigabeat-s/gpio-target.h [diff]
firmware/target/arm/imx31/gigabeat-s/mc13783-target.h [diff]
firmware/target/arm/imx31/gpio-imx31.h [diff]
Solomon Peachy
2020-10-13 f8bd54d575: iaudiox5: Fix red, due to slightly bogus asm
firmware/target/coldfire/iaudio/x5/button-x5.c [diff]
firmware/target/coldfire/iaudio/x5/lcd-as-x5.S [diff]
Solomon Peachy
2020-10-13 ca326896d0: Fix compile warnings (set-but-not-used) on big endian targets
apps/plugins/lib/jhash.c [diff]
apps/talk.c [diff]
Solomon Peachy
2020-10-13 4a3d046545: Fix a pile of yellow in the bootloader
firmware/drivers/rtc/rtc_e8564.c [diff]
firmware/target/arm/iriver/h10/button-h10.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c [diff]
firmware/target/arm/s5l8702/system-s5l8702.c [diff]
firmware/target/arm/tcc780x/cowond2/button-cowond2.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/powermgmt-mr500.c [diff]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
firmware/target/coldfire/iaudio/m3/button-m3.c [diff]
firmware/target/coldfire/iaudio/m5/button-m5.c [diff]
Solomon Peachy
2020-10-13 b4865b05b0: Build: Bump all toolchains to GCC 4.9.4 + Binutils 2.26.1

GCC 4.9.4 was already used for MIPS and all hosted targets; this enables it across the board for everything (ie m68k and arm native)

Other changes:

* Use '-Os' as the default optiomization for all targets
(was only disabled for arm native)
* Enable -funit-at-a-time and -Wextra
* Drop all obsolete toolchain patches
* Update ARM multilib/exception patch
* Bump toolchain libs (gmp, mpfr, mpc) to recommended versions, and add 'isl' to enable better optimization & vectorization opportunities.

(Will revisit optimization for the codecs and plugins at a later date)

Confirmed working:

* armv4t (ipodmini2g and many other PP502x targets)
* arm >= v5 (sansaclipplus, ipod6g, ipodnano2g, sansafuzeplus)
* m68k (ihp100)
lib/rbcodec/codecs/codecs.make [diff]
tools/configure [diff]
tools/rockboxdev.sh [diff]
tools/toolchain-patches/binutils-2.16.1-texinfo-fix.diff [deleted]
tools/toolchain-patches/binutils-2.20.1-ld-thumb-interwork-long-call.diff [deleted]
tools/toolchain-patches/binutils-2.20.1-texinfo-fix.diff [deleted]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.4.2_1.diff [deleted]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff [new]
Solomon Peachy
2020-10-13 e91f89a410: xduoox3ii: Update battery curve.
firmware/export/config/xduoox3ii.h [diff]
firmware/target/hosted/xduoo/powermgmt-xduoo.c [diff]
Solomon Peachy
2020-10-12 f68463c53e: quickscreen: Get rid of a vestigal remnant of the Archos code.
apps/gui/quickscreen.c [diff]
apps/gui/quickscreen.h [diff]
Solomon Peachy
2020-10-12 688575368c: rocker: Fix red introduced in 01dc81c
firmware/drivers/audio/rocker_codec.c [diff]
Solomon Peachy
2020-10-12 17244177ee: hosted: Fix a corner case in umuting the x3ii and erosq
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2020-10-12 b5c2a4ab96: Add support for new bootloaders for iRiver h1x0 series

This resolves a long-standing issue with ATA errors in certain situations, mostly in CF card modified units.
apps/plugins/iriver_flash.c [diff]
docs/CREDITS [diff]
James Buren
2020-10-12 078c34e951: hosted: More PCM muting work

* Track mute state, only call hw if actual change is needed
* Don't unmute in audiohw_postinit()
* sample rate tracking fixes
* erosq: Don't start up muted
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/erosqlinux_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-12 01dc81cd94: rolo: hosted: Make display output non-glitchy
firmware/target/hosted/rolo.c [diff]
Solomon Peachy
2020-10-12 141e91ef1f: Hosted PCM: Rework auto-muting code a bit

* If AUDIOHW_MUTE_ON_PAUSE, no meaningful change
* Unconditionally unmute on playback start
* xduoox3ii: Mute on sample rate change
* rocker/xduoo: Stay muted after startup

This avoids the nasty "pop" on startup, without doing the full mute-on-pause stuff that causes unacceptable dropouts on the X3ii.
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/xduoolinux_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-12 9ad30869b8: xduoox3ii/x20: Work around a nasty OF interaction bug

...that can result in your sd card getting wiped at startup
tools/hiby_patcher.pl [diff]
Solomon Peachy
2020-10-11 135b3f6416: Fix inverted test that made SDL_APP unhappy
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2020-10-11 e1bc36ca31: Turn on ROLO for M3K too
firmware/export/config/fiiom3k.h [diff]
firmware/target/hosted/rolo.c [diff]
Solomon Peachy
2020-10-11 db6f21e295: hosted: sanitize handling of HOME_DIR

* HOME_DIR is now either "/" or special "<HOME>"
* target-specific "home dir path" is defined solely by PIVOT_ROOT
* PIVOT_ROOT path is now defined in toplevel config files
* Make Samsung YP-R0/R1 and SONY_NWZ use PIVOT_ROOT too
* Do not prepend PIVOT_ROOT path if the path already has it!
* Do not play these games for __PCTOOL__ builds
apps/plugins/battery_bench.c [diff]
apps/scrobbler.c [diff]
bootloader/rocker_linux.c [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/aigoerosq.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/samsungypr1.h [diff]
firmware/export/config/sonynwzlinux.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/export/rbpaths.h [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/hosted/rolo.c [diff]
Solomon Peachy
2020-10-11 a5add3982b: Fix red introduced from keymap typos
apps/plugins/battery_bench.c [diff]
apps/plugins/pegbox.c [diff]
apps/plugins/xobox.c [diff]
Solomon Peachy
2020-10-11 2a471e288c: New port: AIGO EROS Q / EROS K

The Q and K have a slightly different case, but the hardware under the shell is completely identical.

These models are rebadged versions:

* Hifiwalker H2 (== Q)
* AGPTek H3 (== K)
* Surfans F20 (== K)

Other notes:

* Significant improvements in the shared Hiby-platform launcher/loader
* SD card can theoretically be hot-swapped now
* Support external USB mass storage!
* Some consolidation of Hiby-platform targets
* Some consolidation of plugin keymaps

Todo/known issues:

* Keymaps need to be gone over properly
* Convert to HAVE_SCROLLWHEEL?
apps/SOURCES [diff]
apps/bitmaps/native/SOURCES [diff]
apps/debug_menu.c [diff]
apps/keymaps/keymap-erosq.c [new]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
...and 56 more files.
Solomon Peachy
2020-10-11 5efaa9ef80: rbutil: Use globalPos() for getting mouse position.

globalX() / globalY() are deprecated for Qt6. Use globalPos() instead, which gives the same result.
rbutil/rbutilqt/preview.cpp [diff]
rbutil/rbutilqt/preview.h [diff]
Dominik Riebeling
2020-10-11 4e89e0e0ea: nwztools: fix wrongly generate MD5 files

When generating the MD5 using -z index,name the tool would add the entry but forgot to increase the file size, hence truncating the file.
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
2020-10-11 6533d983ca: hosted: Add ROLO support for hosted targets
apps/filetree.c [diff]
firmware/SOURCES [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/export/rolo.h [diff]
firmware/rolo.c [diff]
firmware/target/hosted/rolo.c [new]
Solomon Peachy
2020-10-11 fcdfeb2a45: nwztools: re-implement MD5 on Windows

I forgot to fixup the windows up and missed it because of conditional compilation
utils/nwztools/upgtools/mg.cpp [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
2020-10-11 e371dee4a3: nwztool: fix computation

It turns out the calculation gives the right result for the wrong reason, this fixes it.
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
2020-10-11 8ce60c54f7: nwztools/upgtool: add support for MD5

When compressing, it is possible to tell the tool to add an entry to the MD5 file (index 1), it is still necessary to give an empty file for that index. To do so, pass the option "-z idx,name" insteas of "-z idx". This will create an entry of the form "size md5 name". For instance "-z 6,system.img". When decompressing, if one passes "-z idx,name" instead of "-z idx", the tool will decompress and check against the value in the MD5 file.
utils/nwztools/upgtools/mg.cpp [diff]
utils/nwztools/upgtools/mg.h [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
2020-10-11 7cba599106: nwztool/upgtools: add NW-A55 and DMP-Z1 KAS, reorganize list
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
2020-10-11 1b5e824405: nwztool/upgtool: add support for compression

To decompress some output file(s), simply pass -z <idx> where idx is the index of the file to decompress, starting from 0. For example upgtool -e NW_WM_FW.UPG -o tmp/ -m nw-wm1a -z 6 -z 7 to decompress files 6 and 7. To compress file, use the same options: upgtool -c NW_WM_FW.UPG -m nw-wm1a -z 2 script.sh md5sum.txt system.img
utils/nwztools/upgtools/Makefile [diff]
utils/nwztools/upgtools/make_release.sh [new]
utils/nwztools/upgtools/upg.c [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
2020-10-11 1f338f7078: nwztools/upgtools: add support for windows

In order to avoid the crypto++ mess, the code uses the Windows Cryptography API, which is standard. There is also some makefile magic to cross-compile: make PREFIX=i686-w64-mingw32- EXE_EXT=.exe I selected the option so that it should statically link supports libraries used by gcc (slsj and libwinpthread).
utils/nwztools/upgtools/Makefile [diff]
utils/nwztools/upgtools/keysig_search.h [diff]
utils/nwztools/upgtools/md5.cpp [deleted]
utils/nwztools/upgtools/md5.h [deleted]
utils/nwztools/upgtools/mg.cpp [diff]
utils/nwztools/upgtools/mg.h [diff]
utils/nwztools/upgtools/misc.c [diff]
utils/nwztools/upgtools/upg.c [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
2020-10-11 05fa8fc343: scsitools: typo
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-10-11 53d2742a48: nwztools: add support for new UPG format on post-WM1/A30 devices

The new code supports reading and writing UPG files. I kept the old keysig search code but it only supports the old format (the new format has too long keys anyway). Since we now have to support two types of encryption(DES and AES), I reorganized the crypto routines and clean-up some code.
utils/nwztools/upgtools/Makefile [diff]
utils/nwztools/upgtools/fwp.c [deleted]
utils/nwztools/upgtools/fwp.h [deleted]
utils/nwztools/upgtools/keysig_search.c [diff]
utils/nwztools/upgtools/keysig_search.h [diff]
utils/nwztools/upgtools/mg.cpp [diff]
utils/nwztools/upgtools/mg.h [diff]
utils/nwztools/upgtools/upg.c [diff]
utils/nwztools/upgtools/upg.h [diff]
utils/nwztools/upgtools/upgtool.c [diff]
Amaury Pouly
2020-10-11 cda16f9439: scsitools: const correctness and add "get_dnk_nvp all" subcommand.
utils/nwztools/scsitools/Makefile [diff]
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-10-11 76fbb33adf: nwztools: fix MW-WM1/A30 KAS, fix KAS length

Split WM1A/WM1Z because they don't have the same KAS. On newer devices, the KAS is actually 64 bytes, not 60. The strange thing is that "get_dnk_nvp kas" returns 60 bytes whereas "get_dnk_prop kas" returns 64, not sure why.
firmware/target/hosted/sonynwz/nwz-db.c [diff]
firmware/target/hosted/sonynwz/nwz-db.h [diff]
utils/nwztools/database/nvp/nw-wm1.txt utils/nwztools/database/nvp/nw-wm1a.txt [rename]
utils/nwztools/database/nvp/nw-wm1z.txt [new]
utils/nwztools/database/series.txt [diff]
utils/nwztools/scsitools/scsitool.c [diff]
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
2020-10-11 c8fa53050d: rbutil: Add project file for building multiple binaries.

To use ipodpatcher and sansapatcher as external binaries (so we can do proper permission elevation) we need to build them using qmake as part of the main build. Add a subdirs template based project file to do that, and project files for the patchers.

Move Linux appimage rules one level up, since it needs to include the patchers as well.
rbutil/ipodpatcher/ipodpatcher.pro [new]
rbutil/rbutil.pro [new]
rbutil/rbutilqt/rbutilqt.pro [diff]
rbutil/sansapatcher/sansapatcher.pro [new]
Dominik Riebeling
2020-10-11 cd192f239b: rbutil: Fix encoding of turkish translation.

The file encoding was messed up long ago. Since the translation wasn't updated since reimport the original patch (FS #8407).
rbutil/rbutilqt/lang/rbutil_tr.ts [diff]
Dominik Riebeling
2020-10-11 5cfd3ae4e6: hosted: Use O_CLOEXEC for all open() and "e" for fopen() calls

This way we'll automatically close the files upon exec()
firmware/target/hosted/agptek/button-agptek.c [diff]
firmware/target/hosted/cpufreq-linux.c [diff]
firmware/target/hosted/cpuinfo-linux.c [diff]
firmware/target/hosted/fiio/button-fiio.c [diff]
firmware/target/hosted/fiio/system-fiio.c [diff]
firmware/target/hosted/filesystem-app.c [diff]
firmware/target/hosted/filesystem-unix.c [diff]
firmware/target/hosted/ibasso/sysfs-ibasso.c [diff]
firmware/target/hosted/lcd-linuxfb.c [diff]
firmware/target/hosted/rtc.c [diff]
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/hosted/sonynwz/system-nwz.c [diff]
firmware/target/hosted/sysfs.c [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-11 4f8736909a: SVG image of the xDuoo X3 and other formats for the manual.
manual/rockbox_interface/images/xduoox3-front.pdf [new]
manual/rockbox_interface/images/xduoox3-front.png [diff]
manual/rockbox_interface/images/xduoox3-front.svg [new]
Szymon Dziok
2020-10-10 7c00e9b30b: puzzles: improve frontend documentation

What it says on the tin.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-10-10 4b10aacbc2: xduoox3ii/x20: headphones take precedence over line out

so if both are plugged in, assume headphones (and respect volume)
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2020-10-09 6c6642e8d5: m3k: Fix red bootloader build
firmware/target/hosted/fiio/button-target.h [diff]
Solomon Peachy
2020-10-09 02a49386a9: Fix the FILTER_ROLL_OFF build; got a test inverted.
apps/settings_list.c [diff]
Solomon Peachy
2020-10-09 aabc8aca47: New port: FiiO M3K

Most credit goes to: Roman Skylarov Additional integration and refactoring by myself.

*** COMPLETELY UNTESTED ***
apps/SOURCES [diff]
apps/bitmaps/native/SOURCES [diff]
apps/bitmaps/native/fiioicon.130x130x16.bmp [new]
apps/features.txt [diff]
apps/keymaps/keymap-fiiom3k.c [new]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
...and 54 more files.
Solomon Peachy
2020-10-09 4231c2c83f: codecs: Add support for the 'VTX' ZX Spectrum chiptunes format.

This codec requires floating point.

Original author: Peter Sovietov Ported to Rockbox: Roman Skylarov Further integration and bugfixes: Solomon Peachy
apps/filetypes.c [diff]
apps/plugins/sdl/sdl.make [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/android.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/export/config/nokian8xx.h [diff]
firmware/export/config/nokian900.h [diff]
firmware/export/config/sdlapp.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
lib/rbcodec/SOURCES [diff]
lib/rbcodec/codecs/SOURCES [diff]
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/libayumi/SOURCES [new]
lib/rbcodec/codecs/libayumi/ayumi.c [new]
lib/rbcodec/codecs/libayumi/ayumi.h [new]
lib/rbcodec/codecs/libayumi/ayumi_render.c [new]
lib/rbcodec/codecs/libayumi/ayumi_render.h [new]
lib/rbcodec/codecs/libayumi/libayumi.make [new]
lib/rbcodec/codecs/libayumi/lzh.c [new]
lib/rbcodec/codecs/libayumi/lzh.h [new]
lib/rbcodec/codecs/vtx.c [new]
lib/rbcodec/metadata/metadata.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
lib/rbcodec/metadata/metadata_parsers.h [diff]
lib/rbcodec/metadata/vtx.c [new]
tools/configure [diff]
Solomon Peachy
2020-10-09 278522f811: plugins: Enable overlay features for all targets
apps/plugins/lib/SOURCES [diff]
Solomon Peachy
2020-10-09 c18839e3f8: Fix red, hopefully.
apps/plugins/SOURCES [diff]
apps/plugins/lib/overlay.h [diff]
Solomon Peachy
2020-10-09 7ad8b2eb3c: Clean up some of the plugin SOURCES
apps/plugins/SOURCES [diff]
Solomon Peachy
2020-10-09 88b2a45b5f: xduoox3ii/x20: Define a sane BUTTON_LEFT/RIGHT alias
firmware/target/hosted/xduoo/button-target.h [diff]
Solomon Peachy
2020-10-09 7a1bf01541: Undo the hacks that allowed targets without LEFT/RIGHT (UP/DN) to build.

Replaced them with warnings until they are fixed *PROPERLY*
apps/action.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/rockboy/rockboy.c [diff]
firmware/drivers/button.c [diff]
firmware/target/arm/rk27xx/ihifi2/button-target.h [diff]
firmware/target/arm/s5l8700/meizu-m3/button-target.h [diff]
firmware/target/mips/ingenic_jz47xx/onda_vx767/button-target.h [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/button-target.h [diff]
Solomon Peachy
2020-10-08 dc81f96fd1: Don't compile audio codecs into native bootloader builds.
firmware/SOURCES [diff]
firmware/target/hosted/agptek/rocker.make [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
firmware/target/hosted/xduoo/xduoo.make [diff]
Solomon Peachy
2020-10-08 ff6e175c20: get rid of ACTION_F3 (leftover from Archos days)
apps/action.h [diff]
apps/gui/wps.c [diff]
apps/keymaps/keymap-mpio-hd200.c [diff]
apps/keymaps/keymap-mpio-hd300.c [diff]
apps/radio/presets.c [diff]
apps/tree.c [diff]
Solomon Peachy
2020-10-07 2e2e899869: more DEBUG build fixes
firmware/drivers/fat.c [diff]
Moshe Piekarski
2020-10-06 cb9280c9e1: Fix DEBUG builds
apps/plugins/announce_status.c [diff]
Moshe Piekarski
2020-10-05 914114fd21: FS13241: Get rid of the hacky hold switch emulation on the X3ii & X20

It doesn't work properly and interferes with the power button in the keymap.

Rework WPS keymap a bit to make single-tap power emulate lock.
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/target/hosted/xduoo/button-target.h [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-05 c6f66cf696: agptekrocker: Rework WPS keymap a bit; replace direct pitchscreen access with browse
apps/keymaps/keymap-agptekrocker.c [diff]
Solomon Peachy
2020-10-05 ef34126913: lua add better memory stats

lua gives you a memory used number that only reflects the current allocations if fact it doesn't even give you a way to get the amount of ram free

rb.mem_stats() seeks to fill this gap by marking the memory allocated for lua with a sentinel value which can later be checked to get a high water mark of the ram used by lua and a pretty good idea of how much ram is available

Also includes an example script usage: used, allocd, free = rb.mem_stats()
apps/plugins/lua/rocklib.c [diff]
apps/plugins/lua/tlsf_helper.c [diff]
apps/plugins/lua_scripts/memchk.lua [new]
William Wilgus
2020-10-04 74258fca31: rbutil: Replace sysinfo filesystem cluster size with type.

The cluster size isn't too useful. Show the filesystem type instead, since that makes it easier to identify a device not showing up because of its filesystem type.
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/utils.h [diff]
rbutil/rbutilqt/base/zipinstaller.cpp [diff]
rbutil/rbutilqt/sysinfo.cpp [diff]
Dominik Riebeling
2020-10-04 1aa739e3c3: lua misc tweaks and cleanup

checks button_status in rockev strpbrk_n custom implementation allows setting max search len in source string add some branch prediction where appropriate fix formatting in splash_scroller script
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua/rocklib_events.c [diff]
apps/plugins/lua/strpbrk.c [diff]
apps/plugins/lua/strtol.c [diff]
apps/plugins/lua/strtoul.c [diff]
apps/plugins/lua_scripts/splashscroller.lua [diff]
William Wilgus
2020-10-04 f3ae48f552: hosted: control buttonlights along with the display backlight.
firmware/target/hosted/backlight-unix.c [diff]
Solomon Peachy
2020-10-04 7642184fd9: alsa: Refactor pcm_dma_apply_settings_nolock()
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-03 80c3b84e08: lua Add scrollable stack traceback WIP

lua currently splashes a stack traceback on error for deep tracebacks and especially on devices with smaller screens this leaves out a lot of vital information

in the past I have resorted to splitting the traceback string or even saving the return to a file

This patch provides a scrollable buffer with rudimentary text reflow to allow you to read the whole traceback string

Upon traceback if you press nothing the screen will display for 5 seconds If you press OK or CANCEL it will quit immediately PREV/NEXT scrolls the list on button press timeout is disabled

lua now provides rb.splash_scroller(timeout, str)

example script provided too
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua/rockconf.h [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/lua/rocklua.c [diff]
apps/plugins/lua_scripts/splashscroller.lua [new]
William Wilgus
2020-10-03 1916aca7f3: imx233: Enable 96/192K playback for all imx233 targets that have room
firmware/export/config/creativezen.h [diff]
firmware/export/config/creativezenmozaic.h [diff]
firmware/export/config/creativezenv.h [diff]
firmware/export/config/creativezenxfi.h [diff]
firmware/export/config/creativezenxfi2.h [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/creativezenxfistyle.h [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/export/config/sonynwze360.h [diff]
firmware/export/config/sonynwze370.h [diff]
firmware/export/fiiolinux_codec.h [new]
Solomon Peachy
2020-10-03 c1d4bf290c: coldfire: Fix iAudio M5 build
firmware/target/coldfire/pcm-coldfire.c [diff]
Solomon Peachy
2020-10-03 d5167b1221: coldfire: Allow building when 88KHz audio is disabled
firmware/drivers/audio/uda1380.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
Solomon Peachy
2020-10-03 2b358ffa7f: Disable 88/96KHz from targets that lack the IRAM to hold the mix buffers
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/iaudiom5.h [diff]
firmware/export/config/ipodmini1g.h [diff]
firmware/export/config/ipodmini2g.h [diff]
firmware/export/config/iriverh10.h [diff]
firmware/export/config/iriverh100.h [diff]
firmware/export/config/iriverh120.h [diff]
firmware/export/config/vibe500.h [diff]
Solomon Peachy
2020-10-03 2e708c48c5: pcm: Dynamically-size the mixer buffer at higher audio bitrates.

Basically, existing sizes apply for <= 48KHz audio. Up to 96K, we double the mix buffer. up to 192K, we double it again.

Will help reduce the interrupt load and overall latency, keeping it roughtly constant as a function of time, regardless of bitrate.

(It is acutally a fixed-size buffer, statically-allocated to handle the worst-case bitrate the player supports. However, at runtime if we are using a lower bitrate we will only use a portion of it in order to keep latancies down)
firmware/pcm_mixer.c [diff]
Solomon Peachy
2020-10-03 d4a620e85a: alsa: introduce AUDIOHW_MUTE_ON_PAUSE, and have rocker use it.
firmware/drivers/audio/rocker_codec.c [diff]
firmware/export/rocker_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-03 d18157608d: xduoo codec cleanups
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2020-10-03 1824f8b103: xduoox3ii/x20: Rework the mute control to actually function properly.

(By switching the output away from the audio jacks)
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
2020-10-03 90c30bc7ef: alsa: Explicitly mute the output when we stop playing, and unmute after playback starts

Allows us to avoid hearing the codec powering on and off.
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-03 c7eceea183: alsa: Handle underruns when starting a new stream

Unsure why this is happening, but now we detect and recover errors at startup.

Also clean up the mismash of printf(), DEBUGF(), etc in favor of panicf() for the really serious stuff and logf() for everything else.
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-02 b0e1b245b4: alsa: Use larger playback buffers for higher bitrates

(existing ones apply up to 48KHz, scale up linearly to 192KHz)
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-10-02 90af40e90c: imx233: Hardware codec supports up to 192KHz. Make it so!
firmware/target/arm/imx233/audioin-imx233.c [diff]
firmware/target/arm/imx233/audioout-imx233.c [diff]
Solomon Peachy
2020-10-02 9892e468d5: hosted: Don't use O_SYNC for the framebuffer handle.
firmware/target/hosted/lcd-linuxfb.c [diff]
Solomon Peachy
2020-10-02 b5cb99a7bf: For backlights that have a wide control, support skipping steps.

the rocker, x3ii, and x20 now take advantage of this, and fades are far faster now.
firmware/backlight-sw-fading.c [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
Solomon Peachy
2020-10-02 9ee618e889: hosted: Fix overzealous spamming of backlight and lcd enable

This caused random delays in LCD activity, and also caused key inputs to go nuts
firmware/target/hosted/backlight-unix.c [diff]
firmware/target/hosted/lcd-linuxfb.c [diff]
Solomon Peachy
2020-10-01 f4f3255edf: xduoox3: Work out clocks for 176/192KHz support.

Note: PCM mix buffer sizes are _way_ too small for these high bitrates

(We really need to make the mixer stuff use dynamic buffer sizes based on the bitrate. Maybe pre-allocate a max size based on upper bitrate limit, but use only part of it at lower bitrates? So we can have sane latency..)
firmware/export/config/xduoox3.h [diff]
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
Solomon Peachy
2020-10-01 db22dae2f9: fix more red.
firmware/drivers/audio/sdl.c [diff]
Solomon Peachy
2020-10-01 a96eb1a7f7: Fix warnings and errors introduced in b030bf5
apps/misc.c [diff]
firmware/drivers/audio/sdl.c [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-01 b030bf5885: xduoox3ii/x20: Proper lineout detection and volume mangling.

hotplugging hp and lineout works, without blowing out eardrums.
apps/playback.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/audiohw.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/export/xduoolinux_codec.h [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
firmware/target/hosted/alsa-controls.c [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-01 6d47dc9a88: fix some of the red introduced in e43726d
apps/debug_menu.c [diff]
firmware/drivers/audio/nwzlinux-codec.c [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/target/hosted/sonynwz/debug-nwz.c [diff]
Solomon Peachy
2020-10-01 e43726df2c: hosted pcm-alsa improvements

* xduoo x3ii/x20: Better line out support
* less granular volume settings (too many steps before)
* Better handling of swiching sample rates
* Log actual sample rate in debug menu

Most credit goes to Roman Stolyarov Additional integration [re]work by myself
apps/debug_menu.c [diff]
apps/playback.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/audiohw.h [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
firmware/export/rocker_codec.h [diff]
firmware/export/system.h [diff]
firmware/export/xduoolinux_codec.h [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
firmware/target/hosted/xduoo/debug-xduoo.c [diff]
Solomon Peachy
2020-10-01 6459fa0765: scrobbler: Fix logfile location on most hosted targets.
apps/scrobbler.c [diff]
Solomon Peachy
2020-10-01 021b55735b: hosted: fix shutdown crash in framebuffer code.
firmware/target/hosted/lcd-linuxfb.c [diff]
Solomon Peachy
2020-10-01 0a7b23097a: Hosted: Improvements in the LCD code. (Roman Stolyarov)

* Kill LCD when turning off the backlight
* Fix logic errors in lcd_enable() calls
* Use ioctls instead of sysfs to twiddle lcd enable
firmware/target/hosted/backlight-unix.c [diff]
firmware/target/hosted/lcd-linuxfb.c [diff]
Solomon Peachy
2020-10-01 cb9b5d3b50: Add 192 and 176KHz to mikmod and test_sampr plugins
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/test_sampr.c [diff]
Solomon Peachy
2020-10-01 1cd004ff5b: pcm: Missed a file for the 192/176K playback.
firmware/pcm_sampr.c [diff]
Solomon Peachy
2020-10-01 01650b8bc9: audio: Add support for 192 and 176KHz playback

* SAMPR_CAPS_ALL -> SAMPR_CAPS_ALL_48/96/192
* All targets claiming SAMPR_CAPS_ALL now get appropriate subset
* No need to explicitly define HAVE_PLAY_FREQ
* Rates that are a multiple of 44 or 48KHz can be used for playback

Inspired by a patch by Roman Stolyarov, but substantially rewritten by myself.
apps/enc_config.c [diff]
apps/playback.c [diff]
apps/settings_list.c [diff]
firmware/export/config.h [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/creativezen.h [diff]
firmware/export/config/creativezenmozaic.h [diff]
firmware/export/config/creativezenv.h [diff]
firmware/export/config/creativezenxfi.h [diff]
firmware/export/config/creativezenxfi2.h [diff]
firmware/export/config/creativezenxfi3.h [diff]
firmware/export/config/creativezenxfistyle.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/export/config/samsungypz5.h [diff]
firmware/export/config/sansac200v2.h [diff]
firmware/export/config/sansaclip.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
firmware/export/config/sansae200v2.h [diff]
firmware/export/config/sansafuze.h [diff]
firmware/export/config/sansafuzeplus.h [diff]
firmware/export/config/sansafuzev2.h [diff]
firmware/export/config/sansam200v4.h [diff]
firmware/export/config/sonynwze360.h [diff]
firmware/export/config/sonynwze370.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3.h [diff]
firmware/export/config/xduoox3ii.h [diff]
...and 2 more files.
Solomon Peachy
2020-10-01 c2c59457e1: lua: fix ipod builds broken by 127862c
apps/plugins/lua/lua.make [diff]
Solomon Peachy
2020-10-01 127862c947: lua: Include $TARGET when preprocessing the headers for the button helper
apps/plugins/lua/lua.make [diff]
Solomon Peachy
2020-09-30 91197dd59b: xduoox3: Fix an error in a comment
apps/keymaps/keymap-xduoox3.c [diff]
Solomon Peachy
2020-09-30 728299e322: rbutil: Fix unnecessary implicit cast.
rbutil/rbutilqt/base/utils.cpp [diff]
Dominik Riebeling
2020-09-30 c8f79d31b1: rbutil: Add postinstall hint for rocker and xduoo player.
rbutil/rbutilqt/base/bootloaderinstallhelper.cpp [diff]
Dominik Riebeling
2020-09-30 ff408fd717: Leave HOME_DIR out of default recording and playlist paths

The hosted filesystem code will automatically prepend HOME_DIR.
firmware/export/rbpaths.h [diff]
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2020-09-30 1c0648c603: lua rockevents reduce context switching for action and buttons

check if any buttons are waiting in the queue before triggering the event thread for action & button events

makes button events quicker and also spend less time interrupting lua both wins
apps/plugins/lua/rocklib_events.c [diff]
apps/plugins/lua_scripts/playback.lua [diff]
William Wilgus
2020-09-29 a511917f18: configure: Compact the target selection a bit
tools/configure [diff]
Solomon Peachy
2020-09-29 977a03a1a4: fix x20 and yp-r1 builds.
firmware/powermgmt.c [diff]
Solomon Peachy
2020-09-29 0ebfe3dfcf: xduoo: x3ii and x20 have filter_roll_off support
apps/features.txt [diff]
Solomon Peachy
2020-09-29 0fe7db2460: xduoo: x3ii and x20 also have their CPUs clocked at 1008 MHz.
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
Solomon Peachy
2020-09-29 ae58b5aafe: xduoox20: UI Simulator support
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-xduoox20.bmp [new]
uisimulator/buttonmap/SOURCES [diff]
uisimulator/buttonmap/xduoo-x20.c [new]
Solomon Peachy
2020-09-29 43980bb877: rocker: CPU is actually running at 1008MHz, not 532.
firmware/export/config/agptekrocker.h [diff]
Solomon Peachy
2020-09-29 7719010ed7: hosted: Slightly cleaner shutdown; kill the display first.
firmware/target/hosted/system-hosted.c [diff]
Solomon Peachy
2020-09-29 fd2e65e94d: rocker: Increase the long-press shutdown delay a bit.
firmware/target/hosted/agptek/button-target.h [diff]
Solomon Peachy
2020-09-28 466156f0b5: SVG image of the xDuoo X20 and other formats for the manual.
manual/rockbox_interface/images/xduoox20-front.pdf [new]
manual/rockbox_interface/images/xduoox20-front.png [new]
manual/rockbox_interface/images/xduoox20-front.svg [new]
Szymon Dziok
2020-09-27 018e0051bc: lua playback example

cool little lua based audio player creates dynamic playlist of 10 mp3s found on device if no music loaded

I had to limit the depth of search to 3 levels due to the recursive nature of the current dirbrowser functions this could be rectified with a bit more code

fixed a bug in print.lua that kept scrolling text even after screen clear
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua_scripts/playback.lua [new]
William Wilgus
2020-09-27 201e9bcde8: rbutil: Fix some minor issues found by clazy.
rbutil/rbutilqt/base/bootloaderinstallmi4.cpp [diff]
rbutil/rbutilqt/base/talkfile.cpp [diff]
rbutil/rbutilqt/base/ttsexes.cpp [diff]
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/base/uninstall.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
Dominik Riebeling
2020-09-27 f1f72ff8df: rbutil: Code cleanup.

- Fix naming.
- Remove non-functional functionality to set cache folder.
- Use URL filename part when copying the file if target filename is not set.
rbutil/rbutilqt/base/zipinstaller.cpp [diff]
rbutil/rbutilqt/base/zipinstaller.h [diff]
Dominik Riebeling
2020-09-27 9d8bcbeb2a: sansapatcher: rework exit code handling.

- #define all exit codes and use them for indicating further errors.
- only enable interactive (i.e. wait for keypress before exiting) mode when built with bootloaders.
rbutil/sansapatcher/main.c [diff]
rbutil/sansapatcher/sansapatcher.h [diff]
Dominik Riebeling
2020-09-27 af76fa3e7a: ipodpatcher: Rework exit codes.

- #define all exit codes used so they can be checked more easily.
- Use exit codes to indicate more error states.
rbutil/ipodpatcher/ipodpatcher.h [diff]
rbutil/ipodpatcher/main.c [diff]
Dominik Riebeling
2020-09-27 3806f57ed8: ipodpatcher: Fix some type warnings.
rbutil/ipodpatcher/ipodpatcher.c [diff]
rbutil/ipodpatcher/ipodpatcher.h [diff]
Dominik Riebeling
2020-09-26 0f23cadbca: lua -- add sort by name, size, date to filebrowse include

I had previously added the fuctionality to luadir but I didn't update the examples

also breaks out the file_browser function to be a bit more accessible
apps/plugins/lua_scripts/file_browser.lua [new]
apps/plugins/lua_scripts/filebrowse.lua [diff]
William Wilgus
2020-09-20 1f9e16e4df: InvalidVoice prompt Fix red for devices w/o physical hold buttons

left in there from debugging
apps/talk.c [diff]
William Wilgus
2020-09-20 2ffe87902d: Add Invalid Voice Announcement to the voice system FS #13216

When a voice file is invalid or fails to load the voice system splash a message 'Invalid Voice'

Now we supply a single voice file (currently only english is used) the support for other languages is in but I haven't set it up to look for anything but InvalidVoice_english.talk

Also adds a one time kill voice thread function ie. it doesn't allow re-init after killing the voice thread & queue
apps/lang/InvalidVoice_english.talk [new]
apps/lang/SOURCES [diff]
apps/lang/lang.make [diff]
apps/main.c [diff]
apps/talk.c [diff]
apps/talk.h [diff]
apps/voice_thread.c [diff]
apps/voice_thread.h [diff]
tools/buildzip.pl [diff]
William Wilgus
2020-09-20 c528c01312: plugin: Fix pile of warnings.

(Bad Solomon)
apps/plugin.c [diff]
Solomon Peachy
2020-09-20 5d40d97585: voice: rename mp3_play_* functions to voice_play_*

Remove mp3_is_playing() entirely, in favor of pcm_is_playing() Remove mp3_play_pause() entirely, as it's a dummy/no-op call Remoce some archos-specific comments
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/talk.c [diff]
apps/voice_thread.c [diff]
apps/voice_thread.h [diff]
docs/PLUGIN_API [diff]
Solomon Peachy
2020-09-18 e404026308: jz4760: Implement USB DMA RX

Can be disabled at runtime by setting hold switch.

Boosts sysbench sequential write performance by 34-58%
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
Solomon Peachy
2020-09-18 2df3a5b04c: Headphone / lineout pause/resume #FS13237

Allow Lineout to behave like headphone port in regards to plug/unplug pause/resume
apps/audio_path.c [diff]
apps/misc.c [diff]
apps/root_menu.c [diff]
apps/settings.h [diff]
firmware/drivers/button.c [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
William Wilgus
2020-09-17 4fa945d810: disktest_sysbench script

a script to help make disk benchmarks across USB
tools/disktest_sysbench.sh [new]
William Wilgus
2020-09-17 ec413f7692: jz4760: Heavily rework USB driver to add working DMA support

* DMA Bulk IN (ie our TX) results in sequential transfers 33-68% faster.
* DMA Bulk OUT (ie RX) is mostly stripped out due to complete brokenness.
* Interrupt and control endpoints remain PIO-driven.

Other improvements:

1) Use consistent endpoint references (no magic numbers) 2) Greatly enhanced logging 3) DMA support can be compiled out completely 4) Setting lockswitch will disable all DMA operations at runtime 5) Much more robust error checking and recovery
firmware/export/jz4760b.h [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
utils/hwstub/stub/jz4760b/jz4760b.h [diff]
Solomon Peachy
2020-09-17 a66b908801: Xduoo X3 add headphone and lineout status to IO Ports debug menu
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
William Wilgus
2020-09-13 3c2b6809d9: Xduoo X3 no ADC after ROLO

Speachy suggested we don't shut down the adc on ROLO this fixes the random adc drop out on ROLO
firmware/rolo.c [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
William Wilgus
2020-09-13 c62493e98a: Xduoo X3 Add tree scrolling FS #13240, Emulate Multibutton presses

Fixes deficiencies with the button system on the X3

The x3 has an interesting button layout. Multiple key presses are NOT supported unless
[BUTTON_POWER] is one of the combined keys

As you can imagine this causes problems as the power button takes precedence in the button system and initiates a shutdown if the key is held too long instead of BUTTON_POWER use BUTTON_PWRALT in combination with other keys IF using as a prerequsite button then BUTTON_POWER should be used

Multiple buttons are emulated by button_read_device but there are a few caveats to be aware of:

Button Order Matters! different keys have different priorities, higher priority keys 'overide' the lower priority keys VOLUP[7] VOLDN[6] PREV[5] NEXT[4] PLAY[3] OPTION[2] HOME[1]

There will be no true release or repeat events, the user can let off the button pressed initially and it will still continue to appear to be pressed as long as the second key is held

Tree scrolling is PLAY+NEXT or PLAY+PREV
apps/keymaps/keymap-xduoox3.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/pegbox.c [diff]
apps/plugins/rockpaint.c [diff]
apps/plugins/sliding_puzzle.c [diff]
apps/plugins/sokoban.c [diff]
apps/plugins/sudoku/sudoku.h [diff]
apps/plugins/text_viewer/tv_button.h [diff]
apps/plugins/wormlet.c [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/button-target.h [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
William Wilgus
2020-09-12 6b674a6a0a: get rid of a tab in a translated string
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-09-10 14c2f55ab3: FS #13239: Fix typo in the xduoo x3 manual
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2020-09-08 6f13fe73c5: xduoox3: more screenshots and keymaps for the manual
manual/plugins/images/ss-2048-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-oscilloscope-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-snake-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-snake2-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-solitaire-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-vumeter-128x64x1-xduoox3.png [new]
manual/plugins/main.tex [diff]
manual/plugins/oscilloscope.tex [diff]
manual/plugins/snake.tex [diff]
manual/plugins/snake2.tex [diff]
manual/plugins/solitaire.tex [diff]
manual/plugins/vumeter.tex [diff]
Solomon Peachy
2020-09-08 e18c2f3001: XduooX3 LCD tweaks #2

Group commands for a bit more speed

bitdelay was not being inlined lower bitdelay to 12 cycles

Clean-up magic numbers
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
William Wilgus
2020-09-08 49a2953ade: surround: Fix two issues with the haas surround code.

1) Handle ID 0 is legal 2) Make sure handle is initialized before trying to memset its buffer
lib/rbcodec/dsp/surround.c [diff]
Solomon Peachy
2020-09-06 af24ff1fc3: XduooX3 Gpio reconfigure button system #2

Fix issue with first battery sample taking 30 seconds

Clean up code
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
William Wilgus
2020-09-06 53142ae9f5: jz4760: Fix and re-enable the hardware udelay() timer
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-09-06 2dadb8c7d6: jz4760: Use a #define for the timer id, not a raw number
firmware/target/mips/ingenic_jz47xx/timer-jz4760.c [diff]
Solomon Peachy
2020-09-05 d015165bc5: mips: Convert 'nop' to 'ssnop' -- for future-proofing
firmware/target/mips/ingenic_jz47xx/crt0.S [diff]
firmware/target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c [diff]
firmware/target/mips/ingenic_jz47xx/onda_vx767/lcd-onda_vx767.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
firmware/target/mips/mmu-mips.c [diff]
Solomon Peachy
2020-09-05 8188588f14: Update of the Serbian translation
apps/lang/srpski.lang [diff]
Ivan Pesic
2020-09-04 90a4f28c27: jz47xx: Audio path tweaks:

* Increase audio buffer size to better handle IRQ latency (256->2048)
* Ensure DMA engine is idle prior to starting transfers
* Set AIC to repeat last sample in case of underflows
firmware/export/pcm_mixer.h [diff]
firmware/target/mips/ingenic_jz47xx/codec-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Solomon Peachy
2020-09-04 5f5e44f593: skin_parser: Modernize Makefile.

- Avoid use of uname, instead ask the compiler about the binaries it creates.
- Move platform specific commands used into functions.
- Replace use of echo with make functions.
lib/skin_parser/Makefile [diff]
Dominik Riebeling
2020-09-04 db350ac3e2: themeeditor: Get revision info from git.

We're not using svn anymore. This isn't used, but at least try to get the right value.
utils/themeeditor/themeeditor.pro [diff]
Dominik Riebeling
2020-09-03 9a28912f26: ondavx747: Fix bootloader build
bootloader/ondavx747.c [diff]
Solomon Peachy
2020-09-03 48a2b80c77: Xduoo Gpio fix bug
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
William Wilgus
2020-09-03 0cb162a76b: mips: Heavily rework DMA & caching code

Based on code originally written by Amaury Pouly (g#1789, g#1791, g#1527) but rebased and heavily updated.
firmware/rolo.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/dma_acc-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/dma_acc-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
firmware/target/mips/mmu-mips.c [diff]
firmware/target/mips/mmu-mips.h [diff]
Solomon Peachy
2020-09-03 1ae8213a64: XduooX3 Gpio reconfigure button system

only check button values with adc when buttons are actually pressed

battery level check frequency is now around 30 seconds switched to polling for the battery voltage w/ timeout

Ifdef functions Allow BACK OPTION PLAY to be the first of a two key combo
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
William Wilgus
2020-09-03 6810d83686: themeeditor: Update targetdb.
utils/themeeditor/resources/targetdb [diff]
Dominik Riebeling
2020-09-03 93bb14c877: themeeditor: Make NSIS script work with mxe.
utils/themeeditor/themeeditor.nsi [diff]
Dominik Riebeling
2020-09-03 fa330c109d: themeeditor: Make it compile with current Qt5.

- Replace use of obsolete members with their replacements.
- Fix type issue that requires explicitly creating the right object now.
- Update project file to work with Qt5.
utils/themeeditor/graphics/rbscreen.cpp [diff]
utils/themeeditor/gui/configdocument.cpp [diff]
utils/themeeditor/gui/editorwindow.cpp [diff]
utils/themeeditor/gui/preferencesdialog.cpp [diff]
utils/themeeditor/gui/projectexporter.cpp [diff]
utils/themeeditor/gui/skindocument.cpp [diff]
utils/themeeditor/gui/skinhighlighter.cpp [diff]
utils/themeeditor/main.cpp [diff]
utils/themeeditor/models/parsetreemodel.cpp [diff]
utils/themeeditor/themeeditor.pro [diff]
Dominik Riebeling
2020-09-03 ff38666a19: themeeditor: Fix download URL for targetdb.

We're not using svn anymore since long.
utils/themeeditor/gui/targetdownloader.cpp [diff]
Dominik Riebeling
2020-09-03 3ff7dc75a1: themeeditor: Fix menu Quit entry not working.
utils/themeeditor/gui/editorwindow.ui [diff]
Dominik Riebeling
2020-09-02 546212a977: jz4760: Dial down PIXCLK as low as possible

We don't use it on the X3. Should we ever get another jz4760 target we can revisit this.
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-09-02 f913829d06: xduoox3: Disable the LCD and MSC0 clocks as we don't use them
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
Solomon Peachy
2020-09-02 1a8939cc3d: XduooX3 Slow down greylib framerate

halves cpu usage
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
William Wilgus
2020-09-02 35371df671: XduooX3 Debug Menu -- HW_info

add scrolling for clocks and such

moved to a switch based structure.. this ends up a lot cleaner
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
William Wilgus
2020-09-02 bb6fc21244: mips: use .set push/pop in asm code
firmware/asm/mips/thread-mips32.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
Solomon Peachy
2020-09-01 963e979e6c: Manual: add Multiboot for Sansa E200
manual/advanced_topics/main.tex [diff]
Johannes Rauh
2020-08-31 a7ebd92ec8: jz4760: use SYSFONT in the hw info debug screen, and restore old font
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
Solomon Peachy
2020-08-31 56b49b3074: fonts: Use '08-Rockfont' as FONT_SYSFIXED on targets with 128x64 screens

..It's already the default UI font on those targets
firmware/firmware.make [diff]
tools/configure [diff]
Solomon Peachy
2020-08-31 790a5bb0ca: Xduoo_x3 Boot Fix red from debug menu changes
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
William Wilgus
2020-08-31 63e6aec260: xduooX3 debug menu add GPIO IO Ports
apps/debug_menu.c [diff]
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
William Wilgus
2020-08-31 748133cf9d: xduoox3: Fix bootloader build
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
Solomon Peachy
2020-08-31 8dadce5c4c: jz4760: Explicitly disable UARTs at startup

(Bootloader uses UART1, and leaves it running when it hands it off to us)
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
Solomon Peachy
2020-08-30 06e9abc428: XduooX3 Tweak LCD drive strength and slew
firmware/export/jz4760b.h [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
William Wilgus
2020-08-30 e06ab68166: xduoox3: Use correct "ms_clk" divider for SADC and be smarter with polling
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
Solomon Peachy
2020-08-30 cc5b0439a8: jz4760: Prioritize Audio DMA and TCU0 (systick) above all others

(And loop in the IRQ handler to make sure we catch everything!)
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
Solomon Peachy
2020-08-30 b01e9295e4: jz4760: Revert back to the delay loop udelay()

... the timer-based version used the same timer as our os tick!
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-29 733821b592: jz4760: Rework IRQ priorities, make audio the highest.

(it was effectively the _lowest_ prior to this. wtf?)
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-29 3dc4f817de: jz4760: Disable dynamic clocking entirely.

Back off to 480MHz [max] clock, bus/mem clock of 120MHz.

576 is unstable on at least one unit, and 528 still glitches.
firmware/export/config/xduoox3.h [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-29 3867f0b959: XduooX3 Sources WS changes
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/ata-nand-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/dma_acc-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c [diff]
firmware/target/mips/mmu-mips.c [diff]
William Wilgus
2020-08-29 6296b220e5: cs4398: Change default volume to -25 dB (from 0 dB)
firmware/export/cs4398.h [diff]
Solomon Peachy
2020-08-29 31a1a29004: Xduoo X3 Tweak LCD settings

Adds contrast setting which actually sets the drive voltage
firmware/export/config/xduoox3.h [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
William Wilgus
2020-08-29 5e335f5c33: jz4760: do the MSC (ie SD) clocking setup when we change PLL0
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-29 fc7eb3b2a3: xduoox3: When not using dynamic clocks, use max cpu
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
2020-08-28 a2b77446c2: xduoox3: enable HAVE_GUI_BOOST
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
2020-08-28 4a6d8e91bb: jz4740: Timer not re-enabled properly

(same fix as g#2703 for the jz4760)
firmware/target/mips/ingenic_jz47xx/timer-jz4740.c [diff]
Solomon Peachy
2020-08-28 77019c2c3c: Xduoo_X3 Fix timer_set_period fail to reenable

when timer_set_period is called timer is stopped but never reenabled
firmware/target/mips/ingenic_jz47xx/timer-jz4760.c [diff]
William Wilgus
2020-08-28 1aee168398: jz4760: Pull non-PLL init out of pll0_init() code.

So it only gets called once, at system startup.
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-27 5fb4c74bfb: Xduoo X3 - Grey scale lib update

greylib on the xduoo x3 now matches the rest of the 1bit targets
firmware/export/jz4760b.h [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/lcd-xduoo_x3.c [diff]
William Wilgus
2020-08-27 8990c90b87: xduoox3: More screenshots and keymaps for the manual
manual/plugins/cube.tex [diff]
manual/plugins/fractals.tex [diff]
manual/plugins/images/ss-cube-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-mandlebrot-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-star-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-sudoku-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-wormlet-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-xobox-128x64x1-xduoox3.png [new]
manual/plugins/star.tex [diff]
manual/plugins/sudoku.tex [diff]
manual/plugins/wormlet.tex [diff]
manual/plugins/xobox.tex [diff]
Solomon Peachy
2020-08-26 a52eb1d8cc: xduoox3: Include curves for both battery types

There is no way to detect this at runtime so it is a user setting
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
apps/lang/norsk.lang [diff]
...and 19 more files.
Solomon Peachy
2020-08-26 f4bf27c26e: jz4760: fix the new udelay() to use _micro_seconds, not milliseconds
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-26 f791df1375: xduoox3: Update battery discharge curve and runtime estimates

(Brand new unit lasted one minute shy of 12 hours!)
firmware/export/config/xduoox3.h [diff]
firmware/target/mips/ingenic_jz47xx/xduoo_x3/sadc-xduoo_x3.c [diff]
Solomon Peachy
2020-08-26 099bde885d: mikmod: Fix emulated fseek()

Was causing XM loader to fail
apps/plugins/mikmod/mmio.c [diff]
Solomon Peachy
2020-08-25 7972f8e448: xduoox3: Fix minesweeper plugin keymap.

(Broke in a654cecf8)
apps/plugins/minesweeper.c [diff]
manual/plugins/minesweeper.tex [diff]
Solomon Peachy
2020-08-25 9e64e31d56: xduoox3: More screenshots and button maps for plugins
apps/plugins/minesweeper.c [diff]
manual/plugins/images/ss-bounce-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-demystify-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-fire-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-jewels-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-mazezam-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-minesweeper-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-mosaic-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-pegbox-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-plasma-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-pong-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-robotfindskitten-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-snow-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-starfield-128x64x1-xduoox3.png [new]
manual/plugins/jewels.tex [diff]
manual/plugins/minesweeper.tex [diff]
manual/plugins/pegbox.tex [diff]
manual/plugins/pong.tex [diff]
Solomon Peachy
2020-08-25 c0bfd7ceee: manual: Remove charcell screenshots
manual/configure_rockbox/images/ss-general-settings-charx11x1.png [deleted]
manual/configure_rockbox/images/ss-sound-settings-charx11x1.png [deleted]
manual/main_menu/images/ss-list-bookmarks-charx11x1.png [deleted]
manual/main_menu/images/ss-main-menu-charx11x1.png [deleted]
manual/plugins/images/ss-chess_clock-charx11x1.png [deleted]
manual/plugins/images/ss-cube-charx11x1.png [deleted]
manual/plugins/images/ss-flipit-charx11x1.png [deleted]
manual/plugins/images/ss-jackpot-charx11x1.png [deleted]
manual/plugins/images/ss-mosaic-charx11x1.png [deleted]
manual/plugins/images/ss-nim-charx11x1.png [deleted]
manual/plugins/images/ss-rockblox-charx11x1.png [deleted]
manual/plugins/images/ss-snow-charx11x1.png [deleted]
manual/plugins/images/ss-stats-charx11x1.png [deleted]
manual/plugins/images/ss-stopwatch-charx11x1.png [deleted]
manual/plugins/images/ss-text_viewer-bookmark-charx11x1.png [deleted]
manual/plugins/images/ss-text_viewer-main-charx11x1.png [deleted]
manual/plugins/images/ss-text_viewer-sel_bk_menu-charx11x1.png [deleted]
manual/rockbox_interface/images/ss-context-menu-charx11x1.png [deleted]
manual/rockbox_interface/images/ss-file-browser-charx11x1.png [deleted]
manual/rockbox_interface/images/ss-id3-viewer-charx11x1.png [deleted]
manual/rockbox_interface/images/ss-playlist-menu-charx11x1.png [deleted]
manual/rockbox_interface/images/ss-virtual-keyboard-charx11x1.png [deleted]
Solomon Peachy
2020-08-25 6920c089af: jz4740: SD clock sequencing changes.

* Don't stop clock before switching speeds
* Don't stop clock prior to transactions
* Stop clock at the end of transactions

Will result in slightly better performance and some power saving when we're not actively using the SD peripheral.
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c [diff]
Solomon Peachy
2020-08-25 0aa2197d93: jz4760: SD driver enhancements:

* Check to see if clock is [not] running prior to [en|dis]abling it
* Stop clock _prior_ to resetting controller
* Stop clock after transaction is completed, not before initiating it
* Use controller's low power mode (disables clocks when idle)
* Fix, and enable, interrupt-driven DMA transfers
* Fixes for full interrupt-driven operation (WIP, still broken)
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c [diff]
Solomon Peachy
2020-08-25 1b31101fdd: jz4740: Fix potential deadlock in SD init code.

There's a code path that calls sd_init_device() while we hold sd_mtx, but sd_init_device() tries to obtain the mutex while doing its work.
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c [diff]
Solomon Peachy
2020-08-25 63ef81de31: jz4760: Give each SD interface its own DMA channel, semaphore, and mutex

* Allows both SD interfaces to have requests in flight simultaneously
* Fixed a deadlock in the hotswap code
* Ensure TX DMA is idle before initiating a request (bug due to a typo)
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
Solomon Peachy
2020-08-25 c06766bbeb: voice: Increase voice stack size a bit for MIPS by 256 bytes.

MIPS is stack hungry due to the large number of GPRs we have to save. With this extra headroom we now _idle_ at 75% stack use of a 2K stack!
apps/voice_thread.c [diff]
Solomon Peachy
2020-08-25 5dd4c00697: filetree.c fix null entry check fs#13222

behavior found on xduoo x3

I had already fixed this once but I was checking entry instead of dptr :(
apps/filetree.c [diff]
William Wilgus
2020-08-25 6099767a18: SDL: If our eventloop fails, log the reason!
firmware/target/hosted/sdl/button-sdl.c [diff]
Solomon Peachy
2020-08-24 22eb2300b1: manual: Document all mikmod configuration options
manual/plugins/mikmod.tex [diff]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2020-08-24 062c597f79: xduoox3: Manual updates and screenshots for a pile of plugins
manual/platform/keymap-xduoox3.tex [diff]
manual/plugins/blackjack.tex [diff]
manual/plugins/brickmania.tex [diff]
manual/plugins/chessbox.tex [diff]
manual/plugins/chopper.tex [diff]
manual/plugins/flipit.tex [diff]
manual/plugins/goban.tex [diff]
manual/plugins/images/ss-blackjack-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-brickmania-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-bubbles-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-chessbox-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-chopper-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-flipit-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-goban-128x64x1-xduoox3.png [new]
manual/plugins/images/ss-jackpot-128x64x1-xduoox3.png [new]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2020-08-24 e06d7e8516: manual: Add section for mikmod and document its formats
manual/plugins/main.tex [diff]
manual/plugins/mikmod.tex [new]
Solomon Peachy
2020-08-24 910e600ba2: Mark xDuoo X3 as "stable" in the build system as it now has a manual
tools/builds.pm [diff]
Solomon Peachy
2020-08-24 c7cbd494eb: FS #13154: Don't discard return code in storage_init()
firmware/storage.c [diff]
Solomon Peachy
2020-08-24 b2af685380: manual: Get rid of more archos-specific manual leftovers
manual/configure_rockbox/images/ss-general-settings-112x64x1-ondio.png [deleted]
manual/configure_rockbox/images/ss-sound-settings-112x64x1-ondio.png [deleted]
manual/main_menu/images/ss-fm-radio-screen-112x64x1-archosondiofm.png [deleted]
manual/main_menu/images/ss-main-menu-112x64x1-archosondiofm.png [deleted]
manual/main_menu/images/ss-main-menu-112x64x1-archosondiosp.png [deleted]
manual/main_menu/images/ss-recording-settings-112x64x1-archosondiofm.png [deleted]
manual/main_menu/images/ss-while-recording-screen-112x64x1-archosondiofm.png [deleted]
manual/platform/keymap-archosondio.tex [deleted]
manual/platform/keymap-archosplayer.tex [deleted]
manual/platform/keymap-archosrecorder.tex [deleted]
manual/plugins/images/ss-bounce-112x64x1-ondio.png [deleted]
manual/rockbox_interface/images/archosfmrecorder-front.pdf [deleted]
manual/rockbox_interface/images/archosfmrecorder-front.png [deleted]
manual/rockbox_interface/images/archosfmrecorder-front.svg [deleted]
manual/rockbox_interface/images/archosplayer-front.pdf [deleted]
manual/rockbox_interface/images/archosplayer-front.png [deleted]
manual/rockbox_interface/images/archosplayer-front.svg [deleted]
manual/rockbox_interface/images/archosrecorder-front.pdf [deleted]
manual/rockbox_interface/images/archosrecorder-front.png [deleted]
manual/rockbox_interface/images/archosrecorder-front.svg [deleted]
Solomon Peachy
2020-08-24 6e4ab9a5c1: xduoox3: Fill in the core UI screenshots

TODO:

* Plugin screenshots
* Plugin keymaps
manual/configure_rockbox/images/ss-equalizer-128x64x1-xduoox3.png [new]
manual/configure_rockbox/images/ss-general-settings-128x64x1-xduoox3.png [new]
manual/configure_rockbox/images/ss-sound-settings-128x64x1-xduoox3.png [new]
manual/main_menu/images/ss-list-bookmarks-128x64x1-xduoox3.png [new]
manual/main_menu/images/ss-main-menu-128x64x1-xduoox3.png [new]
manual/rockbox_interface/images/ss-context-menu-128x64x1-xduoox3.png [new]
manual/rockbox_interface/images/ss-file-browser-128x64x1-xduoox3.png [new]
manual/rockbox_interface/images/ss-id3-viewer-128x64x1-xduoox3.png [new]
manual/rockbox_interface/images/ss-playlist-menu-128x64x1-xduoox3.png [new]
manual/rockbox_interface/images/ss-virtual-keyboard-128x64x1-xduoox3.png [new]
manual/rockbox_interface/wps.tex [diff]
Solomon Peachy
2020-08-24 ef04cd8b1e: archosondio: get rid of screenshots and other manual leftovers
manual/rockbox_interface/images/archosondiofm-front.pdf [deleted]
manual/rockbox_interface/images/archosondiofm-front.png [deleted]
manual/rockbox_interface/images/archosondiofm-front.svg [deleted]
manual/rockbox_interface/images/archosondiosp-front.pdf [deleted]
manual/rockbox_interface/images/archosondiosp-front.png [deleted]
manual/rockbox_interface/images/archosondiosp-front.svg [deleted]
manual/rockbox_interface/images/ss-context-menu-112x64x1-ondio.png [deleted]
manual/rockbox_interface/images/ss-file-browser-112x64x1-ondio.png [deleted]
manual/rockbox_interface/images/ss-id3-viewer-112x64x1-ondio.png [deleted]
manual/rockbox_interface/images/ss-playlist-menu-112x64x1-ondio.png [deleted]
manual/rockbox_interface/images/ss-virtual-keyboard-112x64x1-ondio.png [deleted]
Solomon Peachy
2020-08-24 675b22e76b: xduoox3: Initial manual

TODO:

* Screenshots
* Plugin keymaps
apps/keymaps/keymap-xduoox3.c [diff]
manual/configure_rockbox/display_options.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/xduoox3_install.tex [new]
manual/platform/keymap-xduoox3.tex [new]
manual/platform/xduoox3.tex [new]
manual/rockbox_interface/images/xduoox3-front.png [new]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2020-08-24 c3a8268432: xduoox3: Fix a missing keymap entry in the virtual keyboard
apps/keymaps/keymap-xduoox3.c [diff]
Solomon Peachy
2020-08-23 0b5f0b9284: rbutil: Fix Xduoo bootloader installation.

- Don't try to unzip the bootloader file if we're actually looking for a zip file.
- Fix wrong bootloader file name for X3.
- There's no QThread::terminated() signal, don't connect it.
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbspatch.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-08-23 53dedd47b9: FS #13235: Update Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-08-21 c7c4672668: builds: Don't exclude 'retired' targets from the build list
tools/builds.pm [diff]
Solomon Peachy
2020-08-21 e0021744cf: rbutil: Fix wrong fall-through.

Fortunately it didn't break anything.
rbutil/rbutilqt/encttscfggui.cpp [diff]
Dominik Riebeling
2020-08-21 2aecb3b9ea: rbutil: Use a non-zero default value for status.

When resolving the status values downloaded from the server use a negative value as default. Since 0 is the default in QSettings but now considered as "retired" a missing status value would make that target appear as retired instead of unknown status.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
Dominik Riebeling
2020-08-21 f850bbbbc4: Revert root_redirect :(

This reverts commit 31fc46ded69be7438cca2ba2c2b93c1f200165a6.
apps/debug_menu.c [diff]
firmware/SOURCES [diff]
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/disk.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/fileobj_mgr.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/common/rb_namespace.c [deleted]
firmware/export/mv.h [diff]
firmware/export/pathfuncs.h [diff]
firmware/export/rbpaths.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/include/file_internal.h [diff]
firmware/include/fileobj_mgr.h [diff]
firmware/include/fs_defines.h [diff]
firmware/include/rb_namespace.h [deleted]
uisimulator/common/filesystem-sim.c [diff]
William Wilgus
2020-08-20 bd744059cf: Multiboot Firmware Root Redirect

Firmware now includes rudimentary redirect functionality but this only supports /.rockbox in the root of the device

This patch allows loading external drive and directory into root namespace

Root Redirects can now be put into different folders For instance placing '/_test' into SD1/rockbox_main.<playername> will redirect to /<1>/_test/.rockbox

Debug menu>Bootdata now has root directory listed in addition to RAW Bootdata

Redirect root work from Michael Sevakis g#1556

Redirect will be updated if code refactor is ever done

Requires Multiboot bootloader (already in main)
apps/debug_menu.c [diff]
firmware/common/disk.c [diff]
firmware/include/dircache_redirect.h [diff]
William Wilgus
2020-08-20 5ef28cccf9: Allow mounting of any directory as the root directory.

Provide definitions for the macros:
* RB_ROOT_VOL_HIDDEN(v) to exclude certain items from the root.
* RB_ROOT_CONTENTS to return a string with the name of the directory to mount in the root.

Defaults are in export/rbpaths.h

It's a bit much for those that don't need the full functionality. Some conditional define can cut it back a lot to cut out things only needed if alternate root mounts are required. I'm just not bothering yet. The basic concept would be applied to all targets to keep file code from forking too much.
firmware/SOURCES [diff]
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/disk.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/fileobj_mgr.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/common/rb_namespace.c [new]
firmware/export/mv.h [diff]
firmware/export/pathfuncs.h [diff]
firmware/export/rbpaths.h [diff]
firmware/include/dircache_redirect.h [diff]
firmware/include/file_internal.h [diff]
firmware/include/fileobj_mgr.h [diff]
firmware/include/fs_defines.h [diff]
firmware/include/rb_namespace.h [new]
uisimulator/common/filesystem-sim.c [diff]
William Wilgus
2020-08-20 31fc46ded6: Revert g#1612
apps/debug_menu.c [diff]
firmware/common/disk.c [diff]
William Wilgus
2020-08-20 71846b09ab: Update English (US) translation
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-08-20 0459bfe6cd: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2020-08-19 da190727e7: Enable boot from SD for Sansa e200
bootloader/main-pp.c [diff]
firmware/export/config/sansae200.h [diff]
firmware/export/mi4-loader.h [diff]
firmware/rolo.c [diff]
firmware/target/arm/pp/crt0-pp.S [diff]
firmware/target/arm/pp/mi4-loader.c [diff]
Johannes Rauh
2020-08-19 8ee035b6c8: Open_plugin add ability to import opx shortcuts, bug fix

shortcuts can be exported as .opx; now they can import as well

if parameter is a valid file.. plugins with parameters are now hashed on the parameter path

fix bug with empty parameters not overwriting last valid parameter
apps/open_plugin.c [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
2020-08-18 889bcc0f76: WIP open_plugins.rock viewer

OP allows you to use Open With.. to call plugins with parameters called directly it acts as a shortcut list for plugins

open_plugins.rock interfaces with the open_plugin core

When opened directly it acts as a viewer for the plugin.dat file this allows you to edit the paths and parameters for core shortcuts as well as your added plugins

If a plugin is supplied to the viewer it is added to the dat file

If instead the plugin has previously been added then it is run with the parameters you previously supplied

----------------------------------------------------------------------------- Added export to .opx files this allows shortcuts to plugins with parameters to be called from the file browser
apps/lang/english.lang [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/open_plugins.c [new]
apps/plugins/plugins.make [diff]
apps/plugins/viewers.config [diff]
tools/buildzip.pl [diff]
William Wilgus
2020-08-18 96e1bb6556: Open Plugin cleanup

cleanup a few unneded functions
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
William Wilgus
2020-08-17 f029078f0d: Slovak language update (From Peter Lecký)
apps/lang/slovak.lang [diff]
Solomon Peachy
2020-08-17 3550283442: Add open_plugin to core

open_plugin allows arbitrary plugins to be called in hotkey and start screen

replaces PictureFlow Integration shortcuts menu plays plugins now too

rather than store paths and parameters in the settings that reside in memory instead entries in a file are searched by hash. after all, the plugin has to be loaded from disk anyways

---------------------------------------------------------------------------- shortcut_viewer.rock-- can now call plugins rather than taking you to them in the browser
----------------------------------------------------------------------------- Added a new option to menus: F_CB_ON_SELECT_ONLY instead of option callback every time a item is accessed F_CB_ON_SELECT_ONLY fires callback only when item is selected
----------------------------------------------------------------------------- Added manual entries
-----------------------------------------------------------------------------
apps/SOURCES [diff]
apps/filetree.c [diff]
apps/filetypes.c [diff]
apps/filetypes.h [diff]
apps/gui/option_select.c [diff]
apps/gui/wps.c [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/onplay.c [diff]
apps/onplay.h [diff]
apps/open_plugin.c [new]
apps/open_plugin.h [new]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/shortcuts/shortcuts_view.c [diff]
apps/root_menu.c [diff]
apps/root_menu.h [diff]
apps/settings_list.c [diff]
apps/settings_list.h [diff]
apps/shortcuts.c [diff]
apps/tree.c [diff]
manual/advanced_topics/main.tex [diff]
manual/configure_rockbox/main.tex [diff]
manual/configure_rockbox/wps_context_plugin.tex [new]
William Wilgus
2020-08-16 d553bb1149: root_menu move tag cache init check to pictureflow plugin

let pictureflow decide if the tag cache is ready instead of core
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/root_menu.c [diff]
William Wilgus
2020-08-16 94eb1df58b: rbutil: Logger Qt6 fixes.

Fix various issues with building CuteLogger with Qt6.
rbutil/rbutilqt/logger/include/Logger.h [diff]
rbutil/rbutilqt/logger/src/AbstractStringAppender.cpp [diff]
rbutil/rbutilqt/logger/src/Logger.cpp [diff]
Dominik Riebeling
2020-08-16 cd352d9052: rbutil: QString::split() changed with Qt 5.14.

Avoid a deprecated warning, and make it compile with Qt6, which removes the old version.
rbutil/rbutilqt/base/ttsfestival.cpp [diff]
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/installtalkwindow.cpp [diff]
Dominik Riebeling
2020-08-16 d5820ff779: rbutil: Qt6: allow building without Multimedia module.

Qt6 beta doesn't include the Multimedia module. Allow building without, and disable on Qt6 for now.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-08-16 7c9a7ed406: rbutil: Initial Qt6 support.

Qt6 replaces QTextStream::setCodec() with QTextStream::setEncoding().
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/base/voicefile.cpp [diff]
rbutil/rbutilqt/gui/changelog.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2020-08-16 9cd37337de: rbutil: Fix various warnings.

Replace use of deprecated APIs with their replacements, and fix some other minor warnings.
rbutil/rbutilqt/base/encoderexe.cpp [diff]
rbutil/rbutilqt/base/system.cpp [diff]
rbutil/rbutilqt/base/system.h [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/sysinfo.cpp [diff]
Dominik Riebeling
2020-08-16 b1332d974a: rbutil: Fix compile warning in unit test.
rbutil/rbutilqt/test/test-compareversion.cpp [diff]
Dominik Riebeling
2020-08-15 84bfd68fb5: Battery_bench & announce_status stack fix

had stack growing the wrong way
apps/plugins/announce_status.c [diff]
apps/plugins/battery_bench.c [diff]
William Wilgus
2020-08-13 a9ac2d0ba3: jz4760: Use HW timer for more a more accurate udelay()

(More specifically, use the SoC's "OS Timer", slaved to the main XTAL so it doesn't matter how the main CPU is clocked)
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-13 7ed126386a: FS #1232: Update Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2020-08-13 fa7ba2df3a: Update english-us translation
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-08-13 4d9f190cab: xduoox3: Fix build when disabling adjustable cpu freq
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
2020-08-11 b4e70422a3: mikmod: Upgrade mikmod core from v3.2.0 to v3.3.11

* Get rid of the non-functional GT2 loader
* Add the UMX loader
* Add HQ mixer routines (and make it configurable)
* Allow samplerate to be configured at run/playtime
* Support >64KHz mixing/playback
* Correctly restore non-boost status

(The diff to upstream is much smaller now too!)
apps/lang/english.lang [diff]
apps/plugins/mikmod/SOURCES [diff]
apps/plugins/mikmod/load_669.c [diff]
apps/plugins/mikmod/load_amf.c [diff]
apps/plugins/mikmod/load_asy.c [diff]
apps/plugins/mikmod/load_dsm.c [diff]
apps/plugins/mikmod/load_far.c [diff]
apps/plugins/mikmod/load_gdm.c [diff]
apps/plugins/mikmod/load_gt2.c [deleted]
apps/plugins/mikmod/load_imf.c [diff]
apps/plugins/mikmod/load_it.c [diff]
apps/plugins/mikmod/load_m15.c [diff]
apps/plugins/mikmod/load_med.c [diff]
apps/plugins/mikmod/load_mod.c [diff]
apps/plugins/mikmod/load_mtm.c [diff]
apps/plugins/mikmod/load_okt.c [diff]
apps/plugins/mikmod/load_s3m.c [diff]
apps/plugins/mikmod/load_stm.c [diff]
apps/plugins/mikmod/load_stx.c [diff]
apps/plugins/mikmod/load_ult.c [diff]
apps/plugins/mikmod/load_umx.c [new]
apps/plugins/mikmod/load_uni.c [diff]
apps/plugins/mikmod/load_xm.c [diff]
apps/plugins/mikmod/mdreg.c [diff]
apps/plugins/mikmod/mdriver.c [diff]
apps/plugins/mikmod/mikmod.c [diff]
apps/plugins/mikmod/mikmod.h [diff]
apps/plugins/mikmod/mikmod_internals.h [diff]
apps/plugins/mikmod/mikmod_supp.h [diff]
apps/plugins/mikmod/mloader.c [diff]
...and 13 more files.
Solomon Peachy
2020-08-10 8c7780bafc: flac: fix warning introduced in 5758a05
lib/rbcodec/metadata/flac.c [diff]
Solomon Peachy
2020-08-10 5758a055fb: Handle EOF properly in get_flac_metadata
docs/CREDITS [diff]
lib/rbcodec/metadata/flac.c [diff]
Yuxuan Shui
2020-08-10 e4ccd23bac: Update .gitignore
.gitignore [diff]
Solomon Peachy
2020-08-09 ae18cac2a9: Enable full sample rate sets for X3ii, X20, and Rocker
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
Solomon Peachy
2020-08-09 491b696669: Fix HOME_DIR path for Rocker, X3ii, and X20

Prevented plugins from accessing their config files properly
firmware/export/rbpaths.h [diff]
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2020-08-09 92d66f761f: Un-hardcode 44.1KHz settings from ALSA and iBasso PCM code
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2020-08-09 0d4752e3f6: plugins: Make 'struct configdata' argument to the configfile helper const

So plugins can use const structures, possibly saving a little bit of RAM.
apps/plugins/lib/configfile.c [diff]
apps/plugins/lib/configfile.h [diff]
Solomon Peachy
2020-08-09 08c4b708ae: jz4760: Move 11/22/44/88KHz back onto the PLL

PLL1 clock for those frequencies has been dropped from 508 to 169.5 MHz, so it's still a respectable reduction.

(I'm not sure how/why it ever worked with the XTAL source, but it did, and was off by an audible amount)
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
Solomon Peachy
2020-08-08 be2c8734cb: plugins: properly build duke3d/quake/wolf3d on MIPS and HOSTED targets
apps/plugins/SOURCES [diff]
Solomon Peachy
2020-08-08 de8f95f95f: xDuoo X3 II, X20: Add power button mapping

These are copied from the e200 mapping, adding the power button to contexts where it's unused.
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
Ori Avtalion
2020-08-08 48d2927ecc: rbutil: Update CuteLogger to most recent upstream.

Update to the most recent git version.

This changes the folder structure and renames some classes to follow upstream.

Restore MSVC static link fix, and fix wrong variable in qmake project file.
rbutil/rbutilqt/logger/AbstractAppender.cpp [deleted]
rbutil/rbutilqt/logger/AbstractAppender.h [deleted]
rbutil/rbutilqt/logger/AbstractStringAppender.cpp [deleted]
rbutil/rbutilqt/logger/AbstractStringAppender.h [deleted]
rbutil/rbutilqt/logger/ConsoleAppender.cpp [deleted]
rbutil/rbutilqt/logger/Logger.cpp [deleted]
rbutil/rbutilqt/logger/Logger.h [deleted]
rbutil/rbutilqt/logger/README.ROCKBOX [diff]
rbutil/rbutilqt/logger/include/AbstractAppender.h [new]
rbutil/rbutilqt/logger/include/AbstractStringAppender.h [new]
rbutil/rbutilqt/logger/ConsoleAppender.h rbutil/rbutilqt/logger/include/ConsoleAppender.h [rename]
rbutil/rbutilqt/logger/CuteLogger_global.h rbutil/rbutilqt/logger/include/CuteLogger_global.h [rename]
rbutil/rbutilqt/logger/FileAppender.h rbutil/rbutilqt/logger/include/FileAppender.h [rename]
rbutil/rbutilqt/logger/include/Logger.h [new]
rbutil/rbutilqt/logger/OutputDebugAppender.h rbutil/rbutilqt/logger/include/OutputDebugAppender.h [rename]
rbutil/rbutilqt/logger/logger.pri [diff]
rbutil/rbutilqt/logger/src/AbstractAppender.cpp [new]
rbutil/rbutilqt/logger/src/AbstractStringAppender.cpp [new]
rbutil/rbutilqt/logger/src/ConsoleAppender.cpp [new]
rbutil/rbutilqt/logger/FileAppender.cpp rbutil/rbutilqt/logger/src/FileAppender.cpp [rename]
rbutil/rbutilqt/logger/src/Logger.cpp [new]
rbutil/rbutilqt/logger/OutputDebugAppender.cpp rbutil/rbutilqt/logger/src/OutputDebugAppender.cpp [rename]
rbutil/rbutilqt/main.cpp [diff]
rbutil/rbutilqt/systrace.cpp [diff]
Dominik Riebeling
2020-08-08 c425d4627e: rbutil: Drop Qt4 support.

The last version of Qt4 was released in 2011, time to officially move to Qt5.
rbutil/rbutilqt/main.cpp [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-08-08 d7b9eb6b63: ROLO - Enable multiboot firmware

I never added multiboot awareness to ROLO

When a new firmware file was loaded [Bootdata] would not be copied to the new instance resulting in the firmware running off the internal drive till next reboot

Bootloaders shares the rb-loader code but should not be affected by the removal of static from write_bootdata()
firmware/common/rb-loader.c [diff]
firmware/rolo.c [diff]
William Wilgus
2020-08-07 adce547e13: rockboxdev: Make it work on macOS.

macOS doesn't know about nproc; sysctl is the tool to be used on macOS.
tools/rockboxdev.sh [diff]
Dominik Riebeling
2020-08-07 d7bbf8a477: rbutil: Use QElapsedTimer for measuring time.

The timing functions in QTime are deprecated and have been removed for Qt6. Use QElapsedTimer, which is the replacement for this.
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.h [diff]
Dominik Riebeling
2020-08-07 2fe046c380: rbutil: Drop support for libusb0.

libusb1 is maintained and stable since years. No need to keep the old implementation around.
rbutil/rbutilqt/base/system.cpp [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-08-07 729b6e4f33: rbutil: Update libmspack to 0.10.1alpha.

Update to the most recent release. Fix name / include clashes, as has been done before.
rbutil/rbutilqt/mspack/README.ROCKBOX [diff]
rbutil/rbutilqt/mspack/cab.h [diff]
rbutil/rbutilqt/mspack/cabd.c [diff]
rbutil/rbutilqt/mspack/chmd.c [diff]
rbutil/rbutilqt/mspack/kwajd.c [diff]
rbutil/rbutilqt/mspack/lzss.h [diff]
rbutil/rbutilqt/mspack/lzssd.c [diff]
rbutil/rbutilqt/mspack/lzx.h [diff]
rbutil/rbutilqt/mspack/lzxd.c [diff]
rbutil/rbutilqt/mspack/mspack.h [diff]
rbutil/rbutilqt/mspack/mszip.h [diff]
rbutil/rbutilqt/mspack/mszipd.c [diff]
rbutil/rbutilqt/mspack/qtm.h [diff]
rbutil/rbutilqt/mspack/qtmd.c [diff]
rbutil/rbutilqt/mspack/readbits.h [diff]
rbutil/rbutilqt/mspack/readhuff.h [diff]
rbutil/rbutilqt/mspack/system-mspack.c [diff]
rbutil/rbutilqt/mspack/system-mspack.h [diff]
rbutil/rbutilqt/mspack/szddd.c [diff]
Dominik Riebeling
2020-08-07 b0f22620a2: rbutil: Update quazip to release 0.9.1.

Update to latest quazip release.
rbutil/rbutilqt/quazip/README.ROCKBOX [diff]
rbutil/rbutilqt/quazip/ioapi.h [diff]
rbutil/rbutilqt/quazip/crypt.h rbutil/rbutilqt/quazip/minizip_crypt.h [rename]
rbutil/rbutilqt/quazip/qioapi.cpp [diff]
rbutil/rbutilqt/quazip/quazip.cpp [diff]
rbutil/rbutilqt/quazip/quazip.h [diff]
rbutil/rbutilqt/quazip/quazip.pri [diff]
rbutil/rbutilqt/quazip/quazip_global.h [diff]
rbutil/rbutilqt/quazip/quazipfile.cpp [diff]
rbutil/rbutilqt/quazip/quazipfile.h [diff]
rbutil/rbutilqt/quazip/quazipfileinfo.cpp [diff]
rbutil/rbutilqt/quazip/quazipfileinfo.h [diff]
rbutil/rbutilqt/quazip/quazipnewinfo.cpp [diff]
rbutil/rbutilqt/quazip/quazipnewinfo.h [diff]
rbutil/rbutilqt/quazip/unzip.c [diff]
rbutil/rbutilqt/quazip/unzip.h [diff]
rbutil/rbutilqt/quazip/zip.c [diff]
rbutil/rbutilqt/quazip/zip.h [diff]
Dominik Riebeling
2020-08-07 b3a0187416: jz4760: Major clocking improvements for audio PLL

* for <= 48KHz, BCLK must be 256*freq (ie bdiv = 4)
* for <= 96KHz, BCLK must be 128*freq (ie bdiv = 2)
* for 11/22/44/88 KHz, disable PLL1 and run off XTAL
* cut PLL1 with 12/24/48/98 KHz audio from 516->86MHz
* cut PLL1 with 8/16/32/64 KHz audio from 426->106.5MHz

This should result in significant power savings for common 44.1KHz audio playback, and pretty good savings for everything else.

As an added bonus:

* enable de-emphasis filters at 32, 44.1, and 48 KHz
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
Solomon Peachy
2020-08-07 eb0e41c1cc: jz4760: Support dynamic reclocking!

default/low speed is 192 MHz, Max is 576

Downclock PCLK/MCLK/etc to 96MHz to save a bit of juice

Honestly the high speed could be dialed down to, eg 384 as this thing is so bloody fast..
firmware/export/config/xduoox3.h [diff]
firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-07 62146ed735: jz4760: Fixes in PLL calculation and reporting
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-07 89c7a4e393: xduoox3: Enable HAVE_PLAY_FREQ

This way the player can natively play back 48KHz audio
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
2020-08-07 e0bcb0f2bc: Automatic choice of playback frequency by the playing file properties
apps/playback.c [diff]
apps/settings_list.c [diff]
Igor B. Poretsky
2020-08-07 e0bb30a1bd: xduoox3: Set PLL0 to 480MHz, not 492.

PLL0 Needs to be a multiple of 48MHz for sane USB operation!

(Indeed, "typical" clock for this part is 528, but that seems a waste of power)

Also fixes a minor bugaboo in the jz4670 usb divisor calculation that won't matter until we enable reclocking
firmware/export/config/xduoox3.h [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-07 f554c78734: jz4760: Don't enable PLL1 until we need audio.
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
firmware/target/mips/ingenic_jz47xx/system-jz4760.c [diff]
Solomon Peachy
2020-08-07 7ab063a157: jz7460: debugging improvements
firmware/target/mips/ingenic_jz47xx/debug-jz4760.c [diff]
Solomon Peachy
2020-08-06 04d289fe02: rbutil: Use SpinBox for Proxy port value.

No need to use a validator on a LineEdit, simply use a SpinBox and disable the up / down icons.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/configurefrm.ui [diff]
Dominik Riebeling
2020-08-06 feb028ac37: rbutil: Fix deprecation warnings.
rbutil/rbutilqt/base/httpget.cpp [diff]
rbutil/rbutilqt/quazip/quazipfileinfo.cpp [diff]
Dominik Riebeling
2020-08-06 7c5b9a4049: rbutil: Fix Qt deprecated warnings.
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/preview.h [diff]
Dominik Riebeling
2020-08-06 82f98dea2b: rbutil: Explicitly link bzip2 only on non-Windows.

When building for Windows (at least using mxe) bzip2 clashes with existing symbols. This seems to be a similar issue as with zlib. Don't link it explicitly, so the linker uses the existing symbols.

Fixes building for Windows.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-08-06 d51dfbf2c3: Include all cabbiev2/font resources for 240x320 32bpp targets
wps/WPSLIST [diff]
Solomon Peachy
2020-08-06 5d1d431b97: FS #9295: Detect external power supply for ipod 1st & 2nd gen (Mark Fawcus)
firmware/export/config/ipod1g2g.h [diff]
firmware/target/arm/ipod/power-ipod.c [diff]
Solomon Peachy
2020-08-05 6f92c498c4: beastpatcher: don't hardcode lib paths.

Let the linker find libmtp / libusb. Also don't insist on linking them statically -- current Debian doesn't have a static libmtp. Set STATIC to force linking statically.
utils/MTP/beastpatcher/Makefile [diff]
Dominik Riebeling
2020-08-03 a74517ac65: duke3d: allow playing with unofficial data files

I'd overlooked this code path earlier. In the case of an unknown GRP, the game would poll SDL for keyboard input, which it never received. Remove that, and just warn the user instead.
apps/plugins/sdl/progs/duke3d/Game/src/game.c [diff]
Franklin Wei
2020-08-02 da0dbc5d58: Battery_Bench use plugin buffer for thread stack, stop scrolling

Increase stack by using the remaining plugin buffer

Stops the scrolling message after user input
apps/plugins/battery_bench.c [diff]
William Wilgus
2020-08-02 affaa9439d: FS13227: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2020-07-30 ef05dc9c3b: langstats: Use updatelang instead of 'genlang -u'
tools/langstatus [diff]
Solomon Peachy
2020-07-29 14346ff78d: FS #13225: Updated Italian Translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
2020-07-28 f495c4846d: updatelang: Fix the ignore list having issues with line endings.
tools/updatelang [diff]
Solomon Peachy
2020-07-28 e3f6e9d9f6: imx233: rtc: generalize PERSISTENT0 fix
firmware/target/arm/imx233/rtc-imx233.h [diff]
Moshe Piekarski
2020-07-28 20e400e74b: languages: Add a few more exclusions to the same-as-english ignore list
tools/langignorelist.txt [diff]
Solomon Peachy
2020-07-28 530bc16679: updatelang: Extract langstr ignore list into a separate file so it can be shared
tools/langignorelist.txt [new]
tools/updatelang [diff]
Solomon Peachy
2020-07-28 2aeeeb43c9: updatelang: Fix false warnings about deprecated strings
tools/updatelang [diff]
Solomon Peachy
2020-07-28 42e514c800: Polish translation gets a little updatelang love
apps/lang/polski.lang [diff]
Solomon Peachy
2020-07-28 bfd6b5d6a9: FS #13224: Update Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-07-28 8298104a1e: "Update" english-us translation (ie copy new strings)
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-07-28 5da59ce2fd: updatelang: more tweaks for master language and sub-languages
tools/updatelang [diff]
Solomon Peachy
2020-07-28 7f27d2dd52: kbd_helper fix yellow
apps/plugins/lib/kbd_helper.c [diff]
William Wilgus
2020-07-28 9e2eceeb33: kyb_helper small 'bug' fix
apps/plugins/lib/kbd_helper.c [diff]
William Wilgus
2020-07-28 f30f1bb467: updatelang: don't special-case english-us yet
tools/updatelang [diff]
Solomon Peachy
2020-07-28 e1681345cc: fix the red in be04c4b
apps/plugins/announce_status.c [diff]
Solomon Peachy
2020-07-28 fbe557d432: Fix IPod 3G USB Recognition Problem

Allow IPod 3rd generation to recognize when USB is connected and reboot into disk mode. This problem is listed at the bottom of the Ipod status page https://www.rockbox.org/wiki/IpodStatus
docs/CREDITS [diff]
firmware/target/arm/pp/usb-fw-pp5002.c [diff]
MichaelRey
2020-07-28 5e72616618: FS #8778: Fix iPod 1G scroll wheel not being enabled (Mark Fawcus and Rune Pade)

They confirmed it worked in the original ticket.
docs/CREDITS [diff]
firmware/target/arm/ipod/1g2g/adc-ipod-1g2g.c [diff]
firmware/target/arm/ipod/1g2g/powermgmt-1g2g.c [diff]
firmware/target/arm/ipod/button-1g-3g.c [diff]
Solomon Peachy
2020-07-28 be04c4be0a: Voice TSR Plugin Demo

allows user to run plugin in background that voices status messages

grouping is now working it counts ; as the end of a group

sleep timer remaining is not voiced if sleep timer is not active

TODO manual entries
apps/lang/english.lang [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/announce_status.c [new]
tools/voicefont.c [diff]
William Wilgus
2020-07-27 3f828e9244: FS #13220: Allow sound settings to be saved again

(Basically this reverts bf546fbfcb and its successors)
apps/settings.c [diff]
apps/settings_list.c [diff]
Solomon Peachy
2020-07-27 b9d13b898d: genlang: strip out the '-u' mode as it's now handled by updatelang
tools/genlang [diff]
Solomon Peachy
2020-07-27 acb9754c7c: FS #13223: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-07-27 7f282b9280: imx233: rtc: Initialize PERSISTENT0 register

Prevents the rtc from breaking on power removal
firmware/target/arm/imx233/rtc-imx233.h [diff]
Moshe Piekarski
2020-07-27 cda5b055fe: updatelang: Fix a few straggling issues
tools/updatelang [diff]
Solomon Peachy
2020-07-27 8159c9537f: updatelang: Don't rely on non-core modules
tools/updatelang [diff]
Solomon Peachy
2020-07-27 632385a4d0: update english & english-us with new updatelang target ordering
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
Solomon Peachy
2020-07-27 2305966d84: updatelang: New tool to update language files.
apps/lang/lang.make [diff]
tools/updatelang [new]
tools/voice.pl [diff]
Solomon Peachy
2020-07-27 c81e1e1bf1: manual: Strip out a few more archos-specific chunks
manual/appendix/config_file_options.tex [diff]
manual/appendix/file_formats.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/configure_rockbox/recording_settings.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/main_menu/fmradio.tex [diff]
manual/plugins/main.tex [diff]
Solomon Peachy
2020-07-27 aee6459d7f: english: Get rid of some reduncancy
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
Solomon Peachy
2020-07-27 a898f36182: Do_menu allow VOICE_ONLY strings

Enable Voice_Blank and other Voice only LANG_IDs to be used in menus
apps/menu.c [diff]
William Wilgus
2020-07-26 796eba4c81: md5sum: clean up whitespace
apps/plugins/md5sum.c [diff]
Franklin Wei
2020-07-26 2eb7ce475a: Refactor 73b02a4.

Moves basename to a separate function, and documents some of the pointer arithmetic it's doing.
apps/plugins/md5sum.c [diff]
Franklin Wei
2020-07-26 73b02a4a2c: Make md5sum more verbose

Solves FS #9539
apps/plugins/md5sum.c [diff]
Moshe Piekarski
2020-07-26 18ffb9275c: Add standard cancel to lang
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
Moshe Piekarski
2020-07-26 b820c648c8: rbutil: Always use Qt Multimedia to play TTS preview.

We're using it on Windows and macOS, there's no reason to not do so on Linux.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-07-26 5640d0d3c7: rbutil: Call QLocale::setDefault() with QLocale.

QLocale::setDefault() shouldn't be called with a QString but a QLocale instead. Calling it with a string doesn't work with Qt6 anymore.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/main.cpp [diff]
Dominik Riebeling
2020-07-26 1e39619034: rbutil: Merge Troubleshoot submenu with Help menu.

Since people seem to have problems finding the troubleshoot items in a submenu move them one level up. The submenu isn't too useful anyway.
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-07-26 46d06f71dc: rbutil: Remove unnecessary (and implicit) type conversion. rbutil/rbutilqt/base/utils.cpp [diff]
Dominik Riebeling
2020-07-26 1ed283de9c: rbutil: Update translation stats script.

- Update to Python3.
- Change Qt tools to Qt5.
- Cleanup.
rbutil/rbutilqt/langstats.py [diff]
Dominik Riebeling
2020-07-26 a9c7bc7c9a: deploy: Simplify retrieving CPU count.

The multiprocessing module is part of Python since 2.6, so no need to do an extra check here.
utils/common/deploy.py [diff]
Dominik Riebeling
2020-07-26 ee4e6d2fba: Strip out archos from common strings
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/portugues-brasileiro.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/romaneste.lang [diff]
...and 11 more files.
Solomon Peachy
2020-07-25 683323bebf: lang: Get rid of more strings not used any more
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
Solomon Peachy
2020-07-25 f520370b6a: FS #13218: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-07-25 a84176122c: Fix two variable-set-but-not-used warnings

(found using -Os with gcc494 on the nano2g)
apps/plugins/test_boost.c [diff]
firmware/target/arm/s5l8700/ipodnano2g/audio-nano2g.c [diff]
Solomon Peachy
2020-07-25 469866b6c9: mpegplayer: Fix aliasing rules violation on multi-core targets

As the PP series has no sense of cache coherency between its multiple cores, we need to ensure the vo_data structure does not share cachelines with anything else.

This was previously done by defining a uint8_t array and trying to access it via typecasting hell, triggering a large pile of aliasing violation warnings on newer toolchains and/or higher optimization levels.

Instead of violating the C spec in an undefined-behaviour-sort-of-way, create a union of the right size and alignment, and make one of its members the structure we care about. Voila, everyone is happy.
apps/plugins/mpegplayer/video_out_rockbox.c [diff]
Solomon Peachy
2020-07-25 677848cf80: More fixes for English(US)

(The translate website screwed up a bit)
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-07-25 02b970fa79: Update French translation (Stéphane Moutard-Martin)
apps/lang/francais.lang [diff]
docs/CREDITS [diff]
tools/builds.pm [diff]
Solomon Peachy
2020-07-25 479351013e: Update English(US) translation
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-07-25 7824b1dcb5: Plugin Api update with added functions
apps/plugin.c [diff]
apps/plugin.h [diff]
docs/PLUGIN_API [diff]
William Wilgus
2020-07-24 e49c1af570: plugins: HAVE_BACKLIGHT in the test plugins
apps/plugins/test_codec.c [diff]
apps/plugins/test_disk.c [diff]
apps/plugins/test_fps.c [diff]
apps/plugins/test_gfx.c [diff]
apps/plugins/test_grey.c [diff]
Solomon Peachy
2020-07-24 9be5bc4cf0: plugins: More HAVE_BACKLIGHT cleanup
apps/plugins/2048.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/demystify.c [diff]
apps/plugins/doom/rockdoom.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/fireworks.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/maze.c [diff]
apps/plugins/mazezam.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
apps/plugins/pacbox/pacbox.c [diff]
apps/plugins/plasma.c [diff]
apps/plugins/pong.c [diff]
apps/plugins/resistor.c [diff]
apps/plugins/rockblox.c [diff]
apps/plugins/rockboy/menu.c [diff]
apps/plugins/rockboy/rockboy.c [diff]
apps/plugins/rocklife.c [diff]
apps/plugins/sdl/main.c [diff]
apps/plugins/spacerocks.c [diff]
apps/plugins/speedread.c [diff]
apps/plugins/starfield.c [diff]
apps/plugins/stats.c [diff]
apps/plugins/wormlet.c [diff]
apps/plugins/xobox.c [diff]
apps/plugins/xworld/sys.c [diff]
Solomon Peachy
2020-07-24 2127906384: peakmeter: Fix warning on some hosted targets
apps/recorder/peakmeter.c [diff]
Solomon Peachy
2020-07-24 a3398a2143: plugins: Fix the builds for targets lacking HAVE_BACKLIGHT
apps/plugins/chopper.c [diff]
apps/plugins/credits.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/lib/helper.c [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
Solomon Peachy
2020-07-24 5dbb757670: peakmeter: Fix simulator build breakage introduced in 8cb55546
apps/recorder/peakmeter.c [diff]
Solomon Peachy
2020-07-24 503bb791b0: plugins: Remove six API functions with no users

statusbars, gui_syncstatusbar_draw(), and set_time() mp3_play_data(), mp3_play_pause(), mp3_play_stop()

[mp3_is_playing() is still used by imageviewer]

(followup to the sh/archos exorcism..)
apps/plugin.c [diff]
apps/plugin.h [diff]
Solomon Peachy
2020-07-24 658026e626: [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice.

Note: I left behind lcd_bitmap in features.txt, because removing it would require considerable work in the manual and the translations.
apps/SOURCES [diff]
apps/action.c [diff]
apps/bitmaps/mono/SOURCES [diff]
apps/bitmaps/native/SOURCES [diff]
apps/bitmaps/remote_mono/SOURCES [diff]
apps/bookmark.c [diff]
apps/cuesheet.c [diff]
apps/cuesheet.h [diff]
apps/debug_menu.c [diff]
apps/features.txt [diff]
apps/filetree.c [diff]
apps/filetypes.c [diff]
apps/gui/bitmap/list-skinned.c [diff]
apps/gui/icon.c [diff]
apps/gui/icon.h [diff]
apps/gui/line.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/scrollbar.c [diff]
apps/gui/scrollbar.h [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_display.h [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/splash.c [diff]
apps/gui/statusbar-skinned.h [diff]
...and 210 more files.
Solomon Peachy
2020-07-24 8cb555460f: [3/4] Completely remove HWCODEC support

'swcodec' is now always set (and recording_swcodec for recording-capable units) in feature.txt so the manual and language strings don't need to all be fixed up.
apps/SOURCES [diff]
apps/abrepeat.c [diff]
apps/abrepeat.h [diff]
apps/action.c [diff]
apps/bookmark.c [diff]
apps/codecs.c [diff]
apps/cuesheet.c [diff]
apps/debug_menu.c [diff]
apps/features.txt [diff]
apps/filetypes.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
apps/gui/pitchscreen.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/splash.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/wps.c [diff]
apps/lang/english.lang [diff]
apps/main.c [diff]
apps/menu.c [diff]
apps/menus/eq_menu.c [diff]
apps/menus/menu_common.c [diff]
apps/menus/menu_common.h [diff]
apps/menus/playback_menu.c [diff]
apps/menus/radio_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/sound_menu.c [diff]
apps/misc.c [diff]
...and 177 more files.
Solomon Peachy
2020-07-24 0c4f89370d: [2/4] get rid of HAVE_LCD_CHARCELLS

HAVE_LCD_BITMAP is now redundant.

lcd_bitmap is always-on in features.txt so manual and lang strings don't have to change
apps/SOURCES [diff]
apps/features.txt [diff]
apps/filetypes.c [diff]
apps/gui/charcell/list.c [deleted]
apps/gui/icon.h [diff]
apps/gui/line.c [diff]
apps/gui/list.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/splash.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/usb_screen.c [diff]
apps/gui/viewport.h [diff]
apps/gui/wps.c [diff]
apps/gui/yesno.c [diff]
apps/logfdisp.c [diff]
apps/menus/main_menu.c [diff]
apps/onplay.c [diff]
apps/player/icons.c [deleted]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/credits.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jackpot.c [diff]
apps/plugins/lib/SOURCES [diff]
...and 47 more files.
Solomon Peachy
2020-07-24 092c340a20: [1/4] Remove SH support and all archos targets

This removes all code specific to SH targets
.gitignore [diff]
apps/SOURCES [diff]
apps/debug_menu.c [diff]
apps/features.txt [diff]
apps/gui/buttonbar.c [deleted]
apps/gui/buttonbar.h [deleted]
apps/gui/list.c [diff]
apps/gui/option_select.h [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/viewport.c [diff]
apps/gui/wps.c [diff]
apps/keymaps/keymap-ondio.c [deleted]
apps/keymaps/keymap-player.c [deleted]
apps/keymaps/keymap-recorder.c [deleted]
apps/lang/english.lang [diff]
apps/main.c [diff]
apps/menu.c [diff]
apps/menus/main_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/sound_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/misc.c [diff]
apps/mpeg.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/SOURCES [diff]
apps/plugins/SUBDIRS [diff]
apps/plugins/alpine_cdc.c [deleted]
...and 354 more files.
Solomon Peachy
2020-07-24 17f7cc92c2: Slovak language update (From Peter Lecký)
apps/lang/slovak.lang [diff]
Solomon Peachy
2020-07-24 09f40e266b: talk: Force-shutdown the voice system before loading a new voice

Otherwise we might actually be talking when we try to switch, or otherwise trash the state of the running talk thread, leading to memory corruption or an outright crash

(This fixes a panic observed on the xDuoo X3)
apps/talk.c [diff]
Solomon Peachy
2020-07-22 0c4ae417d5: bootloader: Consolidate xDuoo X3ii/X20 and AGPTek Rocker bootloaders

Bonus changes:

* boot mode selection stored on SD card
bootloader/SOURCES [diff]
bootloader/rocker_linux.c [diff]
bootloader/xduoo_linux.c [deleted]
Solomon Peachy
2020-07-22 cb94b3ae2e: keyboard add ability to specify temporary custom layouts

rb core allows you to load custom keyboard layouts

this patch adds the ability to load a keyboard layout in a buffer the custom layout is temporary and does not overwrite the current layout

use like so:

unsigned short kbd[64]; unsigned short *kbd_p = kbd; if (!kbd_create_layout("ABCD1234\n", kbd, sizeof(kbd))) kbd_p = NULL;

rb->kbd_input(buf,sizeof(buf), kbd_p);
apps/hosted/android/keyboard.c [diff]
apps/keyboard.h [diff]
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/player/keyboard.c [diff]
apps/playlist_catalog.c [diff]
apps/playlist_viewer.c [diff]
apps/plugin.h [diff]
apps/plugins/calendar.c [diff]
apps/plugins/dict.c [diff]
apps/plugins/frotz/frotz.c [diff]
apps/plugins/goban/goban.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/kbd_helper.c [new]
apps/plugins/lib/kbd_helper.h [new]
apps/plugins/lrcplayer.c [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/otp.c [diff]
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/resistor.c [diff]
apps/plugins/rockboy/menu.c [diff]
apps/plugins/rockpaint.c [diff]
apps/plugins/sdl/progs/duke3d/Game/src/console.c [diff]
apps/plugins/sdl/progs/quake/keys.c [diff]
apps/plugins/search.c [diff]
apps/plugins/sokoban.c [diff]
apps/plugins/splitedit.c [diff]
apps/plugins/sudoku/sudoku.c [diff]
apps/plugins/superdom.c [diff]
...and 7 more files.
William Wilgus
2020-07-21 a5df94beb5: build: Tweaks to better support non-English as primary language

* get rid of $(LANGUAGE) in top-level makefile (and configure script)
* un-hardcode English-as-primary-language in a couple more places
* allow DEFAULT_VOICE_LANG to be overriden

To actually change the primary from English, one must change:

* $english in voice.pl
* hardcoded 'english' in rbutil
* $ENGLISH in apps/lang/lang.make
* DEFAULT_VOICE_LANG in apps/talk.c
* configure script (default prompt)

Of course, if one wants to change the default UI language, it's simpler to change the default language setting variable at compile time, or perhaps by adding a configuration file with the desired value into the
.rockbox directory when the .zip is assembled.
apps/lang/lang.make [diff]
apps/talk.c [diff]
tools/configure [diff]
Solomon Peachy
2020-07-21 688c89cfe1: genlang: More voice-related fixes.

* Use consistent ID numbering
* Use consistent logic for voicelist and voicebin files
* Fix situations where English <-> English would fail in strange ways
* Delete leftover tmpfile.
* Off-by-one error in voice validation code
* Off-by-one error in voicelist generation
apps/lang/lang.make [diff]
apps/talk.c [diff]
tools/genlang [diff]
Solomon Peachy
2020-07-21 25f9601d7b: Fix the sea of red introduced in bf546fb
apps/settings.c [diff]
Solomon Peachy
2020-07-21 bf546fbfcb: Run-time validation of INT settings.

Check against min/max/step parameters

Many places this value is used as an index into an array; this will help prevent array overflows and undefined/undesireable behavior.

Some fields accept arbitary values, continue to accept those.
apps/settings.c [diff]
Solomon Peachy
2020-07-20 5c30d57ad1: rbutil: Fix the X3ii's USB VID/PID
rbutil/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2020-07-20 f6060d62d9: rbutil: Add support for the xDuoo X3, X3ii, X20, and AGPTek Rocker.

* All include full bootloader installation!
* X20 lack USB VID/PIDs so cannot be autodetected.
* Benjie T6 (variant/OEM of the Rocker) USB VID/PID unknown.
rbutil/rbutilqt/base/bootloaderinstallbspatch.cpp [new]
rbutil/rbutilqt/base/bootloaderinstallbspatch.h [new]
rbutil/rbutilqt/base/bootloaderinstallhelper.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
Solomon Peachy
2020-07-20 561937f2f4: bspatch: Fix compiling on macOS.

u_char is a nonstandard type. On macOS this requires to explicitly include sys/types.h.
rbutil/bspatch/bspatch.c [diff]
Dominik Riebeling
2020-07-20 2b1de3d336: menu.c fix redraw bug

fix redraw bug added with c39f95465
apps/menu.c [diff]
William Wilgus
2020-07-19 c84f9252d7: Fix the yellow in the player build from c39f95465
apps/menus/main_menu.c [diff]
Solomon Peachy
2020-07-19 6bb704c9d0: Fix more of the red from c39f95465
apps/menus/display_menu.c [diff]
Solomon Peachy
2020-07-19 11274e3d26: menus: Fix some of the red from c39f95465
apps/menus/display_menu.c [diff]
Solomon Peachy
2020-07-19 c39f95465b: do_menu pass internal synclist reference to callback

keep running into the rigid nature of do_menu it isn't too bad when you don't need voice but once you do the fun awaits

do_menu likes to talk on menu enter which is in a loop when you use do_menu I would like to move the processing to the callback TOO BAD you only get an action and the menu_item_ex struct you sent it when calling the function
apps/enc_config.c [diff]
apps/menu.c [diff]
apps/menu.h [diff]
apps/menus/display_menu.c [diff]
apps/menus/eq_menu.c [diff]
apps/menus/menu_common.c [diff]
apps/menus/menu_common.h [diff]
apps/menus/playback_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/sound_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/menus/time_menu.c [diff]
apps/onplay.c [diff]
apps/plugins/2048.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/codebuster.c [diff]
apps/plugins/disktidy.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/mazezam.c [diff]
apps/plugins/mpegplayer/mpeg_misc.c [diff]
apps/plugins/mpegplayer/mpeg_misc.h [diff]
apps/plugins/pegbox.c [diff]
...and 9 more files.
William Wilgus
2020-07-19 4663d94b4e: gitignore: We don't care about files ending in '~'
.gitignore [diff]
Solomon Peachy
2020-07-19 6fa80604e3: rbutil: Add in missing voicefile languages
rbutil/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2020-07-19 fc4af2062b: rbutil: Support 'espeak-ng' and 'mimic' TTS engines
rbutil/rbutilqt/base/ttsbase.cpp [diff]
rbutil/rbutilqt/base/ttsespeakng.h [new]
rbutil/rbutilqt/base/ttsmimic.h [new]
rbutil/rbutilqt/rbutilqt.pri [diff]
Solomon Peachy
2020-07-19 1748b475a9: voice: Allow use of an existing (textual) voiceids file

If it's present, we don't need to generate one, which means we don't need to know the target name and features list.

The next step is to accept the binary variant that rbutil uses so we can generate a complete voice file on the cmdline.
tools/voice.pl [diff]
Solomon Peachy
2020-07-17 2b9c85a41b: storage: Clean up storage_xxxx macros when STORAGE_MULTI is not set
apps/plugin.c [diff]
apps/settings_list.c [diff]
firmware/export/storage.h [diff]
Solomon Peachy
2020-07-17 805f531632: statusbar: explicitly #include <button.h>

This header relies on stuff that might get defined in button.h, and was reliant upon being implicitly included.

The last thing we want is a struct to change layout underneath us!
apps/gui/statusbar.h [diff]
Solomon Peachy
2020-07-15 e884140eae: Add support for ID3 tags embedded in AIFF files
lib/rbcodec/codecs/aiff.c [diff]
lib/rbcodec/metadata/aiff.c [diff]
lib/rbcodec/metadata/id3tags.c [diff]
Moshe Piekarski
2020-07-15 ff8cca70a4: imx233: rtc: Explicitly clear the soft reset bit when initializing

If we come up and the RTC is in a reset state, we need to release that before trying to initialze anything else. (See IMX23RM 23.8.1 and 39.3.10)
firmware/target/arm/imx233/rtc-imx233.h [diff]
Solomon Peachy
2020-07-15 650eaa39c4: rk27xx: rename 'start' to '__start'
firmware/target/arm/rk27xx/app.lds [diff]
firmware/target/arm/rk27xx/boot.lds [diff]
firmware/target/arm/rk27xx/crt0.S [diff]
Solomon Peachy
2020-07-15 df14f12675: mkinfo: Make memory size computation more accurate

* imx233 had disjoint memory map
* hosted binaries not computing start address properly
tools/mkinfo.pl [diff]
Solomon Peachy
2020-07-15 058ba97f62: xduoox3: Add HID mappings for multimedia and presentation modes
apps/keymaps/keymap-xduoox3.c [diff]
Solomon Peachy
2020-07-15 c54170e8f6: mips: Adjust stack sizes

Main/IRQ from: 7.5/0.75 to: 7.25/1.0

With the reduction of the opus codec stack usage, giving the IRQ stack some additional breathing room is now possible.
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/boot.lds [diff]
Solomon Peachy
2020-07-15 82943ea1c7: opus: shrink stack usage by nearly 700 bytes

By moving three structures to the heap. None are in the hot decode loop, instead having to do with file sync / header state.

Has neglible impact on performance (within measurement noise) on Clip+, Rocker, and Xduoo X3.

On PP5022 (ipodmini2g) performance drops from 138.66% to 138.22% realtime.
(0.3%)

Unknown effect on Coldfire which lacks D$.

Stack savings are pretty significant especially on lowmem devices.
lib/rbcodec/codecs/opus.c [diff]
Solomon Peachy
2020-07-15 8577d5aea3: Buflib_init Bugfix Minsize

when buflib_init is called with a buffer smaller than sizeof(union buflib_data); size will be zero Later when the alloc fails buflib will keep try to free items in order to satisify the request this crashes in the sim I suspect this behavior holds true on device as well but I havent verified this as of yet.

patch adds minimal overhead to the buflib and panics when the size is too small
firmware/buflib.c [diff]
William Wilgus
2020-07-15 7d005335ba: puzzles: always reset input state before pause menu

We were improperly conditioning the state reset with `do_pausemenu'. We should reset the input state no matter what.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-07-15 987c6575b3: puzzles: more verbose debug output in font loading

No functional changes.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-07-15 0e97132314: talk: only show the "failed reading .voice" splash if talking is enabled
apps/talk.c [diff]
Solomon Peachy
2020-07-15 4a1988d31b: debug ata: Distinguish between Advanced power management and basic PM

The old debug menu item covered APM, which is optional in the ATA spec However, despite basic power management being mandatory, several popular ATA/CF->SD adapters do not advertise PM support and have problems when it is used.

An earlier patch (g#2500 / 5462907) disabled sleep when the PM capability bit was not set; this makes it visible in the debug menu.
apps/debug_menu.c [diff]
Solomon Peachy
2020-07-14 385d2eaa19: FS #13215: Russian translation update (Alexander Levin)
apps/lang/russian.lang [diff]
Solomon Peachy
2020-07-14 a69acbb2c1: FS #13214: Update Italian translation (Alessio Lenzi)

Enable the Italian voice nightly build too.
apps/lang/italiano.lang [diff]
tools/builds.pm [diff]
Solomon Peachy
2020-07-14 c731674dd8: Pictureflow manual update
manual/plugins/pictureflow.tex [diff]
William Wilgus
2020-07-14 66d7c21cde: rbutil: Handle the new Retired target status.

It's considerd stable, but does not have dev builds any more

So don't display download options to get RC or dev builds.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Solomon Peachy
2020-07-14 30fb53d47f: Enabled hotkey for Sansa Clip players
apps/keymaps/keymap-clip.c [diff]
firmware/export/config/sansaclip.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/config/sansaclipv2.h [diff]
firmware/export/config/sansaclipzip.h [diff]
manual/platform/keymap-sansaclip.tex [diff]
Igor B. Poretsky
2020-07-14 45915101d5: Pictureflow Bugfixes & Usability fixes

First I discovered a bug in the code to display the currently playing album from the WPS
--on a NULL id3->albumartist field PF would crash now checks for a match in id3->albumartist and then id3->artist if neither exists then the search uses <untagged> ditto for album

The album index feature (recently added) did not check for enough room in the buffer on restore
--save and restore code cleaned up a bit moved all buffers to their own struct

tracks with no title now show filename rather than <UNTAGGED>

Reworked album search function album search was going quadriatic resulting in some outrageous index build times [40mins+ for 4000 albums] building now done in stages and duplicates removed at end
*MUCH FASTER*

Album art empty album art is no longer stored in the art cache

PF will now allow you to cancel building album art without forcing a rebuild next run, it will continue searching for album art in the background album art is now updated in the background on each start as well

tracklist now rolls over at the end

artist_index is now discarded after album_index is created

Cleaned up some of the myriad of global variables

Added quit prompt for index building

Added sanity checking for album_index loaded from disk
apps/plugins/pictureflow/pictureflow.c [diff]
William Wilgus
2020-07-13 9adfab9b2b: builds.pm: Enable Greek and Slovak voice builds.
tools/builds.pm [diff]
Solomon Peachy
2020-07-13 ead398a8f3: builds: Allow voices to be filtered by an 'enabled' flag.

(So only voices that are confirmed okay are built)
tools/builds.pm [diff]
Solomon Peachy
2020-07-13 cb3363f57d: Fix warnings in Estonian language
apps/lang/eesti.lang [diff]
Solomon Peachy
2020-07-13 b84a153c76: lang: Fix boneheaded mistake in ca31bad8
apps/lang/lang.make [diff]
Solomon Peachy
2020-07-13 ca31bad8a5: voice: Ensure all voicelist files in voicefiles.zip are complete

Backfill all missing strings from the English master translation.
apps/lang/lang.make [diff]
Solomon Peachy
2020-07-13 73a0a9f5aa: genlang: Skip strings not present in english in all voicelist modes
tools/genlang [diff]
Solomon Peachy
2020-07-13 ab1cf209ec: build: We don't want '-r' in MAKEFLAGS for toolchain builds.
tools/rockboxdev.sh [diff]
Solomon Peachy
2020-07-12 980124ec73: voice: Ensure there are no missing strings when generating the voicelist.

If the translation is not 100% complete, we need to make sure anything missing is copied from English so there won't be any gaps in the voice files.

(This behavior is similar to what we do for the regular binary lang files)
tools/voice.pl [diff]
Solomon Peachy
2020-07-12 54629073ae: ATA: Make sure "hard disk" supports power management

The FC-1307 CF->SD converter that is the basis of a lot of ATA->CF devices (including several iflash iFlash models) claims to not support ATA power management commands.

Rockbox unconditionally issues those commands as support is mandated by the ATA spec. This patch checks the capability bit, and if it's not supported, does not attempt to put the ATA subsystem to sleep.

It is not clear if the problems lie with the SLEEP commands or the wakeup process, but who knows where else the FC1307 violates the ATA specs, and reliability is much more important than power savings.
firmware/drivers/ata.c [diff]
Solomon Peachy
2020-07-11 7249fabe63: fat: Validate FS Info Sector signature when attempting to mount volume

The "try to mount as superfloppy" fails with some partitioning layouts because sector 0 can have a mostly-valid FAT32 signature. However, in all dumps I've looked at, sector 0's fsinfo offset value points at a place which lacks the fsinfo signature.

Resolves FS #13213, no known regressions.
firmware/drivers/fat.c [diff]
Solomon Peachy
2020-07-11 aa20b6af7a: voice: Two more fixes.
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-07-11 b546d9d172: voice: More fixes, and add more languages

* Pass strings via stdin where possible
* Add German, Italian, and Norweigan to the build list.
(in other words, everything with >=95% coverage)
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-07-11 aad57ea1cc: voice: Further enhancements for multi-lingual voice generation

* configure: allow use of full tts engine names when making selection
* voice.pl: fixes for espeak-ng
* build.pm: Add a list of "standard" voices for tooling use

The latter will be used by the nightly builder infrastructure to determine what voices to generate.
tools/builds.pm [diff]
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-07-11 185d2bbb6a: voice: More voice generation fixes:

* espeak vs espeak-ng (prefer the latter!)
* voicepool was busted for most non-english strings
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-07-11 938d820355: voices: Add tts language mappings for the top 19 languages

festival: english and spanish only gtts: all but nederlands espeak: all (need espeak-ng for czech, greek, and japanese)
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-07-10 711bff47b7: voice: Enhance 'espeak' to automatically pick the language + voice

Most of the 'perfect' or 'good' translations are covered.

Also, don't override user-specified voice
tools/voice.pl [diff]
Solomon Peachy
2020-07-10 c914b148e5: build: Get rid of svn vestiges from version script

Set 10-character git shortrevs for consistency with modern git defaults
tools/version.sh [diff]
Solomon Peachy
2020-07-09 17a367e0c4: FS #12966: display '+' for positive replaygain values
lib/rbcodec/metadata/replaygain.c [diff]
Solomon Peachy
2020-07-09 77f8c9c9f1: Update to allow the Apple Radio Remote to function on iPod Video 5G.

This was broken when the major update to iap was comitted. ia-lingo7.c created and various iap related files modified. On 4G, 6G and Nano 1/2Gen iPods the remote will function even though the radio won't. Tested on 4G Greyscale, 4G Color, 4G Photo, 4G Mini 1st Gen, 4G Mini 2Gen, Nano 1G, Nano 2G, Video 5G, Video 5.5G
apps/SOURCES [diff]
apps/iap/iap-core.c [diff]
apps/iap/iap-core.h [diff]
apps/iap/iap-lingo.h [diff]
apps/iap/iap-lingo0.c [diff]
apps/iap/iap-lingo1.c [diff]
apps/iap/iap-lingo2.c [diff]
apps/iap/iap-lingo3.c [diff]
apps/iap/iap-lingo4.c [diff]
apps/iap/iap-lingo7.c [new]
firmware/drivers/tuner/ipod_remote_tuner.c [diff]
LiveboxAndy
2020-07-09 dcdf2713f6: Python3-related fixes in some of our scripts
.gitignore [diff]
tools/talkclips.py [diff]
utils/analysis/objdiff.py [diff]
utils/common/gitscraper.py [diff]
Solomon Peachy
2020-07-09 278a76b3a6: add some documentation in usb.h and usb_drv.h
firmware/export/usb.h [diff]
firmware/export/usb_drv.h [diff]
Amaury Pouly
2020-07-09 b64a286a81: voice file not loading
>
> I ran into an issue where my voice file would only load if I changed language while playing music. It seems to happen because when no other file is open, file.c alloc_filestr returns the first free handle which is 0. In talk.c this is treated as an invalid handle, so the voice file is not loaded.
apps/talk.c [diff]
Peter Sealy
2020-07-09 65a91333ef: FS #12082: Add Tuner support to the Nano2G (Bertrik Sikken)

(The serial portions of the patch were already present, this just pulls in the tuner enablements)
firmware/export/config/ipodnano2g.h [diff]
firmware/target/arm/s5l8700/adc-target.h [diff]
Solomon Peachy
2020-07-09 5d8a1a305d: voice: Fix some perl warnings

(got lost in the output during my test runs)
tools/voice.pl [diff]
Solomon Peachy
2020-07-08 2c3399537c: voice: Add support for Google Translate's speech synthesizer

Uses the 'gtts-cli' command line client. Supports a wide variety of languages, including all "Complete" and "Good" Rockbox translations.

Additional changes:

* voice synth script can accept pre-encoded mp3 files
* Move language->synth options mapping into the voice script
* Additional cleanups
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-07-08 5e98eba8ab: FS #13211: Updated Serbian Translation (Boris Kovačević)
apps/lang/srpski.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-07-08 e9a51ae28b: Fix build errors introduced in a2fbccf
apps/playback.c [diff]
Solomon Peachy
2020-07-08 a2fbccf194: playback: Nothing should call ata_spinup_time() directly
apps/playback.c [diff]
Solomon Peachy
2020-07-08 c79f658125: ATA: In picking PIO modes, word 64 is only valid if word 53 bit 1 is set.
firmware/drivers/ata.c [diff]
Solomon Peachy
2020-07-07 4dcd1a9ed8: puzzles: load cached fonts unconditionally

This works around an odd issue in Mines involving the zoom feature. The chain of events leading to it is rather convoluted:

1. No save game is found, so no fonts are loaded from disk. 2. A new game is started. 3. The user selects the "Zoom" option. 4. The allocation of the zoom framebuffer causes the malloc code to grab the audiobuffer. This causes all further font_load() calls to FAIL, due to buflib allocations no longer working. 5. The user goes back to the normal view and uncovers a square. 6. Font loading fails, causing the drawing code to fall back to the system font. 7. An unrelated bug (not yet tracked down) causes font_get(FONT_UI) to return a different font. 8. font_getstringsize() returns the right size of the "wrong" font, leading to centering issues upon rb_draw_text().

The real solution to this would be to fix font_get(), but this fix should prevent the issue from happening if Mines has been run and saved at least once before.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-07-07 c0276c8352: yp-r1: Fix some of the simulator build issues.
firmware/export/config/samsungypr1.h [diff]
Solomon Peachy
2020-07-07 7381e8bd4d: yp-r0: Silence a build warning in simulator build.
firmware/target/hosted/kernel-unix.c [diff]
Solomon Peachy
2020-07-07 92a529b4d1: Samsung YP-R1: fix OF boot shortcut

ypr1 target should switch back to OF by pressing volume down, since volume up is already mapped to the early/safe mode.
utils/ypr0tools/rockbox.sh [diff]
Lorenzo Miori
2020-07-07 2dd6633d71: ypr0 - ypr1: dynamically move rockbox executable

This trivial patch wants to exploit /tmp filesystem to place Rockbox executable. Why that? It will be then possible to easily unlock & umount the storage partition, in order to provide Rockbox itself a mean for RAW storage access. In turn, this will allow a Rockbox-handled USB Mass Storage support, as well as other goodies (storage info is one I can think of).

It takes way less than a second so it doesn't hurt boot time. Moreover, YPR0/YPR1 targets have plenty (64MB) of RAM, so the humble half meg executable won't hurt at all.
utils/ypr0tools/rockbox.sh [diff]
Lorenzo Miori
2020-07-07 3016d74c5a: Samsung YP-R0: remove deprecated kernel module

This patch removes the deprecated kernel module to manage the fm-radio chip on the ypr0 target. http://gerrit.rockbox.org/r/#/c/1594/ implements the interface to the i2c bus by using the i2c-dev kernel driver, no need for additional complexity.
utils/ypr0tools/files/r0/lib/modules/si4709.ko [deleted]
utils/ypr0tools/rockbox.sh [diff]
utils/ypr0tools/si4709.7z [deleted]
Lorenzo Miori
2020-07-07 03e6cbec8f: Samsung YP-R0/YP-R1: use Linux i2c-dev for radio chip access

Linux offers the high-level i2c-dev driver to directly access the i2c bus(ses) on the system. This system device is used to get rid of the (rather silly) radio chip kernel module for ypr0 target and correctly enables radio access also for the ypr1 target. fm-radio chip is located on i2c-0 bus on the ypr0 target while it is located on i2c-1 bus on the ypr1 target. Power-up (RST) pin is also handled for both targets, which is wired to another GPIO of the i.MX 37 platform. Additionally, this patch simplifies the RDS low-level handling by exploiting the Si4709 debug interface which comes with a mutex protection as free bonus.
firmware/target/hosted/samsungypr/radio-ypr.c [diff]
firmware/target/hosted/samsungypr/radio-ypr.h [diff]
firmware/target/hosted/samsungypr/si4709.h [deleted]
firmware/target/hosted/samsungypr/ypr0/i2c-target.h [new]
firmware/target/hosted/samsungypr/ypr1/i2c-target.h [new]
Lorenzo Miori
2020-07-07 b1c72afd4d: Samsung YP-R0: fix simulator build

Protect source code files which are not meant to be built on simulator builds.
firmware/SOURCES [diff]
Lorenzo Miori
2020-07-07 8fc5e33ae1: FS #9788: Include timestamp in logf filename (Yoshihisa Uchida)

For example, logf_202007071157.txt
apps/logfdisp.c [diff]
Solomon Peachy
2020-07-07 52325a7c01: docs: Get rid of the long-obsolete KNOWN_ISSUES file
docs/KNOWN_ISSUES [deleted]
Solomon Peachy
2020-07-07 5094aaa4d4: puzzles: Follow cursor in zoom mode and general code cleanup.

Frontends now have a way to retrieve the backend cursor position with some changes I've submitted upstream. With this information, we can now follow the cursor around in "interaction mode" while zoomed in, eliminating (most) need for mode switching.

Also does some cleanup of the frontend code.
apps/plugins/puzzles/rockbox.c [diff]
apps/plugins/puzzles/src/blackbox.c [diff]
apps/plugins/puzzles/src/bridges.c [diff]
apps/plugins/puzzles/src/cube.c [diff]
apps/plugins/puzzles/src/devel.but [diff]
apps/plugins/puzzles/src/dominosa.c [diff]
apps/plugins/puzzles/src/fifteen.c [diff]
apps/plugins/puzzles/src/filling.c [diff]
apps/plugins/puzzles/src/flip.c [diff]
apps/plugins/puzzles/src/flood.c [diff]
apps/plugins/puzzles/src/galaxies.c [diff]
apps/plugins/puzzles/src/guess.c [diff]
apps/plugins/puzzles/src/inertia.c [diff]
apps/plugins/puzzles/src/keen.c [diff]
apps/plugins/puzzles/src/lightup.c [diff]
apps/plugins/puzzles/src/loopy.c [diff]
apps/plugins/puzzles/src/magnets.c [diff]
apps/plugins/puzzles/src/map.c [diff]
apps/plugins/puzzles/src/midend.c [diff]
apps/plugins/puzzles/src/mines.c [diff]
apps/plugins/puzzles/src/net.c [diff]
apps/plugins/puzzles/src/netslide.c [diff]
apps/plugins/puzzles/src/nullgame.c [diff]
apps/plugins/puzzles/src/palisade.c [diff]
apps/plugins/puzzles/src/pattern.c [diff]
apps/plugins/puzzles/src/pearl.c [diff]
apps/plugins/puzzles/src/pegs.c [diff]
apps/plugins/puzzles/src/puzzles.h [diff]
apps/plugins/puzzles/src/range.c [diff]
apps/plugins/puzzles/src/rect.c [diff]
...and 18 more files.
Franklin Wei
2020-07-07 443ad25e75: plugin windows_lnk: fix missing return-on-error
(found by peachy & clang's static analyzer)
apps/plugins/windows_lnk.c [diff]
Sebastian Leonhardt
2020-07-06 4fa57d7661: sdl: Get rid of duplicate instantiation of 'button_queue'

(Caused a build failure under GCC10's stricter '-fno-common' default)
firmware/target/hosted/sdl/button-sdl.c [diff]
Solomon Peachy
2020-07-06 5b8198d147: 2048: use larger bitmaps on 96x96 screens (e.g. Clip Zip)

Apparently the smallest bitmaps are hard to see.
apps/plugins/bitmaps/native/SOURCES [diff]
Franklin Wei
2020-07-05 2d57bfba36: portalplayer: Fix three set-but-not-used warnings.

(They show up when building with gcc494)
apps/iap/iap-lingo4.c [diff]
firmware/target/arm/pp/audio-pp.c [diff]
firmware/target/arm/pp/uart-pp.c [diff]
Solomon Peachy
2020-07-05 495c8e2a69: imx31: Fix regression in bootloader caused by cd9906
firmware/target/arm/imx31/boot.lds [diff]
Solomon Peachy
2020-07-05 8105d7659f: imx233: Fix bootloader link regression caused by cd9906
firmware/target/arm/imx233/boot.lds [diff]
Solomon Peachy
2020-07-05 cd9906847b: arm: Fix PortalPlayer linker scripts with binutils 2.21+

For reasons that are still unclear, the 'ncbss' region was overlapping the "audiobuffer" when linked with 2.21, but okay with 2.20.

Fixed it by making the audiobuffer explcitly use the current position instead of relying on it being implicit.

With this change, portalplayer-based targets generate working binaries when built with binutils 2.21 or newer.

This bug also theoretically affects imx233/imx31 targets as they also have NOCACHE_BASE games in their linker scripts, but I lack access to one to test with.
firmware/target/arm/imx233/app.lds [diff]
firmware/target/arm/imx233/boot.lds [diff]
firmware/target/arm/imx31/app.lds [diff]
firmware/target/arm/imx31/boot.lds [diff]
firmware/target/arm/pp/app-pp.lds [diff]
Solomon Peachy
2020-07-03 905e19905b: ARM: Rejigger the asm corelock functions

This appears to solve _some_ of the crashes experienced when using gcc494 on the multicore PP targets (eg most older ipods).

(With this change, the asm vs plain-C versions behave identically)

corelock_lock(), corelock_unlock(), and corelock_trylock() were declared with the 'naked' attribute. However, naked functions are only allowed to have 'Basic Asm' components, and we used some extended asm, but without declaring clobbered registers, making assumptions about register arguments, and also directly returned to the caller via asm code.

This is what the GCC docs have to say about this stuff:

"While using extended asm or a mixture of basic asm and C code may appear to work, they cannot be depended upon to work reliably and are not supported."
firmware/asm/arm/corelock.c [diff]
Solomon Peachy
2020-07-03 9cf2492407: Fix logf warnings in more codecs
lib/rbcodec/codecs/aac_bsf.c [diff]
lib/rbcodec/codecs/opus.c [diff]
Moshe Piekarski
2020-07-02 08c6f9104c: build: add '-fcommon' to the toolchain build flags.

This allows binutils 2.16 to build successfully with GCC10.
tools/rockboxdev.sh [diff]
Solomon Peachy
2020-07-02 051eb3ea31: puzzles: enhancements to mouse mode, zoom feature

- zoom now remembers position between activations (but not when exiting the plugin)
- key repeat enabled when panning
- moving mouse out of frame while zoomed will pan
- mouse can be moved diagonally
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-07-02 385a917e20: FS #13208: More Polish language improvements (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-06-30 c1485455ea: imageviewer: Fix potential null pointer dereference

(caught by clang-analyzer)
apps/plugins/imageviewer/gif/gif_decoder.c [diff]
Solomon Peachy
2020-06-30 7fb438b06c: Try mounting as "superfloppy" first

This allows for a superfloppy that has MBR-like data in the BPB. this solves FS #12294 while allowing arbitrary partition types.
firmware/common/disk.c [diff]
Moshe Piekarski
2020-06-30 0d24a7176e: Also remove the fat_partition_types array.

If we aren't going to check for the partition type, we don't need the array of known FAT partition types.

Original Author: Torne Wuff
firmware/common/disk.c [diff]
Moshe Piekarski
2020-06-30 a2b8204718: Allow any partition type, not just known FAT types.

Instead of only mounting partitions with a FAT partition type, try any partition that isn't type 0 (unallocated) or 5 (extended). This makes it easier to reformat SDXC cards which have the exFAT partition type, and also brings us in line with pretty much every other OS at this point. Anything with a valid-looking FAT superblock will get mounted.

original author: Torne Wuff
firmware/common/disk.c [diff]
Moshe Piekarski
2020-06-30 3cfd129cd9: mac: Fix build rule for dmg.

Also add the version string to the folder used for creating the dmg, since that will appear when mounting it.
rbutil/libtools.make [diff]
Dominik Riebeling
2020-06-30 82716bbe20: rbutil: Fix filename for additional rule to create dmg image on macOS. rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-06-30 08d8b6472c: fractals: Clean up ARM asm

No functional change, just using modern syntax.
apps/plugins/fractals/cpu_arm.h [diff]
Solomon Peachy
2020-06-30 aec381c4c6: database: Fix makefile syntax for GNU Make 4.3+
tools/database/database.make [diff]
Solomon Peachy
2020-06-30 f26cf6a3ec: Fixed system state information loss when it is saved in file
apps/settings.c [diff]
Igor B. Poretsky
2020-06-28 553f218026: Update American English translation
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-06-28 ef2c8040db: FS #13207: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-06-28 ca673d7e9f: Partially revert the last commit.

The \if->\If replacement is a bit premature for texlive-2019, apparently.
manual/appendix/config_file_options.tex [diff]
manual/frontpage/frontpage.tex [diff]
manual/getting_started/main.tex [diff]
manual/intro/main.tex [diff]
manual/preamble.tex [diff]
manual/rockbox_interface/main.tex [diff]
Franklin Wei
2020-06-28 140bf66b90: fix a few manual warnings
manual/appendix/config_file_options.tex [diff]
manual/frontpage/frontpage.tex [diff]
manual/getting_started/main.tex [diff]
manual/intro/main.tex [diff]
manual/plugins/images/ss-resistor-240x320x16.png [new]
manual/preamble.tex [diff]
manual/rockbox_interface/main.tex [diff]
Moshe Piekarski
2020-06-28 3e7ab2a284: Fix logf build warnings in speex codec
lib/rbcodec/codecs/speex.c [diff]
Moshe Piekarski
2020-06-28 2e0a5969b6: puzzles: clean up and document some voodoo
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-28 7da8137bdb: puzzles: fix crash when loading a corrupt save

I misread the documentation here, thinking that the pointer would be set to
*point to* a null byte, not to a null pointer itself. [1]

[1]: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/devel/midend.html#identify-game
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-28 c02a9c5ab3: puzzles: refuse to draw non-ASCII characters

We had some issues in Keen with the arithmetic operators not being rendered properly. This is still a kludge (we should intelligently search the font) but is still less ugly than the garbage it was drawing before.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-27 4b108896cc: puzzles: replace menu title kludge with more elegant solution

This hack has survived for far too long.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-27 5831801d16: puzzles: disable software poweroff in all puzzles

We have a couple games like Untangle and mouse-mode games in which the software poweroff is very annoying.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-27 a65a341a00: button: allow disabling software poweroff

On some devices, the button driver allows a "software poweroff" by long- pressing a certain key. This behavior is inconvnient when that button needs to be held down for other purposes, such as moving the cursor in rockpaint or sgt-untangle.

This patch allows selectively disabling the software poweroff (enabled by default) from both core and plugin code.
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/helper.c [diff]
apps/plugins/lib/helper.h [diff]
firmware/drivers/button.c [diff]
firmware/export/button.h [diff]
Franklin Wei
2020-06-27 f49442d7b7: puzzles: allow secondary select in Rectangles and Map
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-26 d9e084b530: Pictureflow Whitespace Cleanup
apps/plugins/pictureflow/pictureflow.c [diff]
William Wilgus
2020-06-26 aa4ec918e4: Pictureflow Fixes UniqBuf

rework of the unique name buffer

shares 1/4 of the total buffer
apps/plugins/pictureflow/pictureflow.c [diff]
William Wilgus
2020-06-26 7c291250ef: Revert "Pictureflow Fixes: Sansa C200"

This reverts commit b7f2cc5d6d697aa40d8a568cf573ee100c32b9c4.
apps/plugins/pictureflow/pictureflow.c [diff]
William Wilgus
2020-06-25 25b1e1b8bd: CREDITS: Remove duplicate entry
docs/CREDITS [diff]
Solomon Peachy
2020-06-25 6f0fd91343: Pictureflow Fixes: Sansa C200

Sansa C200 fix
apps/plugins/pictureflow/pictureflow.c [diff]
William Wilgus
2020-06-25 f6448cb440: puzzles: fix numerical chooser while zoomed in

We need to blit the zoom framebuffer to the screen in our chooser loop.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-25 4d52a42e07: docker-rbclient: use CMD instead of ENTRYPOINT

This makes it easier to override from the command line.
tools/docker_rbclient/Dockerfile [diff]
Franklin Wei
2020-06-25 e666a7aea8: puzzles: fix text centering when zooming in

For some reason lcd_getstringsize was occasionally reverting to the system font, rather than the loaded font. This was leading to improper font sizes being reported.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-25 5a45e96f4d: puzzles: update README
apps/plugins/puzzles/README.rockbox [diff]
Franklin Wei
2020-06-25 729d6b0cb7: puzzles: update copyright date
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-25 d75131569c: puzzles: clean up error messages

Expands buffer size, and prints to LOGF.
apps/plugins/puzzles/rbassert.h [diff]
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-25 b67d9e9217: puzzles: fix crashes and odd behavior on load

I can't believe this has gone unnoticed for so long... We need to update the game size upon loading games. Who knew?
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-06-25 48b0ef1cf2: puzzles: resync with upstream

This brings the upstream version to 9aa7b7c (with some of my changes as well).
apps/plugins/puzzles/README.rockbox [diff]
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
apps/plugins/puzzles/help/range.c [diff]
apps/plugins/puzzles/help/rect.c [diff]
apps/plugins/puzzles/help/samegame.c [diff]
apps/plugins/puzzles/help/signpost.c [diff]
apps/plugins/puzzles/help/singles.c [diff]
apps/plugins/puzzles/help/sixteen.c [diff]
...and 30 more files.
Franklin Wei
2020-06-25 dd3a8e0898: puzzles: remove dependency on gamedesc.txt

This should allow syncing with fully clean upstream source trees.
apps/plugins/puzzles/genhelp.sh [diff]
Franklin Wei
2020-06-25 3074ade465: Pictureflow Fixes -- Fixes

The name buffer is using too much ram for some targets will revisit later...

removed extraneous call to set_scrol_lline
apps/plugins/pictureflow/pictureflow.c [diff]
William Wilgus
2020-06-25 e8a3ade0ea: PictureFlow fixes:

- Extra data structure to store artist info.
- Create_album_index modified to perform a different query.
- Added load and save functions to store the data index in HDD.
- Album collisions fixed.
- New config options to perform rescans.
- Extra fields added to lang files: english and spanish.

Update CREDITS
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
docs/CREDITS [diff]
Adrián Tinoco
2020-06-25 ce61be4d59: lua boomshine update to use rockevents library

using rockev for button presses

misc code refactoring, comments

drawing code is now split from game logic

cpu boost for targets that support it

removed quite a few if then statements by using dynamic functions for ball draw, step, hit_check

shows two ways to do OO functions (closure and reference)
apps/plugins/boomshine.lua [diff]
William Wilgus
2020-06-23 4bb467242a: SVG image of the Sony NWZ-A10 and other formats for the manual.
manual/rockbox_interface/images/sonynwza10-front.pdf [new]
manual/rockbox_interface/images/sonynwza10-front.png [new]
manual/rockbox_interface/images/sonynwza10-front.svg [new]
Szymon Dziok
2020-06-23 7bf5675f18: SVG image of the Sony NW-A20 and other formats for the manual.
manual/rockbox_interface/images/sonynwa20-front.pdf [new]
manual/rockbox_interface/images/sonynwa20-front.png [new]
manual/rockbox_interface/images/sonynwa20-front.svg [new]
Szymon Dziok
2020-06-23 df1b3c1d2c: lua RockEv timing fixes

just a few tweaks to the RockEv backend to allow tighter event timing

originally there was a timeout where events would be consolidated prior to running the event thread, this slowed the faster events but it turns out this isn't really a big waster of time The callback from C => lua is a far bigger bottleneck
apps/plugins/lua/rocklib_events.c [diff]
William Wilgus
2020-06-22 59454f93b3: Add support for some native AIFF metadata fields
lib/rbcodec/metadata/aiff.c [diff]
Moshe Piekarski
2020-06-21 7f3142fc5c: rbutil: Fix compiling 32bit Rockbox Utility on 64bit Linux.

Pass the machine options for libs to the c++ compiler as well.
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-06-21 a686dbfaa4: sbtools: Avoid calling pkg-config on each compiler invocation.

Only expand pkg-config calls once by making the compiler flags simply expanded variables. Makes things more predicable and slightly faster.
utils/imxtools/sbtools/Makefile [diff]
Dominik Riebeling
2020-06-20 b2749d0f77: rbutil: Add extra build rule on Linux to create AppImage.

Build the "appimage" target to create an AppImage file from the binary. The needed linuxdeploy tools will be downloaded first.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-06-20 35bdfd5ec5: rbutil: Add simple desktop file for Linux.

To be used by packagers, and eventually AppImage. The logo file referenced is docs/logo/rockbox-clef.svg.
rbutil/rbutilqt/RockboxUtility.desktop [new]
Dominik Riebeling
2020-06-17 a29ddc10ae: Update of the Serbian translation
apps/lang/srpski.lang [diff]
Ivan Pesic
2020-06-15 dfa8fd84b2: FS #13203: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-06-15 32b03d72a9: Minor Polish language update (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-06-13 9b4e6ef7b3: deploy: Support Python3.
utils/common/deploy-rbutil.py [diff]
utils/common/deploy-themeeditor.py [diff]
utils/common/deploy.py [diff]
Dominik Riebeling
2020-06-13 440791105a: deploy: Fix various style issues.

Fix various pylint issues and some python3 compatibility.
utils/common/deploy-rbutil.py [diff]
utils/common/deploy-themeeditor.py [diff]
utils/common/deploy.py [diff]
utils/common/gitscraper.py [diff]
utils/common/tarball.py [diff]
Dominik Riebeling
2020-06-13 aefbc13e19: deploy: Add missing Windows system libraries to known list.

Building with mxe failed due to the toolchain (and Qt5) introducing dependencies to system libraries we don't know about. Commit 3083abeb95 thus ignored the actual problem. Revert that and instead add the missing system libraries to the list of known libraries.
utils/common/deploy.py [diff]
Dominik Riebeling
2020-06-12 504f488cce: misc: strip 'x' bit from some UIsim stuff
uisimulator/bitmaps/UI-sansaclip.bmp [diff]
uisimulator/bitmaps/UI-sansaclipplus.bmp [diff]
uisimulator/bitmaps/UI-sansaclipv2.bmp [diff]
uisimulator/buttonmap/sansa-clip.c [diff]
Solomon Peachy
2020-06-12 58cb467583: xduoox3ii: Add UI Simulator bitmap, keymap, and fix offsets.
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-xduoox3ii.bmp [new]
uisimulator/buttonmap/SOURCES [diff]
uisimulator/buttonmap/xduoo-x3ii.c [new]
Solomon Peachy
2020-06-07 fa93391600: Update CREDITS.
docs/CREDITS [diff]
Solomon Peachy
2020-06-07 ff665a26d6: mi4: Correct a build warning/error that pops up on stricter hosts
tools/mi4.c [diff]
Solomon Peachy
2020-06-07 2434b6ca25: misc: Remove all 'twiki' references in favor of up-to-date 'wiki' links.

(This migration happened over a decade ago!)
docs/UISIMULATOR [diff]
firmware/export/config/iriverh100.h [diff]
firmware/export/config/iriverh120.h [diff]
manual/getting_started/installation.tex [diff]
rbutil/ipodpatcher/main.c [diff]
rbutil/sansapatcher/main.c [diff]
tools/fwpatcher/iriver.c [diff]
tools/iriver.c [diff]
tools/songdb.pl [diff]
tools/voicefont.c [diff]
tools/voicefont.h [diff]
tools/wavtrim.c [diff]
tools/wavtrim.h [diff]
utils/rockbox_api/index.tpl [diff]
utils/rockbox_api/section.tpl [diff]
Solomon Peachy
2020-06-01 e4ee5980c6: lua add _fullpath and argument parsing

WIP for passing arguments to lua scripts

args are recognized by adding ?arg to the end of the script path The easiest way to do this currently is to use the function rb.restart_lua

local sfile = rawget(_G, "_fullpath") or "" local sArgs = rawget(_G, "_arguments")

if not sArgs then rb.restart_lua(sfile .. "?my arguments") else rb.splash(1000, sfile .. "?" .. sArgs) end

I'd eventually like to figure out a sensible way to do this from a shortcut / quick list
apps/plugins/lua/rocklua.c [diff]
William Wilgus
2020-05-27 fba4df5d6d: nwztools/scsitool: add command to write NVP
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-05-24 3bdb96aa02: Radio: Say current frequency or preset when pausing
apps/radio/radio.c [diff]
Igor B. Poretsky
2020-05-24 ff4eb4ed7f: Ukrainian language update


Ukrainian language update
apps/lang/ukrainian.lang [diff]
Kyryljan_Serhij
2020-05-24 1224919f3a: Comment details, typos
apps/main.c [diff]
apps/misc.c [diff]
firmware/powermgmt.c [diff]
Sylvain Saubier
2020-05-24 0769b34a23: fix configure script failing on gcc version numbers

There were two problems on my system:
* MinGW-gcc returns version "7.3-win32" => the "-win32"-part must be stripped off
* gcc -dumpversion returns only the major version number => use both -dumpfullversion and -dumpversion (in this order) as described here: https://stackoverflow.com/questions/45168516/gcc-7-1-1-on-fedora-26-dumpversion-now-only-includes-major-version-by-default
tools/configure [diff]
Sebastian Leonhardt
2020-05-24 2eb15354b7: fix plugin test_boost not properly unboosting
apps/plugins/test_boost.c [diff]
Sebastian Leonhardt
2020-05-24 ea9ed2f9e8: cowond2: Disable internal NAND storage; use only the SD card.

This allows the player to be usable.

Slightly adapted from:

https://forums.rockbox.org/index.php/topic,10164.msg245357.html#msg245357
firmware/export/config/cowond2.h [diff]
manual/intro/main.tex [diff]
Solomon Peachy
2020-05-23 b935475c58: Manual fix multiboot section
manual/advanced_topics/main.tex [diff]
William Wilgus
2020-05-23 326b7a5c0c: Updated 8x8 tango icons

committed on behalf of Aurélien Coudurier
docs/CREDITS [diff]
icons/tango_icons.8x8.bmp [diff]
William Wilgus
2020-05-23 2244305335: Sansa Clip+ Clip V1, V2 updated simulator images

Submitted on behalf of user CH23

https://imgur.com/a/L5sOj
uisimulator/bitmaps/UI-sansaclip.bmp [diff]
uisimulator/bitmaps/UI-sansaclipplus.bmp [diff]
uisimulator/bitmaps/UI-sansaclipv2.bmp [diff]
uisimulator/buttonmap/sansa-clip.c [diff]
William Wilgus
2020-05-23 a8ae936f8c: Sansa AMS add Minimum Clocks for I2c IDE SDSLOT SSP

This patch doesn't implement them just defines them
firmware/target/arm/as3525/clock-target.h [diff]
William Wilgus
2020-05-23 4f49d21992: Sansa AMS set I2C properly
firmware/target/arm/as3525/ascodec-as3525.c [diff]
William Wilgus
2020-05-23 6ed38c89ae: Sansa Clip+ set lcd SSP properly
firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c [diff]
William Wilgus
2020-05-23 084aa9c1fd: Sansa ClipZip set lcd SSP properly
firmware/target/arm/as3525/sansa-clipzip/lcd-clipzip.c [diff]
William Wilgus
2020-05-22 ce29bec89b: talk.h Add manual entry
manual/configure_rockbox/voice.tex [diff]
William Wilgus
2020-05-22 dcf8154c32: talk.h add failed to load splash
apps/debug_menu.c [diff]
apps/talk.c [diff]
William Wilgus
2020-05-22 74f358cf8b: talk.h add init status to debug menu

g#2272 adds checks for incompatible version & proper number of clips

Currently incompatible talk files will logf when failure to load occurs

Adds a message to Debug > Talk engine stats
'Talk Status: OK'
'Talk Status: ERR Incompatible voice file'
'Talk Status: ERR (#)' -- OOM, Alloc Error
apps/debug_menu.c [diff]
apps/talk.c [diff]
apps/talk.h [diff]
William Wilgus
2020-05-20 bbe8c73bb8: builds: Mark the Archos Recorder v1 as officially retired.

The last successful build was 87c6df9-131213, shortly after the 3.13 relase, but even before that, it had been problematic due to severe firmware image size limitations (200KB) of the hardware bootrom.

(Current git code genrates an image about 220KB)
tools/builds.pm [diff]
Solomon Peachy
2020-05-20 776ceae119: Playlist Viewer Fix FS #13197

While playing a track the playlist viewer may not have a big enough temporary buffer to load and display
'max_files_in_playlist' entries

This patch attempts to load as many entries as possible

If tracks were already playing (dynamic playlist or otherwise) The original code only gave half the plugin buffer to a playlist loaded from file

On some targets half the plugin buffer is not enough to load all entries…

Now we attempt to get as many entries possible while at least leaving a small buffer (MAX_PATH) for the name buffer
apps/playlist.c [diff]
apps/playlist.h [diff]
apps/playlist_viewer.c [diff]
William Wilgus
2020-05-19 0c3380f9ef: builds: Archos recorder v1 hasn't seen a release since 3.13 (in 2013)

Fix this, so the download metadata will do the right thing.
tools/builds.pm [diff]
Solomon Peachy
2020-05-18 9e674c712f: FS #13195: rocker: Improved root menu keymap (Howard Richardson)

This patch addresses a keymapping anomaly on the Rocker. Currently the Power button when pressed inside a sub-menu will return you to the root of the menu. However when pressed again it returns you to the sub-menu you were in previously. This is at odds with how other ports work and makes it difficult to return to the WPS without manually selecting it on the root menu.

This patch copies the behaviour of the home button on the Sansa Clip+. Pressing it once will exit a sub-menu and bring you back to the root menu. Pressing it again takes you to the WPS. No functionality is lost or covered up by making this reassignment.
apps/keymaps/keymap-agptekrocker.c [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-05-18 2da6766f75: bookmark: #pragma diagnostic push/pop requires GCC >= 4.6
apps/bookmark.c [diff]
Solomon Peachy
2020-05-18 d9454f11d5: bookmark: Disable -Wformat-truncation around create_bookmark()

GCC 7 and up complain about this false positive when -Wformat-truncation or -D_FORTIFY_SOURCE is turned on.

Primarily affects simulator builds on hosts with strict defaults.
apps/bookmark.c [diff]
Solomon Peachy
2020-05-17 0cee5ba91b: mikmod: Use -Wno-stringop-truncation with GCC >=8

This will silence a false warning/error when -D_FORTIFY_SOURCE is used
apps/plugins/mikmod/mikmod.make [diff]
Solomon Peachy
2020-05-17 d73bfd1a42: pdbox/doom: Use -Wno-stringop-truncation with GCC >=8

This should shut up a lot of the sim build failures
apps/plugins/doom/doom.make [diff]
apps/plugins/pdbox/pdbox.make [diff]
Solomon Peachy
2020-05-17 c75dbaae25: nwztool/scsitool: add brute-forced kas
utils/nwztools/upgtools/upg.c [diff]
Amaury Pouly
2020-05-17 47104e9e51: nwztools/scsitool: add preliminary code to decode SCSI requests

This can be useful to quickly device usb traces
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-05-17 e3532b1667: nwztools/scsitool: fix compile issue with some version of cryptopp
utils/nwztools/upgtools/md5.cpp [diff]
Amaury Pouly
2020-05-17 ae6a49638b: nwztools/scsitool: add more NVP properties

At least newer devices support more NVP properties in a device-independent numbering. Many are supported but I just added two useful ones
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-05-17 f86723716c: nwztools/scsitool: add alternative firmware upgrade command

Newer devices seem to require flags 0x00 where older devices wanted 0x80, now try both variants
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-05-17 1686093e78: nwztools/scsitool: tweak output
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-05-17 93fcd569ab: mkinfo: Use correct binary file for "actual size" on hosted targets
tools/mkinfo.pl [diff]
Solomon Peachy
2020-05-17 c05cd163bc: Add James D. Smith to the CREDITS
docs/CREDITS [diff]
Solomon Peachy
2020-05-12 f0ac5d123f: m66591: Fix out-of-bounds array access

Loop terminator needed a preincrement rather than postincrement, and also used a proper #define instead of a magic number.
firmware/drivers/m66591.c [diff]
Solomon Peachy
2020-05-04 b450707955: skins: Fix buffer overflow in skin_error_format_message()
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
2020-05-03 83d8b25fda: filesystem: don't PIVOT_ROOT for checkps and simulator builds for hiby targets
firmware/target/hosted/filesystem-app.c [diff]
Solomon Peachy
2020-04-26 7256a3f220: Update APEv2 tag capabilities in the manual.
manual/appendix/file_formats.tex [diff]
James D. Smith
2020-04-26 3cc3e600fe: Get APEv2 tag album art format from magic number. Also support bmp artwork.
lib/rbcodec/metadata/ape.c [diff]
James D. Smith
2020-04-19 5751729284: translation from English to Japanese

Signed-off-by: Kei Miyamoto
apps/lang/japanese.lang [diff]
docs/CREDITS [diff]
Kei Miyamoto
2020-04-17 c93666d08e: talk.h make voice files check for proper number of entries on load

In addition to version and target also check id1_max & id2_max for proper length before allowing voice file to be loaded
apps/talk.c [diff]
apps/talk.h [diff]
tools/genlang [diff]
William Wilgus
2020-04-17 4382d3f5ed: ClipZip LCD Corruption Backlight fix

User reported LCD screen corruption via forum in 3.14 and 3.15 turning backlight off and back on seems to fix the issue http://forums.rockbox.org/index.php/topic,53192.0.html
firmware/target/arm/as3525/sansa-clipzip/backlight-clipzip.c [diff]
William Wilgus
2020-04-17 dc7342c164: Fix manual build of the gogearsa9200

(Missing the keymap.tex file, which appears to have never been committed)
manual/platform/gogearsa9200.tex [diff]
Solomon Peachy
2020-04-17 87f54b9745: Alpine CD changer emulation: Fix logic error in detecting non-playing status

cppcheck reported: apps/plugins/alpine_cdc.c:721]: (warning) Logical disjunction always evaluates to true: EXPR != 4 || EXPR != 3.
apps/plugins/alpine_cdc.c [diff]
Thomas Jarosch
2020-04-16 e0d7c7c632: voice: Add support for Mimic TTS engine.

...It generates decent voice files in 1/10th the time of festival.
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-04-15 84624e14f8: bspatch: Add a __cplusplus wrapper in the header so rbutil can use it
rbutil/bspatch/bspatch.h [diff]
Solomon Peachy
2020-04-14 d37ea94f2a: Android: Compile native android bits with armv7-a CPU flags

DX50/DX90 has a Cortex-A9 with NEON, use those specific flags for speed.

Generic Android targets is for v4.4 (API 19) which doesn't support pre-v7 ARM CPUs, so target generic armv7-a with hardfp support.

(This patch includes a rearrangement of the android toolchain helpers to allow target-specific GCCOPTS. Huzzah)
tools/configure [diff]
Solomon Peachy
2020-04-14 2deb7d7a8e: libedemac: ARMv7 asm code is for NEON-equipped processors only
lib/rbcodec/codecs/demac/libdemac/filter.c [diff]
Solomon Peachy
2020-04-14 d0787ca030: manual: Force latex to NOT wrap output lines.

Should finally fix the @$%@#$ problem where the buildmaster fails on a wrapped line
manual/Makefile.pdflatex [diff]
Solomon Peachy
2020-04-14 683abd77d2: Fix checkwps build for dx50 & dx90 targets

Their codec headers weren't in the right place.
firmware/export/audiohw.h [diff]
firmware/target/hosted/ibasso/dx50/codec-dx50.h firmware/export/codec-dx50.h [rename]
firmware/target/hosted/ibasso/dx90/codec-dx90.h firmware/export/codec-dx90.h [rename]
Solomon Peachy
2020-04-13 a87c96cd79: checkwps: have the ./buildall.sh script log all build failures.
.gitignore [diff]
tools/checkwps/buildall.sh [diff]
Solomon Peachy
2020-04-13 abac7b2832: manual: One last vestige of the AV300
manual/plugins/sokoban.tex [diff]
Solomon Peachy
2020-04-13 dc3537e1c0: Silence a build warning in the superdom plugin.

Potential uninitialized variable, found by android NDK10 toolchain
apps/plugins/superdom.c [diff]
Solomon Peachy
2020-04-13 46e2528992: av300: Continue cleaning out keymaps.

(A lot of work was done on this thing, for a target that hasn't been compileable at least since we moved to git..)
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/oscilloscope.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/pong.c [diff]
apps/plugins/rockblox.c [diff]
apps/plugins/sliding_puzzle.c [diff]
apps/plugins/snake.c [diff]
apps/plugins/snake2.c [diff]
apps/plugins/sokoban.c [diff]
apps/plugins/solitaire.c [diff]
apps/plugins/spacerocks.c [diff]
apps/plugins/star.c [diff]
apps/plugins/stopwatch.c [diff]
apps/plugins/sudoku/sudoku.h [diff]
apps/plugins/text_viewer/tv_button.h [diff]
apps/plugins/vu_meter.c [diff]
apps/plugins/wormlet.c [diff]
...and 3 more files.
Solomon Peachy
2020-04-13 a820a98361: obsolete: Nuke the very-incomplete Archos AV300 target

It's even missing a config header file. Just shoot it in the head.
apps/SOURCES [diff]
apps/keymaps/keymap-av300.c [deleted]
firmware/export/config.h [diff]
firmware/target/arm/archos/av300/ata-av300.c [deleted]
firmware/target/arm/archos/av300/ata-target.h [deleted]
firmware/target/arm/archos/av300/button-target.h [deleted]
firmware/target/arm/archos/av300/power-av300.c [deleted]
tools/builds.pm [diff]
tools/configure [diff]
uisimulator/buttonmap/SOURCES [diff]
uisimulator/buttonmap/archos-av300.c [deleted]
Solomon Peachy
2020-04-13 cfc02cadcc: android: Fix configure script for "newer" versions of the NDK

The oldest verison of the NDK one can still download today is version 10e from mid-2015, which comes with GCC 4.9, and no longer supports 32-bit hosts.

With this, one can actually compile the iBasso DX50/DX90 targets again, as well as the generic android target, as long as one has the correct SDK platforms (v16 for ibasso, v19 for generic) and SDK tools installed.
android/android.make [diff]
tools/configure [diff]
Solomon Peachy
2020-04-12 b1d7d897d3: rockboxdev: Remove the ability to build the special cy-ng ypr0 toolchain

We don't actually use it any more; let's not confuse folks with it.
tools/rockboxdev.sh [diff]
Solomon Peachy
2020-04-12 3e0a644b5b: build: Fix iHIFI 770c nightly builds. Bad CaPiTaLiZaTiOn.
tools/builds.pm [diff]
Solomon Peachy
2020-04-11 e28d1fe916: SDL: Silence a large number of compile warnings (WIP)

There are some real bugs in here, but we're drowning in warnings.
apps/plugins/sdl/SDL_image/IMG.c [diff]
apps/plugins/sdl/SDL_image/IMG_jpg.c [diff]
apps/plugins/sdl/SDL_image/IMG_png.c [diff]
apps/plugins/sdl/SDL_image/IMG_tif.c [diff]
apps/plugins/sdl/SDL_image/IMG_webp.c [diff]
apps/plugins/sdl/SDL_mixer/dynamic_flac.h [diff]
apps/plugins/sdl/SDL_mixer/dynamic_mod.h [diff]
apps/plugins/sdl/SDL_mixer/dynamic_mp3.h [diff]
apps/plugins/sdl/SDL_mixer/dynamic_ogg.h [diff]
apps/plugins/sdl/SDL_mixer/music.c [diff]
apps/plugins/sdl/SDL_mixer/timidity/config.h [diff]
apps/plugins/sdl/SDL_mixer/timidity/playmidi.c [diff]
apps/plugins/sdl/SDL_mixer/timidity/readmidi.c [diff]
apps/plugins/sdl/SDL_mixer/timidity/timidity.c [diff]
apps/plugins/sdl/SDL_mixer/wavestream.c [diff]
apps/plugins/sdl/include/SDL_config_rockbox.h [diff]
apps/plugins/sdl/main.c [diff]
apps/plugins/sdl/progs/duke3d/Engine/src/display.c [diff]
apps/plugins/sdl/progs/duke3d/Engine/src/display.h [diff]
apps/plugins/sdl/progs/duke3d/Engine/src/network.h [diff]
apps/plugins/sdl/progs/duke3d/Engine/src/rockbox_compat.h [diff]
apps/plugins/sdl/progs/duke3d/Game/src/audiolib/mvreverb.c [diff]
apps/plugins/sdl/progs/duke3d/Game/src/console.c [diff]
apps/plugins/sdl/progs/duke3d/Game/src/console.h [diff]
apps/plugins/sdl/progs/duke3d/Game/src/cvar_defs.h [diff]
apps/plugins/sdl/progs/duke3d/Game/src/cvars.h [diff]
apps/plugins/sdl/progs/duke3d/Game/src/global.h [diff]
apps/plugins/sdl/progs/duke3d/Game/src/types.h [diff]
apps/plugins/sdl/progs/duke3d/Game/src/util_lib.h [diff]
apps/plugins/sdl/progs/quake/cl_input.c [diff]
...and 14 more files.
Solomon Peachy
2020-04-11 2ad6c3438e: RTC: Add stub support RTC alarms on hosted targets

No targets are enabled, but the hosted Hiby-based targets could have this feature enabled if they weren't so buggy:

* No generic way to determine wakeup reason under Linux
* No generic way to be asynchronously notified if the alarm is triggered when we're already awake
* Shutting down may clobber RTC wakeup (driver/etc dependent)
* Rocker's kernel's RTC driver has some 24h clock and timezone-related issues.

So, the infrastructure is arguably useful, but the only applicable hardware I have is pathologically brain-dead.
firmware/export/config/agptekrocker.h [diff]
firmware/export/config/xduoox20.h [diff]
firmware/export/config/xduoox3ii.h [diff]
Solomon Peachy
2020-04-11 6984a7ce15: RTC: Add support RTC alarms on hosted targets

Only AGPTeck Rocker is enabled for now, and it doesn't work properly:

* No generic way to determine wakeup reason under Linux
* No generic way to be asynchronously notified if the alarm is triggered when we're already awake
* Shutting down may clobber RTC wakeup (driver/etc dependent)

And finally:

* AGPTek kernel's RTC driver has some 24h clock and some timezone-related issues.

So, the infrastructure is arguably useful, but the only applicable hardware I have is pathologically brain-dead.
firmware/export/config/agptekrocker.h [diff]
firmware/target/hosted/rtc.c [diff]
Solomon Peachy
2020-04-11 02d347bc6f: lang: Clean up a warning in the Norweigan translation
apps/lang/norsk.lang [diff]
Solomon Peachy
2020-04-11 751185c039: FS13189: Norweigan Language Update (Alexander Drammen)
apps/lang/norsk.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-04-10 c9ec110b6a: voice: Add corrections for 'DAC' and 'ADC'
tools/voice-corrections.txt [diff]
Solomon Peachy
2020-04-10 4e32234a1f: lang: Synchronize English(US)
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-04-10 91739d124e: enable keylock for Sony NWZ-E370/E380

enable keylock in WPS and FMS by simultaniously pressing POWER and BACK. It was necessary to change the ACTION_FM_EXIT from BUTTON_BACK-button-press-event to BUTTON_BACK|BUTTON_REL-event and BUTTON_BACK|BUTTON_REPEAT-event to easily be able to press BUTTON_POWER|BUTTON_BACK without accidentally triggering ACTION_FM_EXIT.

also rebase to current master and add myself to docs/CREDITS
apps/keymaps/keymap-nwz.c [diff]
docs/CREDITS [diff]
Johannes König
2020-04-09 8d2d6f4ca5: rbutil: Add bspatch and libbzip2

This is to enable binary patching of Hiby-based firmware files

Note that noting in rbutil uses this yet.
.gitignore [diff]
docs/CREDITS [diff]
docs/LICENSES [diff]
rbutil/bspatch/Makefile [new]
rbutil/bspatch/bspatch.c [new]
rbutil/bspatch/bspatch.h [new]
rbutil/bspatch/main.c [new]
rbutil/bzip2/Makefile [new]
rbutil/bzip2/blocksort.c [new]
rbutil/bzip2/bzlib.c [new]
rbutil/bzip2/bzlib.h [new]
rbutil/bzip2/bzlib_private.h [new]
rbutil/bzip2/compress.c [new]
rbutil/bzip2/crctable.c [new]
rbutil/bzip2/decompress.c [new]
rbutil/bzip2/huffman.c [new]
rbutil/bzip2/randtable.c [new]
rbutil/libtools.make [diff]
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
Solomon Peachy
2020-04-08 5cdfe30e79: hiby: Use HAVE_LCD_ENABLE instead of HAVE_LCD_SLEEP
firmware/target/hosted/lcd-linuxfb.c [diff]
Solomon Peachy
2020-04-08 53b93ea6a6: hiby: Refactor X3ii/X20 and Rocker LCD code

Once some missing power optimization stuff was added to the X3ii code, they were completely identical.
firmware/SOURCES [diff]
firmware/target/hosted/agptek/lcd-agptek.c firmware/target/hosted/lcd-linuxfb.c [rename]
firmware/target/hosted/xduoo/lcd-xduoo.c [deleted]
Solomon Peachy
2020-04-08 6fcd69a365: hiby_patcher: Mangle the version string in the update payload if necessary
tools/hiby_patcher.pl [diff]
Solomon Peachy
2020-04-07 61847fbf13: build: Update builds.pm with xDuoo X3ii & X20

Better document the file too
tools/builds.pm [diff]
Solomon Peachy
2020-04-06 63bf8e4acd: Consider sector size when checking cluster size

On file systems with 2048 bytes per cluster, the bpb_secperclus value gets multiplied by 4 when the meta data is loaded. This patch changes the sanity check to consider (and reverse) that multiplication before checking the cluster size.

Signed-off-by: Stefan Ott
firmware/drivers/fat.c [diff]
Stefan Ott
2020-04-06 180cef835b: xDuoo X3II and X20 port

Provided by Roman Stolyarov Integration, Refactoring, and Upstreaming by Solomon Peachy

X3II confirmed working by forum tester, X20 is nearly identical.

This includes bootloader, main firmware, and the flash image patcher.

Eventual Todo:

* Further refactor AGPTek Rocker & xduoo hiby bootloaders
* Further refactor AGPTek Rocker & xduoo hosted platform code
apps/SOURCES [diff]
apps/bitmaps/native/SOURCES [diff]
apps/bitmaps/native/hibyicon.130x130x16.bmp [new]
apps/keymaps/keymap-xduoox20.c [new]
apps/keymaps/keymap-xduoox3ii.c [new]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fft/fft.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
...and 58 more files.
Marcin Bukat
2020-04-06 ced3a20aac: Remove unused score tracker from Pacbox AI
apps/plugins/pacbox/pacbox.c [diff]
Moshe Piekarski
2020-04-05 a463f68abb: checkwps: #undef CONFIG_STORAGE_MULTI for __PCTOOL__ builds

Fixes checkwps build on xDuooX3 (only target that uses it!)
firmware/export/config.h [diff]
Solomon Peachy
2020-04-05 b0e257ccc6: simulator: Add a stub for lineout_inserted()
uisimulator/common/stubs.c [diff]
Solomon Peachy
2020-04-05 87a40552fb: simulator: Fix sim build for sdl/hosted targets
firmware/target/hosted/sdl/button-sdl.c [diff]
Solomon Peachy
2020-04-05 0efa73f0ec: tools: Add a tool that patches Hiby_player-derived firmware images.

Confirmed to work on the AGPTek Rocker and xDuoo X3ii targets!
tools/hiby_patcher.pl [new]
Solomon Peachy
2020-04-05 ee3894f285: threads: Move stack_size to end of struct thread (followup to f19ffe2)

Makes the structure more compact.

Fixes the build failure on the m68k M5 target
firmware/kernel/thread-internal.h [diff]
Solomon Peachy
2020-04-05 6087c1caa5: Fix red introduced in 191ffe2.

Some leftover code from upstream was triggered by the __linux__ macro on hosted targets.
apps/plugins/sdl/progs/duke3d/Game/src/game.c [diff]
Franklin Wei
2020-04-05 c0ebbd4ccb: jpeg: Fix an overflow when decoding images for non-color targets.

(Warning raised by GCC 4.9.4 -Os)
apps/recorder/jpeg_load.c [diff]
Solomon Peachy
2020-04-05 191ffe272b: Threading: Use 'size_t' for stack size in core threading code

For some reason it was defined as 'unsigned short' but all arguments to the threading functions and other structs used size_t. The SDL plugin tried to allocate a 2MB stack and this resulted in much badness.

This is a _very_ old bug, and might be responsible for countless subtle bugs!
firmware/kernel/thread-internal.h [diff]
Solomon Peachy
2020-04-05 3ee2fdb7c0: Update .gitignore to exclude a bunch of rbutil detritus
.gitignore [diff]
Solomon Peachy
2020-04-04 0bf0d47072: Enable SDL for native MIPS and hosted targets.
apps/plugins/SUBDIRS [diff]
Solomon Peachy
2020-04-04 5bd86eb4b4: pp502x: Don't fill the cache starting from address 0x0

The pp502x cache init code tries to flush the cache by reading a block of DRAM. Change the starting point from 0x0 to 0x1000 so the compiler doesn't helpfully insert an undefined instruction to deliberately crash the target.

(This behavior is intentional on the part of GCC, and was triggered by using -Os with my experimental 4.9.4 toolchain)
firmware/target/arm/pp/system-pp502x.c [diff]
Solomon Peachy
2020-04-04 00c0d2012f: rockboxdev: Store toolchain patches in-tree, instead of downloading them

This frees us from having to keep the web site in sync.

Note that only currently-referenced patches were kept.
tools/rockboxdev.sh [diff]
tools/toolchain-patches/binutils-2.16.1-texinfo-fix.diff [new]
tools/toolchain-patches/binutils-2.20.1-ld-thumb-interwork-long-call.diff [new]
tools/toolchain-patches/binutils-2.20.1-texinfo-fix.diff [new]
tools/toolchain-patches/crosstool-ng-1.13.2.diff [new]
tools/toolchain-patches/gcc-4.0.3-rockbox-1.diff [new]
tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.4.2_1.diff [new]
Solomon Peachy
2020-04-03 74ab8d1490: toolchain: Parallelize the toolchain build if possible

Let's actually use those newfangled multicore processors!
tools/rockboxdev.sh [diff]
Solomon Peachy
2020-04-03 47ba7f02a8: correct 'agptekrocker' image names.
manual/rockbox_interface/images/rocker-front.pdf manual/rockbox_interface/images/agptekrocker-front.pdf [rename]
manual/rockbox_interface/images/rocker-front.png manual/rockbox_interface/images/agptekrocker-front.png [rename]
manual/rockbox_interface/images/rocker-front.svg manual/rockbox_interface/images/agptekrocker-front.svg [rename]
Solomon Peachy
2020-04-02 cd1e08f202: .gitignore udpates for translation and checkwps builds
.gitignore [diff]
Solomon Peachy
2020-04-01 c8111eb5b7: archos: Shut up a compiler warning by marking an inline function as static
apps/plugins/firmware_flash.c [diff]
Solomon Peachy
2020-03-30 849320422c: Actually commit the translation this time. Bad Solomon.
apps/lang/deutsch.lang [diff]
Solomon Peachy
2020-03-30 872977d70e: FS13181: Updated German translation (Wilfried Winkler)
docs/CREDITS [diff]
Solomon Peachy
2020-03-29 5bcf4e6807: FS #13191: Update Italian Translation (David Chionne)
apps/lang/italiano.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-03-29 9eba95d625: FS13192: rbutil: Fix linking error on Fedora 32 beta
utils/imxtools/sbtools/misc.h [diff]
Solomon Peachy
2020-03-29 5fa6acf39f: FS #13184: Support 2048 byte sectors and images without bootloader in ipod_fw

(From Stefan Ott)

I wrote a little patch for ipod_fw.c that allows me to create bootable images for the iPod video without using any external software.

The patch adds two new options:

- The -s option can now be used to specify the sector size in blocks (typically 512 or 2048) when generating an image.
- The -n option can be used to create an image without a boot loader
tools/ipod_fw.c [diff]
Solomon Peachy
2020-03-29 51ad625404: FS #13186: IAP: Send periodic updates in mode 4 (Stefan Ott)

Devices in IAP mode 4 do not explicitly request specific notifications, thus they don't get *any* periodic notifications at the moment (in particular, they miss the track position updates that are supposed to be sent out every 500 ms).

The attached patch fixes this by skipping an early return for devices in IST_EXTENDED state.
apps/iap/iap-core.c [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-03-29 f86f7883f5: manual: Fix broken ipod manual generation

Split apart ipod6g installation instructions from the rest. For unknown reasons the \opt and \nopt tests were causing the \code blocks to go wonky
manual/getting_started/installation.tex [diff]
manual/getting_started/ipod6g_install.tex [new]
manual/getting_started/ipod_install.tex [diff]
Solomon Peachy
2020-03-29 2ce000272d: Rockbox Utility: updated Czech translation

fixed wrongly set writing direction and translated missing strings
rbutil/rbutilqt/lang/rbutil_cs.ts [diff]
pavel
2020-03-28 6450cbbdca: headers: Don't blindly include <inttypes.h> in files used by ASM

Causes things to go boom with newer toolchains.
firmware/export/pl080.h [diff]
firmware/export/s5l8700.h [diff]
firmware/export/s5l8702.h [diff]
Solomon Peachy
2020-03-28 022dfe7ab3: sid: Fix an out-of-bounds read in the channel mixing code
lib/rbcodec/codecs/sid.c [diff]
Solomon Peachy
2020-02-02 f8cd15e226: sdl: disable alignment trap

Apparently causing issues on some devices.
apps/plugins/sdl/main.c [diff]
Franklin Wei
2020-01-29 05a40ab07c: scsi: add support for listing devices on Windows
utils/scsi/rbscsi.c [diff]
utils/scsi/rbscsi.h [diff]
Amaury Pouly
2020-01-29 392db31d90: sonynwz/scsitools: fix string buffer size
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-01-29 44fb7f384e: sonynwz/scsitools: add NWZ-S610 series
firmware/target/hosted/sonynwz/nwz-db.c [diff]
utils/nwztools/database/nvp/nwz-s610.txt [new]
Amaury Pouly
2020-01-12 ee15e45224: nwztool/scsitool: rewrite device detection on linux to make it simpler
utils/scsi/rbscsi.c [diff]
Amaury Pouly
2020-01-12 9e94a5eadc: nwztools/scsitool: fix out of buffer access
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-01-12 fbad457339: nwztools/scsitools: simplify code and enable O2
utils/nwztools/scsitools/Makefile [diff]
utils/nwztools/scsitools/scsitool.c [diff]
Amaury Pouly
2020-01-12 d6c9303c75: sonynwz/scsitools: add support for NW-A56
firmware/target/hosted/sonynwz/nwz-db.c [diff]
firmware/target/hosted/sonynwz/nwz-db.h [diff]
utils/nwztools/database/models.txt [diff]
utils/nwztools/database/series.txt [diff]
Amaury Pouly
2019-12-31 8794b95a72: Fix As3525 SD unused parameter warning
firmware/target/arm/as3525/sd-as3525.c [diff]
William Wilgus
2019-12-31 9f336217c2: Sansa AS3525V1 Sd Interface implement powersave mode

This patch cleans up the sd driver for the V1 sansas powersave implemented for the sd interface
firmware/target/arm/as3525/sd-as3525.c [diff]
William Wilgus
2019-11-15 f45db552f3: lua rockev rewrite

After a few issues with the timer code in the hosted players

I realized a few shortcomings in the original rockev code... This rewrite gives thread_exit an explicit flag instead of 0 custom events now have a set-able timeout previous lua hooks are restored flags are stored in uint8_t
apps/plugins/lua/rocklib_events.c [diff]
William Wilgus
2019-11-15 9cfdbdb355: MultiBoot_Firmware Fix red for bootloaders
firmware/common/disk.c [diff]
William Wilgus
2019-11-15 62e5a3076c: MultiBoot_Firmware

Stop gap till I get a chance to work on the root folder stuff

Makes whatever volume marked by bootdata.boot_volume the base or root volume, mounts all other volumes after the specified boot volume. Has the effect of swapping the SD card to the slot for internal and Internal storage is mounted as the Sd-card.

Does not honor root redirect -- uses .rockbox folder in the root of boot volume
apps/debug_menu.c [diff]
firmware/common/disk.c [diff]
William Wilgus
2019-11-15 3083abeb95: deploy-rbutil.py: allow zipball building to proceed if no DLLs are found

This helps with MXE static builds, which were failing because no DLLs were found.
utils/common/deploy.py [diff]
Franklin Wei
2019-11-15 3f89f1ce44: Correctly update game file download URLs.
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-11-15 54e7eaf8fc: Bump versions for 3.15.
tools/builds.pm [diff]
tools/release/bins.pl [diff]
tools/release/manuals.pl [diff]
tools/release/voices.pl [diff]
Franklin Wei
2019-11-11 45a9b54f24: rbutil: include nwztools source in release tarball
utils/common/deploy-rbutil.py [diff]
Franklin Wei
2019-11-11 8d37673a78: rbutil: fix windows release build

This fixes two of them: not finding the lrelease binary and not compiling for C++11 (which is required by some Qt headers now).
rbutil/rbutilqt/rbutilqt.pro [diff]
Franklin Wei
2019-11-11 43c049b9ad: rbutil: fix windows cross compile (via M cross environment)

This fixes a couple of issues when cross-compiling for windows:
- lib builds (i.e. mks5lboot) were overriding the cross CC/CXX with the native CC, producing incompatible binaries.
- Qt made the accessibility plugin part of the core library, so we no longer need to import it.
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/main.cpp [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
utils/imxtools/sbtools/crypto.h [diff]
Franklin Wei
2019-11-11 b2fb095ab5: rbutil: include nwztools source in release tarball
utils/common/deploy-rbutil.py [diff]
Franklin Wei
2019-11-11 a8be52c62a: rbutil: fix windows release build

This fixes two of them: not finding the lrelease binary and not compiling for C++11 (which is required by some Qt headers now).
rbutil/rbutilqt/rbutilqt.pro [diff]
Franklin Wei
2019-11-10 a5f228eee2: rbutil: fix windows cross compile (via M cross environment)

This fixes a couple of issues when cross-compiling for windows:
- lib builds (i.e. mks5lboot) were overriding the cross CC/CXX with the native CC, producing incompatible binaries.
- Qt made the accessibility plugin part of the core library, so we no longer need to import it.
rbutil/rbutilqt/Makefile.libs [diff]
rbutil/rbutilqt/main.cpp [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
utils/imxtools/sbtools/crypto.h [diff]
Franklin Wei
2019-11-06 4d510ab628: Bump versions for 3.15.
tools/builds.pm [diff]
Franklin Wei
2019-11-06 32e9698dac: Greek language update. Thanks to Constantine Mountantonakis (FS #13179)
apps/lang/greek.lang [diff]
Frank Gevaerts
2019-11-06 22638ede8d: solitaire: reword menu to "Quit without Saving" and "Quit"

Patch submitted by Michael Carr.
apps/plugins/solitaire.c [diff]
Franklin Wei
2019-11-06 5f17935ac4: Pacbox AI Improvements

-Make pacbox AI score agnostic.
-Fix corner case of Game Over/reset with AI on.
-AI can now start on level where pattern starts facing right.
apps/plugins/pacbox/pacbox.c [diff]
Moshe Piekarski
2019-11-06 1b76c761d5: rbutil: update game data URLs to official download server

Do not merge until files are in place.
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-11-06 c593ad5264: rbutil: extend game file installation

RbUtil will now install freely distributable data files for Duke Nukem 3D, Quake, SGT-Puzzles (fonts), Wolfenstein 3-D, and Another World. Currently the urls point to my personal server, pending upload to the main download server.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-11-06 4d633bb6b8: Add some scripts to automate target listing and generating build-info

This adds tools/list_targets.pl and tools/build-info.pl. list_targets does exactly what it sounds like - it lists targets by target status. build-info automates the generation of build-info.release for new releases.
tools/build-info.pl [new]
tools/list_targets.pl [new]
Franklin Wei
2019-11-06 1ea74dc42b: wolf3d: change version to shareware

This makes wolf3d work with the shareware files available on the wiki. This will make things work out-of-the-box with Rockbox Utility.
apps/plugins/sdl/progs/wolf3d/version.h [diff]
Franklin Wei
2019-11-04 1925d043a2: Greek language update. Thanks to Constantine Mountantonakis (FS #13179)
apps/lang/greek.lang [diff]
Frank Gevaerts
2019-11-04 05dd4390c6: solitaire: reword menu to "Quit without Saving" and "Quit"

Patch submitted by Michael Carr.
apps/plugins/solitaire.c [diff]
Franklin Wei
2019-11-04 85a437780e: Pacbox AI Improvements

-Make pacbox AI score agnostic.
-Fix corner case of Game Over/reset with AI on.
-AI can now start on level where pattern starts facing right.
apps/plugins/pacbox/pacbox.c [diff]
Moshe Piekarski
2019-10-31 86a313a177: rbutil: update game data URLs to official download server

Do not merge until files are in place.
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-10-31 26b55ba5f0: rbutil: extend game file installation

RbUtil will now install freely distributable data files for Duke Nukem 3D, Quake, SGT-Puzzles (fonts), Wolfenstein 3-D, and Another World. Currently the urls point to my personal server, pending upload to the main download server.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-10-31 ec8b3d3147: Add some scripts to automate target listing and generating build-info

This adds tools/list_targets.pl and tools/build-info.pl. list_targets does exactly what it sounds like - it lists targets by target status. build-info automates the generation of build-info.release for new releases.
tools/build-info.pl [new]
tools/list_targets.pl [new]
Franklin Wei
2019-10-30 19c154fe8f: wolf3d: change version to shareware

This makes wolf3d work with the shareware files available on the wiki. This will make things work out-of-the-box with Rockbox Utility.
apps/plugins/sdl/progs/wolf3d/version.h [diff]
Franklin Wei
2019-10-28 06a26ab07b: Bump RockboxUtility version to 1.4.1

Needed to get ipod6g bootloader support in place for upcoming 3.15 release.
rbutil/rbutilqt/Info.plist [diff]
rbutil/rbutilqt/version.h [diff]
Franklin Wei
2019-10-28 d1fda5ef7c: rbutil: enable ipod6g
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-10-28 72e00216e1: rbutil: enable ipod6g
rbutil/rbutilqt/rbutil.ini [diff]
Franklin Wei
2019-10-28 280bbbfba7: Bump RockboxUtility version to 1.4.1

Needed to get ipod6g bootloader support in place for upcoming 3.15 release.
rbutil/rbutilqt/Info.plist [diff]
rbutil/rbutilqt/version.h [diff]
Franklin Wei
2019-10-28 67a1465f57: Bump versions for 3.15.
tools/release/bins.pl [diff]
tools/release/manuals.pl [diff]
tools/release/voices.pl [diff]
Franklin Wei

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy