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



whenwhatwherewho
Tuesday 00:14 412e76b487: configure: --no-ccache must disable CCACHE for $HOSTCC too!

Accomplish this by setting CCACHE_DISABLE=true
tools/configure [diff]
Solomon Peachy
Monday 21:41 672bbe434b: usb: rename usb_drv_recv() to usb_recv_recv_nonblocking()

IMHO the current name is somewhat misleading:

- usb_drv_send() is blocking and we have usb_drv_send_nonblocking() for the non-blocking case. This inconsistent naming can only promote confusion. (And what would we call a blocking receive?)

- Other hardware abstraction APIs in Rockbox are usually blocking: storage, LCD, backlight, audio... in other words, blocking is the default expected behavior, with non-blocking calls being a rarity.
firmware/drivers/isp1583.c [diff]
firmware/drivers/m66591.c [diff]
firmware/drivers/usb-designware.c [diff]
firmware/export/usb_drv.h [diff]
firmware/target/arm/as3525/usb-drv-as3525.c [diff]
firmware/target/arm/rk27xx/usb-drv-rk27xx.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
firmware/target/arm/usb-drv-arc.c [diff]
firmware/target/arm/usb-s3c6400x.c [diff]
firmware/target/arm/usb-tcc.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
firmware/usbstack/usb_core.c [diff]
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_serial.c [diff]
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
Monday 21:38 99f333c64f: usb_hid: fix accidental fallthrough

Successful SET REPORT requests would spuriously fail because of the fall through to GET REPORT.
firmware/usbstack/usb_hid.c [diff]
Aidan MacDonald
Monday 03:28 483563a1b2: Fix the build for 67716c6b.
apps/playlist_viewer.c [diff]
James D. Smith
Monday 01:13 0ca0940f01: Make USB Charging default value configurable per device

A reasonable default assumption for a user would be that they can plug their device into a USB AC adapter and it will charge with as much current as it reasonably can. With the previous default, an AC adapter will only do 100mA, basically a trickle charge.

Make this configurable default per-device, so as not to break old devices without testing.

Define TARGET_USB_CHARGING_DEFAULT to USB_CHARGING_FORCE to use the new default.

Tested on both erosQ Native and M3K.
apps/settings_list.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
Dana Conrad
Monday 01:06 5765deb08e: Add Fabrice Bellard to the CREDITS.
docs/CREDITS [diff]
James D. Smith
Monday 01:05 760277e096: Dir cache: Fix resume of relative path playlists.

Slightly modified from original patch by Fabrice Bellard.
apps/playlist.c [diff]
firmware/common/pathfuncs.c [diff]
firmware/export/pathfuncs.h [diff]
James D. Smith
Monday 01:05 67716c6b46: Playlist Viewer: Add file properties to playlist entry menu.
apps/playlist_viewer.c [diff]
James D. Smith
19th Sep 04:05 5312fe6bda: FS13255: Partial update of Hungarian Translation (Gergely Békési)

(plus a lot of patch rebaseing by myself)
apps/lang/magyar.lang [diff]
Solomon Peachy
18th Sep 01:42 60125f6bc9: Pictureflow: Update for tag_virt_canonicalartist.
apps/plugins/pictureflow/pictureflow.c [diff]
James D. Smith
18th Sep 01:42 fb04b9b5ee: Database: Merge 'Album Artist' entry with 'Artist' entry.

-Link 'Artist' entry to canonicalartist field.
-Convert all possible users of artist field to canonicalartist.
-Tweak 'Same as current -> Artist' menu to also include albumartist field matches.
apps/tagnavi.config [diff]
James D. Smith
18th Sep 01:42 fcb9c06852: Database: Fix tag_albumartist; new tag_virt_canonicalartist.
apps/tagcache.c [diff]
apps/tagcache.h [diff]
apps/tagtree.c [diff]
James D. Smith
18th Sep 01:30 cb0f4599e1: FS #13304: Updated Dutch translation (Issa Beganović)
apps/lang/nederlands.lang [diff]
Solomon Peachy
18th Sep 01:22 7bf3b08303: FS #13309: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
18th Sep 01:22 52d4339c3f: Synchronize english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
16th Sep 23:52 78f0dc8175: File properties plugin: Add bitrate.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 23:52 a9d3e09611: File properties plugin: Add frequency.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 23:52 41e471e50e: File properties plugin: Add disc number.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 03:57 5ddfd37a8c: File properties plugin: Add track.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 03:57 7035e2e2b9: File properties plugin: Add year.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 03:57 3acbab15a1: File properties plugin: Add composer.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 03:57 f3874bda64: File properties plugin: Add comment.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 03:56 f971200cee: File properties plugin: Add genre.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
16th Sep 03:56 7882e093b2: File properties plugin: Add album artist.
apps/lang/english.lang [diff]
apps/plugins/properties.c [diff]
James D. Smith
12th Sep 17:35 67c4231e34: iPod mini backlight initialization

Fixes backlight not turning on after booting (tested on an iPod Mini 2G).

backlight_hw_init() copied from iPod 4G.
firmware/target/arm/ipod/backlight-mini1g_mini2g.c [diff]
firmware/target/arm/ipod/backlight-target.h [diff]
Christian Soffke
5th Sep 16:22 4ba3231457: Fiio M3K: Fix Yes/No Keymap

The yes/no keymap does not fall back to the Standard keymapping, so keys other than Back and Power do not cancel, though the prompt says "any other key".

Adding fallback to standard context as well as explicit Left, Right, Vol+ and Vol- as they're not present in the standard context.

Tested on physical m3k
apps/keymaps/keymap-fiiom3k.c [diff]
Dana Conrad
5th Sep 15:50 17263a813b: ErosQ (both): avoid clipping due to DC offset bandaid

Set the maximum volume on both hosted and native ports to -2 dB.

Verified behavior here on native and by borkitall on irc for hosted.
firmware/export/eros_qn_codec.h [diff]
firmware/export/erosqlinux_codec.h [diff]
Dana Conrad
4th Sep 02:03 3e52c7c734: rockboxdev: Add 'g++' to the list of required tools for building toolchains
tools/rockboxdev.sh [diff]
Solomon Peachy
31th Aug 21:23 a8253c57dd: lib/argparse fix red
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
William Wilgus
31th Aug 21:05 c04a944c98: lib/argparse scale decimals to int for return to user

scales the fractional portion of the parsed number by ARGPARSE_FRAC_DEC_MULTIPLIER

Example ARGPARSE_FRAC_DEC_MULTIPLIER = 10 000 meaning .0009 returns 9 , 9 / 10000 = .0009
.009 returns 90
.099 returns 990
.09 returns 900
.9 returns 9000
.9999 returns 9999
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
William Wilgus
31th Aug 18:59 d929444a41: iPod: Fix Yes/No Keymap

Add fallback to CONTEXT_STD and add explicit Play button cancel - Play button is not present in standard context, so it won't do anything if unknown actions are ignored.

tested on ipod simulator
apps/keymaps/keymap-ipod.c [diff]
Dana Conrad
29th Aug 20:15 c11ed99cb4: bugfix: redraw yes/no screen after a full skin update

This fixes a bug reported on IRC:

1. Set 'bookmark on stop' to 'ask' 2. Play a track from the file browser 3. Stop playback, yes/no screen briefly flashes then disappears.

The screen still handles input correctly but the prompt will not be displayed on the LCD. Long story short, get_action() can cause the skin engine to do a full redraw which cleared the screen and erased the prompt.

There is a special event, GUI_EVENT_NEED_UI_UPDATE, which the list code uses to avoid precisely this problem.

Hooking up a handler for this event and redrawing the yes/no prompt fixes the bug.
apps/gui/yesno.c [diff]
Aidan MacDonald
28th Aug 13:23 6322e66219: Remove long-deprecated old style EQ settings

These were deprecated by 1eb17dc9f4 back in 2013 just prior to the 3.13 release. We've had 3.14 and 3.15 since then and I guess nobody will complain if we finally remove them (fingers crossed...)

Also fix a line which got missed when converting hardcoded numbers to EQ_NUM_BANDS in that commit.
apps/menus/eq_menu.c [diff]
apps/settings_list.c [diff]
Aidan MacDonald
27th Aug 05:19 965572705b: plugin lib/arg_helper parse 'command line' args

add a helper function to allow plugins to parse the parameter string passed into plugins support included for bool, char, string and numbers+decimals
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/arg_helper.c [new]
apps/plugins/lib/arg_helper.h [new]
William Wilgus
26th Aug 20:19 cab8cea0f0: lcd_putsxyofs 16 bit lcd_mono_bitmap_part [AS] part duex

'Bugfix' mono_bitmap_part reads ahead in the buffer, if the height is <= char bit pixels other memory gets read found with [Address Sanitizer]

also g#3332 since this is clearly a problem across the code instead place the check for height < 8 in the lcd_mono_bitmap_part function

second try places the check above the negative y offset this was causing glitches on the Q1 and likely other TS targets since a negative y was added to height it made it < CHAR_BIT setting stride = 0 even though the bitmap was >= CHAR_BIT high
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
26th Aug 19:34 30e96a3732: quickscreen: fix EQ enable not working in quickscreen

The EQ enabled setting needs to call into the DSP core when it's changed but this was only hooked into the EQ menu. The quickscreen uses option_select_next_val() so those DSP hooks were not getting called because the setting did not have any callback defined.

It seems this bug was introduced by 362f7a3220 removing the blanket call to settings_apply(). Other settings might be affected too.
apps/menus/eq_menu.c [diff]
apps/menus/eq_menu.h [diff]
apps/settings_list.c [diff]
Aidan MacDonald
26th Aug 15:59 b2386405b9: xduoox3: Disable bootloader USB mode entirely

It's not yet working and because all storage is removable (and the OF works fine) it's of limited utility aynway.
firmware/export/config/xduoox3.h [diff]
Solomon Peachy
26th Aug 15:59 93c98606f1: xduoox3: Further bootloader improvements

