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



whenwhatwherewho
Wednesday 14:43 a056150d52: updatelang: Flag '|' in voice strings too
tools/updatelang [diff]
Solomon Peachy
Wednesday 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
Tuesday 15:09 c71b6265b0: Fix a mechanical error in the Simplified Chinese translation
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
Tuesday 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
Tuesday 14:18 24ae4aee33: updatelang: Expand suspicius character tests.

* dest: < >
* voice: [ ] < > { }
tools/updatelang [diff]
Solomon Peachy
Monday 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
Monday 11:53 9fb6883d01: FS #13489: Updated Russian translation (Dmitry Prozorov)
apps/lang/russian.lang [diff]
Solomon Peachy
Monday 00:34 bb1c2ea0b1: Fix manual build in 018c54ad1c
manual/getting_started/hibyos_nativeinstall.tex [diff]
manual/getting_started/installation.tex [diff]
Dana Conrad
Sunday 19:07 607adf00b5: manual: fix error in 018c54ad1c
manual/getting_started/installation.tex [diff]
Solomon Peachy
Sunday 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
Sunday 13:57 5ab334f07f: FS #13488: Updated Russian translation (Dmitry Prozorov)
apps/lang/russian.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
Sunday 13:08 84375e5524: builds: Promote erosqnative, m3k, and q1 to stable
tools/builds.pm [diff]
Solomon Peachy
Sunday 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
27th Aug 13:23 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
27th Aug 11:43 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
26th Aug 15:44 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
25th Aug 23:30 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
23rd Aug 23:02 3dd69ce23e: FS #13469: Updatd Simplified Chinese translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
21st Aug 22:31 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
21st Aug 12:57 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
20th Aug 04:34 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
16th Aug 20:31 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
16th Aug 20:31 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
14th Aug 15:03 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
13th Aug 14:14 19043660ac: FS #13467: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
12th Aug 20:10 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
12th Aug 19:38 8c25fcfbf0: ...fix more red from 15e52374
apps/menus/main_menu.c [diff]
Solomon Peachy
12th Aug 19:20 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
12th Aug 19:03 6e69241279: Fix some of the red in 15e52374
apps/menus/main_menu.c [diff]
Solomon Peachy
12th Aug 18:23 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
12th Aug 18:23 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
11th Aug 21:00 a0f66dea9c: update MAINTAINERS
docs/MAINTAINERS [diff]
William Wilgus
11th Aug 17:33 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
11th Aug 17:32 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
11th Aug 17:18 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
11th Aug 16:49 28badc5703: Fix yellow from commit 52b9656ed6
apps/plugins/playing_time.c [diff]
Christian Soffke
11th Aug 16:09 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
11th Aug 15:30 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
9th Aug 03:49 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
9th Aug 03:47 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
4th Aug 18:48 66fa10f1ba: FS #13463: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
1st Aug 14:53 a7f9557c9c: list: Fix interrupted playback when scrolling l/r
apps/gui/list.c [diff]
Christian Soffke
31th Jul 12:56 d471cd1e7b: FS #13462: Update Chinese translation (王吉)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
30th Jul 22:23 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
30th Jul 20:08 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
30th Jul 20:07 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
30th Jul 20:05 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
30th Jul 18:55 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
30th Jul 15:39 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
30th Jul 14:18 4d26f559ee: fonts: Rename COPYING to COPYING-fonts.txt in the fonts zip
tools/buildzip.pl [diff]
Solomon Peachy
30th Jul 14:10 ea1ad28cfc: fonts: Include fonts/COPYING license text in fonts zip packages
tools/buildzip.pl [diff]
Solomon Peachy
30th Jul 12:15 1a54398a33: fonts: Forgot to add the additonal Terminus sizes to the config
apps/plugins/rockbox-fonts.config [diff]
Solomon Peachy
30th Jul 02:18 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
30th Jul 02:18 ddb3cc2b7d: Fonts: Update README

Mainly to eliminate the now-16-year-old mapping from old to new names
fonts/README [diff]
Solomon Peachy
29th Jul 15:20 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
29th Jul 11:25 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
29th Jul 01:15 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
29th Jul 00:45 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
29th Jul 00:45 3c2a110728: updatelang: Add the ability to sort output file in the English file's order
tools/updatelang [diff]
Solomon Peachy
28th Jul 21:02 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
28th Jul 21:02 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
28th Jul 21:01 86bff6214d: properties: Use talk_fullpath() for voicing directory names
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/properties.c [diff]
Solomon Peachy
28th Jul 20:54 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
28th Jul 18:18 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
28th Jul 18:18 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
28th Jul 13:33 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
27th Jul 17:45 68fc5b4a7a: plugins: playing time: fix missing voice

