1
0
Fork 0
forked from len0rd/rockbox
Commit graph

16287 commits

Author SHA1 Message Date
Christian Soffke
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

Change-Id: Ie2718e136df0b340000f7a171e9e806cf23a27b4
2021-02-17 11:34:59 +00:00
Christian Soffke
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.

Change-Id: I73b7bd56e6399f9be4bb000bae39c8b6a5e1b79b
2021-02-17 11:33:25 +00:00
Christian Soffke
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.

Change-Id: I68a8da01b06a81d8c3b61e351710431152bfdfaa
2021-02-17 11:32:32 +00:00
Georg Gadinger
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.

Change-Id: I69ab175b6c46dd7567386e649732dbb8327972fc
2021-01-27 18:21:31 +01:00
Moshe Piekarski
befae2909f Make delete_file_dir() more threadsafe
This should fix FS#13263

Change-Id: I3527210117c716ab2133d6dc79597285d6e543e1
2021-01-21 14:27:06 +00:00
Michael Giacomelli
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.

Change-Id: I66799ae26f124b495e1522fce7285332f4cf986f
2020-12-25 17:47:19 +00:00
Solomon Peachy
c842a13651 voice: Fix accidental warnings
Change-Id: I9663b4febd60c79a533ace1bad593c543c7dcf1d
2020-12-17 13:29:58 -05:00
Solomon Peachy
1aaa2824b6 voice: Increase voice thread stack size on hosted targets
Fixes a stack overflow on Sony NWZ players when loading the voice file

Change-Id: Id545517b827e757922b4cde043763ee7316435e6
2020-12-17 13:11:43 -05:00
Michael Giacomelli
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.

Change-Id: Ic8850e8563a9d8c0cb3cf8269e2576be9e42b45b
2020-12-14 04:14:45 +00:00
Solomon Peachy
da1fbb6d1a skinengine: Make sure logical IF operator doesn't compare a garbage value
Change-Id: I125bea3c2659326b92eec027cddf0d041f10ebda
2020-12-13 19:21:13 -05:00
Solomon Peachy
b6a16949e8 playlist: Fix out-of-bounds array access when the directory is blank
Change-Id: Ibf59f8191f1f26cf97c5d3ffcb5e3e4c7304bca0
2020-12-13 19:20:38 -05:00
Solomon Peachy
ce7731527a announce_status: Fix incorrect function prototype definition
Change-Id: I053b4e3df194ac9dd2172249c0f4902d31a6d412
2020-12-13 19:19:33 -05:00
Solomon Peachy
afad2c1dcc FS#13261: Update Dutch Translation (Issa Beganović)
Change-Id: Ie8c6c5dc0d70bf214017590789a543faa2f5bc9f
2020-12-12 13:43:10 -05:00
Georg Gadinger
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.

Change-Id: Id6a7bd8f74864641ea1670fedea9d12d764e78c0
2020-12-12 05:36:42 +00:00
Solomon Peachy
b339400531 voice: Last commit didn't work from a clean build.
Change-Id: Ib1abe1ae365d211b99fdaaf5f20a516dcc5cb167
2020-12-11 16:26:27 -05:00
Solomon Peachy
227ac2b715 voice: Add voice-corrections.txt to voicestrings.zip
This is in keeping with un-hardcoding stuff from rbutil.

Change-Id: I8409c203bbe378a2cb9994ac0a327e9a324ff52d
2020-12-11 16:15:02 -05:00
Solomon Peachy
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.

Change-Id: I308b551e627d63142ec8871ccfb72b6036eff3d2
2020-12-11 15:35:12 -05:00
Solomon Peachy
52d437b33e FS13260: Updated Polish Translation (Adam Rak)
Change-Id: If3f25abccc2a29e5a5745e36c18de762bcb3e354
2020-12-09 23:46:32 -05:00
Franklin Wei
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.

Change-Id: Ib0803462684b8ae3b40eec3742944e5bdb28508e
2020-12-07 02:11:36 -05:00
Franklin Wei
b7ce408f65 puzzles: update frontend for new midend_get_cursor_location semantics
midend_get_cursor_location now returns a bool indicating success.

Change-Id: Ie3e7130a821b6619c829846177baf2cc6b51e3a3
2020-12-07 02:11:32 -05:00
Franklin Wei
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.

Change-Id: I6a5ac60821fce346c500b101c363ae0c63c2ee95
2020-12-07 02:08:18 -05:00
Solomon Peachy
25529e4fe0 lang: More automated rejiggering, USB_MODE_* is no longer ibasso-specific
Change-Id: I8e7eb3bb3c5ed61572c0ade4059c3e3527558932
2020-11-22 14:45:16 +00:00
James Buren
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.

Change-Id: I5d756cc01dc6225f5cc8b6af90911a3fc7b57cd5
2020-11-22 05:12:04 +00:00
Solomon Peachy
b7b0c7c648 languages: convert recording_swcodec -> recording
Change-Id: I481a53284d63457717f4a6524edc5b477f29a20a
2020-11-19 09:52:37 -05:00
Solomon Peachy
6d62a7a1bd Clean out some obsolete strings from the Russian translation
Change-Id: Ic0878ae5d8e5d12c803702f3c069a1d1a3a74ef8
2020-11-19 09:52:05 -05:00
Solomon Peachy
20774d88b5 Update english-US language
Change-Id: I0a20e76d2e5267eb15e85dac0cd1f524eafe0415
2020-11-17 11:06:13 -05:00
Solomon Peachy
170f72156b lang: Drop all deprecated strings, and rename LANG__NEVER to LANG_NEVER
Change-Id: Ie1a1cb04ecb566b75d9884b98a8c4e37a4e8736f
2020-11-17 11:06:13 -05:00
Solomon Peachy
7ff3c94e13 lang: Make all swcodec &| lcd_bitmap strings default.
Change-Id: Id0a3282884c3e258c5b2f24b35aa7e618a8e8bbe
2020-11-17 11:06:09 -05:00
Solomon Peachy
63691ad106 Fix the fix, which managed to make things _worse_
Change-Id: I91b6bc71cf1d5c4cf06d839dfa783cb799756b77
2020-11-16 12:55:33 -05:00
Solomon Peachy
3e32521be5 Fix the red introduced in 9c68c69
Change-Id: I5f3e3ddd5bc11b8d58e5c05ec3bf7171537c016d
2020-11-16 12:35:47 -05:00
Solomon Peachy
9c68c69cf0 FS13257: Fix inconsistent defaults in the USB mode selection
Change-Id: I44894d13f070313ad326ce68018556573e35aad9
2020-11-16 17:11:38 +00:00
James Buren
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.

