• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by lostlogic - 2006-01-07
Last edited by lostlogic - 2006-01-21

FS#2889 - AB repeat mode on swcodec

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

* 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 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).

Closed by  lostlogic
2006-01-21 23:48
Reason for closing:  Accepted

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.

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.

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.

Anonymous Submitter commented on 2006-01-13 21:42

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.

Anonymous Submitter commented on 2006-01-13 21:45

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.

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.


Available keyboard shortcuts


Task Details

Task Editing