summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2018-11-05 13:01:55 +0100
committerSolomon Peachy <pizza@shaftnet.org>2020-04-06 18:15:41 +0200
commit180cef835bf40d0081895773aaa637ac926bb0ac (patch)
tree48c380d76c0ea40931cb5e863b40fc5dfa1ecba4 /apps/plugins
parentced3a20aacf26642ccc3ffd136f64247c67e5769 (diff)
downloadrockbox-180cef835bf40d0081895773aaa637ac926bb0ac.tar.gz
rockbox-180cef835bf40d0081895773aaa637ac926bb0ac.zip
xDuoo X3II and X20 port
Provided by Roman Stolyarov Integration, Refactoring, and Upstreaming by Solomon Peachy X3II confirmed working by forum tester, X20 is nearly identical. This includes bootloader, main firmware, and the flash image patcher. Eventual Todo: * Further refactor AGPTek Rocker & xduoo hiby bootloaders * Further refactor AGPTek Rocker & xduoo hosted platform code Change-Id: I34a674051d368efcc75d1d18c725971fe46c3eee
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/battery_bench.c12
-rw-r--r--apps/plugins/blackjack.c32
-rw-r--r--apps/plugins/brickmania.c20
-rw-r--r--apps/plugins/calculator.c22
-rw-r--r--apps/plugins/calendar.c20
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h28
-rw-r--r--apps/plugins/chessclock.c20
-rw-r--r--apps/plugins/chip8.c16
-rw-r--r--apps/plugins/chopper.c10
-rw-r--r--apps/plugins/clix.c16
-rw-r--r--apps/plugins/cube.c20
-rw-r--r--apps/plugins/doom/i_video.c22
-rw-r--r--apps/plugins/fft/fft.c18
-rw-r--r--apps/plugins/flipit.c24
-rw-r--r--apps/plugins/fractals/fractal.h24
-rw-r--r--apps/plugins/goban/goban.h24
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h30
-rw-r--r--apps/plugins/invadrox.c14
-rw-r--r--apps/plugins/jewels.c20
-rw-r--r--apps/plugins/lib/keymaps.h16
-rw-r--r--apps/plugins/lib/pluginlib_actions.c30
-rw-r--r--apps/plugins/midi/midiplay.c16
-rw-r--r--apps/plugins/minesweeper.c26
-rw-r--r--apps/plugins/mp3_encoder.c13
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c20
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c18
-rw-r--r--apps/plugins/oscilloscope.c29
-rw-r--r--apps/plugins/pacbox/pacbox.h19
-rw-r--r--apps/plugins/pegbox.c34
-rw-r--r--apps/plugins/pong.c16
-rw-r--r--apps/plugins/reversi/reversi-gui.h22
-rw-r--r--apps/plugins/rockblox.c24
-rw-r--r--apps/plugins/rockboy/rockboy.c20
-rw-r--r--apps/plugins/sliding_puzzle.c19
-rw-r--r--apps/plugins/snake.c16
-rw-r--r--apps/plugins/snake2.c18
-rw-r--r--apps/plugins/sokoban.c32
-rw-r--r--apps/plugins/solitaire.c38
-rw-r--r--apps/plugins/spacerocks.c18
-rw-r--r--apps/plugins/star.c32
-rw-r--r--apps/plugins/stopwatch.c16
-rw-r--r--apps/plugins/sudoku/sudoku.h28
-rw-r--r--apps/plugins/text_viewer/tv_button.h24
-rw-r--r--apps/plugins/vu_meter.c22
-rw-r--r--apps/plugins/wormlet.c18
-rw-r--r--apps/plugins/xobox.c18
-rw-r--r--apps/plugins/zxbox/keymaps.h16
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c18
48 files changed, 1028 insertions, 0 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 21b2ce4963..f24ad579e8 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -298,6 +298,18 @@
298#define BATTERY_ON_TXT "PLAY - start" 298#define BATTERY_ON_TXT "PLAY - start"
299#define BATTERY_OFF_TXT "POWER" 299#define BATTERY_OFF_TXT "POWER"
300 300
301#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
302#define BATTERY_ON BUTTON_PLAY
303#define BATTERY_OFF BUTTON_POWER
304#define BATTERY_ON_TXT "Play - start"
305#define BATTERY_OFF_TXT "POWER"
306
307#elif CONFIG_KEYPAD == XDUOO_X20_PAD
308#define BATTERY_ON BUTTON_PLAY
309#define BATTERY_OFF BUTTON_POWER
310#define BATTERY_ON_TXT "Play - start"
311#define BATTERY_OFF_TXT "POWER"
312
301#else 313#else
302#error No keymap defined! 314#error No keymap defined!
303#endif 315#endif
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 52881f0af2..4511d3fad5 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -589,6 +589,38 @@ enum {
589#define BJACK_RIGHT BUTTON_NEXT 589#define BJACK_RIGHT BUTTON_NEXT
590#define BJACK_LEFT BUTTON_PREV 590#define BJACK_LEFT BUTTON_PREV
591 591
592#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
593#define BJACK_SELECT_NAME "PLAY"
594#define BJACK_STAY_NAME "NEXT"
595#define BJACK_QUIT_NAME "POWER"
596#define BJACK_DOUBLE_NAME "PREV"
597#define BJACK_SELECT BUTTON_PLAY
598#define BJACK_QUIT BUTTON_POWER
599#define BJACK_MAX BUTTON_VOL_UP
600#define BJACK_MIN BUTTON_VOL_DOWN
601#define BJACK_STAY BUTTON_NEXT
602#define BJACK_DOUBLEDOWN BUTTON_PREV
603#define BJACK_UP BUTTON_HOME
604#define BJACK_DOWN BUTTON_OPTION
605#define BJACK_RIGHT BUTTON_NEXT
606#define BJACK_LEFT BUTTON_PREV
607
608#elif CONFIG_KEYPAD == XDUOO_X20_PAD
609#define BJACK_SELECT_NAME "PLAY"
610#define BJACK_STAY_NAME "NEXT"
611#define BJACK_QUIT_NAME "POWER"
612#define BJACK_DOUBLE_NAME "PREV"
613#define BJACK_SELECT BUTTON_PLAY
614#define BJACK_QUIT BUTTON_POWER
615#define BJACK_MAX BUTTON_VOL_UP
616#define BJACK_MIN BUTTON_VOL_DOWN
617#define BJACK_STAY BUTTON_NEXT
618#define BJACK_DOUBLEDOWN BUTTON_PREV
619#define BJACK_UP BUTTON_HOME
620#define BJACK_DOWN BUTTON_OPTION
621#define BJACK_RIGHT BUTTON_NEXT
622#define BJACK_LEFT BUTTON_PREV
623
592#elif CONFIG_KEYPAD == IHIFI_770_PAD 624#elif CONFIG_KEYPAD == IHIFI_770_PAD
593#define BJACK_SELECT_NAME "PLAY" 625#define BJACK_SELECT_NAME "PLAY"
594#define BJACK_STAY_NAME "NEXT" 626#define BJACK_STAY_NAME "NEXT"
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index f7c9f9adf2..c5d74bcf37 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -342,6 +342,26 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
342#define UP BUTTON_HOME 342#define UP BUTTON_HOME
343#define DOWN BUTTON_OPTION 343#define DOWN BUTTON_OPTION
344 344
345#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
346#define QUIT BUTTON_POWER
347#define LEFT BUTTON_PREV
348#define RIGHT BUTTON_NEXT
349#define ALTLEFT BUTTON_VOL_DOWN
350#define ALTRIGHT BUTTON_VOL_UP
351#define SELECT BUTTON_PLAY
352#define UP BUTTON_HOME
353#define DOWN BUTTON_OPTION
354
355#elif CONFIG_KEYPAD == XDUOO_X20_PAD
356#define QUIT BUTTON_POWER
357#define LEFT BUTTON_PREV
358#define RIGHT BUTTON_NEXT
359#define ALTLEFT BUTTON_VOL_DOWN
360#define ALTRIGHT BUTTON_VOL_UP
361#define SELECT BUTTON_PLAY
362#define UP BUTTON_HOME
363#define DOWN BUTTON_OPTION
364
345#elif CONFIG_KEYPAD == IHIFI_770_PAD 365#elif CONFIG_KEYPAD == IHIFI_770_PAD
346#define QUIT BUTTON_POWER 366#define QUIT BUTTON_POWER
347#define LEFT BUTTON_HOME 367#define LEFT BUTTON_HOME
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index a4a29ff6ac..be5087967c 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -536,6 +536,28 @@ F3: equal to "="
536#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) 536#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
537#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) 537#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
538 538
539#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
540#define CALCULATOR_LEFT BUTTON_PREV
541#define CALCULATOR_RIGHT BUTTON_NEXT
542#define CALCULATOR_UP BUTTON_HOME
543#define CALCULATOR_DOWN BUTTON_OPTION
544#define CALCULATOR_QUIT BUTTON_POWER
545#define CALCULATOR_INPUT_CALC_PRE (BUTTON_OPTION|BUTTON_REPEAT)
546#define CALCULATOR_INPUT (BUTTON_PLAY|BUTTON_REL)
547#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
548#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
549
550#elif CONFIG_KEYPAD == XDUOO_X20_PAD
551#define CALCULATOR_LEFT BUTTON_PREV
552#define CALCULATOR_RIGHT BUTTON_NEXT
553#define CALCULATOR_UP BUTTON_HOME
554#define CALCULATOR_DOWN BUTTON_OPTION
555#define CALCULATOR_QUIT BUTTON_POWER
556#define CALCULATOR_INPUT_CALC_PRE (BUTTON_OPTION|BUTTON_REPEAT)
557#define CALCULATOR_INPUT (BUTTON_PLAY|BUTTON_REL)
558#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
559#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
560
539#elif CONFIG_KEYPAD == IHIFI_770_PAD 561#elif CONFIG_KEYPAD == IHIFI_770_PAD
540#define CALCULATOR_LEFT BUTTON_HOME 562#define CALCULATOR_LEFT BUTTON_HOME
541#define CALCULATOR_RIGHT BUTTON_VOL_DOWN 563#define CALCULATOR_RIGHT BUTTON_VOL_DOWN
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 56f9bde193..af550685cc 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -423,6 +423,26 @@
423#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP 423#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
424#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN 424#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
425 425
426#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
427#define CALENDAR_QUIT BUTTON_POWER
428#define CALENDAR_SELECT BUTTON_PLAY
429#define CALENDAR_NEXT_WEEK BUTTON_OPTION
430#define CALENDAR_PREV_WEEK BUTTON_HOME
431#define CALENDAR_NEXT_DAY BUTTON_NEXT
432#define CALENDAR_PREV_DAY BUTTON_PREV
433#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
434#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
435
436#elif CONFIG_KEYPAD == XDUOO_X20_PAD
437#define CALENDAR_QUIT BUTTON_POWER
438#define CALENDAR_SELECT BUTTON_PLAY
439#define CALENDAR_NEXT_WEEK BUTTON_OPTION
440#define CALENDAR_PREV_WEEK BUTTON_HOME
441#define CALENDAR_NEXT_DAY BUTTON_NEXT
442#define CALENDAR_PREV_DAY BUTTON_PREV
443#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
444#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
445
426#elif CONFIG_KEYPAD == IHIFI_770_PAD 446#elif CONFIG_KEYPAD == IHIFI_770_PAD
427#define CALENDAR_QUIT BUTTON_POWER 447#define CALENDAR_QUIT BUTTON_POWER
428#define CALENDAR_SELECT BUTTON_PLAY 448#define CALENDAR_SELECT BUTTON_PLAY
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 3c4d5357a5..9d37953c6f 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -572,6 +572,34 @@
572#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) 572#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT)
573#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) 573#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT)
574 574
575#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
576#define CB_SELECT BUTTON_PLAY
577#define CB_UP BUTTON_HOME
578#define CB_DOWN BUTTON_OPTION
579#define CB_LEFT BUTTON_PREV
580#define CB_RIGHT BUTTON_NEXT
581#define CB_PLAY BUTTON_VOL_UP
582#define CB_LEVEL BUTTON_VOL_DOWN
583#define CB_MENU BUTTON_POWER
584#define CB_SCROLL_UP (BUTTON_HOME|BUTTON_REPEAT)
585#define CB_SCROLL_DOWN (BUTTON_OPTION|BUTTON_REPEAT)
586#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT)
587#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT)
588
589#elif CONFIG_KEYPAD == XDUOO_X20_PAD
590#define CB_SELECT BUTTON_PLAY
591#define CB_UP BUTTON_HOME
592#define CB_DOWN BUTTON_OPTION
593#define CB_LEFT BUTTON_PREV
594#define CB_RIGHT BUTTON_NEXT
595#define CB_PLAY BUTTON_VOL_UP
596#define CB_LEVEL BUTTON_VOL_DOWN
597#define CB_MENU BUTTON_POWER
598#define CB_SCROLL_UP (BUTTON_HOME|BUTTON_REPEAT)
599#define CB_SCROLL_DOWN (BUTTON_OPTION|BUTTON_REPEAT)
600#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT)
601#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT)
602
575#elif CONFIG_KEYPAD == IHIFI_770_PAD 603#elif CONFIG_KEYPAD == IHIFI_770_PAD
576#define CB_SELECT BUTTON_PLAY 604#define CB_SELECT BUTTON_PLAY
577#define CB_UP BUTTON_PREV 605#define CB_UP BUTTON_PREV
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 6b07e1bab5..d93777860b 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -422,6 +422,26 @@
422#define CHC_SETTINGS_OK BUTTON_PLAY 422#define CHC_SETTINGS_OK BUTTON_PLAY
423#define CHC_SETTINGS_CANCEL BUTTON_POWER 423#define CHC_SETTINGS_CANCEL BUTTON_POWER
424 424
425#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
426#define CHC_QUIT BUTTON_POWER
427#define CHC_STARTSTOP BUTTON_PLAY
428#define CHC_RESET BUTTON_OPTION
429#define CHC_MENU BUTTON_HOME
430#define CHC_SETTINGS_INC BUTTON_NEXT
431#define CHC_SETTINGS_DEC BUTTON_PREV
432#define CHC_SETTINGS_OK BUTTON_PLAY
433#define CHC_SETTINGS_CANCEL BUTTON_POWER
434
435#elif CONFIG_KEYPAD == XDUOO_X20_PAD
436#define CHC_QUIT BUTTON_POWER
437#define CHC_STARTSTOP BUTTON_PLAY
438#define CHC_RESET BUTTON_OPTION
439#define CHC_MENU BUTTON_HOME
440#define CHC_SETTINGS_INC BUTTON_NEXT
441#define CHC_SETTINGS_DEC BUTTON_PREV
442#define CHC_SETTINGS_OK BUTTON_PLAY
443#define CHC_SETTINGS_CANCEL BUTTON_POWER
444
425#elif CONFIG_KEYPAD == IHIFI_770_PAD 445#elif CONFIG_KEYPAD == IHIFI_770_PAD
426#define CHC_QUIT BUTTON_POWER 446#define CHC_QUIT BUTTON_POWER
427#define CHC_STARTSTOP BUTTON_PLAY 447#define CHC_STARTSTOP BUTTON_PLAY
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 58d80a2ccf..7c2be3f7e7 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1291,6 +1291,22 @@ CONFIG_KEYPAD == MROBE500_PAD
1291#define CHIP8_KEY6 BUTTON_NEXT 1291#define CHIP8_KEY6 BUTTON_NEXT
1292#define CHIP8_KEY8 BUTTON_OPTION 1292#define CHIP8_KEY8 BUTTON_OPTION
1293 1293
1294#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
1295#define CHIP8_OFF BUTTON_POWER
1296#define CHIP8_KEY2 BUTTON_HOME
1297#define CHIP8_KEY4 BUTTON_PREV
1298#define CHIP8_KEY5 BUTTON_PLAY
1299#define CHIP8_KEY6 BUTTON_NEXT
1300#define CHIP8_KEY8 BUTTON_OPTION
1301
1302#elif CONFIG_KEYPAD == XDUOO_X20_PAD
1303#define CHIP8_OFF BUTTON_POWER
1304#define CHIP8_KEY2 BUTTON_HOME
1305#define CHIP8_KEY4 BUTTON_PREV
1306#define CHIP8_KEY5 BUTTON_PLAY
1307#define CHIP8_KEY6 BUTTON_NEXT
1308#define CHIP8_KEY8 BUTTON_OPTION
1309
1294#elif CONFIG_KEYPAD == IHIFI_770_PAD 1310#elif CONFIG_KEYPAD == IHIFI_770_PAD
1295#define CHIP8_OFF BUTTON_POWER 1311#define CHIP8_OFF BUTTON_POWER
1296#define CHIP8_KEY2 BUTTON_NEXT 1312#define CHIP8_KEY2 BUTTON_NEXT
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 249cfe9715..71e24deb8f 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -214,6 +214,16 @@ CONFIG_KEYPAD == MROBE500_PAD
214#define ACTION BUTTON_PLAY 214#define ACTION BUTTON_PLAY
215#define ACTIONTEXT "PLAY" 215#define ACTIONTEXT "PLAY"
216 216
217#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
218#define QUIT BUTTON_POWER
219#define ACTION BUTTON_PLAY
220#define ACTIONTEXT "PLAY"
221
222#elif CONFIG_KEYPAD == XDUOO_X20_PAD
223#define QUIT BUTTON_POWER
224#define ACTION BUTTON_PLAY
225#define ACTIONTEXT "PLAY"
226
217#elif CONFIG_KEYPAD == IHIFI_770_PAD 227#elif CONFIG_KEYPAD == IHIFI_770_PAD
218#define QUIT BUTTON_POWER 228#define QUIT BUTTON_POWER
219#define ACTION BUTTON_PLAY 229#define ACTION BUTTON_PLAY
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index c6364b14b4..e80fdeab8b 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -284,6 +284,22 @@
284#define CLIX_BUTTON_RIGHT BUTTON_NEXT 284#define CLIX_BUTTON_RIGHT BUTTON_NEXT
285#define CLIX_BUTTON_CLICK BUTTON_PLAY 285#define CLIX_BUTTON_CLICK BUTTON_PLAY
286 286
287#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
288#define CLIX_BUTTON_QUIT BUTTON_POWER
289#define CLIX_BUTTON_UP BUTTON_HOME
290#define CLIX_BUTTON_DOWN BUTTON_OPTION
291#define CLIX_BUTTON_LEFT BUTTON_PREV
292#define CLIX_BUTTON_RIGHT BUTTON_NEXT
293#define CLIX_BUTTON_CLICK BUTTON_PLAY
294
295#elif CONFIG_KEYPAD == XDUOO_X20_PAD
296#define CLIX_BUTTON_QUIT BUTTON_POWER
297#define CLIX_BUTTON_UP BUTTON_HOME
298#define CLIX_BUTTON_DOWN BUTTON_OPTION
299#define CLIX_BUTTON_LEFT BUTTON_PREV
300#define CLIX_BUTTON_RIGHT BUTTON_NEXT
301#define CLIX_BUTTON_CLICK BUTTON_PLAY
302
287#elif CONFIG_KEYPAD == IHIFI_770_PAD 303#elif CONFIG_KEYPAD == IHIFI_770_PAD
288#define CLIX_BUTTON_QUIT BUTTON_POWER 304#define CLIX_BUTTON_QUIT BUTTON_POWER
289#define CLIX_BUTTON_UP BUTTON_PREV 305#define CLIX_BUTTON_UP BUTTON_PREV
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index cad57f9ed6..78fd333773 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -423,6 +423,26 @@
423#define CUBE_PAUSE BUTTON_HOME 423#define CUBE_PAUSE BUTTON_HOME
424#define CUBE_HIGHSPEED BUTTON_PLAY 424#define CUBE_HIGHSPEED BUTTON_PLAY
425 425
426#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
427#define CUBE_QUIT BUTTON_POWER
428#define CUBE_NEXT BUTTON_NEXT
429#define CUBE_PREV BUTTON_PREV
430#define CUBE_INC BUTTON_VOL_UP
431#define CUBE_DEC BUTTON_VOL_DOWN
432#define CUBE_MODE BUTTON_OPTION
433#define CUBE_PAUSE BUTTON_HOME
434#define CUBE_HIGHSPEED BUTTON_PLAY
435
436#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
437#define CUBE_QUIT BUTTON_POWER
438#define CUBE_NEXT BUTTON_NEXT
439#define CUBE_PREV BUTTON_PREV
440#define CUBE_INC BUTTON_VOL_UP
441#define CUBE_DEC BUTTON_VOL_DOWN
442#define CUBE_MODE BUTTON_OPTION
443#define CUBE_PAUSE BUTTON_HOME
444#define CUBE_HIGHSPEED BUTTON_PLAY
445
426#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 446#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
427#define CUBE_QUIT BUTTON_POWER 447#define CUBE_QUIT BUTTON_POWER
428#define CUBE_NEXT BUTTON_NEXT 448#define CUBE_NEXT BUTTON_NEXT
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 41194670bf..9f367d7d76 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -566,6 +566,28 @@ void I_ShutdownGraphics(void)
566#define DOOMBUTTON_ENTER BUTTON_PLAY 566#define DOOMBUTTON_ENTER BUTTON_PLAY
567#define DOOMBUTTON_WEAPON BUTTON_VOL_UP 567#define DOOMBUTTON_WEAPON BUTTON_VOL_UP
568 568
569#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
570#define DOOMBUTTON_UP BUTTON_HOME
571#define DOOMBUTTON_DOWN BUTTON_OPTION
572#define DOOMBUTTON_LEFT BUTTON_PREV
573#define DOOMBUTTON_RIGHT BUTTON_NEXT
574#define DOOMBUTTON_SHOOT BUTTON_PLAY
575#define DOOMBUTTON_OPEN (BUTTON_HOME | BUTTON_POWER)
576#define DOOMBUTTON_ESC BUTTON_POWER
577#define DOOMBUTTON_ENTER BUTTON_PLAY
578#define DOOMBUTTON_WEAPON BUTTON_VOL_UP
579
580#elif CONFIG_KEYPAD == XDUOO_X20_PAD
581#define DOOMBUTTON_UP BUTTON_HOME
582#define DOOMBUTTON_DOWN BUTTON_OPTION
583#define DOOMBUTTON_LEFT BUTTON_PREV
584#define DOOMBUTTON_RIGHT BUTTON_NEXT
585#define DOOMBUTTON_SHOOT BUTTON_PLAY
586#define DOOMBUTTON_OPEN (BUTTON_HOME | BUTTON_POWER)
587#define DOOMBUTTON_ESC BUTTON_POWER
588#define DOOMBUTTON_ENTER BUTTON_PLAY
589#define DOOMBUTTON_WEAPON BUTTON_VOL_UP
590
569#elif CONFIG_KEYPAD == IHIFI_770_PAD 591#elif CONFIG_KEYPAD == IHIFI_770_PAD
570#define DOOMBUTTON_UP BUTTON_PREV 592#define DOOMBUTTON_UP BUTTON_PREV
571#define DOOMBUTTON_DOWN BUTTON_NEXT 593#define DOOMBUTTON_DOWN BUTTON_NEXT
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index d56e37f9e2..0f4e33759d 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -343,6 +343,24 @@ GREY_INFO_STRUCT
343# define FFT_AMP_SCALE BUTTON_PLAY 343# define FFT_AMP_SCALE BUTTON_PLAY
344# define FFT_QUIT BUTTON_POWER 344# define FFT_QUIT BUTTON_POWER
345 345
346#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
347# define FFT_PREV_GRAPH BUTTON_PREV
348# define FFT_NEXT_GRAPH BUTTON_NEXT
349# define FFT_ORIENTATION BUTTON_HOME
350# define FFT_FREQ_SCALE BUTTON_OPTION
351# define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER)
352# define FFT_AMP_SCALE BUTTON_PLAY
353# define FFT_QUIT BUTTON_POWER
354
355#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
356# define FFT_PREV_GRAPH BUTTON_PREV
357# define FFT_NEXT_GRAPH BUTTON_NEXT
358# define FFT_ORIENTATION BUTTON_HOME
359# define FFT_FREQ_SCALE BUTTON_OPTION
360# define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER)
361# define FFT_AMP_SCALE BUTTON_PLAY
362# define FFT_QUIT BUTTON_POWER
363
346#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 364#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
347# define FFT_PREV_GRAPH BUTTON_PREV 365# define FFT_PREV_GRAPH BUTTON_PREV
348# define FFT_NEXT_GRAPH BUTTON_NEXT 366# define FFT_NEXT_GRAPH BUTTON_NEXT
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index c108939a95..7d1257ef94 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -494,6 +494,30 @@
494#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY) 494#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY)
495#define FLIPIT_TOGGLE BUTTON_PLAY 495#define FLIPIT_TOGGLE BUTTON_PLAY
496 496
497#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
498
499#define FLIPIT_LEFT BUTTON_PREV
500#define FLIPIT_RIGHT BUTTON_NEXT
501#define FLIPIT_UP BUTTON_HOME
502#define FLIPIT_DOWN BUTTON_OPTION
503#define FLIPIT_QUIT BUTTON_POWER
504#define FLIPIT_SHUFFLE (BUTTON_HOME | BUTTON_PREV)
505#define FLIPIT_SOLVE (BUTTON_HOME | BUTTON_NEXT)
506#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY)
507#define FLIPIT_TOGGLE BUTTON_PLAY
508
509#elif CONFIG_KEYPAD == XDUOO_X20_PAD
510
511#define FLIPIT_LEFT BUTTON_PREV
512#define FLIPIT_RIGHT BUTTON_NEXT
513#define FLIPIT_UP BUTTON_HOME
514#define FLIPIT_DOWN BUTTON_OPTION
515#define FLIPIT_QUIT BUTTON_POWER
516#define FLIPIT_SHUFFLE (BUTTON_HOME | BUTTON_PREV)
517#define FLIPIT_SOLVE (BUTTON_HOME | BUTTON_NEXT)
518#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY)
519#define FLIPIT_TOGGLE BUTTON_PLAY
520
497#elif CONFIG_KEYPAD == IHIFI_770_PAD 521#elif CONFIG_KEYPAD == IHIFI_770_PAD
498 522
499#define FLIPIT_LEFT BUTTON_HOME 523#define FLIPIT_LEFT BUTTON_HOME
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 5a56a39b13..679782d37a 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -496,6 +496,30 @@
496#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) 496#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV)
497#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) 497#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER)
498 498
499#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
500#define FRACTAL_QUIT BUTTON_POWER
501#define FRACTAL_UP BUTTON_HOME
502#define FRACTAL_DOWN BUTTON_OPTION
503#define FRACTAL_LEFT BUTTON_PREV
504#define FRACTAL_RIGHT BUTTON_NEXT
505#define FRACTAL_ZOOM_IN BUTTON_VOL_UP
506#define FRACTAL_ZOOM_OUT BUTTON_VOL_DOWN
507#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_NEXT)
508#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV)
509#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER)
510
511#elif CONFIG_KEYPAD == XDUOO_X20_PAD
512#define FRACTAL_QUIT BUTTON_POWER
513#define FRACTAL_UP BUTTON_HOME
514#define FRACTAL_DOWN BUTTON_OPTION
515#define FRACTAL_LEFT BUTTON_PREV
516#define FRACTAL_RIGHT BUTTON_NEXT
517#define FRACTAL_ZOOM_IN BUTTON_VOL_UP
518#define FRACTAL_ZOOM_OUT BUTTON_VOL_DOWN
519#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_NEXT)
520#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV)
521#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER)
522
499#elif CONFIG_KEYPAD == IHIFI_770_PAD 523#elif CONFIG_KEYPAD == IHIFI_770_PAD
500#define FRACTAL_QUIT BUTTON_POWER 524#define FRACTAL_QUIT BUTTON_POWER
501#define FRACTAL_UP BUTTON_PREV 525#define FRACTAL_UP BUTTON_PREV
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 9f03937078..e04b4c2447 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -464,6 +464,30 @@
464#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT 464#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
465#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER 465#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER
466 466
467#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
468#define GBN_BUTTON_UP BUTTON_HOME
469#define GBN_BUTTON_DOWN BUTTON_OPTION
470#define GBN_BUTTON_LEFT BUTTON_PREV
471#define GBN_BUTTON_RIGHT BUTTON_NEXT
472#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
473#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
474#define GBN_BUTTON_MENU BUTTON_POWER
475#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
476#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
477#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER
478
479#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
480#define GBN_BUTTON_UP BUTTON_HOME
481#define GBN_BUTTON_DOWN BUTTON_OPTION
482#define GBN_BUTTON_LEFT BUTTON_PREV
483#define GBN_BUTTON_RIGHT BUTTON_NEXT
484#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
485#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
486#define GBN_BUTTON_MENU BUTTON_POWER
487#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
488#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
489#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER
490
467#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 491#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
468 492
469#define GBN_BUTTON_UP BUTTON_PREV 493#define GBN_BUTTON_UP BUTTON_PREV
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index 5ffef12a62..e37febc76a 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -510,6 +510,36 @@
510#define IMGVIEW_MENU BUTTON_POWER 510#define IMGVIEW_MENU BUTTON_POWER
511#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) 511#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER)
512 512
513#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
514#define IMGVIEW_ZOOM_PRE BUTTON_PLAY
515#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
516#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
517#define IMGVIEW_UP BUTTON_HOME
518#define IMGVIEW_DOWN BUTTON_OPTION
519#define IMGVIEW_LEFT BUTTON_PREV
520#define IMGVIEW_RIGHT BUTTON_NEXT
521#define IMGVIEW_NEXT BUTTON_VOL_UP
522#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
523#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
524#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
525#define IMGVIEW_MENU BUTTON_POWER
526#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER)
527
528#elif CONFIG_KEYPAD == XDUOO_X20_PAD
529#define IMGVIEW_ZOOM_PRE BUTTON_PLAY
530#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
531#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
532#define IMGVIEW_UP BUTTON_HOME
533#define IMGVIEW_DOWN BUTTON_OPTION
534#define IMGVIEW_LEFT BUTTON_PREV
535#define IMGVIEW_RIGHT BUTTON_NEXT
536#define IMGVIEW_NEXT BUTTON_VOL_UP
537#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
538#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
539#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
540#define IMGVIEW_MENU BUTTON_POWER
541#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER)
542
513#elif CONFIG_KEYPAD == IHIFI_770_PAD 543#elif CONFIG_KEYPAD == IHIFI_770_PAD
514#define IMGVIEW_ZOOM_PRE BUTTON_PLAY 544#define IMGVIEW_ZOOM_PRE BUTTON_PLAY
515#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) 545#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index d3feb236cc..8cf4d67f3e 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -272,6 +272,20 @@ CONFIG_KEYPAD == MROBE500_PAD
272#define QUIT BUTTON_POWER 272#define QUIT BUTTON_POWER
273#define FIRE BUTTON_MENU 273#define FIRE BUTTON_MENU
274 274
275#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
276
277#define QUIT BUTTON_POWER
278#define LEFT BUTTON_HOME
279#define RIGHT BUTTON_VOL_DOWN
280#define FIRE BUTTON_VOL_UP
281
282#elif CONFIG_KEYPAD == XDUOO_X20_PAD
283
284#define QUIT BUTTON_POWER
285#define LEFT BUTTON_HOME
286#define RIGHT BUTTON_VOL_DOWN
287#define FIRE BUTTON_VOL_UP
288
275#elif CONFIG_KEYPAD == IHIFI_770_PAD 289#elif CONFIG_KEYPAD == IHIFI_770_PAD
276 290
277#define QUIT BUTTON_POWER 291#define QUIT BUTTON_POWER
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index bc0bc73183..38121a480c 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -387,6 +387,26 @@ CONFIG_KEYPAD == MROBE500_PAD
387#define HK_SELECT "PLAY" 387#define HK_SELECT "PLAY"
388#define HK_CANCEL "POWER" 388#define HK_CANCEL "POWER"
389 389
390#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
391#define JEWELS_UP BUTTON_HOME
392#define JEWELS_DOWN BUTTON_OPTION
393#define JEWELS_LEFT BUTTON_PREV
394#define JEWELS_RIGHT BUTTON_NEXT
395#define JEWELS_SELECT BUTTON_PLAY
396#define JEWELS_CANCEL BUTTON_POWER
397#define HK_SELECT "PLAY"
398#define HK_CANCEL "POWER"
399
400#elif CONFIG_KEYPAD == XDUOO_X20_PAD
401#define JEWELS_UP BUTTON_HOME
402#define JEWELS_DOWN BUTTON_OPTION
403#define JEWELS_LEFT BUTTON_PREV
404#define JEWELS_RIGHT BUTTON_NEXT
405#define JEWELS_SELECT BUTTON_PLAY
406#define JEWELS_CANCEL BUTTON_POWER
407#define HK_SELECT "PLAY"
408#define HK_CANCEL "POWER"
409
390#elif CONFIG_KEYPAD == IHIFI_770_PAD 410#elif CONFIG_KEYPAD == IHIFI_770_PAD
391#define JEWELS_UP BUTTON_PREV 411#define JEWELS_UP BUTTON_PREV
392#define JEWELS_DOWN BUTTON_NEXT 412#define JEWELS_DOWN BUTTON_NEXT
diff --git a/apps/plugins/lib/keymaps.h b/apps/plugins/lib/keymaps.h
index e240a0989e..e3de03f222 100644
--- a/apps/plugins/lib/keymaps.h
+++ b/apps/plugins/lib/keymaps.h
@@ -223,6 +223,22 @@
223#define BTN_FIRE BUTTON_PLAY 223#define BTN_FIRE BUTTON_PLAY
224#define BTN_PAUSE BUTTON_POWER 224#define BTN_PAUSE BUTTON_POWER
225 225
226#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
227#define BTN_UP BUTTON_VOL_UP
228#define BTN_DOWN BUTTON_VOL_DOWN
229#define BTN_LEFT BUTTON_PREV
230#define BTN_RIGHT BUTTON_NEXT
231#define BTN_FIRE BUTTON_PLAY
232#define BTN_PAUSE BUTTON_POWER
233
234#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
235#define BTN_UP BUTTON_VOL_UP
236#define BTN_DOWN BUTTON_VOL_DOWN
237#define BTN_LEFT BUTTON_PREV
238#define BTN_RIGHT BUTTON_NEXT
239#define BTN_FIRE BUTTON_PLAY
240#define BTN_PAUSE BUTTON_POWER
241
226#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 242#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
227#define BTN_UP BUTTON_PREV 243#define BTN_UP BUTTON_PREV
228#define BTN_DOWN BUTTON_NEXT 244#define BTN_DOWN BUTTON_NEXT
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 97b5a1e1bf..0834e020f4 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -237,6 +237,24 @@ const struct button_mapping pla_main_ctx[] =
237 { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE }, 237 { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE },
238 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, 238 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
239 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, 239 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
240#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
241 { PLA_UP, BUTTON_HOME, BUTTON_NONE },
242 { PLA_DOWN, BUTTON_OPTION, BUTTON_NONE },
243 { PLA_LEFT, BUTTON_PREV, BUTTON_NONE },
244 { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE },
245 { PLA_UP_REPEAT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE },
246 { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE },
247 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
248 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
249#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
250 { PLA_UP, BUTTON_HOME, BUTTON_NONE },
251 { PLA_DOWN, BUTTON_OPTION, BUTTON_NONE },
252 { PLA_LEFT, BUTTON_PREV, BUTTON_NONE },
253 { PLA_RIGHT, BUTTON_NEXT, BUTTON_NONE },
254 { PLA_UP_REPEAT, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE },
255 { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE },
256 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
257 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
240#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 258#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
241 { PLA_UP, BUTTON_PREV, BUTTON_NONE }, 259 { PLA_UP, BUTTON_PREV, BUTTON_NONE },
242 { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE }, 260 { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE },
@@ -480,6 +498,18 @@ const struct button_mapping pla_main_ctx[] =
480 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, 498 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
481 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, 499 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
482 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 500 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
501#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
502 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
503 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
504 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
505 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
506 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
507#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
508 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
509 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
510 {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
511 {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
512 {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
483#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 513#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
484 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, 514 {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
485 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE}, 515 {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 8e867e5173..e6e2b4bf51 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -301,6 +301,22 @@
301#define MIDI_VOL_DOWN BUTTON_VOL_DOWN 301#define MIDI_VOL_DOWN BUTTON_VOL_DOWN
302#define MIDI_PLAYPAUSE BUTTON_PLAY 302#define MIDI_PLAYPAUSE BUTTON_PLAY
303 303
304#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
305#define MIDI_QUIT BUTTON_POWER
306#define MIDI_FFWD BUTTON_NEXT
307#define MIDI_REWIND BUTTON_PREV
308#define MIDI_VOL_UP BUTTON_VOL_UP
309#define MIDI_VOL_DOWN BUTTON_VOL_DOWN
310#define MIDI_PLAYPAUSE BUTTON_PLAY
311
312#elif CONFIG_KEYPAD == XDUOO_X20_PAD
313#define MIDI_QUIT BUTTON_POWER
314#define MIDI_FFWD BUTTON_NEXT
315#define MIDI_REWIND BUTTON_PREV
316#define MIDI_VOL_UP BUTTON_VOL_UP
317#define MIDI_VOL_DOWN BUTTON_VOL_DOWN
318#define MIDI_PLAYPAUSE BUTTON_PLAY
319
304#elif CONFIG_KEYPAD == IHIFI_770_PAD 320#elif CONFIG_KEYPAD == IHIFI_770_PAD
305#define MIDI_QUIT BUTTON_POWER 321#define MIDI_QUIT BUTTON_POWER
306#define MIDI_FFWD BUTTON_VOL_DOWN 322#define MIDI_FFWD BUTTON_VOL_DOWN
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 956ba128d5..917f90dcd0 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -417,6 +417,32 @@ CONFIG_KEYPAD == MROBE500_PAD
417# define MINESWP_DISCOVER2 BUTTON_VOL_UP 417# define MINESWP_DISCOVER2 BUTTON_VOL_UP
418# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) 418# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION)
419 419
420#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
421# define MINESWP_LEFT BUTTON_PREV
422# define MINESWP_RIGHT BUTTON_NEXT
423# define MINESWP_UP BUTTON_HOME
424# define MINESWP_DOWN BUTTON_OPTION
425# define MINESWP_QUIT BUTTON_POWER
426# define MINESWP_TOGGLE_PRE BUTTON_PLAY
427# define MINESWP_TOGGLE (BUTTON_PLAY | BUTTON_REL)
428# define MINESWP_TOGGLE2 BUTTON_VOL_DOWN
429# define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT)
430# define MINESWP_DISCOVER2 BUTTON_VOL_UP
431# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION)
432
433#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
434# define MINESWP_LEFT BUTTON_PREV
435# define MINESWP_RIGHT BUTTON_NEXT
436# define MINESWP_UP BUTTON_HOME
437# define MINESWP_DOWN BUTTON_OPTION
438# define MINESWP_QUIT BUTTON_POWER
439# define MINESWP_TOGGLE_PRE BUTTON_PLAY
440# define MINESWP_TOGGLE (BUTTON_PLAY | BUTTON_REL)
441# define MINESWP_TOGGLE2 BUTTON_VOL_DOWN
442# define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT)
443# define MINESWP_DISCOVER2 BUTTON_VOL_UP
444# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION)
445
420#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 446#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
421# define MINESWP_LEFT BUTTON_HOME 447# define MINESWP_LEFT BUTTON_HOME
422# define MINESWP_RIGHT BUTTON_VOL_DOWN 448# define MINESWP_RIGHT BUTTON_VOL_DOWN
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index d147120cd4..3b912ba606 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2562,6 +2562,19 @@ CONFIG_KEYPAD == MROBE500_PAD
2562#define MP3ENC_DONE BUTTON_POWER 2562#define MP3ENC_DONE BUTTON_POWER
2563#define MP3ENC_SELECT BUTTON_PLAY 2563#define MP3ENC_SELECT BUTTON_PLAY
2564 2564
2565#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
2566#define MP3ENC_PREV BUTTON_HOME
2567#define MP3ENC_NEXT BUTTON_OPTION
2568#define MP3ENC_DONE BUTTON_POWER
2569#define MP3ENC_SELECT BUTTON_PLAY
2570
2571#elif CONFIG_KEYPAD == XDUOO_X20_PAD
2572#define MP3ENC_PREV BUTTON_HOME
2573#define MP3ENC_NEXT BUTTON_OPTION
2574#define MP3ENC_DONE BUTTON_POWER
2575#define MP3ENC_SELECT BUTTON_PLAY
2576
2577
2565#elif CONFIG_KEYPAD == IHIFI_770_PAD 2578#elif CONFIG_KEYPAD == IHIFI_770_PAD
2566#define MP3ENC_PREV BUTTON_PREV 2579#define MP3ENC_PREV BUTTON_PREV
2567#define MP3ENC_NEXT BUTTON_NEXT 2580#define MP3ENC_NEXT BUTTON_NEXT
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 8427db12b4..d5d7c7c019 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -316,6 +316,26 @@ struct mpeg_settings settings;
316#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN 316#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN
317#define MPEG_START_TIME_EXIT BUTTON_POWER 317#define MPEG_START_TIME_EXIT BUTTON_POWER
318 318
319#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
320#define MPEG_START_TIME_SELECT BUTTON_PLAY
321#define MPEG_START_TIME_LEFT BUTTON_PREV
322#define MPEG_START_TIME_RIGHT BUTTON_NEXT
323#define MPEG_START_TIME_UP BUTTON_HOME
324#define MPEG_START_TIME_DOWN BUTTON_OPTION
325#define MPEG_START_TIME_LEFT2 BUTTON_VOL_UP
326#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN
327#define MPEG_START_TIME_EXIT BUTTON_POWER
328
329#elif CONFIG_KEYPAD == XDUOO_X20_PAD
330#define MPEG_START_TIME_SELECT BUTTON_PLAY
331#define MPEG_START_TIME_LEFT BUTTON_PREV
332#define MPEG_START_TIME_RIGHT BUTTON_NEXT
333#define MPEG_START_TIME_UP BUTTON_HOME
334#define MPEG_START_TIME_DOWN BUTTON_OPTION
335#define MPEG_START_TIME_LEFT2 BUTTON_VOL_UP
336#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN
337#define MPEG_START_TIME_EXIT BUTTON_POWER
338
319#elif CONFIG_KEYPAD == IHIFI_770_PAD 339#elif CONFIG_KEYPAD == IHIFI_770_PAD
320#define MPEG_START_TIME_SELECT BUTTON_PLAY 340#define MPEG_START_TIME_SELECT BUTTON_PLAY
321#define MPEG_START_TIME_LEFT BUTTON_HOME 341#define MPEG_START_TIME_LEFT BUTTON_HOME
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 39ea484ff2..eed1fab6d7 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -450,6 +450,24 @@ CONFIG_KEYPAD == SANSA_M200_PAD
450#define MPEG_RW BUTTON_PREV 450#define MPEG_RW BUTTON_PREV
451#define MPEG_FF BUTTON_NEXT 451#define MPEG_FF BUTTON_NEXT
452 452
453#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
454#define MPEG_MENU BUTTON_PLAY
455#define MPEG_STOP BUTTON_POWER
456#define MPEG_PAUSE BUTTON_HOME
457#define MPEG_VOLDOWN BUTTON_VOL_DOWN
458#define MPEG_VOLUP BUTTON_VOL_UP
459#define MPEG_RW BUTTON_PREV
460#define MPEG_FF BUTTON_NEXT
461
462#elif CONFIG_KEYPAD == XDUOO_X20_PAD
463#define MPEG_MENU BUTTON_PLAY
464#define MPEG_STOP BUTTON_POWER
465#define MPEG_PAUSE BUTTON_HOME
466#define MPEG_VOLDOWN BUTTON_VOL_DOWN
467#define MPEG_VOLUP BUTTON_VOL_UP
468#define MPEG_RW BUTTON_PREV
469#define MPEG_FF BUTTON_NEXT
470
453#elif CONFIG_KEYPAD == IHIFI_770_PAD 471#elif CONFIG_KEYPAD == IHIFI_770_PAD
454#define MPEG_MENU BUTTON_PLAY 472#define MPEG_MENU BUTTON_PLAY
455#define MPEG_STOP BUTTON_POWER 473#define MPEG_STOP BUTTON_POWER
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index f4711d4e0e..6702add139 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -518,6 +518,35 @@
518#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN 518#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
519#define NEED_LASTBUTTON 519#define NEED_LASTBUTTON
520 520
521#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
522#define OSCILLOSCOPE_QUIT BUTTON_POWER
523#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY
524#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL)
525#define OSCILLOSCOPE_ORIENTATION_PRE BUTTON_PLAY
526#define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY | BUTTON_REPEAT)
527#define OSCILLOSCOPE_ADVMODE BUTTON_HOME
528#define OSCILLOSCOPE_PAUSE BUTTON_OPTION
529#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT
530#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV
531#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
532#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
533#define NEED_LASTBUTTON
534
535#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
536#define OSCILLOSCOPE_QUIT BUTTON_POWER
537#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY
538#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL)
539#define OSCILLOSCOPE_ORIENTATION_PRE BUTTON_PLAY
540#define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY | BUTTON_REPEAT)
541#define OSCILLOSCOPE_ADVMODE BUTTON_HOME
542#define OSCILLOSCOPE_PAUSE BUTTON_OPTION
543#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT
544#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV
545#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
546#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
547#define NEED_LASTBUTTON
548
549
521#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 550#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
522#define OSCILLOSCOPE_QUIT BUTTON_POWER 551#define OSCILLOSCOPE_QUIT BUTTON_POWER
523#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY 552#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index 0e3de62dfa..78a171467a 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -364,6 +364,25 @@
364#define PACMAN_1UP BUTTON_VOLUP 364#define PACMAN_1UP BUTTON_VOLUP
365#define PACMAN_COIN BUTTON_VOLDOWN 365#define PACMAN_COIN BUTTON_VOLDOWN
366 366
367#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
368#define PACMAN_UP BUTTON_PREV
369#define PACMAN_DOWN BUTTON_NEXT
370#define PACMAN_LEFT BUTTON_HOME
371#define PACMAN_RIGHT BUTTON_VOL_DOWN
372#define PACMAN_MENU BUTTON_POWER
373#define PACMAN_1UP BUTTON_VOL_UP
374#define PACMAN_COIN BUTTON_PLAY
375
376#elif CONFIG_KEYPAD == XDUOO_X20_PAD
377#define PACMAN_UP BUTTON_PREV
378#define PACMAN_DOWN BUTTON_NEXT
379#define PACMAN_LEFT BUTTON_HOME
380#define PACMAN_RIGHT BUTTON_VOL_DOWN
381#define PACMAN_MENU BUTTON_POWER
382#define PACMAN_1UP BUTTON_VOL_UP
383#define PACMAN_COIN BUTTON_PLAY
384
385
367#elif CONFIG_KEYPAD == IHIFI_770_PAD 386#elif CONFIG_KEYPAD == IHIFI_770_PAD
368#define PACMAN_UP BUTTON_PREV 387#define PACMAN_UP BUTTON_PREV
369#define PACMAN_DOWN BUTTON_NEXT 388#define PACMAN_DOWN BUTTON_NEXT
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index cc2e8e3f23..b638f2feeb 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -660,6 +660,40 @@ CONFIG_KEYPAD == MROBE500_PAD
660#define LVL_UP_TEXT "VOL+" 660#define LVL_UP_TEXT "VOL+"
661#define LVL_DOWN_TEXT "VOL-" 661#define LVL_DOWN_TEXT "VOL-"
662 662
663#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
664#define PEGBOX_SELECT BUTTON_PLAY
665#define PEGBOX_QUIT BUTTON_POWER
666#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME)
667#define PEGBOX_LVL_UP BUTTON_VOL_UP
668#define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN
669#define PEGBOX_UP BUTTON_HOME
670#define PEGBOX_DOWN BUTTON_OPTION
671#define PEGBOX_RIGHT BUTTON_NEXT
672#define PEGBOX_LEFT BUTTON_PREV
673
674#define SELECT_TEXT "PLAY"
675#define QUIT_TEXT "POWER"
676#define RESTART_TEXT "HOME"
677#define LVL_UP_TEXT "VOL+"
678#define LVL_DOWN_TEXT "VOL-"
679
680#elif CONFIG_KEYPAD == XDUOO_X20_PAD
681#define PEGBOX_SELECT BUTTON_PLAY
682#define PEGBOX_QUIT BUTTON_POWER
683#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME)
684#define PEGBOX_LVL_UP BUTTON_VOL_UP
685#define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN
686#define PEGBOX_UP BUTTON_HOME
687#define PEGBOX_DOWN BUTTON_OPTION
688#define PEGBOX_RIGHT BUTTON_NEXT
689#define PEGBOX_LEFT BUTTON_PREV
690
691#define SELECT_TEXT "PLAY"
692#define QUIT_TEXT "POWER"
693#define RESTART_TEXT "HOME"
694#define LVL_UP_TEXT "VOL+"
695#define LVL_DOWN_TEXT "VOL-"
696
663#elif CONFIG_KEYPAD == IHIFI_770_PAD 697#elif CONFIG_KEYPAD == IHIFI_770_PAD
664#define PEGBOX_SELECT BUTTON_PLAY 698#define PEGBOX_SELECT BUTTON_PLAY
665#define PEGBOX_QUIT BUTTON_POWER 699#define PEGBOX_QUIT BUTTON_POWER
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index cb3006d7c4..3656a35fd2 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -317,6 +317,22 @@ CONFIG_KEYPAD == MROBE500_PAD
317#define PONG_RIGHT_UP BUTTON_HOME 317#define PONG_RIGHT_UP BUTTON_HOME
318#define PONG_RIGHT_DOWN BUTTON_NEXT 318#define PONG_RIGHT_DOWN BUTTON_NEXT
319 319
320#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
321#define PONG_QUIT BUTTON_POWER
322#define PONG_PAUSE BUTTON_PLAY
323#define PONG_LEFT_UP BUTTON_PREV
324#define PONG_LEFT_DOWN BUTTON_OPTION
325#define PONG_RIGHT_UP BUTTON_HOME
326#define PONG_RIGHT_DOWN BUTTON_NEXT
327
328#elif CONFIG_KEYPAD == XDUOO_X20_PAD
329#define PONG_QUIT BUTTON_POWER
330#define PONG_PAUSE BUTTON_PLAY
331#define PONG_LEFT_UP BUTTON_PREV
332#define PONG_LEFT_DOWN BUTTON_OPTION
333#define PONG_RIGHT_UP BUTTON_HOME
334#define PONG_RIGHT_DOWN BUTTON_NEXT
335
320#elif CONFIG_KEYPAD == IHIFI_770_PAD 336#elif CONFIG_KEYPAD == IHIFI_770_PAD
321#define PONG_QUIT BUTTON_POWER 337#define PONG_QUIT BUTTON_POWER
322#define PONG_PAUSE BUTTON_PREV 338#define PONG_PAUSE BUTTON_PREV
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index cba34d2814..4ec6bcb67b 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -339,6 +339,28 @@
339#define REVERSI_BUTTON_MENU BUTTON_PLAY 339#define REVERSI_BUTTON_MENU BUTTON_PLAY
340#define REVERSI_BUTTON_MENU_LONGPRESS 340#define REVERSI_BUTTON_MENU_LONGPRESS
341 341
342#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
343#define REVERSI_BUTTON_QUIT BUTTON_POWER
344#define REVERSI_BUTTON_UP BUTTON_HOME
345#define REVERSI_BUTTON_DOWN BUTTON_OPTION
346#define REVERSI_BUTTON_LEFT BUTTON_PREV
347#define REVERSI_BUTTON_RIGHT BUTTON_NEXT
348#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
349#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
350#define REVERSI_BUTTON_MENU BUTTON_PLAY
351#define REVERSI_BUTTON_MENU_LONGPRESS
352
353#elif CONFIG_KEYPAD == XDUOO_X20_PAD
354#define REVERSI_BUTTON_QUIT BUTTON_POWER
355#define REVERSI_BUTTON_UP BUTTON_HOME
356#define REVERSI_BUTTON_DOWN BUTTON_OPTION
357#define REVERSI_BUTTON_LEFT BUTTON_PREV
358#define REVERSI_BUTTON_RIGHT BUTTON_NEXT
359#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
360#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
361#define REVERSI_BUTTON_MENU BUTTON_PLAY
362#define REVERSI_BUTTON_MENU_LONGPRESS
363
342#elif CONFIG_KEYPAD == IHIFI_770_PAD 364#elif CONFIG_KEYPAD == IHIFI_770_PAD
343#define REVERSI_BUTTON_QUIT BUTTON_POWER 365#define REVERSI_BUTTON_QUIT BUTTON_POWER
344#define REVERSI_BUTTON_UP BUTTON_PREV 366#define REVERSI_BUTTON_UP BUTTON_PREV
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 13eb593775..e2fedab200 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -492,6 +492,30 @@
492#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) 492#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL)
493#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) 493#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT)
494 494
495#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
496
497#define ROCKBLOX_OFF BUTTON_POWER
498#define ROCKBLOX_ROTATE_CCW BUTTON_HOME
499#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN
500#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP
501#define ROCKBLOX_DOWN BUTTON_OPTION
502#define ROCKBLOX_LEFT BUTTON_PREV
503#define ROCKBLOX_RIGHT BUTTON_NEXT
504#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL)
505#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT)
506
507#elif CONFIG_KEYPAD == XDUOO_X20_PAD
508
509#define ROCKBLOX_OFF BUTTON_POWER
510#define ROCKBLOX_ROTATE_CCW BUTTON_HOME
511#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN
512#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP
513#define ROCKBLOX_DOWN BUTTON_OPTION
514#define ROCKBLOX_LEFT BUTTON_PREV
515#define ROCKBLOX_RIGHT BUTTON_NEXT
516#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL)
517#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT)
518
495#elif CONFIG_KEYPAD == IHIFI_770_PAD 519#elif CONFIG_KEYPAD == IHIFI_770_PAD
496 520
497#define ROCKBLOX_OFF BUTTON_POWER 521#define ROCKBLOX_OFF BUTTON_POWER
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index 8886793ab7..f188dc1e24 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -433,6 +433,26 @@ static void setoptions (void)
433 options.SELECT = BUTTON_VOL_UP; 433 options.SELECT = BUTTON_VOL_UP;
434 options.MENU = BUTTON_POWER; 434 options.MENU = BUTTON_POWER;
435 435
436#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
437 options.UP = BUTTON_PREV;
438 options.DOWN = BUTTON_NEXT;
439
440 options.A = BUTTON_HOME;
441 options.B = BUTTON_OPTION;
442 options.START = BUTTON_VOL_DOWN;
443 options.SELECT = BUTTON_VOL_UP;
444 options.MENU = BUTTON_POWER;
445
446#elif CONFIG_KEYPAD == XDUOO_X20_PAD
447 options.UP = BUTTON_PREV;
448 options.DOWN = BUTTON_NEXT;
449
450 options.A = BUTTON_HOME;
451 options.B = BUTTON_OPTION;
452 options.START = BUTTON_VOL_DOWN;
453 options.SELECT = BUTTON_VOL_UP;
454 options.MENU = BUTTON_POWER;
455
436#elif CONFIG_KEYPAD == IHIFI_770_PAD 456#elif CONFIG_KEYPAD == IHIFI_770_PAD
437 options.UP = BUTTON_PREV; 457 options.UP = BUTTON_PREV;
438 options.DOWN = BUTTON_NEXT; 458 options.DOWN = BUTTON_NEXT;
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 0ea36c84b8..9b863906ce 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -340,6 +340,25 @@ CONFIG_KEYPAD == MROBE500_PAD
340#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) 340#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER)
341#define PUZZLE_PICTURE BUTTON_PLAY 341#define PUZZLE_PICTURE BUTTON_PLAY
342 342
343#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
344#define PUZZLE_QUIT BUTTON_POWER
345#define PUZZLE_LEFT BUTTON_PREV
346#define PUZZLE_RIGHT BUTTON_NEXT
347#define PUZZLE_UP BUTTON_HOME
348#define PUZZLE_DOWN BUTTON_OPTION
349#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER)
350#define PUZZLE_PICTURE BUTTON_PLAY
351
352#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
353#define PUZZLE_QUIT BUTTON_POWER
354#define PUZZLE_LEFT BUTTON_PREV
355#define PUZZLE_RIGHT BUTTON_NEXT
356#define PUZZLE_UP BUTTON_HOME
357#define PUZZLE_DOWN BUTTON_OPTION
358#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER)
359#define PUZZLE_PICTURE BUTTON_PLAY
360
361
343#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 362#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
344#define PUZZLE_QUIT BUTTON_POWER 363#define PUZZLE_QUIT BUTTON_POWER
345#define PUZZLE_LEFT BUTTON_HOME 364#define PUZZLE_LEFT BUTTON_HOME
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 2518316bdd..ae1e4350ad 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -297,6 +297,22 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
297#define SNAKE_DOWN BUTTON_OPTION 297#define SNAKE_DOWN BUTTON_OPTION
298#define SNAKE_PLAYPAUSE BUTTON_PLAY 298#define SNAKE_PLAYPAUSE BUTTON_PLAY
299 299
300#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
301#define SNAKE_QUIT BUTTON_POWER
302#define SNAKE_LEFT BUTTON_PREV
303#define SNAKE_RIGHT BUTTON_NEXT
304#define SNAKE_UP BUTTON_HOME
305#define SNAKE_DOWN BUTTON_OPTION
306#define SNAKE_PLAYPAUSE BUTTON_PLAY
307
308#elif CONFIG_KEYPAD == XDUOO_X20_PAD
309#define SNAKE_QUIT BUTTON_POWER
310#define SNAKE_LEFT BUTTON_PREV
311#define SNAKE_RIGHT BUTTON_NEXT
312#define SNAKE_UP BUTTON_HOME
313#define SNAKE_DOWN BUTTON_OPTION
314#define SNAKE_PLAYPAUSE BUTTON_PLAY
315
300#elif CONFIG_KEYPAD == IHIFI_770_PAD 316#elif CONFIG_KEYPAD == IHIFI_770_PAD
301#define SNAKE_QUIT BUTTON_POWER 317#define SNAKE_QUIT BUTTON_POWER
302#define SNAKE_LEFT BUTTON_HOME 318#define SNAKE_LEFT BUTTON_HOME
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 9ea79504e4..a9f0942806 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -428,6 +428,24 @@ CONFIG_KEYPAD == MROBE500_PAD
428#define SNAKE2_PLAYPAUSE BUTTON_PLAY 428#define SNAKE2_PLAYPAUSE BUTTON_PLAY
429#define SNAKE2_PLAYPAUSE_TEXT "PLAY" 429#define SNAKE2_PLAYPAUSE_TEXT "PLAY"
430 430
431#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
432#define SNAKE2_LEFT BUTTON_PREV
433#define SNAKE2_RIGHT BUTTON_NEXT
434#define SNAKE2_UP BUTTON_HOME
435#define SNAKE2_DOWN BUTTON_OPTION
436#define SNAKE2_QUIT BUTTON_POWER
437#define SNAKE2_PLAYPAUSE BUTTON_PLAY
438#define SNAKE2_PLAYPAUSE_TEXT "PLAY"
439
440#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
441#define SNAKE2_LEFT BUTTON_PREV
442#define SNAKE2_RIGHT BUTTON_NEXT
443#define SNAKE2_UP BUTTON_HOME
444#define SNAKE2_DOWN BUTTON_OPTION
445#define SNAKE2_QUIT BUTTON_POWER
446#define SNAKE2_PLAYPAUSE BUTTON_PLAY
447#define SNAKE2_PLAYPAUSE_TEXT "PLAY"
448
431#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 449#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
432#define SNAKE2_LEFT BUTTON_HOME 450#define SNAKE2_LEFT BUTTON_HOME
433#define SNAKE2_RIGHT BUTTON_VOL_DOWN 451#define SNAKE2_RIGHT BUTTON_VOL_DOWN
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 17971ec4db..450c881d1e 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -667,6 +667,38 @@
667#define BUTTON_SAVE BUTTON_PLAY 667#define BUTTON_SAVE BUTTON_PLAY
668#define BUTTON_SAVE_NAME "PLAY" 668#define BUTTON_SAVE_NAME "PLAY"
669 669
670#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
671#define SOKOBAN_LEFT BUTTON_PREV
672#define SOKOBAN_RIGHT BUTTON_NEXT
673#define SOKOBAN_UP BUTTON_HOME
674#define SOKOBAN_DOWN BUTTON_OPTION
675#define SOKOBAN_MENU BUTTON_POWER
676#define SOKOBAN_UNDO_PRE BUTTON_PLAY
677#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL)
678#define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY)
679#define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN
680#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_NEXT)
681#define SOKOBAN_LEVEL_UP BUTTON_VOL_UP
682#define SOKOBAN_PAUSE BUTTON_PLAY
683#define BUTTON_SAVE BUTTON_PLAY
684#define BUTTON_SAVE_NAME "PLAY"
685
686#elif CONFIG_KEYPAD == XDUOO_X20_PAD
687#define SOKOBAN_LEFT BUTTON_PREV
688#define SOKOBAN_RIGHT BUTTON_NEXT
689#define SOKOBAN_UP BUTTON_HOME
690#define SOKOBAN_DOWN BUTTON_OPTION
691#define SOKOBAN_MENU BUTTON_POWER
692#define SOKOBAN_UNDO_PRE BUTTON_PLAY
693#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL)
694#define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY)
695#define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN
696#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_NEXT)
697#define SOKOBAN_LEVEL_UP BUTTON_VOL_UP
698#define SOKOBAN_PAUSE BUTTON_PLAY
699#define BUTTON_SAVE BUTTON_PLAY
700#define BUTTON_SAVE_NAME "PLAY"
701
670#elif CONFIG_KEYPAD == IHIFI_770_PAD 702#elif CONFIG_KEYPAD == IHIFI_770_PAD
671#define SOKOBAN_LEFT BUTTON_HOME 703#define SOKOBAN_LEFT BUTTON_HOME
672#define SOKOBAN_RIGHT BUTTON_VOL_DOWN 704#define SOKOBAN_RIGHT BUTTON_VOL_DOWN
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 1ee79bb86a..dd4c8d3447 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -706,6 +706,44 @@ CONFIG_KEYPAD == MROBE500_PAD
706# define HK_CUR2STACK "DBL PLAY" 706# define HK_CUR2STACK "DBL PLAY"
707# define HK_REM2STACK "NEXT" 707# define HK_REM2STACK "NEXT"
708 708
709#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
710# define SOL_QUIT BUTTON_POWER
711# define SOL_UP BUTTON_HOME
712# define SOL_DOWN BUTTON_OPTION
713# define SOL_LEFT BUTTON_PREV
714# define SOL_RIGHT BUTTON_NEXT
715# define SOL_MOVE_PRE BUTTON_PLAY
716# define SOL_MOVE (BUTTON_PLAY | BUTTON_REL)
717# define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT)
718# define SOL_REM2CUR BUTTON_VOL_DOWN
719# define SOL_CUR2STACK_PRE BUTTON_PLAY
720# define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT)
721# define SOL_REM2STACK BUTTON_VOL_UP
722# define HK_MOVE "PLAY"
723# define HK_DRAW "DBL HOME"
724# define HK_REM2CUR "PREV"
725# define HK_CUR2STACK "DBL PLAY"
726# define HK_REM2STACK "NEXT"
727
728#elif CONFIG_KEYPAD == XDUOO_X20_PAD
729# define SOL_QUIT BUTTON_POWER
730# define SOL_UP BUTTON_HOME
731# define SOL_DOWN BUTTON_OPTION
732# define SOL_LEFT BUTTON_PREV
733# define SOL_RIGHT BUTTON_NEXT
734# define SOL_MOVE_PRE BUTTON_PLAY
735# define SOL_MOVE (BUTTON_PLAY | BUTTON_REL)
736# define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT)
737# define SOL_REM2CUR BUTTON_VOL_DOWN
738# define SOL_CUR2STACK_PRE BUTTON_PLAY
739# define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT)
740# define SOL_REM2STACK BUTTON_VOL_UP
741# define HK_MOVE "PLAY"
742# define HK_DRAW "DBL HOME"
743# define HK_REM2CUR "PREV"
744# define HK_CUR2STACK "DBL PLAY"
745# define HK_REM2STACK "NEXT"
746
709#elif CONFIG_KEYPAD == IHIFI_770_PAD 747#elif CONFIG_KEYPAD == IHIFI_770_PAD
710# define SOL_QUIT BUTTON_POWER 748# define SOL_QUIT BUTTON_POWER
711# define SOL_UP BUTTON_PREV 749# define SOL_UP BUTTON_PREV
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 15d4039b4d..98c6d1a032 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -363,6 +363,24 @@
363#define AST_RIGHT BUTTON_NEXT 363#define AST_RIGHT BUTTON_NEXT
364#define AST_FIRE BUTTON_PLAY 364#define AST_FIRE BUTTON_PLAY
365 365
366#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
367#define AST_PAUSE BUTTON_VOL_UP
368#define AST_QUIT BUTTON_POWER
369#define AST_THRUST BUTTON_HOME
370#define AST_HYPERSPACE BUTTON_OPTION
371#define AST_LEFT BUTTON_PREV
372#define AST_RIGHT BUTTON_NEXT
373#define AST_FIRE BUTTON_PLAY
374
375#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
376#define AST_PAUSE BUTTON_VOL_UP
377#define AST_QUIT BUTTON_POWER
378#define AST_THRUST BUTTON_HOME
379#define AST_HYPERSPACE BUTTON_OPTION
380#define AST_LEFT BUTTON_PREV
381#define AST_RIGHT BUTTON_NEXT
382#define AST_FIRE BUTTON_PLAY
383
366#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 384#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
367#define AST_PAUSE BUTTON_PLAY 385#define AST_PAUSE BUTTON_PLAY
368#define AST_QUIT BUTTON_POWER 386#define AST_QUIT BUTTON_POWER
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index fdf67bec4c..43036e2808 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -639,6 +639,38 @@
639#define STAR_LEVEL_DOWN_NAME "PLAY + PREV" 639#define STAR_LEVEL_DOWN_NAME "PLAY + PREV"
640#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" 640#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION"
641 641
642#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
643#define STAR_QUIT BUTTON_POWER
644#define STAR_LEFT BUTTON_PREV
645#define STAR_RIGHT BUTTON_NEXT
646#define STAR_UP BUTTON_HOME
647#define STAR_DOWN BUTTON_OPTION
648#define STAR_TOGGLE_CONTROL BUTTON_PLAY
649#define STAR_LEVEL_UP (BUTTON_PLAY | BUTTON_NEXT)
650#define STAR_LEVEL_DOWN (BUTTON_PLAY | BUTTON_PREV)
651#define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_OPTION)
652#define STAR_TOGGLE_CONTROL_NAME "PLAY"
653#define STAR_QUIT_NAME "POWER"
654#define STAR_LEVEL_UP_NAME "PLAY + NEXT"
655#define STAR_LEVEL_DOWN_NAME "PLAY + PREV"
656#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION"
657
658#elif CONFIG_KEYPAD == XDUOO_X20_PAD
659#define STAR_QUIT BUTTON_POWER
660#define STAR_LEFT BUTTON_PREV
661#define STAR_RIGHT BUTTON_NEXT
662#define STAR_UP BUTTON_HOME
663#define STAR_DOWN BUTTON_OPTION
664#define STAR_TOGGLE_CONTROL BUTTON_PLAY
665#define STAR_LEVEL_UP (BUTTON_PLAY | BUTTON_NEXT)
666#define STAR_LEVEL_DOWN (BUTTON_PLAY | BUTTON_PREV)
667#define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_OPTION)
668#define STAR_TOGGLE_CONTROL_NAME "PLAY"
669#define STAR_QUIT_NAME "POWER"
670#define STAR_LEVEL_UP_NAME "PLAY + NEXT"
671#define STAR_LEVEL_DOWN_NAME "PLAY + PREV"
672#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION"
673
642#elif CONFIG_KEYPAD == IHIFI_770_PAD 674#elif CONFIG_KEYPAD == IHIFI_770_PAD
643#define STAR_QUIT BUTTON_POWER 675#define STAR_QUIT BUTTON_POWER
644#define STAR_LEFT BUTTON_HOME 676#define STAR_LEFT BUTTON_HOME
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 5e83859d89..a806e4e830 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -321,6 +321,22 @@
321#define STOPWATCH_SCROLL_UP BUTTON_HOME 321#define STOPWATCH_SCROLL_UP BUTTON_HOME
322#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION 322#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
323 323
324#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
325#define STOPWATCH_QUIT BUTTON_POWER
326#define STOPWATCH_START_STOP BUTTON_NEXT
327#define STOPWATCH_RESET_TIMER BUTTON_PREV
328#define STOPWATCH_LAP_TIMER BUTTON_PLAY
329#define STOPWATCH_SCROLL_UP BUTTON_HOME
330#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
331
332#elif CONFIG_KEYPAD == XDUOO_X20_PAD
333#define STOPWATCH_QUIT BUTTON_POWER
334#define STOPWATCH_START_STOP BUTTON_NEXT
335#define STOPWATCH_RESET_TIMER BUTTON_PREV
336#define STOPWATCH_LAP_TIMER BUTTON_PLAY
337#define STOPWATCH_SCROLL_UP BUTTON_HOME
338#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
339
324#elif CONFIG_KEYPAD == IHIFI_770_PAD 340#elif CONFIG_KEYPAD == IHIFI_770_PAD
325#define STOPWATCH_QUIT BUTTON_POWER 341#define STOPWATCH_QUIT BUTTON_POWER
326#define STOPWATCH_START_STOP BUTTON_NEXT 342#define STOPWATCH_START_STOP BUTTON_NEXT
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 62ec80dba8..2bee868de9 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -437,6 +437,34 @@
437#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) 437#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
438#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER) 438#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER)
439 439
440#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
441#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
442#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
443#define SUDOKU_BUTTON_UP BUTTON_HOME
444#define SUDOKU_BUTTON_DOWN BUTTON_OPTION
445#define SUDOKU_BUTTON_LEFT BUTTON_PREV
446#define SUDOKU_BUTTON_RIGHT BUTTON_NEXT
447#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN
448#define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP
449#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_PLAY
450#define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER
451#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
452#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER)
453
454#elif CONFIG_KEYPAD == XDUOO_X20_PAD
455#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
456#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
457#define SUDOKU_BUTTON_UP BUTTON_HOME
458#define SUDOKU_BUTTON_DOWN BUTTON_OPTION
459#define SUDOKU_BUTTON_LEFT BUTTON_PREV
460#define SUDOKU_BUTTON_RIGHT BUTTON_NEXT
461#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN
462#define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP
463#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_PLAY
464#define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER
465#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
466#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER)
467
440#elif CONFIG_KEYPAD == IHIFI_770_PAD 468#elif CONFIG_KEYPAD == IHIFI_770_PAD
441#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER 469#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
442#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) 470#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index da6453ff8d..6ee8f9bbf1 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -562,6 +562,30 @@
562#define TV_LINE_DOWN BUTTON_OPTION 562#define TV_LINE_DOWN BUTTON_OPTION
563#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY) 563#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
564 564
565#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
566#define TV_QUIT BUTTON_POWER
567#define TV_SCROLL_UP BUTTON_VOL_UP
568#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
569#define TV_SCREEN_LEFT BUTTON_PREV
570#define TV_SCREEN_RIGHT BUTTON_NEXT
571#define TV_MENU BUTTON_PLAY
572#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
573#define TV_LINE_UP BUTTON_HOME
574#define TV_LINE_DOWN BUTTON_OPTION
575#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
576
577#elif CONFIG_KEYPAD == XDUOO_X20_PAD
578#define TV_QUIT BUTTON_POWER
579#define TV_SCROLL_UP BUTTON_VOL_UP
580#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
581#define TV_SCREEN_LEFT BUTTON_PREV
582#define TV_SCREEN_RIGHT BUTTON_NEXT
583#define TV_MENU BUTTON_PLAY
584#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
585#define TV_LINE_UP BUTTON_HOME
586#define TV_LINE_DOWN BUTTON_OPTION
587#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
588
565/* Xuelin 770/770c keys */ 589/* Xuelin 770/770c keys */
566#elif CONFIG_KEYPAD == IHIFI_770_PAD 590#elif CONFIG_KEYPAD == IHIFI_770_PAD
567#define TV_QUIT BUTTON_POWER 591#define TV_QUIT BUTTON_POWER
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index eaa92d4b48..33ad38d72c 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -432,6 +432,28 @@
432#define LABEL_MENU "PLAY" 432#define LABEL_MENU "PLAY"
433#define LABEL_VOLUME "VOL UP/DN" 433#define LABEL_VOLUME "VOL UP/DN"
434 434
435#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
436#define VUMETER_QUIT BUTTON_POWER
437#define VUMETER_HELP BUTTON_HOME
438#define VUMETER_MENU BUTTON_PLAY
439#define VUMETER_UP BUTTON_VOL_UP
440#define VUMETER_DOWN BUTTON_VOL_DOWN
441#define LABEL_HELP "HOME"
442#define LABEL_QUIT "POWER"
443#define LABEL_MENU "PLAY"
444#define LABEL_VOLUME "VOL UP/DN"
445
446#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
447#define VUMETER_QUIT BUTTON_POWER
448#define VUMETER_HELP BUTTON_HOME
449#define VUMETER_MENU BUTTON_PLAY
450#define VUMETER_UP BUTTON_VOL_UP
451#define VUMETER_DOWN BUTTON_VOL_DOWN
452#define LABEL_HELP "HOME"
453#define LABEL_QUIT "POWER"
454#define LABEL_MENU "PLAY"
455#define LABEL_VOLUME "VOL UP/DN"
456
435#elif (CONFIG_KEYPAD == IHIFI_770_PAD) 457#elif (CONFIG_KEYPAD == IHIFI_770_PAD)
436#define VUMETER_QUIT BUTTON_POWER 458#define VUMETER_QUIT BUTTON_POWER
437#define VUMETER_HELP BUTTON_HOME 459#define VUMETER_HELP BUTTON_HOME
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 9adfc97b81..d342511419 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -402,6 +402,24 @@ CONFIG_KEYPAD == MROBE500_PAD
402#define BTN_QUIT BUTTON_POWER 402#define BTN_QUIT BUTTON_POWER
403#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER) 403#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER)
404 404
405#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
406#define BTN_DIR_UP BUTTON_HOME
407#define BTN_DIR_DOWN BUTTON_OPTION
408#define BTN_DIR_LEFT BUTTON_PREV
409#define BTN_DIR_RIGHT BUTTON_NEXT
410#define BTN_STARTPAUSE BUTTON_PLAY
411#define BTN_QUIT BUTTON_POWER
412#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER)
413
414#elif CONFIG_KEYPAD == XDUOO_X20_PAD
415#define BTN_DIR_UP BUTTON_HOME
416#define BTN_DIR_DOWN BUTTON_OPTION
417#define BTN_DIR_LEFT BUTTON_PREV
418#define BTN_DIR_RIGHT BUTTON_NEXT
419#define BTN_STARTPAUSE BUTTON_PLAY
420#define BTN_QUIT BUTTON_POWER
421#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER)
422
405#elif CONFIG_KEYPAD == IHIFI_770_PAD 423#elif CONFIG_KEYPAD == IHIFI_770_PAD
406#define BTN_DIR_UP BUTTON_PREV 424#define BTN_DIR_UP BUTTON_PREV
407#define BTN_DIR_DOWN BUTTON_NEXT 425#define BTN_DIR_DOWN BUTTON_NEXT
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 8acdf85015..9643641569 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -351,6 +351,24 @@ CONFIG_KEYPAD == MROBE500_PAD
351#define DOWN BUTTON_OPTION 351#define DOWN BUTTON_OPTION
352#define PAUSE BUTTON_PLAY 352#define PAUSE BUTTON_PLAY
353 353
354#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
355
356#define QUIT BUTTON_POWER
357#define LEFT BUTTON_PREV
358#define RIGHT BUTTON_NEXT
359#define UP BUTTON_HOME
360#define DOWN BUTTON_OPTION
361#define PAUSE BUTTON_PLAY
362
363#elif CONFIG_KEYPAD == XDUOO_X20_PAD
364
365#define QUIT BUTTON_POWER
366#define LEFT BUTTON_PREV
367#define RIGHT BUTTON_NEXT
368#define UP BUTTON_HOME
369#define DOWN BUTTON_OPTION
370#define PAUSE BUTTON_PLAY
371
354#elif CONFIG_KEYPAD == IHIFI_770_PAD 372#elif CONFIG_KEYPAD == IHIFI_770_PAD
355 373
356#define QUIT BUTTON_POWER 374#define QUIT BUTTON_POWER
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index ce527c561e..53dd9e8d88 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -290,6 +290,22 @@
290#define ZX_UP BUTTON_HOME 290#define ZX_UP BUTTON_HOME
291#define ZX_DOWN BUTTON_OPTION 291#define ZX_DOWN BUTTON_OPTION
292 292
293#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
294#define ZX_SELECT BUTTON_PLAY
295#define ZX_MENU BUTTON_POWER
296#define ZX_LEFT BUTTON_PREV
297#define ZX_RIGHT BUTTON_NEXT
298#define ZX_UP BUTTON_HOME
299#define ZX_DOWN BUTTON_OPTION
300
301#elif CONFIG_KEYPAD == XDUOO_X20_PAD
302#define ZX_SELECT BUTTON_PLAY
303#define ZX_MENU BUTTON_POWER
304#define ZX_LEFT BUTTON_PREV
305#define ZX_RIGHT BUTTON_NEXT
306#define ZX_UP BUTTON_HOME
307#define ZX_DOWN BUTTON_OPTION
308
293#elif CONFIG_KEYPAD == IHIFI_770_PAD 309#elif CONFIG_KEYPAD == IHIFI_770_PAD
294#define ZX_SELECT BUTTON_PLAY 310#define ZX_SELECT BUTTON_PLAY
295#define ZX_MENU BUTTON_POWER 311#define ZX_MENU BUTTON_POWER
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index b3f1ca70e8..4a26accc8a 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -287,6 +287,24 @@
287#define KBD_UP BUTTON_HOME 287#define KBD_UP BUTTON_HOME
288#define KBD_DOWN BUTTON_OPTION 288#define KBD_DOWN BUTTON_OPTION
289 289
290#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
291
292#define KBD_SELECT BUTTON_PLAY
293#define KBD_ABORT BUTTON_POWER
294#define KBD_LEFT BUTTON_PREV
295#define KBD_RIGHT BUTTON_NEXT
296#define KBD_UP BUTTON_HOME
297#define KBD_DOWN BUTTON_OPTION
298
299#elif CONFIG_KEYPAD == XDUOO_X20_PAD
300
301#define KBD_SELECT BUTTON_PLAY
302#define KBD_ABORT BUTTON_POWER
303#define KBD_LEFT BUTTON_PREV
304#define KBD_RIGHT BUTTON_NEXT
305#define KBD_UP BUTTON_HOME
306#define KBD_DOWN BUTTON_OPTION
307
290#elif CONFIG_KEYPAD == IHIFI_770_PAD 308#elif CONFIG_KEYPAD == IHIFI_770_PAD
291 309
292#define KBD_SELECT BUTTON_PLAY 310#define KBD_SELECT BUTTON_PLAY