appears to be a regression from 5d39d987c0
apps/plugins/playing_time.c [diff]
Christian Soffke
27th Jul 12:31 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
27th Jul 11:47 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
27th Jul 01:03 2dddf16e2c: voice: Shorten silence threshold to 250ms (from 500ms)
tools/voice.pl [diff]
Solomon Peachy
27th Jul 00:51 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
26th Jul 19:16 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
26th Jul 19:16 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
26th Jul 19:15 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
26th Jul 14:54 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
26th Jul 04:56 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
26th Jul 01:28 e8d7a8baaf: simulator: Fix browsing into secondary drive on multidrive targets
uisimulator/common/filesystem-sim.c [diff]
Solomon Peachy
25th Jul 21:16 10e883fe02: FS #13455: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
25th Jul 04:32 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
25th Jul 03:43 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
25th Jul 00:03 bcaeaa135a: build-info: Add a trailing newline to the output
tools/build-info.pl [diff]
Solomon Peachy
24th Jul 15:50 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
24th Jul 13:47 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
24th Jul 13:01 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
24th Jul 13:01 334def8431: configure: Fix android x86 build
tools/configure [diff]
tools/voice.pl [diff]
Solomon Peachy
24th Jul 02:14 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
24th Jul 00:56 cd1922fe74: puzzles: update documentation and copyright year.
apps/plugins/puzzles/README.rockbox [diff]
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
23rd Jul 22:36 96f564fe64: manual: update single mode

reflects changes made in commit fe5375a
manual/configure_rockbox/playback_options.tex [diff]
Christian Soffke
23rd Jul 22:35 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
23rd Jul 19:57 254eaf509e: Fix the final two Bulgarian translation same-as-English issues
apps/lang/bulgarian.lang [diff]
Solomon Peachy
23rd Jul 19:14 8d436561e2: plugins: playing time: use cpu_boost + simplify a bit
apps/plugins/playing_time.c [diff]
Christian Soffke
23rd Jul 17:55 6dd9b9786c: voice: Fix typo in Bulgarian gtts default cmdline
tools/voice.pl [diff]
Solomon Peachy
23rd Jul 17:31 dd58b05f61: Update Bulgarian translation, part 2
apps/lang/bulgarian.lang [diff]
Vencislav Atanasov
23rd Jul 16:15 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
23rd Jul 15:56 ba4a6f2adc: Update Bulgarian translation
apps/lang/bulgarian.lang [diff]
Vencislav Atanasov
23rd Jul 10:05 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
23rd Jul 01:44 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
23rd Jul 00:34 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
23rd Jul 00:27 e8257580c6: voices: Add Korean (using espeak-ng) to the nightly voice build set
apps/lang/korean.lang [diff]
tools/builds.pm [diff]
Solomon Peachy
22nd Jul 19:56 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
22nd Jul 17:43 20948c1b0e: FS #13454: Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
Solomon Peachy
22nd Jul 14:27 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
22nd Jul 13:42 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
21st Jul 22:12 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
21st Jul 20:29 f3a5fe2738: FS #13453: Updated Polish translation (Adam Rak)

(Another member of the growing 100% club!)
apps/lang/polski.lang [diff]
Solomon Peachy
21st Jul 15:51 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
21st Jul 15:22 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
21st Jul 14:54 370fde68ab: Fix Korean VOICE_LANG_NAME

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

...It's nearly complete!
apps/lang/korean.lang [diff]
Solomon Peachy
21st Jul 11:50 a286555578: plugins: properties: Add Directory Track Info
apps/plugins/properties.c [diff]
Christian Soffke
21st Jul 11:09 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
21st Jul 05:45 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
20th Jul 15:24 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
20th Jul 15:18 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
20th Jul 14:41 6bfcba4422: FS #13450: 100% Chinese-Simplified translation (Medu Hedan)
apps/lang/chinese-simp.lang [diff]
Solomon Peachy
20th Jul 13:13 4e953434c3: FS #13446 - Updated Korean translation (Hoseok Seo)
apps/lang/korean.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
20th Jul 12:46 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
20th Jul 12:25 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
20th Jul 12:19 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
20th Jul 11:27 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
20th Jul 04:08 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
20th Jul 02:04 82cf845625: simulator supports only one logical volume per drive
firmware/export/config.h [diff]
Solomon Peachy
20th Jul 02:04 4628009503: simulator: A few MULTIVOLUME cleanups in the code.
uisimulator/common/filesystem-sim.c [diff]
Solomon Peachy
19th Jul 22:42 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
19th Jul 22:26 6af637645a: FS12727: Fix buggy strength calculation in superdom
apps/plugins/superdom.c [diff]
Solomon Peachy
19th Jul 22:26 db8049d168: rbutil: Delete some obsolete entries from rbutil.ini

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