* Power button is what forces entry into USB mode
(can't use the other buttons due to the long SADC warmup)
* Inching closer to working USB disk mode (starts then disconnects!
bootloader/xduoox3.c [diff]
Solomon Peachy
26th Aug 13:37 987d195134: Plugin Api add core bitmaps Fix Yellow
apps/plugin.c [diff]
William Wilgus
26th Aug 12:55 b56372bbcb: Plugin Api add core bitmaps

share all the core icons with plugins these are all small mono icons like usb plug icon or play, fast forward, rewind icons

--include the icon_helper function
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/icon_helper.c [new]
apps/plugins/lib/icon_helper.h [new]
apps/recorder/icons.c [diff]
apps/recorder/icons.h [diff]
William Wilgus
25th Aug 22:28 cbf1970b56: Shanling Q1: minor update to keymap

- Enable repeat for prev/next keys
- Provide a way to access the context menu using buttons
- Update the manual
apps/keymaps/keymap-shanlingq1.c [diff]
manual/platform/keymap-shanlingq1.tex [diff]
Aidan MacDonald
25th Aug 13:05 dbd051394e: Revert "lcd_putsxyofs 16 bit lcd_mono_bitmap_part [AS]"

This reverts commit 49edfc237ba9ae27eee5e915e86989d9ee01b1da.

Reason for revert: font rendering bug, https://gist.github.com/amachronic/5fa75da280432127de4b44ee2d760281
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
22nd Aug 15:58 97b0e5b5a1: xduoox3: More minor bootloader tweaks
bootloader/xduoox3.c [diff]
Solomon Peachy
22nd Aug 14:57 d1653bc4d8: touchscreen: fix smooth scrolling in lists

This fixes those annoying jumps that happen when you hit the end of a list while scrolling.
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
Aidan MacDonald
22nd Aug 14:45 569b165cff: touchscreen: handle scrollbar properly when UI viewport is used
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
22nd Aug 14:24 a59a629514: filetypes: handle missing or empty viewers.config

We want to load builtin filetypes and other config files even if there is a problem loading viewers.config. A lot of menus expect the builtin types to be there and don't work if they're missing.
apps/filetypes.c [diff]
Aidan MacDonald
22nd Aug 11:57 d282424ef2: xduoox3: Allow user to gracefully exit USB disk mode by pressing power
bootloader/xduoox3.c [diff]
Solomon Peachy
22nd Aug 11:57 4c745fe8ac: xduoox3: A few manual improvements

* Fix a typo in a URL
* Note how to enter the OF from the bootloader
* Document how to perform a hard reset
manual/getting_started/xduoox3_install.tex [diff]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
22nd Aug 11:49 7059183438: bootloader: nuke a long-unused (and broken) code block
bootloader/common.c [diff]
Solomon Peachy
22nd Aug 02:20 2c9e2db721: xduoox3: More bootloader updates

* Rework the LCD initialization a bit
* Power off after 5 seconds if we hit a fatal error
* Turn on verbose output if PLAY is held down on powerup
* Minor code style cleanups

The goal is to not perform the LCD init unless it's needed; ie only if we run into an error or enter USB mode.
bootloader/xduoox3.c [diff]
Solomon Peachy
22nd Aug 01:53 e07c460eef: xduoox3: Bootloader improvements:

* Explicitly clear the caches prior to launching the binary
* Ensure the function that launches the binary is in iram
* Re-sequenced some of the subsystem initializations
* Fixes for USB mode
bootloader/xduoox3.c [diff]
Solomon Peachy
20th Aug 19:17 247258b9d2: manual: Don't expect first char of name in CREDITS to be ASCII.

Fixes some names not showing in the manual.

Note that there's one name left not showing due to LaTeX unicode support missing the characters.
manual/credits.pl [diff]
Dominik Riebeling
20th Aug 19:17 356133d321: manual: Add workaround for older KOMAscript versions.

KOMAscript 3.28 changes \ifpdfoutput to \Ifpdfoutput. Add a check and redefine the new command as the old one if it's missing since only the name was changed. Not all Linux distros have a recent enough version yet.
manual/preamble.tex [diff]
Dominik Riebeling
19th Aug 18:09 c302c157d5: peakmeter: re-enable on hosted platforms

Has been disabled since HW codec support was dropped, but works fine. Tested on Surfans F20.
apps/recorder/peakmeter.c [diff]
Ulrich Hecht
19th Aug 01:30 0679faf65d: lib/helper add talk_val()

talk_value_decimal() replaced talk_value()
apps/plugins/announce_status.c [diff]
apps/plugins/lib/helper.c [diff]
apps/plugins/lib/helper.h [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
William Wilgus
19th Aug 01:17 24e8fa317e: plugins trade talk_value for talk_value_decimal

talk_value is just talk_value_decimal with 0 decimals

lets add the extended function instead

static inline int talk_val(long n, int unit, bool enqueue)
{
#define NODECIMALS 0 return rb->talk_value_decimal(n, unit, NODECIMALS, enqueue);
}
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/announce_status.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/properties.c [diff]
apps/plugins/vbrfix.c [diff]
William Wilgus
18th Aug 22:17 4cbb5b4201: x1000: trigger the virtual LED on disk activity
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.h [diff]
Aidan MacDonald
17th Aug 12:28 3e37013218: misc.c strip_extension() cleanup

optimize + add some error checking of inputO
apps/misc.c [diff]
William Wilgus
15th Aug 19:41 5a4cc8da3f: Drop HAVE_RTC_RAM

Only Archos players ever used this feature and it isn't implemented on any current targets.
apps/gui/wps.c [diff]
apps/main.c [diff]
apps/settings.c [diff]
firmware/export/config/android.h [diff]
firmware/export/config/cowond2.h [diff]
firmware/export/config/nokian8xx.h [diff]
firmware/export/config/nokian900.h [diff]
firmware/export/config/pandora.h [diff]
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/sansam200v4.h [diff]
firmware/export/config/sdlapp.h [diff]
Aidan MacDonald
15th Aug 19:36 de578bde1f: Add advanced build option to omit building plugins

Compiling the plugins takes quite a long time and is unnecessary if you're only working on the core code. Having an option is nicer than having to edit the configure script by hand.
tools/configure [diff]
Aidan MacDonald
15th Aug 13:03 cc6b036ef5: logf: Fix an incorrect fix in 835d0c737a7
firmware/logf.c [diff]
Solomon Peachy
15th Aug 11:27 eafdba87f8: icon.c bug fix handle read errors

read errors are negative buf_sz was a unsignbed int
apps/gui/icon.c [diff]
William Wilgus
14th Aug 23:27 2ce7c716c3: apps/open_plugins cast menu id to (void*)
apps/plugins/open_plugins.c [diff]
William Wilgus
14th Aug 21:56 25cebf2f85: Fix red from 04fe77a4
firmware/target/arm/pp/system-target.h [diff]
Solomon Peachy
14th Aug 20:29 04fe77a465: Remove the (very) incomplete port for the Tatung TPJ-1102

It was barely even a stub, and hasn't seen any development since 2009
apps/plugins/blackjack.c [diff]
apps/plugins/invadrox.c [diff]
bootloader/SOURCES [diff]
bootloader/tpj1022.c [deleted]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/tatungtpj1022.h [deleted]
firmware/target/arm/pp/system-pp502x.c [diff]
firmware/target/arm/pp/system-target.h [diff]
firmware/target/arm/pp/usb-fw-pp502x.c [diff]
firmware/target/arm/tatung/app.lds [deleted]
firmware/target/arm/tatung/boot.lds [deleted]
firmware/target/arm/tatung/tpj1022/adc-target.h [deleted]
firmware/target/arm/tatung/tpj1022/backlight-target.h [deleted]
firmware/target/arm/tatung/tpj1022/backlight-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/button-target.h [deleted]
firmware/target/arm/tatung/tpj1022/button-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/lcd-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/power-tpj1022.c [deleted]
firmware/target/arm/tatung/tpj1022/powermgmt-tpj1022.c [deleted]
tools/builds.pm [diff]
tools/configure [diff]
utils/themeeditor/resources/targetdb [diff]
Solomon Peachy
14th Aug 13:13 786d06742a: Remove Samsung YP-Z5 port

It has only a couple GB of onboard flash storage with no storage driver in Rockbox. It hasn't seen any meaningful development since its initial commit, it's not on the build farm, and the bootloader build is broken by other refactoring.
apps/SOURCES [diff]
apps/keymaps/keymap-ypz5.c [deleted]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/samsungypz5.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/audio-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/backlight-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/backlight-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/button-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/button-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/debug-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/fmradio-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/ftl-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/lcd-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/lcd-ypz5.c [deleted]
firmware/target/arm/imx233/samsung-ypz5/powermgmt-target.h [deleted]
firmware/target/arm/imx233/samsung-ypz5/powermgmt-ypz5.c [deleted]
firmware/target/arm/imx233/touchscreen-imx233.c [diff]
tools/configure [diff]
tools/scramble.c [diff]
Aidan MacDonald
14th Aug 09:42 62260aa705: touchscreen: Fix softlock handling

Expands upon c067b344e8. The bug mentioned in that commit affects touchscreens as well as touchpads, plus touchscreens were subject to a few other issues because 'last->tick' was not always set.
apps/action.c [diff]
Aidan MacDonald
14th Aug 02:44 8c36d8b131: lua Fix a few potential bugs
apps/plugins/lua/lauxlib.c [diff]
apps/plugins/lua/lmathlib.c [diff]
apps/plugins/lua/lparser.c [diff]
William Wilgus
13th Aug 11:51 aad15d5cd7: code cleanup encase ;; in brackets {;;}
apps/plugins/lua/tlsf_helper.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/test_viewports.c [diff]
William Wilgus
13th Aug 11:28 da97524252: lua strftime fix out of scope buffer sbuf goes out of scope of the case statement
apps/plugins/lua/strftime.c [diff]
William Wilgus
13th Aug 10:32 2df306923a: file_internal.c guard file_cache_reset() from null pointer

I feel this is probably unlikely to be called with a NULL pointer for cachep but being that we are already doing the check why not guard file_cache_reset as well
firmware/common/file_internal.c [diff]
William Wilgus
12th Aug 10:07 6de6e1459d: Eros Q Hosted: Apply DC Bias to PCM Data

Similar to the native port, the hosted port benefits from adding a -1 dc bias to the PCM data. This prevents almost all clicking artifacts.
firmware/export/erosqlinux_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Dana Conrad
12th Aug 02:40 235e41578b: metadata/mp3data.c init vars & add sanity checks
lib/rbcodec/metadata/mp3data.c [diff]
William Wilgus
12th Aug 02:25 30945f1180: metadata/metadata_common.c check read for proper bytes read
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
12th Aug 02:16 f05a7a10a6: metadata/metadata_common.c WS changes
lib/rbcodec/metadata/metadata_common.c [diff]
William Wilgus
12th Aug 02:06 7aa0e0a898: metadata/asf.c ensure variable init & add sanity checks
lib/rbcodec/metadata/asf.c [diff]
William Wilgus
11th Aug 15:00 d8bec3da63: enc_config.c don't overrun mp3_enc_bitr[] array
apps/enc_config.c [diff]
William Wilgus
11th Aug 14:56 1dd531ff03: codec_thread.c don't overrun audio_formats[] array
apps/codec_thread.c [diff]
William Wilgus
11th Aug 12:29 e3e72d6dba: metadata/mp4.c fix small oversight / bug

didn't set the genre string to null on case entry means read failure would leave genre string indeterminate

add explicit NULL & leave genre uninitialized
lib/rbcodec/metadata/mp4.c [diff]
William Wilgus
11th Aug 01:36 c9e9558044: metadata/mp4.c check for read errors skip buffer appropriately

WIP
lib/rbcodec/metadata/mp4.c [diff]
William Wilgus
10th Aug 23:15 77a98ada12: Eros Q Native: Make Mute logic channel-independent

An oversight on my part meant that setting channel balance to 100% L or 100% R would mute both channels - this logic will prevent that.
firmware/drivers/audio/eros_qn_codec.c [diff]
Dana Conrad
10th Aug 22:33 cdd1f90131: touchscreen: Respect list item selection size

Some lists have tall items that span more than one line of text, eg. the bookmark menu or ID3 tag menu. The touchscreen code didn't handle these menus correctly and touching on the lower part of a list item could select "between" two items, leading to incorrect rendering and behavior due to callers relying on the selected item being properly aligned to the selection size. Fix this by ensuring the touch code only generates properly aligned selections.
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
10th Aug 21:48 b103b07503: touchscreen: Fix annoying bug when switching touchscreen modes

Changing the touchscreen mode in the settings menu required a reboot to fully apply because this code was trying to reapply old settings. This is a hack. IMHO to fix it properly the behavior of touchscreen mode needs to be changed so code that needs a specific mode doesn't need to twiddle global state, but that's a bigger undertaking.
apps/menu.c [diff]
Aidan MacDonald
10th Aug 21:48 69420e796c: touchscreen: Use pointing mode in the yes/no screen

Seems to fix the unintuitive / inaccurate behavior of this screen. Rejigger the generic touchscreen keymap because the 3x3 buttons are no longer used. Also map physical keys for yes/no on the Q1.
apps/gui/yesno.c [diff]
apps/keymaps/keymap-shanlingq1.c [diff]
apps/keymaps/keymap-touchscreen.c [diff]
Aidan MacDonald
10th Aug 21:47 a8063054f9: skin engine: handle bitmap read errors appropriately
apps/gui/skin_engine/skin_parser.c [diff]
Aidan MacDonald
10th Aug 19:00 614b189f7a: lua rockaux.c filetol fix invalid conditional
apps/plugins/lua/rockaux.c [diff]
William Wilgus
10th Aug 11:56 ee6b737b65: pcm_record.c iAudioM5 FixRed

Share a bit of code in order to free up iRam for the iAudio M5
apps/recorder/pcm_record.c [diff]
William Wilgus
10th Aug 11:22 4fb5aeb096: recorder/pcm_record.c cleanup copy function

re: coverity write_write_order: In long(*s++) + *s++, s is written in *s++ and written in long(*s++) but the order in which the side effects take place is undefined because there is no intervening sequence point.
apps/recorder/pcm_record.c [diff]
William Wilgus
9th Aug 22:18 2f0fd66e44: re-synchronize english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
9th Aug 16:25 e4c5b082e8: inflate: fix public function pointers
firmware/include/inflate.h [diff]
James Buren
8th Aug 13:27 275c762bb2: As3525 wavpack_enc document some intentional switch fall through
firmware/target/arm/as3525/audio-as3525.c [diff]
firmware/target/arm/as3525/debug-as3525.c [diff]
lib/rbcodec/codecs/wavpack_enc.c [diff]
William Wilgus
7th Aug 21:13 0a6d7abd13: metadata/asap.c consolidate read char function and check return values

and a bit of cleanup using macros to make the code easier to follow
lib/rbcodec/metadata/asap.c [diff]
William Wilgus
7th Aug 21:07 da778a1783: metadata/asap.c WS cleanup
lib/rbcodec/metadata/asap.c [diff]
William Wilgus
7th Aug 16:03 5311ff0173: tagcache: Don't treat tag_virt_basename as a numeric tag
apps/tagcache.h [diff]
Aidan MacDonald
7th Aug 15:52 cf3fa437fc: Remove unhelpful unsigned casting trick
apps/plugins/imageviewer/jpeg/jpeg_decoder.c [diff]
Aidan MacDonald
7th Aug 15:18 39fff5cb53: move PCM_NATIVE_BITDEPTH definiton into global config code
firmware/export/audiohw.h [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Solomon Peachy
7th Aug 15:04 eeb0aaf36f: fiiom3k: Add bookmark screen keymapping

Forgot to commit this back around the time I did the manual
apps/keymaps/keymap-fiiom3k.c [diff]
Aidan MacDonald
7th Aug 14:43 a2bbd1a549: Fix warnings from 56b0dde545

Need a default bit depth in pcm-x1000.c
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Dana Conrad
7th Aug 14:21 56b0dde545: Higher bitdepth software volume scaling

Operates between 0 and -74 dB (mute) without issue
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/export/config/erosqnative.h [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Dana Conrad
7th Aug 14:21 16b0098256: ErosQ Native: Add DC Offset to PCM data

A small negative offset seems to silence all play/pause clicking on the PCM5102A.

Also adding PCM soft muting, and muting the headphone amp when the headphones are detected as removed. This has been tested to not cause any unintended side effects on the line out.

Also confirmed the numerical dB values are (approx.) correct.
firmware/drivers/audio/eros_qn_codec.c [diff]
firmware/export/eros_qn_codec.h [diff]
firmware/pcm_sw_volume.c [diff]
Dana Conrad
7th Aug 04:50 57293f1fd9: metadata/vfx.c cleanup string and character handling
lib/rbcodec/metadata/vtx.c [diff]
William Wilgus
7th Aug 03:03 60933d98c6: inflate: import initial module for deflate decompression

This will eventually be used by the ZIP module and other things that support DEFLATE based streams.
firmware/SOURCES [diff]
firmware/common/inflate.c [new]
firmware/include/inflate.h [new]
James Buren
7th Aug 02:53 603e749c1d: metadata/smaf.c handle read errors
lib/rbcodec/metadata/smaf.c [diff]
William Wilgus
7th Aug 00:55 8a8fd3d4a3: metadata/mp3data.c set data to 0 in case of read error
lib/rbcodec/metadata/mp3data.c [diff]
William Wilgus
6th Aug 18:59 2008b7d1b0: Fix yellow from d541a72a
apps/menus/eq_menu.c [diff]
Aidan MacDonald
6th Aug 18:38 257ba1d2e0: Fix possible negative fd in playlist.c
apps/playlist.c [diff]
Aidan MacDonald
6th Aug 18:34 02b940396b: Be sure to wipe id3 tag after failed parse in playback.c
apps/playback.c [diff]
Aidan MacDonald
6th Aug 18:23 d541a72a0e: Bugfixes in eq_menu.c
apps/menus/eq_menu.c [diff]
Aidan MacDonald
6th Aug 18:23 1a9a5fc279: Fix wrong printf format in system-hosted.c
firmware/target/hosted/system-hosted.c [diff]
Aidan MacDonald
6th Aug 17:54 b8b195a296: Fix hosted glibc backtrace

According to backtrace(3) man page, the string returned from backtrace_symbols() contains the return address so we shouldn't need to print it ourselves.
firmware/target/hosted/backtrace-glibc.c [diff]
Aidan MacDonald
6th Aug 16:10 6b1b7b6016: Fix use of uninitialized variable in mp4 metadata parser
lib/rbcodec/metadata/mp4.c [diff]
Aidan MacDonald
6th Aug 15:46 34fcea0b20: Fix path buffer overflow in screendump

Overflow is due to a hidden assumption in create_datetime_filename() and create_numbered_filename() where buffer must be >= MAX_PATH bytes.
firmware/screendump.c [diff]
Aidan MacDonald
6th Aug 14:08 835d0c737a: logf: Fix two issues with logf_panic_dump()

* It had a (read) buffer overflow when dumping the stuff on the back half of the buffer
* a highly questionable code construct was nuked
firmware/export/logf.h [diff]
firmware/logf.c [diff]
Solomon Peachy
6th Aug 03:08 da45b37fac: tools/iriver: fix resource management in encode/decode functions
tools/iriver.c [diff]
James Buren
5th Aug 14:22 a20755e9ef: test_disk: Minor fix in an error path

...Log the variable containing the actual error
apps/plugins/test_disk.c [diff]
Solomon Peachy
5th Aug 13:44 9f0f2c6658: metadata: Fix sign extension in get_uint64_le() routine
lib/rbcodec/metadata/metadata_common.c [diff]
Solomon Peachy
5th Aug 13:44 566d836ac6: mikmod: Uninitialized variable used in a control flow decision
apps/plugins/mikmod/mikmod.c [diff]
Solomon Peachy
5th Aug 13:44 f3010c6a8e: hosted: Fix rtc_write_datetime() error handling

(if mktime() fails, don't attempt to write its result to the RTC)
firmware/target/hosted/rtc.c [diff]
Solomon Peachy
5th Aug 11:01 cb6b0d2c0e: disk.c ensure a valid volume is returned from get_free_volume()

volume is used for element math and indexing into buffers
-1 volume is bad
firmware/common/disk.c [diff]
William Wilgus
5th Aug 11:00 d57900ae12: misc.c format_sound_value guard division by zero
apps/misc.c [diff]
William Wilgus
5th Aug 10:38 848633f921: lib/skin_parser check that malloc succeeded
lib/skin_parser/skin_parser.c [diff]
William Wilgus
5th Aug 10:26 03a6eb63f1: Simplify clamp_component

Surprise surprise: the compiler generates shorter, branch-free code if we don't try to be clever with signed/unsigned casting tricks.
apps/recorder/jpeg_common.h [diff]
Aidan MacDonald
4th Aug 19:04 429a7e2c0a: Avoid buffer overflow when generating bookmark file name
apps/bookmark.c [diff]
Aidan MacDonald
4th Aug 19:04 bdd9c8dfc8: plugins: Fix issues in 2048

One of these was an unintentional fallthrough -- if you said no to
'quit without saving' it would save and quit.
apps/plugins/2048.c [diff]
Aidan MacDonald
4th Aug 18:59 005c414e5f: Document intentional fallthroughs + fix harmless unintended ones
apps/debug_menu.c [diff]
apps/gui/list.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/gui/wps.c [diff]
apps/onplay.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/doom/p_ceilng.c [diff]
apps/plugins/doom/p_floor.c [diff]
apps/plugins/goban/goban.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/metronome.c [diff]
apps/plugins/mpegplayer/libmpeg2/header.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/plugins/rocklife.c [diff]
apps/plugins/rockpaint.c [diff]
apps/tagcache.c [diff]
apps/usb_keymaps.c [diff]
firmware/common/file_internal.c [diff]
firmware/common/vuprintf.c [diff]
lib/rbcodec/codecs/liba52/downmix.c [diff]
lib/rbcodec/dsp/crossfeed.c [diff]
Aidan MacDonald
4th Aug 17:10 ef41cc6623: Revert "rbutil: Remove done() signal from Themes Install window."

The done() signal is acutally needed to indicate the installation being finished. Fixes installation being stuck after themes install.

This reverts commit fb6840e57260b1da35924914d47731e06597afea.
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
4th Aug 14:56 c522917644: plugins/resistor: Fix incorrect check for a valid 4th band value
apps/plugins/resistor.c [diff]
Solomon Peachy
4th Aug 13:39 37bfcab23f: powermgmt: Clean up some convoluted #ifdefs

Makes it more explicit what code is used under which circumstances.
firmware/powermgmt.c [diff]
Solomon Peachy
3rd Aug 11:43 0d0640e57a: menu.c guard against NULL menu, list, setting pointers apps/menu.c [diff]
William Wilgus
3rd Aug 11:02 074daea51f: lua fix potential null warning

I'm not sure this would happen but I suspect its possible to get malformed data back from lineinfo as this is how the error system tracks code flow and this is a hacked add-on to allow RLE (run length encoding) of said code flow data
apps/plugins/lua/lcode.c [diff]
William Wilgus
3rd Aug 11:00 1fd190d02d: mask_select guard against null pointers
apps/gui/mask_select.c [diff]
William Wilgus
3rd Aug 03:06 36e48a8bb2: icon.c guard against negative error values bytesread is copied to an unsigned int for core_shrink
apps/gui/icon.c [diff]
William Wilgus
3rd Aug 03:01 93c9d675af: folder_select prevent directory handle leak on error
apps/gui/folder_select.c [diff]
William Wilgus
3rd Aug 02:49 429eedf49e: list-skinned.c check label pointer for validity
apps/gui/bitmap/list-skinned.c [diff]
William Wilgus
3rd Aug 02:32 382b52b120: filetypes.c filesize() guard against negative error values buffer size is copied to an unsigned int for core_alloc
apps/filetypes.c [diff]
William Wilgus
3rd Aug 00:57 1fc4a17e1c: language.c fix possible buffer overrun

ensure zero termination regardless of data read from lang file
apps/language.c [diff]
William Wilgus
3rd Aug 00:31 3b6c3d769f: open_plugins bugfix failure to save

if you added a plugin through the core settings and then used the shortcut immediately the entry would never get flushed to disk
apps/open_plugin.c [diff]
apps/root_menu.c [diff]
William Wilgus
2nd Aug 03:00 0501af8b06: metadata/flac.c fix potential buffer overrun
lib/rbcodec/metadata/flac.c [diff]
William Wilgus
2nd Aug 02:29 247731fe8c: id3tags.c check for buffer overrun
lib/rbcodec/metadata/id3tags.c [diff]
William Wilgus
2nd Aug 02:27 2346a7aa6d: playlist_catalog fix strcpy overlap, potential buffer overrun
apps/playlist_catalog.c [diff]
William Wilgus
2nd Aug 00:43 83653023d4: tagcache.c clean up
apps/tagcache.c [diff]
William Wilgus
1st Aug 02:20 a2fd00cf38: Software Volume: Remove sample rounding
firmware/pcm_sw_volume.c [diff]
Dana Conrad
31th Jul 14:44 ecf0d631e7: tagcache.c Fix potential buffer overruns WIP

Needs tested
apps/tagcache.c [diff]
William Wilgus
31th Jul 14:26 7413442411: tagcache.c WS changes
apps/tagcache.c [diff]
William Wilgus
31th Jul 01:30 fad4c75163: crc32/adler32: add full copyright notice to source files
firmware/common/adler32.c [diff]
firmware/common/crc32.c [diff]
James Buren
30th Jul 23:11 f32fc84ef6: adler32: import adapted implementation from tinf/zlib

This adds an adapted version of the adler32 algorithm from tinf/zlib which will be necessary to support ZLIB deflate streams in the future.
firmware/SOURCES [diff]
firmware/common/adler32.c [new]
firmware/include/adler32.h [new]
James Buren
30th Jul 04:40 ee05b8574a: playlist.c fix multitude of sins Invalid Control file on USB unplug?

failure to close file handles reading memory prior to buffer on error loop variable integer overflow on error
apps/playlist.c [diff]
William Wilgus
30th Jul 03:15 f9c5d1fccf: open_plugin.c (CORE) File input Bugfixes

Explicitly Null terminate char fields 0 is a valid file descriptor
apps/open_plugin.c [diff]
William Wilgus
30th Jul 02:30 ea438ee132: cuesheet.c Fix potential NULL in INDEX parsing

untested
apps/cuesheet.c [diff]
William Wilgus
30th Jul 01:41 7318d393ea: libc: atoi() is supposed to return 0 if handed a NULL pointer
firmware/libc/atoi.c [diff]
Solomon Peachy
25th Jul 14:55 2e9443104f: rbcodec: Fix typo in makefile

Hopefully this will fix all those random build failures.
lib/rbcodec/codecs/codecs.make [diff]
Aidan MacDonald
25th Jul 14:36 05d4d6a4f2: Fix remaining yellow from e532714d1f
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Aidan MacDonald
25th Jul 14:22 148fac6f34: Fix yellow from e532714d1f
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
Aidan MacDonald
25th Jul 14:07 e532714d1f: pcm: Remove unused function pcm_play_dma_get_peak_buffer()
firmware/export/pcm-internal.h [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/arm/as3525/pcm-as3525.c [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
firmware/target/arm/rk27xx/pcm-rk27xx.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c [diff]
firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
firmware/target/hosted/android/pcm-android.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
firmware/target/hosted/maemo/pcm-gstreamer.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Aidan MacDonald
25th Jul 13:53 77ec752248: shortcuts: fix file handle leak on OOM condition
apps/shortcuts.c [diff]
Aidan MacDonald
24th Jul 16:27 d0536b8b6b: Fix typo in f8bbe3352c4d9f21fde892ee8b60563decfc6a14
tools/builds.pm [diff]
Solomon Peachy
24th Jul 15:16 f8bbe3352c: rocker: First crack at manual for the AGPTek Rocker

It needs screenshots and slightly better installation instructions

Includes bits shared with other HibyOS platforms
manual/advanced_topics/main.tex [diff]
manual/getting_started/hibyos_install.tex [new]
manual/getting_started/installation.tex [diff]
manual/platform/agptekrocker.tex [new]
manual/platform/keymap-agptekrocker.tex [new]
manual/rockbox_interface/main.tex [diff]
tools/builds.pm [diff]
Solomon Peachy
24th Jul 15:16 a0948ddfa1: Enable building the manual for the FiiO M3K and Shanling Q1

The nightly manual builds previously only included targets that were marked as "stable" -- The M3K and Q1 are not because they lack rbutil integration, but we would like to provide the manual builds regardless.
tools/builds.pm [diff]
Solomon Peachy
24th Jul 14:07 fde6eaa8e1: Add Fiio M3K and Shanling Q1 manuals

Includes installation instructions and a description of Rockbox's limitations versus the original firmware. Some things are still missing, notably screenshots for the Q1. The M3K image also needs to be updated to include the 'select' button.
manual/advanced_topics/main.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/jztool_install.tex [new]
manual/platform/fiiom3k.tex [new]
manual/platform/keymap-fiiom3k.tex [new]
manual/platform/keymap-shanlingq1.tex [new]
manual/platform/shanlingq1.tex [new]
manual/rockbox_interface/main.tex [diff]
Aidan MacDonald
24th Jul 13:44 42ba117952: tree.c use strlcpy to avoid buffer ovfl
apps/tree.c [diff]
William Wilgus
23rd Jul 22:53 26fd90bb49: talk.c check for proper file load

few sanity checks on voice clip loads
apps/talk.c [diff]
William Wilgus
23rd Jul 00:26 cb92280eca: usb_storage: Fix a memset in SCSI_INQUIRY that overflowed its buffer

The funny thing is that the memset() for the field in question was redundant, as the overall inquiry structure was memset(0) already.
firmware/usbstack/usb_storage.c [diff]
Solomon Peachy
22nd Jul 23:55 68294da574: Document an intentional fallthrough in the volume limit menu code
apps/menus/sound_menu.c [diff]
Solomon Peachy
22nd Jul 23:24 1fea6f4670: plugins pong, properties remove dead code
apps/plugins/pong.c [diff]
apps/plugins/properties.c [diff]
William Wilgus
22nd Jul 23:23 363f6595b4: tlsf make ~0 explicitly unsigned ~0u
lib/tlsf/src/tlsf.c [diff]
William Wilgus
22nd Jul 13:50 00129ac872: Fix battery_bench bug by using a static buffer for stack

Since battery_bench is a TSR (terminate & stay resident) plugin it cannot allocate the plugin buffer -- various parts of the Rockbox core make use of it as temporary storage space. The buffer was used for stack space so this generated false 'Stkov' panics when one of those in-core users overwrote the buffer.

The default stack size of 1kb is a bit small, so use 4x the default size to be on the safe side.

This also fixes a minor issue where trying to view OS stack usage while battery_bench was running would cause audio dropouts, due to scanning the possibly huge stack with IRQs disabled.
apps/plugins/battery_bench.c [diff]
Aidan MacDonald
21st Jul 15:06 f0e3a36fe4: autoresume: Properly check the path string, not the pointer.

(the pointer is _always_ valid as it's to a fixed buffer)
apps/playback.c [diff]
Solomon Peachy
21st Jul 11:26 8cd4b8da84: talk.c check for 0 talk clips file descriptor leaks & announce_status fix typo

talk.c potential division by zero warrants a check

desowin pointed out multiple fd leaks

announce_status.c dumb typo
apps/talk.c [diff]
William Wilgus
21st Jul 11:26 48c29e3b3b: Fix announce_status usage of plugin buffer

Since this is a TSR plugin, it is not safe to use the plugin buffer. Convert to using static buffers instead.
apps/plugins/announce_status.c [diff]
Aidan MacDonald
20th Jul 23:25 b91ad60d63: timefuncs.c valid_time() should return false if tm == NULL and not try to deref

luckily no one has yet..
firmware/common/timefuncs.c [diff]
William Wilgus
20th Jul 20:30 966e210e6d: Small fixes to kbd_create_layout

- Make the argument const since it's not actually mutated
- Actually return the size of the buffer used since this is what it was supposed to do (although no existing callers cared anyway)
apps/plugins/lib/kbd_helper.c [diff]
apps/plugins/lib/kbd_helper.h [diff]
Aidan MacDonald
20th Jul 14:56 740a50687f: jztool: add support for Shanling Q1 and Eros Q
rbutil/jztool/Makefile [diff]
rbutil/jztool/README.md [diff]
rbutil/jztool/include/jztool.h [diff]
rbutil/jztool/jztool.c [diff]
rbutil/jztool/src/device_info.c [diff]
rbutil/jztool/src/identify_file.c [diff]
rbutil/jztool/src/ucl_unpack.c [new]
rbutil/jztool/src/usb.c [diff]
rbutil/jztool/src/fiiom3k.c rbutil/jztool/src/x1000.c [rename]
Aidan MacDonald
20th Jul 14:24 6f042e91dd: FS #13302 - Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Aidan MacDonald
20th Jul 00:09 df37450f91: talk: Explicitly cast -1 as unsigned before a left shift.

The code is explcitly relying on twos complement numerical represntation so this just shuts up the compiler and static analysis warnings.
apps/talk.h [diff]
Solomon Peachy
18th Jul 13:15 09fc9ee9a3: sim: change Eros Q native bitmap to a symlink
uisimulator/bitmaps/UI-erosqnative.bmp []
Aidan MacDonald
18th Jul 12:51 07a3f6bcdb: add Eros Q native simulator build
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-erosqnative.bmp [new]
Aidan MacDonald
18th Jul 12:14 3e7a09cb0d: New Port: Eros Q Native

What works:
- LCD: 16-bit RGB565
- all buttons, including scrollwheel
- SD Card
- Battery level and charging/not charging status
- USB
- audio
- sample rate switching
- HP / LO detect, with "safe" fixed LO volume - LO volume will only be put to user-defined max volume if headphones are not present.
- rtc
- Plugins build, tried a couple and they seem OK
- Bootloader, installable to nand via usbboot

What doesn't work:
- Dual Boot
- power on/off has intermittent, low volume audio click
(sometimes it's completely silent, sometimes there's a click)
- Audio uses 16-bit volume scaling, so clicking/popping is pretty bad at lower volumes - need 32 bit volume scaling, 24 bit I2S data
- USB HID keys not yet defined
- no jztool support

Unknowns:
- Stereo Switch pins: Direction select, AC_DC
(probably not even hooked up)
- What is the actual purpose of the Stereo Swtich?
- How does the bluetooth module connect?

"Someday" stuff:
- get LCD working at higher bit depth
- Bluetooth
apps/plugins/rockpaint.c [diff]
bootloader/SOURCES [diff]
bootloader/x1000.c [diff]
firmware/SOURCES [diff]
firmware/drivers/audio/eros_qn_codec.c [new]
firmware/export/audiohw.h [diff]
firmware/export/config.h [diff]
firmware/export/config/erosqnative.h [new]
firmware/export/eros_qn_codec.h [new]
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/adc-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/backlight-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/backlight-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/boot.make [new]
firmware/target/mips/ingenic_x1000/erosqnative/button-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/button-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/gpio-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/i2c-target.h [new]
firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/erosqnative/spl-erosqnative.c [new]
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
tools/configure [diff]
tools/scramble.c [diff]
Dana Conrad
18th Jul 05:17 64a24591ae: crc32: add fast variant of regular crc_32r function

This relies on a macro, CRC32R_FAST, to select which version to compile with. In tests the fast version is 2x faster at the expense of requiring 960 more bytes for the lookup table. For now the default is the space optimized version but in the future I would like to enable this for ports where we can afford the extra storage and/or memory requirements.
firmware/common/crc32.c [diff]
James Buren
17th Jul 12:18 cd17decd5a: xduoox3ii: Add "Super Slow" filter roll-off

I'm not happy with the proliferation of filter-roll-off options but I don't have a less ugly solution.
apps/lang/english.lang [diff]
apps/settings_list.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/export/xduoolinux_codec.h [diff]
Solomon Peachy
15th Jul 19:40 ec31a2b4ad: Fix builds.pm syntax error (1d72d9cf)
tools/builds.pm [diff]
Solomon Peachy
15th Jul 18:54 1d72d9cf28: builds: add Shanling Q1 to unstable
tools/builds.pm [diff]
Aidan MacDonald
15th Jul 18:37 144d1b1e81: misc: Fix up a few warnings uncovered by LTO

* direct use of memcpy() instead of ci->memcpy() in flac and mod
* uninitialized variable in mpegplayer
apps/plugins/mpegplayer/video_out_rockbox.c [diff]
lib/rbcodec/codecs/flac.c [diff]
lib/rbcodec/codecs/libspeex/modes_wb.c [diff]
lib/rbcodec/codecs/mod.c [diff]
Solomon Peachy
13th Jul 21:01 4c60bc9e68: New port: Shanling Q1 native

- Audio playback works
- Touchscreen and buttons work
- Bootloader works and is capable of dual boot
- Plugins are working
- Cabbiev2 theme has been ported
- Stable for general usage

Thanks to Marc Aarts for porting Cabbiev2 and plugin bitmaps.

There's a few minor known issues:

- Bootloader must be installed manually using 'usbboot' as there is no support in jztool yet.

- Keymaps may be lacking, need further testing and feedback.

- Some plugins may not be fully adapted to the screen size and could benefit from further tweaking.

- LCD shows abnormal effects under some circumstances: for example, after viewing a mostly black screen an afterimage appears briefly when going back to a brightly-lit screen. Sudden power-off without proper shutdown of the backlight causes a "dissolving" effect.

- CW2015 battery reporting driver is buggy, and disabled for now. Battery reporting is currently voltage-based using the AXP192.
apps/SOURCES [diff]
apps/features.txt [diff]
apps/keymaps/keymap-shanlingq1.c [new]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/bitmaps/mono/SOURCES [diff]
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/bubbles_background.360x400x16.bmp [new]
apps/plugins/bitmaps/native/bubbles_emblem.360x400x16.bmp [new]
apps/plugins/bitmaps/native/invadrox_background.360x400x16.bmp [new]
apps/plugins/bitmaps/native/jewels.360x400x16.bmp [new]
apps/plugins/bitmaps/native/rockblox_background.360x400x16.bmp [new]
apps/plugins/bitmaps/native/sliding_puzzle.360x360x16.bmp [new]
apps/plugins/bitmaps/native/snake2_bottom.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_header1.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_header2.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_left.360x400x16.bmp [new]
apps/plugins/bitmaps/native/snake2_right.360x400x16.bmp [new]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/bubbles.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
...and 80 more files.
Aidan MacDonald
13th Jul 21:01 3abb7c5dd5: x1000: revamp MSC driver card detection logic

Debounce logic now handles both removal and insertion and verifies the detection is stable for 100ms before taking any action.

This solves the bootloader "file not found" issue on the Shanling Q1. It seems a false removal event was generated, causing the filesystem to be automatically unmounted. Probably this is due to some transient noise at boot. Delays didn't solve the problem, probably because the bogus hotplug event was queued, and normal mdelay() would simply delay event delivery.
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.h [diff]
Aidan MacDonald
13th Jul 04:41 3c4fdf10e2: crc32: add fast variant of regular crc_32 function

This relies on a macro, CRC32_FAST, to select which version to compile with. In tests the fast version is 2x faster at the expense of requiring 960 more bytes for the lookup table. For now the default is the speed optimized version but in the future I would like to enable this for ports where we can afford the extra storage and/or memory requirements.
firmware/common/crc32.c [diff]
James Buren
12th Jul 12:14 321680973b: Sansa Connect: Display battery info in debug menu

Show battery temperature, current, discharge power and available energy in battery debug menu.
apps/debug_menu.c [diff]
Tomasz Moń
11th Jul 14:39 84362141a0: x1000: Unified flash bootloader installer
bootloader/x1000.c [diff]
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.h [deleted]
firmware/target/mips/ingenic_x1000/installer-x1000.c [new]
firmware/target/mips/ingenic_x1000/installer-x1000.h [new]
Aidan MacDonald
11th Jul 14:39 e9d228832c: x1000: Unified bootloader
bootloader/SOURCES [diff]
bootloader/fiiom3k.c [deleted]
bootloader/x1000.c [new]
Aidan MacDonald
11th Jul 13:48 d6dcb99684: uisimulator: implement sim_modtime
uisimulator/common/filesystem-sim.c [diff]
uisimulator/common/filesystem-sim.h [diff]
James Buren
11th Jul 13:17 1298e47134: zip: include strlcpy.h
firmware/common/zip.c [diff]
James Buren
11th Jul 12:40 fa743258ea: filesystem: implement os_modtime for unix
firmware/target/hosted/filesystem-app.h [diff]
firmware/target/hosted/filesystem-hosted.h [diff]
firmware/target/hosted/filesystem-unix.c [diff]
James Buren
11th Jul 05:14 8846e087c0: zip: implement zip extraction support

This adds code sufficient to extract files to available storage given a suitable root directory to extract to. It works on an already open zip handle and also supports chain-loading a secondary callback in the event that integration into the process is desired.
firmware/common/zip.c [diff]
firmware/include/zip.h [diff]
James Buren
10th Jul 13:44 a1bcca645b: zip: rename modts field to mtime

This brings it more in line with other structs with this exact same data type and usage.
firmware/common/zip.c [diff]
firmware/include/zip.h [diff]
James Buren
10th Jul 11:20 6c084ac3ea: Sansa Connect: Ensure LCD starts before backlight

Extra delay prevents white flash after hold switch release.
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
Tomasz Moń
10th Jul 06:56 b4ecd612f7: Sansa Connect: Use deviceid in USB Serial Number

Atmel AT88SC6416C CryptoMemory is almost I2C compatible. The device is connected to bitbanged I2C bus shared with compliant I2C devices.
firmware/SOURCES [diff]
firmware/drivers/generic_i2c.c [diff]
firmware/export/generic_i2c.h [diff]
firmware/target/arm/tms320dm320/i2c-dm320.c [diff]
firmware/target/arm/tms320dm320/i2c-dm320.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/cryptomem-sansaconnect.c [new]
firmware/target/arm/tms320dm320/sansa-connect/cryptomem-sansaconnect.h [new]
firmware/usbstack/usb_core.c [diff]
Tomasz Moń
9th Jul 15:10 663539619c: configure: fix a typo that could break voice builds

(If you don't have espeak, festival, or flite installed)
tools/configure [diff]
Solomon Peachy
9th Jul 12:16 8de163b8ae: Sansa Connect: Fix reported CPU frequency

Make frequency related comments accurate. Disable UART0 clock.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/crt0-board.S [diff]
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/wifi-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
firmware/target/arm/tms320dm320/system-target.h [diff]
Tomasz Moń
9th Jul 09:24 60e2cd6de9: DM320: Regorganize LCD and TTB memory layout

Do not introduce any change for M:Robe 500 as it uses the two LCD frames in non-obvious way.

Sansa Connect and Creative ZVM use only single front framebuffer. Place TTB at DRAM end to minimize memory loss due to alignment. Reserve as little as possible memory for the LCD frames. On Sansa Connect this change extends audio buffer by 858 KiB.
apps/plugins/plugin.lds [diff]
firmware/export/dm320.h [diff]
firmware/target/arm/tms320dm320/app.lds [diff]
firmware/target/arm/tms320dm320/boot.lds [diff]
Tomasz Moń
9th Jul 00:47 2e9b93dc5d: build: Nuke the ASMFLAGS workaround for gcc 3.4.x
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/libmad/libmad.make [diff]
lib/rbcodec/codecs/libspeex/libspeex.make [diff]
tools/make.inc [diff]
tools/root.make [diff]
Solomon Peachy
8th Jul 23:53 2c984f3714: build: use gcc-ar / gcc-ranlib in preparation for link-time-optimization
tools/configure [diff]
Solomon Peachy
8th Jul 23:53 2ff3425ab1: build: Rename SHARED_LDFLAG to SHARED_LDFLAGS
apps/plugins/lua/Makefile [diff]
apps/plugins/plugins.make [diff]
lib/rbcodec/codecs/codecs.make [diff]
tools/configure [diff]
Solomon Peachy
8th Jul 17:47 a9f36efa62: file/fat: rework utime function as modtime extension

This eliminates the dependence on a special struct since we were only using the modtime anyway. But it no longer fits any known standard APIs so I have converted it to our own extension instead. This can still be adapted to existing hosted APIs if the need arises.
firmware/common/file.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/file.h [diff]
firmware/include/filesystem-native.h [diff]
firmware/libc/include/time.h [diff]
James Buren
8th Jul 17:06 a0f1236e88: Fix yellow in android builds.
firmware/export/fat.h [diff]
Solomon Peachy
8th Jul 16:06 17f7dfb9d2: build: Make checkwps use global GCCOPTS
tools/checkwps/checkwps.make [diff]
Solomon Peachy
8th Jul 16:01 0e1a90ea1d: x1000: SPL refactoring

This streamlines the boot code a bit and reduces target specific boilerplate. The clock init hack used by the bootloader has been
"standardized" and works for the main Rockbox binary now, so you can boot rockbox.bin over USB without special hacks.
bootloader/fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/boot-x1000.h [new]
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/clk-x1000.h [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
8th Jul 16:01 65aa9ce570: x1000: more CPM register definitions
firmware/target/mips/ingenic_x1000/x1000/cpm.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
8th Jul 14:57 a952cf52d5: voice: Corrections to 24-hour time voicing:

* Voice leading "Oh" if hours is under 10.

(ie "0900" is read as "oh nine hundred hours"
apps/talk.c [diff]
Solomon Peachy
8th Jul 14:16 39b82afb45: Fix warnings introduced in c174d3a5 (redux)
firmware/export/fat.h [diff]
Solomon Peachy
8th Jul 14:07 78eb87f453: Revert "Hosted & tool builds need utime.h"

This reverts commit a8fd590003774cb5554eaec2d5805d5e5b699fc4.

Reason for revert: Inverted polarity and it didn't work anyway.
firmware/export/fat.h [diff]
Solomon Peachy
8th Jul 13:55 a8fd590003: Hosted & tool builds need utime.h

Should fix the warnings introduced in c174d3a5
firmware/export/fat.h [diff]
Solomon Peachy
8th Jul 13:15 c174d3a544: file/fat: add utime function

This emulates the traditional utime function from UNIX clones to allow for manual updates of the modification timestamp on files and directories.

This should only prove useful for non-native targets as those usually have a libc version of utime.
firmware/common/file.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/file.h [diff]
firmware/include/filesystem-native.h [diff]
firmware/libc/include/time.h [diff]
James Buren
8th Jul 12:25 e6ee3dd17c: builds: Move the Sansa Connect to unstable
tools/builds.pm [diff]
Solomon Peachy
7th Jul 17:31 49ca4b3e5e: timefuncs: add dostime_localtime function

This does the opposite of dostime_mktime, converting time_t back to the two dos date time values. We use gmtime_r for native because that is what is available and acts the same as localtime_r on other platforms with a regular libc available.
firmware/common/timefuncs.c [diff]
firmware/include/timefuncs.h [diff]
James Buren
7th Jul 16:48 bce6771730: Sansa Connect: Reduce USB RX buffers from 129 to 2

Reducing number of fake RX buffers saves a bit more than 127 KiB RAM. Fix compilation with CPPI logging enabled.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.h [diff]
Tomasz Moń
7th Jul 15:19 7f638e54ee: RFC: Fix a couple more dangling stack-allocated viewports

They could end up getting referenced after the stack has been popped.
apps/gui/pitchscreen.c [diff]
apps/recorder/recording.c [diff]
Solomon Peachy
7th Jul 14:51 99bf506407: Sansa Connect: Prevent unresponsive interface

AVR interrupt signal can remain active if the state has changed during state read. In such case, there won't be intterupt and the interface would appear unresponsive until AVR thread received event (e.g. USB connection/disconnect). Solve the issue by not waiting for event if AVR interrupt signal is active prior to event wait.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
7th Jul 13:49 e9ae1e9a8b: Fix red introduced in 841e704fc3
firmware/powermgmt.c [diff]
uisimulator/common/powermgmt-sim.c [diff]
Solomon Peachy
7th Jul 06:24 841e704fc3: Sansa Connect: Read HDQ battery data

Make it possible for target to provide voltage, percentage and time to empty values. The voltage measurement is nice to have in debug menu even if the actions are taken only based on percentage. Perform battery level estimation based on voltage only if percentage is not available.

Use time to empty based on actual power consumption. This makes the estimated runtime displayed in Rockbox Info to react to backlight setting. The bq27000 updates time to empty estimate every 5.12 seconds so it is possible to see the estimate with backlight off on the screen if user enters Rockbox Info, activates hold switch, waits 11 seconds and releases the hold switch.
firmware/export/config/sansaconnect.h [diff]
firmware/powermgmt.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c [diff]
Tomasz Moń
5th Jul 19:30 b87e75f768: zip: import initial module

This provides rudimentary support for parsing the contents of a ZIP file. For now this just supports uncompressed file entries but DEFLATE support is planned. This also only implements a low level public API so more work will be needed to make it usable by application code.
firmware/SOURCES [diff]
firmware/common/zip.c [new]
firmware/include/zip.h [new]
James Buren
5th Jul 13:19 2acf8db3e1: Sansa Connect: Power off LCD to save power

Prevent startup screen flash by properly using AVR LCM functions. Power off LCD when not needed to improve battery runtime.
bootloader/sansaconnect.c [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/backlight-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
Tomasz Moń
4th Jul 11:08 89d3ca77b6: Sansa Connect: Fix power off panic screen

Queue power off requests because power_off() can be called within tick context that must not acquire mutex.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c [diff]
Tomasz Moń
4th Jul 07:41 e11fa5f74e: Sansa Connect: Initial libertas WiFi driver port

Import non-free firmware image from linux-firmware package.

Firmware loading works but is disabled at compile time because just loading firmware without configuring device results in higher power consumption without any benefit to end user.
apps/main.c [diff]
firmware/SOURCES [diff]
firmware/drivers/libertas/firmware/LICENCE.Marvell [new]
firmware/drivers/libertas/firmware/gspi8686_v9.bin [new]
firmware/drivers/libertas/firmware/gspi8686_v9_helper.bin [new]
firmware/drivers/libertas/if_spi.c [new]
firmware/drivers/libertas/if_spi.h [new]
firmware/drivers/libertas/if_spi_drv.h [new]
firmware/export/config/sansaconnect.h [diff]
firmware/export/wifi.h [new]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/wifi-sansaconnect.c [new]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
tools/buildzip.pl [diff]
Tomasz Moń
3rd Jul 00:19 c9f2308a1d: fat: move fattime_mktime to timefuncs

This moves the time conversion function to timefuncs since it has uses on ports that don't use the FAT driver. This function has no dependency on the FAT driver as it is so this should not cause any issues. To reflect this separation the function was renamed to dostime_mktime since it is really for DOS timestamps. The places where it was used have also been updated.
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/timefuncs.c [diff]
firmware/drivers/fat.c [diff]
firmware/export/fat.h [diff]
firmware/include/timefuncs.h [diff]
James Buren
28th Jun 02:51 d1a92aafff: sdl: increase default worker thread size.

This fixes a mysterious, long-standing crash that's been bothering me on ipod6g for ages: a silent stack overflow in the sound mixing thread (which is triggered upon loading a new sound, apparently) will thrash the memory which is located directly before it in the address space.

In this case, it was the SDL_ButtonState variable which stores the mouse button state that was being trashed. This was manifesting itself by making the player always run forward, since MOUSE2 is mapped to +forward by default.

Fix this by quadrupling the stack size of SDL-spawned threads (not the main thread) from 1 KB to 4 KB.
apps/plugins/sdl/src/thread/rockbox/SDL_systhread.c [diff]
Franklin Wei
27th Jun 18:09 9f950d8bbf: x1000: NAND rewrite

This new design saves on binary size and stack usage. The API is also block- and page-based, requiring awareness of the chip layout to use properly. Out-of-band areas are also exposed for reading and writing.

The byte-oriented routines are kept for compatibility with the existing installer and SPL.
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.h [diff]
Aidan MacDonald
27th Jun 15:16 9246cbc65e: rbspeex: fix shared linkage on newer Linux distributions

The old linking order does not work anymore so reorder it to fix shared linkage.
tools/rbspeex/Makefile [diff]
James Buren
27th Jun 15:13 91bae5837b: mkzenboot: fix implicit function warning

strcasecmp is defined in strings.h but it is not included here.
tools/mkzenboot.c [diff]
James Buren
27th Jun 11:32 3c7c71030f: Sansa Connect: Ensure adequate AVR Slave Select delay

Waiting 10 us between selecting slave and transmitting data on SPI resolves spurious startup glitches.

Cache last read monotime value as it can differ from the first one.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
27th Jun 11:14 1b81bd8a61: Sansa Connect: Discard invalid monotime reads

Read monotime twice in a row and only accept the value if it matches or the two reads are 1 second apart.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
27th Jun 10:20 a4ab636423: Sansa Connect: More reliable AVR communication

AVR requires bigger delays between retries. Read state instead of version for synchronization purposes as it shifts more bytes.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
25th Jun 16:30 ead4bc0769: Sansa Connect: Retry AVR commands only 3 times

If the commands repeatedly fail it is likely that the AVR is not programmed. In such case simply continue normal operation. This is especially important in bootloader as it makes it possible to load new rockbox build using bootloader USB mode. Otherwise, the only recovery option would be to use I2C serial.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
25th Jun 14:12 3738510953: Sansa Connect: Implement RTC functionality

Use 32-bit monotime AVR counter for time tracking. Set the time by adding fixed offset to the counter value. Store the offset in rockbox directory to make it persistent between reboots.

Do not implement alarm functionality as wakeup is only possible from sleep and not from complete power off.
apps/keymaps/keymap-sansa-connect.c [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
25th Jun 14:10 635ec5bbbd: Sansa Connect: Manually drive SPI Slave Select

Keep Slave Select active during command transmission. This relaxes timing requirements on the AVR side.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
24th Jun 11:22 b972fe4cdf: misc: Add a .gitreview file for better gerrit integration
.gitreview [new]
Solomon Peachy
22nd Jun 20:42 6da490099b: Touchscreen: absolute point mode scrolling bugfix

Due to this inadequate bounds check, it was possible under certain conditions to cause a crash by touching & scrolling in the empty space "after" the last item of a list.
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
22nd Jun 20:37 76e07a7fd2: Touchscreen: adjust how bar padding is handled

The old way of padding out bars was to just create a bigger touch region, the intent being to make it easier to touch the end of a bar. Unfortunately, this didn't even accomplish that, and caused an annoying offset between the bar graphics and the touch point.

New method is to account for padding explicitly and clamp touches in the padding region so they are within the proper touch region.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
Aidan MacDonald
22nd Jun 20:37 02860d67c3: Touchscreen: adjust calculation of bar touch position

Increased the precision of the bar from 100 steps to 1000 steps so it is possible to make finer adjustments, and made it possible to pick the maximum value in a bar rather than just the maximum - 1.
apps/gui/skin_engine/skin_touchsupport.c [diff]
apps/gui/wps.c [diff]
Aidan MacDonald
22nd Jun 20:37 8a6b2f3abc: Touchscreen: make volume bars respect volume step increment
apps/gui/wps.c [diff]
Aidan MacDonald
22nd Jun 17:18 b5c40d9991: Sansa Connect: Refactor AVR command handling

Add defines for all commands handled by AVR, including the unknown opcodes (0xC5, 0xD3, 0xD4, 0xD5, 0xD6).

Properly synchronize with AVR and keep repeating command until it looks like AVR has accepted it.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/lcd-sansaconnect.c [diff]
Tomasz Moń
21st Jun 09:36 581081a3df: mi4: replace chksum_crc32 with crc_32r

This uses an equivalent algorithm but with a different initial value than we normally use (all bits off vs all bits on). Use the new crc_32r to replace the original MI4 crc32 implementation.

This frees up some extra space on mi4 targets which gives us more room on a few very space constrained targets (sansa c200/e200, etc).
bootloader/fat32format.c [diff]
bootloader/main-e200r-installer.c [diff]
bootloader/main-pp.c [diff]
firmware/SOURCES [diff]
firmware/common/crc32-mi4.c [deleted]
firmware/include/crc32-mi4.h [deleted]
firmware/rolo.c [diff]
firmware/target/arm/pp/mi4-loader.c [diff]
James Buren
21st Jun 03:37 fc92081080: rockbox: add a crc32 reverse polynomial function

This uses the reverse of the polynomial used by the current crc_32 function. The code for this was derived from the implementation used by tinf. This version is space optimized and should be a good way to reduce code duplication in other parts of rockbox that use the same crc32 algorithm. This is mainly of use in areas where DEFLATE is in use.
apps/plugin.c [diff]
apps/plugin.h [diff]
firmware/common/crc32.c [diff]
firmware/include/crc32.h [diff]
James Buren
20th Jun 10:33 2ca5774cf9: Sansa Connect: Indicate charging status

Consider battery level down to 0 as safe as OF continues to operate normally even when at level 0.
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c [diff]
Tomasz Moń
17th Jun 15:56 0faf978c3d: build: Add an 'xz' target to generate a .tar.xz image

Improve the tarball generation a bit too
tools/root.make [diff]
Solomon Peachy
17th Jun 15:30 3831051c47: mknkboot: optimize verifyfirm

The checksum only needs to be calculated once. A small oversight on my initial implementation.
utils/MTP/beastpatcher/mknkboot.c [diff]
James Buren
16th Jun 21:37 2ed4bf8a43: FS #13299: Handle MP3 files with more than 128K of headers before audio data

Encountered a file with ~600K of ID3v1 headers.

Optimize the potential overhead by minimizing reverse seeks.
lib/rbcodec/metadata/mp3data.c [diff]
Solomon Peachy
16th Jun 20:58 fa9ddd5af9: Revert "FS #13299: Simplify VBR frame parsing in the metadata decoder."

This reverts commit 756c0d2ac82515ea8389c69f5f87ca395daca63d.
lib/rbcodec/metadata/mp3data.c [diff]
Solomon Peachy
16th Jun 20:22 7aade87863: Fix yellow from 9ccae042
apps/plugins/calculator.c [diff]
Aidan MacDonald
16th Jun 19:50 9ccae0421a: Implement x^y in calculator
apps/plugins/calculator.c [diff]
Moshe Piekarski
16th Jun 19:49 a3f2b64a46: Enable float formatting in printf

Needed for g#3415, and if the comment is to be believed, this needed updating for recent MIPS targets anyway.

Just blanket enable everything for all targets with >= 8 MiB of RAM. The only targets with less than this are the Sansa Clip, c200v2, and m200v4, which all have 2 MB of RAM.

The added code size is around 4 KiB to 7 KiB, depending on the target.
firmware/common/vuprintf.c [diff]
Aidan MacDonald
15th Jun 07:31 f6c7407cc3: DM320: Use SD/MMC data done interrupt

Wait on semaphore until DMA finishes instead of busy waiting. This allows the CPU to be used by other tasks during transfers.

Increase peripheral clock frequency, divide AHB by 2 instead of 3. Function clock frequency is AHB divided by MMC divider + 1.
firmware/export/dm320.h [diff]
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
14th Jun 19:45 95408f2117: FiiO M3K: Add dual boot support
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
Aidan MacDonald
14th Jun 19:45 89f4064743: x1000: Extend CPM registers for dual boot
firmware/target/mips/ingenic_x1000/x1000/cpm.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
14th Jun 19:45 2d6ddd0c5b: x1000: NAND driver bugfixes

- Missing mutex unlock in nand_open()
- SET_FEATURE command incorrectly issued as a read operation
- Inverted protection bits, not sure how that happened...
- Block erase skipped ahead by a wrong amount, causing erases spanning multiple blocks to erase the wrong blocks

This code was buggy as hell... it's in need of a major overhaul. It's not very flexible or reliable, and access to the flash is useful during development of a new port, even if not useful once the port is complete.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
Aidan MacDonald
14th Jun 12:48 02c4ec294c: Sansa Connect: Properly setup internal speaker

Switch to internal speaker when headphones are disconnected.
firmware/drivers/audio/aic3x.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
13th Jun 16:13 756c0d2ac8: FS #13299: Simplify VBR frame parsing in the metadata decoder.

The old code would seek forward by the frame length, expecting to see a frame header there, perform a validity check, and then seek back to the current header.

Unfortunately this doesn't handle situations where there is extra padding between the frames, leading us to potentially read garbage, causing the validity tests to fail and rejecting the file outright.

Instead, keep track of the previous valid header/position, and if we find
"valid" headers in a row return the first after seeking back to it.

This change allows the file referenced in FS13299 to be properly parsed, but further work is needed to get the file to be playable. (file reports itself as layer 1, variable bit rate, variable sample rate!)
lib/rbcodec/metadata/mp3data.c [diff]
Solomon Peachy
12th Jun 21:11 c067b344e8: FS #13297: M3K Autolock allows one action before disabling touchpad

Intercept buttonpress and action, and nullify both if the button is part of the touchpad. Only affects autolock functionality.

Adding removal of note about autolock in the manual - the lock button no longer needs to be pressed at least once to prime the autolock, if enabled, since commit 14f7a95
apps/action.c [diff]
manual/configure_rockbox/system_options.tex [diff]
Dana Conrad
12th Jun 14:47 f3f9d1fb95: USB Serial: Implement Abstract Control Management

On devices that can assign interrupt IN, bulk IN and bulk OUT endpoints this change results in the serial interface working out of the box on Linux and Windows. On Linux it is registered as ttyACM device and on Windows it is assigned a COM port number.

On devices that cannot assign the interrupt IN this change won't have any effect.

Implement minimum required interface control requests. Respond with whatever line coding was set to make terminal programs happy.
firmware/export/usb_ch9.h [diff]
firmware/usbstack/usb_serial.c [diff]
Tomasz Moń
12th Jun 13:54 663d846cf3: Sansa Connect: Disable endpoint double buffering

Disabling double buffering results in expected CPPI TX behaviour. With the double buffering enabled, sending single ZLP resulted in two ZLPs being available. The two ZLPs is problematic because this causes Windows to reset USB device after failed SCSI command.

The problematic sequence on Windows 10 was as follows:
* Host sends SCSI Mode Sense(6) Informational Exceptions Control(0x1C)
* Device sends ZLP
* Device sends command failed response

With endpoint double buffering enabled the ZLP was read twice by host. As host was expecting command response on the second read (and got ZLP instead), host attempts recovery by resetting USB device and retrying.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Tomasz Moń
12th Jun 06:32 a90ef8195b: mknkboot/beastpatcher: implement basic firmware validation

This imports the MD5 code used by other utilities and creates a function for checking the provided NK.bin against known original firmware checksums. Integration into mknkboot and beastpatcher is also added.

For the sake of consistency with beastpatcher, mknkboot had its printf statements rewrote to print to stderr like beastpatcher does.
utils/MTP/beastpatcher/Makefile [diff]
utils/MTP/beastpatcher/beastpatcher.c [diff]
utils/MTP/beastpatcher/md5.c [new]
utils/MTP/beastpatcher/md5.h [new]
utils/MTP/beastpatcher/mknkboot.c [diff]
utils/MTP/beastpatcher/mknkboot.h [diff]
James Buren
11th Jun 19:32 fe9bcd0468: beastpatcher: fix some minor issues

This mainly fixes some compiler warnings and makes it work with mingw64.
utils/MTP/beastpatcher/Makefile [diff]
utils/MTP/beastpatcher/mtp_libmtp.c [diff]
James Buren
11th Jun 19:32 ab0f23c4b1: sendfirm: fix some minor issues

This patches some compile warnings and also makes it work correctly with modern mingw64.
utils/MTP/Makefile [diff]
utils/MTP/sendfirm.c [diff]
James Buren
11th Jun 19:09 d01f3192f2: Spin off common ft6x06 code to a driver

Allows for the i2c boilerplate to be shared between the M3K and Shanling Q1 ports. M3K-specific quirks remain in button-fiiom3k.
firmware/SOURCES [diff]
firmware/drivers/ft6x06.c [new]
firmware/export/config/fiiom3k.h [diff]
firmware/export/ft6x06.h [new]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
Aidan MacDonald
10th Jun 06:43 551c74da55: Sansa Connect: Remove fake battery voltage scale

Use battery percentage as reported by AVR.
firmware/SOURCES [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/powermgmt-sansaconnect.c [deleted]
Tomasz Moń
10th Jun 06:02 f26499bd67: Sansa Connect: Add missing include

Include usb.h to have usb_acknowledge() prototype.
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
Tomasz Moń
9th Jun 18:52 163e3507f8: Sansa Connect: Working USB Mass Storage

Acknowledge SYS_USB_CONNECTED in all queues so USB task can gain exclusive access to the storage.

Reduce CPPI requeue timeout to speed up disk access.
bootloader/sansaconnect.c [diff]
firmware/export/config.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/avr-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
9th Jun 17:13 a11c88e0df: Sansa Connect: Fix sending ZLP on non-zero endpoint

This fixes panic when mass storage driver sends failed result.
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Tomasz Moń
9th Jun 10:21 efa173a923: Sansa Connect: Fix bulk transfers greater than 64 bytes

Correctly set endpoint maximum packet size so host will not consider end of transfer after receiving first packet when transfer is larger than 64 bytes (at High Speed the endpoint max packet size was set to 64 but according to descriptor it is 512).

Split DMA transfers up to CPPI_MAX_FRAG so we get single interrupt after each call to tnetv_cppi_send().
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
Tomasz Moń
9th Jun 10:09 7f3d0ce814: DM320: Fix SDHC response format 2 handling

Return complete R2 response to caller. Due to incorrect bitfield handling only bits [127-96] were ever returned to caller.
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
7th Jun 22:01 41ced369f6: ErosQ Simulator: fix keymap

The eros q simulator keys have been weird for a while, found out why.
uisimulator/buttonmap/erosq.c [diff]
Dana Conrad
7th Jun 21:28 55c95a9cf5: FiiO M3K: filter touchpad input when it's disabled

I had hoped this would fix FS #13297, but no luck. Might as well do this change anyway, because it's the "right" thing to do.
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
Aidan MacDonald
6th Jun 21:44 4c94c17913: ErosQ: undo ACTION_YESNO_ACCEPT button release

I accidentally left this in commit 8056b7f, and I think I'm giving up on this for now - it just gets too complicated in the usb use case. Revert to BUTTON_PLAY.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
6th Jun 11:06 2b23d3ecaf: x1000: Allow setting IRQ handlers dynamically

Avoids having to #define the names of GPIO pin interrupt handlers, as they can now be set at runtime instead.
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
firmware/target/mips/ingenic_x1000/usb-x1000.c [diff]
Aidan MacDonald
6th Jun 11:06 e85bc74b30: x1000: GPIO refactor

The GPIO API was pretty clunky and pin settings were decentralized, making it hard to see what was happening and making GPIO stuff look like a mess, frankly.

Instead of passing clunky (port, pin) pairs everywhere, GPIOs are now identified with a single int. The extra overhead should be minimal as GPIO configuration is generally not on a performance-critical path.

Pin assignments are now mostly consolidated in gpio-target.h and put in various tables so gpio_init() can assign most pins at boot time.

Most drivers no longer need to touch GPIOs and basic pin I/O stuff can happen without config since pins are put into the right state. IRQ pins still need to be configured manually before use.
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/gpio-target.h [new]
firmware/target/mips/ingenic_x1000/fiiom3k/lcd-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
firmware/target/mips/ingenic_x1000/i2c-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/msc-x1000.h [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
firmware/target/mips/ingenic_x1000/pwm-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/usb-x1000.c [diff]
Aidan MacDonald
6th Jun 10:52 695d1701cd: jztool: add correct compiler flags for building on Mac
rbutil/jztool/Makefile [diff]
Aidan MacDonald
6th Jun 07:57 474293a12b: Sansa Connect: Initial TNETV105 driver port

Port USB driver from Sansa Connect Linux kernel sources. The device successfully enumerates and responds to SCSI commands but actual disk access does not work. The SCSI response sent to host mentions that both internal storage and microsd card are not present.
bootloader/sansaconnect.c [diff]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaconnect.h [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.c [new]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_cppi.h [new]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [new]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.h [new]
firmware/target/arm/tms320dm320/sansa-connect/usb-sansaconnect.c [diff]
firmware/target/arm/tms320dm320/system-dm320.c [diff]
firmware/target/arm/tms320dm320/system-target.h [diff]
Tomasz Moń
5th Jun 18:41 77603c344d: DM320: Fix buffer overrun in sdmmc driver

Modify count, buffer and start address only after successful transfer. This makes the retry operation to use the same address and buffer as the just failed transfer.
firmware/target/arm/tms320dm320/sdmmc-dm320.c [diff]
Tomasz Moń
4th Jun 14:05 62098a0cc9: toolchain: To build GCC for hosted targets, we need -std=gnu++11 for stage2.

But for stage1 (and non-hosted targets) we can stick with -std=gnu++03.

This keeps everyone happy with no apparent regerssions on older host compilers.
tools/rockboxdev.sh [diff]
Solomon Peachy
4th Jun 13:06 49dfc8be27: rockboxdev.sh fixes for hosted MIPS toolchain

Add --with-sysroot= to the configure args of glib and dbus because otherwise they get confused and try to use host system dependencies.

Also fix the broken restart logic so you can actually restart a build.
tools/rockboxdev.sh [diff]
Aidan MacDonald
4th Jun 12:38 18288fcce6: toolchains: Fix gcc 4,9.4 compilation using GCC11.

Basically it defaults to using C++17, which breaks the GCC compilation. Instead, explicitly specify -std=c++03, which should work everywhere.
tools/rockboxdev.sh [diff]
Solomon Peachy
4th Jun 01:04 ce5fe4d108: ata: fix a typo in a definition that's thankfully not used.
firmware/drivers/ata.c [diff]
Solomon Peachy
4th Jun 01:03 00440f2137: ipod6g:: Get rid of magic command numbers in ata driver

Use CMD_* macros instead. Makes the code a bit easier to follow.

No functional change.
firmware/drivers/ata.c [diff]
firmware/target/arm/s5l8702/ipod6g/storage_ata-6g.c [diff]
Solomon Peachy
4th Jun 00:00 14f7a958af: Softlock Improvements

Add a check to see if the keys are currently locked and allow them to be unlocked to ensure we don't get stuck when the current playlist ends while the WPS is locked.
(Original by Aidan MacDonald)

Adding initialization for unlock_combo and to arm the autolock
(if enabled) without the user needing to press the lock button at least once every boot (which is the prior behavior).

Removing screen_has_lock check from is_keys_locked()
apps/action.c [diff]
apps/action.h [diff]
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
Dana Conrad
3rd Jun 22:54 cec6422ace: x1000: LCD driver minor fixes & improvements

- Use unsigned bitfields in 'lcd_tgt_config'
- Set DTIMES when using an 8-bit bus width
- Allow using DMA big-endian mode
- Provide an #ifdef to avoid stopping DMA in the middle of a frame
- Correctly #ifdef LCD sleep code when target does not implement it
firmware/target/mips/ingenic_x1000/lcd-x1000.c [diff]
firmware/target/mips/ingenic_x1000/lcd-x1000.h [diff]
Aidan MacDonald
2nd Jun 22:52 a6b5de6a89: x1000: minor adjustments to PWM code

- Change busy loop to wait on the timer flag instead of hoping to catch the timer at exactly the right moment... unsurprisingly, that did not work well with higher frequency PWM outputs.
- Put GPIO data into a dedicated const array.
firmware/target/mips/ingenic_x1000/pwm-x1000.c [diff]
Aidan MacDonald
1st Jun 19:57 0187fca640: axp173 driver: rename to "axp-pmu" + other changes

The old name was a bit misleading. AXP173 is sort of the lowest common denominator of a series of related chips. The M3K uses an AXP192 which has a few extra features vs. the AXP173.

New voltage regulator stuff was added for the sake of the Shanling Q1 native port (that player also uses an AXP192).
firmware/SOURCES [diff]
firmware/drivers/axp-pmu.c [new]
firmware/drivers/axp173.c [deleted]
firmware/export/axp-pmu.h [new]
firmware/export/axp173.h [deleted]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/i2c-target.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
31th May 23:26 2066465b78: FiiO M3K: minor fixes

- Drop obsolete NAND patch script (it's simpler to use 'dd' directly)
- Remove an outdated comment
- Fix missing 'void' in a function definition
- Reset the poweroff timer when we poke the backlight
firmware/target/mips/ingenic_x1000/fiiom3k/backlight-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
utils/fiio_m3k_tools/nand_patcher.py [deleted]
Aidan MacDonald
31th May 22:00 663c5268ac: AK4376 driver: refactoring

Some audiohw API calls are shared between playback and recording, eg. frequency settings. Implementing these in the DAC driver won't work for the M3K, as it uses a separate codec for microphone input.
firmware/drivers/audio/ak4376.c [diff]
firmware/export/ak4376.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
Aidan MacDonald
30th May 19:17 f63edb52ef: x1000: refactor AIC initialization

Have pcm-x1000 handle most work, so target's audiohw code touches only the relevant settings.
firmware/target/mips/ingenic_x1000/aic-x1000.c [diff]
firmware/target/mips/ingenic_x1000/aic-x1000.h [diff]
firmware/target/mips/ingenic_x1000/dma-x1000.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/audiohw-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
firmware/target/mips/ingenic_x1000/x1000/aic.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
29th May 15:35 c78ba1aa68: MIPS: add another mipsr2 endian function

Used by WAV and AIFF encoders for recording.
firmware/target/mips/mipsr2-endian.h [diff]
Aidan MacDonald
29th May 15:34 f64e8dc33c: x1000: Complete the register definitions

I think this covers everything now, although some fields are missing enum values. Those can be added in if and when they are needed.
firmware/target/mips/ingenic_x1000/x1000/aic.h [diff]
firmware/target/mips/ingenic_x1000/x1000/efuse.h [new]
firmware/target/mips/ingenic_x1000/x1000/pcm.h [new]
firmware/target/mips/ingenic_x1000/x1000/ssi.h [new]
firmware/target/mips/ingenic_x1000/x1000/uart.h [new]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
28th May 00:58 8056b7fd1a: Yes/No Screen: Allow accept to be button release

Allows the ACTION_YESNO_ACCEPT action to be set to a button release by ignoring certain system events.

Moving USB init in main.c to the last thing to prevent getting stuck in the USB prompt, if enabled. Also changing ACTION_YESNO_ACCEPT to button release on erosq
apps/gui/yesno.c [diff]
apps/keymaps/keymap-erosq.c [diff]
apps/main.c [diff]
Dana Conrad
24th May 02:30 10d199f9d5: Allow Softlock to happen in most contexts

All this tested on erosq, I'm not sure if this will break on other targets or if there is a reason this shouldn't be done.

apps/menu.c:

Added CONTEXT_MAINMENU|ALLOW_SOFTLOCK in do_menu(), this allows the user to lock the keys in most places within the main menu tree.

apps/tree.c:

Added CONTEXT_TREE|ALLOW_SOFTLOCK in dirbrowse(), this allows locking the keys in most other contexts not covered by the above.

Notable exceptions I've found that still cannot be locked: View Playlist, any settings change screen (ex. Shuffle No/Yes, Volume Select dB)

Adding fix for Advanced Key Lock feature brought to light by this change in apps/action.c.

Expected behavior for Advanced keylock is now (according to my testing here): Volume: Can be exempted from keylock anywhere Skip/Scrollwheel: Can only be exempted in WPS Seek: Can only be exempted in WPS Play: Can only be exempted in WPS

Backlight exemption is same except the Volume exemption doesn't work outside the WPS, but I don't believe that is due to this change.
apps/action.c [diff]
apps/menu.c [diff]
apps/tree.c [diff]
Dana Conrad
23rd May 12:32 b66990cf77: manual: Migrate the manual from freenode to libera
manual/getting_started/main.tex [diff]
Solomon Peachy
22nd May 12:20 5cbeb88541: FiiO M3K: keymap improvements & fixes

- Add support for skip and seek while the player is locked.
(Thanks to @bahus for the suggestion)
- Fix touch zones because the down button zone ended up being a lot smaller than expected due to the touchpad's wonkiness. Also added a visual display of the touchpad to its debug menu.
- Fixes the pictureflow keymap because it was mostly unusable.
apps/keymaps/keymap-fiiom3k.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
Aidan MacDonald
22nd May 12:20 a2bac25a63: Allow alternative keymap when keys are locked

To enable support targets must define HAVE_LOCKED_ACTIONS and then handle the CONTEXT_LOCKED flag from get_context_mapping().
apps/action.c [diff]
apps/action.h [diff]
Aidan MacDonald
21st May 18:55 00b4626790: Sansa Connect: Clear recoverzap parameter

Clearing recoverzap parameter exists the Recovery Mode. This makes it possible to run Rockbox on Sansa Connect without relying on original Linux firmware.

Enable write-through cache on flash memory as write-back complicates handling without any real benefits. The flash memory accepts commands as series of writes at predefined addresses, so it is important that the cache does not interfere with the writes.
bootloader/sansaconnect.c [diff]
firmware/target/arm/tms320dm320/boot.lds [diff]
firmware/target/arm/tms320dm320/crt0.S [diff]
Tomasz Moń
21st May 00:52 5388607968: [Cabbiev2] If the 'Artist' tag is empty read the 'Album Artist' tag.
wps/cabbiev2.112x64x1.wps [diff]
wps/cabbiev2.128x128x16.wps [diff]
wps/cabbiev2.128x128x2.wps [diff]
wps/cabbiev2.128x160x16.wps [diff]
wps/cabbiev2.128x64x1.wps [diff]
wps/cabbiev2.128x96x16.wps [diff]
wps/cabbiev2.128x96x2.wps [diff]
wps/cabbiev2.132x80x16.wps [diff]
wps/cabbiev2.138x110x2.wps [diff]
wps/cabbiev2.160x128x1.wps [diff]
wps/cabbiev2.160x128x16.wps [diff]
wps/cabbiev2.160x128x2.wps [diff]
wps/cabbiev2.176x132x16.wps [diff]
wps/cabbiev2.176x220x16.wps [diff]
wps/cabbiev2.220x176x16.wps [diff]
wps/cabbiev2.240x320x16.mini2440.wps [diff]
wps/cabbiev2.240x320x16.wps [diff]
wps/cabbiev2.240x400x16.wps [diff]
wps/cabbiev2.320x240x16.mrobe500.wps [diff]
wps/cabbiev2.320x240x16.wps [diff]
wps/cabbiev2.320x480x16.wps [diff]
wps/cabbiev2.400x240x16.wps [diff]
wps/cabbiev2.480x800x16.wps [diff]
wps/cabbiev2.800x480x16.wps [diff]
wps/cabbiev2.96x96x16.wps [diff]
James D. Smith
20th May 03:29 e910f63bba: lua add a way to filter settings on read rather than dumping all the settings allow a filter function to choose desired settings

in menucoresettings you can see an how to do exact text matches or wilcard matches you can even use luas version of regex
apps/plugins/lua/include_lua/menucoresettings.lua [diff]
apps/plugins/lua/include_lua/rbsettings.lua [diff]
William Wilgus
19th May 23:28 dcff9b85a3: lua latebound function update

return the nextfunction and nil instead of pairs it allows a faster return to lua rather than calling the lua function pcall(fnpairs) from c and returning the result back into lua to kick off the search yeah, no clue why I didn't realize that before..

testing in x86 and ARM.. its more RAM efficient to do the initial creation of the stack in lua code for the __pairs functon its not faster but being that its a one time hit per iter creation the reduced churn alone should be worth it along with a reduced peak RAM usage

fix bug where a failed module can not be reloaded

optimize filetol

fix potential bug in splash scroller when no break character is found
apps/plugins/lua/lauxlib.c [diff]
apps/plugins/lua/loadlib.c [diff]
apps/plugins/lua/lparser.c [diff]
apps/plugins/lua/rockaux.c [diff]
William Wilgus
19th May 21:09 0c62177575: FS12845: Fix uninitialized read
firmware/drivers/synaptics-mep.c [diff]
Solomon Peachy
19th May 20:30 3ed035769c: FS #9093: Database initialization hangs if there's no music file on the player

Original patch by William Poetra Yoga Hadisoeseno
apps/tagcache.c [diff]
Solomon Peachy
18th May 12:43 0c4c1e6042: rbspeex: Fix build when using system speex libraries
tools/rbspeex/Makefile [diff]
Solomon Peachy
15th May 15:18 64bed8361d: FS #13289: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
14th May 10:30 ad64293ae6: X1000: fix SD driver issues

- Added panic check for unaligned addresses
- Properly set 50 MHz high-speed mode timings
firmware/target/mips/ingenic_x1000/msc-x1000.c [diff]
Aidan MacDonald
14th May 10:30 eb0336eded: FAT: align writes when bounce buffering is enabled

Motivation: turns out the DMA in the M3K's MSC controller is buggy, and can't handle unaligned addresses properly despite the HW docs claiming otherwise.

Extending the FAT driver bounce buffering code is the easiest way to work around the problem (but probably not the most efficient).
firmware/drivers/fat.c [diff]
Aidan MacDonald
14th May 01:40 ff28d238b8: ibasso: DX50/DX90 support 192KHz audio

Also bump max battery capacity to 7300mAh, to accomodate oversized aftermarket units that require case mods.
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
Solomon Peachy
13th May 17:33 237919f1c3: Fix invalid use of bool in doom

Settings code tries to cast the bool pointer to an int pointer and then write through it, which makes AddressSanitizer whine.
apps/plugins/doom/doomdef.c [diff]
apps/plugins/doom/doomdef.h [diff]
apps/plugins/doom/m_misc.c [diff]
Aidan MacDonald
12th May 22:22 942b1dd072: FS13094: Fix a divide-by-zero crash parsing zero-length WMA/ASF files
lib/rbcodec/metadata/asf.c [diff]
Solomon Peachy
12th May 11:01 84a3cbe24d: ErosQ: Small keymap changes

- Move WPS Stop to Power (Hold)
- Add WPS Hotkey to Wheel scroll Fwd/Back
- Add WPS Quickscreen to Play (Hold)
- Add Tree Hotkey to Play (Hold)
apps/keymaps/keymap-erosq.c [diff]
firmware/export/config/aigoerosq.h [diff]
Dana Conrad
12th May 10:52 b895fb6643: Add tm->yday to RTC ports missing it
firmware/common/timefuncs.c [diff]
firmware/drivers/rtc/rtc_d2.c [diff]
firmware/drivers/rtc/rtc_ds1339_ds3231.c [diff]
firmware/drivers/rtc/rtc_e8564.c [diff]
firmware/drivers/rtc/rtc_mr100.c [diff]
firmware/drivers/rtc/rtc_pcf50605.c [diff]
firmware/drivers/rtc/rtc_pcf50606.c [diff]
firmware/drivers/rtc/rtc_rx5x348ab.c [diff]
firmware/drivers/rtc/rtc_s35380a.c [diff]
firmware/drivers/rtc/rtc_s35390a.c [diff]
firmware/drivers/rtc/rtc_s3c2440.c [diff]
firmware/include/timefuncs.h [diff]
firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c [diff]
firmware/target/arm/s5l8702/ipod6g/rtc-6g.c [diff]
Moshe Piekarski
12th May 10:35 3f26fcf340: FiiO M3K: New bootloader

SPL and UCL-compressed bootloader are now packed into one output, bootloader.m3k, eliminating the separate SPL build phase.

The Rockbox bootloader now has a recovery menu, accessible by holding VOL+ when booting, that lets you back up, restore, and update the bootloader from the device.
bootloader/SOURCES [diff]
bootloader/fiiom3k.c [diff]
firmware/SOURCES [diff]
firmware/export/installer.h [deleted]
firmware/target/mips/ingenic_x1000/boot.lds [diff]
firmware/target/mips/ingenic_x1000/crt0.S [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/boot.make [new]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.h [new]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-target.h [deleted]
firmware/target/mips/ingenic_x1000/nand-x1000-err.h [deleted]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl-start.S [new]
firmware/target/mips/ingenic_x1000/spl-x1000-defs.h [deleted]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/x1000boot.make [new]
tools/configure [diff]
tools/root.make [diff]
Aidan MacDonald
12th May 10:35 cc22df198d: jztool: Support new M3K bootloader
rbutil/jztool/Makefile [diff]
rbutil/jztool/README.md [diff]
rbutil/jztool/include/jztool.h [diff]
rbutil/jztool/jztool.c [diff]
rbutil/jztool/src/context.c [diff]
rbutil/jztool/src/device_info.c [diff]
rbutil/jztool/src/fiiom3k.c [diff]
rbutil/jztool/src/identify_file.c [diff]
rbutil/jztool/src/paramlist.c [deleted]
rbutil/jztool/src/usb.c [diff]
rbutil/jztool/src/x1000.c [deleted]
rbutil/libtools.make [diff]
Aidan MacDonald
12th May 10:35 3748117ee3: Add standalone UCL decompressor
firmware/common/ucl_decompress.c [new]
firmware/export/ucl_decompress.h [new]
Aidan MacDonald
12th May 10:30 9a19360398: Add microtar library (for use by M3K bootloader)

This is an MIT-licensed library for reading and writing v7 format tar files. The version here is my fork, which fixes security issues in the original code (it hasn't been updated in 4 years, probably abandoned by the author).
docs/CREDITS [diff]
lib/microtar/LICENSE [new]
lib/microtar/README.md [new]
lib/microtar/SOURCES [new]
lib/microtar/microtar.make [new]
lib/microtar/src/Makefile [new]
lib/microtar/src/microtar-rockbox.c [new]
lib/microtar/src/microtar-stdio.c [new]
lib/microtar/src/microtar.c [new]
lib/microtar/src/microtar.h [new]
Aidan MacDonald
7th May 01:36 adff45ca21: lua -- temp loader

fix a few bugs, improve memory usage
apps/plugins/lua/include_lua/create_kbd_layout.lua [diff]
apps/plugins/lua/include_lua/menubuttons.lua [diff]
apps/plugins/lua/include_lua/menucoresettings.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/include_lua/temploader.lua [diff]
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua_scripts/print_lua_func.lua [diff]
William Wilgus
6th May 07:37 15ad1c42db: X1000: simplify NAND driver

- Removed unnecessary layers of generic code
- Software ECC is gone since we don't need it now (and maybe not ever)
- Removed bounce buffering, so callers must now align buffers
firmware/SOURCES [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/nand-fiiom3k.c [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/nand-target.h [deleted]
firmware/target/mips/ingenic_x1000/nand-x1000-err.h [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
5th May 01:56 244aad750c: Update the english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
4th May 03:13 9b2f23319c: lua fix yellow and add temploader

temp loader allows some lua requires to be loaded and later garbage collected unfortunately the module needs to be formatted in such a way to pass back a call table in order to keep the functions within from being garbage collected too early

BE AWARE this bypasses the module loader which would allow code reuse so if you aren't careful this memory saving tool could spell disaster for free RAM if you load the same code multiple times
apps/plugins/lua/include_lua/create_kbd_layout.lua [diff]
apps/plugins/lua/include_lua/temploader.lua [new]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua/rocklib.c [diff]
William Wilgus
4th May 01:52 489a5f3ff7: lua add ability to use custom kbd layouts

bring custom keyboard layouts to lua conversion to the proper format requires create_kbd_layout.lua just pass a lua string with your desired layout
apps/plugins/lua/include_lua/create_kbd_layout.lua [new]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua/rocklib.c [diff]
apps/plugins/lua_scripts/print_lua_func.lua [diff]
William Wilgus
3rd May 20:10 4f83e66cd4: FS #13287 - Load a newly saved playlist and resume where it was

Works from any playlist saving operation accessed from the While Playing Screen, all other playlist saving operations are unchanged.

Now a user-selectable setting! Located in General Settings -> Playlists -> Current Playlist -> Reload After Saving (Yes/No)
apps/filetree.c [diff]
apps/filetree.h [diff]
apps/iap/iap-lingo4.c [diff]
apps/lang/english.lang [diff]
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/playlist_options.tex [diff]
Dana Conrad
1st May 01:26 49edfc237b: lcd_putsxyofs 16 bit lcd_mono_bitmap_part [AS]

'Bugfix' mono_bitmap_part reads ahead in the buffer, if the height is <= char bit pixels other memory gets read found with [Address Sanitizer]

also g#3332 since this is clearly a problem across the code instead place the check for height < 8 in the lcd_mono_bitmap_part function
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
30th Apr 13:38 20cd89908d: lua submenus add a way to dynamically add items

updated example script and renamed some functions as well

fixed bug in printtable cursor position if greater than maxlines for the screen would reset to item 1

now we move the list start and select it
(and try to center it on the screen)

fixed a few bugs in the add_menu code
apps/plugins/lua/include_lua/printsubmenu.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua_scripts/submenu_demo.lua [diff]
William Wilgus
29th Apr 19:31 48b77898dc: jztool: portability fixes for Mac
rbutil/jztool/Makefile [diff]
rbutil/jztool/src/x1000.c [diff]
Aidan MacDonald
28th Apr 19:04 16a1993cad: x1000: Remove some #ifdef SPL in the sfc/nand code
firmware/target/mips/ingenic_x1000/fiiom3k/nand-target.h [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
firmware/target/mips/ingenic_x1000/sfc-x1000.h [diff]
Aidan MacDonald
28th Apr 19:04 423fcf951a: x1000: Rewrite clk_get code so it's more data driven

This is not pretty, but at least it should be usable by the SPL.
firmware/target/mips/ingenic_x1000/clk-x1000.c [diff]
firmware/target/mips/ingenic_x1000/clk-x1000.h [diff]
Aidan MacDonald
28th Apr 19:04 20fc928221: x1000: Centralize common definitions, memory layout
apps/plugins/plugin.lds [diff]
firmware/export/cpu.h [diff]
firmware/export/x1000.h [new]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
Aidan MacDonald
28th Apr 19:04 ed8c977e2f: x1000: Fix stupid bug in the SPL

This overwrote the first 2 instructions of crt0 in the bootloader! I'm really not sure how this *didn't* cause a fatal exception.

This address isn't special as far as I know, so just move it to the TCSM by making it a static variable.
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
Aidan MacDonald
28th Apr 04:37 63b6281505: lua add submenu module + cleanup

allows menus + submenus + context menus all with simple tables menu_t which is a table of strings func_t which are the corresponding functions to go with those strings

see lua_scripts/submenu_demo.lua
apps/plugins/lua/include_lua/menubuttons.lua [new]
apps/plugins/lua/include_lua/menucoresettings.lua [new]
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua/include_lua/printmenus.lua [diff]
apps/plugins/lua/include_lua/printsubmenu.lua [new]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua_scripts/submenu_demo.lua [new]
William Wilgus
26th Apr 12:41 d5695822a7: MIPS: remove .MIPS.abiflags section

The abiflags data is only used to communicate ABI information to a program loader -- you can see what info is stored with readelf -A. Dropping it shaves 24 bytes off of every binary (including plugins).
apps/plugins/plugin.lds [diff]
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/boot.lds [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
Aidan MacDonald
26th Apr 11:42 7d0d32dbc6: Nuke the never-functional iriver ifp-7xx port

It never worked, and hasn't compiled in something like a decade, Given the HW capabilities (limited onboard flash, no expandability) there's really no point in trying to fix/complete it.
apps/SOURCES [diff]
apps/keymaps/keymap-ifp7xx.c [deleted]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/greyscale.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/grey_core.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/pegbox.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/rockblox.c [diff]
apps/plugins/rockboy/rockboy.c [diff]
apps/plugins/stopwatch.c [diff]
apps/plugins/text_viewer/tv_button.h [diff]
apps/plugins/zxbox/keymaps.h [diff]
apps/plugins/zxbox/zxbox_keyb.c [diff]
firmware/SOURCES [diff]
firmware/drivers/ata_flash.c [deleted]
firmware/export/config.h [diff]
firmware/export/config/iriverifp7xx.h [deleted]
firmware/export/gdb_api.h [diff]
firmware/export/ifp_usb_serial.h [deleted]
firmware/ifp_usb_serial.c [deleted]
firmware/rolo.c [diff]
...and 28 more files.
Solomon Peachy
26th Apr 11:41 3ba2f6e5c7: Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAX

They were never finished, never saw any release ever, and haven't compiled for the better part of a decade. Given their HW capabilities [1], they are not worth trying to fix.

[1] 1-2MB RAM, ~256MB onboard flash, no expandability
apps/SOURCES [diff]
apps/keymaps/keymap-c100.c [deleted]
apps/keymaps/keymap-iaudio67.c [deleted]
apps/keymaps/keymap-logikdax.c [deleted]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/pacbox/pacbox.h [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/plugins/plugin.lds [diff]
...and 73 more files.
Solomon Peachy
25th Apr 14:27 77188e41f5: X1000: remove bogus GPIO Z mutex

There's absolutely no way for gpio_config() to get called from two different threads due to the co-operative threading model, and it is unsafe to call from IRQ context no matter what we do.
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
firmware/target/mips/ingenic_x1000/gpio-x1000.h [diff]
Aidan MacDonald
25th Apr 14:16 a2dfafb2b2: X1000: disable SFC DMA
firmware/target/mips/ingenic_x1000/sfc-x1000.c [diff]
Aidan MacDonald
25th Apr 14:04 d6220f618b: MIPS: emulate -ffunction-sections with macros in mmu-mips

Using a macro to put each function in its own .icode-based section allows us to put the functions in IRAM _and_ have linker GC. This removes a troublesome #ifdef BOOTLOADER_SPL on the X1000 target.
firmware/target/mips/ingenic_jz47xx/app.lds [diff]
firmware/target/mips/ingenic_jz47xx/boot.lds [diff]
firmware/target/mips/ingenic_x1000/app.lds [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/mmu-mips.h [diff]
Aidan MacDonald
25th Apr 13:42 c37555d30d: FiiO M3K: remove the bootloader install debug menu

This menu serves no useful purpose anymore. I plan on adding an improved version of this functionality to the bootloader instead.
apps/debug_menu.c [diff]
Aidan MacDonald
24th Apr 04:00 557ff6a981: lua print_button script

also allow splash_scroller to be used as static text display
apps/plugins/lua/rbdefines_helper.pl [diff]
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua_scripts/print_buttons.lua [new]
William Wilgus
23rd Apr 14:23 14c6bb798d: Sync opus codec to upstream git
lib/rbcodec/codecs/libopus/README.rockbox [diff]
lib/rbcodec/codecs/libopus/SOURCES [diff]
lib/rbcodec/codecs/libopus/analysis.c [new]
lib/rbcodec/codecs/libopus/analysis.h [new]
lib/rbcodec/codecs/libopus/celt/_kiss_fft_guts.h [diff]
lib/rbcodec/codecs/libopus/celt/arch.h [diff]
lib/rbcodec/codecs/libopus/celt/arm/arm2gnu.pl [new]
lib/rbcodec/codecs/libopus/celt/arm/arm_celt_map.c [new]
lib/rbcodec/codecs/libopus/celt/arm/armcpu.c [new]
lib/rbcodec/codecs/libopus/celt/arm/armcpu.h [new]
lib/rbcodec/codecs/libopus/celt/arm/armopts.s.in [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_fft_ne10.c [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_mdct_ne10.c [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_neon_intr.c [new]
lib/rbcodec/codecs/libopus/celt/arm/celt_pitch_xcorr_arm.s [new]
lib/rbcodec/codecs/libopus/celt/arm/fft_arm.h [new]
lib/rbcodec/codecs/libopus/celt/arm/fixed_arm64.h [new]
lib/rbcodec/codecs/libopus/celt/arm/fixed_armv4.h [diff]
lib/rbcodec/codecs/libopus/celt/arm/fixed_armv5e.h [diff]
lib/rbcodec/codecs/libopus/celt/arm/mdct_arm.h [new]
lib/rbcodec/codecs/libopus/celt/arm/pitch_arm.h [new]
lib/rbcodec/codecs/libopus/celt/arm/pitch_neon_intr.c [new]
lib/rbcodec/codecs/libopus/celt/bands.c [diff]
lib/rbcodec/codecs/libopus/celt/bands.h [diff]
lib/rbcodec/codecs/libopus/celt/celt.c [diff]
lib/rbcodec/codecs/libopus/celt/celt.h [diff]
lib/rbcodec/codecs/libopus/celt/celt_decoder.c [diff]
lib/rbcodec/codecs/libopus/celt/celt_encoder.c [new]
lib/rbcodec/codecs/libopus/celt/celt_lpc.c [diff]
lib/rbcodec/codecs/libopus/celt/celt_lpc.h [diff]
...and 256 more files.
William Wilgus
23rd Apr 13:25 75d9393796: rockboy: Properly fix the GCC11 code style warnings.
apps/plugins/rockboy/cpu.c [diff]
Solomon Peachy
23rd Apr 13:07 aab72f969f: ata: Rework power management behavior a bit

After continued reports of corruption using iFlash adapters, I went digging for more clues, and this combination of changes seemed to solve data corruption with the iFlash adapters on the ipod video:

1) Instead of SLEEP, use STANDBY_IMMEDIATE when we detect drive as an SSD or CFA-compliant device. The latter is technically higher power than the former, but what this means in practice is unclear. 2) Don't check ATA powermanagement flag prior to issuing powermgmt commands. This reverts the previous "workaround" for the FC1307A -- and PM is a mandatory part of the ATA spec for any CFA device. 3) Prior to issuing SLEEP/STANDBY_IMMEDIATE, issue FLUSH CACHE. The ATA spec says this is redundant for the latter, but says nothing about the former. Either way it is always safe to call first. 4) Delete all other FC1307A_WORKAROUND code related to powermgmt flags.
firmware/drivers/ata.c [diff]
Solomon Peachy
23rd Apr 12:45 0271c0ed36: rockboy: Upstream code style trips GCC11 warnings.

Code in cpu.h is correct, so just disable -Wmisleading-indentation for the specific sections that matter.
apps/plugins/rockboy/cpu.c [diff]
Solomon Peachy
23rd Apr 12:42 ebb9090004: xzbox: Fix misleading indentation that triggered GCC11 warnings
apps/plugins/zxbox/zxbox_keyb.c [diff]
Solomon Peachy
23rd Apr 12:40 03695429cf: blackjack: Fix warning triggered by GCC 11
apps/plugins/blackjack.c [diff]
Solomon Peachy
23rd Apr 12:01 39939a164b: Promote FiiO M3K (native) to "unstable"

Now nightly and voice builds will show up.
tools/builds.pm [diff]
Solomon Peachy
23rd Apr 01:01 f968d6032a: ipodpatcher: fix warning for apple stop sign constant

Convert both instances of the apple stop sign constant to char array instances. This ensures sizeof will work as expected when applied to the constant.
rbutil/ipodpatcher/ipodpatcher.c [diff]
tools/scramble.c [diff]
James Buren
22nd Apr 23:30 79d1b68fe2: FiiO M3K: disable USB DMA

Although data transfer is reliable with DMA, it seems to cause hangs and lockups during the early stages of connection and it's not clear what the cause might be.
firmware/export/config/fiiom3k.h [diff]
Aidan MacDonald
21st Apr 18:32 a544c8467d: FiiO M3K: increase bootloader font size

The default font was very small and hard to read.
tools/configure [diff]
Aidan MacDonald
21st Apr 18:31 75cb8ba8a4: FiiO M3K/X1000: add USB support

This only required a minor patch to the usb-designware driver due to DMA requiring physical addresses -- on the X1000, these differ from virtual addresses so we have to do the usual conversion.

Both the mass storage and HID drivers work, but there are a few issues so this can't be considered 100% stable yet.

- Mass storage might not be detected properly on insertion, and USB has to be replugged before it shows up
- HID driver may occasionally panic or hang the machine
apps/keymaps/keymap-fiiom3k.c [diff]
bootloader/fiiom3k.c [diff]
firmware/SOURCES [diff]
firmware/drivers/usb-designware.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
firmware/target/mips/ingenic_x1000/usb-x1000.c [new]
firmware/target/mips/ingenic_x1000/x1000/cpm.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
21st Apr 18:31 088ebb5fac: Minor enhancements to axp173 driver

- Added register names to reduce usage of magic numbers
- Added function to control max charging current, needed for USB
- Corrected comment about axp173, since FiiO M3K has an axp192
firmware/drivers/axp173.c [diff]
firmware/export/axp173.h [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
21st Apr 18:28 f6d3680cb8: Make sure battery menu is shown if it contains settings

The #if statement didn't reflect all menu items in the battery menu, so if the USB charging enable setting was the only one present, the entire menu would be hidden.
apps/menus/settings_menu.c [diff]
Aidan MacDonald
21st Apr 18:10 9313274302: FiiO M3K: fix LCD weirdness when booting via RoLo
firmware/rolo.c [diff]
Aidan MacDonald
20th Apr 12:50 27b44bca73: configure: Get rid of the unused NOISEFLOOR option in voicefile generation
tools/configure [diff]
Solomon Peachy
20th Apr 03:30 acda37edd1: lua print table put_line a do_menu alternative

add stylized lines to lua

the exported do_menu has a severe limitation of 64 items it also requires double the memory

put_line is the way rockbox builds menus

update printtable

user config from core -- done code cleanup fixed for 1-bit screens changed button behavior fixed for 2-bit screens
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua/include_lua/printmenus.lua [new]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/lua.make [diff]
apps/plugins/lua/rbdefines_helper.pl [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/plugins/lua_scripts.lua [diff]
apps/plugins/lua_scripts/file_browser.lua [diff]
apps/plugins/lua_scripts/fileview.lua [diff]
apps/plugins/lua_scripts/fileviewers.lua [diff]
apps/plugins/lua_scripts/printmenu.lua [deleted]
apps/plugins/lua_scripts/rlimg.lua [diff]
apps/plugins/lua_scripts/tagnav.lua [diff]
William Wilgus
18th Apr 17:45 c71a47f649: Move usb-designware out of ARM target tree
firmware/SOURCES [diff]
firmware/target/arm/usb-designware.c firmware/drivers/usb-designware.c [rename]
Aidan MacDonald
17th Apr 20:24 92140752d7: FiiO M3K: disable CPU frequency switching

After conducting some simplistic tests, I found that the power usage did not appear to be affected by the CPU frequency.

I tested by playing back a 44.1 KHz FLAC file on single track repeat, and measured current with the AXP173's battery discharge current ADC. The button and LCD backlights were set to always on. Headphones were unplugged and the volume was muted to eliminate any influence from the headphone amp.

On average the current usage was between 78-81 mA at 1008 MHz, 252 MHz, and 112 MHz. If anything, 1008 MHz drew _less_ current than the lower frequencies, by about 1-3 mA.

A possible explanation for this, assuming it's not just a bias of the test, is that the CPU idle state saves so much power that it's better to maximize the real time that the CPU spends idling. More systematic testing is needed to confirm this.
firmware/export/config/fiiom3k.h [diff]
firmware/target/mips/ingenic_x1000/kernel-x1000.c [diff]
Aidan MacDonald
17th Apr 20:24 fceffb7d4a: x1000: disable CPU idle stats by default

There's no point including this in normal builds: the stats are not used for anything, they are not really of interest to anyone except developers, and add a small overhead to the kernel tick.
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/kernel-x1000.c [diff]
firmware/target/mips/ingenic_x1000/system-target.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
17th Apr 20:24 01d1eb4258: FiiO M3K/X1000: Do system clock initialization in the SPL

Initializing the clocks in the SPL brings Rockbox in line with how the FiiO M3K's original SPL works. It's likely other X1000 devices do this too.

There was a logic error in the previous setup: the code falsely assumed that DDR memory would always be running from MPLL, but it would be switched to APLL by the bootloader. Rockbox would then try to re-init APLL, albeit with the same parameters. Maybe this was the cause of the boot hang on some units.
firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl-x1000.h [diff]
firmware/target/mips/ingenic_x1000/system-x1000.c [diff]
Aidan MacDonald
17th Apr 20:23 e123c5d2f2: x1000: don't reset all GPIOs at boot

What we really want is to avoid any interrupts being generated before the drivers which handle them are properly initialized. Intead of trashing all GPIOs, search for the problem pins and fix them, leaving the others alone.

This fixes the M3K's button light flickering on boot and should stop the M3K from entering a potentially confusing "dead" state where all the lights are off but the CPU is still on.
firmware/target/mips/ingenic_x1000/gpio-x1000.c [diff]
Aidan MacDonald
17th Apr 20:23 b41d53792c: jztool: New utility for installing a bootloader on FiiO M3K

At present, this is just a command line tool for Linux only.

Integrating this with the Rockbox utility and porting to other platforms should be straightforward; the README contains more information.
.gitignore [diff]
rbutil/jztool/Makefile [new]
rbutil/jztool/README.md [new]
rbutil/jztool/include/jztool.h [new]
rbutil/jztool/jztool.c [new]
rbutil/jztool/src/buffer.c [new]
rbutil/jztool/src/context.c [new]
rbutil/jztool/src/device_info.c [new]
rbutil/jztool/src/fiiom3k.c [new]
rbutil/jztool/src/identify_file.c [new]
rbutil/jztool/src/jztool_private.h [new]
rbutil/jztool/src/paramlist.c [new]
rbutil/jztool/src/usb.c [new]
rbutil/jztool/src/x1000.c [new]
Aidan MacDonald
17th Apr 20:22 1b8542490d: x1000: Redesign SPL, and allow it to flash the bootloader

SPL is now designed so core X1000 code is in control of the boot, under the reasonable assumption that the device boots from flash. It should not be too hard to adapt to other X1000 ports.

The biggest functional change is that the SPL can now read/write the flash, under the control of a host computer. The SPL relies on the boot ROM for USB communication, so the host has to execute the SPL multiple times following a protocol.
bootloader/SOURCES [diff]
firmware/SOURCES [diff]
bootloader/fiiom3k-spl.c firmware/target/mips/ingenic_x1000/fiiom3k/spl-fiiom3k.c [rename]
firmware/target/mips/ingenic_x1000/fiiom3k/spl-target.h [new]
firmware/target/mips/ingenic_x1000/spl-x1000-defs.h [new]
bootloader/x1000-spl.c firmware/target/mips/ingenic_x1000/spl-x1000.c [rename]
firmware/target/mips/ingenic_x1000/spl-x1000.h [new]
Aidan MacDonald
17th Apr 15:33 85fbbd9c7f: 16 bit lcd_mono_bitmap

'Bugfix' mono_bitmap_part reads ahead in the buffer, if the height is <= char bit pixels other memory gets read
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
17th Apr 13:06 afe80742a5: Fix Pictureflow bugs

It turns out that aa_cache.buf, used to store decoded album art during background scanning, was not correctly allocated and overlapped with memory allocated for buflib. This was what caused all the segfaults.

Also fixed a logic error in read_pfraw(), which returns a buflib handle on success, but also returned 0 on failure -- since 0 is a valid buflib handle, it should return -1 on failure instead.
apps/plugins/pictureflow/pictureflow.c [diff]
Aidan MacDonald
17th Apr 12:09 4dc602dd7f: erosq: Tweak volume scale to be approximately correct

Tested on eros q, everything measured from line out, open circuit.

- volume steps were approximately double the dB they were labelled as, so "-2 dB" would result in a change of about -4 dB from maximum (0, +6.2dBV)
- maximum volume defining the line out volume only changed every 10 values, and then was not close to correct- "-10 dB" resulted in -2.5 dB from maximum

This gets the volume dB approximately correct, and maximum volume correctly sets the line out volume. I was unable to get odd values in the max volume to work, so set the step size to 2 instead of one.

For "consumer level" (-10dBV), set to -16. For "Pro level" (+4dBu -> ~1.8dBV), set to -4.
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/export/erosqlinux_codec.h [diff]
Dana Conrad
16th Apr 14:10 a9d3e9a13d: The Matrix plugin -- Bugfix

Off by one errorS in the matrix plugin

might even say its the matrix plugin re-loaded
apps/plugins/matrix.c [diff]
William Wilgus
14th Apr 01:39 42dba708e3: hosted: Don't open alsa control device directly

It was just being used as a proxy "yeah, we called hw_init()" so just use a flag for that directly.

affects rocker, erosq, xduoo x3ii/x20, and fiiom3klinux
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/fiiolinux_codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
Solomon Peachy
13th Apr 14:28 ec4b5c794e: ibasso: Found a reliable way to determine if SD card is present at startup
firmware/target/hosted/ibasso/vold-ibasso.c [diff]
Solomon Peachy
12th Apr 21:54 c0a49d9bdf: ibasso: Default to assuming the external SD card is inserted

Detection at startup is proving to be unreliable. Even if card is not present at startup, upon insertion it will sort itself out properly.
firmware/target/hosted/ibasso/vold-ibasso.c [diff]
Solomon Peachy
12th Apr 18:19 b6fce99046: ibasso: Implement proper PIVOT_ROOT filesystem access

Including direct use of the external SD card mount

Known issue: If SD card is inserted at startup, it must be ejected and reinserted to be registered.
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/ibasso/system-ibasso.c [diff]
firmware/target/hosted/ibasso/vold-ibasso.c [diff]
firmware/target/hosted/ibasso/vold-ibasso.h [diff]
Solomon Peachy
11th Apr 02:59 e4345f2db8: build: Make the lang.h and genlang.h depend on the genlang tool

(So if genlang is updated, regenerate the language headers)
apps/lang/lang.make [diff]
Solomon Peachy
11th Apr 01:06 6ae2b7140c: Fix red in bc416ff590

Most of it was due to checkwps breaking, the rest was m68k with radios.
apps/gui/skin_engine/skin_parser.c [diff]
apps/radio/presets.c [diff]
Solomon Peachy
10th Apr 16:08 bc416ff590: misc: Only include rbpaths.h and string-extra.h in places that need it

(Don't include rbpaths.h in settings.h, or string-extra.h in rbpaths.h)

Build-tested on rocker, erosq, mini2g, nano2g, xduoox3, clipzip, dx50, and uisim
apps/gui/icon.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/menus/eq_menu.c [diff]
apps/menus/playlist_menu.c [diff]
apps/menus/recording_menu.c [diff]
apps/menus/settings_menu.c [diff]
apps/menus/theme_menu.c [diff]
apps/playlist_catalog.c [diff]
apps/radio/presets.c [diff]
apps/radio/radioart.c [diff]
apps/scrobbler.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/shortcuts.c [diff]
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/export/rbpaths.h [diff]
firmware/font.c [diff]
Solomon Peachy
10th Apr 14:25 1303be3437: ibasso: Get rid of #include "settings.h" in the button code

(It mucks with paths causing the input device open to fail)
firmware/target/hosted/ibasso/button-ibasso.c [diff]
Solomon Peachy
10th Apr 01:13 448f98d9c0: pp: fix adc mistake where base 10 was used instead of base 16
firmware/target/arm/pp/adc-pp5020.c [diff]
James Buren
9th Apr 23:21 13dbcab6c0: erosq: When mucking with the clickwheel, ensure we keep the screen awake!
firmware/drivers/button.c [diff]
firmware/target/hosted/button-devinput.c [diff]
Solomon Peachy
9th Apr 19:54 cd64aa2b10: xduoox3: Global volume_limit now applies to the line output as well

The X3's line out is a bit hot, at ~4.3Vpp, so allow it to be backed off.

(On my X3, backing it off to -6dB brings Vpp down to ~3.4V)
firmware/target/mips/ingenic_jz47xx/codec-jz4760.c [diff]
manual/configure_rockbox/sound_settings.tex [diff]
Solomon Peachy
9th Apr 10:53 10facef17b: Skin engine: respect volume decimalization

This is basically the same problem as FS #13272, except it happens on certain themes, eg. rayboradio. The issue only affects targets with decimal volume levels.

Tested the fix using the rayboradio theme on the FiiO M3K and the Fuze+ simulator. Volume was displayed correctly on both.
apps/gui/skin_engine/skin_tokens.c [diff]
Aidan MacDonald
9th Apr 10:53 9847f9c85e: x1000: don't add pointless '1' after SPL signature

I added this because it is present on the FiiO M3K's SPL, but nothing in Ingenic docs suggest this means anything.

Just get rid of it; the M3K boots fine without it.
tools/mkspl-x1000.c [diff]
Aidan MacDonald
9th Apr 10:53 c0a823e2ab: x1000: Trim unused cache functions from the SPL build
firmware/target/mips/ingenic_x1000/system-target.h [diff]
Aidan MacDonald
9th Apr 10:52 54b8e9131c: Revert "sound: add sound_numdecimals() to round out the sound setting query API"

There is already a sound_numdecimals() function, according to Git it's been around since 2005. No need to add another one :).

This reverts commit 92a0ab8789c622afecc47f3b399eda8abf26ee9e.
firmware/export/sound.h [diff]
firmware/sound.c [diff]
Aidan MacDonald
9th Apr 03:58 1e2a9a651c: erosq: Switch to 32-bit PCM output, and do volume scaling in driver

Should improve audio output quality, especially at lower volumes.
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/export/config/aigoerosq.h [diff]
firmware/export/erosqlinux_codec.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
9th Apr 03:10 e86d90905b: alsa: Fix an #ifdef typo in 54fcb907c1

HAE_ALSA_32BIT -> HAVE_ALSA_32BIT
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
9th Apr 03:02 54fcb907c1: alsa: instead of per-target tests, use HAVE_ALSA_32BIT

Affects all Sony NWZ (linux) and the fiio m3k linux targets.
firmware/export/config/fiiom3klinux.h [diff]
firmware/export/config/sonynwzlinux.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
Solomon Peachy
9th Apr 01:58 e17337c9aa: ErosQ: fix panic on startup caused by ad55da5f

It turns out #include "settings.h" pulls in rbpaths.h which ends up remapping open() to the path-mangling rockbox open().

By defining RB_FILESYSTEM_OS we prevent the remap. My mistake for not testing this before committing!
firmware/drivers/audio/erosqlinux_codec.c [diff]
Solomon Peachy
8th Apr 18:37 ad55da5f87: ErosQ: Set Line Level Output volume

With a full-scale 440Hz tone, the line out voltage measured approx. 5.8Vpp at the 0 setting. WAY too hot!
(9 dBV, in fact)

For 0.894Vpp (-10 dBV - consumer devices), -18 appears to be about right for line level signals, but for "pro" equipment a different level may be desired.

Therefore, the user to cap the line out level by re-using the global volume limit setting.
firmware/drivers/audio/erosqlinux_codec.c [diff]
Dana Conrad
8th Apr 04:15 c77cd7027f: lua print_table add ability to draw a line separator

allows you to draw a line between items
apps/plugins/lua/include_lua/print.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
William Wilgus
8th Apr 01:50 f8ce18c286: Update the english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
8th Apr 01:48 d2f694696f: configure: Enable easy use of AddressSanitizer with sim builds
tools/configure [diff]
Solomon Peachy
7th Apr 21:02 1b82ebc6e4: Fix: Directory stream not closed in Shortcuts menu
apps/shortcuts.c [diff]
Christian Soffke
7th Apr 18:59 4b26372591: MIPS: make sure to fill 'jr' branch delay slot with 'nop'

Inline assembly in RoLO and the FiiO M3K bootloader used 'jr' to jump to a newly loaded Rockbox binary, but incorrectly left the branch delay slot open. That gives GCC an opening to place illegal instrutions, etc, which might cause an unhandled exception.
bootloader/fiiom3k-spl.c [diff]
bootloader/fiiom3k.c [diff]
firmware/rolo.c [diff]
Aidan MacDonald
7th Apr 18:38 213d372c92: FS #13272: Fix up volume_limit to respect decimilaztion.
apps/menus/sound_menu.c [diff]
firmware/sound.c [diff]
Solomon Peachy
7th Apr 16:22 c5cf15ed02: menu.c submenu items should be limited to MAX_MENU_SUBITEMS

maybe someone is checking somewhere but pretty sure the error message is a buffer overflow
apps/menu.c [diff]
William Wilgus
7th Apr 14:42 da542020c4: FS #13285: Updated Italian Translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
7th Apr 11:02 8b56476a2c: list: After drawing scrollbars, explcitly switch back to old viewport.

The viewport used for the scrollbar is allocated on the stack, and falls out of scope before the next call to set_viewport(), which sets a flag in the now-out-of-scope "last" viewport.
apps/gui/bitmap/list.c [diff]
Solomon Peachy
6th Apr 16:27 28c89386af: x1000: Improve NAND driver API

- Proper error codes are now returned from all functions. These codes will be used by a host-side flash tool for error reporting.

- nand_erase_block() was replaced by nand_erase_bytes(). The caller can't know how big an eraseblock is with the current API, so next best thing is to verify the correct alignment inside the call and reject the erase if it isn't properly aligned.

- Fixed typo in nandcmd_block_erase() which would cause an SFC error to be interpreted as success. Yikes.
firmware/target/mips/ingenic_x1000/fiiom3k/installer-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000-err.h [new]
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/nand-x1000.h [diff]
amachronic
6th Apr 16:27 b5558c1cf9: x1000: place SPL's NAND bounce buffers in DRAM

This frees up 2 KiB in the SPL's memory map, leaving more room for code.
firmware/target/mips/ingenic_x1000/nand-x1000.c [diff]
firmware/target/mips/ingenic_x1000/spl.lds [diff]
amachronic
6th Apr 16:27 1b314502c8: Remove a duplicate const
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
amachronic
6th Apr 16:27 0fb333c85e: rbcodec: Fix typo in include guard
lib/rbcodec/codecs/libgme/m3u_playlist.h [diff]
amachronic
5th Apr 13:57 74ae18cc8a: fiiom3k_linux: Enable HAVE_TOUCHPAD and add in missing bits
firmware/export/config/fiiom3klinux.h [diff]
firmware/target/hosted/fiio/button-fiio.c [diff]
firmware/target/hosted/fiio/button-target.h [diff]
Solomon Peachy
5th Apr 11:09 1aed109fa8: Add ability to always have autolock on

Tested on ErosQ

Added a setting in the Advanced Softlock menu to always have autolock on, rather than having to "arm" it with the softlock button. Lock/Unlock still works the same with this on, but when the screen turns off, the device always ends up in the locked state. Requires Autolock On to be set as well, and the normal Autolock functionality is unchanged with this off.

Caveat: the power/softlock button must be pressed at least once after powering on the device or enabling the feature. After that, it should consistently always "arm" the autolock.

Added feature to manual in manual/configure_rockbox/system_options.tex. Also updated some labels I had changed in the Advanced Key Lock menu and added information for Disable All Lock Notifications in a previous commit. Shared items also updated in manual/configure_rockbox/display_options.tex for selective backlight.
apps/action.c [diff]
apps/action.h [diff]
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
manual/configure_rockbox/display_options.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
Dana Conrad
4th Apr 13:27 962d412917: hdd1630/hdd6330: update battery capacities

Ensure the default setting reflects what the service manual says the official battery capacity is. Change the ranges to reflect what replacement batteries are actually available.

This range is actually much shorter in reality due to these units requiring the rarer 3 pin battery type that uses a thermistor. As such there's only one real replacement battery for each.

So the HDD1630 caps out around 700 mah while the HDD6330 caps out around 680 mah.
firmware/export/config/gogearhdd1630.h [diff]
firmware/export/config/gogearhdd6330.h [diff]
James Buren
4th Apr 09:14 4bc7bafc68: Enable QuickScreen in filtered dir modes & playlist viewer

Will allow the QuickScreen to be accessed in the playlist catalogue and when editing a playlist using the playlist viewer.
apps/playlist_viewer.c [diff]
apps/tree.c [diff]
Christian Soffke
3rd Apr 22:14 4f374b3862: QuickScreen: Update status bar after changing volume

So that (e.g.) a skin's custom volume bar doesn't appear choppy during volume adjustments
apps/gui/quickscreen.c [diff]
Christian Soffke
3rd Apr 00:28 e09df1ce5b: Fix accidental fallthrough in FiiO M3K simulator keymap
uisimulator/buttonmap/fiio-m3k.c [diff]
Aidan MacDonald
2nd Apr 15:29 5d292d9283: README: Update cross-toolchain info
docs/README [diff]
Solomon Peachy
2nd Apr 15:25 2ebfbd3b7c: docs: Add myself to revelant parts of the MAINTAINERS file.
docs/MAINTAINERS [diff]
Solomon Peachy
2nd Apr 15:16 39db911164: h300: Fix html manual generation
manual/platform/iriverh300.tex [diff]
Solomon Peachy
2nd Apr 00:24 afec380a0d: gigabeats: Fix hang on startup caused by a stack overflow

headphone ADC thread stack was slightly too small. Bump it up a bit.

(it was _perfectly_ sized for the prior older toolchain+optimization flags...)
firmware/target/arm/imx31/gigabeat-s/headphone-gigabeat-s.c [diff]
Solomon Peachy
1st Apr 19:45 9e15c19891: build: Make it easier to disable plugins

Instead of 'ifdef ENABLEPLUGINS' (which always gets set) use
'ifeq(yes,$(ENABLEPLUGINS))' which means any value other than 'yes' is treated as a negative.
tools/root.make [diff]
Solomon Peachy
1st Apr 14:57 2f785c7797: PP: More cache invalidation fixes

Take into account the size of the pointer in the loop termination condition.
firmware/target/arm/pp/system-pp502x.c [diff]
Solomon Peachy
1st Apr 12:45 9f7f1a841a: PP: Use CURRENT_CORE instead of IF_COP_CORE(CPU)

Use of IF_COP_CORE was mistakenly introduced as part of 89acde6af2, effectively short-circuiting multiple tests resulting in the code paths always being executed, on both cores.

Use the correct macro, so per-CPU paths are handled properly.
firmware/target/arm/pp/system-pp502x.c [diff]
Solomon Peachy
1st Apr 10:54 0b20038d87: FiiO M3K: Hopefully fix the sim build
firmware/export/config/fiiom3k.h [diff]
Solomon Peachy
1st Apr 05:57 674c07d654: (Fix FS #13281) Revert "Restore playlist state as necessary before checking whether current playlist has been modified"

This reverts commit 46085c897854d145b5313c009fb70af428f0e6bd.
apps/playlist.c [diff]
Christian Soffke
1st Apr 04:52 89acde6af2: H10 PP Crash -- Fixed

This appears to finally fix the issue turns out the status register we were writing was only for the CPU COP cache flush wiped out the CPU cache
--

Added some defines to cut down on the magic numbers Added some comments explaining such

Set the address to full 20 bit address 0x1FFFFF which is then left shifted 11 internally -- somewhere around 4GB?

Link explains the cache status bits https://daniel.haxx.se/sansa/memory_controller.txt
firmware/export/pp5020.h [diff]
firmware/target/arm/pp/system-pp502x.c [diff]
William Wilgus
28th Mar 16:08 058a9ec945: Add M3K native to the simulator
apps/debug_menu.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/target/hosted/sdl/sim-ui-defines.h [diff]
uisimulator/bitmaps/UI-fiiom3k.bmp [new]
uisimulator/buttonmap/SOURCES [diff]
uisimulator/buttonmap/fiio-m3k.c [new]
Solomon Peachy
28th Mar 14:46 afd8361d08: Add native FiiO M3K to builds.pm

Note: It's marked as 'unusable' right now, so it won't show up on build.rockbox.org, nor will daily & voice files be created.
tools/builds.pm [diff]
Solomon Peachy
28th Mar 00:01 3ec66893e3: New port: FiiO M3K on bare metal
.gitignore [diff]
apps/SOURCES [diff]
apps/debug_menu.c [diff]
apps/features.txt [diff]
apps/gui/option_select.h [diff]
apps/keymaps/keymap-fiiom3k.c [new]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
...and 113 more files.
Aidan MacDonald
27th Mar 21:18 83fcbedc65: rk27xx: Take advantage of STORAGE_NEEDS_BOUNCE_BUFFER

(And get rid of its custom realignment code)
firmware/target/arm/rk27xx/sd-rk27xx.c [diff]
firmware/target/arm/rk27xx/system-target.h [diff]
Solomon Peachy
27th Mar 19:02 961ffa61dd: Use STORAGE_NEEDS_BOUNCE_BUFFER instead of STORAGE_NEEDS_ALIGN

Enable its use in the jz47xx MIPS targets.

(accidently committed g#3249 before making these changes)
firmware/drivers/fat.c [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
Solomon Peachy
27th Mar 18:43 c96dc1c886: xduoox3ii: Wrap the remote key detection in USE_REMOTE

Makes it straightforward to disable for debugging or defective hardware
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
27th Mar 18:43 ea1aef9b82: Have FAT filesystem respect storage buffer alignment on reads

This is just a minor cleanup of Solomon Peachy's code, and using per-filesystem buffers instead of a single static buffer.

Tested and working on the FiiO M3K.
firmware/drivers/fat.c [diff]
Aidan MacDonald
26th Mar 01:58 f00eea4434: ErosQ: Fix text entry keymap

Text entry keymap was almost completely backwards, and it was impossible to submit without adding one last character.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
25th Mar 18:26 018372bf39: usb: implement macro for initializing USB strings

This uses the new unicode string literal feature that is available now to greatly simplify the initialization of these special string types. This makes them much more readable at a quick glance.
firmware/export/usb_drv.h [diff]
firmware/usbstack/usb_core.c [diff]
utils/hwstub/stub/main.c [diff]
utils/hwstub/stub/usb_drv.h [diff]
James Buren
25th Mar 16:23 7652e6f8df: rk27xx: Get rid of duplicate STORAGE_WANTS_ALIGN
firmware/export/config/ihifi770.h [diff]
firmware/export/config/ihifi770c.h [diff]
firmware/export/config/ihifi800.h [diff]
Solomon Peachy
25th Mar 16:20 d5cc74ebd8: build: Get rid of suplerflous '-Os' references in linker calls

We should be using global optimization flags, and -Os is already our default.
firmware/target/hosted/agptek/rocker.make [diff]
firmware/target/hosted/aigo/erosq.make [diff]
firmware/target/hosted/fiio/fiio.make [diff]
firmware/target/hosted/samsungypr/ypr0/ypr0.make [diff]
firmware/target/hosted/samsungypr/ypr1/ypr1.make [diff]
firmware/target/hosted/sonynwz/sonynwz.make [diff]
firmware/target/hosted/xduoo/xduoo.make [diff]
tools/root.make [diff]
Solomon Peachy
25th Mar 16:20 d121aa3fe8: build: We don't need sh-specific flags in the pictureflow build.
apps/plugins/pictureflow/pictureflow.make [diff]
Solomon Peachy
25th Mar 06:34 3d9d2de34d: Revert "lcd framebuffer - Bugfix #2 ensure proper alignment"

This reverts commit 3a5c5edbf6cb3ac5e4b65fe036ca50b41fabaa89.

Reason for revert:pulling in system.h breaks SDL

:(
firmware/export/lcd.h [diff]
William Wilgus
25th Mar 04:32 3a5c5edbf6: lcd framebuffer - Bugfix #2 ensure proper alignment

-- apparenty 0x4 aligned doesn't work properly

requires 0x8 alignment at least for the h10 20gb but enabled for all processors that define MEM_ALIGN_ATTR
firmware/export/lcd.h [diff]
William Wilgus
24th Mar 18:50 a53864ed4a: build: Don't overwrite autoconf.h unless it has actually changed

This way we only rebuild the world if something relevant changed.
tools/configure [diff]
Solomon Peachy
24th Mar 18:44 ed99b305a9: Revert "lcd framebuffer - Bugfix ensure proper alignment"

This reverts commit ffee661ab70e9622a05c9c2f24ecf474dad8f042.

Reason for revert: <INSERT REASONING HERE> iAudio M5 `IRAM' overflowed by 48 bytes
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-color-common.c [diff]
William Wilgus
24th Mar 18:22 ffee661ab7: lcd framebuffer - Bugfix ensure proper alignment

-- apparenty 0x4 aligned doesn't work properly

requires 0x8 alignment at least for the h10 20gb but enabled for all arm processors

assign the default framebuffer to the default_vp as well
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-color-common.c [diff]
William Wilgus
23rd Mar 15:42 94b40ed314: Add asynchronous I2C bus API

The driver core is based off of the i.MX233 I2C implementation and should work on any platform.
firmware/SOURCES [diff]
firmware/drivers/i2c-async.c [new]
firmware/export/i2c-async.h [new]
Aidan MacDonald
23rd Mar 13:01 eedc8934a9: FS13279: Update Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
23rd Mar 13:01 9a8ec7e0df: Update english-us "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
23rd Mar 04:17 e862816773: Fix FS #13278: error message when playing a song with Rockbox for the very first time

The function to check whether a playlist has been modified will now only try to resume a playlist, if the global resume index is not -1.

This also means that replacing a finished (modified) playlist will not produce a warning anymore if Rockbox has been restarted in between. In that respect, the behavior is identical to what it was *before* 46085c897854.
apps/playlist.c [diff]
Christian Soffke
23rd Mar 03:09 3682891772: FS13277: Updated Polish translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
23rd Mar 03:03 4d83f7a192: Call powermgmt_init_target() before polling the battery

In the old position of the call, the first battery reading would be made before initializing the target's power management code.

If the target needs to initialize before giving a battery reading, then the first reading would be wrong and the power thread might inappropriately shut down based on a false zero reading.

The new position avoids forcing special-case logic onto the target power management code.
firmware/powermgmt.c [diff]
Aidan MacDonald
23rd Mar 02:05 1c54c5227b: Add disable setting for all softlock notifications

Tested on erosq

Added ability to disable all softlock notifications. Setting is
"Disable All Lock Notifications" under Advanced Key Lock Settings.

Tested to make sure it doesn't interfere with backlight exemptions, keylock exemptions, or first press enables backlight only. When enabled, this overrules the existing Disable Notify setting, which only disables the reminders when a button is pressed while the device is already locked.

Also changed phrases in the Advanced Key Lock settings menu to make it more obvious what the options do. Changed LANG_ACTION_PLAY, LANG_ACTION_SEEK, and LANG_ACTION_SKIP from
"[button]" to "Exempt [button]". These language changes will also affect the Backlight Exemptions list, but the wording should be appropriate there as well.

Added LANG_SOFTLOCK_DISABLE_ALL_NOTIFY and LANG_ACTION_VOLUME, changed LANG_VOLUME to LANG_ACTION_VOLUME in display_menu.c for consistency.
apps/action.c [diff]
apps/action.h [diff]
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/menus/settings_menu.c [diff]
Dana Conrad
22nd Mar 13:22 bf9fdb13c4: Remove some HAVE_FUNCTIONAL_MODE bits

This was dead code introduced by 0662793c, and got missed by 08ab3aea which should've removed it.
apps/menus/sound_menu.c [diff]
apps/settings.h [diff]
Aidan MacDonald
22nd Mar 13:22 90ad920d44: debug_menu: revise how the ATA device bit is reported

According to the ATA specification this bit is used to indicate either an ATA device or a CF compatible card. We use it currently to indicate CF compatible status. So let's change the wording accordingly.
apps/debug_menu.c [diff]
James Buren
22nd Mar 13:00 55805e13a4: Add new audiohw capability: POWER_MODE_CAP

This allows the user to make use of the DAC's power-saving abilities. The two modes are "high performance" and "battery saver". This feature is supported by the AK4376 DAC in the upcoming FiiO M3K port.

The setting is only a manual toggle right now, but in the future it could be hooked up to the battery level (via another setting) so it can be toggled automatically when the battery gets too low.
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/menus/sound_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/drivers/audio/sdl.c [diff]
firmware/export/audiohw.h [diff]
firmware/export/audiohw_settings.h [diff]
firmware/export/sound.h [diff]
firmware/sound.c [diff]
Aidan MacDonald
22nd Mar 11:30 3a254a92c7: debug_menu: Fix compile error from previous commit
apps/debug_menu.c [diff]
James Buren
22nd Mar 10:51 3f88512b3b: debug_menu: report on ATA device type bits

This reports the ATA device type bits in a human readable format so that users can easily identify what their ATA device is claiming to be. This is mainly useful for troubleshooting a possible source of compatibility issues with their DAP. As such this is mainly an aid to CF modders.
apps/debug_menu.c [diff]
James Buren
22nd Mar 02:50 a8846e3003: Increase id3v2 max item size on high mem targets

As per multiple user requests: https://forums.rockbox.org/index.php/topic,53319.msg

The acceptable size for id3v2 fields currently maxes out at 240 bytes on targets with more than 2MB of memory.

The comments field, especially for Podcasts, can sometimes contain significantly more characters than Rockbox allows.

The limit for devices with more than 8MB of memory is increased to 500 bytes for individual fields, and to 1800 bytes for the buffer containing all fields.
lib/rbcodec/metadata/metadata.h [diff]
Christian Soffke
20th Mar 03:10 d5676fcd90: If backlight is off and keys are unlocked, power button wakes screen only

tested on erosq

On devices with both a backlight and a softlock button, currently pressing the softlock button while the screen is off and the keypad is unlocked will wake the screen and also lock the keypad. Presumably, the user's intention is to use the device when they hit the softlock button in this state, so wake the screen without locking the keypad.
apps/action.c [diff]
Dana Conrad
18th Mar 17:23 775645e649: Shortcuts.c fix regression from last bugfix

wiped out the lang id check which causes shortcuts menu to pop error message when browsing to folders

shortcut menu uses the return to check for validity
apps/open_plugin.c [diff]
William Wilgus
18th Mar 04:46 48952d498d: shortcuts menu bugfix wps context plugin fallthrough

if you ran a plugin from shortcut menu that originated from the WPS next time you pressed select in the wps it would attempt to run the wps context plugin
apps/root_menu.c [diff]
William Wilgus
18th Mar 02:39 29fa47d43d: Open Plugin cache plugin entry when possible

leave plugin entries in ram and try not to save them unless necessary doesn't use more space just a bit of careful ordering with the buffer
apps/misc.c [diff]
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/root_menu.c [diff]
William Wilgus
17th Mar 22:09 10b873c407: xduoox3: In ROLO, allow the ADC to be shut down.

The hang we were seeing was due to IRAM wonkiness. that's fixed.
firmware/rolo.c [diff]
Solomon Peachy
17th Mar 13:29 e049099165: erosq: Move ACTION_TREE_WPS to list context for use in Files and Database

The ACTION_TREE_WPS (held back button) was a part of the mainmenu context, moved to list context so it would work in Files and Database as well for consistency.
apps/keymaps/keymap-erosq.c [diff]
Dana Conrad
17th Mar 12:13 25c9f716ce: Manual: Mention/reference viewing playlists through the File Browser
manual/working_with_playlists/main.tex [diff]
Christian Soffke
17th Mar 11:49 cdf99f8564: Manual: update description of Current Playlist menu options

- note that availability of options depends on player state
- present options that only insert tracks separately from those that also remove tracks
- add short intro for the latter.
manual/working_with_playlists/main.tex [diff]
Christian Soffke
16th Mar 15:11 3bb78b468d: Resume audio after user selects a new song

Music currently doesn't begin playing after the user has selected a new song from a playlist or using the database/file browser, unless another item was already playing or the previous player state was "stopped" but not "paused". This results in an inconsistent user experience. The user's likely intention is to immediately listen to a song they select regardless of the previous player state.
apps/playlist.c [diff]
Christian Soffke
16th Mar 13:05 576b56b35a: Offer function to Clear List & Play Shuffled when playback is stopped

(as per multiple user requests)

When playback is stopped, Rockbox will display an option to clear the current playlist and add selected tracks in random order, if Shuffled Adding options are enabled in Settings.

Insert options will not be displayed anymore when playback is stopped to lessen confusion.
apps/lang/english.lang [diff]
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
16th Mar 12:56 46085c8978: Restore playlist state as necessary before checking whether current playlist has been modified

Rockbox would previously not present a warning when you were about to replace a modified playlist after restarting the player, unless you first resumed playback.
apps/playlist.c [diff]
Christian Soffke
15th Mar 12:17 efe493de3d: FS13274: Bump max battery capacity for iPod Videos to 3000mAh

3rd party batteries can go this high for users that have performed SSD mods.
firmware/export/config/ipodvideo.h [diff]
Solomon Peachy
14th Mar 23:36 2d8e0f7c90: Customizable Current Playlist Submenu

Options to add shuffled tracks and to queue tracks in the Current Playlist Submenu can now be hidden, or the latter can also be put into its own submenu. Users can customize this in Settings by going to
"General Settings - Playlists -> Current Playlist" and choosing from "Show Shuffled Adding Options" (No / Yes) or "Show Queue Options" (No / Yes / In Submenu).

Allows for the paring down of the set of choices to a minimum of the 4 more common ones for adding tracks to a dynamic playlist (coming from the current total of 11).

Defaults have been set so that users have to actively modify their settings to notice any difference, which makes it unlikely that anybody's workflow would be negatively affected by this change.
apps/lang/english.lang [diff]
apps/menus/playlist_menu.c [diff]
apps/onplay.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/playlist_options.tex [diff]
manual/main_menu/main.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
14th Mar 17:06 99383a0f9b: erosq: change keymap to fix back button

Back button's ACTION_TREE_WPS state in the mainmenu context causes a jump back to the main menu root from anywhere in the settings tree. Changing it to a held button fixes this.

Also changed the ACTION_STD_CANCEL functionality of the back button in the standard context to be on release, just because I think it feels better to use.

Also added myself to docs/CREDITS
apps/keymaps/keymap-erosq.c [diff]
docs/CREDITS [diff]
Dana Conrad
14th Mar 17:04 6b39e23074: Updated Italian Translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
14th Mar 17:04 406136f7c7: Update english-US "translation"
apps/lang/english-us.lang [diff]
Solomon Peachy
14th Mar 16:33 92a0ab8789: sound: add sound_numdecimals() to round out the sound setting query API

A necessary prerequisite for fixing FS #13272
firmware/export/sound.h [diff]
firmware/sound.c [diff]
Solomon Peachy
14th Mar 03:17 714f7a21da: erosq: Have tree context fall back to list context rather than mainmenu.

Allows 'back' to cancel vs always popping into wps, for example.
apps/keymaps/keymap-erosq.c [diff]
Solomon Peachy
14th Mar 03:17 b44dd11b6b: Add soft-keylock to standard context on the x20/x3ii/erosq targets

tap power to lock!
apps/keymaps/keymap-erosq.c [diff]
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
Solomon Peachy
12th Mar 18:20 3d2783f367: Update manual (Working with Playlists)

- Bring description of "Create Playlist" command up to date
- Explain that entries added by Insert Shuffled aren't contiguous
- Introduce Queue options in a short paragraph
manual/working_with_playlists/main.tex [diff]
Christian Soffke
12th Mar 15:04 2743bde09b: ATA: Increase delay to power-off when device doesn't support ATA SLEEP

The storage subsystem aggressively issues SLEEPNOW events when idle and power off happened a fixed 2s later. This turns out to not be enough time for FC1307A (eg iFlash) adapters to flush outstanding writes.

So, when we detect a lack of PM support, increase the poweroff delay to 5 seconds to compensate for not being able to issue the ATA SLEEP command.

Hopefully this is enough time. If not, we will have to re-disable PM entirely when we detect these popular adapters. Thankfully that is now just an #ifdef away.
firmware/drivers/ata.c [diff]
Solomon Peachy
12th Mar 14:39 04c29984ce: ipod6g: increase max battery capacity

It's possible to get up to 3000mAh batteries for this device, although it requires that you use an iFlash adapter to make enough space.

Signed-off-by: Caleb Connolly
docs/CREDITS [diff]
firmware/export/config/ipod6g.h [diff]
Caleb Connolly
11th Mar 19:43 043e8a0c5c: Manual: Updates to Playlist Catalogue menu

Keeping in sync with how Rockbox currently works:
- Context menu doesn't include an option to "View Catalogue" anymore
- What used to be the "Playlists" menu is now the context menu of the "Playlist Catalogue"
- Context menu includes an option to "Reset Playlist Catalogue Directory"

Also updated info regarding the "Create Playlist" option.
manual/main_menu/main.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Christian Soffke
11th Mar 19:43 76c9e3f558: Use "Save" instead of "Save Current Playlist" in Playlist Viewer

LANG_SAVE_DYNAMIC_PLAYLIST refers to dynamic playlists.

A playlist being edited is only the "current playlist" in case of a dynamic playlist. When other playlists are edited, the current playlist is different from the edited/selected playlist.

(A possible motivation for differentiating between the two here is because "Current Playlist" is already the title of a submenu in that same context menu where the name refers to the dynamic playlist and not to the selected playlist. "Save Current Playlist" is also used in the Playlist Catalogue's context menu for example, referring to the dynamic playlist.)
apps/playlist_viewer.c [diff]
Christian Soffke
11th Mar 19:43 adac2c8880: Fix "Create Playlist" option in context menu of "Playlist Catalogue"

If the previously selected directory in the file browser was the playlist directory, creating a playlist with all files wouldn't work due to the fact that PLAYLIST_CATALOG_DEFAULT_DIR has an unexpected duplicate leading '/'.

The initialize_catalog function makes sure to remove this from playlist_dir.
apps/playlist_catalog.c [diff]
Christian Soffke
11th Mar 19:43 49c230f630: Manual: fix spelling
manual/rockbox_interface/main.tex [diff]
Christian Soffke
11th Mar 19:28 bd507fc7b4: ATA: When device doesn't support powermgmt, only gate ata sleep command.

The FC1307A ATA->SD chipset (used by the common iFlash adapters) doesn't support mandatory ATA power management commands, leading to massive data corruption if they were issued.

A workaround was identified (54629073ae) that basically disabled all of rockbox's power management code for these adapters, which extends well beyond the specific ATA commands issued.

This patch moves the gating test to the issuance of the actual SLEEP, so that the rest of rockbox's PM code can function as intended. This allows the device to get powered down when idle, yielding potentially significant improvements in battery life.
firmware/drivers/ata.c [diff]
Solomon Peachy
11th Mar 03:43 eb9f05f835: ImageViewer Fix jpeg decoder

Image viewer compiles decoders as a plugin and removes CRT0 A resuklt static vars do not get initialized in decoders
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
William Wilgus
11th Mar 02:35 87e37a4d48: xduoo_x3ii: Improvements in the meymappings!

* PREV/NEXT now swapped so they do what is expected in most contexts
* List and setting context retains prior behavior
* Enable the ADC that reads the headset remote and map the keys.
* As ADC-based remote "events" arrive as press/release pairs, delay the button release.
apps/keymaps/keymap-xduoox20.c [diff]
apps/keymaps/keymap-xduoox3ii.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/target/hosted/button-devinput.c [diff]
firmware/target/hosted/xduoo/button-target.h [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
11th Mar 00:01 a87abdb28f: Special-case the storage names for hibylinux-based hosted targets
apps/features.txt [diff]
apps/lang/english.lang [diff]
Solomon Peachy
11th Mar 00:01 7201c3a685: fiiom3klinux: Fix a build warning.
firmware/target/hosted/power-linux.c [diff]
Solomon Peachy
10th Mar 23:29 555299af9f: hosted: Consolidate the code that polls the battery charging status

affects all hiby targets, fiiom3k, and ibasso dx50/dx90

As well as deduplicating a small pile of code, this also implements hysteresis so we're not doing a sysfs read/lookup multiple times back-to-back every time the power management tick fires.
firmware/SOURCES [diff]
firmware/export/config/fiiom3klinux.h [diff]
firmware/export/config/hibylinux.h [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/agptek/power-agptek.c [diff]
firmware/target/hosted/agptek/power-agptek.h [diff]
firmware/target/hosted/agptek/powermgmt-agptek.c [diff]
firmware/target/hosted/aigo/power-erosq.c [diff]
firmware/target/hosted/aigo/power-erosq.h [diff]
firmware/target/hosted/aigo/powermgmt-erosq.c [diff]
firmware/target/hosted/fiio/power-fiio.c [diff]
firmware/target/hosted/fiio/power-fiio.h [diff]
firmware/target/hosted/fiio/powermgmt-fiio.c [diff]
firmware/target/hosted/ibasso/power-ibasso.c [diff]
firmware/target/hosted/power-linux.c [new]
firmware/target/hosted/xduoo/power-xduoo.c [diff]
firmware/target/hosted/xduoo/power-xduoo.h [diff]
firmware/target/hosted/xduoo/powermgmt-xduoo.c [diff]
Solomon Peachy
10th Mar 13:10 b3b8310e4e: Move "View" option for playlists up one level

The "View" option for playlists/.m3u files is currently part of the "Current Playlist" submenu even though it refers to the selected file/playlist and has nothing to do with the current playlist. It has been relocated to the context menu of the playlist file where it makes more sense and is easier to get to.
apps/onplay.c [diff]
manual/rockbox_interface/browsing_and_playing.tex [diff]
Christian Soffke
10th Mar 13:10 73ec3971f7: Fix "Playlist" vs. "Current Playlist" menu terminology in manual

The manual has been updated to reflect the fact that the current title of the submenu for adding music in the context menu is "Current Playlist". (The WPS context menu has a different submenu called "Playlist")
manual/rockbox_interface/browsing_and_playing.tex [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
10th Mar 10:09 0ba174789b: usb_hid: switch Battery Strength to use feature reports

This means we will no longer send them routinely and instead rely on the HID driver to send them when the host requests it. This also moves the reporting out of the power management code where it probably did not belong in the first place.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/usbstack/usb_hid.c [diff]
James Buren
9th Mar 20:04 777f63d529: Move MIPS cache management functions to IRAM

Previously these were placed in DRAM, which is overwritten by RoLo when it loads a new image, but RoLo must call commit_discard_idcache() after loading the image.
firmware/target/mips/mmu-mips.h [diff]
Aidan MacDonald
9th Mar 17:24 4e6609e9f2: Update english-US translation.
apps/lang/english-us.lang [diff]
Solomon Peachy
9th Mar 15:10 b2d13f1793: UI: Rename "Play Next" to "Clear List & Play Next"

The "Play Next" function replaces the current dynamic playlist, so it makes sense to convey that information to the user when displaying the option in a context menu.
apps/lang/deutsch.lang [diff]
apps/lang/english.lang [diff]
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
9th Mar 14:48 f4b891e408: Shortcuts Menu -- remove debug statements
apps/shortcuts.c [diff]
William Wilgus
9th Mar 13:26 f348d921b6: Shortcuts Menu -- Update2

make shortcuts menu drop back into WPS on exit different icons for plugins and files versus folders
apps/gui/wps.c [diff]
apps/shortcuts.c [diff]
William Wilgus
9th Mar 11:28 d0ab6b24dc: Updated Italian translation (Alessio Lenzi)
apps/lang/italiano.lang [diff]
Solomon Peachy
9th Mar 11:26 6387d0352e: FS #13263: Rockbox deletes wrong file

The WPS calls onplay() with a pointer to the path of the current track . We need to make a copy of the path so it isn't affected by track changes.
apps/onplay.c [diff]
Christian Soffke
9th Mar 11:18 5c3bbc6a9c: Reset filetype colors when resetting theme colors

Even though filetype colors can't currently be changed by going to Settings->Theme Settings->Colors, a user likely wishes to still reset them when selecting 'Reset Colors' after a .colours file may have been applied by a theme.
apps/menus/theme_menu.c [diff]
Christian Soffke
9th Mar 11:18 3b9a803a5b: Show 'Play Next' option when playback is stopped

1) The Insert functionality was changed in abebc6b to not delete unfinished dynamic playlists anymore. "Play Next" has now been added as an option when playback is stopped. The behavior of
"Play Next" as such has not changed and it is now the consistent way to replace a current playlist in all playback modes.

2) The 'Insert' and 'Insert Shuffle' options will now only be displayed if there is a resumable dynamic playlist
apps/onplay.c [diff]
manual/working_with_playlists/main.tex [diff]
Christian Soffke
9th Mar 03:17 13178d23b8: Shortcuts Menu Update

Change Browser shortcut to the plugin icon drop back into WPS on opx return allow same action to exit shortcut menu as entered -- might be problematic
apps/menu.c [diff]
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
William Wilgus
2021-03-08 c9e8d96e77: ibasso: Fix the dx50/dx90 build (and usb_mode selection)

(The usb_mode selection setting was actually broken even though it had been previously compiling...)
apps/menus/settings_menu.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
Solomon Peachy
2021-03-07 7c58b6f0db: usb_mode: Missed a #define that led to some sim build failures.
apps/menus/settings_menu.c [diff]
Solomon Peachy
2021-03-07 bbd85cf0c1: settings: Fix inconsistent #ifdefs wrapping the usb_mode stuff

It should be:

#if defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
Solomon Peachy
2021-03-07 9712d375ce: Shortcuts.c -- Update

Fix returns from shortcuts -- should now run plugins Fix formatting of file names to remove path from browser shortcuts
apps/gui/quickscreen.c [diff]
apps/gui/quickscreen.h [diff]
apps/gui/wps.c [diff]
apps/menu.c [diff]
apps/root_menu.c [diff]
apps/shortcuts.c [diff]
apps/tree.c [diff]
William Wilgus
2021-03-07 0dce973729: OpenPlugins Allow opx shortcuts

Allow opx shortcuts to be run through the shortcut menu
apps/open_plugin.c [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-07 207514fb25: voice: Allow voice prompt volume to be configurable

It defaults to 100%, allow it to be dialed back
apps/lang/english.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
apps/voice_thread.c [diff]
apps/voice_thread.h [diff]
manual/configure_rockbox/voice.tex [diff]
Solomon Peachy
2021-03-07 c16f9142f7: build: Make all other language files "depend" on english.lang

If we update english.lang, we need to re-run genlang on the other language files so any changes are picked up.
apps/lang/lang.make [diff]
Solomon Peachy
2021-03-06 308dd4ffee: Open_plugins.c fix red

rb->strncasecmp
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-06 87ad55b06e: Open_Plugins Add Features

Added an entry 'Add' to the main screen to lessen confusion

side note: its actually a shortcut back to this plugin with flag '-add' passed as a parameter
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-06 f647cde3c7: usb_hid: add support for Battery Strength

This allows rockbox to report its battery status through the HID Battery Strength method that is available through the Device Controls usage page.
firmware/export/powermgmt.h [diff]
firmware/powermgmt.c [diff]
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_hid_usage_tables.h [diff]
James Buren
2021-03-06 9cf45374e0: Announce_status plugin bugfix use artist prior to albumartist

give id3->artist higer precedence than id3->albumartist
apps/plugins/announce_status.c [diff]
William Wilgus
2021-03-05 bac897381c: updatelang: Handle/flag the bad data that led to english-us breaking
tools/updatelang [diff]
Solomon Peachy
2021-03-05 0c958d2b4a: announce_status trackchange bugfix

!Properly remove callback! don't play voice prompt at startup if something is actively playing
apps/plugins/announce_status.c [diff]
William Wilgus
2021-03-05 83111eeece: English-US language had some issues that caused it to fail.
apps/lang/english-us.lang [diff]
Solomon Peachy
2021-03-05 925dc59126: OOM on Audio_Reset_Buffer

Allow the talk file to be unloaded
apps/playback.c [diff]
William Wilgus
2021-03-05 895ed92496: Talk.c, playlist.c fix bugs

fix bug in talk.c

playlist.c only dump voice buffer if we are out of space
apps/playlist.c [diff]
apps/talk.c [diff]
William Wilgus
2021-03-05 03ae4e6019: Announce_status plugin make USB plug aware

Announce_status was blocking USB from working it now quits on USB plug
apps/plugins/announce_status.c [diff]
William Wilgus
2021-03-05 10b6707131: Talk Fix outright disable after first clip

Oops Sorry bout that ;P
apps/talk.c [diff]
William Wilgus
2021-03-05 b2732222e9: Talk.c Guard against use after free / failure to load voicefile

load_voicefile_data wasn't checked for success leading to a use after free situation

get_clip now checks for valid index_handle before using it
apps/talk.c [diff]
William Wilgus
2021-03-04 56a1e87501: ata: Make ata_disk_is_active() only special-case powermgmt-less devices.

SSDs that respect powermgmt commands should be treated the same, as the powermgmt commands are an important part of ensuring it's safe to shut down.

And greatly expand the comment explaining things.
firmware/drivers/ata.c [diff]
Solomon Peachy
2021-03-04 be99033cbb: Always indicate inactive ata disk if device is solid state or doesn't support power management

Commit 5462907 made sure that SLEEP commands weren't issued on devices that don't support ATA power management commands (e.g. certain CF->SD converters including several iFlash models).

Since Rockbox waits for the disk to become inactive in shutdown_hw(), which won't happen in this case, the OS would previously stall during the shutdown process until a timeout was reached.
firmware/drivers/ata.c [diff]
Christian Soffke
2021-03-04 fb99d890a8: Fix typo in MIPS cache discard
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-04 cbace906c6: mips: Revert to commiting the cache when we're told to discard an unaligned block.

The filesystem API often passes in unaligned receive buffers, and some code (eg BMP reader) processes data in-place, leading to data loss when we dropped the cache.

(And document exactly what we're doing, so we don't go through this again at $future_date)
firmware/target/mips/mmu-mips.c [diff]
Solomon Peachy
2021-03-04 bcee955169: rolo: use audio_hard_stop() instead of audio_stop()

This kills the audio thread entirely, including voice stuff.
firmware/rolo.c [diff]
Solomon Peachy
2021-03-04 a4a5f5f33f: Check core max allocations for valid handle

fix rolo warnings
apps/radio/radioart.c [diff]
apps/tagtree.c [diff]
firmware/rolo.c [diff]
William Wilgus
2021-03-04 2628155fc9: Clean up places that use #if defined(CPU_ARM | CPU_COLDFIRE | CPU_MIPS)

Since that encompasses _all_ of our native targets in a post-archos world, either replace it with #if (CONFIG_PLATFORM & PLATFORM_NATIVE) or delete it altogher as appropriate.
firmware/rolo.c [diff]
lib/rbcodec/codecs/libtremor/oggmalloc.c [diff]
lib/rbcodec/codecs/vorbis.c [diff]
Solomon Peachy
2021-03-04 15b4d22913: ROLO check for OOM

Splqash failure and return on OOM
firmware/rolo.c [diff]
William Wilgus
2021-03-04 80be135d0d: OOM on playlist_resume

Discovered on ClipZip but applicable to other LOW MEM targets

Back off voice buffer on playlist_resume
apps/playlist.c [diff]
William Wilgus
2021-03-04 de53965e3f: Third try fixing MIPS cache code

Changing this to be a pure discard operation after discussion on IRC
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-04 b82298ae2c: jz4740: Fix incorrect dcache flush in the USB RX DMA code.
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
Solomon Peachy
2021-03-03 8cb4c18310: Really fix the MIPS cache bug this time

In fixing the original bug I tried to optimize discard_dcache_range() to minimize writeback and inadvertently introduced a second bug, which typically ends in a TLB refill panic.

It occurs only if the range fits within one cache line, and when both the start and end of the range are not aligned to a cache line. This causes ptr to be incremented and end to be decremented, so ptr > end, and the loop can't terminate.
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-03 cde5ae755f: iPods: Allow using scroll wheel to change volume on QuickScreen

As suggested by forum user yuuiko
apps/action.h [diff]
apps/gui/quickscreen.c [diff]
apps/keymaps/keymap-ipod.c [diff]
manual/main_menu/main.tex [diff]
Christian Soffke
2021-03-03 0f439bee99: ihifi: use STORAGE_WANTS_ALIGN rather than STORAGE_NEEDS_ALIGN
firmware/export/config/ihifi770.h [diff]
firmware/export/config/ihifi770c.h [diff]
firmware/export/config/ihifi800.h [diff]
Solomon Peachy
2021-03-03 74a3d1f5be: Fix MIPS cache operations and enable HAVE_CPU_CACHE_ALIGN on MIPS

- The range-based cache operations on MIPS were broken and only worked properly when BOTH the address and size were multiples of the cache line size. If this was not the case, the last cache line of the range would not be touched!

Fix is to align start/end pointers to cache lines before iterating.

- To my knowledge all MIPS processors have a cache, so I enabled HAVE_CPU_CACHE_ALIGN by default. This also allows mmu-mips.c to use the CACHEALIGN_UP/DOWN macros.

- Make jz4760/system-target.h define its cache line size properly.
firmware/export/system.h [diff]
firmware/target/mips/ingenic_jz47xx/system-target.h [diff]
firmware/target/mips/mmu-mips.c [diff]
Aidan MacDonald
2021-03-03 f906df017d: Open Plugin -- Make first run show at least one item to user

Open plugin needs the context menu to allow the user to add an item on the first run there are no items and therefore nothing to pop the context menu from
apps/plugins/open_plugins.c [diff]
William Wilgus
2021-03-03 5317953f4a: Battery Icon, Remove Hardcoded Overall Width

Icon no longer showed 100% with some fonts
apps/gui/statusbar.c [diff]
William Wilgus
2021-03-03 2cde135cfe: flac fix dumb typo
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
William Wilgus
2021-03-03 93d8be80ce: Remove a couple more stragglers from the Archos purge
apps/player/icons.h [deleted]
apps/player/keyboard.c [deleted]
Solomon Peachy
2021-03-03 118191479d: Nudge flac towards upstream FS #13266 -- Fix the Yellow still?
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
William Wilgus
2021-03-03 2252bde144: Nudge flac towards upstream FS #13266 -- Fix Yellow

unused variables
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
William Wilgus
2021-03-02 a017219488: Nudge flac towards upstream FS #13266

Some flac encoded files contain junk that our decoder picked up

upstream has some sign and overflow fixes too
lib/rbcodec/codecs/libffmpegFLAC/decoder.c [diff]
lib/rbcodec/codecs/libffmpegFLAC/decoder.h [diff]
lib/rbcodec/codecs/libffmpegFLAC/golomb.h [diff]
William Wilgus
2021-03-02 7d78958f9d: Reset unknown file color when resetting filetype colors

The unknown file color is handled as a special case and also needs to be reset here
apps/filetypes.c [diff]
Christian Soffke
2021-03-02 22cc4e4fcf: Fixed bug in Fiio M3K port where up button didnt work in some menus
apps/keymaps/keymap-fiiom3klinux.c [diff]
docs/CREDITS [diff]
spencer-brennessel
2021-03-02 a6eafc86f8: Remove execute bit from file permissions from recent commit
apps/buffering.c [diff]
apps/buffering.h [diff]
apps/playback.c [diff]
apps/radio/radioart.c [diff]
apps/recorder/jpeg_load.c [diff]
William Wilgus
2021-03-02 73cee8f177: Add RegGen-NG tool and definitions for Ingenic X1000
utils/reggen-ng/reggen-ng.py [new]
utils/reggen-ng/x1000.reggen [new]
Aidan MacDonald
2021-03-01 7418ec5009: FS #13267: Fix crash when enabling Perceptual Bass Enhancment during playback

I think the assumption is that during playback, the DSP is already running so it assumes PBE needs to be flushed before it is properly enabled.
lib/rbcodec/dsp/pbe.c [diff]
Solomon Peachy
2021-03-01 640b14c08c: Fix inability to reset filetype colors without restarting

0ce42df prevented read_color_theme_file() from being executed when applying settings (from a cfg file) if the filetype colors setting was set to "-". Resetting custom filetype colors happens in that function though and thus wouldn't work. You had to restart Rockbox for the setting to be applied (at which point read_color_theme_file() is called from filetype_init() which is called by the init() function in main.c)

The safety check has been moved from settings.c directly into read_color_theme_file(). This has the added advantage that it will also apply during the init process where there existed no check before (prevents the problem mentioned in 2e3a8c7).
apps/filetypes.c [diff]
apps/settings.c [diff]
Christian Soffke
2021-02-28 670812a44a: Support MP3 audiostreams embedded in ASF containers.

Full credit to Igor Poretsky
lib/rbcodec/codecs/codecs.make [diff]
lib/rbcodec/codecs/libasf/asf.h [diff]
lib/rbcodec/codecs/mpa.c [diff]
lib/rbcodec/metadata/asf.c [diff]
lib/rbcodec/metadata/metadata.h [diff]
Solomon Peachy
2021-02-28 13c7f482ce: Add ingenic_tools/usbboot utility

This is essentially an expanded version of jz4760_tools/usbboot, able to support both X1000 and JZ4760 CPUs and easily extended to handle other Ingenic CPUs using the same boot protocol.
.gitignore [diff]
utils/ingenic_tools/Makefile [new]
utils/ingenic_tools/usbboot.c [new]
Aidan MacDonald
2021-02-27 a3d41098c7: Adding myself to the credits
docs/CREDITS [diff]
Aidan MacDonald
2021-02-27 aacb0811d9: Rename symbols of FiiO M3K Linux-based port

Mainly a straight replacement of FIIO_M3K -> FIIO_M3K_LINUX.
apps/SOURCES [diff]
apps/bitmaps/native/SOURCES [diff]
apps/debug_menu.c [diff]
apps/keymaps/keymap-fiiom3k.c apps/keymaps/keymap-fiiom3klinux.c [rename]
apps/plugins/battery_bench.c [diff]
apps/plugins/blackjack.c [diff]
apps/plugins/brickmania.c [diff]
apps/plugins/calculator.c [diff]
apps/plugins/calendar.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessclock.c [diff]
apps/plugins/chip8.c [diff]
apps/plugins/chopper.c [diff]
apps/plugins/clix.c [diff]
apps/plugins/cube.c [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/flipit.c [diff]
apps/plugins/fractals/fractal.h [diff]
apps/plugins/goban/goban.h [diff]
apps/plugins/imageviewer/imageviewer_button.h [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/jewels.c [diff]
apps/plugins/lib/keymaps.h [diff]
apps/plugins/lib/pluginlib_actions.c [diff]
apps/plugins/midi/midiplay.c [diff]
apps/plugins/minesweeper.c [diff]
apps/plugins/mp3_encoder.c [diff]
apps/plugins/mpegplayer/mpeg_settings.c [diff]
apps/plugins/mpegplayer/mpegplayer.c [diff]
apps/plugins/oscilloscope.c [diff]
...and 35 more files.
Aidan MacDonald
2021-02-27 55dc86f5db: Specify correct dependencies for tools/descramble

Fixes the red introduced in 6224efb2
tools/tools.make [diff]
Solomon Peachy
2021-02-27 dad23a0607: database: Database tool was excluding all SWCODECs!

When fixing this, I used this this opportunity to clean up the Makefile
tools/database/database.make [diff]
Solomon Peachy
2021-02-27 ef685cc6da: Update manual to reflect new behavior from abebc6b

When playback is stopped and the user inserts songs, Rockbox will not erase a dynamic playlist anymore, unless it has finished playing.
manual/working_with_playlists/main.tex [diff]
Christian Soffke
2021-02-27 6224efb238: Fix build system not respecting TOOLSET

It seems that 'toolset=' in tools/configure was set but not used, with the build system only generating a hardcoded set of tools. This change fixes the issue by exporting the required tools in the TOOLSET variable, and having root.make append those to the TOOLS list.
tools/configure [diff]
tools/root.make [diff]
Aidan MacDonald
2021-02-27 96019d23aa: Add regtools binaries to gitignore
.gitignore [diff]
Aidan MacDonald
2021-02-27 b8945734f5: Make headergen_v2's output include what it uses
utils/regtools/headergen_v2.cpp [diff]
Aidan MacDonald
2021-02-27 7d7a3156d3: Fix skin rendering issue entering dirbrowse

If the custom UI viewport (for displaying lists) changes size when entering dirbrowse, other viewports won't be correctly rendered and require a redraw.

The following is a minimal test case for an example SBS where (the specified background color for) the viewport at the top of the screen won't appear after the user has entered the (root menu of the) file or database browser:

%?if(%cs,=,1)<%VI(main)|%VI(other)>

%V(0,0,-,21,-)
%Vb(ededed)

%Vi(main,0,22,-,-,-)

%Vi(other,0,60,-,-,-)
apps/tree.c [diff]
Christian Soffke
2021-02-27 7d7850368e: Disable UDMA 2 on iPod4G target

ATA DMA was enabled for all PP502x targets in d118f47 after previously reported instabilities were thought to have been fixed. The iPod 4G target remains unstable when UDMA 2 is enabled. File system corruption will eventually occur even using stock hardware in normal usage, according to both my own experience and that of several other forum users. UDMA 1 appears to be stable.
firmware/target/arm/pp/ata-target.h [diff]
Christian Soffke
2021-02-27 317908e8c3: Warn before permanently reshuffling the current playlist

Reshuffling a playlist using the WPS context menu for the current playlist is a destructive operation since the previous order of items can't be restored. A warning should be displayed, so that the user can still cancel the operation in case they intended to select another menu item (e.g. one of the harmless "Playing Time" or "Save Current Playlist" items right next to it).
apps/onplay.c [diff]
Christian Soffke
2021-02-21 05f1006246: Convttf makefile: Replace freetype-config with pkg-config

Freetype-config has been deprecated and is no longer included in libfreetype-dev. Pkg-config serves as its replacement.

Convttf isn't built as part of Rockbox by default, but manually doing so will currently fail even when libfreetype-dev is installed.
tools/Makefile [diff]
tools/tools.make [diff]
Christian Soffke
2021-02-19 bdc3dd4fca: MP4: append mdat sections together in metadata parser

mp4 files can have multiple 'mdat' chunks. This is common for audiobooks, where there is often a secondary mdat containing the chapter names, but it's also legal to have multiple mdat chunks for a single logical "track"

This confuses the mp4 metadata parser, which assumes there is only a single mdat, and always uses the last mdat seen to determine the "filesize" of the data we're trying to decode.

Work around this by appending each mdat's size to result in the final
"filesize"
lib/rbcodec/metadata/mp4.c [diff]
Solomon Peachy
2021-02-19 8c76c1b1c2: Revert "Always resume audio after user picks a new song from a playlist"

This reverts commit 69746d840086c3e9e4499c3c19257cd981a9203a.
apps/playlist.c [diff]
Solomon Peachy
2021-02-17 436e64e09e: Fix playback queue bug when "Insert Next" is used with multiple songs at once

After using “Insert Next” to insert multiple songs at once (e.g. an album from the database browser or folder from the file browser), subsequent Insert operations will incorrectly insert items after the first song of all items that were previously inserted, instead of after the last song of the previously inserted items.

A bug fix was originally written by Costas Calamvokis for the file browser only. I adopted the original fix and added code analogous to it so that it works from the database browser as well.

See FS #7898, FS #7363 or this forum post for more info: https://forums.rockbox.org/index.php/topic,53741.0.html
apps/playlist.c [diff]
apps/tagtree.c [diff]
Christian Soffke
2021-02-17 abebc6b9ac: Don’t erase a user’s stopped dynamic playlist when inserting/queuing songs

Rockbox would unexpectedly and without warning erase the current dynamic playlist (when it hadn’t finished playing) if the user inserted or queued up items while playback was stopped.

This fix ensures that the playlist is only deleted if it has either finished playing or can't be resumed.
apps/onplay.c [diff]
Christian Soffke
2021-02-17 69746d8400: Always resume audio after user picks a new song from a playlist

Music currently doesn't begin playing after the user has selected a new song in a playlist, unless another item was already playing or the previous player state was "stopped" (but not "paused"). This results in an inconsistent user experience. The user's likely intention is to immediately listen to the song they select for playback regardless of the previous player state.
apps/playlist.c [diff]
Christian Soffke
2021-02-05 422aa56243: rockboxdev: fix issues with relative paths for commandline options

I wanted to build into a 'toolchain' directory like this:

$ tools/rockboxdev.sh --dlwhere=toolchain --builddir=toolchain/build --prefix=toolchain/bin

This failed twice:

a) the extraction stage could not uncompress because of the relative paths, so convert them to absolute paths in the script to fix the issue.

b) patches could not be applied because 'rockboxdevdir' was assigned a string with the directory twice and '\n' in the middle. Using readlink, this now works.
tools/rockboxdev.sh [diff]
Wolfram Sang
2021-02-05 a67c6934c1: rockboxdev: better error message for unknown compression

I hit this error and its message confused me because I interpreted it as
"bzip2 executable could not be found". The message was also outdated because xz is supported meanwhile. Update the message to something hopefully more helpful.
tools/rockboxdev.sh [diff]
Wolfram Sang
2021-02-05 e23d45536e: rockboxdev: fix summary output of options

'--download' is now named '--dlwhere' and 'target' was missing the '='
tools/rockboxdev.sh [diff]
Wolfram Sang
2021-02-05 165d926a63: rbutil: Add a new entry for the Hifiwalker H2 v1.3 variant
rbutil/rbutilqt/rbutil.ini [diff]
Solomon Peachy
2021-02-04 e7e9cbb852: puzzles: only build manual for color targets

'SUBDIRS' file has puzzles inside a 'HAVE_LCD_COLOR' block. I found this issue because sgt-puzzles was in the Clip+ docs while they were not installed on the target.
docs/CREDITS [diff]
manual/plugins/main.tex [diff]
Wolfram Sang
2021-01-27 278e7457ea: skin_engine: Fix %if() when comparing against a negative number.

If the tag being checked returns a negative number (e.g. %LI does that when the current list item does not have an icon) the tag's value would always end up being 1.
apps/gui/skin_engine/skin_tokens.c [diff]
docs/CREDITS [diff]
Georg Gadinger
2021-01-21 befae2909f: Make delete_file_dir() more threadsafe

This should fix FS #13263
apps/onplay.c [diff]
Moshe Piekarski
2021-01-21 fe10830384: hiby_patcher: Tweak the fix needed to work around v1.31 AGPtek Rockers.
tools/hiby_patcher.pl [diff]
Solomon Peachy
2021-01-02 707f77c6a7: rbutil: Update german translation.
rbutil/rbutilqt/lang/rbutil_de.ts [diff]
Dominik Riebeling
2021-01-02 95cfa9a8c4: rbutil: Rework action texts for ipod6g bootloader installation.

The logging entries do word wrapping, so no need to add hard line breaks. Those will become problematic for translations and in some cases on UI scaling. Instead add an empty line after the header to make things clearer.
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
Dominik Riebeling
2021-01-02 e74cde1c6e: rbutil: Remove unused function.
rbutil/rbutilqt/base/progressloggerinterface.h [diff]
rbutil/rbutilqt/progressloggergui.cpp [diff]
rbutil/rbutilqt/progressloggergui.h [diff]
Dominik Riebeling
2021-01-02 bf17c347fc: rbutil: Fix some texts.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2021-01-02 f9d23bfd41: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/base/talkfile.cpp [diff]
rbutil/rbutilqt/base/ttsfestival.cpp [diff]
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/base/voicefile.cpp [diff]
rbutil/rbutilqt/base/zipinstaller.cpp [diff]
Dominik Riebeling
2021-01-02 022bbad762: rbutil: Fix cleaning cache.

As with calculating the size cleaning the cache folder needs to be recursive.
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2021-01-02 ec01c57022: rbutil: Fix cache size calculation.

We're using Qt's caching mechanism since long, which uses subfolders, so we need to recursively traverse that to get the size of the cache folder.
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/utils.h [diff]
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2021-01-02 65d0867a25: rbutil: Add option to langstat to pass git hash.

Don't always operate on the remote head, instead default to the local HEAD, and allow passing a hash to use for calculating statistics.
rbutil/rbutilqt/langstats.py [diff]
utils/common/gitscraper.py [diff]
Dominik Riebeling
2021-01-02 eaf86a22d3: rbutil: Add missing Q_OBJECT macro to PlayerBuildInfo.

Needed to make translated strings actually get translated.
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
Dominik Riebeling
2020-12-31 10e2f53ff5: bspatch: Fix the standalone build

(broken by 1e12990)
rbutil/libtools.make [diff]
Solomon Peachy
2020-12-25 ca09f91f64: Fix deadlocks when trying to buffer large album art.

Internally, buffering tries to load the entire album art file into the audio buffer, which will fail if the file is larger than the buffer. Playback.c interprets a file failing to buffer to mean that the buffer is full, so it waits for more space and tries again. This results in a deadlock since the file will never fit.

Change bufopen to return a new error condition when an image file will not fit on the buffer because it is too large: ERR_BITMAP_TOO_LARGE. Note that we arbitrarily set "too large" to be within 64KB of the entire buffer size or larger, this could be adjusted if needed.

Change audio_load_albumart to pass through error messages from bufopen.

In playback.c, check to see why audio_load_albumart fails. If it fails because the file is too large to buffer, simply ignore the file. If it fails because the file would fit but the buffer is full, try again later.
apps/buffering.c [diff]
apps/buffering.h [diff]
apps/playback.c [diff]
apps/radio/radioart.c [diff]
Michael Giacomelli
2020-12-24 b5e6c30a61: USB: Reset poweroff timer for all USB events

Without this, if a device is left plugged in and idle, unplugging it will trigger an immediate shutdown.
firmware/usb.c [diff]
Solomon Peachy
2020-12-17 c842a13651: voice: Fix accidental warnings
apps/voice_thread.c [diff]
Solomon Peachy
2020-12-17 1aaa2824b6: voice: Increase voice thread stack size on hosted targets

Fixes a stack overflow on Sony NWZ players when loading the voice file
apps/voice_thread.c [diff]
Solomon Peachy
2020-12-16 02119357dc: erosq: Enable HAVE_SCROLLWHEEL for saner scroll wheel handling

Basically no longer treat SCROLL_FWD/BACK as "button" events, instead relying on the scrollwheel hooks to handle things properly.
firmware/export/config/aigoerosq.h [diff]
firmware/target/hosted/button-devinput.c [diff]
Solomon Peachy
2020-12-14 0215c37ceb: rbutil: Remove logo that isn't used anymore.
rbutil/rbutilqt/icons/rblogo.png [deleted]
Dominik Riebeling
2020-12-14 2b00166a00: rbutil: Always use svg icon for Window icon.

Since we now have svg support enabled (and used) for all platforms we can simply use the svg one, and bring it in line with the rest of the icon.
rbutil/rbutilqt/icons/rockbox-128.png [deleted]
rbutil/rbutilqt/icons/rockbox-16.png [deleted]
rbutil/rbutilqt/icons/rockbox-256.png [deleted]
rbutil/rbutilqt/icons/rockbox-32.png [deleted]
rbutil/rbutilqt/icons/rockbox-48.png [deleted]
rbutil/rbutilqt/icons/rockbox-64.png [deleted]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.qrc [diff]
Dominik Riebeling
2020-12-14 7ae98845f0: rbutil: Change style to Fusion on Windows.

The default UI style has some issues with HiDPI support. Use the Qt built-in Fusion instead. This looks somewhat different to the native Windows UI, but works better on HiDPI displays.
rbutil/rbutilqt/main.cpp [diff]
Dominik Riebeling
2020-12-14 f3371c1d78: rbutil: Improve HiDPI support.

Since we embed a manifest file on Windows we also need to indicate HiDPI support in it. Otherwise it will only work partially.
rbutil/rbutilqt/rbutilqt.manifest [diff]
Dominik Riebeling
2020-12-14 64cc9aad73: Do not resize images greater than 32767 pixels in either dimension

Internally, the resizing code uses the rockbox dim structure, which uses signed shorts.
apps/recorder/jpeg_load.c [diff]
Michael Giacomelli
2020-12-14 56f4ec9668: voices: Enable Russian in the nightly voice builds.

It's using espeak-ng's default 'zle/ru' voice, which have to do until someone suggests better settings or engine.
tools/builds.pm [diff]
Solomon Peachy
2020-12-14 da1fbb6d1a: skinengine: Make sure logical IF operator doesn't compare a garbage value
apps/gui/skin_engine/skin_tokens.c [diff]
Solomon Peachy
2020-12-14 b6a16949e8: playlist: Fix out-of-bounds array access when the directory is blank
apps/playlist.c [diff]
Solomon Peachy
2020-12-14 ce7731527a: announce_status: Fix incorrect function prototype definition
apps/plugins/announce_status.c [diff]
Solomon Peachy
2020-12-13 72e9b61061: manual: Replace all rockbox.org urls with https.

In the process, utilize the \download{} and \wikilink{} commands instead of direct URLs.
manual/advanced_topics/main.tex [diff]
manual/appendix/appendix.tex [diff]
manual/configure_rockbox/theme_settings.tex [diff]
manual/getting_started/gigabeat_install.tex [diff]
manual/getting_started/h10_install.tex [diff]
manual/getting_started/iaudio_install.tex [diff]
manual/getting_started/installation.tex [diff]
manual/getting_started/iriver_install.tex [diff]
manual/getting_started/main.tex [diff]
manual/getting_started/mpio_install.tex [diff]
manual/getting_started/mrobe100_install.tex [diff]
manual/getting_started/samsungyh_install.tex [diff]
manual/getting_started/vibe500_install.tex [diff]
manual/getting_started/xduoox3_install.tex [diff]
manual/intro/main.tex [diff]
manual/plugins/pdbox.tex [diff]
manual/plugins/sgt-puzzles.tex [diff]
manual/preamble.tex [diff]
manual/rockbox-html.cfg [diff]
Solomon Peachy
2020-12-13 b459ded533: updatelang: Fix a couple of typos in the output used by the translate site
tools/updatelang [diff]
Solomon Peachy
2020-12-13 55d301184d: Get rid of a _long_ obsolete tool.
tools/svnupcheck.pl [deleted]
Solomon Peachy
2020-12-12 f7005eb4e4: voice: Generate Dutch voice file now that the translation is complete
tools/builds.pm [diff]
tools/voice.pl [diff]
Solomon Peachy
2020-12-12 afad2c1dcc: FS #13261: Update Dutch Translation (Issa Beganović)
apps/lang/nederlands.lang [diff]
docs/CREDITS [diff]
Solomon Peachy
2020-12-12 512be370c6: list: reset viewport to avoid corrupting the text in the first line

While using Rockbox for a while on my 1st-gen iPod mini I noticed that the first entry of a list sometimes displays a wrong character at the 18th column. For example, the ':' character would display as 'z', the
'-' character as 'm', 0x00 would display '@' and so on. Oddly enough this only occurred when the scrollbar was enabled.

I figured that the call to `display->set_viewport(list_text_vp);` in the for loop inside `list_draw(...)` causes this. Digging deeper I noticed that in the `lcd-bitmap-common.c` driver the `current_viewport` was pointing to the start of the line's text. From what I can tell the cause of this was that the viewport was set to a struct with a shorter scope than the entire function.

The actual fix for this is quite straightforward -- once the scrollbar has been drawn the viewport is now changed back to the default one.
apps/gui/bitmap/list.c [diff]
Georg Gadinger
2020-12-11 b339400531: voice: Last commit didn't work from a clean build.
apps/lang/lang.make [diff]
Solomon Peachy
2020-12-11 227ac2b715: voice: Add voice-corrections.txt to voicestrings.zip

This is in keeping with un-hardcoding stuff from rbutil.
apps/lang/lang.make [diff]
Solomon Peachy
2020-12-11 60139cf9f1: FS #9273: Add a bunch of voice corrections for Japanese.

Heavily modified from the original patches.
tools/voice-corrections.txt [diff]
Solomon Peachy
2020-12-11 e4b514917e: lang: The "InvalidVoice" language file wasn't being included properly

It ended up inside the 'langs/voicestrings.zip' with an absolute path when it should of landed in langs/ directly.
apps/lang/SOURCES [diff]
tools/buildzip.pl [diff]
Solomon Peachy
2020-12-10 9ad1ef0e55: rbutil: Fix encoding for themes info data.

The themes info data uses utf-8 encoding, while QSettings defaults to ASCII and uses escape sequences, resulting in non-ASCII characters being garbled. Use the correct encoding.
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-12-10 52d437b33e: FS13260: Updated Polish Translation (Adam Rak)
apps/lang/polski.lang [diff]
Solomon Peachy
2020-12-10 d99320047c: Correct the filenames for the Sony NWZ-A680 pictures
manual/rockbox_interface/images/sonynwa860-front.pdf manual/rockbox_interface/images/sonynzwa860-front.pdf [rename]
manual/rockbox_interface/images/sonynwa860-front.png manual/rockbox_interface/images/sonynzwa860-front.png [rename]
manual/rockbox_interface/images/sonynwa860-front.svg manual/rockbox_interface/images/sonynzwa860-front.svg [rename]
Solomon Peachy
2020-12-10 c07c08506b: SVG image of the Sony NWZ-A860 and other formats for the manual.
manual/rockbox_interface/images/sonynwa860-front.pdf [new]
manual/rockbox_interface/images/sonynwa860-front.png [new]
manual/rockbox_interface/images/sonynwa860-front.svg [new]
Szymon Dziok
2020-12-10 dac0610626: SVG image of the FiiO M3K and other formats for the manual.
manual/rockbox_interface/images/fiiom3k-front.pdf [new]
manual/rockbox_interface/images/fiiom3k-front.png [new]
manual/rockbox_interface/images/fiiom3k-front.svg [new]
Szymon Dziok
2020-12-08 0b8c6bd5f0: rbutil: Fix log strings in s5l bootloader installation.

We can't use a ternary expression within the tr() function. While this initially might work as expected it completely breaks translating the actual string -- we need to use separate strings here, and replacing a single word in a sentence will also not work for translations.
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
Dominik Riebeling
2020-12-08 d148afca3b: rbutil: Improve HiDPI support.

Replace the Rockbox logo with an svg version. Since the file size (i.e. the page size in the svg) that isn't intended for use as icon we need to enable scaling, and since scaling the label content doesn't keep the aspect ratio we need to explicitly set the desired values.

Notably improves representation on HiDPI monitors. Now only the player icons are still raster images.
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-12-08 792f05f82a: lcd: Wrap anonymous union initializer in braces

GCC 4.9.4 is apparently smart enough to compile this, but 4.4.4 is not.
firmware/drivers/lcd-color-common.c [diff]
Franklin Wei
2020-12-07 40b6897f4f: puzzles: tooling to automate the resyncing process

This adds a resync.sh script that handles most of the resyncing process: copying new sources, regenerating help, and staging for commit. I also took this opportunity to make the process more efficient and consistent by only selecting the types of files that we care about and ignoring any autogenerated temporary files that may be in the upstream tree.
apps/plugins/puzzles/genhelp.sh [diff]
apps/plugins/puzzles/resync.sh [new]
Franklin Wei
2020-12-07 b7ce408f65: puzzles: update frontend for new midend_get_cursor_location semantics

midend_get_cursor_location now returns a bool indicating success.
apps/plugins/puzzles/rockbox.c [diff]
Franklin Wei
2020-12-07 84cd812ccd: puzzles: resync with upstream

This updates the upstream sources to include a modified get_cursor_location patch that I anticipate Simon will merge shortly. Also, I've streamlined the resync process to only copy the exact files we need to reduce clutter.
apps/plugins/puzzles/help/blackbox.c [diff]
apps/plugins/puzzles/help/bridges.c [diff]
apps/plugins/puzzles/help/cube.c [diff]
apps/plugins/puzzles/help/dominosa.c [diff]
apps/plugins/puzzles/help/fifteen.c [diff]
apps/plugins/puzzles/help/filling.c [diff]
apps/plugins/puzzles/help/flip.c [diff]
apps/plugins/puzzles/help/flood.c [diff]
apps/plugins/puzzles/help/galaxies.c [diff]
apps/plugins/puzzles/help/guess.c [diff]
apps/plugins/puzzles/help/inertia.c [diff]
apps/plugins/puzzles/help/keen.c [diff]
apps/plugins/puzzles/help/lightup.c [diff]
apps/plugins/puzzles/help/loopy.c [diff]
apps/plugins/puzzles/help/magnets.c [diff]
apps/plugins/puzzles/help/map.c [diff]
apps/plugins/puzzles/help/mines.c [diff]
apps/plugins/puzzles/help/net.c [diff]
apps/plugins/puzzles/help/netslide.c [diff]
apps/plugins/puzzles/help/palisade.c [diff]
apps/plugins/puzzles/help/pattern.c [diff]
apps/plugins/puzzles/help/pearl.c [diff]
apps/plugins/puzzles/help/pegs.c [diff]
apps/plugins/puzzles/help/range.c [diff]
apps/plugins/puzzles/help/rect.c [diff]
apps/plugins/puzzles/help/samegame.c [diff]
apps/plugins/puzzles/help/signpost.c [diff]
apps/plugins/puzzles/help/singles.c [diff]
apps/plugins/puzzles/help/sixteen.c [diff]
apps/plugins/puzzles/help/slant.c [diff]
...and 139 more files.
Franklin Wei
2020-12-05 ae59995553: rbutil: Update changelog.

Add changes that haven't been added yet.
rbutil/rbutilqt/changelog.txt [diff]
Dominik Riebeling
2020-12-05 731c5db875: rbutil: Fix autodetection messing up with multiple players.

When multiple players are connected, and at least one of them has a USB ID that is shared between multiple targets the resulting list would be off. Fix that by avoiding to modify a list while iterating over it, that's usually not a good idea.
rbutil/rbutilqt/base/autodetection.cpp [diff]
Dominik Riebeling
2020-12-05 82b53ebf54: rbutil: Merge finding player by USB ID with PlayerBuildInfo.

Remaining rework of player info data handling.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [deleted]
rbutil/rbutilqt/base/systeminfo.h [deleted]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/installtalkwindow.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
Dominik Riebeling
2020-12-05 0e315e848a: rbutil: Rework handling of available voice languages.

- Move Rockbox voice language names handling to PlayerBuildInfo, and handle it similarly to the rest of the device specific values. Rework internal handling to simplify things.
- Enable language list from build server for installing prerendered voice files other than english.
- Extend unit tests.
rbutil/rbutilqt/base/playerbuildinfo.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/ttssapi.cpp [diff]
rbutil/rbutilqt/createvoicewindow.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/test/test-playerbuildinfo.cpp [diff]
Dominik Riebeling
2020-12-05 ac5fc26085: rbutil: Make target list part of new player info.

Also remove the unused cases.
rbutil/rbutilqt/base/playerbuildinfo.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2020-12-04 c51c6c1eb3: rbutil: Add MIDI patchset to plugin data installation.

Add installing the MIDI patchset, and subsequently rename from Game Files to Plugin Data Files.
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/rbsettings.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
Dominik Riebeling
2020-12-03 7739bb31b3: rbutil: Convert RockboxInfo unit test to data driven QTest.
rbutil/rbutilqt/test/test-rockboxinfo.cpp [diff]
rbutil/rbutilqt/test/test-rockboxinfo.pro [diff]
Dominik Riebeling
2020-12-03 3300815c44: rbutil: Update and fix unit tests.

- Fix changed dependencies and provide real stubs.
- Update to use QTest global data for test table, so individual test vector entries show up as individual tests. That way a single comparison failing doesn't make all appear as failed and provide better indication what went wrong.
rbutil/rbutilqt/test/stubs/stubs-compareversion.cpp [new]
rbutil/rbutilqt/test/test-compareversion.cpp [diff]
rbutil/rbutilqt/test/test-compareversion.pro [diff]
Dominik Riebeling
2020-12-03 b064a6cbb5: rbutil: Rework and merge player and build server info handling.

Handling the data for players from rbutil.ini and the build-info data from the server is closely related. Splitting things up into different classes only creates tightly coupling, which is unnecessary, and the need to differentiate between them in the application.

Merge both classes into a single one and rework handling so the application doesn't have to deal with two separate classes anymore.

Furthermore, change URL templates to use new values from build-info instead of hard coding them.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/playerbuildinfo.cpp [new]
rbutil/rbutilqt/base/playerbuildinfo.h [new]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [deleted]
rbutil/rbutilqt/base/serverinfo.h [deleted]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/talkgenerator.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/base/voicefile.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
rbutil/rbutilqt/test/stubs/stubs-playerbuildinfo.cpp [new]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [deleted]
rbutil/rbutilqt/test/test-playerbuildinfo.cpp [new]
rbutil/rbutilqt/test/test-serverinfo.pro rbutil/rbutilqt/test/test-playerbuildinfo.pro [rename]
rbutil/rbutilqt/test/test-serverinfo.cpp [deleted]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-12-03 78a01db47c: rbutil: Get rid of configure_modelname in rbutil.ini.

The target selection string used for configure is the same as the internally used player string, minus the (optional) variant suffix. Don't duplicate things, simply strip the suffix.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-11-29 10f05b3b27: build-info: Replace %MODEL% with %TARGET%
tools/build-info.pl [diff]
Solomon Peachy
2020-11-29 a5961c944b: FS #5320: Keypad hold doesn't let go until scrolling is used (ipod 4g/5g)

Patch by Boris Gjenero
firmware/target/arm/ipod/button-clickwheel.c [diff]
Solomon Peachy
2020-11-27 c8da2bc145: rbutil: Treat Aigo Eros clones as variant of it.

Fixes installing those builds, since they relied on the broken buildserver_modelname. Also simplifies internal handling.
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-27 8765650fe0: rbutil: Remove buildserver modelname string.

This isn't needed anymore, and the only player it was actually used for were the 8MB modded Archos ones, for which the usage was broken.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-27 716643572d: rbutil: Remove Archos 8MB modded players.

The Archos Recorder has 2MB RAM and can be modded to 8MB. While we previously had separate builds for those the last release which it was built for is 3.4; installing for 8MB modded players was broken and installed the normal 2MB build.

Since we never provided builds for other hardware mods (like Ondio backlight mod, h100 series RTC mod) there isn't much reason to do so for the 8MB mod. Furthermore, given that the current state is broken and nobody complained the number of users of the mod can be assumed to be very low, and people with a modded player also building Rockbox on their own.
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-26 3ee6ce956f: rbutil: Remove duplicated enum entry.

SystemInfo::PlatformName and Name actually retrieve the same value. That's not usefule, so remove one of both.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-23 185dfb42c2: rbutil: Fix wrong format string.

Only caused a warning, but no need to pass format parameters if there is no format string.
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2020-11-23 9a52991bbd: rbutil: Add support for installing daily builds.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
Dominik Riebeling
2020-11-23 1ba6785e46: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/sysinfo.cpp [diff]
rbutil/rbutilqt/systrace.cpp [diff]
Dominik Riebeling
2020-11-23 ec730f1609: rbutil: Fix selecting the previously selected build type.

When starting Rockbox Utility select the same build type that was used during the previous run. This broke during refactoring, fix it.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 64fe7e03a8: build-info: Additions for new rbutil.
tools/build-info.pl [diff]
Solomon Peachy
2020-11-22 f598ef9c27: rbutil: Add support for installing daily builds.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-22 0ea8f074ed: rbutil: Remove Install Voice button from Accessibility tab.

Installing the voice file is now done via the main installation.
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.h [diff]
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-11-22 0b911b7500: rbutil: Fix wrong section name in installation log.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 ff7e8b4293: deploy: Update sources list for Rockbox Utility.
utils/common/deploy-rbutil.py [diff]
Dominik Riebeling
2020-11-22 25529e4fe0: lang: More automated rejiggering, USB_MODE_* is no longer ibasso-specific
apps/lang/bulgarian.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/svenska.lang [diff]
apps/lang/turkce.lang [diff]
apps/lang/vlaams.lang [diff]
tools/updatelang [diff]
Solomon Peachy
2020-11-22 e8f8df4ee0: rbutil: Update Iriver h100 / h300 series bootloader paths.

The patching code now requires the new version 8.0 bootloaders.
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-22 1b9eebb39d: rbutil: Update Windows application icon.

Bring it in line with the other icons and always show the same image, regardless of size.
rbutil/rbutilqt/icons/rockbox.ico [diff]
Dominik Riebeling
2020-11-22 ba2bbd60bd: rbutil: Move Manual installation to main tab.

The manual tab didn't show the manual, so it's clearer to have that as part of the main tab.

Also fixes the wrong manual getting downloaded for releases.
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/rbsettings.h [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [deleted]
rbutil/rbutilqt/gui/manualwidget.h [deleted]
rbutil/rbutilqt/gui/manualwidgetfrm.ui [deleted]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.h [diff]
rbutil/rbutilqt/rbutilqt.pri [diff]
rbutil/rbutilqt/rbutilqtfrm.ui [diff]
Dominik Riebeling
2020-11-22 5f36aed4bf: rbutil: Unify template parameter for release version.

Don't use different parameter names for the same parameter.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
Dominik Riebeling
2020-11-22 dfe9d63640: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 1a3d12ceea: rbutil: Don't try to install voice file if it's not available.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
Dominik Riebeling
2020-11-22 0d2257d1f7: rbutil: Replace stringly types build type handling with enum.

Avoid having to repeat the same strings for lookup again and again and use an enum instead, which is also less error prone.
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
Dominik Riebeling
2020-11-22 c2dacf6736: rbutil: Add voice installation to main widget.

Add checkbox for installing the prerendered voice file to the main install widget. Current limitations:
- only english for now. The available languages are available from the build server but are not yet taken into account.
- only for releases. This is the same limitations we had before. We do have voices for daily builds, but that requires adding daily builds again (those have been removed some time back.)
- Old voice installation dialog still present.
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/rbsettings.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
Dominik Riebeling
2020-11-22 ad37655687: rbutil: Use pattern replacement for SystemInfo build type.

Use pattern replacement for lookup instead of expanded values. Will allow simplifying things later for better handling of different build types.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-22 6b3b4df6f6: rockbox: move firmware checksum algorithms into a common header

Before this was just implemented inline wherever it was needed. Now it is provided as 2 inline functions in a header called checksum.h. There should be no differences in actual behavior.
apps/plugins/crypt_firmware.c [diff]
apps/plugins/iriver_flash.c [diff]
firmware/common/rb-loader.c [diff]
firmware/include/checksum.h [new]
James Buren
2020-11-22 2eb191a3f4: manual: hopefully fix html generation

(by using the 'scrhack' package)
manual/preamble.tex [diff]
Solomon Peachy
2020-11-22 9d33ed10ab: manual: Remove some (very) obsolete latex style files.

* scrreprt.4ht
* booktabs.sty
* optional.sty
* pdfdraftcopy.sty

Use system-provided stuff instead.
manual/booktabs.sty [deleted]
manual/optional.sty [deleted]
manual/pdfdraftcopy.sty [deleted]
manual/scrreprt.4ht [deleted]
Solomon Peachy
2020-11-22 332433eb3d: fix a few manual warnings
manual/appendix/config_file_options.tex [diff]
manual/frontpage/frontpage.tex [diff]
manual/getting_started/main.tex [diff]
manual/intro/main.tex [diff]
manual/preamble.tex [diff]
manual/rockbox_interface/main.tex [diff]
Moshe Piekarski
2020-11-22 4641d86c46: xduoox3: Fix a few issues with the manual
manual/platform/keymap-xduoox3.tex [diff]
manual/plugins/pegbox.tex [diff]
manual/plugins/wormlet.tex [diff]
Solomon Peachy
2020-11-21 efacce58eb: rbutil: Modernize connect() to new pointer-to-member syntax.
rbutil/rbutilqt/base/bootloaderinstallams.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbspatch.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallchinachip.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallfile.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallimx.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallipod.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmi4.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallmpio.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalltcc.cpp [diff]
Dominik Riebeling
2020-11-19 f29b81d521: rbutil: Avoid creating temporary object.

There's a static function for that.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/systrace.cpp [diff]
Dominik Riebeling
2020-11-19 fb6840e572: rbutil: Remove done() signal from Themes Install window.

This shadows a slot from the base class. Since it isn't used simply remove it.
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.h [diff]
Dominik Riebeling
2020-11-19 12764781c6: rbutil: Modernize code to use C++11 nullptr.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/autodetection.h [diff]
rbutil/rbutilqt/base/bootloaderinstallams.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbase.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallbspatch.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallchinachip.h [diff]
rbutil/rbutilqt/base/bootloaderinstallhelper.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallhex.h [diff]
rbutil/rbutilqt/base/bootloaderinstallimx.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallipod.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstallsansa.h [diff]
rbutil/rbutilqt/base/bootloaderinstalltcc.cpp [diff]
rbutil/rbutilqt/base/encoderexe.h [diff]
rbutil/rbutilqt/base/encoderrbspeex.cpp [diff]
rbutil/rbutilqt/base/encoderrbspeex.h [diff]
rbutil/rbutilqt/base/httpget.h [diff]
rbutil/rbutilqt/base/mspackutil.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/system.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/talkfile.cpp [diff]
rbutil/rbutilqt/base/ttsbase.cpp [diff]
rbutil/rbutilqt/base/ttsespeak.h [diff]
rbutil/rbutilqt/base/ttsespeakng.h [diff]
rbutil/rbutilqt/base/ttsexes.h [diff]
rbutil/rbutilqt/base/ttsfestival.h [diff]
rbutil/rbutilqt/base/ttsflite.h [diff]
rbutil/rbutilqt/base/ttsmimic.h [diff]
...and 28 more files.
Dominik Riebeling
2020-11-19 f608de723c: rbutil: Convert ServerInfo to singleton.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-19 f8fb4274ee: rbutil: Rework server info data handling.

Remove map that isn't used anymore.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
Dominik Riebeling
2020-11-19 497618e51e: Add libraries to native MIPS toolchain to enable bluetooth support

libffi, zlib, glib, expat, and dbus
tools/rockboxdev.sh [diff]
Solomon Peachy
2020-11-19 b7b0c7c648: languages: convert recording_swcodec -> recording
apps/features.txt [diff]
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
...and 17 more files.
Solomon Peachy
2020-11-19 6d62a7a1bd: Clean out some obsolete strings from the Russian translation
apps/lang/russian.lang [diff]
Solomon Peachy
2020-11-18 3027cead01: hosted: Improve buffer underrun handling in the ALSA driver

* Bump internal mix buffer size by 4x, to 1K frames (matching ALSA period)
* Handle an underrun that occurs when filling the audio buffer
* Log underruns and make them available in the debug info
firmware/export/pcm_mixer.h [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
Solomon Peachy
2020-11-18 473aa615de: Minor additions to g#3035
manual/plugins/main.tex [diff]
Moshe Piekarski
2020-11-18 0aa702836b: Manual: remove most HWCODEC artifacts

This causes 3 changes in layout. 2 I can't track down and 1 is better this way.
manual/advanced_topics/main.tex [diff]
manual/appendix/appendix.tex [diff]
manual/appendix/config_file_options.tex [diff]
manual/appendix/file_formats.tex [diff]
manual/appendix/wps_tags.tex [diff]
manual/configure_rockbox/bookmarking.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
manual/configure_rockbox/main.tex [diff]
manual/configure_rockbox/playback_options.tex [diff]
manual/configure_rockbox/recording_settings.tex [diff]
manual/configure_rockbox/sound_settings.tex [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/configure_rockbox/theme_settings.tex [diff]
manual/getting_started/installation.tex [diff]
manual/main_menu/fmradio.tex [diff]
manual/plugins/lrcplayer.tex [diff]
manual/plugins/main.tex [diff]
manual/plugins/oscilloscope.tex [diff]
manual/plugins/pictureflow.tex [diff]
manual/plugins/text_viewer.tex [diff]
manual/plugins/theme_remove.tex [diff]
manual/rockbox_interface/main.tex [diff]
manual/rockbox_interface/tagcache.tex [diff]
manual/rockbox_interface/wps.tex [diff]
Moshe Piekarski
2020-11-18 7c87467ba4: configure: Add prompt for USB Serial into the advanced mode

And explicitly disable USB_ENABLE_SERIAL when HAVE_USBSTACK is not define
firmware/logf.c [diff]
tools/configure [diff]
Solomon Peachy
2020-11-17 20774d88b5: Update english-US language
apps/lang/english-us.lang [diff]
Solomon Peachy
2020-11-17 170f72156b: lang: Drop all deprecated strings, and rename LANG__NEVER to LANG_NEVER
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hindi.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk-nynorsk.lang [diff]
...and 17 more files.
Solomon Peachy
2020-11-17 7ff3c94e13: lang: Make all swcodec &| lcd_bitmap strings default.
apps/lang/afrikaans.lang [diff]
apps/lang/arabic.lang [diff]
apps/lang/basque.lang [diff]
apps/lang/bulgarian.lang [diff]
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/czech.lang [diff]
apps/lang/dansk.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/eesti.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/finnish.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/hindi.lang [diff]
apps/lang/hrvatski.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/lietuviu.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
...and 19 more files.
Solomon Peachy
2020-11-17 0400a391d3: usb: increase the stack size.

It's not large enough on some targets.

(this will be revisited when the USB insertion prompt stuff is moved out of the USB helper and over to the main thread)
firmware/usb.c [diff]
Solomon Peachy
2020-11-16 ad665a04d2: Manual Bugfix SetWPSContextPlugin
manual/configure_rockbox/wps_context_plugin.tex [diff]
William Wilgus
2020-11-16 4fd1e4364b: fwpatcher: fix compile errors and warnings on modern Linux
tools/fwpatcher/Makefile [diff]
tools/fwpatcher/main.c [diff]
James Buren
2020-11-16 84086af957: update fwpatcher and rbutil checksums for iriver h1x0/h300 V8 bootloader
rbutil/rbutilqt/irivertools/h100sums.h [diff]
rbutil/rbutilqt/irivertools/h120sums.h [diff]
rbutil/rbutilqt/irivertools/h300sums.h [diff]
tools/fwpatcher/h100sums.h [diff]
tools/fwpatcher/h120sums.h [diff]
tools/fwpatcher/h300sums.h [diff]
James Buren
2020-11-16 adee6a11bf: rockbox: fix iriver firmware validation for larger bootloaders

It turns out the code for the firmware size validation was incorrectly using the total length of the firmware file to check if it was too big for the flash rom which caused it to incorrectly flag larger bootloaders as too big even though they would still fit.

As it happens this situation can only really arise after mkboot has been run on the decoded firmware image. Because mkboot writes the actual binary size to the ESTFBINR header we will be using that to check if the firmware image is too large for the flash rom.

Now because this information is embedded in the decrypted / encrypted region we have to collect it as the region is processed so the validation is also moved to after the data processing loop.
tools/fwpatcher/iriver.c [diff]
tools/iriver.c [diff]
James Buren
2020-11-16 64ea644269: mkboot: fix the buffer size used for constructing the final firmware image

It was short by a fair number of bytes which could be reached when attempting to insert bootloaders near the maximum size of 64k. This ensures even the largest acceptable bootloader will not overflow the buffer.
tools/mkboot.c [diff]
James Buren
2020-11-16 63691ad106: Fix the fix, which managed to make things _worse_
apps/settings.c [diff]
Solomon Peachy
2020-11-16 3e32521be5: Fix the red introduced in 9c68c69
apps/settings.c [diff]
Solomon Peachy
2020-11-16 9c68c69cf0: FS13257: Fix inconsistent defaults in the USB mode selection
apps/settings.c [diff]
apps/settings_list.c [diff]
firmware/export/usb.h [diff]
firmware/usb.c [diff]
Solomon Peachy
2020-11-16 5252523937: fwpatcher: fix a few issues with the mksums.pl script

First, the way it was invoking mkboot was no longer correct so it was not producing files used in the later commands.

Second, support for the H300 1.31k firmware was added sometime ago but not to this script.
tools/fwpatcher/mksums.pl [diff]
James Buren
2020-11-16 c79ddb6bf4: iriver_flash: update valid bootloaders table

This removes all the pre-release bootloader of version 7 and replaces them with production releases of version 8. The pre-releases have their own problems and should be left behind as they were never officially released.
apps/plugins/iriver_flash.c [diff]
firmware/export/eeprom_settings.h [diff]
James Buren
2020-11-15 dec5421ca2: rbutil: Rework server info data handling.

Return status as int, not as string, and provide a separate function for converting to string. This allows to filter based on the actual status, not a (localized) status string, which is more robust.

Fix a regression that made players with missing status value show up as retired.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 af766ae10e: rbutil: Fix style warnings.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
Dominik Riebeling
2020-11-15 6c2780e709: rbutil: Rework server info data handling.

Allow constructing release candidate URL from configuration the same way we construct the URL for releases.

Note that the server path used does not exist, taken from old release candidate builds not available anymore.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 9bb60b7d85: rbutil: Rework server info data handling.

Allow extracting release candidate version even if no URL is present. Avoids a special case for version handling.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 104ff3433a: rbutil: Rework server info data handling.

Don't create our own in-memory map with server data. Instead use the configuration file retrieved from the download server, and do the resolve / replacement on the fly.

Simplifies things, and prepares for cleaner handling for different build types.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/rbutil.ini [diff]
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 2b2a7b9ae3: rbutil: Simplify manual download URL handling.

- Don't construct the URL directly. The ServerInfo already has it, use that instead.
- Don't manually construct the output filename. ZipInstaller will use the server filename automatically.
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
Dominik Riebeling
2020-11-15 687edc1866: rbutil: Extend test for ServerInfo.

- Further extend stubs, pull in less non-stubbed implementations.
- Change some test URLs to make sure the code actually uses the correct ones.
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.pro [diff]
Dominik Riebeling
2020-11-15 cb71e2154c: rbutil: Extend test for ServerInfo.

- Add tests for missing info values.
- Extend stubs, pull in less non-stubbed implementations.
rbutil/rbutilqt/test/stubs/stubs-serverinfo.cpp [new]
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
rbutil/rbutilqt/test/test-serverinfo.pro [diff]
Dominik Riebeling
2020-11-15 7d1078a9d5: rbutil: Fix unit test.
rbutil/rbutilqt/test/test-serverinfo.cpp [diff]
Dominik Riebeling
2020-11-15 1bc68d5ad7: h1x0/h300: change when the hold switch and failsafe are used

After reviewing the code awhile I realized that the failsafe and hold switch have no impact on the boot process when the usb or charger is connected. That makes no real sense to me. If these are connected then neither will be used at all. The boot process will never revisit it either once those other modes end and resume the boot process. It will just continue to try to boot from disk as if these emergency settings never existed.

I have decided it makes more sense for them to be evaluated once the higher priority charge and disk mode have finished their roles. Given how the code was originally written it seems to be they were not intended to run prior to these at the very least since the logical conditions preclude that possibility as they include the inverse of the conditions that trigger the charge and disk modes.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-15 fc5c8192ff: h1x0/h300: fix h300 bootloader hold switch check

This fixes an early boot bug on the h300 where hold_status is read before it has a chance to properly check whether the hold switch is even active. This was accomplished by porting over the method the h1x0 uses to perform the same check.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-15 29a20bd209: h1x0/h300: consolidate a few code paths to logical equivalents

This saves a few bytes of precious space by consolidating paths where they can be combined with no change to the underlying algorithm.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-15 3ef8455626: Remove some SWCODEC artifacts
apps/plugins/text_viewer/readme.txt [diff]
firmware/export/config/fiiom3k.h [diff]
Moshe Piekarski
2020-11-14 c10eea46a9: iriver_flash: add macros to reduce the rom chip table

The table is now gated by the FLASH_SIZE macro as any given target will not have a known rom chip of a differing size than the FLASH_SIZE. This will reduce the resulting code a bit as well.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-11-14 7d9ac021b5: h1x0/h300: bring the two bootloaders more in sync

The most major change here is the porting of the failsafe boot menu and eeprom settings support from the h1x0 bootloader to the h300 bootloader. This has been successfully tested already and indeed works about the same as it does on the h1x0 bootloader.

The other major change is the addition of new code to both bootloaders that will retry the flash boot function after exitting disk mode. It still falls back to booting from disk if this either fails or is not configured to boot from flash.

There were also various other modifications to bring the two closer in sync so there are fewer differences.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 33d42c20de: iriver_flash: do not let the backlight timeout while running

I discovered it was doing this on the H300 during longer operations and I freaked out at first. This disables this feature until the program is finished so as to not give anyone else an unnecessary fright while using it. It will also cut down on frivilous reports.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-11-14 be1be797b2: rbutil: Rework player configuration.

Rename config entries and remove now unnecessary default value handling.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/talkgenerator.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-11-14 2509def164: rbutil: Rework player configuration.

- Split internal configuration into player specific and common parts. Always require passing the player for player specific data instead of implicitly assuming the currently selected one; only use the currently selected one if the player name is explicitly passed as empty.
- Similarly adjust handling of server info data; prepare for splitting into build type specific values so the naming becomes cleaner.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/serverinfo.h [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.h [diff]
rbutil/rbutilqt/base/talkgenerator.cpp [diff]
rbutil/rbutilqt/base/utils.cpp [diff]
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/gui/manualwidget.cpp [diff]
rbutil/rbutilqt/gui/selectiveinstallwidget.cpp [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-11-14 440083af87: rbutil: Show HTTP error string on download failure.

Also show the error string, which usually is more helpful than just showing the HTTP error code.
rbutil/rbutilqt/base/zipinstaller.cpp [diff]
Dominik Riebeling
2020-11-14 aaa9a2ccee: h1x0/h300: clean up the bootloader source a bit

First this removes most of the conditionals for the CPP as they are always true for the targets that use the bootloader source.

Second this moves some global variable references around to reduce some redundancy in the h1x0 bootloader source.

All of this is done to make it easier to compare the two bootloaders as they are very heavily related to each other.
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 37eabbfe51: h1x0/h300: remove trailing whitespace from bootloaders
bootloader/iriver_h1x0.c [diff]
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 5a223080fa: h300: enable usb charging for charge mode and disk mode

This enables USB charging when the bootloader is in charge mode or disk mode. As a byproduct there is a small change in behavior where charge mode is all that is available if it is triggered by the USB cable insertion. Disk mode only becomes available if the user requests to continue the boot process by pressing the power button. It had to be done this way as there's no way to tell this early whether the user wants to simply charge or trigger disk mode as well.
bootloader/iriver_h300.c [diff]
James Buren
2020-11-14 d5a2aeb6c4: rockbox: revise charger_inserted and power_input_present functions

This makes it so the thread cached variable is only read if building the regular firmware. For bootloaders the data is now read directly.

This fixes the functions for bootloaders so they do not have to import the power management code just so these functions will work when in the bootloader.
firmware/powermgmt.c [diff]
James Buren
2020-11-14 03cd773051: ibasso: Hopefully hack usb into building again.
apps/menus/settings_menu.c [diff]
firmware/export/config/ibassodx50.h [diff]
firmware/export/config/ibassodx90.h [diff]
firmware/target/hosted/ibasso/usb-ibasso.c [diff]
firmware/usb.c [diff]
Solomon Peachy
2020-11-14 43f90746d5: synclist add method for setting selection color
apps/gui/bitmap/list.c [diff]
apps/gui/list.c [diff]
apps/gui/list.h [diff]
William Wilgus
2020-11-13 610ad6f6e3: ibasso: Fix red introduced in 60f581e
firmware/target/hosted/ibasso/usb-ibasso.c [diff]
Solomon Peachy
2020-11-13 60f581e8f5: usb: Add ability to prompt user about what to do upon usb insertion

v3: Add in config option v4: Bugfixes v5: Force a redraw upon exiting v6: keypress-in-chargeonly mode enables mass storage (and vice versa) v7: Fix bootloader builds v8: Update manual, and have bootloader respect keypresses v9: Change default to mass storage (ie no change in behavior)

todo:
* test-build dx50/dx90
* Switch from yes/no to proper menu?
* prevent WPS progress bar from drawing over us


...
apps/lang/bulgarian.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/chinese-trad.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/greek.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/magyar.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/norsk.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/slovak.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/svenska.lang [diff]
apps/lang/turkce.lang [diff]
apps/lang/vlaams.lang [diff]
apps/menus/settings_menu.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/usb.h [diff]
firmware/target/hosted/ibasso/usb-ibasso.c [diff]
firmware/target/hosted/ibasso/usb-ibasso.h [diff]
firmware/usb.c [diff]
manual/configure_rockbox/system_options.tex [diff]
manual/rockbox_interface/main.tex [diff]
Solomon Peachy
2020-11-13 fc4fff0b81: builds: Enable German voicefile generation in the nightly builds
tools/builds.pm [diff]
Solomon Peachy
2020-11-13 6c3cc1cbb9: Skin_engine optimize element switches

it takes a lot of code to check validity and dereference a pointer for every numeric tag branch in get_token_value

apparently about 900 bytes actually
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
2020-11-13 47e1f96427: Bugfix Backlight_init should be called after lcd_init

the rest..
bootloader/ipod.c [diff]
bootloader/ipodnano2g.c [diff]
bootloader/iriver_h1x0.c [diff]
utils/atj2137/adfuload/test_binary/lcm/test_lcm.c [diff]
William Wilgus
2020-11-13 f65fb2a64a: h300, Others Bugfix Bootloader backlight_init()

backlight_init needs to be called after lcd_init when using lcd_enable()
bootloader/creativezvm.c [diff]
bootloader/iriver_h300.c [diff]
bootloader/meizu_m3.c [diff]
bootloader/mini2440.c [diff]
bootloader/sansaconnect.c [diff]
firmware/target/coldfire/iriver/h300/lcd-h300.c [diff]
William Wilgus
2020-11-13 8ac46f844f: h300: fix one long-standing bootloader bug

This was introduced in e13c6001332882291363bdf2f1155875439fe187 back when the author was trying to optimize the LCD code with DMA. For whatever reason this broke the bootloader for the last 10 years or so and no one could figure out why. This is now fixed.

However the bootloader is still currently broken in HEAD due to recent changes to the LCD code. A fix for that is not yet known.
firmware/target/coldfire/iriver/h300/lcd-h300.c [diff]
James Buren
2020-11-12 362f7a3220: Quickscreen: don't apply glabal settings
apps/gui/quickscreen.c [diff]
Moshe Piekarski
2020-11-12 b912ad5088: plugin: Un-export find_next_frame()

No in-tree users
apps/plugin.c [diff]
apps/plugin.h [diff]
docs/PLUGIN_API [diff]
Solomon Peachy
2020-11-12 388adff3cc: pcm: Further cleanup of unused bits of the PCM ACPI:

* pcm_get_bytes_remaining()
* pcm_calculate_peaks()
* pcm_get_peak_buffer()

Nothing in-tree uses these at all (except for the lua plugin wrapper)
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lua/include_lua/pcm.lua [diff]
apps/plugins/lua/rocklib.c [diff]
docs/PLUGIN_API [diff]
firmware/export/pcm.h [diff]
firmware/pcm.c [diff]
firmware/target/arm/as3525/pcm-as3525.c [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pnx0101/pcm-pnx0101.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
firmware/target/arm/rk27xx/pcm-rk27xx.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c [diff]
firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
firmware/target/hosted/android/pcm-android.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
firmware/target/hosted/maemo/pcm-gstreamer.c [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/sdl/pcm-sdl.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c [diff]
Solomon Peachy
2020-11-12 1a68856f52: Rocker Add WPS and Tree Hotkey, button codes in debug menu VolUp+VolDown becomes the wps and tree (file browser) hotkey
apps/keymaps/keymap-agptekrocker.c [diff]
firmware/export/config/agptekrocker.h [diff]
firmware/target/hosted/agptek/debug-agptek.c [diff]
William Wilgus
2020-11-12 4e5499606b: Russian translations update
apps/lang/russian.lang [diff]
Igor B. Poretsky
2020-11-12 b7560ce0af: Czech translations fix
apps/lang/czech.lang [diff]
Igor B. Poretsky
2020-11-12 b8ada839ee: Voice strings fixes
apps/lang/catala.lang [diff]
apps/lang/chinese-simp.lang [diff]
apps/lang/deutsch.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/espanol.lang [diff]
apps/lang/esperanto.lang [diff]
apps/lang/francais.lang [diff]
apps/lang/galego.lang [diff]
apps/lang/hebrew.lang [diff]
apps/lang/islenska.lang [diff]
apps/lang/italiano.lang [diff]
apps/lang/japanese.lang [diff]
apps/lang/korean.lang [diff]
apps/lang/latviesu.lang [diff]
apps/lang/nederlands.lang [diff]
apps/lang/polski.lang [diff]
apps/lang/portugues.lang [diff]
apps/lang/romaneste.lang [diff]
apps/lang/russian.lang [diff]
apps/lang/srpski.lang [diff]
apps/lang/tagalog.lang [diff]
apps/lang/vlaams.lang [diff]
apps/lang/walon.lang [diff]
Igor B. Poretsky
2020-11-11 869a8bfbe7: YesNo: Clear the button queue so a latent keypress doesn't skip the prompt
apps/gui/yesno.c [diff]
Solomon Peachy
2020-11-11 4aa749b59d: iriver_flash: refactor code to be easier to understand

This overhauls most of the code to be easier to understand in terms of the interactions with the flash. I found the original to be rather confusing with how it kept switching between byte and word offsets.

My solution was to make all external access to the flash in terms of sectors and bytes. Whatever the flash uses internally is now handled by the subroutines for performing the erase, program, and verify operations.

This helps make it far more consistent for the code that actually uses these operations as they do not need to concern themselves with word sizes and offsets anymore.

As a side effect of this change the flash operations are now done entirely by subroutines; even the batch operations that used to use custom loops.

Additionally some functions were merged with other functions in order to reduce the amount of functions as well as consolidating common code fragments.
apps/plugins/iriver_flash.c [diff]
firmware/export/config/iriverh100.h [diff]
firmware/export/config/iriverh120.h [diff]
firmware/export/config/iriverh300.h [diff]
firmware/export/system.h [diff]
James Buren
2020-11-08 c4254d10fc: Fuze+: Fix misplaced rectangle when lcd_flip set
firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c [diff]
Moshe Piekarski
2020-11-07 9fcdb44e55: rbutil: Show the license of all libraries included.

Replace the Speex license tab in the about dialog with one that lists all used libraries and their respective licenses, including Speex.

Previously only Speex required including the license in binary distribution; the recently added bspatch also wants this. Show the license for all used libraries so we can more easily add new ones in the future.
rbutil/rbutilqt/aboutbox.ui [diff]
rbutil/rbutilqt/rbutilqt.cpp [diff]
rbutil/rbutilqt/rbutilqt.qrc [diff]
Dominik Riebeling
2020-11-07 db7c4424e4: bspatch: Store license text in separate file.

Allow to easily show the license by having it in a separate file.
rbutil/bspatch/LICENSE [new]
Dominik Riebeling
2020-11-07 4820072a42: bzip: Add missing license to our copy of bzip2.
rbutil/bzip2/LICENSE [new]
Dominik Riebeling
2020-11-07 ba34b0fac3: rbutil: Modernize HttpGet implementation.

- Change signal-slot connections to new style, and fix renamed signal for Qt6.
- Make more use of RAII.
rbutil/rbutilqt/base/httpget.cpp [diff]
rbutil/rbutilqt/base/httpget.h [diff]
Dominik Riebeling
2020-11-07 4815a64f93: rbutil: Explicitly enable svg module.

Since most icons are svg now we need this. Linux implicitly enables it, Windows doesn't.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-11-07 87325ff957: rbutil: Enable HiDPI support on MacOS.

Since we provide our own Info.plist file we need to enable HiDPI support here.
rbutil/rbutilqt/Info.plist [diff]
Dominik Riebeling
2020-11-07 2e6a0df40e: rbutil: Enable HiDPI support on recent Qt versions.
rbutil/rbutilqt/main.cpp [diff]
Dominik Riebeling
2020-11-07 2e96657c36: rbutil: Replace most icons with their svg variant.

Replace png icons with svg ones for better HiDPI support.
rbutil/rbutilqt/configure.cpp [diff]
rbutil/rbutilqt/configurefrm.ui [diff]
rbutil/rbutilqt/createvoicefrm.ui [diff]
rbutil/rbutilqt/encttscfggui.cpp [diff]
rbutil/rbutilqt/gui/backupdialogfrm.ui [diff]
rbutil/rbutilqt/gui/changelogfrm.ui [diff]
rbutil/rbutilqt/gui/selectiveinstallwidgetfrm.ui [diff]
rbutil/rbutilqt/icons/audio-input-microphone.png [deleted]
rbutil/rbutilqt/icons/audio-input-microphone.svg [new]
rbutil/rbutilqt/icons/audio-volume-high.svg [new]
rbutil/rbutilqt/icons/bootloader_btn.png [deleted]
rbutil/rbutilqt/icons/dialog-error.png [deleted]
rbutil/rbutilqt/icons/dialog-error.svg [new]
rbutil/rbutilqt/icons/dialog-information.png [deleted]
rbutil/rbutilqt/icons/dialog-information.svg [new]
rbutil/rbutilqt/icons/dialog-warning.png [deleted]
rbutil/rbutilqt/icons/dialog-warning.svg [new]
rbutil/rbutilqt/icons/document-save.png [deleted]
rbutil/rbutilqt/icons/document-save.svg [new]
rbutil/rbutilqt/icons/doom_btn.png [deleted]
rbutil/rbutilqt/icons/edit-clear.svg [new]
rbutil/rbutilqt/icons/edit-find.png [deleted]
rbutil/rbutilqt/icons/edit-find.svg [new]
rbutil/rbutilqt/icons/font_btn.png [deleted]
rbutil/rbutilqt/icons/go-next.png [deleted]
rbutil/rbutilqt/icons/go-next.svg [new]
rbutil/rbutilqt/icons/input-gaming.svg [new]
rbutil/rbutilqt/icons/media-eject.png [deleted]
rbutil/rbutilqt/icons/media-eject.svg [new]
rbutil/rbutilqt/icons/multimedia-player.svg [new]
...and 34 more files.
Dominik Riebeling
2020-11-06 4f1888dfc8: rbutil: Redo MacOS application icon.

Don't use different icons depending on the display size and recreate properly including all scaled formats.
rbutil/rbutilqt/icons/rbutilqt.icns [diff]
Dominik Riebeling
2020-11-06 f9d8a0e210: rbutil: Simplify qmake check.
rbutil/rbutilqt/rbutilqt.pro [diff]
Dominik Riebeling
2020-11-06 6bc737cb1d: rbutil: Enable use of libmp3lame on macOS.

Since we're now automatically falling back to using the command line lame if we cannot load the library we can enable it on macOS as well.
rbutil/rbutilqt/base/encoderbase.cpp [diff]
Dominik Riebeling
2020-11-06 07604d62ab: rbutil: Command line fallback on libmp3lame failure.

When loading libmp3lame fails fall back to using the command line lame. Avoids an unresolvable error when trying to create voice / talk files for Archos. Modernize code a bit.
rbutil/rbutilqt/base/encoderbase.cpp [diff]
rbutil/rbutilqt/base/encoderlame.cpp [diff]
rbutil/rbutilqt/base/encoderlame.h [diff]
Dominik Riebeling
2020-11-04 bb7aa6f311: rk27generic: keymap tweaks
apps/keymaps/keymap-rk27xx-generic.c [diff]
Marcin Bukat
2020-11-04 235cdeca73: qeditor: add better fallback mecanism for icons
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
2020-11-04 b200cd7e4a: test_mem: fix asm variant of read/write test
apps/plugins/test_mem.c [diff]
Mihail Zenkov
2020-11-04 db87e1aae5: Fix typos and wording
apps/plugins/text_viewer/readme.txt [diff]
apps/plugins/text_viewer/tv_settings.c [diff]
Avi Eisenberg
2020-11-04 5db83c155a: pp5020: use ipod firmware timings for ATA PIO.

Some mSATA adapters seem to have trouble working with Rockbox using our normal PIO timings; the timing value we use is probably out of spec and is different to the OF. Switch to using the OF's timings according to which PIO mode we select. This may not completely resolve problems with these adapters but allows Rockbox to boot and play audio.
firmware/drivers/ata.c [diff]
firmware/export/ata.h [diff]
firmware/target/arm/pp/ata-pp5020.c [diff]
firmware/target/arm/pp/ata-target.h [diff]
Torne Wuff
2020-11-03 090bd9592d: Remove the firmware decompressor and a few more other SH-stragglers.
apps/plugins/chessbox/chessbox.make [diff]
firmware/decompressor/Makefile [deleted]
firmware/decompressor/decompressor.c [deleted]
firmware/decompressor/link.lds [deleted]
firmware/decompressor/sh_nrv2e_d8.S [deleted]
firmware/decompressor/startup.S [deleted]
gdb/linker.cfg [diff]
gdb/start.s [deleted]
tools/configure [diff]
Solomon Peachy
2020-11-03 066d471ae6: ATA: Check to see if the ATA device is solid-state (WIP)

Not all devices advertise this flag, unfortunately.
firmware/drivers/ata.c [diff]
Solomon Peachy
2020-11-03 8029c89808: erosq: Fix scrollwheel regression introduced in 125e97b0
firmware/target/hosted/button-devinput.c [diff]
Solomon Peachy
2020-11-03 611c18704c: FuzePlus USB+screen dump overflows usbstack

Bump USB stack by 128 bytes

adds USB_EXTRA_STACK
firmware/export/config/sansafuzeplus.h [diff]
firmware/usb.c [diff]
William Wilgus
2020-11-01 0c99a3f9fb: Skin engine Onda Vx747

Fixing issues that existed before framebuf rewrite

Fix swap issue
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
William Wilgus
2020-11-01 f9ba96cade: rbutil: Remove unneeded includes.
rbutil/rbutilqt/base/serverinfo.cpp [diff]
rbutil/rbutilqt/base/systeminfo.cpp [diff]
Dominik Riebeling
2020-11-01 1fa826738d: rbutil: Simplify extenal encoder binary handling.

We only use lame as external encoder for voice on the Archos targets. Simplify the implementation by removing (unused) handling of (potential) other encoders.
rbutil/rbutilqt/base/encoderexe.cpp [diff]
rbutil/rbutilqt/base/encoderexe.h [diff]
Dominik Riebeling
2020-10-31 daefd5686f: Rocker: Fix a boneheaded bug introduced in dd82f13fa1
firmware/drivers/audio/rocker_codec.c [diff]
Solomon Peachy
2020-10-31 1058ed5b25: tomcrypt: Set target macOS version.

Make sure the target version isn't the default one so it also runs on older macOS version than the current one.
utils/tomcrypt/Makefile [diff]
Dominik Riebeling
2020-10-31 5aa7245077: rbutil: Create more fancy dmg on macOS using dmgbuild.

Add target to build a dmg containing Rockbox Utility, ipodpatcher and sansapatcher as single app bundle, and create a more fancy dmg using dmgbuild.
rbutil/rbutil.pro [diff]
rbutil/rbutilqt/dmgbuild.cfg [new]
Dominik Riebeling
2020-10-31 125e97b0bf: hosted: Consolidate common /dev/input code shared by the hiby targets

* Enable dynamic number of input devices, needed for bluetooth support
firmware/SOURCES [diff]
firmware/target/hosted/agptek/button-agptek.c [diff]
firmware/target/hosted/agptek/button-target.h [diff]
firmware/target/hosted/aigo/button-erosq.c [diff]
firmware/target/hosted/aigo/button-target.h [diff]
firmware/target/hosted/button-devinput.c [new]
firmware/target/hosted/fiio/button-fiio.c [diff]
firmware/target/hosted/xduoo/button-target.h [diff]
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
2020-10-31 dd82f13fa1: nwz/alsa: various improvements

Also audiohw driver to specific device name, rewrite alsa controls code to cache more data, thus making the code easier and use less stack. Avoid using short/long in pcm alsa code since it's the wrong size on 64-bit (simulator for example)
firmware/drivers/audio/erosqlinux_codec.c [diff]
firmware/drivers/audio/fiiolinux_codec.c [diff]
firmware/drivers/audio/nwzlinux-codec.c [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/drivers/audio/xduoolinux_codec.c [diff]
firmware/target/hosted/alsa-controls.c [diff]
firmware/target/hosted/alsa-controls.h [diff]
firmware/target/hosted/pcm-alsa.c [diff]
firmware/target/hosted/pcm-alsa.h [diff]
firmware/target/hosted/sonynwz/debug-nwz.c [diff]
Amaury Pouly
2020-10-31 ce9e7e7122: hosted: fix warning when LOGF is enabled
firmware/target/hosted/system-hosted.c [diff]
Solomon Peachy
2020-10-31 8e5c57a822: plugins: bump api version (missed it in fe2d52c)
apps/plugin.h [diff]
Solomon Peachy
2020-10-31 60f642ba4f: lcd_framebuffer bugfixes, sanity checks

several issues I saw that could pontentially cause problems scroll engine doesn't take text height into account when checking bounds

NBELEMS was one whole row too large hopefully I got them right this time
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/export/lcd-remote.h [diff]
firmware/export/lcd.h [diff]
William Wilgus
2020-10-31 202f9df0c1: Test_Viewports BUGFIX

putting a framebuffer on the stack is never a good idea

Added comments
apps/plugins/test_viewports.c [diff]
William Wilgus
2020-10-31 7eee526e6a: fix red introduced in the android pcm driver (rev fe2d52c)
firmware/target/hosted/android/pcm-android.c [diff]
Solomon Peachy
2020-10-31 fe2d52cc7d: pcm: Get rid of pcm_play_pause() and associated APIs

Nothing in the core has used it for some time. It's exported to the plugin API but the last plugins to use it were switched to the mixer API back in 2011.

This allows us to get rid of pcm_play_dma_pause() from all audio drivers
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/lua/include_lua/pcm.lua [diff]
apps/plugins/lua/rocklib.c [diff]
docs/PLUGIN_API [diff]
firmware/drivers/audio/rocker_codec.c [diff]
firmware/export/fiiolinux_codec.h [diff]
firmware/export/pcm-internal.h [diff]
firmware/export/pcm.h [diff]
firmware/export/rocker_codec.h [diff]
firmware/export/xduoolinux_codec.h [diff]
firmware/pcm.c [diff]
firmware/pcm_sw_volume.c [diff]
firmware/target/arm/as3525/pcm-as3525.c [diff]
firmware/target/arm/imx233/pcm-imx233.c [diff]
firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c [diff]
firmware/target/arm/pcm-telechips.c [diff]
firmware/target/arm/pnx0101/pcm-pnx0101.c [diff]
firmware/target/arm/pp/pcm-pp.c [diff]
firmware/target/arm/rk27xx/pcm-rk27xx.c [diff]
firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c [diff]
firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c [diff]
firmware/target/arm/s5l8700/pcm-s5l8700.c [diff]
firmware/target/arm/s5l8702/pcm-s5l8702.c [diff]
firmware/target/arm/tms320dm320/creative-zvm/pcm-creativezvm.c [diff]
firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/pcm-sansaconnect.c [diff]
firmware/target/coldfire/pcm-coldfire.c [diff]
firmware/target/hosted/android/pcm-android.c [diff]
firmware/target/hosted/ibasso/pcm-ibasso.c [diff]
...and 5 more files.
Solomon Peachy
2020-10-30 2d85c72151: iriver_flash: fix issues with DoUserDialog

First the argument should be const since the original parameter is.

Second the pointer arithmetic for detecting whether rockbox is running from ROM or not is incorrect. It ends up being at a location twice as far as intended since the arithmetic does not account for the pointer type's underlying size. It should also be dependent on the target's FLASH_SIZE.

Third the LCD setup is moved to the entry point since it is the best place to setup and restore the LCD changes.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 fa3184f951: iriver_flash: make most remaining functions static

This increases opportunities for optimizations as well.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 7c498b9043: iriver_flash: revise valid_bootloaders and detect_valid_bootloader

The main change is revising how the checksums are guarded by macros. But both are also converted to static linkage so they can be better optimized by GCC. I also change the types around to reflect how the space the data types actually need. Furthermore I make use of C99 changes to how variables can be declared to move them closer to where they are used.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 6bc6af6a0e: iriver_flash: revise load_firmware_file function

This moves the checksum into the local stack and turns the second parameter into an optional argument. This also reads the model segment that was previously unused so it can also be checked as an extra safeguard in the event the checksum somehow matches yet the model is incorrect.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-30 07fcced4fb: Fix volume handling of steps in radio
apps/radio/radio.c [diff]
Amaury Pouly
2020-10-30 44023eb430: Volume adjustment in LISTS ignored AUDIOHW_SETTING values

AUDIOHW_SETTING() defines number of decimals and step size. This is taken into account in sound menu but ignored in lists
(had been recently fixed in WPS). This was not a problem so far since all drivers used 0 decimal places and step size equal 1.
apps/gui/list.c [diff]
Johannes Rauh
2020-10-29 f1bfbb52f1: iriver_flash: revise cfi_read_id and cfi_get_flash_info

First neither of these functions can fail on supported targets so they have become void functions. Their return values were not being used anyway.

Second support for other flash chips not even used on the supported targets has been removed. It appears they were only ever used on the discontinued Arch devices.

Third cfi_read_id was restructured to remove obsolete code for error checking that is not necessary at all. The datasheets appear to indicate that the commands used cannot fail.

Fourth cfi_get_flash_info was restructured to use a new approach to initializing the flash_info struct. It no longer initializes the structure twice.

Fifth the relevant code has been updated to use the full 16 bits that are exposed by the flash rom ID interface.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-29 96f82f828a: rbutil: More Qt6 compatibility.

Qt6 doesn't contain QTextCodec anymore but instead provides it in the optional core5compat module.
rbutil/rbutilqt/quazip/quazip.h [diff]
rbutil/rbutilqt/rbutilqt.pro [diff]
rbutil/rbutilqt/themesinstallwindow.cpp [diff]
Dominik Riebeling
2020-10-29 4594541b5f: rbutil: Simplify search.

No need to get keys from the map to search a key, we can check directly.
rbutil/rbutilqt/base/systeminfo.cpp [diff]
Dominik Riebeling
2020-10-29 2d62f2d017: rbutil: More Qt6 compatibility.

Replace QProcess::pid() which has been replaced with QProcess::processId() starting with Qt5.3 and removed from Qt6.
rbutil/rbutilqt/base/ttsfestival.cpp [diff]
Dominik Riebeling
2020-10-29 86420bbe2b: rbutil: Remove unused assignment.
rbutil/rbutilqt/configure.cpp [diff]
Dominik Riebeling
2020-10-29 f65e410497: iriver_flash: rewrite how the flash commands wait for the ROM

This uses the toggle bit method referenced in the datasheets for the supported ROM chips and moves the code to a reusable subroutine. It also introduces a short delay to give the bus a chance to recover. The older ROM datasheet doesn't mention this delay as necessary but the newer one does so it now does this for both.
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-29 c5c17fa799: Fix display regression from c85d8e2

Basically setting a null buffer is valid but it must be selected into a screen to initialize to the default buffer

I wrongly assumed screen type wouldn't matter but since I decided to reference backdrops directly to the default buffer
(since they are saved as an offset from what it later assumes to be the default framebuffer) SCREEN_MAIN/SCREEN_REMOTE are not longer optional
apps/gui/skin_engine/skin_backdrops.c [diff]
William Wilgus
2020-10-28 c7fb319151: fix checkwps build (introduced in a5a8e00)
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2020-10-28 a5a8e00b6d: Fix a crash introduced in a605cdf70

Pretty subtle problem; looks like the skin core was relying on a destructor to actually help initialize things.
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2020-10-28 8c8284bbe6: Fix statusbar display regression from a605cdf700
apps/gui/skin_engine/skin_parser.c [diff]
Solomon Peachy
2020-10-28 c85d8e2865: Framebuffer_viewport Rewrite -- BUG FIX

stride was not initialized for the skin_viewport

fixed a few other questionable areas
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
William Wilgus
2020-10-28 a605cdf700: Fix multiple potential null pointer dereferencess

GCC's optimizer thinks all of these _will_ fail at some point
apps/gui/bitmap/list-skinned.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/gui/statusbar-skinned.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/reversi/reversi-gui.c [diff]
Solomon Peachy
2020-10-28 621e363e70: libgme: Fix yellow in hosted MIPS builds
lib/rbcodec/codecs/libgme/nsfe_info.c [diff]
Solomon Peachy
2020-10-28 41a6da6043: builds: Enable -fno-delete-null-pointer-checks globally

* arm failures in lua, wolf3d, quake, flac
* m68k failures in lua, wmapro
* mips ???

I still think that most of these are actually due to latent bugs or ambiguous code.
tools/configure [diff]
Solomon Peachy
2020-10-28 bcbf8bbf0a: wmapro: Backport multiple fixes

upstream commits:

780d454 b28c678 9166f48 97a5add b21ba20 f734671 b86dd1 b4027d9 50f0a6b 4c0080b c7a7605 5dcb990 7ad698e
lib/rbcodec/codecs/libwmapro/wmaprodec.c [diff]
Solomon Peachy
2020-10-28 a5a19a3370: dircache: Fix a NULL pointer dereference

if idx == 0, get_idx_dcvolp() will return NULL.
firmware/common/dircache.c [diff]
Solomon Peachy
2020-10-27 7dbfda6c55: iaudiom5: Fix build.

Basically we're overflowing IRAM by 48 bytes. Shrink the stack by 48 bytes to compensate.

Fixing this properly will require careful decisions about what
(code and/or data) to eject from IRAM.
firmware/target/coldfire/app.lds [diff]
Solomon Peachy
2020-10-27 bee736f3ea: iriver_flash: make cfi_read_id use FB directly
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-27 e5b963b8e1: iriver_flash: remove trailing whitespaces
apps/plugins/iriver_flash.c [diff]
James Buren
2020-10-27 61f698715d: coldfire: We need -fno-delete-null-pointer-checks in flash controller code
firmware/target/coldfire/debug-coldfire.c [diff]
Solomon Peachy
2020-10-27 f62eee569c: iriver_flash: we need -fno-delete-null-pointer-checks
apps/plugins/iriver_flash.c [diff]
Solomon Peachy
2020-10-26 804a49886a: statusbar: Make statusbar height equal SYSFONT_HEIGHT

And size elements horizaontally based on SYSFONT_WIDTH

Unfortunately we need 16px icons to make 16px statusbar look right but at least it _works_ properly now.

Also: all targets currently use 8-px SYSFONT, except some hosted bootloaders
apps/gui/statusbar-skinned.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/statusbar.h [diff]
apps/recorder/icons.h [diff]
apps/recorder/peakmeter.c [diff]
tools/configure [diff]
Solomon Peachy
2020-10-26 299c237075: 'Fix RED e200 Framebuffer_viewport_rewrite

Free malloc in checkwps too
firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c [diff]
tools/checkwps/checkwps.c [diff]
William Wilgus
2020-10-26 04e7bacc4c: FIX RED Framebuffer_viewport_rewrite
apps/plugins/reversi/reversi-gui.c [diff]
tools/checkwps/checkwps.c [diff]
William Wilgus
2020-10-26 ada919fc11: FIX RED framebuffer viewport rewrite
apps/plugins/rockboy/lcd.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/target/coldfire/iaudio/x5/lcd-x5.c [diff]
William Wilgus
2020-10-26 9b295ce135: FIX RED/YELLOW framebuffer viewport rewrite
apps/plugins/reversi/reversi-gui.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2020-10-26 40e98a2e49: Whitespace cleanup on fb_viewport Rewrite
apps/gui/pitchscreen.c [diff]
apps/gui/skin_engine/skin_display.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/splash.c [diff]
apps/gui/viewport.c [diff]
apps/gui/viewport.h [diff]
apps/gui/yesno.c [diff]
apps/plugins/lib/xlcd_draw.c [diff]
apps/plugins/lib/xlcd_scroll.c [diff]
apps/plugins/lua/rocklib_img.c [diff]
apps/screen_access.c [diff]
apps/screen_access.h [diff]
apps/screens.c [diff]
bootloader/common.c [diff]
firmware/drivers/lcd-16bit-vert.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-1bit-vert.c [diff]
firmware/drivers/lcd-24bit.c [diff]
firmware/drivers/lcd-2bit-horz.c [diff]
firmware/drivers/lcd-2bit-vert.c [diff]
firmware/drivers/lcd-2bit-vi.c [diff]
firmware/drivers/lcd-bitmap-common.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/export/config/mrobe500.h [diff]
firmware/export/lcd.h [diff]
William Wilgus
2020-10-26 3237ae4a4f: LCD core move buf ptr and address look up function viewport struct

I'm currently running up against the limitations of the lcd_draw functions I want these functions to be able to be used on any size buffer not just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear scrolling viewports no longer trigger wps refresh also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_) LCD_STRIDE(w, h) same as STRIDE_MAIN LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH) test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags
apps/alarm_menu.c [diff]
apps/gui/bitmap/list.c [diff]
apps/gui/color_picker.c [diff]
apps/gui/pitchscreen.c [diff]
apps/gui/quickscreen.c [diff]
apps/gui/skin_engine/skin_backdrops.c [diff]
apps/gui/skin_engine/skin_engine.c [diff]
apps/gui/skin_engine/skin_engine.h [diff]
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_render.c [diff]
apps/gui/skin_engine/wps_internals.h [diff]
apps/gui/splash.c [diff]
apps/gui/statusbar.c [diff]
apps/gui/usb_screen.c [diff]
apps/gui/viewport.c [diff]
apps/gui/viewport.h [diff]
apps/gui/yesno.c [diff]
apps/menus/time_menu.c [diff]
apps/misc.c [diff]
apps/onplay.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
apps/plugins/invadrox.c [diff]
apps/plugins/lib/grey.h [diff]
apps/plugins/lib/grey_core.c [diff]
apps/plugins/lib/grey_parm.c [diff]
...and 44 more files.
William Wilgus
2020-10-26 12f3ed1699: make the plugin API frambuffer agnostic
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/doom/i_video.c [diff]
apps/plugins/fire.c [diff]
apps/plugins/imageviewer/imageviewer.c [diff]
apps/plugins/imageviewer/jpeg/yuv2rgb.c [diff]
apps/plugins/invadrox.c [