diff options
-rw-r--r-- | apps/keymaps/keymap-gigabeat.c | 53 | ||||
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/button-meg-fx.c | 18 | ||||
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/button-target.h | 13 |
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 | |||
276 | static 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 | |||
287 | static 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 | |||
308 | static 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 | |||
272 | const struct button_mapping* get_context_mapping(int context) | 322 | const 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 | ||
33 | static int const remote_buttons[] = | 33 | static 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 | ||
46 | void button_init_device(void) | 46 | void 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 |