(And flip on Chinese as well)
tools/builds.pm [diff]
Solomon Peachy
18th Jul 18:55 e32b1d6bd6: builds: More manual-related fixes
tools/builds.pm [diff]
Solomon Peachy
18th Jul 14:30 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
18th Jul 14:30 16094fca33: voice: Minor tweaks for Chineese TTS
apps/lang/chinese-simp.lang [diff]
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
18th Jul 14:03 8ddd94f3fd: voice: Add default mappings for Chinese-Simplified TTS
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
18th Jul 13:11 19b85e51e0: tex4ht can't handle Chinese unicode.
docs/CREDITS [diff]
Solomon Peachy
18th Jul 12:46 bb563da87a: FS #13442: Updated Chinese-Simplified translation (王吉 / Medu Hedan)
apps/lang/chinese-simp.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
18th Jul 12:16 c3b83c0a5c: builds: tweak the 'manualbuilds' filter
tools/builds.pm [diff]
Solomon Peachy
18th Jul 03:35 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
18th Jul 02:03 35fb94fc9b: builds: Flag several stable targets that don't have manuals
tools/builds.pm [diff]
Solomon Peachy
18th Jul 01:43 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
18th Jul 01:43 4d97a4f3f2: builds: Create a function that generates a list of all manual builds
tools/builds.pm [diff]
tools/release/manuals.pl [diff]
Solomon Peachy
18th Jul 01:43 9ddd9826d3: Delete a redundant AGPTek Rocker simulator bitmap
uisimulator/bitmaps/UI-rocker.bmp [deleted]
Solomon Peachy
18th Jul 01:11 d5dd295ace: builds: Promote AGPTek Rocker to 'stable'
tools/build-info.pl [diff]
tools/builds.pm [diff]
Solomon Peachy
17th Jul 21:17 a302aa565a: manual: Update copyright year to 2024.
manual/intro/main.tex [diff]
Solomon Peachy
16th Jul 21:35 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
16th Jul 21:35 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
16th Jul 21:35 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
16th Jul 17:37 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
16th Jul 17:26 a6f0044d40: Revert "ata: Use PIO0 when ATA_SET_PIO_TIMING is not defined"

This reverts commit 95d6c74627c7a27fe9f5244fcdd9265722c80268.
firmware/drivers/ata.c [diff]
Solomon Peachy
16th Jul 15:47 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
13th Jul 23:08 9049d30da9: Add Evan Kenny to CREDITS
docs/CREDITS [diff]
Solomon Peachy
13th Jul 23:07 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
13th Jul 05:39 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
12th Jul 16:08 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
12th Jul 15:57 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
12th Jul 14:55 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
12th Jul 12:52 8801ed0824: manual: Fix html manual build on MPIOHD300
manual/plugins/blackjack.tex [diff]
Solomon Peachy
12th Jul 12:52 81c8be1568: manual: Fix html manual build on MPIO HD200
manual/platform/keymap-mpiohd200.tex [diff]
manual/platform/mpiohd200.tex [diff]
Solomon Peachy
12th Jul 12:52 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
12th Jul 12:52 f8e602ecfd: manual: Fix iHP-H10 HTML build
manual/configure_rockbox/display_options.tex [diff]
Solomon Peachy
12th Jul 04:35 a2747a1bd1: Playlist_viewer.c clean-up and a bit of optimization
apps/playlist_viewer.c [diff]
William Wilgus
10th Jul 21:07 bdb5bf1511: [Bugfix] playlist_viewer.c

had the conditional backwards

changing display settings now reloads list
apps/playlist_viewer.c [diff]
William Wilgus
10th Jul 13:23 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
10th Jul 13:23 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
9th Jul 05:40 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
7th Jul 20:45 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
7th Jul 20:02 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
7th Jul 19:40 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
7th Jul 19:13 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
7th Jul 18:47 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
7th Jul 17:18 520875ff00: simulator: Fix numerous latent issues

