Rockbox

Tasklist

FS#2889 - AB repeat mode on swcodec

Attached to Project: Rockbox
Opened by Brandon Low (lostlogic) - Saturday, 07 January 2006, 06:15 GMT
Last edited by Brandon Low (lostlogic) - Saturday, 21 January 2006, 23:48 GMT
Task Type Patches
Category
Status Closed
Assigned To No-one
Operating System
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

This patch adds AB repeat mode for SWCODEC platforms.

The existing AB repeat code was sufficient for the
majority of this.

Changes are:

* exporting the event handling function on SWCODEC
platforms so that playback.c can call it instead of the
event queue on the HWCODEC platforms.

* the draw arrows function used the old lcd access
functions instead of going through a screen struct.
this caused issues on platforms which support multiple
screens

* added single button AB repeat rather than having a
separate repeat mode for AB. This part of the patch is
optional, and can be removed without too much trouble,
but can also be activated on a per-platform bases with
AB_REPEAT_ENABLE=1 vs AB_REPEAT_ENABLE=2. This type of
AB repeat is more similar to iRiver firmware, and
allows the user quicker access to the feature without
sacrificing anything.

On iRiver platforms this is enabled in single button
mode with the button being BUTTON_REC (as that is the
free button in the WPS).
This task depends upon

Closed by  Brandon Low (lostlogic)
Saturday, 21 January 2006, 23:48 GMT
Reason for closing:  Accepted
Comment by Brandon Low (lostlogic) - Saturday, 07 January 2006, 16:29 GMT

Per discussion with Ray on the mailing list, I've
incorporated the original functionality with the new to
allow users to move markers once set without resetting both.

BUTTON_REC still activates the mode and sets the A marker,
and another press sets B and a third press unsets both.
Once a marker is set, BUTTON_REC + BUTTON_LEFT resets the A
marker and BUTTON_REC + BUTTON_RIGHT resets the B marker,
and BUTTON_REC + BUTTON_STOP unsets all markers (which can
also be done by having both set and pressing just BUTTON_REC.

Similar to seek vs. skip functionality, it is the release of
the button that triggers the single button functions, and
the previous button press must match.
Comment by Brandon Low (lostlogic) - Friday, 13 January 2006, 16:33 GMT

Fixed the AB_REPEAT_ENABLE=1 mode on targets with an
WPS_AB_SINGLE button define. Wasn't completely disabling
the feature when it should have been off.
Comment by Brandon Low (lostlogic) - Friday, 13 January 2006, 18:54 GMT

Inlined the functions that are called for every position
update, because that is 1) a very small amount of code and
2) performance sensitive.

Making this work with the header files involved some
#include changes in files far from the patch. Not sure what
the deal with that was. I compile tested the final version
patched against clean CVS with AB_REPEAT_ENABLE unset, 1 and
2 and functional tested it with 1 and 2.
Comment by Anonymous Submitter - Friday, 13 January 2006, 21:42 GMT

on version 4 of the patch there is a small bug with browsing
: when you press play to return to WPS, the repeat points
are lost.
Comment by Anonymous Submitter - Friday, 13 January 2006, 21:45 GMT

on version 4 of the patch there is a small bug with browsing
: when you press play to return to WPS, the repeat points
are lost.
Comment by Brandon Low (lostlogic) - Friday, 13 January 2006, 22:08 GMT

Version 5:

Make AB repeat seemless thanks for the idea from Shebb on IRC.

This works fine and sounds like it picks up the right places
to repeat around, BUT the UI looks wrong, because when the
codec says "I just decoded X" the UI displays X-pcmlatency.
This makes it look like the audio loops pcmlatency before
it does.

Loading...