Change-Id: If96531ba63cf4401d04133bda94735fe94ae4de1
2020-11-16 11:57:18 +00:00
Moshe Piekarski
3ef8455626
Remove some SWCODEC artifacts
Change-Id: I580522bc0ec3bc86c24400625d7d9cde2eea8fc8
2020-11-14 19:20:33 -05:00
James Buren
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.

Change-Id: I06a283f9f44118080a106e1bcd410e81e0a48d92
2020-11-14 23:21:15 +00:00
James Buren
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.

Change-Id: I0db406912c7f71835576203a540aba8910afa849
2020-11-14 18:47:12 +00:00
Solomon Peachy
03cd773051 ibasso: Hopefully hack usb into building again.
Change-Id: I6f369d60319704ab4d2c18b80ba6e78902630790
2020-11-13 20:04:04 -05:00
William Wilgus
43f90746d5 synclist add method for setting selection color
Change-Id: I8c8761d92f4fc99f65d45098ee6e97800d3fe002
2020-11-14 00:01:39 +00:00
Solomon Peachy
60f581e8f5 usb: Add ability to prompt user about what to do upon usb insertion
v3: Add in config option
 v4: Bugfixes
 v5: Force a redraw upon exiting
 v6: keypress-in-chargeonly mode enables mass storage (and vice versa)
 v7: Fix bootloader builds
 v8: Update manual, and have bootloader respect keypresses
 v9: Change default to mass storage (ie no change in behavior)

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

Change-Id: I82e0ccb08497b7a5aa756ce77f1332ee963703a7

...

Change-Id: I7946cf240b18a4fa8ace5e25e1eb6e97b8b12d7c
2020-11-13 16:44:01 -05:00
William Wilgus
6c3cc1cbb9 Skin_engine optimize element switches
it takes a lot of code to check validity and dereference a pointer for every numeric tag branch in get_token_value

apparently about 900 bytes actually

Change-Id: If463e755e9bbc73cbd4a02441572d22df9206121
2020-11-13 19:14:56 +00:00
Moshe Piekarski
362f7a3220 Quickscreen: don't apply glabal settings
Change-Id: I4de0e35b4c3227513f9c384bc0e01bc468999317
2020-11-12 21:23:57 +00:00
Solomon Peachy
b912ad5088 plugin: Un-export find_next_frame()
No in-tree users

Change-Id: I898623253e43507e9fb9df965be45568ff33880d
2020-11-12 16:23:27 +00:00
Solomon Peachy
388adff3cc pcm: Further cleanup of unused bits of the PCM ACPI:
* pcm_get_bytes_remaining()
 * pcm_calculate_peaks()
 * pcm_get_peak_buffer()

Nothing in-tree uses these at all (except for the lua plugin wrapper)

Change-Id: I971b7beed6760250c8b1ce58f401a601e1e2d585
2020-11-12 15:59:09 +00:00
William Wilgus
1a68856f52 Rocker Add WPS and Tree Hotkey, button codes in debug menu
VolUp+VolDown becomes the wps and tree (file browser) hotkey

Change-Id: I0cba96927420c318506bc0c15dabcb809cd81647
2020-11-12 01:22:32 -05:00
Igor B. Poretsky
4e5499606b Russian translations update
Change-Id: I9fbc26afba11dfc170abefd11bd28492f04009b0
2020-11-11 22:25:51 -05:00
Igor B. Poretsky
b7560ce0af Czech translations fix
Change-Id: Iafd2cb15a2935654e6a13489180bea31efbe54a0
2020-11-11 22:25:47 -05:00
Igor B. Poretsky
b8ada839ee Voice strings fixes
Change-Id: I27729b57ee6070443d3c98852812ae6d7581d8f8
2020-11-11 22:25:39 -05:00
Solomon Peachy
869a8bfbe7 YesNo: Clear the button queue so a latent keypress doesn't skip the prompt
Change-Id: I055db211f3cceb38b2df00177451c08a3da33426
2020-11-11 15:39:06 +00:00
James Buren
4aa749b59d iriver_flash: refactor code to be easier to understand
This overhauls most of the code to be easier to understand in terms
of the interactions with the flash. I found the original to be rather
confusing with how it kept switching between byte and word offsets.

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

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

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

Additionally some functions were merged with other functions in order
to reduce the amount of functions as well as consolidating common
code fragments.

Change-Id: I4698e920a226a3bbe8070004a14e5848abdd70ec
2020-11-11 13:30:09 +00:00
Marcin Bukat
bb7aa6f311 rk27generic: keymap tweaks
Change-Id: Ic3a5f2a8b676a6e81106231197f72d4f59f01497
2020-11-04 13:20:24 +00:00
Mihail Zenkov
b200cd7e4a test_mem: fix asm variant of read/write test
Change-Id: I865691e7540d4a6d18be34e8b81d0b3056837fa0
2020-11-04 13:00:01 +00:00