• Status Unconfirmed
  • Percent Complete
  • Task Type Patches
  • Category User Interface
  • Assigned To No-one
  • Operating System Cowon D2
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.4
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by andrewthecoder - 2009-10-21

FS#10698 - Cowon D2: Tactile button functions with hold switch on

This has been (slightly) discussed before, but this is a new take on the matter, not a repeat of  FS#10683 .

With this patch applied, the following functionality is recognised with the hold switch in place:

On any list/menu screen or the while playing screen;
pressing MINUS decreases volume by one,
pressing PLUS increases volume by one,
pressing MENU switches between Play and Pause,
holding MINUS skips back a track,
holding PLUS skips forward a track,
holding MENU advances to the next folder.

I feel that anybody using a Cowon D2 will find this functionality essential, not only because it is present in the original firmware, but because it is necessary for in-pocket operation.
With a small DAP like this, with tactile buttons as well as a touch screen, it makes sense to maximize convenience.

I have added as much functionality as I could without requiring pressing multiple buttons at once. I have made several similar patches and built them for members on the iAudiophile forums, and this configuration has consistently been the most popular.

I welcome any comments/suggestions.

As an owner of D2 (without RB yet), I think this is a 'can't live without' feature.

this is an almost definite "not gonna happen" feature :) the hold button shouldnt be used as a modifier… it should be used to lock out input so you dont accidently track skip and stuff…

@JdGordon, the OF already has this feature on the D2, so users aren't going to be confused by this behaviour (and indeed will expect it). It especially won't be aproblem if it's behind a "enable track skipping on hold" menu setting, disabled by default. I cannot for the life of me see a problem with that.

lets move this discussion to the dev mailing list… My immediate answer to that point though is we dont try to emulate the OF on any targets, prime example is the ipods menu button works completly differently in the OF (although their usage is retarted…)

This isn't simply as trying to emulate the OF's button usage - it's a useful feature in the OF, which Rockbox is capable of providing. I thought one of the Rockbox goals was to become a complete OF replacement?

But yes.. a dev ML thread is needed. Right now I need sleep, I'll kick it off tomorrow.

One possible way to do this, which might be globally useful for rockbox on other/all devices, would be to have an option that defines Hold switch behaviour:
1. Lock out all input
2. Lock out touchscreen only (on touchscreen devices) / lock out scrollwheel only (on scrollwheel devices) - keeping buttons enabled


There's a lot of work,but i think it's worth it.
Will post code here for menus,then would port it on other targets.

Here's patch with added menus.
I'm used the HAVE_MUSIC_CONTROL_IN_LIST define to control the appearance of menu.

I think it would be nice to port it on other devices and add setup for actions of buttons.

I've updated this patch with the following:

- rename the setting to "Playback Control in Hold Mode", and move it to the Playback Settings menu
- don't access global_settings directly from button-cowond2.c (this isn't allowed since settings are apps/ code and this is firmware/)
- add an entry to apps/features.txt, so that the lang entry is only built for targets with this feature
- rename a few variables

I intend to commit this once the following bug is fixed:

- the backlight sometimes behaves strangely (eg. fading in more than once) when turning hold off after having used buttons in hold mode. This does not happen when the option is disabled.

bkd11 commented on 2009-11-17 20:50

I think the backlight issue you mentioned is related to FS#10362 because it only does this for me when the 'Backlight fade in' is enabled. And in fact it still does it with 'Buttons in Hold' function turned off, it just takes longer to happen. Try letting music play for a few hours to see. Either way it doesn't do it when 'Backlight fade in' is turned off.

Found a bug- while pressing minus button more than approx. 1sec, track not skips back,but playback goes to start of current track.

@DaMaGeD, I think this is actually the correct behaviour. The "skip back" function will always jump to the beginning of the track, unless the current playback position is right at the start of the track.(within the first few seconds). It's the same as using the normal track skip function.

@bkd11, that certainly looks related, but I'd like to get to the bottom of it before committing this since this patch exaggerates the problem somewhat.

nickp commented on 2009-12-08 04:50

Synced to trunk revision 23894.

bkd11 commented on 2009-12-16 21:49

Synced to revision 24036

Just thought I'd add this as a comment here as food for thought.
pixelma made a suggestion in IRC yesterday which I suspect may be a good compromise to alleviate the controversy around committing this patch;

I don't think I have the knowledge to implement a "special keymap mode" which would be triggered by holding down one of the tactile buttons while sliding the hold switch, but perhaps somebody does, or if this seems like a good idea to other people, I'm sure I could find the time to learn (s/learn/fiddle around and break things till it works/).


We did actually reach a general consensus on the dev mailing list that no-one was going to veto this if I committed it as-is. I just haven't done it yet… but now we're out of feature freeze it might be a good time to do so.

bkd11 commented on 2010-02-10 19:56

I changed a few lines in the keymap-cowond2.c from:

It seems to make it slightly more functional to not 'have to' release the button first to skip the tracks. ie. You can just hold + or - until it skips.

What do you think?

bkd11 commented on 2010-02-10 19:58

Here's the patch.

Rob, this feature might actually be usefull for all other targets with a software hold switch, so can you wait for someone to do the version described in the irc log above instead? (i.e holding a button while enabling hold put it into a different mode wherre the buttons work)

@bkd11, that change looks sensible, yes.

@jdgordon, I like that suggestion a bit more having thought about it a 2nd time. Now all we need is someone to do the work…. ;-)

punkt commented on 2010-04-05 10:02

Synced to r25479.

Synced to r25479.
Can you please update the manual accordingly? Thanks.

In FS#11213 I post patch which implement mentioned alternative mode.

nickp commented on 2010-12-22 11:44

Synced to r28404 (3.7)

Not too sure what the current status regarding this is now, I vaguely remember a general consensus of "fine, well nobody will veto it if shotofadds commits it", but I'm not sure it matters too much now anyway - the D2 is now a discontinued product, and popularity of it is decreasing. The few people who took a strong interest in rockbox on it and use it regularly know about this patch and a fair number of them use builds supplied by my script here;

I'm posting that link here because this patch, FS#10698, is kept up-to-date there now - at least once a week it is synchronised with the latest rockbox revision and built for the D2. Thus, any D2 owner interested in this functionality will probably have more luck getting it there.

psn84 commented on 2012-12-07 12:14

Synced to current HEAD (how to know current revision?)


Available keyboard shortcuts


Task Details

Task Editing