Commit graph

35423 commits

Author SHA1 Message Date
Solomon Peachy
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.

Change-Id: I4112b9acb965973d81f70483bd9d595461c7301c
2021-03-12 10:04:52 -05:00
Caleb Connolly
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 <caleb@connolly.tech>
Change-Id: I0d0d02aa30caffcae4a7e8c805516a1266eef359
2021-03-12 14:39:03 +00:00
Christian Soffke
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.

Change-Id: I717bab9d26a9a08fb95083b67a779541e00a0fd3
2021-03-11 19:43:48 +00:00
Christian Soffke
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.)

Change-Id: If320b3c804bb98fccb2e945ae1a30ffc92673c7e
2021-03-11 19:43:48 +00:00
Christian Soffke
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.

Change-Id: I0f8300140fa23321d362d2a75dfaf82be0b4b12a
2021-03-11 19:43:48 +00:00
Christian Soffke
49c230f630 Manual: fix spelling
Change-Id: Ief54632bd3c6e672e0574226f5d7edf760b43875
2021-03-11 19:43:48 +00:00
Solomon Peachy
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.

Change-Id: Ia13e2405243fe5efe6f68c3a549ab4933567790b
2021-03-11 19:28:52 +00:00
William Wilgus
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

Change-Id: I72da326967c7b404b297897000f82852661a7ebb
2021-03-11 03:43:56 +00:00
Solomon Peachy
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.

Change-Id: I22d4eac3bfe1573b50eca795cf377bdafdeb5336
2021-03-10 21:35:44 -05:00
Solomon Peachy
a87abdb28f Special-case the storage names for hibylinux-based hosted targets
Change-Id: I66a4eebe244e9656f851d83aae0346af4367728f
2021-03-10 19:01:42 -05:00
Solomon Peachy
7201c3a685 fiiom3klinux: Fix a build warning.
Change-Id: I1355c87d17376422d54b259db2078ea5f886bedb
2021-03-10 19:01:12 -05:00
Solomon Peachy
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.

Change-Id: I2f7672acbb36341becf67e07960c24c681270d09
2021-03-10 18:29:29 -05:00
Christian Soffke
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.

Change-Id: I806ed46a7315293d7d20f29ed004cc8ab58cdcb7
2021-03-10 14:10:25 +01:00
Christian Soffke
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")

Change-Id: I2bbeabad6d24673c46d3322529478c4a7a61ca88
2021-03-10 14:10:25 +01:00
James Buren
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.

Change-Id: I9c8420e81897f1f6caaa55ffacc7525589f1ef75
2021-03-10 04:09:46 -06:00
Aidan MacDonald
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.

Change-Id: I5dcc4ca711b774166f83c668695edbcabfab2604
2021-03-09 20:04:30 +00:00
Solomon Peachy
4e6609e9f2 Update english-US translation.
Change-Id: I9906b6a7033e49d56f480ae80188a7154d2f7560
2021-03-09 12:24:54 -05:00
Christian Soffke
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.

Change-Id: Ic6e03e4adbd811e28b5cfeba36b64c5e8a7db2f9
2021-03-09 15:10:58 +00:00
William Wilgus
f4b891e408 Shortcuts Menu -- remove debug statements
Change-Id: I4ad370088a6b1da188611ae335fcd7a7e3a57f90
2021-03-09 09:48:10 -05:00
William Wilgus
f348d921b6 Shortcuts Menu -- Update2
make shortcuts menu drop back into WPS on exit
different icons for plugins and files versus folders

Change-Id: I1b590c223b63a6b6598c33e767738daaea1c8ad0
2021-03-09 13:26:56 +00:00
Solomon Peachy
d0ab6b24dc Updated Italian translation (Alessio Lenzi)
Change-Id: I93acf9d934429dadbc397e53555ae5b16c349b07
2021-03-09 06:28:17 -05:00
Christian Soffke
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.

Change-Id: I10a2a93da644932033e01ffbfd85cad20abb555d
2021-03-09 11:26:05 +00:00
Christian Soffke
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.

Change-Id: I4494c83a502666900f6d9d2cc3fb1825af5e45f6
2021-03-09 11:18:47 +00:00
Christian Soffke
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

Change-Id: Ib5c5469b9e2c583ab06e0f47a922c24e5adf6b5f
2021-03-09 11:18:22 +00:00
William Wilgus
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

Change-Id: Id7013a514c8e8862ee1da44b033d10b7519e9127
2021-03-08 22:17:41 -05:00
Solomon Peachy
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...)

Change-Id: I0cac31d24c0ef684b934e40ab14f683cc4a31738
2021-03-07 19:42:54 -05:00
Solomon Peachy
7c58b6f0db usb_mode: Missed a #define that led to some sim build failures.
Change-Id: Ie872c5684a200bf99ee7083bb35700a663ef9788
2021-03-07 23:31:36 +00:00
Solomon Peachy
bbd85cf0c1 settings: Fix inconsistent #ifdefs wrapping the usb_mode stuff
It should be:

 #if defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)

