FS#8708 - Cowon D2: Button definitions for plugins and WPS

Attached to Project: Rockbox
Opened by Andreas Müller (andiator) - Sunday, 09 March 2008, 20:13 GMT
Last edited by Rob Purchase (shotofadds) - Sunday, 27 April 2008, 16:35 GMT
Task Type Patches
Category Plugins
Status Closed
Assigned To No-one
Operating System Another
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


Cowon D2: Key/Button definitions/mappings for plugins, WPS and setings menu. Alot of '#define' stuff
This task depends upon

Closed by  Rob Purchase (shotofadds)
Sunday, 27 April 2008, 16:35 GMT
Reason for closing:  Accepted
Additional comments about closing:  Thanks :-)
Comment by Rob Purchase (shotofadds) - Saturday, 19 April 2008, 12:39 GMT
I've re-opened this task since many of the button definitions need to be altered to use the "touchscreen area" button macros (see button-target.h) rather than the existing BUTTON_LEFT/RIGHT etc. Eg. BUTTON_UP becomes BUTTON_TOPMIDDLE, BUTTON_RIGHT becomes BUTTON_MIDRIGHT, etc.

The touchscreen button definitions should be defined in a HAVE_TOUCHPAD block (common to the D2 and m:robe500), with the D2-specific section containing only definitions for the physcial buttons (PLUS/MINUS/MENU/POWER).
Comment by Rob Purchase (shotofadds) - Sunday, 20 April 2008, 20:05 GMT
I should have mentioned that the current SVN build only supports the touchscreen area buttons (BUTTON_TOPMIDDLE etc) when running in the UI Simulator (mapped to keypad keys 1-9).

The attached patch adds touchpad support to the target build, by adapting JdGordon's existing m:robe500 work. It's far from perfect, for example menu navigation is difficult because it sometimes registers incorrect presses. But it does make plugins such as jewels and brickmania playable ;-)
Comment by Rob Purchase (shotofadds) - Monday, 21 April 2008, 08:08 GMT
Sync'd to r17200 by correcting an idiotic typo or two.
Comment by Andreas Müller (andiator) - Wednesday, 23 April 2008, 20:53 GMT
So, there a lot of changes. Almost all plugins got a touchpad section. Some have only one button (exit or so) - so I let it the way it was.
Other touchpad-targets have to define a target section anyway, at least an empty one.
The touchpad definitions are overrideable: e.g. #define PLUGIN_EXIT POWER_BUTTON in target section overrides the one in touchpad section (made with #ifndef PLUGIN_EXIT ...)

Added some missing button description/help text for some plugins. Had to change #ifdef/#else logic in plasma.c and starfield.c, hoping not to break other targets.
Changed drivers/button.c, there was an assumption that every target has BUTTON_LEFT/BUTTON_RIGHT --> added a mapping from BUTTON_MIDLEFT to BUTTON_LEFT etc. Is needed for screen flipping.
Comment by Andreas Müller (andiator) - Sunday, 27 April 2008, 11:57 GMT
Update for r17254 (New plugin flashlight.c)
Comment by Andreas Müller (andiator) - Sunday, 27 April 2008, 14:30 GMT
Got brickmania working