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



whenwhatwherewho
Yesterday 20:28 06423cab58: x1000-installer: Initial commit of new framework

This is a new flash installer framework for the X1000 targets.

A bunch of this code is *UNTESTED* but there is an external test harness which allows the library to be built and tested on a PC.

Once tests are written and the bugs are ironed out this framework will replace the existing installer code.

New features:

- Update tarballs are MD5-checksummed to guarantee integrity.
- The flash map is no longer fixed -- updates are self describing and carry a map file which specifies the areas to update.
- Can take full or partial backups with checksums computed on the fly.
- Supports an additional verification mode which reads back data after writing to ensure the flash contents were not silently corrupted.
lib/x1000-installer/.gitignore [new]
lib/x1000-installer/Makefile [new]
lib/x1000-installer/SOURCES [new]
lib/x1000-installer/include/xf_error.h [new]
lib/x1000-installer/include/xf_flashmap.h [new]
lib/x1000-installer/include/xf_nandio.h [new]
lib/x1000-installer/include/xf_package.h [new]
lib/x1000-installer/include/xf_stream.h [new]
lib/x1000-installer/include/xf_update.h [new]
lib/x1000-installer/src/xf_error.c [new]
lib/x1000-installer/src/xf_flashmap.c [new]
lib/x1000-installer/src/xf_nandio.c [new]
lib/x1000-installer/src/xf_package.c [new]
lib/x1000-installer/src/xf_stream.c [new]
lib/x1000-installer/src/xf_update.c [new]
lib/x1000-installer/test/main.c [new]
lib/x1000-installer/test_lib/core_alloc.c [new]
lib/x1000-installer/test_lib/core_alloc.h [new]
lib/x1000-installer/test_lib/fakenand.c [new]
lib/x1000-installer/test_lib/file.c [new]
lib/x1000-installer/test_lib/file.h [new]
lib/x1000-installer/test_lib/md5.c [new]
lib/x1000-installer/test_lib/md5.h [new]
lib/x1000-installer/test_lib/nand-x1000.h [new]
lib/x1000-installer/test_lib/pathfuncs.c [new]
lib/x1000-installer/test_lib/pathfuncs.h [new]
lib/x1000-installer/test_lib/strlcpy.c [new]
lib/x1000-installer/test_lib/strlcpy.h [new]
lib/x1000-installer/test_lib/system.h [new]
lib/x1000-installer/x1000-installer.make [new]
Aidan MacDonald
Yesterday 20:27 98f1271aec: x1000: Fix AIC I2S divider clamping with EXCLK source
firmware/target/mips/ingenic_x1000/aic-x1000.c [diff]
Aidan MacDonald
Yesterday 20:22 f1215a338b: uisimulator: remove an unused file

Appears to be a holdover from archos.
uisimulator/battery.c [deleted]
Aidan MacDonald
Yesterday 14:29 9eaa14dc02: usb-designware: fix setup packet error handling

This handles the case where the host sends a new setup packet in the middle of an ongoing control transfer.
firmware/drivers/usb-designware.c [diff]
Aidan MacDonald
Yesterday 14:02 fd50baa23f: PictureFlow: Reversible and interruptible animations

Makes PF usable on older devices with few FPS, and makes it quicker to navigate on current devices.

- PF_BACK while zooming in to zoom out again
- PF_SELECT or PF_PREV/PF_NEXT while zooming in to skip animation

- PF_BACK while zooming out to skip animation
- PF_PREV/PF_NEXT while zooming out to skip animation + scroll
- PF_SELECT while zooming out to zoom in again
- PF_CONTEXT while zooming out to skip animation and append

- PF_CONTEXT while scrolling to append
- PF_SELECT while scrolling to zoom in
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
Yesterday 13:13 e4d8431211: Update microtar users to new library API
firmware/target/mips/ingenic_x1000/installer-x1000.c [diff]
rbutil/jztool/src/x1000.c [diff]
Aidan MacDonald
Yesterday 13:13 c1709e3194: microtar: Update to latest upstream commit

This is a major overhaul of the library with some API changes and ease of use improvements, particularly for creating new archives.

The updated functionality is intended to support a new X1000 installer framework.
lib/microtar/.gitignore [new]
lib/microtar/LICENSE [diff]
lib/microtar/Makefile [new]
lib/microtar/README.md [diff]
lib/microtar/README.rockbox [new]
lib/microtar/mtar.c [new]
lib/microtar/src/microtar-rockbox.c [diff]
lib/microtar/src/microtar-rockbox.h [new]
lib/microtar/src/microtar-stdio.c [diff]
lib/microtar/src/microtar-stdio.h [new]
lib/microtar/src/microtar.c [diff]
lib/microtar/src/microtar.h [diff]
Aidan MacDonald
Thursday 00:17 4052a9ddcf: Manual: Update Metadata limitations

Limit for devices with more than 8MB of memory had previously been increased from 300 to 500 bytes for individual fields, and to 1800 from 900 bytes for buffer containing all fields.

See a8846e3
apps/features.txt [diff]
manual/appendix/file_formats.tex [diff]
Christian Soffke
Thursday 00:03 871572b6c3: touchscreen: improved pixelwise scrolling in lists

Scrolling via the scrollbar is now a bit smoother -- it's now drawn pixelwise, and dragging it will scroll the list pixelwise instead of rigidly snapping to items.

Several other general UX issues were fixed:

- List and scrollbar now occupy the full viewport height, to maximize use of screen space.
- Fixed issue with last item in the list suddenly appearing or disappearing while scrolling.
- Prevented scrolling into blank space after the last item.
apps/gui/bitmap/list.c [diff]
Aidan MacDonald
Wednesday 23:49 44acbc6629: Shanling Q1: enable multi-touch reporting

The FT6x06 driver used for the Shanling Q1's touchscreen has been extended to report more than one touch point. It can also return the gesture detected by the controller, but this doesn't seem to report anything useful on the Q1.

Multi-touch is only useful in 3x3 grid mode since the Rockbox button API cannot report more than one touch point.