Change-Id: I49355d56834de3893a9a244793b39f662c27f136
2021-03-07 23:12:41 +00:00
William Wilgus
9712d375ce Shortcuts.c -- Update
Fix returns from shortcuts -- should now run plugins
Fix formatting of file names to remove path from browser shortcuts

Change-Id: I46e337110d04b84bedcb0c2945d5dd29a1860847
2021-03-07 10:07:49 -05:00
William Wilgus
0dce973729 OpenPlugins Allow opx shortcuts
Allow opx shortcuts to be run through the shortcut menu

Change-Id: I6597b9485dfb224766c442257c4d9c8ac02eece4
2021-03-07 08:22:01 -05:00
Solomon Peachy
207514fb25 voice: Allow voice prompt volume to be configurable
It defaults to 100%, allow it to be dialed back

Change-Id: If997fb7d3057472a7fac0be4ae7d1e8fce654c49
2021-03-07 12:51:36 +00:00
Solomon Peachy
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.

Change-Id: I7d296b3cc814871e881bdeac2784e64705bde10b
2021-03-07 04:10:47 +00:00
William Wilgus
308dd4ffee Open_plugins.c fix red
rb->strncasecmp

Change-Id: Icb1e6d0db42bd4708d581e80596604fb97578761
2021-03-06 18:00:18 +00:00
William Wilgus
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

Change-Id: Ifeb0a1e5be99764b1d25d5a3b0e00f1449ec3d78
2021-03-06 17:21:37 +00:00
James Buren
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.

Change-Id: Ia7a7dd9b9d476dd9df5a5f5becabc5ae823e9a89
2021-03-06 04:15:02 +00:00
William Wilgus
9cf45374e0 Announce_status plugin bugfix use artist prior to albumartist
give id3->artist higer precedence than id3->albumartist

Change-Id: I7f57ea274211673c04bf23458735796b03031a15
2021-03-05 21:12:10 -05:00
Solomon Peachy
bac897381c updatelang: Handle/flag the bad data that led to english-us breaking
Change-Id: Ifffea9557d50ab5a103e13473ebe074ae1aa7b6d
2021-03-05 17:43:32 +00:00
William Wilgus
0c958d2b4a announce_status trackchange bugfix
!Properly remove callback!
don't play voice prompt at startup if something is actively playing

Change-Id: I237d09c1496bc2bed8433dcdaa1469f3d0f2cb10
2021-03-05 17:37:57 +00:00
Solomon Peachy
83111eeece English-US language had some issues that caused it to fail.
Change-Id: I29d27ccb3b972393b234a0ace3f22d4b6c223a20
2021-03-05 17:20:25 +00:00
William Wilgus
925dc59126 OOM on Audio_Reset_Buffer
Allow the talk file to be unloaded

Change-Id: I7633c213f1bf7135894aed43171ea683e2867954
2021-03-05 00:11:08 -05:00
William Wilgus
895ed92496 Talk.c, playlist.c fix bugs
fix bug in talk.c

playlist.c only dump voice buffer if we are out of space

Change-Id: I75705d755db4193a87e542d062dbdc96b153dbb6
2021-03-04 23:31:32 -05:00
William Wilgus
03ae4e6019 Announce_status plugin make USB plug aware
Announce_status was blocking USB from working it now quits on USB plug

Change-Id: I0b7e5e9c1ef118582febd459e706c9b61cf7fe25
2021-03-04 22:55:39 -05:00
William Wilgus
10b6707131 Talk Fix outright disable after first clip
Oops Sorry bout that ;P

Change-Id: I2618e2565a218dd5640351dfef3b7cc2a64617d4
2021-03-04 21:57:21 -05:00
William Wilgus
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

Change-Id: Id66dba6dbd6becfc9e0fe922fbc1d0adec1f0393
2021-03-05 02:22:20 +00:00
Solomon Peachy
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.

Change-Id: Ia52b99fca802f495422b5ee097390a72dbc28f61
2021-03-04 17:37:51 -05:00
Christian Soffke
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.

Change-Id: I03bb05f6f6401bb8f0da5d0b76bd3f07681fdc06
2021-03-04 16:50:50 -05:00
Aidan MacDonald
fb99d890a8 Fix typo in MIPS cache discard
Change-Id: I6a06e5f3098324d985bd59322755cd68122ec0bf
2021-03-04 19:39:28 +00:00
Solomon Peachy
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)

Change-Id: If47a7f2148a5a1a43777f0bd3be1bdfe8239e91e
2021-03-04 12:00:15 -05:00
Solomon Peachy
bcee955169 rolo: use audio_hard_stop() instead of audio_stop()
This kills the audio thread entirely, including voice stuff.

Change-Id: Id6fd58a97d5a57285016351bbfd3e843b2f339f2
2021-03-04 09:49:38 -05:00
William Wilgus
a4a5f5f33f Check core max allocations for valid handle
fix rolo warnings

Change-Id: Ia2c669a5517aec54e5b2c0dc5934c88a4f49f2a9
2021-03-04 14:25:58 +00:00