Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Ensure ci is properly updated if seeking before track load completes

If in the middle of a manual skip, playback would try to seek, and
therefore start, the codec before the audio handle was available.
This wasn't really a problem since the codec would just bail out
and be retried later. But, it is a problem for a change I was working
on with seeking where the codec could get caught in a full-speed
loop trying to seek itself (stoppable, not lockup).

The main side effect of this change that you may notice, if using an
HDD with dircache turned on and the disk is not spinning, is that you
can keep holding down prev/next if dir skipping and the WPS will
start FF/RW mode. By the time the new track shows up, you will have
seeked into it some amount.

Well, the PBE is getting the info ASAP anyway and as far as it's
concerned, the next track is under way. On that end of things, it's
correct. Perhaps WPS should lock out its own seek mode at certain
times.

Change-Id: Ifc7409a886df399cec189d1bae2adba3872e857a

+4 -2
+4 -2
apps/playback.c
··· 2904 2904 2905 2905 /* Track must complete the loading _now_ since a codec and audio 2906 2906 handle are needed in order to do the seek */ 2907 - if (cur_info->audio_hid < 0 && 2907 + bool finish_load = cur_info->audio_hid < 0; 2908 + 2909 + if (finish_load && 2908 2910 audio_finish_load_track(cur_info) != LOAD_TRACK_READY) 2909 2911 { 2910 2912 /* Call above should push any load sequence - no need for ··· 2914 2916 break; 2915 2917 } 2916 2918 2917 - if (pending == TRACK_SKIP_AUTO) 2919 + if (pending == TRACK_SKIP_AUTO || finish_load) 2918 2920 { 2919 2921 if (!bufreadid3(cur_info->id3_hid, ci_id3) || 2920 2922 !audio_init_codec(cur_info, ci_id3))