Interactions between HAVE_MULTIVOLUME, HAVE_MULTIDRIVE, and HAVE_HOTSWAP
uisimulator/common/sim_tasks.c [diff]
Solomon Peachy
7th Jul 16:43 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
7th Jul 16:29 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
7th Jul 16:05 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
7th Jul 15:35 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
7th Jul 13:02 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
7th Jul 12:12 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
4th Jul 17:01 e4ee8c8879: [Fix Yellow] file_op.c Bad DEBUGF statement
apps/fileop.c [diff]
William Wilgus
4th Jul 16:44 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
4th Jul 14:38 3e9ca6ec8e: configure: Stray unquoted space in a sed expression

Should fix SDL builds where --static-libs are not present
tools/configure [diff]
Solomon Peachy
4th Jul 13:56 5e13a1bb05: FS #13439: Fully updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
4th Jul 13:48 30ef953393: configure: Fix 'make reconf' when win64 sim builds are enabled
tools/configure [diff]
Solomon Peachy
4th Jul 13:48 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
3rd Jul 20:51 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
3rd Jul 20:51 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
3rd Jul 20:51 d0e47affa9: xduoox3: Script to patch a firmware image with a new bootloader binary
tools/xduoox3-updatebl.sh [new]
Solomon Peachy
1st Jul 13:51 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
1st Jul 13:50 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
1st Jul 00:57 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
1st Jul 00:32 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
1st Jul 00:30 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
30th Jun 22:45 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
30th Jun 21:24 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
30th Jun 20:25 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
30th Jun 19:06 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
30th Jun 19:05 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
30th Jun 19:05 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
30th Jun 06:09 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
30th Jun 02:09 c87c09658a: Minor German translation update (add credit, and one mecanical correction)
apps/lang/deutsch.lang [diff]
Solomon Peachy
30th Jun 01:25 16a3f6d41e: FS #13436: Updated German Translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
29th Jun 14:07 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
28th Jun 00:42 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
27th Jun 00:45 dca5fb9514: simulator: Fix Samsung YP-R0 windows simulator build
firmware/SOURCES [diff]
Solomon Peachy
26th Jun 13:43 8e280bdda8: configure: Hopefully resolve windows simulator builds issues for hosted targets
tools/configure [diff]
Solomon Peachy
26th Jun 11:50 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
25th Jun 01:00 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
24th Jun 17:21 c2c8fcb561: updatelang: ignore "same as english" flag when determining suggested voice string
tools/updatelang [diff]
Solomon Peachy
24th Jun 16:50 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
24th Jun 15:17 b4bcabe532: Update english-us "Translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
24th Jun 14:59 a9254da767: build: Fix yellow introduced in 5d39d987c0
apps/plugins/playing_time.c [diff]
Solomon Peachy
24th Jun 13:59 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
24th Jun 13:59 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
24th Jun 00:58 54e2facb85: Fix yellow introduced in f7a3b4dfa
firmware/drivers/tuner/tea5767.c [diff]
Solomon Peachy
24th Jun 00:11 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
23rd Jun 23:41 8f75b29aed: voice.pl: Fix an issue with the piper tts engine

It only arose with the dailybuild scripts.
tools/voice.pl [diff]
Solomon Peachy
23rd Jun 18:18 4c9d346cb2: translations: Add VOICE_LANG_NAME for Czech.
apps/lang/czech.lang [diff]
Solomon Peachy
23rd Jun 18:06 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
23rd Jun 18:06 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
23rd Jun 17:50 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
23rd Jun 11:29 4ea3732bd7: Add ATA serial number to Disk info debug menu
apps/debug_menu.c [diff]
Vencislav Atanasov
23rd Jun 05:00 9c458bbb0d: Use literal ATA serial number for USB SN descriptor if the string is printable
firmware/usbstack/usb_core.c [diff]
Vencislav Atanasov
23rd Jun 02:24 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
22nd Jun 14:06 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
22nd Jun 14:03 231797dfa8: mikmod: use -DMIKMOD_STATIC to make building under windows happier
apps/plugins/mikmod/mikmod.make [diff]
Solomon Peachy
22nd Jun 11:03 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
21st Jun 20:58 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
21st Jun 20:38 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
21st Jun 02:08 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
21st Jun 01:00 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
20th Jun 22:01 f58c15440f: build: 'make clean' should remove generated talk clips too
tools/root.make [diff]
Solomon Peachy
20th Jun 21:31 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
20th Jun 20:00 8cb8a30f9d: [Feature] talk.c allow Invalid voice files for selected language

