1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2011 by Tomasz Moń
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 /* Button Code Definitions for Sandisk Sansa Connect target */
29 * The format of the list is as follows
30 * { Action Code, Button code, Prereq button code }
31 * if there's no need to check the previous button's value, use BUTTON_NONE
32 * Insert LAST_ITEM_IN_LIST at the end of each mapping
34 static const struct button_mapping button_context_standard
[] = {
35 {ACTION_STD_PREV
, BUTTON_SCROLL_BACK
, BUTTON_NONE
},
36 {ACTION_STD_PREVREPEAT
, BUTTON_SCROLL_BACK
|BUTTON_REPEAT
, BUTTON_NONE
},
37 {ACTION_STD_NEXT
, BUTTON_SCROLL_FWD
, BUTTON_NONE
},
38 {ACTION_STD_NEXTREPEAT
, BUTTON_SCROLL_FWD
|BUTTON_REPEAT
, BUTTON_NONE
},
39 {ACTION_STD_OK
, BUTTON_SELECT
|BUTTON_REL
, BUTTON_SELECT
},
40 {ACTION_STD_OK
, BUTTON_RIGHT
, BUTTON_NONE
},
41 {ACTION_STD_CANCEL
, BUTTON_LEFT
, BUTTON_NONE
},
42 {ACTION_STD_CONTEXT
, BUTTON_SELECT
|BUTTON_REPEAT
, BUTTON_NONE
},
43 {ACTION_STD_MENU
, BUTTON_DOWN
|BUTTON_REL
, BUTTON_DOWN
},
44 {ACTION_STD_QUICKSCREEN
,BUTTON_DOWN
|BUTTON_REL
, BUTTON_DOWN
},
45 {ACTION_STD_HOTKEY
, BUTTON_UP
|BUTTON_REL
, BUTTON_UP
},
47 }; /* button_context_standard */
49 static const struct button_mapping button_context_wps
[] = {
50 {ACTION_WPS_PLAY
, BUTTON_DOWN
|BUTTON_REL
, BUTTON_DOWN
},
51 {ACTION_WPS_SEEKBACK
, BUTTON_LEFT
|BUTTON_REPEAT
, BUTTON_NONE
},
52 {ACTION_WPS_SEEKFWD
, BUTTON_RIGHT
|BUTTON_REPEAT
, BUTTON_NONE
},
53 {ACTION_WPS_STOPSEEK
, BUTTON_LEFT
|BUTTON_REL
, BUTTON_LEFT
|BUTTON_REPEAT
},
54 {ACTION_WPS_SKIPNEXT
, BUTTON_NEXT
, BUTTON_NONE
},
55 {ACTION_WPS_SKIPPREV
, BUTTON_PREV
, BUTTON_NONE
},
56 {ACTION_WPS_STOP
, BUTTON_POWER
, BUTTON_NONE
},
57 {ACTION_WPS_VOLDOWN
, BUTTON_VOL_DOWN
, BUTTON_NONE
},
58 {ACTION_WPS_VOLDOWN
, BUTTON_VOL_DOWN
|BUTTON_REPEAT
, BUTTON_NONE
},
59 {ACTION_WPS_VOLUP
, BUTTON_VOL_UP
, BUTTON_NONE
},
60 {ACTION_WPS_VOLUP
, BUTTON_VOL_UP
|BUTTON_REPEAT
, BUTTON_NONE
},
61 {ACTION_WPS_BROWSE
, BUTTON_SELECT
|BUTTON_REL
, BUTTON_SELECT
},
62 {ACTION_WPS_CONTEXT
, BUTTON_SELECT
|BUTTON_REPEAT
, BUTTON_SELECT
},
63 {ACTION_WPS_MENU
, BUTTON_DOWN
|BUTTON_REL
, BUTTON_DOWN
},
64 {ACTION_WPS_ABSETA_PREVDIR
, BUTTON_POWER
|BUTTON_RIGHT
, BUTTON_POWER
},
65 {ACTION_WPS_ABSETB_NEXTDIR
, BUTTON_POWER
|BUTTON_LEFT
, BUTTON_POWER
},
66 {ACTION_WPS_ABRESET
, BUTTON_POWER
|BUTTON_UP
, BUTTON_POWER
},
67 {ACTION_WPS_HOTKEY
, BUTTON_UP
|BUTTON_REL
, BUTTON_UP
},
69 }; /* button_context_wps */
71 static const struct button_mapping button_context_yesno
[] = {
72 {ACTION_YESNO_ACCEPT
, BUTTON_SELECT
, BUTTON_NONE
},
74 }; /* button_context_yesno */
76 static const struct button_mapping button_context_keyboard
[] = {
77 {ACTION_KBD_LEFT
, BUTTON_LEFT
, BUTTON_NONE
},
78 {ACTION_KBD_LEFT
, BUTTON_LEFT
|BUTTON_REPEAT
, BUTTON_NONE
},
79 {ACTION_KBD_RIGHT
, BUTTON_RIGHT
, BUTTON_NONE
},
80 {ACTION_KBD_RIGHT
, BUTTON_RIGHT
|BUTTON_REPEAT
, BUTTON_NONE
},
82 {ACTION_KBD_CURSOR_LEFT
,BUTTON_VOL_DOWN
, BUTTON_NONE
},
83 {ACTION_KBD_CURSOR_LEFT
,BUTTON_VOL_DOWN
|BUTTON_REPEAT
, BUTTON_NONE
},
84 {ACTION_KBD_CURSOR_RIGHT
,BUTTON_VOL_UP
, BUTTON_NONE
},
85 {ACTION_KBD_CURSOR_RIGHT
,BUTTON_VOL_UP
|BUTTON_REPEAT
, BUTTON_NONE
},
87 {ACTION_KBD_UP
, BUTTON_SCROLL_BACK
, BUTTON_NONE
},
88 {ACTION_KBD_UP
, BUTTON_SCROLL_BACK
|BUTTON_REPEAT
, BUTTON_NONE
},
89 {ACTION_KBD_DOWN
, BUTTON_SCROLL_FWD
, BUTTON_NONE
},
90 {ACTION_KBD_DOWN
, BUTTON_SCROLL_FWD
|BUTTON_REPEAT
, BUTTON_NONE
},
91 {ACTION_KBD_PAGE_FLIP
, BUTTON_NEXT
, BUTTON_NONE
},
92 {ACTION_KBD_BACKSPACE
, BUTTON_PREV
, BUTTON_NONE
},
93 {ACTION_KBD_BACKSPACE
, BUTTON_PREV
|BUTTON_REPEAT
, BUTTON_NONE
},
94 {ACTION_KBD_SELECT
, BUTTON_SELECT
, BUTTON_NONE
},
95 {ACTION_KBD_DONE
, BUTTON_UP
, BUTTON_NONE
},
96 {ACTION_KBD_ABORT
, BUTTON_POWER
, BUTTON_NONE
},
97 {ACTION_KBD_MORSE_INPUT
,BUTTON_DOWN
|BUTTON_REL
, BUTTON_NONE
},
98 {ACTION_KBD_MORSE_SELECT
,BUTTON_SELECT
|BUTTON_REL
, BUTTON_NONE
},
100 }; /* button_context_keyboard */
102 /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
103 const struct button_mapping
* get_context_mapping(int context
)
108 return button_context_standard
;
110 return button_context_wps
;
111 case CONTEXT_YESNOSCREEN
:
112 return button_context_yesno
;
113 case CONTEXT_KEYBOARD
:
114 case CONTEXT_MORSE_INPUT
:
115 return button_context_keyboard
;
119 case CONTEXT_MAINMENU
:
121 case CONTEXT_SETTINGS
:
122 case CONTEXT_SETTINGS
|CONTEXT_REMOTE
:
124 return button_context_standard
;
126 return button_context_standard
;