summaryrefslogtreecommitdiff
path: root/apps/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'apps/keymaps')
-rw-r--r--apps/keymaps/keymap-gigabeat.c25
-rw-r--r--apps/keymaps/keymap-h10.c17
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c119
-rw-r--r--apps/keymaps/keymap-ifp7xx.c18
-rw-r--r--apps/keymaps/keymap-ipod.c16
-rw-r--r--apps/keymaps/keymap-ondio.c20
-rw-r--r--apps/keymaps/keymap-recorder.c25
-rw-r--r--apps/keymaps/keymap-x5.c19
8 files changed, 247 insertions, 12 deletions
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
223const 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
223const struct button_mapping* get_context_mapping(int context) 246const 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
155const 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 */
158const struct button_mapping* get_context_mapping(int context) 172const 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
235const 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
564const 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
593const 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 */
541static const struct button_mapping 624static 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
562static int _remote_type = 0; 647static 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
137const 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 */
138const struct button_mapping* get_context_mapping(int context) 154const 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
149const 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 */
150const struct button_mapping* get_context_mapping(int context) 164const 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
140const 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
140const struct button_mapping* get_context_mapping( int context ) 156const 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
164const 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
219const 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
220static const struct button_mapping* get_context_mapping_remote( int context ) 236static 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: