diff options
author | Mark Arigo <markarigo@gmail.com> | 2009-07-07 03:26:57 +0000 |
---|---|---|
committer | Mark Arigo <markarigo@gmail.com> | 2009-07-07 03:26:57 +0000 |
commit | fb224bd0f93389a30960102e40280f8901b9d834 (patch) | |
tree | 742761cdba8225f9c9a5b02c56cf6f793e4d257d | |
parent | a9edc8440d5e0574f2f05c378ca5f0fac7202734 (diff) | |
download | rockbox-fb224bd0f93389a30960102e40280f8901b9d834.tar.gz rockbox-fb224bd0f93389a30960102e40280f8901b9d834.zip |
Philips SA9200: fix the buttons to work with flip screen mode (does anyone use this?). Change to conventional BUTTON_LEFT/BUTTON_RIGHT names and flip the remaining directional buttons.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21698 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/keymaps/keymap-sa9200.c | 122 | ||||
-rw-r--r-- | firmware/drivers/button.c | 14 | ||||
-rwxr-xr-x | firmware/target/arm/philips/sa9200/button-sa9200.c | 8 | ||||
-rwxr-xr-x | firmware/target/arm/philips/sa9200/button-target.h | 8 |
4 files changed, 83 insertions, 69 deletions
diff --git a/apps/keymaps/keymap-sa9200.c b/apps/keymaps/keymap-sa9200.c index bf693600c8..098e216a42 100644 --- a/apps/keymaps/keymap-sa9200.c +++ b/apps/keymaps/keymap-sa9200.c | |||
@@ -52,11 +52,11 @@ static const struct button_mapping button_context_standard[] = { | |||
52 | { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, | 52 | { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, |
53 | { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 53 | { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
54 | 54 | ||
55 | { ACTION_STD_CANCEL, BUTTON_REW, BUTTON_NONE }, | ||
56 | { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, | 55 | { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, |
56 | { ACTION_STD_CANCEL, BUTTON_PREV, BUTTON_NONE }, | ||
57 | { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, | 57 | { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE }, |
58 | 58 | ||
59 | { ACTION_STD_OK, BUTTON_FFWD, BUTTON_NONE }, | 59 | { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, |
60 | { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | 60 | { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
61 | 61 | ||
62 | { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, | 62 | { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, |
@@ -71,17 +71,17 @@ static const struct button_mapping button_context_wps[] = { | |||
71 | { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, | 71 | { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, |
72 | { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | 72 | { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, |
73 | 73 | ||
74 | { ACTION_WPS_SKIPNEXT, BUTTON_FFWD|BUTTON_REL, BUTTON_FFWD }, | 74 | { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, |
75 | { ACTION_WPS_SKIPPREV, BUTTON_REW|BUTTON_REL, BUTTON_REW }, | 75 | { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
76 | 76 | ||
77 | { ACTION_WPS_SEEKBACK, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 77 | { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
78 | { ACTION_WPS_SEEKFWD, BUTTON_FFWD|BUTTON_REPEAT, BUTTON_NONE }, | 78 | { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
79 | 79 | ||
80 | { ACTION_WPS_STOPSEEK, BUTTON_REW|BUTTON_REL, BUTTON_REW|BUTTON_REPEAT }, | 80 | { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, |
81 | { ACTION_WPS_STOPSEEK, BUTTON_FFWD|BUTTON_REL, BUTTON_FFWD|BUTTON_REPEAT }, | 81 | { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, |
82 | 82 | ||
83 | { ACTION_WPS_ABSETB_NEXTDIR,BUTTON_POWER|BUTTON_RIGHT, BUTTON_POWER }, | 83 | { ACTION_WPS_ABSETB_NEXTDIR,BUTTON_POWER|BUTTON_NEXT, BUTTON_POWER }, |
84 | { ACTION_WPS_ABSETA_PREVDIR,BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER }, | 84 | { ACTION_WPS_ABSETA_PREVDIR,BUTTON_POWER|BUTTON_PREV, BUTTON_POWER }, |
85 | { ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER }, | 85 | { ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER }, |
86 | 86 | ||
87 | { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 87 | { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -95,12 +95,12 @@ static const struct button_mapping button_context_wps[] = { | |||
95 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | 95 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, |
96 | 96 | ||
97 | { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, | 97 | { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, |
98 | { ACTION_WPS_BROWSE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | 98 | { ACTION_WPS_BROWSE, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, |
99 | 99 | ||
100 | { ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, | 100 | { ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, |
101 | { ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, | 101 | { ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, |
102 | { ACTION_WPS_PITCHSCREEN, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 102 | { ACTION_WPS_PITCHSCREEN, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
103 | { ACTION_WPS_ID3SCREEN, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 103 | { ACTION_WPS_ID3SCREEN, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, |
104 | 104 | ||
105 | LAST_ITEM_IN_LIST | 105 | LAST_ITEM_IN_LIST |
106 | }; /* button_context_wps */ | 106 | }; /* button_context_wps */ |
@@ -121,37 +121,37 @@ static const struct button_mapping button_context_list[] = { | |||
121 | }; /* button_context_list */ | 121 | }; /* button_context_list */ |
122 | 122 | ||
123 | static const struct button_mapping button_context_tree[] = { | 123 | static const struct button_mapping button_context_tree[] = { |
124 | { ACTION_TREE_WPS, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 124 | { ACTION_TREE_WPS, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, |
125 | { ACTION_TREE_STOP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 125 | { ACTION_TREE_STOP, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
126 | 126 | ||
127 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | 127 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) |
128 | }; /* button_context_tree */ | 128 | }; /* button_context_tree */ |
129 | 129 | ||
130 | static const struct button_mapping button_context_listtree_scroll_with_combo[] = { | 130 | static const struct button_mapping button_context_listtree_scroll_with_combo[] = { |
131 | { ACTION_TREE_ROOT_INIT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 131 | { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
132 | 132 | ||
133 | { ACTION_TREE_PGLEFT, BUTTON_LEFT, BUTTON_NONE }, | 133 | { ACTION_TREE_PGLEFT, BUTTON_PREV, BUTTON_NONE }, |
134 | { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 134 | { ACTION_TREE_PGLEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, |
135 | 135 | ||
136 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT, BUTTON_NONE }, | 136 | { ACTION_TREE_PGRIGHT, BUTTON_NEXT, BUTTON_NONE }, |
137 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 137 | { ACTION_TREE_PGRIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
138 | 138 | ||
139 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | 139 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), |
140 | }; | 140 | }; |
141 | 141 | ||
142 | static const struct button_mapping button_context_listtree_scroll_without_combo[] = { | 142 | static const struct button_mapping button_context_listtree_scroll_without_combo[] = { |
143 | { ACTION_NONE, BUTTON_REW, BUTTON_NONE }, | 143 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, |
144 | { ACTION_NONE, BUTTON_FFWD, BUTTON_NONE }, | 144 | { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE }, |
145 | 145 | ||
146 | { ACTION_STD_OK, BUTTON_FFWD|BUTTON_REL, BUTTON_FFWD }, | 146 | { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, |
147 | { ACTION_STD_CANCEL, BUTTON_REW|BUTTON_REL, BUTTON_REW }, | 147 | { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, |
148 | { ACTION_TREE_ROOT_INIT, BUTTON_MENU, BUTTON_NONE }, | 148 | { ACTION_TREE_ROOT_INIT, BUTTON_MENU, BUTTON_NONE }, |
149 | 149 | ||
150 | { ACTION_TREE_PGLEFT, BUTTON_LEFT, BUTTON_NONE }, | 150 | { ACTION_TREE_PGLEFT, BUTTON_PREV, BUTTON_NONE }, |
151 | { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, | 151 | { ACTION_TREE_PGLEFT, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT }, |
152 | 152 | ||
153 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 153 | { ACTION_TREE_PGRIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
154 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, | 154 | { ACTION_TREE_PGRIGHT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT|BUTTON_REPEAT }, |
155 | 155 | ||
156 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | 156 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), |
157 | }; | 157 | }; |
@@ -166,21 +166,21 @@ static const struct button_mapping button_context_settings[] = { | |||
166 | { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE }, | 166 | { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE }, |
167 | { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 167 | { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
168 | 168 | ||
169 | { ACTION_STD_PREV, BUTTON_REW, BUTTON_NONE }, | 169 | { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, |
170 | { ACTION_STD_PREVREPEAT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 170 | { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
171 | 171 | ||
172 | { ACTION_STD_NEXT, BUTTON_FFWD, BUTTON_NONE }, | 172 | { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, |
173 | { ACTION_STD_NEXTREPEAT, BUTTON_FFWD|BUTTON_REPEAT, BUTTON_NONE }, | 173 | { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
174 | 174 | ||
175 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 175 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
176 | }; /* button_context_settings */ | 176 | }; /* button_context_settings */ |
177 | 177 | ||
178 | static const struct button_mapping button_context_settings_right_is_inc[] = { | 178 | static const struct button_mapping button_context_settings_right_is_inc[] = { |
179 | { ACTION_SETTINGS_INC, BUTTON_FFWD, BUTTON_NONE }, | 179 | { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, |
180 | { ACTION_SETTINGS_INCREPEAT,BUTTON_FFWD|BUTTON_REPEAT, BUTTON_NONE }, | 180 | { ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
181 | 181 | ||
182 | { ACTION_SETTINGS_DEC, BUTTON_REW, BUTTON_NONE }, | 182 | { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, |
183 | { ACTION_SETTINGS_DECREPEAT,BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 183 | { ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
184 | 184 | ||
185 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | 185 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) |
186 | }; /* button_context_settingsgraphical */ | 186 | }; /* button_context_settingsgraphical */ |
@@ -193,13 +193,13 @@ static const struct button_mapping button_context_yesno[] = { | |||
193 | 193 | ||
194 | /** Bookmark Screen **/ | 194 | /** Bookmark Screen **/ |
195 | static const struct button_mapping button_context_bmark[] = { | 195 | static const struct button_mapping button_context_bmark[] = { |
196 | { ACTION_BMS_DELETE, BUTTON_RIGHT, BUTTON_NONE }, | 196 | { ACTION_BMS_DELETE, BUTTON_NEXT, BUTTON_NONE }, |
197 | 197 | ||
198 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | 198 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), |
199 | }; /* button_context_bmark */ | 199 | }; /* button_context_bmark */ |
200 | 200 | ||
201 | static const struct button_mapping button_context_quickscreen[] = { | 201 | static const struct button_mapping button_context_quickscreen[] = { |
202 | { ACTION_NONE, BUTTON_REW, BUTTON_NONE }, | 202 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, |
203 | { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE }, | 203 | { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE }, |
204 | 204 | ||
205 | { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, | 205 | { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, |
@@ -208,11 +208,11 @@ static const struct button_mapping button_context_quickscreen[] = { | |||
208 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, | 208 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, |
209 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 209 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
210 | 210 | ||
211 | { ACTION_QS_LEFT, BUTTON_REW|BUTTON_REL, BUTTON_NONE }, | 211 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, |
212 | { ACTION_QS_LEFT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 212 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
213 | 213 | ||
214 | { ACTION_QS_RIGHT, BUTTON_FFWD|BUTTON_REL, BUTTON_NONE }, | 214 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, |
215 | { ACTION_QS_RIGHT, BUTTON_FFWD|BUTTON_REPEAT, BUTTON_NONE }, | 215 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
216 | 216 | ||
217 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 217 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
218 | }; /* button_context_quickscreen */ | 218 | }; /* button_context_quickscreen */ |
@@ -220,7 +220,7 @@ static const struct button_mapping button_context_quickscreen[] = { | |||
220 | static const struct button_mapping button_context_pitchscreen[] = { | 220 | static const struct button_mapping button_context_pitchscreen[] = { |
221 | { ACTION_PS_RESET, BUTTON_PLAY, BUTTON_NONE }, | 221 | { ACTION_PS_RESET, BUTTON_PLAY, BUTTON_NONE }, |
222 | { ACTION_PS_EXIT, BUTTON_MENU, BUTTON_NONE }, | 222 | { ACTION_PS_EXIT, BUTTON_MENU, BUTTON_NONE }, |
223 | { ACTION_PS_EXIT, BUTTON_LEFT, BUTTON_NONE }, | 223 | { ACTION_PS_EXIT, BUTTON_PREV, BUTTON_NONE }, |
224 | { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE }, | 224 | { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE }, |
225 | 225 | ||
226 | { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE }, | 226 | { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE }, |
@@ -229,14 +229,14 @@ static const struct button_mapping button_context_pitchscreen[] = { | |||
229 | { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE }, | 229 | { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE }, |
230 | { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 230 | { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
231 | 231 | ||
232 | { ACTION_PS_NUDGE_LEFT, BUTTON_REW, BUTTON_NONE }, | 232 | { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE }, |
233 | { ACTION_PS_NUDGE_LEFTOFF, BUTTON_REW|BUTTON_REL, BUTTON_NONE }, | 233 | { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, |
234 | 234 | ||
235 | { ACTION_PS_NUDGE_RIGHT, BUTTON_FFWD, BUTTON_NONE }, | 235 | { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, |
236 | { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_FFWD|BUTTON_REL, BUTTON_NONE }, | 236 | { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, |
237 | 237 | ||
238 | { ACTION_PS_SLOWER, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 238 | { ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
239 | { ACTION_PS_FASTER, BUTTON_FFWD|BUTTON_REPEAT, BUTTON_NONE }, | 239 | { ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
240 | 240 | ||
241 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | 241 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), |
242 | }; /* button_context_pitchcreen */ | 242 | }; /* button_context_pitchcreen */ |
@@ -246,11 +246,11 @@ static const struct button_mapping button_context_keyboard[] = { | |||
246 | { ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, | 246 | { ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE }, |
247 | { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, | 247 | { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, |
248 | 248 | ||
249 | { ACTION_KBD_LEFT, BUTTON_REW, BUTTON_NONE }, | 249 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, |
250 | { ACTION_KBD_LEFT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | 250 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, |
251 | 251 | ||
252 | { ACTION_KBD_RIGHT, BUTTON_FFWD, BUTTON_NONE }, | 252 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, |
253 | { ACTION_KBD_RIGHT, BUTTON_FFWD|BUTTON_REPEAT, BUTTON_NONE }, | 253 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, |
254 | 254 | ||
255 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | 255 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, |
256 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 256 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -258,11 +258,11 @@ static const struct button_mapping button_context_keyboard[] = { | |||
258 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | 258 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, |
259 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 259 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
260 | 260 | ||
261 | { ACTION_KBD_CURSOR_LEFT, BUTTON_LEFT, BUTTON_NONE }, | 261 | { ACTION_KBD_CURSOR_LEFT, BUTTON_PREV, BUTTON_NONE }, |
262 | { ACTION_KBD_CURSOR_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | 262 | { ACTION_KBD_CURSOR_LEFT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, |
263 | 263 | ||
264 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | 264 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_NEXT, BUTTON_NONE }, |
265 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | 265 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, |
266 | 266 | ||
267 | { ACTION_KBD_BACKSPACE, BUTTON_VOL_UP, BUTTON_NONE }, | 267 | { ACTION_KBD_BACKSPACE, BUTTON_VOL_UP, BUTTON_NONE }, |
268 | { ACTION_KBD_BACKSPACE, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | 268 | { ACTION_KBD_BACKSPACE, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -278,11 +278,11 @@ static const struct button_mapping button_context_keyboard[] = { | |||
278 | #ifdef HAVE_USBSTACK | 278 | #ifdef HAVE_USBSTACK |
279 | static const struct button_mapping button_context_usb_hid[] = { | 279 | static const struct button_mapping button_context_usb_hid[] = { |
280 | { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, | 280 | { ACTION_USB_HID_PLAY, BUTTON_PLAY, BUTTON_NONE }, |
281 | { ACTION_USB_HID_STOP, BUTTON_LEFT, BUTTON_NONE }, | 281 | { ACTION_USB_HID_STOP, BUTTON_PREV, BUTTON_NONE }, |
282 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, | 282 | { ACTION_USB_HID_STOP, BUTTON_POWER, BUTTON_NONE }, |
283 | 283 | ||
284 | { ACTION_USB_HID_SKIPPREV, BUTTON_REW, BUTTON_NONE }, | 284 | { ACTION_USB_HID_SKIPPREV, BUTTON_LEFT, BUTTON_NONE }, |
285 | { ACTION_USB_HID_SKIPNEXT, BUTTON_FFWD, BUTTON_NONE }, | 285 | { ACTION_USB_HID_SKIPNEXT, BUTTON_RIGHT, BUTTON_NONE }, |
286 | 286 | ||
287 | { ACTION_USB_HID_VOLUP, BUTTON_UP, BUTTON_NONE }, | 287 | { ACTION_USB_HID_VOLUP, BUTTON_UP, BUTTON_NONE }, |
288 | { ACTION_USB_HID_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | 288 | { ACTION_USB_HID_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, |
@@ -294,7 +294,7 @@ static const struct button_mapping button_context_usb_hid[] = { | |||
294 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | 294 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, |
295 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | 295 | { ACTION_USB_HID_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, |
296 | 296 | ||
297 | { ACTION_USB_HID_MUTE, BUTTON_RIGHT, BUTTON_NONE }, | 297 | { ACTION_USB_HID_MUTE, BUTTON_NEXT, BUTTON_NONE }, |
298 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, | 298 | { ACTION_USB_HID_MENU, BUTTON_MENU, BUTTON_NONE }, |
299 | 299 | ||
300 | LAST_ITEM_IN_LIST | 300 | LAST_ITEM_IN_LIST |
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index 6fbe5de229..6f6eb8f222 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c | |||
@@ -445,6 +445,10 @@ static int button_flip(int button) | |||
445 | #if CONFIG_KEYPAD == SANSA_C200_PAD | 445 | #if CONFIG_KEYPAD == SANSA_C200_PAD |
446 | | BUTTON_VOL_UP | BUTTON_VOL_DOWN | 446 | | BUTTON_VOL_UP | BUTTON_VOL_DOWN |
447 | #endif | 447 | #endif |
448 | #if CONFIG_KEYPAD == PHILIPS_SA9200_PAD | ||
449 | | BUTTON_VOL_UP | BUTTON_VOL_DOWN | ||
450 | | BUTTON_NEXT | BUTTON_PREV | ||
451 | #endif | ||
448 | ); | 452 | ); |
449 | 453 | ||
450 | if (button & BUTTON_LEFT) | 454 | if (button & BUTTON_LEFT) |
@@ -475,6 +479,16 @@ static int button_flip(int button) | |||
475 | if (button & BUTTON_VOL_DOWN) | 479 | if (button & BUTTON_VOL_DOWN) |
476 | newbutton |= BUTTON_VOL_UP; | 480 | newbutton |= BUTTON_VOL_UP; |
477 | #endif | 481 | #endif |
482 | #if CONFIG_KEYPAD == PHILIPS_SA9200_PAD | ||
483 | if (button & BUTTON_VOL_UP) | ||
484 | newbutton |= BUTTON_VOL_DOWN; | ||
485 | if (button & BUTTON_VOL_DOWN) | ||
486 | newbutton |= BUTTON_VOL_UP; | ||
487 | if (button & BUTTON_NEXT) | ||
488 | newbutton |= BUTTON_PREV; | ||
489 | if (button & BUTTON_PREV) | ||
490 | newbutton |= BUTTON_NEXT; | ||
491 | #endif | ||
478 | 492 | ||
479 | return newbutton; | 493 | return newbutton; |
480 | } | 494 | } |
diff --git a/firmware/target/arm/philips/sa9200/button-sa9200.c b/firmware/target/arm/philips/sa9200/button-sa9200.c index be37111ecb..0be77c66c9 100755 --- a/firmware/target/arm/philips/sa9200/button-sa9200.c +++ b/firmware/target/arm/philips/sa9200/button-sa9200.c | |||
@@ -51,10 +51,10 @@ void button_int(void) | |||
51 | if (val == MEP_BUTTON_HEADER) | 51 | if (val == MEP_BUTTON_HEADER) |
52 | { | 52 | { |
53 | /* Buttons packet */ | 53 | /* Buttons packet */ |
54 | if (data[1] & 0x1) int_btn |= BUTTON_FFWD; | 54 | if (data[1] & 0x1) int_btn |= BUTTON_RIGHT; |
55 | if (data[1] & 0x2) int_btn |= BUTTON_RIGHT; | 55 | if (data[1] & 0x2) int_btn |= BUTTON_NEXT; |
56 | if (data[1] & 0x4) int_btn |= BUTTON_LEFT; | 56 | if (data[1] & 0x4) int_btn |= BUTTON_PREV; |
57 | if (data[1] & 0x8) int_btn |= BUTTON_REW; | 57 | if (data[1] & 0x8) int_btn |= BUTTON_LEFT; |
58 | if (data[2] & 0x1) int_btn |= BUTTON_MENU; | 58 | if (data[2] & 0x1) int_btn |= BUTTON_MENU; |
59 | } | 59 | } |
60 | else if (val == MEP_ABSOLUTE_HEADER) | 60 | else if (val == MEP_ABSOLUTE_HEADER) |
diff --git a/firmware/target/arm/philips/sa9200/button-target.h b/firmware/target/arm/philips/sa9200/button-target.h index 6259aa0737..faed943208 100755 --- a/firmware/target/arm/philips/sa9200/button-target.h +++ b/firmware/target/arm/philips/sa9200/button-target.h | |||
@@ -43,10 +43,10 @@ void button_int(void); | |||
43 | #define BUTTON_POWER 0x00000001 | 43 | #define BUTTON_POWER 0x00000001 |
44 | #define BUTTON_PLAY 0x00000002 | 44 | #define BUTTON_PLAY 0x00000002 |
45 | #define BUTTON_MENU 0x00000004 | 45 | #define BUTTON_MENU 0x00000004 |
46 | #define BUTTON_LEFT 0x00000008 | 46 | #define BUTTON_PREV 0x00000008 |
47 | #define BUTTON_RIGHT 0x00000010 | 47 | #define BUTTON_NEXT 0x00000010 |
48 | #define BUTTON_REW 0x00000020 | 48 | #define BUTTON_LEFT 0x00000020 |
49 | #define BUTTON_FFWD 0x00000040 | 49 | #define BUTTON_RIGHT 0x00000040 |
50 | #define BUTTON_UP 0x00000080 | 50 | #define BUTTON_UP 0x00000080 |
51 | #define BUTTON_DOWN 0x00000100 | 51 | #define BUTTON_DOWN 0x00000100 |
52 | #define BUTTON_VOL_UP 0x00000200 | 52 | #define BUTTON_VOL_UP 0x00000200 |