summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoen Hirschberg <marcoen@gmail.com>2007-05-20 11:42:04 +0000
committerMarcoen Hirschberg <marcoen@gmail.com>2007-05-20 11:42:04 +0000
commit0037a1b648cb06c4ba5fc23b2b9850bb7d9b8d35 (patch)
tree96e8362a3c5530c35ef406e50a71ec97a33d5a7a
parent4c486ce948d0654028085dcbc467f4f04ce18db1 (diff)
downloadrockbox-0037a1b648cb06c4ba5fc23b2b9850bb7d9b8d35.tar.gz
rockbox-0037a1b648cb06c4ba5fc23b2b9850bb7d9b8d35.zip
add separate button defines for the Gigabeat remote control
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13442 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/keymaps/keymap-gigabeat.c53
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c18
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/button-target.h13
3 files changed, 73 insertions, 11 deletions
diff --git a/apps/keymaps/keymap-gigabeat.c b/apps/keymaps/keymap-gigabeat.c
index 7e7eb1ec65..c2e6a537b0 100644
--- a/apps/keymaps/keymap-gigabeat.c
+++ b/apps/keymaps/keymap-gigabeat.c
@@ -269,8 +269,61 @@ static const struct button_mapping button_context_keyboard[] = {
269 LAST_ITEM_IN_LIST 269 LAST_ITEM_IN_LIST
270}; /* button_context_keyboard */ 270}; /* button_context_keyboard */
271 271
272/*****************************************************************************
273 * Remote control mappings
274 *****************************************************************************/
275
276static const struct button_mapping remote_button_context_standard[] = {
277 { ACTION_STD_PREV, BUTTON_RC_VOL_UP, BUTTON_NONE },
278 { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
279 { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
280 { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
281 { ACTION_STD_CANCEL, BUTTON_RC_REW, BUTTON_NONE },
282 { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE },
283
284 LAST_ITEM_IN_LIST
285};
286
287static const struct button_mapping remote_button_context_wps[] = {
288 { ACTION_WPS_PLAY, BUTTON_RC_PLAY, BUTTON_NONE },
289
290 { ACTION_WPS_SKIPNEXT, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF },
291 { ACTION_WPS_SKIPPREV, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW },
292
293 { ACTION_WPS_SEEKBACK, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
294 { ACTION_WPS_SEEKFWD, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
295 { ACTION_WPS_STOPSEEK, BUTTON_RC_REW|BUTTON_REL, BUTTON_RC_REW|BUTTON_REPEAT },
296 { ACTION_WPS_STOPSEEK, BUTTON_RC_FF|BUTTON_REL, BUTTON_RC_FF|BUTTON_REPEAT },
297
298 { ACTION_WPS_STOP, BUTTON_RC_DSP, BUTTON_NONE },
299
300 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
301 { ACTION_WPS_VOLDOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
302 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
303 { ACTION_WPS_VOLUP, BUTTON_RC_VOL_UP, BUTTON_NONE },
304
305 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
306};
307
308static const struct button_mapping* get_context_mapping_remote( int context )
309{
310 context ^= CONTEXT_REMOTE;
311
312 switch (context)
313 {
314 case CONTEXT_WPS:
315 return remote_button_context_wps;
316
317 default:
318 return remote_button_context_standard;
319 }
320}
321
272const struct button_mapping* get_context_mapping(int context) 322const struct button_mapping* get_context_mapping(int context)
273{ 323{
324 if (context&CONTEXT_REMOTE)
325 return get_context_mapping_remote(context);
326
274 switch (context) 327 switch (context)
275 { 328 {
276 case CONTEXT_STD: 329 case CONTEXT_STD:
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c
index 25a69d7630..5655d92ef8 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c
@@ -32,15 +32,15 @@ static bool hold_button = false;
32 32
33static int const remote_buttons[] = 33static int const remote_buttons[] =
34{ 34{
35 BUTTON_NONE, /* Headphones connected - remote disconnected */ 35 BUTTON_NONE, /* Headphones connected - remote disconnected */
36 BUTTON_SELECT, 36 BUTTON_RC_PLAY,
37 BUTTON_MENU, /* could be changed to BUTTON_A */ 37 BUTTON_RC_DSP,
38 BUTTON_LEFT, 38 BUTTON_RC_REW,
39 BUTTON_RIGHT, 39 BUTTON_RC_FF,
40 BUTTON_UP, /* could be changed to BUTTON_VOL_UP */ 40 BUTTON_RC_VOL_UP,
41 BUTTON_DOWN, /* could be changed to BUTTON_VOL_DOWN */ 41 BUTTON_RC_VOL_DOWN,
42 BUTTON_NONE, /* Remote control attached - no buttons pressed */ 42 BUTTON_NONE, /* Remote control attached - no buttons pressed */
43 BUTTON_NONE, /* Nothing in the headphone socket */ 43 BUTTON_NONE, /* Nothing in the headphone socket */
44}; 44};
45 45
46void button_init_device(void) 46void button_init_device(void)
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/button-target.h b/firmware/target/arm/s3c2440/gigabeat-fx/button-target.h
index ab68e8050f..7a39212de9 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/button-target.h
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/button-target.h
@@ -44,6 +44,15 @@ int button_read_device(void);
44#define BUTTON_SELECT 0x00000100 44#define BUTTON_SELECT 0x00000100
45#define BUTTON_A 0x00000200 45#define BUTTON_A 0x00000200
46 46
47/* Remote control buttons */
48
49#define BUTTON_RC_VOL_UP 0x00000400
50#define BUTTON_RC_VOL_DOWN 0x00000800
51#define BUTTON_RC_FF 0x00001000
52#define BUTTON_RC_REW 0x00002000
53
54#define BUTTON_RC_PLAY 0x00004000
55#define BUTTON_RC_DSP 0x00008000
47 56
48/* Toshiba Gigabeat specific remote button ADC values */ 57/* Toshiba Gigabeat specific remote button ADC values */
49/* The remote control uses ADC 1 to emulate button pushes 58/* The remote control uses ADC 1 to emulate button pushes
@@ -80,8 +89,8 @@ int button_read_device(void);
80 |BUTTON_UP|BUTTON_DOWN|BUTTON_VOL_UP|BUTTON_VOL_DOWN\ 89 |BUTTON_UP|BUTTON_DOWN|BUTTON_VOL_UP|BUTTON_VOL_DOWN\
81 |BUTTON_SELECT|BUTTON_A) 90 |BUTTON_SELECT|BUTTON_A)
82 91
83 92#define BUTTON_REMOTE (BUTTON_RC_VOL_UP|BUTTON_RC_VOL_DOWN|BUTTON_RC_FF\
84#define BUTTON_REMOTE 0 93 |BUTTON_RC_REW|BUTTON_RC_PLAY|BUTTON_RC_DSP)
85 94
86#define POWEROFF_BUTTON BUTTON_POWER 95#define POWEROFF_BUTTON BUTTON_POWER
87#define POWEROFF_COUNT 10 96#define POWEROFF_COUNT 10