diff options
author | Martin Scarratt <mmmm@rockbox.org> | 2006-08-22 13:21:13 +0000 |
---|---|---|
committer | Martin Scarratt <mmmm@rockbox.org> | 2006-08-22 13:21:13 +0000 |
commit | 0ba2204beb8f97ce71133bf74fdc24b40f81407c (patch) | |
tree | 9ef69b04d5d130bc52122e9833c09214f90b09c9 | |
parent | af95a013641b4c0919bc1cf9f907a3149f513da0 (diff) | |
download | rockbox-0ba2204beb8f97ce71133bf74fdc24b40f81407c.tar.gz rockbox-0ba2204beb8f97ce71133bf74fdc24b40f81407c.zip |
Button action code for the Virtual keyboard. Extra buttons for H1xx remote: Vol-+ Cursor Left/Right. H3xx remote:-10/+10 Cursor Left/Right.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10694 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/action.h | 18 | ||||
-rw-r--r-- | apps/keymaps/keymap-gigabeat.c | 25 | ||||
-rw-r--r-- | apps/keymaps/keymap-h10.c | 17 | ||||
-rw-r--r-- | apps/keymaps/keymap-h1x0_h3x0.c | 119 | ||||
-rw-r--r-- | apps/keymaps/keymap-ifp7xx.c | 18 | ||||
-rw-r--r-- | apps/keymaps/keymap-ipod.c | 16 | ||||
-rw-r--r-- | apps/keymaps/keymap-ondio.c | 20 | ||||
-rw-r--r-- | apps/keymaps/keymap-recorder.c | 25 | ||||
-rw-r--r-- | apps/keymaps/keymap-x5.c | 19 | ||||
-rw-r--r-- | apps/recorder/keyboard.c | 249 |
10 files changed, 292 insertions, 234 deletions
diff --git a/apps/action.h b/apps/action.h index df07606171..1bbe6fc6e8 100644 --- a/apps/action.h +++ b/apps/action.h | |||
@@ -68,6 +68,7 @@ enum { | |||
68 | 68 | ||
69 | CONTEXT_YESNOSCREEN, /*NOTE: make sure your target has this and ACTION_YESNO_ACCEPT */ | 69 | CONTEXT_YESNOSCREEN, /*NOTE: make sure your target has this and ACTION_YESNO_ACCEPT */ |
70 | CONTEXT_RECSCREEN, | 70 | CONTEXT_RECSCREEN, |
71 | CONTEXT_KEYBOARD, | ||
71 | }; | 72 | }; |
72 | 73 | ||
73 | 74 | ||
@@ -177,7 +178,22 @@ enum { | |||
177 | /* yesno screen */ | 178 | /* yesno screen */ |
178 | ACTION_YESNO_ACCEPT, | 179 | ACTION_YESNO_ACCEPT, |
179 | 180 | ||
180 | 181 | /* keyboard screen */ | |
182 | ACTION_KBD_LEFT, | ||
183 | ACTION_KBD_RIGHT, | ||
184 | ACTION_KBD_CURSOR_LEFT, | ||
185 | ACTION_KBD_CURSOR_RIGHT, | ||
186 | ACTION_KBD_SELECT, | ||
187 | ACTION_KBD_SELECT_REM, | ||
188 | ACTION_KBD_PAGE_FLIP, | ||
189 | ACTION_KBD_DONE, | ||
190 | ACTION_KBD_ABORT, | ||
191 | ACTION_KBD_BACKSPACE, | ||
192 | ACTION_KBD_UP, | ||
193 | ACTION_KBD_DOWN, | ||
194 | ACTION_KBD_MORSE_INPUT, | ||
195 | ACTION_KBD_MORSE_SELECT, | ||
196 | |||
181 | }; | 197 | }; |
182 | 198 | ||
183 | struct button_mapping { | 199 | struct button_mapping { |
diff --git a/apps/keymaps/keymap-gigabeat.c b/apps/keymaps/keymap-gigabeat.c index 9a987d2bfc..042a1f7d8b 100644 --- a/apps/keymaps/keymap-gigabeat.c +++ b/apps/keymaps/keymap-gigabeat.c | |||
@@ -220,6 +220,29 @@ const struct button_mapping button_context_pitchscreen[] = { | |||
220 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 220 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
221 | }; /* button_context_pitchcreen */ | 221 | }; /* button_context_pitchcreen */ |
222 | 222 | ||
223 | const struct button_mapping button_context_keyboard[] = { | ||
224 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
225 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
226 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
227 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
228 | { ACTION_KBD_CURSOR_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE }, | ||
229 | { ACTION_KBD_CURSOR_LEFT, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
230 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE }, | ||
231 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
232 | { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, | ||
233 | { ACTION_KBD_PAGE_FLIP, BUTTON_POWER|BUTTON_MENU, BUTTON_NONE }, | ||
234 | { ACTION_KBD_DONE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
235 | { ACTION_KBD_ABORT, BUTTON_A, BUTTON_NONE }, | ||
236 | { ACTION_KBD_BACKSPACE, BUTTON_MENU, BUTTON_NONE }, | ||
237 | { ACTION_KBD_BACKSPACE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, | ||
238 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
239 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
240 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
241 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
242 | |||
243 | LAST_ITEM_IN_LIST | ||
244 | }; /* button_context_keyboard */ | ||
245 | |||
223 | const struct button_mapping* get_context_mapping(int context) | 246 | const struct button_mapping* get_context_mapping(int context) |
224 | { | 247 | { |
225 | switch (context) | 248 | switch (context) |
@@ -261,6 +284,8 @@ const struct button_mapping* get_context_mapping(int context) | |||
261 | return button_context_quickscreen; | 284 | return button_context_quickscreen; |
262 | case CONTEXT_PITCHSCREEN: | 285 | case CONTEXT_PITCHSCREEN: |
263 | return button_context_pitchscreen; | 286 | return button_context_pitchscreen; |
287 | case CONTEXT_KEYBOARD: | ||
288 | return button_context_keyboard; | ||
264 | } | 289 | } |
265 | return button_context_standard; | 290 | return button_context_standard; |
266 | } | 291 | } |
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c index 25ee13022f..c6b6229f61 100644 --- a/apps/keymaps/keymap-h10.c +++ b/apps/keymaps/keymap-h10.c | |||
@@ -152,7 +152,21 @@ const struct button_mapping button_context_pitchscreen[] = { | |||
152 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 152 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
153 | }; /* button_context_pitchscreen */ | 153 | }; /* button_context_pitchscreen */ |
154 | 154 | ||
155 | const struct button_mapping button_context_keyboard[] = { | ||
156 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
157 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
158 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
159 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
160 | { ACTION_KBD_SELECT, BUTTON_REW|BUTTON_REL, BUTTON_REW }, | ||
161 | { ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE }, | ||
162 | { ACTION_KBD_ABORT, BUTTON_FF, BUTTON_NONE }, | ||
163 | { ACTION_KBD_UP, BUTTON_SCROLL_UP, BUTTON_NONE }, | ||
164 | { ACTION_KBD_UP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
165 | { ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE }, | ||
166 | { ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
155 | 167 | ||
168 | LAST_ITEM_IN_LIST | ||
169 | }; /* button_context_keyboard */ | ||
156 | 170 | ||
157 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 171 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
158 | const struct button_mapping* get_context_mapping(int context) | 172 | const struct button_mapping* get_context_mapping(int context) |
@@ -186,6 +200,9 @@ const struct button_mapping* get_context_mapping(int context) | |||
186 | return button_context_quickscreen; | 200 | return button_context_quickscreen; |
187 | case CONTEXT_PITCHSCREEN: | 201 | case CONTEXT_PITCHSCREEN: |
188 | return button_context_pitchscreen; | 202 | return button_context_pitchscreen; |
203 | case CONTEXT_KEYBOARD: | ||
204 | return button_context_keyboard; | ||
205 | |||
189 | case CONTEXT_LIST: | 206 | case CONTEXT_LIST: |
190 | case CONTEXT_MAINMENU: | 207 | case CONTEXT_MAINMENU: |
191 | default: | 208 | default: |
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c index 9eebdf25c1..476e307ffd 100644 --- a/apps/keymaps/keymap-h1x0_h3x0.c +++ b/apps/keymaps/keymap-h1x0_h3x0.c | |||
@@ -232,6 +232,31 @@ const struct button_mapping button_context_recscreen[] = { | |||
232 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 232 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
233 | }; /* button_context_recscreen */ | 233 | }; /* button_context_recscreen */ |
234 | 234 | ||
235 | const struct button_mapping button_context_keyboard[] = { | ||
236 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
237 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
238 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
239 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
240 | { ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE }, | ||
241 | { ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
242 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_NONE }, | ||
243 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
244 | { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, | ||
245 | { ACTION_KBD_PAGE_FLIP, BUTTON_MODE, BUTTON_NONE }, | ||
246 | { ACTION_KBD_DONE, BUTTON_ON|BUTTON_REL, BUTTON_ON }, | ||
247 | { ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE }, | ||
248 | { ACTION_KBD_BACKSPACE, BUTTON_REC, BUTTON_NONE }, | ||
249 | { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, | ||
250 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
251 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
252 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
253 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
254 | { ACTION_KBD_MORSE_INPUT, BUTTON_ON|BUTTON_MODE, BUTTON_NONE }, | ||
255 | { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
256 | |||
257 | LAST_ITEM_IN_LIST | ||
258 | }; /* button_context_keyboard */ | ||
259 | |||
235 | /***************************************************************************** | 260 | /***************************************************************************** |
236 | * Remote control mappings | 261 | * Remote control mappings |
237 | *****************************************************************************/ | 262 | *****************************************************************************/ |
@@ -536,6 +561,64 @@ const struct button_mapping button_context_recscreen_h300lcdremote[] = { | |||
536 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 561 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
537 | }; /* button_context_recscreen_h300lcdremote */ | 562 | }; /* button_context_recscreen_h300lcdremote */ |
538 | 563 | ||
564 | const struct button_mapping button_context_keyboard_h100remote[] = { | ||
565 | { ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE }, | ||
566 | { ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
567 | { ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, | ||
568 | { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
569 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_ON|BUTTON_RC_REW, BUTTON_NONE }, | ||
570 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_ON|BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
571 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_ON|BUTTON_RC_FF, BUTTON_NONE }, | ||
572 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_ON|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
573 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | ||
574 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
575 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE }, | ||
576 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
577 | { ACTION_KBD_SELECT_REM, BUTTON_RC_MENU, BUTTON_NONE }, | ||
578 | { ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE }, | ||
579 | { ACTION_KBD_DONE, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, | ||
580 | { ACTION_KBD_ABORT, BUTTON_RC_STOP, BUTTON_NONE }, | ||
581 | { ACTION_KBD_BACKSPACE, BUTTON_RC_REC, BUTTON_NONE }, | ||
582 | { ACTION_KBD_BACKSPACE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_NONE }, | ||
583 | { ACTION_KBD_UP, BUTTON_RC_SOURCE, BUTTON_NONE }, | ||
584 | { ACTION_KBD_UP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, | ||
585 | { ACTION_KBD_DOWN, BUTTON_RC_BITRATE, BUTTON_NONE }, | ||
586 | { ACTION_KBD_DOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, | ||
587 | { ACTION_KBD_MORSE_INPUT, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE }, | ||
588 | { ACTION_KBD_MORSE_SELECT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, | ||
589 | |||
590 | LAST_ITEM_IN_LIST | ||
591 | }; /* button_context_keyboard_h100remote */ | ||
592 | |||
593 | const struct button_mapping button_context_keyboard_h300lcdremote[] = { | ||
594 | { ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE }, | ||
595 | { ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
596 | { ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, | ||
597 | { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
598 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_MENU|BUTTON_RC_REW, BUTTON_NONE }, | ||
599 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_MENU|BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
600 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_MENU|BUTTON_RC_FF, BUTTON_NONE }, | ||
601 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_MENU|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
602 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_SOURCE, BUTTON_NONE }, | ||
603 | { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, | ||
604 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_BITRATE, BUTTON_NONE }, | ||
605 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, | ||
606 | { ACTION_KBD_SELECT_REM, BUTTON_RC_MENU, BUTTON_NONE }, | ||
607 | { ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE }, | ||
608 | { ACTION_KBD_DONE, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON }, | ||
609 | { ACTION_KBD_ABORT, BUTTON_RC_STOP, BUTTON_NONE }, | ||
610 | { ACTION_KBD_BACKSPACE, BUTTON_RC_REC, BUTTON_NONE }, | ||
611 | { ACTION_KBD_BACKSPACE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_NONE }, | ||
612 | { ACTION_KBD_UP, BUTTON_RC_VOL_UP, BUTTON_NONE }, | ||
613 | { ACTION_KBD_UP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
614 | { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, | ||
615 | { ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
616 | { ACTION_KBD_MORSE_INPUT, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE }, | ||
617 | { ACTION_KBD_MORSE_SELECT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, | ||
618 | |||
619 | LAST_ITEM_IN_LIST | ||
620 | }; /* button_context_keyboard_h300lcdremote */ | ||
621 | |||
539 | 622 | ||
540 | /* the actual used tables */ | 623 | /* the actual used tables */ |
541 | static const struct button_mapping | 624 | static const struct button_mapping |
@@ -556,8 +639,10 @@ static const struct button_mapping | |||
556 | = button_context_quickscreen_h100remote, | 639 | = button_context_quickscreen_h100remote, |
557 | *remote_btn_ctxt_pitchscreen | 640 | *remote_btn_ctxt_pitchscreen |
558 | = button_context_pitchscreen_h100remote, | 641 | = button_context_pitchscreen_h100remote, |
559 | *remote_button_ctxt_recscreen | 642 | *remote_btn_ctxt_recscreen |
560 | = button_context_recscreen_h100remote; | 643 | = button_context_recscreen_h100remote, |
644 | *remote_btn_ctxt_keyboard | ||
645 | = button_context_keyboard_h100remote; | ||
561 | 646 | ||
562 | static int _remote_type = 0; | 647 | static int _remote_type = 0; |
563 | 648 | ||
@@ -579,7 +664,8 @@ static void remap_remote(void) | |||
579 | remote_btn_ctxt_bmark = NULL; | 664 | remote_btn_ctxt_bmark = NULL; |
580 | remote_btn_ctxt_quickscreen = NULL; | 665 | remote_btn_ctxt_quickscreen = NULL; |
581 | remote_btn_ctxt_pitchscreen = NULL; | 666 | remote_btn_ctxt_pitchscreen = NULL; |
582 | remote_button_ctxt_recscreen = NULL; | 667 | remote_btn_ctxt_recscreen = NULL; |
668 | remote_btn_ctxt_keyboard = NULL; | ||
583 | break; | 669 | break; |
584 | 670 | ||
585 | case REMOTETYPE_H100_LCD: | 671 | case REMOTETYPE_H100_LCD: |
@@ -600,8 +686,10 @@ static void remap_remote(void) | |||
600 | = button_context_quickscreen_h100remote, | 686 | = button_context_quickscreen_h100remote, |
601 | remote_btn_ctxt_pitchscreen | 687 | remote_btn_ctxt_pitchscreen |
602 | = button_context_pitchscreen_h100remote, | 688 | = button_context_pitchscreen_h100remote, |
603 | remote_button_ctxt_recscreen | 689 | remote_btn_ctxt_recscreen |
604 | = button_context_recscreen_h100remote; | 690 | = button_context_recscreen_h100remote, |
691 | remote_btn_ctxt_keyboard | ||
692 | = button_context_keyboard_h100remote; | ||
605 | break; | 693 | break; |
606 | 694 | ||
607 | case REMOTETYPE_H300_LCD: | 695 | case REMOTETYPE_H300_LCD: |
@@ -622,8 +710,10 @@ static void remap_remote(void) | |||
622 | = button_context_quickscreen_h300lcdremote, | 710 | = button_context_quickscreen_h300lcdremote, |
623 | remote_btn_ctxt_pitchscreen | 711 | remote_btn_ctxt_pitchscreen |
624 | = button_context_pitchscreen_h300lcdremote, | 712 | = button_context_pitchscreen_h300lcdremote, |
625 | remote_button_ctxt_recscreen | 713 | remote_btn_ctxt_recscreen |
626 | = button_context_recscreen_h300lcdremote; | 714 | = button_context_recscreen_h300lcdremote, |
715 | remote_btn_ctxt_keyboard | ||
716 | = button_context_keyboard_h300lcdremote; | ||
627 | break; | 717 | break; |
628 | 718 | ||
629 | case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */ | 719 | case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */ |
@@ -644,8 +734,10 @@ static void remap_remote(void) | |||
644 | = button_context_quickscreen_h300lcdremote, | 734 | = button_context_quickscreen_h300lcdremote, |
645 | remote_btn_ctxt_pitchscreen | 735 | remote_btn_ctxt_pitchscreen |
646 | = button_context_pitchscreen_h300lcdremote, | 736 | = button_context_pitchscreen_h300lcdremote, |
647 | remote_button_ctxt_recscreen | 737 | remote_btn_ctxt_recscreen |
648 | = button_context_recscreen_h300lcdremote; | 738 | = button_context_recscreen_h300lcdremote, |
739 | remote_btn_ctxt_keyboard | ||
740 | = button_context_keyboard_h300lcdremote; | ||
649 | #if 0 | 741 | #if 0 |
650 | remote_btn_ctxt_std = | 742 | remote_btn_ctxt_std = |
651 | remote_btn_ctxt_wps = | 743 | remote_btn_ctxt_wps = |
@@ -659,7 +751,8 @@ static void remap_remote(void) | |||
659 | remote_btn_ctxt_bmark = | 751 | remote_btn_ctxt_bmark = |
660 | remote_btn_ctxt_quickscreen = | 752 | remote_btn_ctxt_quickscreen = |
661 | remote_btn_ctxt_pitchscreen = | 753 | remote_btn_ctxt_pitchscreen = |
662 | remote_button_ctxt_recscreen = | 754 | remote_btn_ctxt_recscreen = |
755 | remote_btn_ctxt_keyboard = | ||
663 | #endif | 756 | #endif |
664 | break; | 757 | break; |
665 | 758 | ||
@@ -707,7 +800,9 @@ const struct button_mapping* get_context_mapping_remote(int context) | |||
707 | case CONTEXT_PITCHSCREEN: | 800 | case CONTEXT_PITCHSCREEN: |
708 | return remote_btn_ctxt_pitchscreen; | 801 | return remote_btn_ctxt_pitchscreen; |
709 | case CONTEXT_RECSCREEN: | 802 | case CONTEXT_RECSCREEN: |
710 | return remote_button_ctxt_recscreen; | 803 | return remote_btn_ctxt_recscreen; |
804 | case CONTEXT_KEYBOARD: | ||
805 | return remote_btn_ctxt_keyboard; | ||
711 | } | 806 | } |
712 | return remote_btn_ctxt_std; | 807 | return remote_btn_ctxt_std; |
713 | } | 808 | } |
@@ -758,6 +853,8 @@ const struct button_mapping* get_context_mapping(int context) | |||
758 | return button_context_pitchscreen; | 853 | return button_context_pitchscreen; |
759 | case CONTEXT_RECSCREEN: | 854 | case CONTEXT_RECSCREEN: |
760 | return button_context_recscreen; | 855 | return button_context_recscreen; |
856 | case CONTEXT_KEYBOARD: | ||
857 | return button_context_keyboard; | ||
761 | } | 858 | } |
762 | return button_context_standard; | 859 | return button_context_standard; |
763 | } | 860 | } |
diff --git a/apps/keymaps/keymap-ifp7xx.c b/apps/keymaps/keymap-ifp7xx.c index 5ffa71593c..b5d0fd7df0 100644 --- a/apps/keymaps/keymap-ifp7xx.c +++ b/apps/keymaps/keymap-ifp7xx.c | |||
@@ -134,6 +134,22 @@ const struct button_mapping button_context_pitchscreen[] = { | |||
134 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 134 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
135 | }; /* button_context_pitchcreen */ | 135 | }; /* button_context_pitchcreen */ |
136 | 136 | ||
137 | const struct button_mapping button_context_keyboard[] = { | ||
138 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
139 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
140 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
141 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
142 | { ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
143 | { ACTION_KBD_DONE, BUTTON_MODE, BUTTON_NONE }, | ||
144 | { ACTION_KBD_ABORT, BUTTON_PLAY, BUTTON_NONE }, | ||
145 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
146 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
147 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
148 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
149 | |||
150 | LAST_ITEM_IN_LIST | ||
151 | }; /* button_context_keyboard */ | ||
152 | |||
137 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 153 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
138 | const struct button_mapping* get_context_mapping(int context) | 154 | const struct button_mapping* get_context_mapping(int context) |
139 | { | 155 | { |
@@ -158,6 +174,8 @@ const struct button_mapping* get_context_mapping(int context) | |||
158 | return button_context_quickscreen; | 174 | return button_context_quickscreen; |
159 | case CONTEXT_PITCHSCREEN: | 175 | case CONTEXT_PITCHSCREEN: |
160 | return button_context_pitchscreen; | 176 | return button_context_pitchscreen; |
177 | case CONTEXT_KEYBOARD: | ||
178 | return button_context_keyboard; | ||
161 | } | 179 | } |
162 | return button_context_standard; | 180 | return button_context_standard; |
163 | } | 181 | } |
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c index 895691d5bc..b41a91afdf 100644 --- a/apps/keymaps/keymap-ipod.c +++ b/apps/keymaps/keymap-ipod.c | |||
@@ -146,6 +146,20 @@ const struct button_mapping button_context_pitchscreen[] = { | |||
146 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 146 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
147 | }; /* button_context_pitchscreen */ | 147 | }; /* button_context_pitchscreen */ |
148 | 148 | ||
149 | const struct button_mapping button_context_keyboard[] = { | ||
150 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
151 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
152 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
153 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
154 | { ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
155 | { ACTION_KBD_DONE, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE }, | ||
156 | { ACTION_KBD_ABORT, BUTTON_MENU, BUTTON_NONE }, | ||
157 | { ACTION_KBD_UP, BUTTON_SCROLL_BACK, BUTTON_NONE }, | ||
158 | { ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE }, | ||
159 | |||
160 | LAST_ITEM_IN_LIST | ||
161 | }; /* button_context_keyboard */ | ||
162 | |||
149 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | 163 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ |
150 | const struct button_mapping* get_context_mapping(int context) | 164 | const struct button_mapping* get_context_mapping(int context) |
151 | { | 165 | { |
@@ -180,6 +194,8 @@ const struct button_mapping* get_context_mapping(int context) | |||
180 | return button_context_quickscreen; | 194 | return button_context_quickscreen; |
181 | case CONTEXT_PITCHSCREEN: | 195 | case CONTEXT_PITCHSCREEN: |
182 | return button_context_pitchscreen; | 196 | return button_context_pitchscreen; |
197 | case CONTEXT_KEYBOARD: | ||
198 | return button_context_keyboard; | ||
183 | default: | 199 | default: |
184 | return button_context_standard; | 200 | return button_context_standard; |
185 | } | 201 | } |
diff --git a/apps/keymaps/keymap-ondio.c b/apps/keymaps/keymap-ondio.c index 1a1411093e..9af3b12cab 100644 --- a/apps/keymaps/keymap-ondio.c +++ b/apps/keymaps/keymap-ondio.c | |||
@@ -137,6 +137,22 @@ const struct button_mapping button_context_recscreen[] = { | |||
137 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 137 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
138 | }; /* button_context_recscreen */ | 138 | }; /* button_context_recscreen */ |
139 | 139 | ||
140 | const struct button_mapping button_context_keyboard[] = { | ||
141 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
142 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
143 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
144 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
145 | { ACTION_KBD_SELECT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, | ||
146 | { ACTION_KBD_DONE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE }, | ||
147 | { ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE }, | ||
148 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
149 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
150 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
151 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
152 | |||
153 | LAST_ITEM_IN_LIST | ||
154 | }; /* button_context_keyboard */ | ||
155 | |||
140 | const struct button_mapping* get_context_mapping( int context ) | 156 | const struct button_mapping* get_context_mapping( int context ) |
141 | { | 157 | { |
142 | switch( context ) | 158 | switch( context ) |
@@ -165,7 +181,9 @@ const struct button_mapping* get_context_mapping( int context ) | |||
165 | return button_context_tree; | 181 | return button_context_tree; |
166 | case CONTEXT_RECSCREEN: | 182 | case CONTEXT_RECSCREEN: |
167 | return button_context_recscreen; | 183 | return button_context_recscreen; |
168 | 184 | case CONTEXT_KEYBOARD: | |
185 | return button_context_keyboard; | ||
186 | |||
169 | case CONTEXT_LIST: | 187 | case CONTEXT_LIST: |
170 | case CONTEXT_MAINMENU: | 188 | case CONTEXT_MAINMENU: |
171 | default: | 189 | default: |
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c index 01a6a0df11..4fb278db6e 100644 --- a/apps/keymaps/keymap-recorder.c +++ b/apps/keymaps/keymap-recorder.c | |||
@@ -161,6 +161,29 @@ const struct button_mapping button_context_recscreen[] = { | |||
161 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 161 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
162 | }; /* button_context_recscreen */ | 162 | }; /* button_context_recscreen */ |
163 | 163 | ||
164 | const struct button_mapping button_context_keyboard[] = { | ||
165 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
166 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
167 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
168 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
169 | { ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE }, | ||
170 | { ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
171 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_NONE }, | ||
172 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
173 | { ACTION_KBD_SELECT, BUTTON_PLAY, BUTTON_NONE }, | ||
174 | { ACTION_KBD_PAGE_FLIP, BUTTON_F1, BUTTON_NONE }, | ||
175 | { ACTION_KBD_DONE, BUTTON_F2, BUTTON_NONE }, | ||
176 | { ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE }, | ||
177 | { ACTION_KBD_BACKSPACE, BUTTON_F3, BUTTON_NONE }, | ||
178 | { ACTION_KBD_BACKSPACE, BUTTON_F3|BUTTON_REPEAT, BUTTON_NONE }, | ||
179 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
180 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
181 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
182 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
183 | |||
184 | LAST_ITEM_IN_LIST | ||
185 | }; /* button_context_keyboard */ | ||
186 | |||
164 | /***************************************************************************** | 187 | /***************************************************************************** |
165 | * Remote control mappings | 188 | * Remote control mappings |
166 | *****************************************************************************/ | 189 | *****************************************************************************/ |
@@ -232,6 +255,8 @@ const struct button_mapping* get_context_mapping( int context ) | |||
232 | 255 | ||
233 | case CONTEXT_RECSCREEN: | 256 | case CONTEXT_RECSCREEN: |
234 | return button_context_recscreen; | 257 | return button_context_recscreen; |
258 | case CONTEXT_KEYBOARD: | ||
259 | return button_context_keyboard; | ||
235 | 260 | ||
236 | case CONTEXT_STD: | 261 | case CONTEXT_STD: |
237 | case CONTEXT_LIST: | 262 | case CONTEXT_LIST: |
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c index cb5de5b0f2..603f9c7568 100644 --- a/apps/keymaps/keymap-x5.c +++ b/apps/keymaps/keymap-x5.c | |||
@@ -216,6 +216,22 @@ const struct button_mapping button_context_recscreen[] = { | |||
216 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 216 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
217 | }; /* button_context_recscreen */ | 217 | }; /* button_context_recscreen */ |
218 | 218 | ||
219 | const struct button_mapping button_context_keyboard[] = { | ||
220 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
221 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
222 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
223 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
224 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
225 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
226 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
227 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
228 | { ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
229 | { ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE }, | ||
230 | { ACTION_KBD_ABORT, BUTTON_REC, BUTTON_NONE }, | ||
231 | |||
232 | |||
233 | LAST_ITEM_IN_LIST | ||
234 | }; /* button_context_keyboard */ | ||
219 | 235 | ||
220 | static const struct button_mapping* get_context_mapping_remote( int context ) | 236 | static const struct button_mapping* get_context_mapping_remote( int context ) |
221 | { | 237 | { |
@@ -271,6 +287,9 @@ const struct button_mapping* get_context_mapping( int context ) | |||
271 | return button_context_pitchscreen; | 287 | return button_context_pitchscreen; |
272 | case CONTEXT_RECSCREEN: | 288 | case CONTEXT_RECSCREEN: |
273 | return button_context_recscreen; | 289 | return button_context_recscreen; |
290 | case CONTEXT_KEYBOARD: | ||
291 | return button_context_keyboard; | ||
292 | |||
274 | case CONTEXT_LIST: | 293 | case CONTEXT_LIST: |
275 | case CONTEXT_MAINMENU: | 294 | case CONTEXT_MAINMENU: |
276 | default: | 295 | default: |
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 8f35b12d4b..8e82ab58f9 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include "icons.h" | 36 | #include "icons.h" |
37 | #include "file.h" | 37 | #include "file.h" |
38 | #include "hangul.h" | 38 | #include "hangul.h" |
39 | #include "action.h" | ||
39 | 40 | ||
40 | #ifndef O_BINARY | 41 | #ifndef O_BINARY |
41 | #define O_BINARY 0 | 42 | #define O_BINARY 0 |
@@ -52,143 +53,22 @@ | |||
52 | 53 | ||
53 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ | 54 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
54 | (CONFIG_KEYPAD == IRIVER_H300_PAD) | 55 | (CONFIG_KEYPAD == IRIVER_H300_PAD) |
55 | #define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT) | 56 | #define KBD_MORSE_INPUT /* I-Rivers have a Morse input mode */ |
56 | #define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT) | ||
57 | #define KBD_SELECT BUTTON_SELECT | ||
58 | #define KBD_PAGE_FLIP BUTTON_MODE /* unused */ | ||
59 | #define KBD_DONE_PRE BUTTON_ON | ||
60 | #define KBD_DONE (BUTTON_ON | BUTTON_REL) | ||
61 | #define KBD_ABORT BUTTON_OFF | ||
62 | #define KBD_BACKSPACE BUTTON_REC | ||
63 | #define KBD_LEFT BUTTON_LEFT | ||
64 | #define KBD_RIGHT BUTTON_RIGHT | ||
65 | #define KBD_UP BUTTON_UP | ||
66 | #define KBD_DOWN BUTTON_DOWN | ||
67 | #define KBD_MORSE_INPUT (BUTTON_ON | BUTTON_MODE) | ||
68 | #define KBD_RC_CURSOR_RIGHT (BUTTON_RC_ON | BUTTON_RC_FF) | ||
69 | #define KBD_RC_CURSOR_LEFT (BUTTON_RC_ON | BUTTON_RC_REW) | ||
70 | #define KBD_RC_SELECT BUTTON_RC_MENU | ||
71 | #define KBD_RC_PAGE_FLIP BUTTON_RC_MODE | ||
72 | #define KBD_RC_DONE_PRE BUTTON_RC_ON | ||
73 | #define KBD_RC_DONE (BUTTON_RC_ON | BUTTON_REL) | ||
74 | #define KBD_RC_ABORT BUTTON_RC_STOP | ||
75 | #define KBD_RC_BACKSPACE BUTTON_RC_REC | ||
76 | #define KBD_RC_LEFT BUTTON_RC_REW | ||
77 | #define KBD_RC_RIGHT BUTTON_RC_FF | ||
78 | #define KBD_RC_UP BUTTON_RC_SOURCE | ||
79 | #define KBD_RC_DOWN BUTTON_RC_BITRATE | ||
80 | #define KBD_RC_MORSE_INPUT (BUTTON_RC_ON | BUTTON_RC_MODE) | ||
81 | |||
82 | #elif CONFIG_KEYPAD == RECORDER_PAD | ||
83 | #define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT) | ||
84 | #define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT) | ||
85 | #define KBD_SELECT BUTTON_PLAY | ||
86 | #define KBD_PAGE_FLIP BUTTON_F1 | ||
87 | #define KBD_DONE BUTTON_F2 | ||
88 | #define KBD_ABORT BUTTON_OFF | ||
89 | #define KBD_BACKSPACE BUTTON_F3 | ||
90 | #define KBD_LEFT BUTTON_LEFT | ||
91 | #define KBD_RIGHT BUTTON_RIGHT | ||
92 | #define KBD_UP BUTTON_UP | ||
93 | #define KBD_DOWN BUTTON_DOWN | ||
94 | 57 | ||
95 | #elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ | 58 | #elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ |
96 | #define KBD_MODES /* Ondio uses 2 modes, picker and line edit */ | 59 | #define KBD_MODES /* Ondio uses 2 modes, picker and line edit */ |
97 | #define KBD_SELECT (BUTTON_MENU | BUTTON_REL) /* backspace in line edit */ | ||
98 | #define KBD_SELECT_PRE BUTTON_MENU | ||
99 | #define KBD_DONE_PRE BUTTON_MENU | ||
100 | #define KBD_DONE (BUTTON_MENU | BUTTON_REPEAT) | ||
101 | #define KBD_ABORT BUTTON_OFF | ||
102 | #define KBD_LEFT BUTTON_LEFT | ||
103 | #define KBD_RIGHT BUTTON_RIGHT | ||
104 | #define KBD_UP BUTTON_UP | ||
105 | #define KBD_DOWN BUTTON_DOWN | ||
106 | |||
107 | #elif CONFIG_KEYPAD == GMINI100_PAD | ||
108 | #define KBD_CURSOR_RIGHT (BUTTON_MENU | BUTTON_RIGHT) | ||
109 | #define KBD_CURSOR_LEFT (BUTTON_MENU | BUTTON_LEFT) | ||
110 | #define KBD_SELECT (BUTTON_PLAY | BUTTON_REL) | ||
111 | #define KBD_SELECT_PRE BUTTON_PLAY | ||
112 | #define KBD_PAGE_FLIP BUTTON_ON | ||
113 | #define KBD_DONE_PRE BUTTON_PLAY | ||
114 | #define KBD_DONE (BUTTON_PLAY | BUTTON_REPEAT) | ||
115 | #define KBD_ABORT BUTTON_OFF | ||
116 | #define KBD_BACKSPACE (BUTTON_MENU | BUTTON_PLAY) | ||
117 | #define KBD_LEFT BUTTON_LEFT | ||
118 | #define KBD_RIGHT BUTTON_RIGHT | ||
119 | #define KBD_UP BUTTON_UP | ||
120 | #define KBD_DOWN BUTTON_DOWN | ||
121 | 60 | ||
122 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | 61 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) |
123 | |||
124 | #define KBD_MODES /* iPod uses 2 modes, picker and line edit */ | 62 | #define KBD_MODES /* iPod uses 2 modes, picker and line edit */ |
125 | #define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */ | ||
126 | #define KBD_SELECT_PRE BUTTON_SELECT | ||
127 | #define KBD_DONE_PRE BUTTON_SELECT | ||
128 | #define KBD_DONE (BUTTON_SELECT | BUTTON_REPEAT) | ||
129 | #define KBD_ABORT BUTTON_MENU | ||
130 | #define KBD_LEFT BUTTON_LEFT | ||
131 | #define KBD_RIGHT BUTTON_RIGHT | ||
132 | #define KBD_UP BUTTON_SCROLL_BACK | ||
133 | #define KBD_DOWN BUTTON_SCROLL_FWD | ||
134 | 63 | ||
135 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 64 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
136 | |||
137 | /* TODO: Check keyboard mappings */ | ||
138 | |||
139 | #define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */ | 65 | #define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */ |
140 | #define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */ | ||
141 | #define KBD_SELECT_PRE BUTTON_SELECT | ||
142 | #define KBD_DONE BUTTON_MODE | ||
143 | #define KBD_ABORT BUTTON_PLAY | ||
144 | #define KBD_LEFT BUTTON_LEFT | ||
145 | #define KBD_RIGHT BUTTON_RIGHT | ||
146 | #define KBD_UP BUTTON_UP | ||
147 | #define KBD_DOWN BUTTON_DOWN | ||
148 | 66 | ||
149 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD | 67 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD |
150 | |||
151 | /* TODO: Check keyboard mappings */ | ||
152 | |||
153 | #define KBD_MODES /* iAudio X5 uses 2 modes, picker and line edit */ | 68 | #define KBD_MODES /* iAudio X5 uses 2 modes, picker and line edit */ |
154 | #define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */ | ||
155 | #define KBD_SELECT_PRE BUTTON_SELECT | ||
156 | #define KBD_DONE BUTTON_PLAY | ||
157 | #define KBD_ABORT BUTTON_REC | ||
158 | #define KBD_LEFT BUTTON_LEFT | ||
159 | #define KBD_RIGHT BUTTON_RIGHT | ||
160 | #define KBD_UP BUTTON_UP | ||
161 | #define KBD_DOWN BUTTON_DOWN | ||
162 | |||
163 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
164 | |||
165 | #define KBD_CURSOR_RIGHT (BUTTON_POWER | BUTTON_RIGHT) | ||
166 | #define KBD_CURSOR_LEFT (BUTTON_POWER | BUTTON_LEFT) | ||
167 | #define KBD_SELECT BUTTON_SELECT | ||
168 | #define KBD_PAGE_FLIP (BUTTON_POWER | BUTTON_MENU) | ||
169 | #define KBD_DONE_PRE BUTTON_POWER | ||
170 | #define KBD_DONE (BUTTON_POWER | BUTTON_REL) | ||
171 | #define KBD_ABORT BUTTON_A | ||
172 | #define KBD_BACKSPACE BUTTON_MENU | ||
173 | #define KBD_LEFT BUTTON_LEFT | ||
174 | #define KBD_RIGHT BUTTON_RIGHT | ||
175 | #define KBD_UP BUTTON_UP | ||
176 | #define KBD_DOWN BUTTON_DOWN | ||
177 | 69 | ||
178 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | 70 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD |
179 | |||
180 | /* TODO: Check keyboard mappings */ | ||
181 | |||
182 | #define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */ | 71 | #define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */ |
183 | #define KBD_SELECT (BUTTON_REW | BUTTON_REL) /* backspace in line edit */ | ||
184 | #define KBD_SELECT_PRE BUTTON_REW | ||
185 | #define KBD_DONE BUTTON_PLAY | ||
186 | #define KBD_ABORT BUTTON_FF | ||
187 | #define KBD_LEFT BUTTON_LEFT | ||
188 | #define KBD_RIGHT BUTTON_RIGHT | ||
189 | #define KBD_UP BUTTON_SCROLL_UP | ||
190 | #define KBD_DOWN BUTTON_SCROLL_DOWN | ||
191 | |||
192 | #endif | 72 | #endif |
193 | 73 | ||
194 | struct keyboard_parameters { | 74 | struct keyboard_parameters { |
@@ -694,30 +574,21 @@ int kbd_input(char* text, int buflen) | |||
694 | FOR_NB_SCREENS(l) | 574 | FOR_NB_SCREENS(l) |
695 | screens[l].update(); | 575 | screens[l].update(); |
696 | 576 | ||
697 | button = button_get_w_tmo(HZ/2); | 577 | button = get_action(CONTEXT_KEYBOARD,HZ/2); |
698 | #ifdef KBD_MORSE_INPUT | 578 | #ifdef KBD_MORSE_INPUT |
699 | if (morse_mode) | 579 | if (morse_mode) |
700 | { | 580 | { |
701 | /* Remap some buttons for morse mode. */ | 581 | /* Remap some buttons for morse mode. */ |
702 | if (button == KBD_LEFT || button == (KBD_LEFT | BUTTON_REPEAT)) | 582 | if (button == ACTION_KBD_LEFT) |
703 | button = KBD_CURSOR_LEFT; | 583 | button = ACTION_KBD_CURSOR_LEFT; |
704 | if (button == KBD_RIGHT || button == (KBD_RIGHT | BUTTON_REPEAT)) | 584 | if (button == ACTION_KBD_RIGHT) |
705 | button = KBD_CURSOR_RIGHT; | 585 | button = ACTION_KBD_CURSOR_RIGHT; |
706 | #ifdef KBD_RC_LEFT | ||
707 | if (button == KBD_RC_LEFT || button == (KBD_RC_LEFT | BUTTON_REPEAT)) | ||
708 | button = KBD_RC_CURSOR_LEFT; | ||
709 | if (button == KBD_RC_RIGHT || button == (KBD_RC_RIGHT | BUTTON_REPEAT)) | ||
710 | button = KBD_RC_CURSOR_RIGHT; | ||
711 | } | 586 | } |
712 | #endif | 587 | #endif |
713 | #endif | ||
714 | 588 | ||
715 | switch ( button ) { | 589 | switch ( button ) { |
716 | 590 | ||
717 | #ifdef KBD_RC_ABORT | 591 | case ACTION_KBD_ABORT: |
718 | case KBD_RC_ABORT: | ||
719 | #endif | ||
720 | case KBD_ABORT: | ||
721 | FOR_NB_SCREENS(l) | 592 | FOR_NB_SCREENS(l) |
722 | screens[l].setfont(FONT_UI); | 593 | screens[l].setfont(FONT_UI); |
723 | 594 | ||
@@ -727,11 +598,7 @@ int kbd_input(char* text, int buflen) | |||
727 | return -1; | 598 | return -1; |
728 | break; | 599 | break; |
729 | 600 | ||
730 | #if defined(KBD_PAGE_FLIP) | 601 | case ACTION_KBD_PAGE_FLIP: |
731 | case KBD_PAGE_FLIP: | ||
732 | #ifdef KBD_RC_PAGE_FLIP | ||
733 | case KBD_RC_PAGE_FLIP: | ||
734 | #endif | ||
735 | #ifdef KBD_MORSE_INPUT | 602 | #ifdef KBD_MORSE_INPUT |
736 | if (morse_mode) | 603 | if (morse_mode) |
737 | break; | 604 | break; |
@@ -745,13 +612,10 @@ int kbd_input(char* text, int buflen) | |||
745 | kbd_spellchar(param[l].kbd_buf[k]); | 612 | kbd_spellchar(param[l].kbd_buf[k]); |
746 | } | 613 | } |
747 | break; | 614 | break; |
748 | #endif | ||
749 | 615 | ||
750 | #ifdef KBD_MORSE_INPUT | 616 | #ifdef KBD_MORSE_INPUT |
751 | case KBD_MORSE_INPUT: | 617 | case ACTION_KBD_MORSE_INPUT: |
752 | #ifdef KBD_RC_MORSE_INPUT | 618 | |
753 | case KBD_RC_MORSE_INPUT: | ||
754 | #endif | ||
755 | morse_mode = !morse_mode; | 619 | morse_mode = !morse_mode; |
756 | FOR_NB_SCREENS(l) | 620 | FOR_NB_SCREENS(l) |
757 | { | 621 | { |
@@ -765,12 +629,8 @@ int kbd_input(char* text, int buflen) | |||
765 | /* FIXME: We should talk something like Morse mode.. */ | 629 | /* FIXME: We should talk something like Morse mode.. */ |
766 | break; | 630 | break; |
767 | #endif | 631 | #endif |
768 | #ifdef KBD_RC_RIGHT | 632 | |
769 | case KBD_RC_RIGHT: | 633 | case ACTION_KBD_RIGHT: |
770 | case KBD_RC_RIGHT | BUTTON_REPEAT: | ||
771 | #endif | ||
772 | case KBD_RIGHT: | ||
773 | case KBD_RIGHT | BUTTON_REPEAT: | ||
774 | #ifdef KBD_MORSE_INPUT | 634 | #ifdef KBD_MORSE_INPUT |
775 | if (morse_mode) | 635 | if (morse_mode) |
776 | break; | 636 | break; |
@@ -806,12 +666,8 @@ int kbd_input(char* text, int buflen) | |||
806 | } | 666 | } |
807 | } | 667 | } |
808 | break; | 668 | break; |
809 | #ifdef KBD_RC_LEFT | 669 | |
810 | case KBD_RC_LEFT: | 670 | case ACTION_KBD_LEFT: |
811 | case KBD_RC_LEFT | BUTTON_REPEAT: | ||
812 | #endif | ||
813 | case KBD_LEFT: | ||
814 | case KBD_LEFT | BUTTON_REPEAT: | ||
815 | #ifdef KBD_MORSE_INPUT | 671 | #ifdef KBD_MORSE_INPUT |
816 | if (morse_mode) | 672 | if (morse_mode) |
817 | break; | 673 | break; |
@@ -852,12 +708,7 @@ int kbd_input(char* text, int buflen) | |||
852 | } | 708 | } |
853 | break; | 709 | break; |
854 | 710 | ||
855 | #ifdef KBD_RC_DOWN | 711 | case ACTION_KBD_DOWN: |
856 | case KBD_RC_DOWN: | ||
857 | case KBD_RC_DOWN | BUTTON_REPEAT: | ||
858 | #endif | ||
859 | case KBD_DOWN: | ||
860 | case KBD_DOWN | BUTTON_REPEAT: | ||
861 | #ifdef KBD_MORSE_INPUT | 712 | #ifdef KBD_MORSE_INPUT |
862 | if (morse_mode) | 713 | if (morse_mode) |
863 | break; | 714 | break; |
@@ -895,12 +746,7 @@ int kbd_input(char* text, int buflen) | |||
895 | } | 746 | } |
896 | break; | 747 | break; |
897 | 748 | ||
898 | #ifdef KBD_RC_UP | 749 | case ACTION_KBD_UP: |
899 | case KBD_RC_UP: | ||
900 | case KBD_RC_UP | BUTTON_REPEAT: | ||
901 | #endif | ||
902 | case KBD_UP: | ||
903 | case KBD_UP | BUTTON_REPEAT: | ||
904 | #ifdef KBD_MORSE_INPUT | 750 | #ifdef KBD_MORSE_INPUT |
905 | if (morse_mode) | 751 | if (morse_mode) |
906 | break; | 752 | break; |
@@ -938,27 +784,13 @@ int kbd_input(char* text, int buflen) | |||
938 | } | 784 | } |
939 | break; | 785 | break; |
940 | 786 | ||
941 | #ifdef KBD_RC_DONE | 787 | case ACTION_KBD_DONE: |
942 | case KBD_RC_DONE: | ||
943 | #endif | ||
944 | case KBD_DONE: | ||
945 | /* accepts what was entered and continues */ | 788 | /* accepts what was entered and continues */ |
946 | #ifdef KBD_DONE_PRE | ||
947 | if ((lastbutton != KBD_DONE_PRE) | ||
948 | #ifdef KBD_RC_DONE_PRE | ||
949 | && (lastbutton != KBD_RC_DONE_PRE) | ||
950 | #endif | ||
951 | ) | ||
952 | break; | ||
953 | #endif | ||
954 | done = true; | 789 | done = true; |
955 | break; | 790 | break; |
956 | 791 | ||
957 | #ifdef KBD_MORSE_INPUT | 792 | #ifdef KBD_MORSE_INPUT |
958 | #ifdef KBD_RC_SELECT | 793 | case ACTION_KBD_MORSE_SELECT: |
959 | case KBD_RC_SELECT | BUTTON_REL: | ||
960 | #endif | ||
961 | case KBD_SELECT | BUTTON_REL: | ||
962 | if (morse_mode && morse_reading) | 794 | if (morse_mode && morse_reading) |
963 | { | 795 | { |
964 | morse_code <<= 1; | 796 | morse_code <<= 1; |
@@ -969,15 +801,11 @@ int kbd_input(char* text, int buflen) | |||
969 | break; | 801 | break; |
970 | #endif | 802 | #endif |
971 | 803 | ||
972 | #ifdef KBD_RC_SELECT | 804 | case ACTION_KBD_SELECT: |
973 | case KBD_RC_SELECT: | 805 | case ACTION_KBD_SELECT_REM: |
974 | 806 | if (button == ACTION_KBD_SELECT_REM) | |
975 | if (button == KBD_RC_SELECT) | ||
976 | char_screen = 1; | 807 | char_screen = 1; |
977 | #endif | 808 | else |
978 | case KBD_SELECT: | ||
979 | |||
980 | if (button == KBD_SELECT) | ||
981 | char_screen = 0; | 809 | char_screen = 0; |
982 | #ifdef KBD_MORSE_INPUT | 810 | #ifdef KBD_MORSE_INPUT |
983 | if (morse_mode) | 811 | if (morse_mode) |
@@ -993,14 +821,6 @@ int kbd_input(char* text, int buflen) | |||
993 | #endif | 821 | #endif |
994 | 822 | ||
995 | /* inserts the selected char */ | 823 | /* inserts the selected char */ |
996 | #ifdef KBD_SELECT_PRE | ||
997 | if ((lastbutton != KBD_SELECT_PRE) | ||
998 | #ifdef KBD_RC_SELECT_PRE | ||
999 | && (lastbutton != KBD_RC_SELECT_PRE) | ||
1000 | #endif | ||
1001 | ) | ||
1002 | break; | ||
1003 | #endif | ||
1004 | #ifdef KBD_MODES | 824 | #ifdef KBD_MODES |
1005 | if (line_edit) { /* select doubles as backspace in line_edit */ | 825 | if (line_edit) { /* select doubles as backspace in line_edit */ |
1006 | if (hangul) { | 826 | if (hangul) { |
@@ -1088,12 +908,7 @@ int kbd_input(char* text, int buflen) | |||
1088 | break; | 908 | break; |
1089 | 909 | ||
1090 | #ifndef KBD_MODES | 910 | #ifndef KBD_MODES |
1091 | #ifdef KBD_RC_BACKSPACE | 911 | case ACTION_KBD_BACKSPACE: |
1092 | case KBD_RC_BACKSPACE: | ||
1093 | case KBD_RC_BACKSPACE | BUTTON_REPEAT: | ||
1094 | #endif | ||
1095 | case KBD_BACKSPACE: | ||
1096 | case KBD_BACKSPACE | BUTTON_REPEAT: | ||
1097 | if (hangul) | 912 | if (hangul) |
1098 | { | 913 | { |
1099 | if (htail) | 914 | if (htail) |
@@ -1116,12 +931,8 @@ int kbd_input(char* text, int buflen) | |||
1116 | talk_spell(text, false); /* speak revised text */ | 931 | talk_spell(text, false); /* speak revised text */ |
1117 | break; | 932 | break; |
1118 | 933 | ||
1119 | #ifdef KBD_RC_CURSOR_RIGHT | 934 | case ACTION_KBD_CURSOR_RIGHT: |
1120 | case KBD_RC_CURSOR_RIGHT: | 935 | |
1121 | case KBD_RC_CURSOR_RIGHT | BUTTON_REPEAT: | ||
1122 | #endif | ||
1123 | case KBD_CURSOR_RIGHT: | ||
1124 | case KBD_CURSOR_RIGHT | BUTTON_REPEAT: | ||
1125 | if (hangul) | 936 | if (hangul) |
1126 | hangul = false; | 937 | hangul = false; |
1127 | 938 | ||
@@ -1133,12 +944,8 @@ int kbd_input(char* text, int buflen) | |||
1133 | } | 944 | } |
1134 | break; | 945 | break; |
1135 | 946 | ||
1136 | #ifdef KBD_RC_CURSOR_LEFT | 947 | case ACTION_KBD_CURSOR_LEFT: |
1137 | case KBD_RC_CURSOR_LEFT: | 948 | |
1138 | case KBD_RC_CURSOR_LEFT | BUTTON_REPEAT: | ||
1139 | #endif | ||
1140 | case KBD_CURSOR_LEFT: | ||
1141 | case KBD_CURSOR_LEFT | BUTTON_REPEAT: | ||
1142 | if (hangul) | 949 | if (hangul) |
1143 | hangul = false; | 950 | hangul = false; |
1144 | if (editpos) | 951 | if (editpos) |