(if it exists)
apps/talk.c [diff]
William Wilgus
20th Jun 19:22 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
20th Jun 19:16 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
20th Jun 15:14 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
20th Jun 11:08 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
19th Jun 21:29 8ef20383b1: sims.pl: Skip over 'obsolete' targets
tools/release/sims.pl [diff]
Solomon Peachy
19th Jun 21:26 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
19th Jun 18:28 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
19th Jun 13:22 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
19th Jun 13:22 2ef10ec734: Fix typo in the previous commit
tools/configure [diff]
Solomon Peachy
19th Jun 12:49 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
19th Jun 00:45 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
19th Jun 00:43 e80cf93b67: Codecs: debugging: Disable compiler optimizations when DEBUG is defined
lib/rbcodec/codecs/codecs.make [diff]
Roman Artiukhin
19th Jun 00:42 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
18th Jun 16:50 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
18th Jun 14:55 57b3d2ffb1: FS #13358: Fix sansapatcher build against musl libc
utils/sansapatcher/sansaio.h [diff]
Solomon Peachy
18th Jun 13:52 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
18th Jun 12:15 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
16th Jun 16:33 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
14th Jun 14:56 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
14th Jun 05:40 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
13th Jun 11:52 935fb736e8: [FixRed] tagcache.c

I think this should be APPLICATION for hosted
apps/tagcache.c [diff]
William Wilgus
13th Jun 11:17 633b06dcfe: [Bugfix] tagcache.c reverse conditional for native targets
apps/tagcache.c [diff]
William Wilgus
11th Jun 19:21 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
11th Jun 14:13 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
11th Jun 14:13 11c70c6164: MAINTAINERS: Add our German translation maintiner
docs/MAINTAINERS [diff]
Solomon Peachy
11th Jun 13:53 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
9th Jun 13:03 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
9th Jun 13:03 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
8th Jun 23:03 b222e909d4: lang: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
8th Jun 23:03 810e337a87: xduoox3: It doesn't have a radio, so don't put that in APPEXTRA
tools/configure [diff]
Solomon Peachy
7th Jun 22:10 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
7th Jun 21:47 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
7th Jun 16:21 92b5255106: lang: Add a few more items to the "ignore if same as English" list
tools/langignorelist.txt [diff]
Solomon Peachy
7th Jun 16:21 b9e6e67962: voice: Switch default piper voice for Italian
tools/voice.pl [diff]
Solomon Peachy
7th Jun 04:38 3b9d804bdf: [coverity] playlist.c format_track_path() guard NULL pointers
apps/playlist.c [diff]
William Wilgus
7th Jun 04:25 4829c2c894: [coverity] settings.c int_to_string() string_to_int() guard NULL deref
apps/settings.c [diff]
William Wilgus
6th Jun 14:53 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
6th Jun 03:38 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
6th Jun 00:03 c6473f4e7f: [Fix Yellow] imx233_debug fix yellow
firmware/target/arm/imx233/debug-imx233.c [diff]
William Wilgus
5th Jun 23:16 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
5th Jun 23:16 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
5th Jun 23:13 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
5th Jun 23:00 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
4th Jun 23:29 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
4th Jun 21:40 fb39d852b0: [coverity] tagtree.c tagtree_enter selected_item_history guard against overrun
apps/tagtree.c [diff]
William Wilgus
4th Jun 21:18 1b7d35126b: [coverity] playlist.c pl_save_update_control fix rest of potential fd leaks
apps/playlist.c [diff]
William Wilgus
4th Jun 19:56 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
3rd Jun 02:14 afba86f0f7: [coverity] playlist.c pl_save_update_control() close fd on error
apps/playlist.c [diff]
William Wilgus
3rd Jun 02:07 283f31dd39: [coverity] language.c lang_load() check bytes read for headers
apps/language.c [diff]
William Wilgus
3rd Jun 01:48 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
3rd Jun 01:40 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
3rd Jun 01:00 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
2nd Jun 21:09 82dcf32736: [BugFix] headphone should be removed on first toggle
firmware/target/hosted/sdl/button-sdl.c [diff]
William Wilgus
2nd Jun 21:09 31ae252dcc: [BugFix] Resume on headphone plug causes screen glitches
apps/misc.c [diff]
William Wilgus
2nd Jun 16:42 bbdba53413: [coverity] bookmark.c fix add_bookmark & false positive in remove_bookmark
apps/bookmark.c [diff]
William Wilgus
2nd Jun 15:13 2e60316500: [coverity] skin_parser.c load_skin_bitmaps check buffer length for bm_data
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
2nd Jun 14:41 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
2nd Jun 14:32 cc67f420f2: [coverity] font.c load_cache_entry check for successful read
firmware/font.c [diff]
William Wilgus
1st Jun 22:27 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
1st Jun 19:07 e16230de8c: FS #13433: Updated German Translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
1st Jun 16:40 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
1st Jun 16:25 507fa214a8: Fix red in 3d7d1d4d
apps/plugins/lib/SOURCES [diff]
Christian Soffke
1st Jun 15:55 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
1st Jun 15:42 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
1st Jun 03:02 d1aeb7db9d: [Coverity] playback.c audio_auto_change_frequency check for valid id3
apps/playback.c [diff]
William Wilgus
31th May 01:22 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
31th May 01:02 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
31th May 00:01 f0c1cf1eef: Update US English "Translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
30th May 23:49 09e01c89a7: FS #13430: Updated German translation (Wilfried Winkler)
apps/lang/deutsch.lang [diff]
Solomon Peachy
30th May 16:12 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
30th May 15:01 7ec1151ddd: [BugFix] add button maps for iPod6GSim
uisimulator/buttonmap/ipod.c [diff]
William Wilgus
26th May 15:53 3a60f3a0f7: better Cyrillic for 14-Rockbox-Mix
fonts/14-Rockbox-Mix.bdf [diff]
fonts/COPYING [diff]
Andrey Maluy
26th May 15:51 e72bae7c3f: [Superdom] Bugfix