The FiiO M3K uses the same driver so it's been updated to the multi-touch API, but functionality is unchanged.
firmware/drivers/ft6x06.c [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
firmware/export/ft6x06.h [diff]
firmware/target/mips/ingenic_x1000/debug-x1000.c [diff]
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/shanlingq1/button-shanlingq1.c [diff]
Aidan MacDonald
23rd Nov 02:39 b39acee3ab: rb_info plugin and button,action+context name helper

rb_info is just a test plugin

just some info from the running rockbox install

the real star here is the generator scripts to make actions_helper.c and button_helper.c
apps/action.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lib/SOURCES [diff]
apps/plugins/lib/action_helper.c [new]
apps/plugins/lib/action_helper.h [new]
apps/plugins/lib/action_helper.pl [new]
apps/plugins/lib/button_helper.c [new]
apps/plugins/lib/button_helper.h [new]
apps/plugins/lib/button_helper.pl [new]
apps/plugins/plugins.make [diff]
apps/plugins/rb_info.c [new]
William Wilgus
22nd Nov 13:08 3d07ec46ee: jz47x0: Minor code quality improvements in the jz47xx USB drivers

* Replace magic nubmers with #defined constant
* Tweak some logf messages

No functional changes!
firmware/export/jz4760b.h [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
Solomon Peachy
22nd Nov 13:06 5bd9ed801f: Fix: PictureFlow splash() crash on grayscale targets

On targets where the grayscale framework is used, splash() won't work (and may crash) if the overlay is not switched off first. This is not reproducible in the simulator.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
22nd Nov 13:06 f9ce8720c4: Fix: PictureFlow crashes

- After appending albums, when memory had been borrowed from the buflib buffer by shifting memory up using buflib_buffer_out() in create_track_index(), memory was later not shifted down using buflib_buffer_in() (the latter was only called after displaying the track list).

- The picture loading thread was able to allocate memory from the buflib pool while the main thread was moving the buffer around. Slide loading will now be paused before shifting operations, and continued afterwards.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
21st Nov 20:26 3f966b2aa4: touchscreen: make quickscreen easier to use

In absolute pointing mode, the quickscreen now accepts a touch anywhere in the middle third of the screen edge to trigger an item, and pressing anywhere else on the
'grid' will exit -- the same as how 3x3 mode works.

Previously it required a touch inside the text viewport to trigger an item, and exited after any touch outside the viewports. This made it very difficult to use since the text viewports are too small to reliably touch.
apps/gui/quickscreen.c [diff]
Aidan MacDonald
21st Nov 20:26 bff63a4f90: touchscreen: change odd sentinel value for time of last touch

Using tick 0xffff does not make any sense, use -1 instead.
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
firmware/drivers/button.c [diff]
firmware/export/button.h [diff]
Aidan MacDonald
21st Nov 20:26 7e428ad190: touchscreen: force 3x3 mode in the keyboard

In absolute pointing mode the keyboard is virtually unusable since the keys are too tiny (just 8x6). There are other issues too: for example putting the keys on top doesn't make sense on touchscreens and there is a lot of empty space in between keys that serves no real purpose.

Until these issues can be addressed properly simply force 3x3 mode when in the keyboard.
apps/recorder/keyboard.c [diff]
Aidan MacDonald
21st Nov 20:26 ad66c3b807: touchscreen: use repeat acceleration for button input

Touch devices have physical buttons too, and these should be subject to repeat acceleration. That feature was disabled for the sake of better touch event responsiveness (apparently).

So, re-enable the acceleration feature & add a special case to exempt BUTTON_TOUCHSCREEN from acceleration.
firmware/drivers/button.c [diff]
Aidan MacDonald
21st Nov 17:44 990c543ebc: Revert "Pictureflow: Update for tag_virt_canonicalartist."

This reverts commit 60125f6bc987f4e234610f3e23a0e45e5d9b6d6e.

Reason for revert: See g#3947.
apps/plugins/pictureflow/pictureflow.c [diff]
James Smith
21st Nov 03:07 a14347a6b3: quickscreen: fix non-intuitive behavior of top/bottom items

The behavior of the top/bottom items is not intuitive when used with settings like volume or brightness -- pressing up will actually *decrease* the setting, and down will increase it. This patch inverts the direction, so the top item will increase the setting.

The reason for this is that historically, the quickscreen seems to have had only 3 directions -- left, right, and bottom. Bottom therefore selected the next value, and when top was introduced it selected the previous value.

The counter-intuitive nature of this was later reported as a bug on the Fuze V2 and got an incorrect fix (commit 2271995517) under the assumption that ASCENDING_INT_SETTINGS was the issue.
apps/gui/quickscreen.c [diff]
Aidan MacDonald
20th Nov 22:06 16a71a19a8: debug_menu: add format specifier for seconds in RDS timestamp

Add the 6th format specifier for the 6th parameter and show seconds, too. Most radio stations will update once per minute only, but still...
apps/debug_menu.c [diff]
Wolfram Sang
18th Nov 21:53 336ea51af6: WIP: Samsung YPR0/1: switch to generic SI47xx polling

Should work(tm). But I don't have the hardware, so it needs to be tested.
firmware/export/config/samsungypr0.h [diff]
firmware/export/config/samsungypr1.h [diff]
firmware/target/hosted/samsungypr/radio-ypr.c [diff]
Wolfram Sang
18th Nov 21:44 de0346065b: Sansa Clip+: add RDS support

Based on a patch by Amaury Pouly which was based on a patch from Ryan Hitchman.

I mainly moved the code for polling into the tuner driver so it can be reused by other targets. I added the CONFIG parameter for the polling frequency (in ticks) to save energy. Also, I did some minor cleanups.
firmware/drivers/tuner/si4700.c [diff]
firmware/export/config.h [diff]
firmware/export/config/sansaclipplus.h [diff]
firmware/export/si4700.h [diff]
firmware/target/arm/as3525/fmradio-i2c-as3525.c [diff]
firmware/target/arm/as3525/system-as3525.c [diff]
Wolfram Sang
18th Nov 19:14 701d4ba77e: x1000: Merge makefiles used for the bootloader

All three X1000 native targets turned out to have a very similar boot configuration and used a nearly identical makefile. Eliminate this duplication by moving the logic into the main makefile.
firmware/target/mips/ingenic_x1000/erosqnative/boot.make [deleted]
firmware/target/mips/ingenic_x1000/fiiom3k/boot.make [deleted]
firmware/target/mips/ingenic_x1000/shanlingq1/boot.make [deleted]
firmware/target/mips/ingenic_x1000/x1000boot.make [diff]
tools/configure [diff]
Aidan MacDonald
14th Nov 17:58 6e61e6f0c8: usb_core: don't buffer control request unnecessarily

Due to how the old control request API worked, the request pointer (and the pointed-to contents) passed by the driver must remain valid for the lifetime of the request.

The buffered copy wasn't used consistently anyway, so it should be safe to just get rid of it.

(This only affects the old API compatibility layer.)
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
13th Nov 18:37 f8810be6de: usb_core: More legacy control API fixes

In the old API, usb_core_transfer_complete() would ignore any completions on EP0. The legacy control API will also ignore most completions on EP0, but it only did so after filling in the completion event.

If the driver submits a spurious completion on EP0, then this could clobber a previously queued completion event.

Fix this by deciding whether to ignore the completion
*before* modifying the event data.
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
13th Nov 13:13 a4e422db9e: Stop audio before applying skin

Should prevent a delay, dropouts and memory corruption that can occur when applying a skin while music is playing
apps/gui/skin_engine/skin_engine.c [diff]
Christian Soffke
13th Nov 08:38 11ddc6cf1c: announce_status Fix USB fall through and usb on plugin start

When running and USB plugged announce status ack'd the USB and then un intentionally fell through to EV_EXIT this caused the thread to exit but not the TSR hook

Now: plugin keeps track of usb status and doesn't announce till usb is unplugged again on unplug the start-up beep is played to announce its presence

announce_status on startup blocks usb since USB handling is done in the thread that hasn't started yet Now: don't start if USB is plugged

Plugin now beeps if it couldn't play the announcement excpept for missing voice file unfortunately
apps/plugins/announce_status.c [diff]
William Wilgus
12th Nov 21:31 59ef877c94: x1000: delay power thread until valid battery read

Appears to return 0 until the axp has (presumably) completed its first real measurement.

Note about erosq: keep the power_inint() delay large to ensure nothing breaks in the bootloader for the time being.
firmware/powermgmt.c [diff]
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
12th Nov 19:51 ee27ba416f: uisimulator: add keyboard mappings for M3K scrollstrip
uisimulator/buttonmap/fiio-m3k.c [diff]
Aidan MacDonald
11th Nov 22:31 fbf83dc4ce: Add setting for disabling wrap-around lists

Allows user to decide whether scrolling lists will wrap around to the opposite end after the first or last item has been reached.
apps/gui/list.c [diff]
apps/lang/english.lang [diff]
apps/menus/display_menu.c [diff]
apps/plugins/pictureflow/pictureflow.c [diff]
apps/recorder/keyboard.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/appendix/config_file_options.tex [diff]
manual/configure_rockbox/display_options.tex [diff]
Christian Soffke
11th Nov 05:28 30a23fdd6d: folder_select.c move to plugin as db_folder_select

handles the folder selection for autoresume paths and database paths

folder_select uses the pluginbuf to build the directory tree hopefully having it as a plugin will make it stop corrupting TSR plugins like battery_bench and announce_status

I left the original include and source in the gui directory for now there are currently no other users..
apps/menus/settings_menu.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/db_folder_select.c [new]
William Wilgus
11th Nov 03:38 cf009b4cbb: pitchscreen make it a plugin

full commandline parsing
-has pitch, speed, time_stretch
/* pitch_screen
* accepts args -q, -g, -p=, -s=, -k=; (= sign is optional)
* -q silences output splash
* -g runs the gui (Runs immediately)
* -p100 would set pitch to 100%
* -s=90 sets speed to 90% if timestrech is enabled
* -k=true -k1 enables time stretch -k0 -kf-kn disables
*/
apps/gui/pitchscreen.c [diff]
apps/plugin.c [diff]
apps/plugin.h [diff]
apps/plugins/CATEGORIES [diff]
apps/plugins/SOURCES [diff]
apps/plugins/lib/arg_helper.c [diff]
apps/plugins/lib/arg_helper.h [diff]
apps/plugins/pitch_screen.c [new]
William Wilgus
11th Nov 02:53 67fb558c89: as3525: debug: use 'kHz' where applicable instead of "MHz" or "KHz"
firmware/target/arm/as3525/debug-as3525.c [diff]
Wolfram Sang
10th Nov 23:19 eb4455b00b: manual: add space after \ActionFMPreset
manual/main_menu/fmradio.tex [diff]
Wolfram Sang
10th Nov 21:34 e6313201c1: Playback: Skip invalid entries from playlist

Reverts to the behavior pre-commit dfff938 with the additional change that it will not skip the last entry.
apps/playback.c [diff]
Christian Soffke
10th Nov 20:58 ce18e13504: Manual: add Single Mode to config file options
manual/appendix/config_file_options.tex [diff]
Christian Soffke
10th Nov 20:43 a7d09f8104: PictureFlow: remember inspected album artwork

Each time PictureFlow was launched, it would rebuild the album artwork cache from the beginning.

Depending on the number of albums, this could take a while and resulted in choppy scrolling.

PictureFlow will now remember how many albums have been inspected already, and only rescan and write new artwork when the album index cache gets updated or rebuilt.
apps/plugins/pictureflow/pictureflow.c [diff]
Christian Soffke
10th Nov 18:56 687096e3f5: Fix: Shortcuts Menu data loss & crash

- Shortcuts Menu would delete SHORTCUT_TIME shortcuts when deleting any other shortcut.

- Shortcuts would crash or show wrong number of items after deleting a shortcut and then launching a shortcut when simplelist_show_list was executed again.
apps/shortcuts.c [diff]
Christian Soffke
10th Nov 12:22 9ee321cf90: ErosqNative: increase battery stabilization delay again

Hopefully 250 is long enough for any devices out there!
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
10th Nov 07:34 58462184d1: folder_select.c partial rewrite -- remove static, add full notification

| with some code refactoring we can eliminate the static char buffer in get_full_path()

I'm guessing making the functions recursive prompted the static buffer I don't see any reason we can't just pass the same buffer
| During tested I noted failure after buffer was full
-- splash added for buffer full notification

added some logic to not add partial entries and try to find a
| selected item that will fit in the remaing buffer
------------------------------------------------------------------------

While looking through the source I noticed a few potential pitfalls with the current code.

Namely the stack allocated temporary buffer sized to setting_len.

I also noted the rigid vect[32] with the timeless --
/* 32 separate folders should be Enough For Everybody(TM) */ and decided to make it a bit more robust

The saved items are hashed with crc32 on all the paths and a hashed_len is kept to aid in the buffer full message before the user actually goes to save the changes
(assuming they even get the message)

In the old code, buffer might be the same since it ran out of space and didn't get their later selections

the hashed_len could easily be turned into a way to get a needed buffer size as well for someone in the future just pass a really large maxlen

I made get_full_path non recursive since it liked to blow the stack while embedded in all the other recursive calls making it a pain to debug
(the real reason the buffer was static?) traverse first from the current folder to root mutating the parent pointers to point at the previous child next traverse back to the folder unmutating & taking names on the way

Folder depth is now uint16 65535 levels is probably excessive children_count is also uint16 as well I made the first folders below root '/' stay below root instead of shifting since the horizontal real estate is limited

slightly smaller than it began but hopefully faster & more reliable
apps/gui/folder_select.c [diff]
William Wilgus
9th Nov 15:30 b14df9077f: 2048 plugin: Fix disappearing numbers (FS #13303)
apps/plugins/bitmaps/native/SOURCES [diff]
apps/plugins/bitmaps/native/_2048_tiles.26x26x2.bmp [new]
Christian Soffke
9th Nov 14:45 7af98ce6bb: usb: Fix possible SET ADDRESS data corruption

The address from the packet needs to be saved before sending the response -- after the response the request being pointed to could get overwritten. This used to be done correctly but I unintentionally broke it when updating the handler to the new control request API.
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
8th Nov 22:52 9f1cab154c: lcd-16bit-common move bugfix to sim only

Ive seen no ill effects having this disabled on target so limit it to the sim to stop Address Sanitizer from dumping on the extra byte read. the bad data is never used AFAICT since the loop ends
firmware/drivers/lcd-16bit-common.c [diff]
William Wilgus
8th Nov 21:46 8c954c68e5: usb: Attempt to fix race condition in compatibility layer

Because usb_core_legacy_control_request() is called by an interrupt handler the global variables used to track the current control request at the very least need to be volatile.

It might also be necessary to disable IRQs but I'm not sure of that.
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
8th Nov 21:15 aed113042d: RFC settings & nvram.bin save setting to tmp file save old

save to a .tmp file on save and rename on next load

I think this should pretty minimally invasive as the same file still gets overwritten in subsequent attempts until it is loaded again

the save path is still static so it won't cause issues holding up shutdown.

load might be a bit slower with the searching for tmp+current file and renaming them

Plus there is now a backup of your last settings file
apps/settings.c [diff]
William Wilgus
8th Nov 19:25 25941d5e0c: fiiom3k (keymap): Allow scrolling up/down in keyboard context
apps/keymaps/keymap-fiiom3k.c [diff]
Christian Soffke
7th Nov 17:48 f07bacac9e: plugin_screen don't save settings on every plugin execution

we shouldn't need to save the last_screen unless the plugin were to bypass the normal shutdown procedure

if its a crash do we really want to resume the plugin? its it is intentional save the settings prior.
apps/root_menu.c [diff]
William Wilgus
7th Nov 07:25 cfbc1cfce1: Shortcuts, allow plugins to run through inbuilt file browser

since the plugin browser now exits before running plugins it has already loaded the dest data for the plugin the plugin will be run from the root menu with the open_plugin run key

BUT, since the calls originated from the shortcuts menu it overwrites the run key with its own this patch allows the shortcuts menu to overwrite the dest key as well so it can run the loaded plugin
apps/root_menu.c [diff]
William Wilgus
7th Nov 06:49 1d67f83c58: root_menu.c fix recent regression for shortcuts add resume for plugins

recent changes broke shortcuts when they originated from the root menu

I mistakenly thought GO_TO_ROOT only happened at start and otherwise was GO_TO_PREVIOUS

this commit also adds a few missing features for Start In Previous to resume the last plugin running at shutdown

Additionally GO_TO_ROOT now overwrites the global last_screen so you can return to the main menu on next startup
apps/open_plugin.c [diff]
apps/root_menu.c [diff]
William Wilgus
5th Nov 13:20 13ac485625: Add single playback mode
(FS #482)
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/lang/hebrew.lang [diff]
apps/menus/playback_menu.c [diff]
apps/pcmbuf.c [diff]
apps/playback.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
manual/configure_rockbox/playback_options.tex [diff]
Moshe Piekarski
3rd Nov 17:28 22c2e0a7c2: Fix: Reset onplay-context for playlist viewer

The onplay-context was previously not reset when using the playlist viewer, which led to a bug if onplay() was last called in the context of the database. If you then tried to insert songs into a dynamic playlist using the playlist viewer, a selected track from the database would be picked, instead of one from the displayed playlist, due to special behavior of add_to_playlist() within the database context.
apps/onplay.c [diff]
Christian Soffke
3rd Nov 17:16 5e663f0420: xduoox3ii: Ignore the remote events when headphones aren't plugged in

This prevents the actual insertion/removal from triggering false events
firmware/target/hosted/xduoo/button-xduoo.c [diff]
Solomon Peachy
1st Nov 01:49 2731144094: exit file browser before running plugins

now that the plugin browser is resumable exit it before running plugins

this causes a problem with the open plugin shortcuts that call other plugins but its now handled in count limited loop so plugins can run plugins in a chain

and overall with less overhead too..

the problem remaining -- the plugin exits on USB, returns to ROOT

the browser resumes the directory next time you select plugins making for an unwanted auto return
apps/filetree.c [diff]
apps/root_menu.c [diff]
William Wilgus
1st Nov 01:36 684565b8f3: USB fix red for device without HAVE_USB_POWER again.
firmware/usb.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
31th Oct 16:42 d72a0ed65d: Use USB events for storing plugin_menu state

use usb connected callback to cancel menu reentry after USB plug/unplug
apps/menus/plugin_menu.c [diff]
apps/tree.c [diff]
firmware/usb.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
31th Oct 16:30 7a6737f471: USB Events fix red on devices without HAVE_USB_POWER
firmware/usb.c [diff]
William Wilgus
31th Oct 16:02 894a9d9063: USB add Insertion and Extraction callback events

We have this nice event library laying around probably a few more places we could use event callbacks
firmware/export/events.h [diff]
firmware/usb.c [diff]
uisimulator/common/sim_tasks.c [diff]
William Wilgus
29th Oct 23:20 0b1c05db40: Have ACTION_TREE_ROOT_INIT cause ACTION_STD_MENU

So that a “scroll left” button can be repurposed for returning to the main menu when there is no existing menu button mapping.
apps/gui/list.c [diff]
Christian Soffke
29th Oct 23:07 139d447c6a: fiiom3k: Modified keymap

see https://forums.rockbox.org/index.php/topic,52917.msg249425.html#msg249425
apps/keymaps/keymap-fiiom3k.c [diff]
Christian Soffke
29th Oct 07:07 dc24a18cef: PLUGINBROWSER make resumable

make the plugin browser remember the last item between invocations

this has bugged me for the longest time dealing with the plugin_menu

Fix a very old bug fix for reloading lang strings in the lang menu
FS #8117, sending multiple ENTER_MENU_ITEM callbacks from different areas of the code makes it hard to keep track of where your callback is originating
apps/menu.c [diff]
apps/menus/plugin_menu.c [diff]
apps/root_menu.c [diff]
apps/tree.c [diff]
William Wilgus
28th Oct 02:44 8ee24d8cb4: onplay calls plugins to run other plugins
apps/onplay.c [diff]
apps/tree.c [diff]
William Wilgus
27th Oct 19:44 f1ef5ab8a6: menu.c do_menu code cleanup

no functional changes here just removal of cruft
apps/menu.c [diff]
William Wilgus
24th Oct 04:12 1cec2c7a73: root_menu fix red for devices with RTC_ALARM but no tuner or recording
apps/root_menu.c [diff]
William Wilgus
24th Oct 03:30 3e10ecb82a: root_menu.c code clean up -- stir the ifdef mess?
apps/root_menu.c [diff]
William Wilgus
23rd Oct 06:45 36d319b084: Open Plugins Ignore hash for lang Ids

no need to look up a hash when we have another searchable field remove some un-needed checks
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
William Wilgus
23rd Oct 03:17 789b2e089e: plugin.h change plugin_open() path and parameter to const

it doesn't modify the args..
apps/plugin.c [diff]
apps/plugin.h [diff]
William Wilgus
22nd Oct 02:28 f4c7dc933d: lua add ability to pass PLUGIN_ ret vals with os.exit() + add defines
apps/plugins/lua/rbdefines_helper.pl [diff]
apps/plugins/lua/rocklua.c [diff]
apps/plugins/lua_scripts/return2WPS.lua [new]
William Wilgus
21st Oct 20:42 1697b13693: whitespace fixes
apps/bookmark.c [diff]
apps/cuesheet.c [diff]
apps/gui/option_select.c [diff]
apps/menu.c [diff]
apps/playlist_viewer.c [diff]
apps/plugins/keybox.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/main_menu_config.c [diff]
apps/plugins/random_folder_advance_config.c [diff]
apps/tree.c [diff]
manual/appendix/config_file_options.tex [diff]
Christian Soffke
21st Oct 07:16 cf96a4d386: file tree filetype_list_viewers exit from list before execution

no need to do a callback just to exit the list right after executing a viewer plugin
apps/filetypes.c [diff]
William Wilgus
21st Oct 05:45 af573708ed: extend filetype_get_plugin() search for viewer by fileext

I noticed the way filetree switch was modified for the lua (and then) opx and open plugin viewers since builtin files are assumed to be handled in the filetree switch what if instead filetype_get_plugin() could search the available viewers

this could probably be extended further with selectable defaults
apps/filetree.c [diff]
apps/filetypes.c [diff]
William Wilgus
20th Oct 20:05 9878226e4d: filetree.c move static and stack allocated buffers around it makes more sense to make the main buffer static and make the second (infrequently needed) buffer as stack allocated
apps/filetree.c [diff]
apps/filetypes.c [diff]
apps/filetypes.h [diff]
William Wilgus
19th Oct 03:30 e1553d860d: Open_Plugin add checksum on struct offsets

Adding a checksum over the struct offset will allow checking for compatibility across machines rather than using packed structs to ensure compability

For any file created by the user from the device this isn't really a concern

But for files between machines, across installs (sim v device), possibly even across compilers this at least will alert the user rather than returning junk data
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/plugins/open_plugins.c [diff]
William Wilgus
18th Oct 22:03 0f68866ae5: fiiom3k: bump power on delay to 200ms

Needed due to a report that 80ms was not working.
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
18th Oct 20:45 957add9d75: fiiom3k: adjust power on delay to 80ms

OST timer fix (7a5130a277) causes a boot failure on some units, the battery voltage reading needs more time to stabilize.
firmware/target/mips/ingenic_x1000/fiiom3k/power-fiiom3k.c [diff]
Aidan MacDonald
16th Oct 20:58 6253cdebed: ErosQNative: Fix mdelay calls due to g3859

The battery stabilization delay call seems to need to be about 170 at minimum now, let's do 190 for safety (+20ms).
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
16th Oct 20:58 7a5130a277: x1000: fix broken OST2 timer prescaler

It turns out the prescaler fields in OST_CTRL are 2 bits wide, not 3. The programming manual (as usual) is ambiguous and its diagram shows 2-bit wide fields, but the bit positions in the text give a 3-bit wide field. Ingenic's Linux code and my own testing shows that they are, in fact, 2 bits wide.

This caused the OST2 divisor to be 16 instead of 4; the OST1 divisor was correct. This means that all udelay/mdelay calls took 4x longer than they should've. After this change the OST2 prescaler will be 4, as intended, and udelay/mdelay calls will wait for the intended duration.
firmware/target/mips/ingenic_x1000/fiiom3k/button-fiiom3k.c [diff]
firmware/target/mips/ingenic_x1000/x1000/ost.h [diff]
utils/reggen-ng/x1000.reggen [diff]
Aidan MacDonald
16th Oct 20:49 bf54002bc1: Fiio M3k UI Simulator: Fix upside-down mapping for volume buttons
uisimulator/buttonmap/fiio-m3k.c [diff]
Christian Soffke
16th Oct 20:14 d085d01f5e: x1000: enable DMA for USB driver

This boosts USB transfer performance a bit, ~10% for reads and
~25% for writes, for large-ish file transfers. Rockbox is still around 33-50% slower than the OF.
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
Aidan MacDonald
16th Oct 20:14 4fc37eb47f: usb-designware: port to new USB API

List of all platforms using this driver:

- Sansa Clip+ (tested, works)
- Sansa Clip v2 (untested)
- Sansa Clip Zip (tested, works)
- Sansa Fuze v2 (untested)
- iPod 6G (untested)
- iPod Nano 2G (untested)
- FiiO M3K (tested, works)
- Shanling Q1 (tested, works)
- Eros Q (tested, works)
firmware/drivers/usb-designware.c [diff]
firmware/export/config.h [diff]
firmware/export/usb-designware.h [diff]
Aidan MacDonald
16th Oct 20:14 24294bda15: usb: ensure RX buffers are a multiple of the packet size

When performing an OUT transfer which is not a multiple of the max packet size, the last packet of the OUT transfer should be a short packet. However, there's no guarantee the host sends the expected amount of data in the final packet.

The DWC2 USB controller handles this case by accepting any size packet and copying it out to memory. So if the packet is bigger than expected, it'll overrun the caller's buffer and Bad Things will happen.

The USB 2.0 spec seems to endorse this behavior. Section 8.5.1 says "an ACK handshake indicates the endpoint has space for a wMaxPacketSize data payload." So it is possible that other USB controllers share the DWC2's behavior.

The simplest solution is to force all USB RX buffers to be big enough to hold the transfer size, rounded up to a multiple of the max packet size. For example, a transfer of 700 bytes would require a 1024-byte buffer if the MPS = 512 bytes.
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_serial.c [diff]
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
16th Oct 20:14 a665c1faad: usb: remove dead code in usb_storage driver
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
16th Oct 20:14 988f244c74: usb: port usb_storage control request handling to new API
firmware/usbstack/usb_storage.c [diff]
Aidan MacDonald
16th Oct 20:14 1b2cc053d3: usb: port usb_hid control request handling to new API
firmware/usbstack/usb_hid.c [diff]
Aidan MacDonald
16th Oct 20:14 3318ba4795: usb: port usb_serial control requests handling to new API
firmware/usbstack/usb_serial.c [diff]
Aidan MacDonald
16th Oct 20:14 77731c3579: usb: port usb_core control request handling to new API
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
16th Oct 20:14 82efb1150e: usb: implement new API with legacy emulation layer

All existing USB drivers now define USB_LEGACY_CONTROL_API to enable the emulation layer.

Control request handlers will be ported in follow-up commits.
firmware/export/config.h [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
16th Oct 20:14 dff8320a5d: usb: add request data argument to all control request handlers
firmware/usbstack/usb_class_driver.h [diff]
firmware/usbstack/usb_core.c [diff]
firmware/usbstack/usb_hid.c [diff]
firmware/usbstack/usb_hid.h [diff]
firmware/usbstack/usb_serial.c [diff]
firmware/usbstack/usb_serial.h [diff]
firmware/usbstack/usb_storage.c [diff]
firmware/usbstack/usb_storage.h [diff]
Aidan MacDonald
16th Oct 20:14 b69d43c247: usb: give USB transfer completion events two data pointers
firmware/export/usb.h [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
16th Oct 19:58 ec164c389c: usb: introduce new control request API
docs/usb-api.md [new]
firmware/drivers/isp1583.c [diff]
firmware/drivers/m66591.c [diff]
firmware/drivers/usb-designware.c [diff]
firmware/export/usb_core.h [diff]
firmware/export/usb_drv.h [diff]
firmware/target/arm/as3525/usb-drv-as3525.c [diff]
firmware/target/arm/rk27xx/usb-drv-rk27xx.c [diff]
firmware/target/arm/tms320dm320/sansa-connect/tnetv105_usb_drv.c [diff]
firmware/target/arm/usb-drv-arc.c [diff]
firmware/target/arm/usb-s3c6400x.c [diff]
firmware/target/arm/usb-tcc.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4740.c [diff]
firmware/target/mips/ingenic_jz47xx/usb-jz4760.c [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
16th Oct 15:04 71cc1e78fd: Open_plugins.c bugfix address of packed struct element

helpful gcc warning after g#3895 change to packed struct
apps/plugins/open_plugins.c [diff]
William Wilgus
16th Oct 14:18 15ee740060: Open Plugins search by langids

On language change Stored plugins may fail to run due to hashing on lang dependent string

allows searching by langid when the supplied key is LANG_PTR

Fixes error on hash flush where previous entry was not restored

Adds routine to update file in-place (for ATA targets) Other targets make a temp file to copy entries

breaking changes: ROCKBOXDIR is no longer hashed since
/.rockbox directory may soon be able to be changed packed attribute added to op data structure -- oops
apps/open_plugin.c [diff]
apps/open_plugin.h [diff]
apps/root_menu.c [diff]
William Wilgus
13th Oct 22:02 6fb942d8ff: skin engine - fail gracefully when %Sx is used on non lang id string

CheckWPS doesn't catch errors involving translated strings Instead of breaking old themes when the langids no long exist return "<ERR>"
apps/gui/skin_engine/skin_parser.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
William Wilgus
6th Oct 22:36 e0468074fe: ErosQNative: Remove duplicate play_last_sample() call

My brain dun goofed, oops
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
Dana Conrad
6th Oct 21:59 c0a59b9a6a: usbstack: Revise usb string descriptor table to use enum values for indices

This makes it possible for macros of conditionally included string descriptors to get a correct index no matter what other usb drivers are enabled or disabled due to the nature behavior of enums.
firmware/export/usb_core.h [diff]
firmware/usbstack/usb_core.c [diff]
James Buren
6th Oct 21:40 4be81c2385: x1000: tweak USB fifo sizes

The old sizes limited the number of usable endpoints and were unnecessarily large.
firmware/target/mips/ingenic_x1000/usb-x1000.c [diff]
Aidan MacDonald
6th Oct 21:31 67d4da5342: ErosQNative: Initialize AIC FIFO to -1

Write -1 to AIC_DR to initialize the "last sample" to -1 in order to prevent power-on clicks.

It appears necessary to completely fill the FIFO, otherwise I was able to get a click out of it, however uncommon it was.

Not only does this prevent a click when first playing a song after power-on, but it also seems to prevent any click at all when powering on - previously, a small click may have been heard when first booting.
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
Dana Conrad
6th Oct 20:31 465c216636: Fix includes in usb_class_driver.h
firmware/usbstack/usb_class_driver.h [diff]
Aidan MacDonald
5th Oct 11:46 3ae6fbc600: x1000: default to sending 0 samples on underflow

Previously it used the last sample, which turns out to be broken. The AIC appears to send out a random non-zero sample continously after boot -- probably because the last sample is uninitialized by the hardware. Disabling playback is supposed to make it send zero samples irregardless of the LSMP bit according to the docs, but it doesn't seem to work this way.

- Change eliminates the white noise heard on the M3K after boot.
- Change has no adverse effects on the Q1.
- Leave Eros Q on the old setting since sending zeros exacerbates clicking due to DAC's automute feature.
firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c [diff]
firmware/target/mips/ingenic_x1000/pcm-x1000.c [diff]
Aidan MacDonald
5th Oct 11:46 fd568d90a4: m3k: don't use mixer controls for volume control

According to a forum user, there's an audible click when changing the volume between -32 and -32.5 dB with some headphones. Fix this by not (ab)using the DAC digital mixer for volume control.

The mixer only provides an extra -6 dB of hardware volume range, so the only side effect is that software volume will now kick in at -32 dB instead of -38 dB.
firmware/drivers/audio/ak4376.c [diff]
Aidan MacDonald
4th Oct 20:42 0a1d25d27a: Sansa E200v1 Bootloader ensure USB unplug is detected
bootloader/main-pp.c [diff]
William Wilgus
4th Oct 20:02 e6740ed562: Sansa E200v1 Bootloader add break statement to exit to load fw
bootloader/main-pp.c [diff]
William Wilgus
4th Oct 14:56 7c67a48332: Sansa E200v1 Bootloader attempt at enabling USB in boot loader

there is a 1MB free region that is used to load the firmware but we shouldn't need that till after a USB connection

so here is my 2nd try
bootloader/main-pp.c [diff]
firmware/core_alloc.c [diff]
William Wilgus
2nd Oct 15:14 75524a7eec: Shanling Q1: default to USB force charging

Force charging must be set or the Q1 will not draw 500 mA from an AC adapter (see 0ca0940f01).
firmware/export/config/shanlingq1.h [diff]
Aidan MacDonald
2nd Oct 14:31 a62fdf4751: scroll engine, allow clipped text in viewport

loosen the requirements on the scroll viewport allow clipped text
firmware/drivers/lcd-bitmap-common.c [diff]
William Wilgus
2nd Oct 14:09 3a89fdee96: x1000: fix hang that may occur in USB mode

Upon getting a USB reset, the USB core will update charging current by calling usb_charging_maxcurrent_change(). On all current X1000 targets this may cause a hang, since changing the charge current involves a blocking I2C transaction.

Eg. if the host issues a reset when we're already configured as part of error recovery, the change from 500 mA -> 100 mA will cause a hang.
firmware/export/config/erosqnative.h [diff]
firmware/export/config/fiiom3k.h [diff]
firmware/export/config/shanlingq1.h [diff]
firmware/usbstack/usb_core.c [diff]
Aidan MacDonald
2nd Oct 14:07 d435bb77b5: Yes/No Screen Keymap: add fallbacks to targets lacking them

With the addition of ignoring unknown actions to the yes/no screen, several (mostly older) targets won't have keys defined to cancel out of the yes/no screen.

Adding fallbacks to standard context to correct this.

Targets: Shanling Q1 - changed, untested (doesn't appear sim has buttons mapped) Sansa Connect - changed, untested (can't figure out sim keys)

HM60x - changed, untested (sim won't build) HM801 - changed, untested (sim won't build) ihifi - changed, untested (sim won't build) MA - changed, untested (sim won't build)

M3 - changed, tested on sim X5 - changed, tested on sim MPIO HD300 - changed, sim tested MPIO HD200 - changed, sim tested (remote not tested) Vibe 500 - changed, sim tested
apps/keymaps/keymap-hm60x.c [diff]
apps/keymaps/keymap-hm801.c [diff]
apps/keymaps/keymap-ihifi.c [diff]
apps/keymaps/keymap-m3.c [diff]
apps/keymaps/keymap-ma.c [diff]
apps/keymaps/keymap-mpio-hd200.c [diff]
apps/keymaps/keymap-mpio-hd300.c [diff]
apps/keymaps/keymap-sansa-connect.c [diff]
apps/keymaps/keymap-shanlingq1.c [diff]
apps/keymaps/keymap-vibe500.c [diff]
apps/keymaps/keymap-x5.c [diff]
Dana Conrad
1st Oct 01:13 95b10ac74e: Add ability to dump cpu boost log to disk, include thread names

0.) B 0 /rockbox/apps/main.c:405 1.) B 1 /rockbox/firmware/kernel/thread.c thread[dircache]:1508 2.) B 2 /rockbox/apps/tagcache.c:4772 3.) U 3 /rockbox/apps/tagcache.c:4793

add logic to show count after log rolls over clean-up
apps/debug_menu.c [diff]
firmware/kernel/thread.c [diff]
firmware/system.c [diff]
William Wilgus
29th Sep 14:54 5883cb4a52: languages: Prefer the translated <dest> over a <voice> that is identical to English

A lot of our translations have voice phrases that are identical to English, even though they are translated in the display text.

In these scenarios, just use the translated text when generating the voice files. These will still be flagged as problems by the translation web site!
tools/updatelang [diff]
Solomon Peachy
29th Sep 14:07 757766e807: languages: Prefer translated <dest> over untranslated english <voice>

When a prase is translated but the voice is not, default to using the translated phrase over the untranslated English voice
tools/updatelang [diff]
Solomon Peachy
29th Sep 10:45 2ebe69b67a: voice: Enable nightly Serbian & Norweigan voice generation.

The general rule is that languages with at least 90% coverage are enabled.
tools/builds.pm [diff]
Solomon Peachy
29th Sep 05:18 cb2ee6b6cb: voice_thread.c ensure cpu gets re-boosted after Q_VOICE_STOP event

when the voice system is doing queued voice clips you can get a voice_stop event which cancels the cpu boost but the quiet count was not reset to 0 next clip may play unboosted causing stuttering

just boost unconditionally on Q_PLAY it'll unboost after timeout if unneeded
apps/voice_thread.c [diff]
William Wilgus
29th Sep 05:17 b662ff945a: Bugfix AS3525 usb driver unboosted the cpu without first boosting it
firmware/target/arm/as3525/usb-as3525.c [diff]
William Wilgus
29th Sep 04:53 4f450b6e11: Revert "Playlist Viewer: Add file properties to playlist entry menu."

This reverts commit 67716c6b46a7780bff6b80408b3452c01bfbfdc4.

Reason for revert: Only partially working on bare-metal ports, so revert this for now.
apps/playlist_viewer.c [diff]
James Smith
29th Sep 04:53 a7f2d1ffb4: Revert "Fix the build for 67716c6b."

This reverts commit 483563a1b2cd5d463557580498d75a693dd79077.

Reason for revert: Only partially works.
apps/playlist_viewer.c [diff]
James Smith
29th Sep 01:58 eeacffbd15: voice: Allow voiced date format to be overridden

This adds LANG_VOICED_DATE_FORMAT, a format string with these tokens:

Y 4-digit year A Month name m numeric month d numeric day of month

The default (english) is '23 January 2013' In comparison, english-us is 'January 23 2013'
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/talk.c [diff]
Solomon Peachy
28th Sep 21:25 70e72e01d2: talk: Add support for languages that swap the tens position in numbers

For example, English would say "231" as "two hundred thirty one" but many other languages would say "two hundred one and thirty"

So, if VOICE_NUMERIC_TENS_SWAP_SEPARATOR is not an empty string, swap the tens and ones position and use that string ("and" in the above example) as the voiced separator.
apps/lang/dansk.lang [diff]
apps/lang/english-us.lang [diff]
apps/lang/english.lang [diff]
apps/talk.c [diff]
tools/updatelang [diff]
Solomon Peachy
28th Sep 21:25 3cc7509e81: voice: Add default presets for Danish.

(The language remains <75% translated)
tools/voice.pl [diff]
Solomon Peachy
28th Sep 05:27 fe5c1c8126: Revert "voice_thread.c ensure cpu gets re-boosted after Q_VOICE_STOP event"

This reverts commit 4695f80230f0d3e3eb03a4d9aade5253e2d51862.

Reason for revert: Something else is unboosting the thread this is a red herring
apps/voice_thread.c [diff]
William Wilgus
28th Sep 03:36 4695f80230: voice_thread.c ensure cpu gets re-boosted after Q_VOICE_STOP event

reset quiet counter after Q_VOICE_STOP

when the voice system is doing un-queued voice clips you can get a voice_stop event which cancels the cpu boost but the quiet count was not reset next clip will play unboosted causing stuttering
apps/voice_thread.c [diff]
William Wilgus
26th Sep 22:27 6d98c9e6b2: ErosQ Native: Adjust battery % scale

Adjust the battery scale to be a little better. I've set the 100% (discharge) point to be where the battery sags to when it is done charging but still plugged in.

Not quite sure how best to set the charge scale, it's just equal to the discharge scale for now.
firmware/target/mips/ingenic_x1000/erosqnative/power-erosqnative.c [diff]
Dana Conrad
26th Sep 13:31 38b2648f48: win32: Add a stub for os_modtime() to make sim builds happy
firmware/target/hosted/filesystem-win32.c [diff]
Solomon Peachy
21st Sep 00:14 412e76b487: configure: --no-ccache must disable CCACHE for $HOSTCC too!

Accomplish this by setting CCACHE_DISABLE=true
tools/configure [diff]
Solomon Peachy
20th Sep 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
20th Sep 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
20th Sep 03:28 483563a1b2: Fix the build for 67716c6b.
apps/playlist_viewer.c [diff]
James D. Smith
20th Sep 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
20th Sep 01:06 5765deb08e: Add Fabrice Bellard to the CREDITS.
docs/CREDITS [diff]
James D. Smith
20th Sep 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
20th Sep 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
2021-05-07 adff45ca21: lua -- temp loader

fix a few bugs, improve memory usage
apps/plugins/lua/include_lua/create_kbd_layout.lua [diff]
apps/plugins/lua/include_lua/menubuttons.lua [diff]
apps/plugins/lua/include_lua/menucoresettings.lua [diff]
apps/plugins/lua/include_lua/printtable.lua [diff]
apps/plugins/lua/include_lua/temploader.lua [diff]
apps/plugins/lua/rockaux.c [diff]
apps/plugins/lua_scripts/print_lua_func.lua [diff]
William Wilgus
2021-05-06 15ad1c42db: X1000: simplify NAND driver

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

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

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

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

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

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

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

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

updated example script and renamed some functions as well

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

add stylized lines to lua

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

put_line is the way rockbox builds menus

update printtable

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Off by one errorS in the matrix plugin

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

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

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

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

Including direct use of the external SD card mount

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HAE_ALSA_32BIT -> HAVE_ALSA_32BIT
firmware/target/hosted/pcm-alsa.c [diff]
Solomon Peachy
2021-04-09 54fcb907c1: alsa: instead of per-target tests, use HAVE_ALSA_32BIT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tested on ErosQ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Enable its use in the jz47xx MIPS targets.

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

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

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

Tested and working on the FiiO M3K.
firmware/drivers/fat.c [diff]
Aidan MacDonald
2021-03-26 f00eea4434: ErosQ: Fix text entry keymap

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

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

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

This reverts commit 3a5c5edbf6cb3ac5e4b65fe036ca50b41fabaa89.

Reason for revert:pulling in system.h breaks SDL

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

-- apparenty 0x4 aligned doesn't work properly

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

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

This reverts commit ffee661ab70e9622a05c9c2f24ecf474dad8f042.

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

-- apparenty 0x4 aligned doesn't work properly

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

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

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

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

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

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

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

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

Tested on erosq

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

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

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

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

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

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

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

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

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

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

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

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

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

tested on erosq

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

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

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

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

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

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

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

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

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

(as per multiple user requests)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LANG_SAVE_DYNAMIC_PLAYLIST refers to dynamic playlists.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

It should be:

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

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

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

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

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

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

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

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

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

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

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

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

fix bug in talk.c

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Discovered on ClipZip but applicable to other LOW MEM targets

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

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

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

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

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

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

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

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

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

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

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

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

Some flac encoded files contain junk that our decoder picked up

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This failed twice:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Change audio_load_albumart to pass through error messages from bufopen.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

It's not large enough on some targets.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Split internal configuration into player specific and common parts. Always require passing the player for player specific data instead of implicitly assuming the currently selected one; only use the currently selected one if the player name is explicitly passed as empty.
- Similarly adjust handling of server info data; prepare for splitting into build type specific values so the naming becomes cleaner.
rbutil/rbutilqt/base/autodetection.cpp [diff]
rbutil/rbutilqt/base/bootloaderinstalls5l.cpp [diff]
rbutil/rbutilqt/base/rbsettings.cpp [diff]
rbutil/rbutilqt/base/serverinfo.cpp [diff]