summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/battery_bench.c4
-rw-r--r--apps/plugins/blackjack.c4
-rw-r--r--apps/plugins/bounce.c3
-rw-r--r--apps/plugins/brickmania.c2
-rw-r--r--apps/plugins/calculator.c3
-rw-r--r--apps/plugins/calendar.c3
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h3
-rw-r--r--apps/plugins/chessclock.c4
-rw-r--r--apps/plugins/chip8.c4
-rw-r--r--apps/plugins/chopper.c4
-rw-r--r--apps/plugins/clix.c2
-rw-r--r--apps/plugins/cube.c2
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/doom/i_video.c2
-rw-r--r--apps/plugins/flipit.c4
-rw-r--r--apps/plugins/invadrox.c4
-rw-r--r--apps/plugins/jewels.c1
-rw-r--r--apps/plugins/jpeg/jpeg.h1
-rw-r--r--apps/plugins/lamp.c2
-rw-r--r--apps/plugins/lib/pluginlib_actions.c13
-rw-r--r--apps/plugins/logo.c2
-rw-r--r--apps/plugins/mandelbrot.c3
-rw-r--r--apps/plugins/matrix.c4
-rw-r--r--apps/plugins/midi/midiplay.c2
-rw-r--r--apps/plugins/minesweeper.c4
-rw-r--r--apps/plugins/mosaique.c2
-rw-r--r--apps/plugins/mp3_encoder.c4
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c3
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c3
-rw-r--r--apps/plugins/oscilloscope.c3
-rw-r--r--apps/plugins/pacbox/pacbox.h3
-rw-r--r--apps/plugins/pegbox.c4
-rw-r--r--apps/plugins/png/png.h2
-rw-r--r--apps/plugins/pong.c4
-rw-r--r--apps/plugins/reversi/reversi-gui.h3
-rw-r--r--apps/plugins/rockblox.c2
-rw-r--r--apps/plugins/rockboy/rockboy.c3
-rw-r--r--apps/plugins/rockpaint.c3
-rw-r--r--apps/plugins/sliding_puzzle.c4
-rw-r--r--apps/plugins/snake.c3
-rw-r--r--apps/plugins/snake2.c4
-rw-r--r--apps/plugins/snow.c1
-rw-r--r--apps/plugins/sokoban.c4
-rw-r--r--apps/plugins/solitaire.c4
-rw-r--r--apps/plugins/spacerocks.c4
-rw-r--r--apps/plugins/star.c4
-rw-r--r--apps/plugins/stats.c2
-rw-r--r--apps/plugins/stopwatch.c2
-rw-r--r--apps/plugins/sudoku/sudoku.h3
-rw-r--r--apps/plugins/viewer.c4
-rw-r--r--apps/plugins/vu_meter.c4
-rw-r--r--apps/plugins/wormlet.c4
-rw-r--r--apps/plugins/xobox.c4
-rw-r--r--apps/plugins/zxbox/keymaps.h3
-rw-r--r--docs/CREDITS1
-rwxr-xr-xtools/configure2
-rw-r--r--uisimulator/sdl/button.c4
-rw-r--r--uisimulator/sdl/uisdl.h6
58 files changed, 171 insertions, 17 deletions
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 683286c1a0..909de03512 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -184,6 +184,10 @@ PLUGIN_HEADER
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_OFF_TXT "POWER"
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+
+#define BATTERY_OFF BUTTON_POWER
+#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index a2acfeeccd..ec1bd46ce9 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -399,6 +399,10 @@ enum {
#define BJACK_QUIT BUTTON_POWER
#define BJACK_DOUBLEDOWN BUTTON_VOL_DOWN
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define BJACK_QUIT_NAME "POWER"
+#define BJACK_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define BJACK_QUIT_NAME "POWER"
#define BJACK_QUIT BUTTON_POWER
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 8baec546ce..0768c5963d 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -174,6 +174,9 @@ PLUGIN_HEADER
#define BOUNCE_QUIT BUTTON_POWER
#define BOUNCE_MODE BUTTON_MENU
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define BOUNCE_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define BOUNCE_QUIT BUTTON_POWER
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 08d76a0de9..c8b9f2ac1c 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -182,6 +182,8 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define LEFT BUTTON_VOL_DOWN
#define RIGHT BUTTON_VOL_UP
#define SELECT BUTTON_MENU
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 33235fccb5..74ee482b5d 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -334,6 +334,9 @@ PLUGIN_HEADER
#define CALCULATOR_QUIT BUTTON_POWER
#define CALCULATOR_CLEAR BUTTON_MENU
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define CALCULATOR_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define CALCULATOR_QUIT BUTTON_POWER
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 43a71e908c..bde5b1285d 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -193,6 +193,9 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define CALENDAR_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define CALENDAR_QUIT BUTTON_POWER
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index d292e6b40a..5a58581f2b 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -333,6 +333,9 @@
#define CB_RESTART BUTTON_VOL_DOWN
#define CB_MENU (BUTTON_MENU|BUTTON_REL)
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define CB_MENU BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define CB_SELECT (BUTTON_FFWD|BUTTON_RIGHT)
#define CB_UP BUTTON_UP
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 337e2cc5b0..8eaaf05adf 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -242,6 +242,10 @@ PLUGIN_HEADER
#define CHC_SETTINGS_DEC BUTTON_VOL_DOWN
#define CHC_SETTINGS_CANCEL BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define CHC_QUIT BUTTON_POWER
+#define CHC_SETTINGS_CANCEL BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define CHC_QUIT BUTTON_REC
#define CHC_STARTSTOP BUTTON_PLAY
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 2be281a3a2..3bdf95093a 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1102,7 +1102,9 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define CHIP8_KEY8 BUTTON_DOWN
#define CHIP8_KEY9 BUTTON_VIEW
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_OFF BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 4a39d2da54..4dfef9d8ae 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -134,7 +134,9 @@ Still To do:
#define ACTION2 BUTTON_SELECT
#define ACTIONTEXT "MENU"
-#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 07158c49c1..9c53bdab70 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -144,6 +144,8 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
#define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_CLICK BUTTON_MENU
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define CLIX_BUTTON_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == MROBE500_PAD)
#define CLIX_BUTTON_QUIT BUTTON_POWER
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index b90bbee481..1c072a2edd 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -241,6 +241,8 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define CUBE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define CUBE_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define CUBE_QUIT BUTTON_REC
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index 0eada8b83c..fda915ba6c 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -142,6 +142,8 @@ long reverse (long N) {
#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define LP_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define LP_QUIT BUTTON_LEFT
#else
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index e463ea5186..84b003be51 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -326,6 +326,8 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_SHOOT BUTTON_VOL_UP
#define DOOMBUTTON_WEAPON BUTTON_VOL_DOWN
#define DOOMBUTTON_MAP BUTTON_MENU
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define DOOMBUTTON_ESC BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define DOOMBUTTON_UP BUTTON_UP
#define DOOMBUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 9a79be6acb..49fb5344ec 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -280,6 +280,10 @@ PLUGIN_HEADER
#define FLIPIT_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+
+#define FLIPIT_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define FLIPIT_LEFT BUTTON_LEFT
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 19b2b670a4..6a8a37af47 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -172,7 +172,9 @@ PLUGIN_HEADER
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_SELECT
-#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index b133aa1e45..01c5e1ea0b 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -242,6 +242,7 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
CONFIG_KEYPAD == MROBE500_PAD
#define JEWELS_CANCEL BUTTON_POWER
#define HK_CANCEL "POWER"
diff --git a/apps/plugins/jpeg/jpeg.h b/apps/plugins/jpeg/jpeg.h
index bfe09fa4fd..b6123211d7 100644
--- a/apps/plugins/jpeg/jpeg.h
+++ b/apps/plugins/jpeg/jpeg.h
@@ -277,6 +277,7 @@
#define JPEG_PREVIOUS BUTTON_PLAYLIST
#elif CONFIG_KEYPAD == ONDAVX747_PAD
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define JPEG_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index 7f7204c30a..0775ef84e6 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -86,6 +86,8 @@ PLUGIN_HEADER
# define LAMP_LEFT BUTTON_VOL_DOWN
# define LAMP_RIGHT BUTTON_VOL_UP
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
# define LAMP_LEFT BUTTON_LEFT
# define LAMP_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 55c2f46902..957870c0a5 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -172,6 +172,7 @@ const struct button_mapping generic_directions[] =
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD) /* Touchscreen target */
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
{ PLA_UP, BUTTON_UP, BUTTON_NONE},
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
@@ -303,6 +304,7 @@ const struct button_mapping generic_left_right_fire[] =
{ PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
{ PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD) /* Touchscreen target */
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
{ PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
@@ -471,6 +473,12 @@ const struct button_mapping generic_actions[] =
{PLA_MENU, BUTTON_MENU, BUTTON_NONE},
{PLA_FIRE, BUTTON_VOL_UP, BUTTON_NONE},
{PLA_FIRE_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+ {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
+ {PLA_START, BUTTON_VOL_DOWN, BUTTON_NONE},
+ {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_VOL_UP, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
{PLA_QUIT, BUTTON_REW, BUTTON_NONE},
{PLA_START, BUTTON_FFWD, BUTTON_NONE},
@@ -557,6 +565,11 @@ const struct button_mapping generic_increase_decrease[] =
{PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
{PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
{PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+ {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
+ {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
+ {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
{PLA_INC, BUTTON_UP, BUTTON_NONE},
{PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 2456704bd1..2f84dc621e 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -169,6 +169,8 @@ const unsigned char rockbox16x7[] = {
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define LP_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define LP_QUIT BUTTON_PLAY
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 058b468465..00542cbb14 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -286,6 +286,9 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
#define MANDELBROT_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define MANDELBROT_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define MANDELBROT_QUIT BUTTON_REC
#define MANDELBROT_UP BUTTON_UP
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 12ec4e9093..5b0a371fe8 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -133,7 +133,9 @@ extern const fb_data matrix_normal[];
#define MATRIX_SLEEP_LESS BUTTON_DOWN
#define MATRIX_PAUSE BUTTON_SELECT
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define MATRIX_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index c24da7f309..ab06dd15f4 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -168,6 +168,8 @@ PLUGIN_IRAM_DECLARE
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define BTN_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define BTN_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define BTN_QUIT BUTTON_REW
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index a1190d5a51..7d946b1c5d 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -224,7 +224,9 @@ enum minesweeper_status {
# define MINESWP_DISCOVER BUTTON_SELECT
# define MINESWP_INFO BUTTON_MENU
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index b54e71f3f8..0613800421 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -149,6 +149,8 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define MOSAIQUE_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define MOSAIQUE_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define MOSAIQUE_QUIT BUTTON_PLAY
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 6ef1c762a6..e001ab8cdf 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2488,7 +2488,9 @@ void get_mp3_filename(const char *wav_name)
#define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_SELECT
-#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 7ca000553f..df926f4c17 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -173,6 +173,9 @@ struct mpeg_settings settings;
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define MPEG_START_TIME_EXIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define MPEG_START_TIME_EXIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define MPEG_START_TIME_SELECT BUTTON_PLAY
#define MPEG_START_TIME_LEFT BUTTON_LEFT
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index a66a588ace..0cb5f94d19 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -285,6 +285,9 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_VOLDOWN BUTTON_VOL_DOWN
#define MPEG_VOLUP BUTTON_VOL_UP
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define MPEG_MENU BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define MPEG_MENU BUTTON_LEFT
#define MPEG_STOP BUTTON_RIGHT
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 15943ef53e..43b0bb4423 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -248,6 +248,9 @@ PLUGIN_HEADER
#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define OSCILLOSCOPE_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define OSCILLOSCOPE_QUIT BUTTON_POWER
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index a4e1f8879d..ac13e24d2c 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -196,6 +196,9 @@
#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL)
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define PACMAN_MENU BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define PACMAN_UP BUTTON_UP
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 981d2d4fc6..f0fe0cdb6f 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -356,7 +356,9 @@ PLUGIN_HEADER
#define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-"
-#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define PEGBOX_QUIT BUTTON_POWER
#define QUIT_TEXT "POWER"
diff --git a/apps/plugins/png/png.h b/apps/plugins/png/png.h
index 090eaa959d..ddf1ac2d26 100644
--- a/apps/plugins/png/png.h
+++ b/apps/plugins/png/png.h
@@ -300,6 +300,8 @@ You are free to name this file lodepng.cpp or lodepng.c depending on your usage.
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define PNG_MENU BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define PNG_MENU BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define PNG_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index c49b863717..a6144d9664 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -184,7 +184,9 @@ PLUGIN_HEADER
#define PONG_RIGHT_UP BUTTON_VOL_UP
#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define PONG_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index ffb6b53af3..97b85b48b6 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -186,6 +186,9 @@
#define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_MENU BUTTON_MENU
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define REVERSI_BUTTON_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define REVERSI_BUTTON_QUIT BUTTON_REC
#define REVERSI_BUTTON_UP BUTTON_UP
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 3692526073..0314a7c516 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -286,6 +286,8 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_RESTART BUTTON_MENU
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define ROCKBLOX_OFF BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index d073f9306f..bf56c6a148 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -237,6 +237,9 @@ static void setoptions (void)
options.B=BUTTON_VOL_DOWN;
options.MENU=BUTTON_MENU;
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+ options.MENU=BUTTON_POWER;
+
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
options.UP=BUTTON_UP;
options.DOWN=BUTTON_DOWN;
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 12b30d484d..78fe7b46fe 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -159,6 +159,9 @@ PLUGIN_HEADER
#define ROCKPAINT_QUIT BUTTON_POWER
#define ROCKPAINT_MENU BUTTON_MENU
+#elif ( CONFIG_KEYPAD == ONDAVX777_PAD )
+#define ROCKPAINT_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define ROCKPAINT_QUIT BUTTON_POWER
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index af7fe83299..2f1d366960 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -188,7 +188,9 @@ PLUGIN_HEADER
#define PUZZLE_SHUFFLE BUTTON_VIEW
#define PUZZLE_PICTURE BUTTON_MENU
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_QUIT_TEXT "[POWER]"
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index e2e34e3f06..54d1d5dce3 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -180,6 +180,9 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == ONDAVX747_PAD)
#define SNAKE_QUIT BUTTON_POWER
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define SNAKE_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define SNAKE_QUIT BUTTON_REC
#define SNAKE_LEFT BUTTON_LEFT
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index d858976a31..c611521752 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -285,7 +285,9 @@ PLUGIN_HEADER
#define SNAKE2_PLAYPAUSE BUTTON_VIEW
#define SNAKE2_PLAYPAUSE_TEXT "View"
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+(CONFIG_KEYPAD == ONDAVX777_PAD) || \
+CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 01930b7363..99b6811df6 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -59,6 +59,7 @@ PLUGIN_HEADER
(CONFIG_KEYPAD == IAUDIO67_PAD) || \
(CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) || \
(CONFIG_KEYPAD == ONDAVX747_PAD) || \
+(CONFIG_KEYPAD == ONDAVX777_PAD) || \
(CONFIG_KEYPAD == GIGABEAT_PAD) || \
(CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
#define SNOW_QUIT BUTTON_POWER
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 2b90b93094..0d8a0821e5 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -380,6 +380,10 @@ PLUGIN_HEADER
#define SOKOBAN_MENU BUTTON_MENU
#define SOKOBAN_MENU_NAME "[MENU]"
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define SOKOBAN_MENU BUTTON_POWER
+#define SOKOBAN_MENU_NAME "[POWER]"
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define SOKOBAN_MENU BUTTON_POWER
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 0b7d8ac3c7..2296a6ef5a 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -395,7 +395,9 @@ PLUGIN_HEADER
# define HK_CUR2STACK "SELECT.."
# define HK_REM2STACK "VIEW+RIGHT"
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+(CONFIG_KEYPAD == ONDAVX777_PAD) || \
+CONFIG_KEYPAD == MROBE500_PAD
# define SOL_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index b0c9a4d604..ded3900b05 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -197,7 +197,9 @@ PLUGIN_HEADER
#define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_PLAYLIST
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+(CONFIG_KEYPAD == ONDAVX777_PAD) || \
+CONFIG_KEYPAD == MROBE500_PAD
#define AST_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == SAMSUNG_YH_PAD)
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 118a18227c..663c9dfca3 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -332,6 +332,10 @@ PLUGIN_HEADER
#define STAR_QUIT BUTTON_POWER
#define STAR_QUIT_NAME "POWER"
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define STAR_QUIT BUTTON_POWER
+#define STAR_QUIT_NAME "POWER"
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define STAR_QUIT BUTTON_POWER
#define STAR_QUIT_NAME "POWER"
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 495523738c..16eac4769c 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -96,6 +96,8 @@ static bool abort;
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define STATS_STOP BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define STATS_STOP BUTTON_POWER
#else
#error No keymap defined!
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index f0d8f16540..8c06ee0a5a 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -196,6 +196,8 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define STOPWATCH_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define STOPWATCH_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define STOPWATCH_QUIT BUTTON_REC
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index d4dd19232f..4669774f06 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -248,6 +248,9 @@
#define SUDOKU_BUTTON_QUIT BUTTON_POWER
#define SUDOKU_BUTTON_MENU BUTTON_MENU
+#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
+#define SUDOKU_BUTTON_QUIT BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_REC
#define SUDOKU_BUTTON_UP BUTTON_UP
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index f2a3f9f029..4d83dd0cc0 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -329,6 +329,10 @@ PLUGIN_HEADER
#define VIEWER_QUIT BUTTON_POWER
#define VIEWER_MENU BUTTON_MENU
+/* Onda VX777 keys */
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define VIEWER_QUIT BUTTON_POWER
+
/* SAMSUNG YH-820 / YH-920 / YH-925 keys */
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define VIEWER_QUIT BUTTON_REC
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 80e9ccbb20..0b331b7581 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -279,6 +279,10 @@ PLUGIN_HEADER
#define LABEL_QUIT "POWER"
#define LABEL_MENU "MENU"
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define VUMETER_QUIT BUTTON_POWER
+#define LABEL_QUIT "POWER"
+
#elif CONFIG_KEYPAD == MROBE500_PAD
#define VUMETER_QUIT BUTTON_POWER
#define LABEL_QUIT "POWER"
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index eb76e922d9..4d86453178 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -232,7 +232,9 @@ PLUGIN_HEADER
#define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET BUTTON_VIEW
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
+#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
+(CONFIG_KEYPAD == ONDAVX777_PAD) || \
+CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_POWER
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index daf627d590..3b7ada31f4 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -199,7 +199,9 @@ PLUGIN_HEADER
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_VIEW
-#elif CONFIG_KEYPAD == ONDAVX747_PAD || CONFIG_KEYPAD == MROBE500_PAD
+#elif CONFIG_KEYPAD == ONDAVX747_PAD || \
+CONFIG_KEYPAD == ONDAVX777_PAD || \
+CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index eb25adcbe4..29a27de6a8 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -160,6 +160,9 @@
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define ZX_MENU (BUTTON_MENU|BUTTON_REL)
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+#define ZX_MENU BUTTON_POWER
+
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define ZX_UP BUTTON_UP
diff --git a/docs/CREDITS b/docs/CREDITS
index bd92cae474..a4bb7e17b0 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -490,6 +490,7 @@ Amaury Pouly
Laurent Papier
Johannes Boy
Jason Yu
+Aaron DeMille
The libmad team
The wavpack team
diff --git a/tools/configure b/tools/configure
index 2f96f377e5..3cbb77fedf 100755
--- a/tools/configure
+++ b/tools/configure
@@ -2224,7 +2224,7 @@ fi
bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
output="rockbox.vx777"
appextra="recorder:gui"
- plugins="" #TODO
+ plugins="yes"
swcodec="yes"
toolset=$genericbitmaptools
boottool="$rootdir/tools/scramble -ccpmp"
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 5987584420..45dfc3fe2c 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -1166,6 +1166,10 @@ void button_event(int key, bool pressed)
case SDLK_RETURN:
new_btn = BUTTON_MENU;
break;
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+ case SDLK_ESCAPE:
+ new_btn = BUTTON_POWER;
+ break;
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
case SDLK_KP4:
case SDLK_LEFT:
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index 962e49d8f1..7b0bbf0f24 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -315,11 +315,13 @@
#define UI_LCD_POSX 42 /* x position of lcd */
#define UI_LCD_POSY 55 /* y position of lcd */
-#elif defined(ONDA_VX747) || defined(ONDA_VX747P)
+#elif defined(ONDA_VX747) || defined(ONDA_VX747P) || defined(ONDA_VX777)
#ifdef ONDA_VX747
#define UI_TITLE "Onda VX747"
-#else
+#elif defined(ONDA_VX747P)
#define UI_TITLE "Onda VX747+"
+#else
+#define UI_TITLE "Onda VX777"
#endif
#define UI_WIDTH 340 /* width of GUI window */
#define UI_HEIGHT 601 /* height of GUI window */