Prevents the plugin from locking up on the highest difficulty level
apps/plugins/superdom.c [diff]
Franklin Wei
25th May 18:33 4e54443dc9: manual: Document the fact that checkwps can validate %Sx theme tags
manual/appendix/wps_tags.tex [diff]
Solomon Peachy
25th May 01:37 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
24th May 16:11 ac20f8a73c: lang: Delete 12 unused strings
apps/bookmark.c [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
Solomon Peachy
24th May 15:34 5dd9238004: Fix yellow in sim builds
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
24th May 15:17 8825b33052: skin_debug: Don't segfault when dump a viewport with no children
lib/skin_parser/skin_debug.c [diff]
Solomon Peachy
22nd May 12:52 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
20th May 01:05 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
20th May 01:05 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
18th May 14:45 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
17th May 12:31 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
17th May 12:23 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
17th May 12:07 6c2f8f640f: genlang: Strip _all_ leading '~' from dest/voice strings

(Instead of just the first)
tools/genlang [diff]
Solomon Peachy
17th May 12:06 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
17th May 01:51 c615a02ee3: updatelang: Improve tests for illegal characters
tools/updatelang [diff]
Solomon Peachy
17th May 01:51 b9755a3085: A handful of language cleanups
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/turkce.lang [diff]
Solomon Peachy
17th May 01:16 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
17th May 00:40 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
13th May 21:19 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
13th May 19:26 556b466f05: shortcuts: allow empty name for sleep shortcuts with default duration

missed this in f631bfe
apps/shortcuts.c [diff]
Christian Soffke
13th May 18:21 b94e5d77fe: Update English_US "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
13th May 18:21 08c35a2299: FS #13422: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
13th May 16:18 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
13th May 16:06 8eeef333a1: shortcuts: add 'reboot' type

Enabled by d55dcef
apps/shortcuts.c [diff]
apps/shortcuts.h [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
13th May 16:06 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
13th May 16:06 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
13th May 16:06 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
13th May 16:02 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
13th May 16:02 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
12th May 14:21 cc45e4d88d: Really fix yellow this time
apps/settings_list.c [diff]
Aidan MacDonald
12th May 14:05 2061448341: Fix yellow in 5f377c2613b5
apps/settings_list.c [diff]
Aidan MacDonald
12th May 13:42 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
10th May 12:34 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
9th May 20:13 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
9th May 02:40 6e82897bfc: make: Update help text
tools/root.make [diff]
Solomon Peachy
9th May 02:40 54389dcf2f: configure: fix test for LD version on non-macos systems
tools/configure [diff]
Solomon Peachy
9th May 02:14 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
9th May 02:03 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
9th May 01:45 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
8th May 14:42 0a89d1d4df: Fix a typo in English
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/norsk.lang [diff]
Solomon Peachy
7th May 20:21 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
7th May 20:21 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
6th May 22:00 3348d84206: open_plugins Fix Yellow
apps/plugins/open_plugins.c [diff]
William Wilgus
6th May 21:27 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
6th May 14:28 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
5th May 18:19 1189006a4b: Update .gitignore
.gitignore [diff]
Solomon Peachy
5th May 18:11 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
5th May 18: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
5th May 18:01 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
2nd May 17:38 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
2nd May 13:33 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
2nd May 13:20 f2f5543856: Minor mechanical corrections to the Serbian translation

Just silencing some warnings that prevented 100% completion status.
apps/lang/srpski.lang [diff]
Solomon Peachy
2nd May 12:52 edb32a022d: FS #13421: Update Serbian translation (Ivan Pesic)
apps/lang/srpski.lang [diff]
Solomon Peachy
2nd May 01:00 8ad2512a02: FS #12549: Improve manual with respect to shortcut talkclips
manual/main_menu/main.tex [diff]
Solomon Peachy
1st May 14:29 2ba12c1674: trnslation: Fix minor errors in the Dutch and Italian translations
apps/lang/italiano.lang [diff]
apps/lang/nederlands.lang [diff]
Solomon Peachy
1st May 13:11 b32266b7db: updatelang: Avoid some runtime warnings

...And add '"' to the suspicious character list
tools/updatelang [diff]
Solomon Peachy
1st May 12:59 67f61e1e13: Minor fix for the Turkish translation

...Quotes (") are not legal characters in a string
apps/lang/turkce.lang [diff]
Solomon Peachy
1st May 12:08 69828c36a8: FS #13419: Updated Turkish translation (Eren Akpolat)
apps/lang/turkce.lang [diff]
Solomon Peachy
1st May 01:26 0c0b1b1a6b: updatelang: Sanity-check the translated LANG_VOICED_DATE_FORMAT

This must be *localized* not translated!
tools/updatelang [diff]
Solomon Peachy
30th Apr 22:48 6485a489cf: FS #13418: Partial update of Turkish translation (Eren Akpolat)
apps/lang/turkce.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
30th Apr 10:18 34c6ee539f: updatelang: Include the old/incorrect format specifier in the error message
tools/updatelang [diff]
Solomon Peachy
30th Apr 02:03 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
29th Apr 21:14 9fd4782c6a: updatelang: Complain about suspicious characters in voiced strings.

The main intent is to catch printf() format specifiers (ie '%')
tools/updatelang [diff]
Solomon Peachy
29th Apr 17:44 bf325de48e: FS #13417: Updated Dutch translation (Leander Lismond)
apps/lang/nederlands.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
29th Apr 12:32 65861c4d6f: FS #13416: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
29th Apr 00:36 7550ed3df7: FS #13415 Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
28th Apr 05:03 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
28th Apr 04:21 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
27th Apr 09:57 3ae48284c1: manual: update "Load to RAM" setting, Shortcuts
manual/main_menu/main.tex [diff]
manual/rockbox_interface/tagcache.tex [diff]
Christian Soffke
27th Apr 07:23 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
26th Apr 14:01 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
26th Apr 11:28 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
26th Apr 11:25 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
26th Apr 11:21 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
26th Apr 00:49 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
26th Apr 00:49 ba4b41663c: [Fix Red] Remove amaze plugin from lowmem targets
apps/plugins/SOURCES [diff]
manual/plugins/main.tex [diff]
William Wilgus
25th Apr 23:19 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
25th Apr 17:32 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
25th Apr 17:00 c718724a70: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
24th Apr 21:37 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
24th Apr 13:19 2dbf26f11a: FS13414: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
24th Apr 03:50 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
24th Apr 03:05 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
24th Apr 03:02 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
24th Apr 02:12 4a52147122: configure: strip '--voice' from the 'make reconf' option list to avoid dupes
tools/configure [diff]
Solomon Peachy
23rd Apr 16:22 0909c4fe3a: FS #13413: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
23rd Apr 15:10 a5d75a5743: Russian translations update
apps/lang/russian.lang [diff]
Igor B. Poretsky
23rd Apr 15:09 1a60255633: Remove obsolute 'talkclips.py' script, voice.pl does it all and more
tools/talkclips.py [deleted]
Solomon Peachy
23rd Apr 03:24 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
22nd Apr 19:47 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
22nd Apr 19:46 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
22nd Apr 19:46 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
22nd Apr 00:38 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
22nd Apr 00:38 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
22nd Apr 00:37 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
22nd Apr 00:37 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
21st Apr 22:27 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
21st Apr 22:08 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
21st Apr 22:07 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
21st Apr 22:07 06cf2f0da5: voice: touch re-used voice pool files so we know they're used.
tools/voice.pl [diff]
Solomon Peachy
21st Apr 16:28 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
20th Apr 13:41 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
18th Apr 17:40 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
18th Apr 17:11 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
18th Apr 16:25 7f1b49693c: translations: Update US English "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
18th Apr 02:10 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
17th Apr 18:55 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
17th Apr 15:21 ebd952da2f: voice: minor refactoring in the voice gen script
tools/voice.pl [diff]
Solomon Peachy
17th Apr 13:02 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
17th Apr 13:01 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
16th Apr 22:37 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
16th Apr 20:56 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
13th Apr 14:19 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
11th Apr 12:01 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
7th Apr 20:46 b57536db8d: [BugFix] Hosted incoming directory component leading slashes #2

Fix the rest..
firmware/target/hosted/filesystem-app.c [diff]
William Wilgus
7th Apr 18:13 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
7th Apr 01:37 4e1faa032f: lcd: fix yellow from accidental commit
firmware/asm/lcd-as-memframe.c [diff]
Solomon Peachy
7th Apr 01:26 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
7th Apr 01:26 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
4th Apr 19:40 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
3rd Apr 19:57 3714288f7a: add bootpath to bootdata debug menu

show the full path to the currently booted firmware
apps/debug_menu.c [diff]
William Wilgus
3rd Apr 01:04 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
2nd Apr 23:58 4a91d37613: multiboot_select plugin check volume root for valid firmware
apps/plugins/multiboot_select.c [diff]
William Wilgus
2nd Apr 23:43 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
2nd Apr 23:28 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
1st Apr 17:21 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
1st Apr 17:21 9d585cbc05: Fix red in f026cc4e176f
apps/onplay.c [diff]
Aidan MacDonald
1st Apr 16:23 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
1st Apr 16:06 ac1f92d9e8: tagcache: Fix missing void in tagcache_rebuild() definition
apps/tagcache.c [diff]
Aidan MacDonald
1st Apr 16:06 89a6fc087d: manual: Document database "Select directories to scan" option
manual/rockbox_interface/tagcache.tex [diff]
Aidan MacDonald
1st Apr 15:44 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
1st Apr 15:30 cc210a7161: Fix red in c36d7768c539
firmware/export/lcd.h [diff]
Aidan MacDonald
1st Apr 15:02 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
1st Apr 13:39 2570909e52: [Feature] Add root_realpath to Rockbox Info
apps/menus/main_menu.c [diff]
William Wilgus
1st Apr 12:11 8e9a840d1d: [Fix Yellow] 1dc22c7241 use path_append for setting directories is several settings
apps/gui/skin_engine/skin_parser.c [diff]
William Wilgus
1st Apr 11:35 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
1st Apr 00:12 47784a777e: FS #13403: Fix compilation error in scsitools
utils/imxtools/scsitools/stmp_scsi.h [diff]
Solomon Peachy
31th Mar 17:45 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
31th Mar 17:20 856e3d548b: Fix red in dc9d354ed22b
firmware/common/disk.c [diff]
firmware/include/dircache_redirect.h [diff]
Aidan MacDonald
31th Mar 15:57 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
31th Mar 15:57 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
31th Mar 15:57 af644e02a1: Fix red in 5fd5f56cacdd
firmware/export/scroll_engine.h [diff]
Aidan MacDonald
31th Mar 15:36 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
31th Mar 15:24 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
31th Mar 15:07 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
31th Mar 05:25 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
30th Mar 15:58 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
30th Mar 15:58 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
30th Mar 15:01 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
30th Mar 07:10 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
29th Mar 14:27 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
28th Mar 12:25 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
26th Mar 07:31 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
24th Mar 17:22 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
24th Mar 15:19 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
24th Mar 01:46 c00dff157c: ....Fix the fix, properly.
firmware/SOURCES [diff]
Solomon Peachy
23rd Mar 23:59 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
23rd Mar 14:37 fa54e218ff: Multiboot Database duplicate files -- Fix Yellow
firmware/common/rb_namespace.c [diff]
William Wilgus
23rd Mar 05:03 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 [