summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/keymaps/keymap-hdd6330.c85
-rw-r--r--firmware/drivers/synaptics-mep.c2
-rw-r--r--firmware/target/arm/debug-target.h6
-rw-r--r--firmware/target/arm/philips/hdd6330/button-hdd6330.c6
-rw-r--r--firmware/target/arm/philips/hdd6330/button-target.h4
-rw-r--r--uisimulator/buttonmap/gogear-hdd6330.c3
6 files changed, 69 insertions, 37 deletions
diff --git a/apps/keymaps/keymap-hdd6330.c b/apps/keymaps/keymap-hdd6330.c
index fc4ad67822..3d5c967baa 100644
--- a/apps/keymaps/keymap-hdd6330.c
+++ b/apps/keymaps/keymap-hdd6330.c
@@ -50,8 +50,8 @@ static const struct button_mapping button_context_standard[] = {
50 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 50 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
51 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, 51 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
52 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 52 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
53 { ACTION_STD_CANCEL, BUTTON_PREV, BUTTON_NONE }, 53 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
54 { ACTION_STD_OK, BUTTON_NEXT, BUTTON_NONE }, 54 { ACTION_STD_OK, BUTTON_TAP, BUTTON_NONE },
55 { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 55 { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
56 { ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, 56 { ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
57 { ACTION_STD_QUICKSCREEN, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW }, 57 { ACTION_STD_QUICKSCREEN, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW },
@@ -62,26 +62,26 @@ static const struct button_mapping button_context_standard[] = {
62static const struct button_mapping button_context_wps[] = { 62static const struct button_mapping button_context_wps[] = {
63 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 63 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
64 { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 64 { ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
65 { ACTION_WPS_SKIPNEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
66 { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV }, 65 { ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
66 { ACTION_WPS_SKIPNEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
67 { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, 67 { ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
68 { ACTION_WPS_SEEKFWD, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, 68 { ACTION_WPS_SEEKFWD, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
69 { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT }, 69 { ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT },
70 { ACTION_WPS_STOPSEEK, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT|BUTTON_REPEAT }, 70 { ACTION_WPS_STOPSEEK, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT|BUTTON_REPEAT },
71 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
72 { ACTION_WPS_VOLDOWN, BUTTON_DOWN, BUTTON_NONE }, 71 { ACTION_WPS_VOLDOWN, BUTTON_DOWN, BUTTON_NONE },
72 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
73 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, 73 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
74 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 74 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
75 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
76 { ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE }, 75 { ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE },
77 { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 76 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
78 { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, 77 { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
78 { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
79 { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 79 { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
80 { ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, 80 { ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
81 { ACTION_WPS_HOTKEY, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW }, 81 { ACTION_WPS_HOTKEY, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW },
82 { ACTION_WPS_QUICKSCREEN, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW }, 82 { ACTION_WPS_QUICKSCREEN, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW },
83 { ACTION_WPS_VIEW_PLAYLIST, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT},
84 { ACTION_WPS_BROWSE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, 83 { ACTION_WPS_BROWSE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
84 { ACTION_WPS_VIEW_PLAYLIST, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT},
85 85
86 LAST_ITEM_IN_LIST 86 LAST_ITEM_IN_LIST
87}; /* button_context_wps */ 87}; /* button_context_wps */
@@ -159,17 +159,17 @@ static const struct button_mapping button_context_settings_right_is_inc[] = {
159}; /* button_context_settingsgraphical */ 159}; /* button_context_settingsgraphical */
160 160
161static const struct button_mapping button_context_yesno[] = { 161static const struct button_mapping button_context_yesno[] = {
162 { ACTION_YESNO_ACCEPT, BUTTON_NEXT, BUTTON_NONE }, 162 { ACTION_YESNO_ACCEPT, BUTTON_TAP, BUTTON_NONE },
163 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) 163 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
164}; /* button_context_settings_yesno */ 164}; /* button_context_settings_yesno */
165 165
166static const struct button_mapping button_context_colorchooser[] = { 166static const struct button_mapping button_context_colorchooser[] = {
167 { ACTION_STD_OK, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, 167 { ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
168 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS), 168 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
169}; /* button_context_colorchooser */ 169}; /* button_context_colorchooser */
170 170
171static const struct button_mapping button_context_eq[] = { 171static const struct button_mapping button_context_eq[] = {
172 { ACTION_STD_OK, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE }, 172 { ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
173 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS), 173 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
174}; /* button_context_eq */ 174}; /* button_context_eq */
175 175
@@ -181,8 +181,8 @@ static const struct button_mapping button_context_bmark[] = {
181}; /* button_context_bmark */ 181}; /* button_context_bmark */
182 182
183static const struct button_mapping button_context_time[] = { 183static const struct button_mapping button_context_time[] = {
184 { ACTION_STD_CANCEL, BUTTON_PREV, BUTTON_NONE }, 184 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
185 { ACTION_STD_OK, BUTTON_NEXT, BUTTON_NONE }, 185 { ACTION_STD_OK, BUTTON_TAP, BUTTON_NONE },
186 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS), 186 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS),
187}; /* button_context_time */ 187}; /* button_context_time */
188 188
@@ -211,7 +211,7 @@ static const struct button_mapping button_context_pitchscreen[] = {
211 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, 211 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
212 { ACTION_PS_TOGGLE_MODE, BUTTON_PLAY, BUTTON_NONE }, 212 { ACTION_PS_TOGGLE_MODE, BUTTON_PLAY, BUTTON_NONE },
213 { ACTION_PS_RESET, BUTTON_VIEW, BUTTON_NONE }, 213 { ACTION_PS_RESET, BUTTON_VIEW, BUTTON_NONE },
214 { ACTION_PS_EXIT, BUTTON_PREV, BUTTON_NONE }, 214 { ACTION_PS_EXIT, BUTTON_MENU, BUTTON_NONE },
215 { ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 215 { ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
216 { ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 216 { ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
217 217
@@ -223,25 +223,40 @@ static const struct button_mapping button_context_keyboard[] = {
223 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 223 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
224 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, 224 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
225 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 225 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
226 { ACTION_KBD_CURSOR_LEFT, BUTTON_VIEW|BUTTON_LEFT, BUTTON_NONE },
227 { ACTION_KBD_CURSOR_LEFT, BUTTON_VIEW|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
228 { ACTION_KBD_CURSOR_RIGHT, BUTTON_VIEW|BUTTON_RIGHT, BUTTON_NONE },
229 { ACTION_KBD_CURSOR_RIGHT, BUTTON_VIEW|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
230 { ACTION_KBD_SELECT, BUTTON_PLAY, BUTTON_NONE },
231 { ACTION_KBD_PAGE_FLIP, BUTTON_VIEW|BUTTON_MENU, BUTTON_NONE },
232 { ACTION_KBD_DONE, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
233 { ACTION_KBD_ABORT, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
234 { ACTION_KBD_BACKSPACE, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
235 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, 226 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
236 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 227 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
237 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, 228 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
238 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 229 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
239 { ACTION_KBD_MORSE_INPUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, 230 { ACTION_KBD_SELECT, BUTTON_TAP, BUTTON_NONE },
231 { ACTION_KBD_BACKSPACE, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
232 { ACTION_KBD_PAGE_FLIP, BUTTON_VOL_UP, BUTTON_NONE },
233 { ACTION_KBD_DONE, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW },
234 { ACTION_KBD_ABORT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
235 { ACTION_KBD_MORSE_INPUT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NEXT },
240 { ACTION_KBD_MORSE_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE }, 236 { ACTION_KBD_MORSE_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE },
241 237
242 LAST_ITEM_IN_LIST 238 LAST_ITEM_IN_LIST
243}; /* button_context_keyboard */ 239}; /* button_context_keyboard */
244 240
241#ifdef HAVE_RECORDING
242const struct button_mapping button_context_recscreen[] = {
243 { ACTION_REC_NEWFILE, BUTTON_TAP|BUTTON_REL, BUTTON_TAP },
244 { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
245 { ACTION_REC_PAUSE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
246 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
247 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
248 { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
249 { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
250 { ACTION_STD_PREV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
251 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
252 { ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
253 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
254 { ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
255
256 LAST_ITEM_IN_LIST
257}; /* button_context_recscreen */
258#endif
259
245#if CONFIG_TUNER 260#if CONFIG_TUNER
246static const struct button_mapping button_context_radio[] = { 261static const struct button_mapping button_context_radio[] = {
247 { ACTION_FM_MENU, BUTTON_MENU | BUTTON_REL, BUTTON_MENU }, 262 { ACTION_FM_MENU, BUTTON_MENU | BUTTON_REL, BUTTON_MENU },
@@ -259,8 +274,8 @@ static const struct button_mapping button_context_radio[] = {
259static const struct button_mapping button_context_usb_hid[] = { 274static const struct button_mapping button_context_usb_hid[] = {
260 { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_PLAY|BUTTON_NEXT|BUTTON_REL, BUTTON_PLAY|BUTTON_NEXT }, 275 { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_PLAY|BUTTON_NEXT|BUTTON_REL, BUTTON_PLAY|BUTTON_NEXT },
261 { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_PLAY|BUTTON_NEXT|BUTTON_REPEAT, BUTTON_PLAY|BUTTON_NEXT }, 276 { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_PLAY|BUTTON_NEXT|BUTTON_REPEAT, BUTTON_PLAY|BUTTON_NEXT },
262 { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_PLAY|BUTTON_PREV|BUTTON_REL, BUTTON_PLAY|BUTTON_NEXT }, 277 { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_PLAY|BUTTON_PREV|BUTTON_REL, BUTTON_PLAY|BUTTON_PREV },
263 { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_PLAY|BUTTON_PREV|BUTTON_REPEAT, BUTTON_PLAY|BUTTON_NEXT }, 278 { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_PLAY|BUTTON_PREV|BUTTON_REPEAT, BUTTON_PLAY|BUTTON_PREV },
264 279
265 LAST_ITEM_IN_LIST 280 LAST_ITEM_IN_LIST
266}; /* button_context_usb_hid */ 281}; /* button_context_usb_hid */
@@ -270,11 +285,15 @@ static const struct button_mapping button_context_usb_hid_mode_multimedia[] = {
270 { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 285 { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
271 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOL_UP, BUTTON_NONE }, 286 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOL_UP, BUTTON_NONE },
272 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 287 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
288 { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_DOWN, BUTTON_NONE },
289 { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
290 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_UP, BUTTON_NONE },
291 { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
273 { ACTION_USB_HID_MULTIMEDIA_VOLUME_MUTE, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 292 { ACTION_USB_HID_MULTIMEDIA_VOLUME_MUTE, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
274 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_PLAY_PAUSE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 293 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_PLAY_PAUSE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
275 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 294 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
276 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, 295 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_PREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
277 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT}, 296 { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_NEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
278 297
279 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) 298 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
280}; /* button_context_usb_hid_mode_multimedia */ 299}; /* button_context_usb_hid_mode_multimedia */
@@ -288,10 +307,10 @@ static const struct button_mapping button_context_usb_hid_mode_presentation[] =
288 { ACTION_USB_HID_PRESENTATION_SLIDE_LAST, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT }, 307 { ACTION_USB_HID_PRESENTATION_SLIDE_LAST, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
289 { ACTION_USB_HID_PRESENTATION_SCREEN_BLACK, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW }, 308 { ACTION_USB_HID_PRESENTATION_SCREEN_BLACK, BUTTON_VIEW|BUTTON_REL, BUTTON_VIEW },
290 { ACTION_USB_HID_PRESENTATION_SCREEN_WHITE, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW }, 309 { ACTION_USB_HID_PRESENTATION_SCREEN_WHITE, BUTTON_VIEW|BUTTON_REPEAT, BUTTON_VIEW },
291 { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_VOL_UP|BUTTON_REL, BUTTON_VOL_UP }, 310 { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_VOL_DOWN|BUTTON_REL, BUTTON_VOL_DOWN },
292 { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_VOL_UP }, 311 { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_VOL_DOWN },
293 { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_VOL_DOWN|BUTTON_REL, BUTTON_VOL_DOWN }, 312 { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_VOL_UP|BUTTON_REL, BUTTON_VOL_UP },
294 { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_VOL_DOWN }, 313 { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_VOL_UP },
295 { ACTION_USB_HID_PRESENTATION_MOUSE_CLICK, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 314 { ACTION_USB_HID_PRESENTATION_MOUSE_CLICK, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
296 { ACTION_USB_HID_PRESENTATION_MOUSE_OVER, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, 315 { ACTION_USB_HID_PRESENTATION_MOUSE_OVER, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
297 316
@@ -403,6 +422,10 @@ const struct button_mapping* get_context_mapping(int context)
403 case CONTEXT_KEYBOARD: 422 case CONTEXT_KEYBOARD:
404 case CONTEXT_MORSE_INPUT: 423 case CONTEXT_MORSE_INPUT:
405 return button_context_keyboard; 424 return button_context_keyboard;
425#ifdef HAVE_RECORDING
426 case CONTEXT_RECSCREEN:
427 return button_context_recscreen;
428#endif
406#if CONFIG_TUNER 429#if CONFIG_TUNER
407 case CONTEXT_FM: 430 case CONTEXT_FM:
408 return button_context_radio; 431 return button_context_radio;
diff --git a/firmware/drivers/synaptics-mep.c b/firmware/drivers/synaptics-mep.c
index 48139534f2..01845bfe0c 100644
--- a/firmware/drivers/synaptics-mep.c
+++ b/firmware/drivers/synaptics-mep.c
@@ -561,6 +561,8 @@ int touchpad_read_device(char *data, int len)
561/* for HDD6330 an absolute packet will follow for sensor nr 0 which we ignore */ 561/* for HDD6330 an absolute packet will follow for sensor nr 0 which we ignore */
562#if defined(PHILIPS_HDD6330) 562#if defined(PHILIPS_HDD6330)
563 if ((data[3]>>6) == 0) syn_read(tmp, 4); 563 if ((data[3]>>6) == 0) syn_read(tmp, 4);
564 // relay tap gesture packet
565 if (tmp[1]==0x02) { data[1]=0x02; data[2]=0x00; data[3]=0x00; }
564#endif 566#endif
565 logf(" pos %d", val); 567 logf(" pos %d", val);
566 logf(" z %d", data[3]); 568 logf(" z %d", data[3]);
diff --git a/firmware/target/arm/debug-target.h b/firmware/target/arm/debug-target.h
index 28f95327ad..b7a1f7e5cb 100644
--- a/firmware/target/arm/debug-target.h
+++ b/firmware/target/arm/debug-target.h
@@ -30,16 +30,14 @@
30# define DEBUG_CANCEL BUTTON_MENU 30# define DEBUG_CANCEL BUTTON_MENU
31 31
32#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 32#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
33 (CONFIG_KEYPAD == SANSA_C200_PAD) 33 (CONFIG_KEYPAD == SANSA_C200_PAD) || \
34 (CONFIG_KEYPAD == PHILIPS_HDD6330_PAD)
34# define DEBUG_CANCEL BUTTON_LEFT 35# define DEBUG_CANCEL BUTTON_LEFT
35 36
36#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) || \ 37#elif (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) || \
37 (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) 38 (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD)
38# define DEBUG_CANCEL BUTTON_POWER 39# define DEBUG_CANCEL BUTTON_POWER
39 40
40#elif (CONFIG_KEYPAD == PHILIPS_HDD6330_PAD)
41# define DEBUG_CANCEL BUTTON_PREV
42
43#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD) 41#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
44# define DEBUG_CANCEL BUTTON_PLAY 42# define DEBUG_CANCEL BUTTON_PLAY
45 43
diff --git a/firmware/target/arm/philips/hdd6330/button-hdd6330.c b/firmware/target/arm/philips/hdd6330/button-hdd6330.c
index fc171c72ba..4e40de57ab 100644
--- a/firmware/target/arm/philips/hdd6330/button-hdd6330.c
+++ b/firmware/target/arm/philips/hdd6330/button-hdd6330.c
@@ -26,7 +26,7 @@
26#include "synaptics-mep.h" 26#include "synaptics-mep.h"
27 27
28/*#define LOGF_ENABLE*/ 28/*#define LOGF_ENABLE*/
29#include "logf.h" 29/*#include "logf.h"*/
30 30
31static int int_btn = BUTTON_NONE; 31static int int_btn = BUTTON_NONE;
32#ifndef BOOTLOADER 32#ifndef BOOTLOADER
@@ -78,6 +78,10 @@ void button_int(void)
78 if (data[1] & 0x8) 78 if (data[1] & 0x8)
79 int_btn |= BUTTON_VIEW; 79 int_btn |= BUTTON_VIEW;
80 } 80 }
81 else if ((data[1] & MEP_GESTURE) && (data[3] >> 6) == 0) /* index = 0 */
82 {
83 int_btn |= BUTTON_TAP;
84 }
81 else if ((data[0] == MEP_ABSOLUTE_HEADER)) 85 else if ((data[0] == MEP_ABSOLUTE_HEADER))
82 { 86 {
83 if (data[1] & MEP_FINGER) 87 if (data[1] & MEP_FINGER)
diff --git a/firmware/target/arm/philips/hdd6330/button-target.h b/firmware/target/arm/philips/hdd6330/button-target.h
index 492a5014e5..8d4ed5ef5f 100644
--- a/firmware/target/arm/philips/hdd6330/button-target.h
+++ b/firmware/target/arm/philips/hdd6330/button-target.h
@@ -29,6 +29,7 @@
29#define MEP_BUTTON_ID 0x9 29#define MEP_BUTTON_ID 0x9
30#define MEP_ABSOLUTE_HEADER 0x0b 30#define MEP_ABSOLUTE_HEADER 0x0b
31#define MEP_FINGER 0x01 31#define MEP_FINGER 0x01
32#define MEP_GESTURE 0x02
32 33
33#define HAS_BUTTON_HOLD 34#define HAS_BUTTON_HOLD
34 35
@@ -53,7 +54,8 @@ void button_int(void);
53#define BUTTON_NEXT 0x00000200 54#define BUTTON_NEXT 0x00000200
54#define BUTTON_PREV 0x00000400 55#define BUTTON_PREV 0x00000400
55#define BUTTON_PLAY 0x00000800 56#define BUTTON_PLAY 0x00000800
56#define BUTTON_MAIN 0x00000fff 57#define BUTTON_TAP 0x00001000
58#define BUTTON_MAIN 0x00001fff
57 59
58/* No Remote control */ 60/* No Remote control */
59#define BUTTON_REMOTE 0 61#define BUTTON_REMOTE 0
diff --git a/uisimulator/buttonmap/gogear-hdd6330.c b/uisimulator/buttonmap/gogear-hdd6330.c
index ee3ad56971..6451e27973 100644
--- a/uisimulator/buttonmap/gogear-hdd6330.c
+++ b/uisimulator/buttonmap/gogear-hdd6330.c
@@ -70,6 +70,9 @@ int key_to_button(int keyboard_button)
70 case SDLK_KP_MINUS: 70 case SDLK_KP_MINUS:
71 new_btn = BUTTON_VOL_DOWN; 71 new_btn = BUTTON_VOL_DOWN;
72 break; 72 break;
73 case SDLK_t:
74 new_btn = BUTTON_TAP;
75 break;
73 } 76 }
74 return new_btn; 77 return new_btn;
75} 78}