summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2010-04-26 21:40:00 +0000
committerMarcin Bukat <marcin.bukat@gmail.com>2010-04-26 21:40:00 +0000
commitb09d3aec392538ca0934644ff6357c41aaa4c323 (patch)
tree0603cf4ef59e84ee4e0c172e3b418d8dccac664c
parentfa5cd0d3bf744f75be0593a7e2c2083810f16c21 (diff)
downloadrockbox-b09d3aec392538ca0934644ff6357c41aaa4c323.tar.gz
rockbox-b09d3aec392538ca0934644ff6357c41aaa4c323.zip
Add MPIO HD200 port - changed files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25724 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/debug_menu.c3
-rw-r--r--apps/plugins/battery_bench.c6
-rw-r--r--apps/plugins/bitmaps/native/SOURCES19
-rw-r--r--apps/plugins/blackjack.c15
-rw-r--r--apps/plugins/bounce.c8
-rw-r--r--apps/plugins/brickmania.c8
-rw-r--r--apps/plugins/calculator.c7
-rw-r--r--apps/plugins/calendar.c10
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h10
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c9
-rw-r--r--apps/plugins/chopper.c5
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/doom/i_video.c10
-rw-r--r--apps/plugins/fft/fft.c8
-rw-r--r--apps/plugins/fireworks.c4
-rw-r--r--apps/plugins/flipit.c12
-rw-r--r--apps/plugins/fractals/fractal.h12
-rw-r--r--apps/plugins/goban/goban.h10
-rw-r--r--apps/plugins/imageviewer/imageviewer.h12
-rw-r--r--apps/plugins/jewels.c10
-rw-r--r--apps/plugins/lib/pluginlib_actions.c32
-rw-r--r--apps/plugins/logo.c7
-rw-r--r--apps/plugins/matrix.c6
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c10
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/mp3_encoder.c6
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c8
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c9
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/pegbox.c19
-rw-r--r--apps/plugins/plasma.c6
-rw-r--r--apps/plugins/pong.c7
-rw-r--r--apps/plugins/reversi/reversi-gui.h10
-rw-r--r--apps/plugins/rockblox.c10
-rw-r--r--apps/plugins/rockblox1d.c4
-rw-r--r--apps/plugins/sliding_puzzle.c9
-rw-r--r--apps/plugins/snake.c8
-rw-r--r--apps/plugins/snake2.c9
-rw-r--r--apps/plugins/snow.c3
-rw-r--r--apps/plugins/sokoban.c15
-rw-r--r--apps/plugins/solitaire.c18
-rw-r--r--apps/plugins/spacerocks.c10
-rw-r--r--apps/plugins/star.c18
-rw-r--r--apps/plugins/starfield.c8
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h9
-rw-r--r--apps/plugins/test_fps.c2
-rw-r--r--apps/plugins/test_grey.c8
-rw-r--r--apps/plugins/test_greylib_bitmap_scale.c2
-rw-r--r--apps/plugins/test_scanrate.c7
-rw-r--r--apps/plugins/viewer.c10
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c10
-rw-r--r--apps/plugins/xobox.c9
-rw-r--r--apps/plugins/zxbox/keymaps.h9
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c9
-rw-r--r--bootloader/SOURCES2
-rw-r--r--firmware/SOURCES24
-rw-r--r--firmware/drivers/audio/wm8751.c25
-rw-r--r--firmware/export/audiohw.h2
-rw-r--r--firmware/export/config.h3
-rw-r--r--firmware/export/wm8751.h9
-rw-r--r--firmware/sound.c11
-rw-r--r--firmware/target/coldfire/crt0.S19
-rw-r--r--firmware/target/coldfire/i2c-coldfire.c4
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c30
-rw-r--r--firmware/target/coldfire/system-coldfire.c5
-rwxr-xr-xtools/configure28
-rw-r--r--tools/scramble.c4
-rw-r--r--uisimulator/sdl/button.c36
-rw-r--r--uisimulator/sdl/uisdl.h8
76 files changed, 753 insertions, 12 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index 66f2a7da51..ef81f0cfdd 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -279,4 +279,6 @@ keymaps/keymap-yh8xx_yh9xx.c
279keymaps/keymap-mini2440.c 279keymaps/keymap-mini2440.c
280#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD 280#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
281keymaps/keymap-vibe500.c 281keymaps/keymap-vibe500.c
282#elif CONFIG_KEYPAD == MPIO_HD200_PAD
283keymaps/keymap-mpio-hd200.c
282#endif 284#endif
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 5b413598fc..867ac1fccd 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -1000,6 +1000,9 @@ static bool dbg_spdif(void)
1000#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD) 1000#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
1001# define DEBUG_CANCEL BUTTON_CANCEL 1001# define DEBUG_CANCEL BUTTON_CANCEL
1002 1002
1003#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
1004# define DEBUG_CANCEL BUTTON_REC
1005
1003#endif /* key definitions */ 1006#endif /* key definitions */
1004 1007
1005/* Test code!!! */ 1008/* Test code!!! */
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index e4e399ff7b..5c04892d61 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -210,6 +210,12 @@ PLUGIN_HEADER
210#define BATTERY_ON_TXT "PLAY - start" 210#define BATTERY_ON_TXT "PLAY - start"
211#define BATTERY_OFF_TXT "REC" 211#define BATTERY_OFF_TXT "REC"
212 212
213#elif CONFIG_KEYPAD == MPIO_HD200_PAD
214#define BATTERY_ON BUTTON_PLAY
215#define BATTERY_OFF BUTTON_REC
216#define BATTERY_ON_TXT "PLAY - start"
217#define BATTERY_OFF_TXT "REC"
218
213#else 219#else
214#error No keymap defined! 220#error No keymap defined!
215#endif 221#endif
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 506ecc9451..6d3257608f 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -98,6 +98,9 @@ brickmania_bricks.160x128x2.bmp
98#elif LCD_WIDTH >= 138 98#elif LCD_WIDTH >= 138
99brickmania_ball.5x5x2.bmp 99brickmania_ball.5x5x2.bmp
100brickmania_bricks.138x110x2.bmp 100brickmania_bricks.138x110x2.bmp
101#elif LCD_WIDTH >= 128
102brickmania_ball.4x4x2.bmp
103brickmania_bricks.128x128x2.bmp
101#else /* M3 currently */ 104#else /* M3 currently */
102brickmania_ball.4x4x2.bmp 105brickmania_ball.4x4x2.bmp
103brickmania_bricks.128x96x2.bmp 106brickmania_bricks.128x96x2.bmp
@@ -251,6 +254,14 @@ clock_segments.132x80x16.bmp
251clock_smallsegments.132x80x16.bmp 254clock_smallsegments.132x80x16.bmp
252clock_logo.132x80x16.bmp 255clock_logo.132x80x16.bmp
253clock_messages.132x80x16.bmp 256clock_messages.132x80x16.bmp
257#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 2)
258clock_binary.128x128x2.bmp
259clock_digits.128x128x2.bmp
260clock_smalldigits.128x128x2.bmp
261clock_segments.128x128x2.bmp
262clock_smallsegments.128x128x2.bmp
263clock_logo.128x128x2.bmp
264clock_messages.128x128x2.bmp
254#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1) 265#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1)
255clock_binary.112x64x1.bmp 266clock_binary.112x64x1.bmp
256clock_digits.112x64x1.bmp 267clock_digits.112x64x1.bmp
@@ -494,6 +505,8 @@ rockblox_background.128x96x2.bmp
494rockblox_background.160x128x2.bmp 505rockblox_background.160x128x2.bmp
495#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) 506#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
496rockblox_background.138x110x2.bmp 507rockblox_background.138x110x2.bmp
508#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128)
509rockblox_background.128x128x2.bmp
497#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96) 510#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96)
498rockblox_background.128x96x2.bmp 511rockblox_background.128x96x2.bmp
499#endif 512#endif
@@ -698,6 +711,10 @@ sudoku_inverse.112x64x1.bmp
698sudoku_start.128x96x2.bmp 711sudoku_start.128x96x2.bmp
699sudoku_normal.128x96x2.bmp 712sudoku_normal.128x96x2.bmp
700sudoku_inverse.128x96x2.bmp 713sudoku_inverse.128x96x2.bmp
714#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 2)
715sudoku_start.128x128x2.bmp
716sudoku_normal.128x128x2.bmp
717sudoku_inverse.128x128x2.bmp
701#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH >= 2) 718#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH >= 2)
702sudoku_start.138x110x2.bmp 719sudoku_start.138x110x2.bmp
703sudoku_normal.138x110x2.bmp 720sudoku_normal.138x110x2.bmp
@@ -861,6 +878,8 @@ pitch_notes.160x128x2.bmp
861pitch_notes.160x128x2.bmp 878pitch_notes.160x128x2.bmp
862#elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) && (LCD_DEPTH >= 16) 879#elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) && (LCD_DEPTH >= 16)
863pitch_notes.132x80x16.bmp 880pitch_notes.132x80x16.bmp
881#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 2)
882pitch_notes.128x128x2.bmp
864#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 96) && (LCD_DEPTH >= 2) 883#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 96) && (LCD_DEPTH >= 2)
865pitch_notes.128x96x2.bmp 884pitch_notes.128x96x2.bmp
866#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 64) 885#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 64)
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index a8f92b9f5a..1af26f290f 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -404,6 +404,21 @@ enum {
404#define BJACK_RIGHT BUTTON_NEXT 404#define BJACK_RIGHT BUTTON_NEXT
405#define BJACK_LEFT BUTTON_PREV 405#define BJACK_LEFT BUTTON_PREV
406 406
407#elif CONFIG_KEYPAD == MPIO_HD200_PAD
408#define BJACK_SELECT_NAME "SELECT"
409#define BJACK_STAY_NAME "RIGHT"
410#define BJACK_RESUME_NAME "PLAY"
411#define BJACK_QUIT_NAME "REC+PLAY"
412#define BJACK_DOUBLE_NAME "LEFT"
413#define BJACK_SELECT BUTTON_SELECT
414#define BJACK_QUIT (BUTTON_REC|BUTTON_PLAY)
415#define BJACK_STAY BUTTON_VOL_UP
416#define BJACK_DOUBLEDOWN BUTTON_VOL_DOWN
417#define BJACK_UP BUTTON_PREV
418#define BJACK_DOWN BUTTON_NEXT
419#define BJACK_RIGHT BUTTON_VOL_UP
420#define BJACK_LEFT BUTTON_VOL_DOWN
421
407#else 422#else
408#error No keymap defined! 423#error No keymap defined!
409#endif 424#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index a7f8e1847d..f193818850 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -204,6 +204,14 @@ PLUGIN_HEADER
204#define BOUNCE_QUIT BUTTON_REC 204#define BOUNCE_QUIT BUTTON_REC
205#define BOUNCE_MODE BUTTON_MENU 205#define BOUNCE_MODE BUTTON_MENU
206 206
207#elif CONFIG_KEYPAD == MPIO_HD200_PAD
208#define BOUNCE_LEFT BUTTON_VOL_DOWN
209#define BOUNCE_RIGHT BUTTON_VOL_UP
210#define BOUNCE_UP BUTTON_PREV
211#define BOUNCE_DOWN BUTTON_NEXT
212#define BOUNCE_QUIT (BUTTON_REC | BUTTON_PLAY)
213#define BOUNCE_MODE BUTTON_SELECT
214
207#else 215#else
208#error No keymap defined! 216#error No keymap defined!
209#endif 217#endif
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index bc446df179..60e8f3820b 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -243,6 +243,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD
243#define UP BUTTON_UP 243#define UP BUTTON_UP
244#define DOWN BUTTON_DOWN 244#define DOWN BUTTON_DOWN
245 245
246#elif CONFIG_KEYPAD == MPIO_HD200_PAD
247#define QUIT (BUTTON_REC|BUTTON_PLAY)
248#define LEFT BUTTON_VOL_DOWN
249#define RIGHT BUTTON_VOL_UP
250#define SELECT BUTTON_SELECT
251#define UP BUTTON_PREV
252#define DOWN BUTTON_NEXT
253
246#else 254#else
247#error No keymap defined! 255#error No keymap defined!
248#endif 256#endif
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 4e40625356..942f031890 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -374,6 +374,13 @@ PLUGIN_HEADER
374#define CALCULATOR_CALC BUTTON_PLAY 374#define CALCULATOR_CALC BUTTON_PLAY
375#define CALCULATOR_CLEAR BUTTON_CANCEL 375#define CALCULATOR_CLEAR BUTTON_CANCEL
376 376
377#elif CONFIG_KEYPAD == MPIO_HD200_PAD
378#define CALCULATOR_LEFT BUTTON_PREV
379#define CALCULATOR_RIGHT BUTTON_NEXT
380#define CALCULATOR_QUIT (BUTTON_REC|BUTTON_PLAY)
381#define CALCULATOR_INPUT BUTTON_SELECT
382#define CALCULATOR_CALC BUTTON_PLAY
383
377#else 384#else
378#error No keymap defined! 385#error No keymap defined!
379#endif 386#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index 9327ac6aa2..d6a1a9a4ac 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -258,6 +258,16 @@ PLUGIN_HEADER
258#define CALENDAR_NEXT_MONTH BUTTON_PLAY 258#define CALENDAR_NEXT_MONTH BUTTON_PLAY
259#define CALENDAR_PREV_MONTH BUTTON_MENU 259#define CALENDAR_PREV_MONTH BUTTON_MENU
260 260
261#elif CONFIG_KEYPAD == MPIO_HD200_PAD
262#define CALENDAR_QUIT (BUTTON_REC|BUTTON_PLAY)
263#define CALENDAR_SELECT BUTTON_SELECT
264#define CALENDAR_NEXT_WEEK BUTTON_NEXT
265#define CALENDAR_PREV_WEEK BUTTON_PREV
266#define CALENDAR_NEXT_DAY BUTTON_VOL_UP
267#define CALENDAR_PREV_DAY BUTTON_VOL_DOWN
268#define CALENDAR_NEXT_MONTH BUTTON_PLAY
269#define CALENDAR_PREV_MONTH BUTTON_REC
270
261#else 271#else
262#error "No keypad setting." 272#error "No keypad setting."
263#endif 273#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 64cf3a5383..ee28a4fd55 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -366,6 +366,16 @@
366#define CB_LEVEL BUTTON_CANCEL 366#define CB_LEVEL BUTTON_CANCEL
367#define CB_MENU BUTTON_MENU 367#define CB_MENU BUTTON_MENU
368 368
369#elif CONFIG_KEYPAD == MPIO_HD200_PAD
370#define CB_SELECT BUTTON_SELECT
371#define CB_UP BUTTON_PREV
372#define CB_DOWN BUTTON_NEXT
373#define CB_LEFT BUTTON_VOL_DOWN
374#define CB_RIGHT BUTTON_VOL_UP
375#define CB_PLAY BUTTON_PLAY
376#define CB_LEVEL BUTTON_REC
377#define CB_MENU (BUTTON_SELECT | BUTTON_REPEAT)
378
369#else 379#else
370#error No keymap defined! 380#error No keymap defined!
371#endif 381#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index f0a63f63dc..3afa705bf1 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -276,6 +276,16 @@ PLUGIN_HEADER
276#define CHC_SETTINGS_OK BUTTON_OK 276#define CHC_SETTINGS_OK BUTTON_OK
277#define CHC_SETTINGS_CANCEL BUTTON_CANCEL 277#define CHC_SETTINGS_CANCEL BUTTON_CANCEL
278 278
279#elif CONFIG_KEYPAD == MPIO_HD200_PAD
280#define CHC_QUIT (BUTTON_REC|BUTTON_PLAY)
281#define CHC_STARTSTOP BUTTON_PLAY
282#define CHC_RESET BUTTON_PREV
283#define CHC_MENU BUTTON_SELECT
284#define CHC_SETTINGS_INC BUTTON_VOL_UP
285#define CHC_SETTINGS_DEC BUTTON_VOL_DOWN
286#define CHC_SETTINGS_OK BUTTON_SELECT
287#define CHC_SETTINGS_CANCEL BUTTON_REC
288
279#else 289#else
280#error No keymap defined! 290#error No keymap defined!
281#endif 291#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 4aa19125f2..edc3bf0bc1 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1136,6 +1136,15 @@ CONFIG_KEYPAD == MROBE500_PAD
1136#define CHIP8_KEY6 BUTTON_NEXT 1136#define CHIP8_KEY6 BUTTON_NEXT
1137#define CHIP8_KEY8 BUTTON_DOWN 1137#define CHIP8_KEY8 BUTTON_DOWN
1138 1138
1139#elif CONFIG_KEYPAD == MPIO_HD200_PAD
1140
1141#define CHIP8_OFF (BUTTON_REC|BUTTON_PLAY)
1142#define CHIP8_KEY2 BUTTON_PREV
1143#define CHIP8_KEY4 BUTTON_NEXT
1144#define CHIP8_KEY5 BUTTON_PLAY
1145#define CHIP8_KEY6 BUTTON_VOL_DOWN
1146#define CHIP8_KEY8 BUTTON_VOL_UP
1147
1139#else 1148#else
1140#error No keymap defined! 1149#error No keymap defined!
1141#endif 1150#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 1217ea75ac..67cb9ee760 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -157,6 +157,11 @@ CONFIG_KEYPAD == MROBE500_PAD
157#define ACTION2 BUTTON_UP 157#define ACTION2 BUTTON_UP
158#define ACTIONTEXT "PLAY" 158#define ACTIONTEXT "PLAY"
159 159
160#elif CONFIG_KEYPAD == MPIO_HD200_PAD
161#define QUIT (BUTTON_REC|BUTTON_PLAY)
162#define ACTION BUTTON_SELECT
163#define ACTIONTEXT "SELECT"
164
160#else 165#else
161#error No keymap defined! 166#error No keymap defined!
162#endif 167#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 014bcfcb79..5c6f9934eb 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -274,6 +274,16 @@ PLUGIN_HEADER
274#define CUBE_PAUSE BUTTON_PLAY 274#define CUBE_PAUSE BUTTON_PLAY
275#define CUBE_HIGHSPEED BUTTON_OK 275#define CUBE_HIGHSPEED BUTTON_OK
276 276
277#elif CONFIG_KEYPAD == MPIO_HD200_PAD
278#define CUBE_QUIT (BUTTON_REC | BUTTON_PLAY)
279#define CUBE_NEXT BUTTON_NEXT
280#define CUBE_PREV BUTTON_PREV
281#define CUBE_INC BUTTON_VOL_UP
282#define CUBE_DEC BUTTON_VOL_DOWN
283#define CUBE_MODE BUTTON_REC
284#define CUBE_PAUSE BUTTON_PLAY
285#define CUBE_HIGHSPEED BUTTON_SELECT
286
277#else 287#else
278#error No keymap defined! 288#error No keymap defined!
279#endif 289#endif
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index bb98df7501..cdd4c651de 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -150,6 +150,8 @@ long reverse (long N) {
150#define LP_QUIT BUTTON_LEFT 150#define LP_QUIT BUTTON_LEFT
151#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD 151#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
152#define LP_QUIT BUTTON_CANCEL 152#define LP_QUIT BUTTON_CANCEL
153#elif CONFIG_KEYPAD == MPIO_HD200_PAD
154#define LP_QUIT (BUTTON_REC|BUTTON_PLAY)
153#else 155#else
154#define LP_QUIT BUTTON_OFF 156#define LP_QUIT BUTTON_OFF
155#endif 157#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index fbe8369100..dc0374f852 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -360,6 +360,16 @@ void I_ShutdownGraphics(void)
360#define DOOMBUTTON_ESC BUTTON_REC 360#define DOOMBUTTON_ESC BUTTON_REC
361#define DOOMBUTTON_ENTER BUTTON_POWER 361#define DOOMBUTTON_ENTER BUTTON_POWER
362#define DOOMBUTTON_WEAPON BUTTON_PLAY 362#define DOOMBUTTON_WEAPON BUTTON_PLAY
363#elif CONFIG_KEYPAD == MPIO_HD200_PAD
364#define DOOMBUTTON_UP BUTTON_PREV
365#define DOOMBUTTON_DOWN BUTTON_NEXT
366#define DOOMBUTTON_LEFT BUTTON_VOL_DOWN
367#define DOOMBUTTON_RIGHT BUTTON_VOL_UP
368#define DOOMBUTTON_SHOOT BUTTON_SELECT
369#define DOOMBUTTON_OPEN (BUTTON_SELECT|BUTTON_PLAY)
370#define DOOMBUTTON_ESC BUTTON_REC
371#define DOOMBUTTON_ENTER BUTTON_PLAY
372#define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_REPEAT)
363#else 373#else
364#error Keymap not defined! 374#error Keymap not defined!
365#endif 375#endif
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index e62c919f88..ae07179557 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -195,6 +195,14 @@ GREY_INFO_STRUCT
195# define FFT_SCALE BUTTON_PLAY 195# define FFT_SCALE BUTTON_PLAY
196# define FFT_QUIT BUTTON_REC 196# define FFT_QUIT BUTTON_REC
197 197
198#elif CONFIG_KEYPAD == MPIO_HD200_PAD
199# define FFT_PREV_GRAPH BUTTON_PREV
200# define FFT_NEXT_GRAPH BUTTON_NEXT
201# define FFT_ORIENTATION BUTTON_REC
202# define FFT_WINDOW BUTTON_SELECT
203# define FFT_SCALE BUTTON_PLAY
204# define FFT_QUIT (BUTTON_REC | BUTTON_PLAY)
205
198#else 206#else
199#error No keymap defined! 207#error No keymap defined!
200#endif 208#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 263c05792b..1ad5f9a2ca 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -114,6 +114,10 @@ PLUGIN_HEADER
114#define BTN_MENU BUTTON_MENU 114#define BTN_MENU BUTTON_MENU
115#define BTN_FIRE BUTTON_OK 115#define BTN_FIRE BUTTON_OK
116 116
117#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
118#define BTN_MENU BUTTON_REC
119#define BTN_FIRE BUTTON_SELECT
120
117#elif defined(HAVE_TOUCHSCREEN) 121#elif defined(HAVE_TOUCHSCREEN)
118 /* This is a touchscreen target */ 122 /* This is a touchscreen target */
119#else 123#else
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index b706b63f94..d4c5702bc0 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -320,6 +320,18 @@ PLUGIN_HEADER
320#define FLIPIT_STEP_BY_STEP BUTTON_CANCEL 320#define FLIPIT_STEP_BY_STEP BUTTON_CANCEL
321#define FLIPIT_TOGGLE BUTTON_OK 321#define FLIPIT_TOGGLE BUTTON_OK
322 322
323#elif CONFIG_KEYPAD == MPIO_HD200_PAD
324
325#define FLIPIT_LEFT BUTTON_VOL_DOWN
326#define FLIPIT_RIGHT BUTTON_VOL_UP
327#define FLIPIT_UP BUTTON_PREV
328#define FLIPIT_DOWN BUTTON_NEXT
329#define FLIPIT_QUIT (BUTTON_REC|BUTTON_PLAY)
330#define FLIPIT_SHUFFLE BUTTON_SELECT
331#define FLIPIT_SOLVE BUTTON_REC
332#define FLIPIT_STEP_BY_STEP (BUTTON_PLAY|BUTTON_PREV)
333#define FLIPIT_TOGGLE (BUTTON_PLAY|BUTTON_NEXT)
334
323#else 335#else
324#error No keymap defined! 336#error No keymap defined!
325#endif 337#endif
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 2bcee1da57..557dde470a 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -318,6 +318,18 @@
318#define FRACTAL_PRECISION_DEC BUTTON_CANCEL 318#define FRACTAL_PRECISION_DEC BUTTON_CANCEL
319#define FRACTAL_RESET (BUTTON_CANCEL | BUTTON_REPEAT) 319#define FRACTAL_RESET (BUTTON_CANCEL | BUTTON_REPEAT)
320 320
321#elif CONFIG_KEYPAD == MPIO_HD200_PAD
322#define FRACTAL_QUIT (BUTTON_REC | BUTTON_PLAY)
323#define FRACTAL_UP BUTTON_PREV
324#define FRACTAL_DOWN BUTTON_NEXT
325#define FRACTAL_LEFT BUTTON_VOL_DOWN
326#define FRACTAL_RIGHT BUTTON_VOL_UP
327#define FRACTAL_ZOOM_IN (BUTTON_PLAY|BUTTON_NEXT)
328#define FRACTAL_ZOOM_OUT (BUTTON_PLAY|BUTTON_PREV)
329#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_VOL_UP)
330#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_VOL_DOWN)
331#define FRACTAL_RESET BUTTON_REC
332
321#else 333#else
322#error No keymap defined! 334#error No keymap defined!
323#endif 335#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 6bc1e83ea9..978812ac65 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -309,6 +309,16 @@
309#define GBN_BUTTON_CONTEXT BUTTON_OK 309#define GBN_BUTTON_CONTEXT BUTTON_OK
310#define GBN_BUTTON_NEXT_VAR BUTTON_CANCEL 310#define GBN_BUTTON_NEXT_VAR BUTTON_CANCEL
311 311
312#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
313#define GBN_BUTTON_UP BUTTON_PREV
314#define GBN_BUTTON_DOWN BUTTON_NEXT
315#define GBN_BUTTON_LEFT BUTTON_VOL_DOWN
316#define GBN_BUTTON_RIGHT BUTTON_VOL_UP
317#define GBN_BUTTON_RETREAT BUTTON_REC
318#define GBN_BUTTON_ADVANCE BUTTON_PLAY
319#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
320#define GBN_BUTTON_MENU BUTTON_SELECT | BUTTON_REPEAT
321
312#else 322#else
313#error Unsupported keypad 323#error Unsupported keypad
314#endif 324#endif
diff --git a/apps/plugins/imageviewer/imageviewer.h b/apps/plugins/imageviewer/imageviewer.h
index a2e12911b3..b704701cda 100644
--- a/apps/plugins/imageviewer/imageviewer.h
+++ b/apps/plugins/imageviewer/imageviewer.h
@@ -316,6 +316,18 @@
316#define IMGVIEW_MENU BUTTON_MENU 316#define IMGVIEW_MENU BUTTON_MENU
317#define IMGVIEW_QUIT BUTTON_CANCEL 317#define IMGVIEW_QUIT BUTTON_CANCEL
318 318
319#elif CONFIG_KEYPAD == MPIO_HD200_PAD
320#define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_VOL_UP)
321#define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_VOL_DOWN)
322#define IMGVIEW_UP BUTTON_PREV
323#define IMGVIEW_DOWN BUTTON_NEXT
324#define IMGVIEW_LEFT BUTTON_VOL_DOWN
325#define IMGVIEW_RIGHT BUTTON_VOL_UP
326#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT)
327#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV)
328#define IMGVIEW_MENU BUTTON_SELECT
329#define IMGVIEW_QUIT (BUTTON_REC | BUTTON_PLAY)
330
319#else 331#else
320#error No keymap defined! 332#error No keymap defined!
321#endif 333#endif
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 74e8d6ec11..6bed9bf827 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -277,6 +277,16 @@ CONFIG_KEYPAD == MROBE500_PAD
277#define HK_SELECT "OK" 277#define HK_SELECT "OK"
278#define HK_CANCEL "REC" 278#define HK_CANCEL "REC"
279 279
280#elif CONFIG_KEYPAD == MPIO_HD200_PAD
281#define JEWELS_LEFT BUTTON_VOL_DOWN
282#define JEWELS_RIGHT BUTTON_VOL_UP
283#define JEWELS_UP BUTTON_PREV
284#define JEWELS_DOWN BUTTON_NEXT
285#define JEWELS_SELECT BUTTON_SELECT
286#define JEWELS_CANCEL BUTTON_REC
287#define HK_SELECT "SELECT"
288#define HK_CANCEL "REC"
289
280#else 290#else
281#error No keymap defined! 291#error No keymap defined!
282#endif 292#endif
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 20e7bd7ea3..29c9430f64 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -199,6 +199,16 @@ const struct button_mapping generic_directions[] =
199 { PLA_DOWN_REPEAT, BUTTON_DOWN, BUTTON_NONE}, 199 { PLA_DOWN_REPEAT, BUTTON_DOWN, BUTTON_NONE},
200 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE}, 200 { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE},
201 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE}, 201 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
202#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
203 { PLA_UP, BUTTON_PREV, BUTTON_NONE},
204 { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE},
205 { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE},
206 { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE},
207 { PLA_UP_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE},
208 { PLA_DOWN_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
209 { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
210 { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
211
202#else 212#else
203 #error pluginlib_actions: Unsupported keypad 213 #error pluginlib_actions: Unsupported keypad
204#endif 214#endif
@@ -342,6 +352,15 @@ const struct button_mapping generic_left_right_fire[] =
342 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE}, 352 { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE},
343 { PLA_FIRE, BUTTON_OK, BUTTON_NONE}, 353 { PLA_FIRE, BUTTON_OK, BUTTON_NONE},
344 { PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE}, 354 { PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
355#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
356 { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE},
357 { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE},
358 { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
359 { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
360 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
361 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
362
363
345#else 364#else
346 #error pluginlib_actions: Unsupported keypad 365 #error pluginlib_actions: Unsupported keypad
347#endif 366#endif
@@ -521,6 +540,13 @@ const struct button_mapping generic_actions[] =
521 {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, 540 {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
522 {PLA_FIRE, BUTTON_OK, BUTTON_NONE}, 541 {PLA_FIRE, BUTTON_OK, BUTTON_NONE},
523 {PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE}, 542 {PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
543#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
544 {PLA_QUIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE},
545 {PLA_START, BUTTON_PLAY, BUTTON_NONE},
546 {PLA_MENU, BUTTON_REC, BUTTON_NONE},
547 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
548 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
549
524#else 550#else
525 #error pluginlib_actions: Unsupported keypad 551 #error pluginlib_actions: Unsupported keypad
526#endif 552#endif
@@ -616,6 +642,12 @@ const struct button_mapping generic_increase_decrease[] =
616 {PLA_DEC, BUTTON_DOWN, BUTTON_NONE}, 642 {PLA_DEC, BUTTON_DOWN, BUTTON_NONE},
617 {PLA_INC_REPEAT, BUTTON_UP, BUTTON_NONE}, 643 {PLA_INC_REPEAT, BUTTON_UP, BUTTON_NONE},
618 {PLA_DEC_REPEAT, BUTTON_DOWN, BUTTON_NONE}, 644 {PLA_DEC_REPEAT, BUTTON_DOWN, BUTTON_NONE},
645#elif CONFIG_KEYPAD == MPIO_HD200_PAD
646 {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE},
647 {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE},
648 {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE},
649 {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
650
619#else 651#else
620 #error pluginlib_actions: Unsupported keypad 652 #error pluginlib_actions: Unsupported keypad
621#endif 653#endif
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index b2320237f9..59baa2d5af 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -193,6 +193,13 @@ const unsigned char rockbox16x7[] = {
193#define LP_DEC_Y BUTTON_DOWN 193#define LP_DEC_Y BUTTON_DOWN
194#define LP_INC_Y BUTTON_UP 194#define LP_INC_Y BUTTON_UP
195 195
196#elif CONFIG_KEYPAD == MPIO_HD200_PAD
197#define LP_QUIT (BUTTON_REC|BUTTON_PLAY)
198#define LP_DEC_X BUTTON_VOL_DOWN
199#define LP_INC_X BUTTON_VOL_UP
200#define LP_DEC_Y BUTTON_PREV
201#define LP_INC_Y BUTTON_NEXT
202
196#else 203#else
197#define LP_QUIT BUTTON_OFF 204#define LP_QUIT BUTTON_OFF
198#define LP_DEC_X BUTTON_LEFT 205#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index e7326ea4f4..5a13b3aa38 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -156,6 +156,12 @@ CONFIG_KEYPAD == MROBE500_PAD
156#define MATRIX_SLEEP_LESS BUTTON_NEXT 156#define MATRIX_SLEEP_LESS BUTTON_NEXT
157#define MATRIX_PAUSE BUTTON_PLAY 157#define MATRIX_PAUSE BUTTON_PLAY
158 158
159#elif CONFIG_KEYPAD == MPIO_HD200_PAD
160#define MATRIX_EXIT (BUTTON_REC|BUTTON_PLAY)
161#define MATRIX_SLEEP_MORE BUTTON_VOL_UP
162#define MATRIX_SLEEP_LESS BUTTON_VOL_DOWN
163#define MATRIX_PAUSE BUTTON_PLAY
164
159#else 165#else
160#error Unsupported keypad 166#error Unsupported keypad
161#endif 167#endif
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 69c137e268..b225014fce 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -195,6 +195,14 @@ PLUGIN_IRAM_DECLARE
195#define BTN_DOWN BUTTON_DOWN 195#define BTN_DOWN BUTTON_DOWN
196#define BTN_PLAY BUTTON_PLAY 196#define BTN_PLAY BUTTON_PLAY
197 197
198#elif CONFIG_KEYPAD == MPIO_HD200_PAD
199#define BTN_QUIT (BUTTON_REC | BUTTON_PLAY)
200#define BTN_RIGHT BUTTON_VOL_DOWN
201#define BTN_LEFT BUTTON_VOL_UP
202#define BTN_UP BUTTON_PREV
203#define BTN_DOWN BUTTON_NEXT
204#define BTN_PLAY BUTTON_PLAY
205
198#else 206#else
199#error No keymap defined! 207#error No keymap defined!
200#endif 208#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 7b26169da7..dbf3271353 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -259,6 +259,16 @@ CONFIG_KEYPAD == MROBE500_PAD
259# define MINESWP_DISCOVER BUTTON_OK 259# define MINESWP_DISCOVER BUTTON_OK
260# define MINESWP_INFO BUTTON_MENU 260# define MINESWP_INFO BUTTON_MENU
261 261
262#elif CONFIG_KEYPAD == MPIO_HD200_PAD
263# define MINESWP_LEFT BUTTON_VOL_DOWN
264# define MINESWP_RIGHT BUTTON_VOL_UP
265# define MINESWP_UP BUTTON_PREV
266# define MINESWP_DOWN BUTTON_NEXT
267# define MINESWP_QUIT (BUTTON_REC|BUTTON_PLAY)
268# define MINESWP_TOGGLE BUTTON_PLAY
269# define MINESWP_DISCOVER BUTTON_SELECT
270# define MINESWP_INFO BUTTON_REC
271
262#else 272#else
263#error No keymap defined! 273#error No keymap defined!
264#endif 274#endif
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index d6fc11d131..6506c85560 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -169,6 +169,11 @@ PLUGIN_HEADER
169#define MOSAIQUE_SPEED BUTTON_PLAY 169#define MOSAIQUE_SPEED BUTTON_PLAY
170#define MOSAIQUE_RESTART BUTTON_MENU 170#define MOSAIQUE_RESTART BUTTON_MENU
171 171
172#elif CONFIG_KEYPAD == MPIO_HD200_PAD
173#define MOSAIQUE_QUIT (BUTTON_REC | BUTTON_PLAY)
174#define MOSAIQUE_SPEED BUTTON_SELECT
175#define MOSAIQUE_RESTART BUTTON_PLAY
176
172#else 177#else
173#error No keymap defined! 178#error No keymap defined!
174#endif 179#endif
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 070bdb199f..50aa99b2ae 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2511,6 +2511,12 @@ CONFIG_KEYPAD == MROBE500_PAD
2511#define MP3ENC_DONE BUTTON_REC 2511#define MP3ENC_DONE BUTTON_REC
2512#define MP3ENC_SELECT BUTTON_OK 2512#define MP3ENC_SELECT BUTTON_OK
2513 2513
2514#elif CONFIG_KEYPAD == MPIO_HD200_PAD
2515#define MP3ENC_PREV BUTTON_PREV
2516#define MP3ENC_NEXT BUTTON_NEXT
2517#define MP3ENC_DONE BUTTON_PLAY
2518#define MP3ENC_SELECT BUTTON_SELECT
2519
2514#else 2520#else
2515#error No keymap defined! 2521#error No keymap defined!
2516#endif 2522#endif
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 49d7f8b38d..6c8a2b8e3e 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -206,6 +206,14 @@ struct mpeg_settings settings;
206#define MPEG_START_TIME_RIGHT2 BUTTON_CANCEL 206#define MPEG_START_TIME_RIGHT2 BUTTON_CANCEL
207#define MPEG_START_TIME_EXIT BUTTON_REC 207#define MPEG_START_TIME_EXIT BUTTON_REC
208 208
209#elif CONFIG_KEYPAD == MPIO_HD200_PAD
210#define MPEG_START_TIME_SELECT BUTTON_SELECT
211#define MPEG_START_TIME_LEFT BUTTON_PREV
212#define MPEG_START_TIME_RIGHT BUTTON_NEXT
213#define MPEG_START_TIME_UP BUTTON_VOL_UP
214#define MPEG_START_TIME_DOWN BUTTON_VOL_DOWN
215#define MPEG_START_TIME_EXIT BUTTON_REC
216
209#else 217#else
210#error No keymap defined! 218#error No keymap defined!
211#endif 219#endif
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 015aae4ad0..4c7245dc94 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -317,6 +317,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
317#define MPEG_RW BUTTON_PREV 317#define MPEG_RW BUTTON_PREV
318#define MPEG_FF BUTTON_NEXT 318#define MPEG_FF BUTTON_NEXT
319 319
320#elif CONFIG_KEYPAD == MPIO_HD200_PAD
321#define MPEG_MENU BUTTON_SELECT
322#define MPEG_PAUSE (BUTTON_PLAY | BUTTON_REL)
323#define MPEG_STOP (BUTTON_PLAY | BUTTON_REPEAT)
324#define MPEG_VOLDOWN BUTTON_VOL_DOWN
325#define MPEG_VOLUP BUTTON_VOL_UP
326#define MPEG_RW BUTTON_PREV
327#define MPEG_FF BUTTON_NEXT
328
320#else 329#else
321#error No keymap defined! 330#error No keymap defined!
322#endif 331#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 69ae8bcfaf..4195d96d5f 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -287,6 +287,17 @@ PLUGIN_HEADER
287#define OSCILLOSCOPE_VOL_UP BUTTON_UP 287#define OSCILLOSCOPE_VOL_UP BUTTON_UP
288#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN 288#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
289 289
290#elif CONFIG_KEYPAD == MPIO_HD200_PAD
291#define OSCILLOSCOPE_QUIT (BUTTON_REC | BUTTON_PLAY)
292#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
293#define OSCILLOSCOPE_ADVMODE BUTTON_REC
294#define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT|BUTTON_REPEAT)
295#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
296#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT
297#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV
298#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
299#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
300
290#else 301#else
291#error No keymap defined! 302#error No keymap defined!
292#endif 303#endif
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index f80b163c3f..a429b00166 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -418,6 +418,25 @@ CONFIG_KEYPAD == MROBE500_PAD
418#define LVL_DOWN_TEXT "CANCEL" 418#define LVL_DOWN_TEXT "CANCEL"
419#define SELECT_TEXT "PLAY" 419#define SELECT_TEXT "PLAY"
420 420
421#elif CONFIG_KEYPAD == MPIO_HD200_PAD
422#define PEGBOX_SAVE (BUTTON_PLAY|BUTTON_SELECT)
423#define PEGBOX_QUIT (BUTTON_REC|BUTTON_PLAY)
424#define PEGBOX_RESTART BUTTON_REC
425#define PEGBOX_LVL_UP (BUTTON_PLAY|BUTTON_PREV)
426#define PEGBOX_LVL_DOWN (BUTTON_PLAY|BUTTON_NEXT)
427#define PEGBOX_UP BUTTON_PREV
428#define PEGBOX_DOWN BUTTON_NEXT
429#define PEGBOX_RIGHT BUTTON_VOL_UP
430#define PEGBOX_LEFT BUTTON_VOL_DOWN
431#define PEGBOX_SELECT BUTTON_SELECT
432
433#define SAVE_TEXT "PLAY + SELECT"
434#define QUIT_TEXT "REC + PLAY"
435#define RESTART_TEXT "REC"
436#define LVL_UP_TEXT "PREV"
437#define LVL_DOWN_TEXT "NEXT"
438#define SELECT_TEXT "SELECT"
439
421#else 440#else
422#error Unsupported keymap! 441#error Unsupported keymap!
423#endif 442#endif
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index f91242ed9f..adf7ab532a 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -170,6 +170,12 @@ static bool boosted = false;
170#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN 170#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
171#define PLASMA_REGEN_COLORS BUTTON_PLAY 171#define PLASMA_REGEN_COLORS BUTTON_PLAY
172 172
173#elif CONFIG_KEYPAD == MPIO_HD200_PAD
174#define PLASMA_QUIT (BUTTON_REC|BUTTON_PLAY)
175#define PLASMA_INCREASE_FREQUENCY BUTTON_VOL_DOWN
176#define PLASMA_DECREASE_FREQUENCY BUTTON_VOL_UP
177#define PLASMA_REGEN_COLORS BUTTON_PLAY
178
173#endif 179#endif
174 180
175#ifdef HAVE_TOUCHSCREEN 181#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index d14db5fdbd..08899d767a 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -213,6 +213,13 @@ CONFIG_KEYPAD == MROBE500_PAD
213#define PONG_RIGHT_UP BUTTON_PLAY 213#define PONG_RIGHT_UP BUTTON_PLAY
214#define PONG_RIGHT_DOWN BUTTON_NEXT 214#define PONG_RIGHT_DOWN BUTTON_NEXT
215 215
216#elif CONFIG_KEYPAD == MPIO_HD200_PAD
217#define PONG_QUIT (BUTTON_REC|BUTTON_PLAY)
218#define PONG_LEFT_UP BUTTON_PREV
219#define PONG_LEFT_DOWN BUTTON_NEXT
220#define PONG_RIGHT_UP BUTTON_VOL_UP
221#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
222
216#else 223#else
217#error No keymap defined! 224#error No keymap defined!
218#endif 225#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 145335ce76..9b4c43ca21 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -216,6 +216,16 @@
216#define REVERSI_BUTTON_MAKE_MOVE BUTTON_OK 216#define REVERSI_BUTTON_MAKE_MOVE BUTTON_OK
217#define REVERSI_BUTTON_MENU BUTTON_MENU 217#define REVERSI_BUTTON_MENU BUTTON_MENU
218 218
219#elif CONFIG_KEYPAD == MPIO_HD200_PAD
220#define REVERSI_BUTTON_UP BUTTON_PREV
221#define REVERSI_BUTTON_DOWN BUTTON_NEXT
222#define REVERSI_BUTTON_LEFT BUTTON_VOL_DOWN
223#define REVERSI_BUTTON_RIGHT BUTTON_VOL_UP
224#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
225#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
226#define REVERSI_BUTTON_MENU BUTTON_SELECT
227#define REVERSI_BUTTON_MENU_LONGPRESS
228
219#else 229#else
220#error No keymap defined! 230#error No keymap defined!
221#endif 231#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 891b79be56..f1ad8399fb 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -326,6 +326,16 @@ PLUGIN_HEADER
326#define ROCKBLOX_DROP BUTTON_OK 326#define ROCKBLOX_DROP BUTTON_OK
327#define ROCKBLOX_RESTART BUTTON_CANCEL 327#define ROCKBLOX_RESTART BUTTON_CANCEL
328 328
329#elif CONFIG_KEYPAD == MPIO_HD200_PAD
330#define ROCKBLOX_OFF (BUTTON_REC|BUTTON_PLAY)
331#define ROCKBLOX_ROTATE_CCW BUTTON_PREV
332#define ROCKBLOX_ROTATE_CW BUTTON_NEXT
333#define ROCKBLOX_DOWN BUTTON_SELECT
334#define ROCKBLOX_LEFT BUTTON_VOL_DOWN
335#define ROCKBLOX_RIGHT BUTTON_VOL_UP
336#define ROCKBLOX_DROP BUTTON_PLAY
337#define ROCKBLOX_RESTART BUTTON_REC
338
329#else 339#else
330#error No keymap defined! 340#error No keymap defined!
331#endif 341#endif
diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c
index d34087ab61..5006d88a2d 100644
--- a/apps/plugins/rockblox1d.c
+++ b/apps/plugins/rockblox1d.c
@@ -117,6 +117,10 @@ PLUGIN_HEADER
117#define ONEDROCKBLOX_DOWN BUTTON_DOWN 117#define ONEDROCKBLOX_DOWN BUTTON_DOWN
118#define ONEDROCKBLOX_QUIT BUTTON_REC 118#define ONEDROCKBLOX_QUIT BUTTON_REC
119 119
120#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
121#define ONEDROCKBLOX_DOWN BUTTON_SELECT
122#define ONEDROCKBLOX_QUIT (BUTTON_REC | BUTTON_PLAY)
123
120#elif defined(HAVE_TOUCHSCREEN) 124#elif defined(HAVE_TOUCHSCREEN)
121 125
122#define ONEDROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE 126#define ONEDROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index f6ba83e683..7bf49c123d 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -221,6 +221,15 @@ CONFIG_KEYPAD == MROBE500_PAD
221#define PUZZLE_SHUFFLE BUTTON_CANCEL 221#define PUZZLE_SHUFFLE BUTTON_CANCEL
222#define PUZZLE_PICTURE BUTTON_MENU 222#define PUZZLE_PICTURE BUTTON_MENU
223 223
224#elif CONFIG_KEYPAD == MPIO_HD200_PAD
225#define PUZZLE_QUIT (BUTTON_REC | BUTTON_PLAY)
226#define PUZZLE_LEFT BUTTON_VOL_DOWN
227#define PUZZLE_RIGHT BUTTON_VOL_UP
228#define PUZZLE_UP BUTTON_PREV
229#define PUZZLE_DOWN BUTTON_NEXT
230#define PUZZLE_SHUFFLE BUTTON_REC
231#define PUZZLE_PICTURE BUTTON_PLAY
232
224#else 233#else
225#error No keymap defined! 234#error No keymap defined!
226#endif 235#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 1d14efea69..c3fe84e6d0 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -208,6 +208,14 @@ PLUGIN_HEADER
208#define SNAKE_DOWN BUTTON_DOWN 208#define SNAKE_DOWN BUTTON_DOWN
209#define SNAKE_PLAYPAUSE BUTTON_PLAY 209#define SNAKE_PLAYPAUSE BUTTON_PLAY
210 210
211#elif CONFIG_KEYPAD == MPIO_HD200_PAD
212#define SNAKE_QUIT (BUTTON_REC|BUTTON_PLAY)
213#define SNAKE_LEFT BUTTON_VOL_DOWN
214#define SNAKE_RIGHT BUTTON_VOL_UP
215#define SNAKE_UP BUTTON_PREV
216#define SNAKE_DOWN BUTTON_NEXT
217#define SNAKE_PLAYPAUSE BUTTON_PLAY
218
211#else 219#else
212#error No keymap defined! 220#error No keymap defined!
213#endif 221#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 136952599c..d9b6542bf3 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -317,6 +317,15 @@ CONFIG_KEYPAD == MROBE500_PAD
317#define SNAKE2_PLAYPAUSE BUTTON_PLAY 317#define SNAKE2_PLAYPAUSE BUTTON_PLAY
318#define SNAKE2_PLAYPAUSE_TEXT "Play" 318#define SNAKE2_PLAYPAUSE_TEXT "Play"
319 319
320#elif CONFIG_KEYPAD == MPIO_HD200_PAD
321#define SNAKE2_LEFT BUTTON_VOL_DOWN
322#define SNAKE2_RIGHT BUTTON_VOL_UP
323#define SNAKE2_UP BUTTON_PREV
324#define SNAKE2_DOWN BUTTON_NEXT
325#define SNAKE2_QUIT (BUTTON_REC | BUTTON_PLAY)
326#define SNAKE2_PLAYPAUSE BUTTON_PLAY
327#define SNAKE2_PLAYPAUSE_TEXT "Play"
328
320#else 329#else
321#error No keymap defined! 330#error No keymap defined!
322#endif 331#endif
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index a81e12be96..eb8870efde 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -82,6 +82,9 @@ PLUGIN_HEADER
82#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD 82#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
83#define SNOW_QUIT BUTTON_REC 83#define SNOW_QUIT BUTTON_REC
84 84
85#elif CONFIG_KEYPAD == MPIO_HD200_PAD
86#define SNOW_QUIT (BUTTON_REC|BUTTON_PLAY)
87
85#else 88#else
86#define SNOW_QUIT BUTTON_OFF 89#define SNOW_QUIT BUTTON_OFF
87#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 90#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index e7b22197e6..838b4de5b0 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -437,6 +437,21 @@ PLUGIN_HEADER
437#define BUTTON_SAVE BUTTON_MENU 437#define BUTTON_SAVE BUTTON_MENU
438#define BUTTON_SAVE_NAME "MENU" 438#define BUTTON_SAVE_NAME "MENU"
439 439
440#elif CONFIG_KEYPAD == MPIO_HD200_PAD
441#define SOKOBAN_LEFT BUTTON_VOL_DOWN
442#define SOKOBAN_RIGHT BUTTON_VOL_UP
443#define SOKOBAN_UP BUTTON_PREV
444#define SOKOBAN_DOWN BUTTON_NEXT
445#define SOKOBAN_MENU BUTTON_SELECT
446#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_PREV)
447#define SOKOBAN_REDO (BUTTON_PLAY | BUTTON_NEXT)
448#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_VOL_DOWN)
449#define SOKOBAN_LEVEL_REPEAT BUTTON_REC
450#define SOKOBAN_LEVEL_UP (BUTTON_PLAY | BUTTON_VOL_UP)
451#define SOKOBAN_PAUSE BUTTON_PLAY
452#define BUTTON_SAVE (BUTTON_PLAY|BUTTON_SELECT)
453#define BUTTON_SAVE_NAME "PLAY+SELECT"
454
440#else 455#else
441#error No keymap defined! 456#error No keymap defined!
442#endif 457#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 8737275627..cf4e6475b0 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -457,6 +457,24 @@ CONFIG_KEYPAD == MROBE500_PAD
457# define HK_CUR2STACK "PLAY" 457# define HK_CUR2STACK "PLAY"
458# define HK_REM2STACK "PLAY..." 458# define HK_REM2STACK "PLAY..."
459 459
460#elif CONFIG_KEYPAD == MPIO_HD200_PAD
461# define SOL_QUIT (BUTTON_REC | BUTTON_PLAY)
462# define SOL_UP BUTTON_PREV
463# define SOL_DOWN BUTTON_NEXT
464# define SOL_LEFT BUTTON_VOL_DOWN
465# define SOL_RIGHT BUTTON_VOL_UP
466# define SOL_MOVE_PRE BUTTON_SELECT
467# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL)
468# define SOL_DRAW BUTTON_REC
469# define SOL_REM2CUR (BUTTON_REC | BUTTON_REPEAT)
470# define SOL_CUR2STACK BUTTON_PLAY
471# define SOL_REM2STACK (BUTTON_PLAY | BUTTON_REPEAT)
472# define HK_MOVE "SELECT"
473# define HK_DRAW "REC"
474# define HK_REM2CUR "REC.."
475# define HK_CUR2STACK "PLAY"
476# define HK_REM2STACK "PLAY...."
477
460#else 478#else
461#error No keymap defined! 479#error No keymap defined!
462#endif 480#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 586beb37ab..0ade406b59 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -229,6 +229,16 @@ PLUGIN_HEADER
229#define AST_RIGHT BUTTON_NEXT 229#define AST_RIGHT BUTTON_NEXT
230#define AST_FIRE BUTTON_OK 230#define AST_FIRE BUTTON_OK
231 231
232#elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
233
234#define AST_PAUSE (BUTTON_PLAY|BUTTON_SELECT)
235#define AST_QUIT (BUTTON_REC|BUTTON_PLAY)
236#define AST_THRUST BUTTON_REC
237#define AST_HYPERSPACE BUTTON_PLAY
238#define AST_LEFT BUTTON_PREV
239#define AST_RIGHT BUTTON_NEXT
240#define AST_FIRE BUTTON_SELECT
241
232#else 242#else
233#error No keymap defined! 243#error No keymap defined!
234#endif 244#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 1e8eb868a9..d11e3187db 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -393,6 +393,24 @@ PLUGIN_HEADER
393#define STAR_LEVEL_DOWN_NAME "CANCEL" 393#define STAR_LEVEL_DOWN_NAME "CANCEL"
394#define STAR_LEVEL_REPEAT_NAME "MENU" 394#define STAR_LEVEL_REPEAT_NAME "MENU"
395 395
396#elif CONFIG_KEYPAD == MPIO_HD200_PAD
397
398#define STAR_QUIT (BUTTON_REC | BUTTON_PLAY)
399#define STAR_LEFT BUTTON_VOL_DOWN
400#define STAR_RIGHT BUTTON_VOL_UP
401#define STAR_UP BUTTON_PREV
402#define STAR_DOWN BUTTON_NEXT
403#define STAR_TOGGLE_CONTROL_PRE BUTTON_SELECT
404#define STAR_TOGGLE_CONTROL (BUTTON_SELECT | BUTTON_REL)
405#define STAR_LEVEL_UP BUTTON_PLAY
406#define STAR_LEVEL_DOWN BUTTON_REC
407#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_REPEAT)
408#define STAR_TOGGLE_CONTROL_NAME "SELECT"
409#define STAR_QUIT_NAME "REC + PLAY"
410#define STAR_LEVEL_UP_NAME "PLAY"
411#define STAR_LEVEL_DOWN_NAME "REC"
412#define STAR_LEVEL_REPEAT_NAME "SELECT LONG"
413
396#else 414#else
397#error No keymap defined! 415#error No keymap defined!
398#endif 416#endif
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 4b3b0878ad..1ae0f289ff 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -158,6 +158,14 @@ PLUGIN_HEADER
158#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV 158#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV
159#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY 159#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
160 160
161#elif CONFIG_KEYPAD == MPIO_HD200_PAD
162#define STARFIELD_QUIT (BUTTON_REC|BUTTON_PLAY)
163#define STARFIELD_INCREASE_ZMOVE BUTTON_VOL_UP
164#define STARFIELD_DECREASE_ZMOVE BUTTON_VOL_DOWN
165#define STARFIELD_INCREASE_NB_STARS BUTTON_NEXT
166#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV
167#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY
168
161#endif 169#endif
162 170
163#ifdef HAVE_TOUCHSCREEN 171#ifdef HAVE_TOUCHSCREEN
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index ae297841f6..eaa1055a73 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -105,6 +105,9 @@ static bool abort;
105#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD 105#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
106#define STATS_STOP BUTTON_REC 106#define STATS_STOP BUTTON_REC
107 107
108#elif CONFIG_KEYPAD == MPIO_HD200_PAD
109#define STATS_STOP BUTTON_REC
110
108#else 111#else
109#error No keymap defined! 112#error No keymap defined!
110#endif 113#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index ad3b285d2f..cb85e360db 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -223,6 +223,14 @@ PLUGIN_HEADER
223#define STOPWATCH_SCROLL_UP BUTTON_UP 223#define STOPWATCH_SCROLL_UP BUTTON_UP
224#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 224#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
225 225
226#elif CONFIG_KEYPAD == MPIO_HD200_PAD
227#define STOPWATCH_QUIT (BUTTON_REC|BUTTON_PLAY)
228#define STOPWATCH_START_STOP BUTTON_PLAY
229#define STOPWATCH_RESET_TIMER BUTTON_PREV
230#define STOPWATCH_LAP_TIMER BUTTON_NEXT
231#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP
232#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN
233
226#else 234#else
227#error No keymap defined! 235#error No keymap defined!
228#endif 236#endif
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 63e0718c70..8974bd8768 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -281,6 +281,15 @@
281#define SUDOKU_BUTTON_MENU BUTTON_MENU 281#define SUDOKU_BUTTON_MENU BUTTON_MENU
282#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY 282#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY
283 283
284#elif CONFIG_KEYPAD == MPIO_HD200_PAD
285#define SUDOKU_BUTTON_MENU BUTTON_REC
286#define SUDOKU_BUTTON_LEFT BUTTON_VOL_DOWN
287#define SUDOKU_BUTTON_RIGHT BUTTON_VOL_UP
288#define SUDOKU_BUTTON_CHANGEDIR BUTTON_SELECT
289#define SUDOKU_BUTTON_TOGGLE BUTTON_NEXT
290#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_PREV
291#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY
292
284#else 293#else
285#error No keymap defined! 294#error No keymap defined!
286#endif 295#endif
diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c
index f7706f64bd..52a56d5954 100644
--- a/apps/plugins/test_fps.c
+++ b/apps/plugins/test_fps.c
@@ -35,6 +35,8 @@ PLUGIN_IRAM_DECLARE
35#define FPS_QUIT BUTTON_PLAY 35#define FPS_QUIT BUTTON_PLAY
36#elif CONFIG_KEYPAD == SANSA_FUZE_PAD 36#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
37#define FPS_QUIT (BUTTON_HOME|BUTTON_REPEAT) 37#define FPS_QUIT (BUTTON_HOME|BUTTON_REPEAT)
38#elif CONFIG_KEYPAD == MPIO_HD200_PAD
39#define FPS_QUIT (BUTTON_REC|BUTTON_PLAY)
38#elif defined(BUTTON_OFF) 40#elif defined(BUTTON_OFF)
39#define FPS_QUIT BUTTON_OFF 41#define FPS_QUIT BUTTON_OFF
40#else 42#else
diff --git a/apps/plugins/test_grey.c b/apps/plugins/test_grey.c
index a1189dda77..c2adaf06b5 100644
--- a/apps/plugins/test_grey.c
+++ b/apps/plugins/test_grey.c
@@ -83,6 +83,14 @@ PLUGIN_HEADER
83#define GREY_UP BUTTON_UP 83#define GREY_UP BUTTON_UP
84#define GREY_DOWN BUTTON_DOWN 84#define GREY_DOWN BUTTON_DOWN
85 85
86#elif CONFIG_KEYPAD == MPIO_HD200_PAD
87#define GREY_QUIT (BUTTON_REC|BUTTON_PLAY)
88#define GREY_OK BUTTON_SELECT
89#define GREY_PREV BUTTON_PREV
90#define GREY_NEXT BUTTON_NEXT
91#define GREY_UP BUTTON_VOL_UP
92#define GREY_DOWN BUTTON_VOL_DOWN
93
86#else 94#else
87#error unsupported keypad 95#error unsupported keypad
88#endif 96#endif
diff --git a/apps/plugins/test_greylib_bitmap_scale.c b/apps/plugins/test_greylib_bitmap_scale.c
index 7b226d4f96..892f3dc622 100644
--- a/apps/plugins/test_greylib_bitmap_scale.c
+++ b/apps/plugins/test_greylib_bitmap_scale.c
@@ -30,6 +30,8 @@
30#define GBS_QUIT BUTTON_RC_REC 30#define GBS_QUIT BUTTON_RC_REC
31#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD 31#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
32#define GBS_QUIT BUTTON_PLAY 32#define GBS_QUIT BUTTON_PLAY
33#elif CONFIG_KEYPAD == MPIO_HD200_PAD
34#define GBS_QUIT (BUTTON_REC|BUTTON_PLAY)
33#elif defined(BUTTON_OFF) 35#elif defined(BUTTON_OFF)
34#define GBS_QUIT BUTTON_OFF 36#define GBS_QUIT BUTTON_OFF
35#else 37#else
diff --git a/apps/plugins/test_scanrate.c b/apps/plugins/test_scanrate.c
index 5f1e3cacdf..fb59193272 100644
--- a/apps/plugins/test_scanrate.c
+++ b/apps/plugins/test_scanrate.c
@@ -71,6 +71,13 @@ PLUGIN_HEADER
71#define SCANRATE_INC BUTTON_UP 71#define SCANRATE_INC BUTTON_UP
72#define SCANRATE_DEC BUTTON_DOWN 72#define SCANRATE_DEC BUTTON_DOWN
73 73
74#elif CONFIG_KEYPAD == MPIO_HD200_PAD
75#define SCANRATE_DONE BUTTON_PLAY
76#define SCANRATE_FASTINC BUTTON_NEXT
77#define SCANRATE_FASTDEC BUTTON_PREV
78#define SCANRATE_INC BUTTON_VOL_UP
79#define SCANRATE_DEC BUTTON_VOL_DOWN
80
74#endif 81#endif
75 82
76/* Default refresh rates in 1/10 Hz */ 83/* Default refresh rates in 1/10 Hz */
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 9ebc1d9cf6..ed84d26f28 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -486,6 +486,16 @@ PLUGIN_HEADER
486#define VIEWER_AUTOSCROLL BUTTON_PLAY 486#define VIEWER_AUTOSCROLL BUTTON_PLAY
487#define VIEWER_BOOKMARK BUTTON_POWER 487#define VIEWER_BOOKMARK BUTTON_POWER
488 488
489#elif CONFIG_KEYPAD == MPIO_HD200_PAD
490#define VIEWER_QUIT (BUTTON_REC | BUTTON_PLAY)
491#define VIEWER_PAGE_UP BUTTON_PREV
492#define VIEWER_PAGE_DOWN BUTTON_NEXT
493#define VIEWER_SCREEN_LEFT BUTTON_VOL_DOWN
494#define VIEWER_SCREEN_RIGHT BUTTON_VOL_UP
495#define VIEWER_MENU BUTTON_SELECT
496#define VIEWER_AUTOSCROLL BUTTON_PLAY
497#define VIEWER_BOOKMARK BUTTON_REC
498
489#else 499#else
490#error No keymap defined! 500#error No keymap defined!
491#endif 501#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index f3473c84d7..7cf5a5f00c 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -283,6 +283,17 @@ PLUGIN_HEADER
283#define LABEL_MENU "MENU" 283#define LABEL_MENU "MENU"
284#define LABEL_VOLUME "UP/DOWN" 284#define LABEL_VOLUME "UP/DOWN"
285 285
286#elif CONFIG_KEYPAD == MPIO_HD200_PAD
287#define VUMETER_QUIT (BUTTON_REC|BUTTON_PLAY)
288#define VUMETER_HELP BUTTON_PLAY
289#define VUMETER_MENU BUTTON_SELECT
290#define VUMETER_UP BUTTON_VOL_UP
291#define VUMETER_DOWN BUTTON_VOL_DOWN
292#define LABEL_HELP "PLAY"
293#define LABEL_QUIT "MENU"
294#define LABEL_MENU "SELECT"
295#define LABEL_VOLUME "UP/DOWN"
296
286#else 297#else
287#error No keymap defined! 298#error No keymap defined!
288#endif 299#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 3324d6c507..037f4005a2 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -268,6 +268,16 @@ CONFIG_KEYPAD == MROBE500_PAD
268#define BTN_QUIT BUTTON_REC 268#define BTN_QUIT BUTTON_REC
269#define BTN_STOPRESET BUTTON_CANCEL 269#define BTN_STOPRESET BUTTON_CANCEL
270 270
271#elif CONFIG_KEYPAD == MPIO_HD200_PAD
272
273#define BTN_DIR_UP BUTTON_REC
274#define BTN_DIR_DOWN BUTTON_PLAY
275#define BTN_DIR_LEFT BUTTON_PREV
276#define BTN_DIR_RIGHT BUTTON_NEXT
277#define BTN_STARTPAUSE BUTTON_SELECT
278#define BTN_QUIT (BUTTON_REC|BUTTON_PLAY)
279#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_REPEAT)
280
271#else 281#else
272#error No keymap defined! 282#error No keymap defined!
273#endif 283#endif
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 6edc629144..4dd673c370 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -232,6 +232,15 @@ CONFIG_KEYPAD == MROBE500_PAD
232#define DOWN BUTTON_DOWN 232#define DOWN BUTTON_DOWN
233#define PAUSE BUTTON_PLAY 233#define PAUSE BUTTON_PLAY
234 234
235#elif CONFIG_KEYPAD == MPIO_HD200_PAD
236
237#define QUIT (BUTTON_REC|BUTTON_PLAY)
238#define LEFT BUTTON_VOL_DOWN
239#define RIGHT BUTTON_VOL_UP
240#define UP BUTTON_PREV
241#define DOWN BUTTON_NEXT
242#define PAUSE BUTTON_PLAY
243
235#else 244#else
236#error No keymap defined! 245#error No keymap defined!
237#endif 246#endif
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 3ca5451fdb..ee2a8d5f4a 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -189,6 +189,15 @@
189#define ZX_SELECT BUTTON_OK 189#define ZX_SELECT BUTTON_OK
190#define ZX_MENU BUTTON_MENU 190#define ZX_MENU BUTTON_MENU
191 191
192#elif CONFIG_KEYPAD == MPIO_HD200_PAD
193
194#define ZX_MENU (BUTTON_REC|BUTTON_PLAY)
195#define ZX_UP BUTTON_PREV
196#define ZX_DOWN BUTTON_NEXT
197#define ZX_SELECT BUTTON_SELECT
198#define ZX_LEFT BUTTON_VOL_DOWN
199#define ZX_RIGHT BUTTON_VOL_UP
200
192#else 201#else
193#error Keymap not defined! 202#error Keymap not defined!
194 203
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index b48c5ec4ac..bc7e3aca2c 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -184,6 +184,15 @@
184#define KBD_UP BUTTON_UP 184#define KBD_UP BUTTON_UP
185#define KBD_DOWN BUTTON_DOWN 185#define KBD_DOWN BUTTON_DOWN
186 186
187#elif CONFIG_KEYPAD == MPIO_HD200_PAD
188
189#define KBD_SELECT BUTTON_SELECT
190#define KBD_ABORT BUTTON_REC
191#define KBD_LEFT BUTTON_VOL_DOWN
192#define KBD_RIGHT BUTTON_VOL_UP
193#define KBD_UP BUTTON_PREV
194#define KBD_DOWN BUTTON_NEXT
195
187#endif 196#endif
188 197
189#ifdef HAVE_TOUCHSCREEN 198#ifdef HAVE_TOUCHSCREEN
diff --git a/bootloader/SOURCES b/bootloader/SOURCES
index 31b051445b..24d0bd29f6 100644
--- a/bootloader/SOURCES
+++ b/bootloader/SOURCES
@@ -63,4 +63,6 @@ show_logo.c
63#elif defined(PBELL_VIBE500) 63#elif defined(PBELL_VIBE500)
64main-pp.c 64main-pp.c
65show_logo.c 65show_logo.c
66#elif defined(MPIO_HD200)
67mpio_hd200.c
66#endif 68#endif
diff --git a/firmware/SOURCES b/firmware/SOURCES
index b13f6a0df8..48360d7b45 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -258,7 +258,8 @@ drivers/mas.c
258#if !defined(SIMULATOR) && !defined(BOOTLOADER) 258#if !defined(SIMULATOR) && !defined(BOOTLOADER)
259#if defined(HAVE_UDA1380) 259#if defined(HAVE_UDA1380)
260drivers/audio/uda1380.c 260drivers/audio/uda1380.c
261#elif defined(HAVE_WM8751) 261#elif defined(HAVE_WM8751) \
262 || defined(HAVE_WM8750)
262drivers/audio/wm8751.c 263drivers/audio/wm8751.c
263#elif defined(HAVE_WM8978) 264#elif defined(HAVE_WM8978)
264drivers/audio/wm8978.c 265drivers/audio/wm8978.c
@@ -1609,3 +1610,24 @@ target/arm/usb-fw-pp502x.c
1609#endif /* SIMULATOR */ 1610#endif /* SIMULATOR */
1610#endif 1611#endif
1611 1612
1613#ifdef MPIO_HD200
1614#ifndef SIMULATOR
1615/* TODO: currently including all files */
1616target/coldfire/mpio/hd200/adc-hd200.c
1617target/coldfire/mpio/hd200/button-hd200.c
1618target/coldfire/mpio/hd200/lcd-hd200.c
1619target/coldfire/mpio/hd200/lcd-as-hd200.S
1620target/coldfire/mpio/hd200/power-hd200.c
1621target/coldfire/mpio/hd200/powermgmt-hd200.c
1622target/coldfire/mpio/hd200/backlight-hd200.c
1623target/coldfire/mpio/hd200/system-hd200.c
1624target/coldfire/mpio/hd200/usb-hd200.c
1625target/coldfire/mpio/fmradio_i2c-mpio.c
1626target/coldfire/mpio/ata-mpio.c
1627target/coldfire/mpio/ata-as-mpio.S
1628#ifndef BOOTLOADER
1629target/coldfire/mpio/audio-mpio.c
1630target/coldfire/wmcodec-coldfire.c
1631#endif /* BOOTLOADER */
1632#endif /* SIMULATOR */
1633#endif
diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c
index b42c4b1041..cdc64fd69b 100644
--- a/firmware/drivers/audio/wm8751.c
+++ b/firmware/drivers/audio/wm8751.c
@@ -116,17 +116,22 @@ void audiohw_preinit(void)
116 * and Headphone outputs are all OFF (DACMU = 1 Power 116 * and Headphone outputs are all OFF (DACMU = 1 Power
117 * Management registers 1 and 2 are all zeros). 117 * Management registers 1 and 2 are all zeros).
118 */ 118 */
119
119 wmcodec_write(RESET, RESET_RESET); /*Reset*/ 120 wmcodec_write(RESET, RESET_RESET); /*Reset*/
120 121
121 /* 2. Enable Vmid and VREF. */ 122 /* 2. Enable Vmid and VREF. */
122 wmcodec_write(PWRMGMT1, PWRMGMT1_VREF | PWRMGMT1_VMIDSEL_5K); 123 wmcodec_write(PWRMGMT1, PWRMGMT1_VREF | PWRMGMT1_VMIDSEL_5K);
123 124
125#ifdef CODEC_SLAVE
126 wmcodec_write(AINTFCE,AINTFCE_WL_16|AINTFCE_FORMAT_I2S);
127#else
124 /* BCLKINV=0(Dont invert BCLK) MS=1(Enable Master) LRSWAP=0 LRP=0 */ 128 /* BCLKINV=0(Dont invert BCLK) MS=1(Enable Master) LRSWAP=0 LRP=0 */
125 /* IWL=00(16 bit) FORMAT=10(I2S format) */ 129 /* IWL=00(16 bit) FORMAT=10(I2S format) */
126 wmcodec_write(AINTFCE, AINTFCE_MS | AINTFCE_WL_16 | 130 wmcodec_write(AINTFCE, AINTFCE_MS | AINTFCE_WL_16 |
127 AINTFCE_FORMAT_I2S); 131 AINTFCE_FORMAT_I2S);
128 132#endif
129 /* Set default samplerate */ 133 /* Set default samplerate */
134
130 audiohw_set_frequency(HW_FREQ_DEFAULT); 135 audiohw_set_frequency(HW_FREQ_DEFAULT);
131} 136}
132 137
@@ -140,7 +145,7 @@ void audiohw_postinit(void)
140 wmcodec_write(PWRMGMT2, PWRMGMT2_DACL | PWRMGMT2_DACR); 145 wmcodec_write(PWRMGMT2, PWRMGMT2_DACL | PWRMGMT2_DACR);
141 146
142 /* 4. Enable line and / or headphone output buffers as required. */ 147 /* 4. Enable line and / or headphone output buffers as required. */
143#ifdef MROBE_100 148#if defined(MROBE_100) || defined(MPIO_HD200)
144 wmcodec_write(PWRMGMT2, PWRMGMT2_DACL | PWRMGMT2_DACR | 149 wmcodec_write(PWRMGMT2, PWRMGMT2_DACL | PWRMGMT2_DACR |
145 PWRMGMT2_LOUT1 | PWRMGMT2_ROUT1); 150 PWRMGMT2_LOUT1 | PWRMGMT2_ROUT1);
146#else 151#else
@@ -166,6 +171,19 @@ void audiohw_postinit(void)
166#endif 171#endif
167#endif 172#endif
168 173
174#ifdef MPIO_HD200
175 /* Crude fix for high pitch noise at startup
176 * I should find out what realy causes this
177 */
178 wmcodec_write(LOUT1, LOUT1_BITS|0x7f);
179 wmcodec_write(ROUT1, ROUT1_BITS|0x7f);
180 wmcodec_write(LOUT1, LOUT1_BITS);
181 wmcodec_write(ROUT1, ROUT1_BITS);
182#endif
183
184 /* lower power consumption */
185 wmcodec_write(PWRMGMT1, PWRMGMT1_VREF | PWRMGMT1_VMIDSEL_50K);
186
169 audiohw_mute(false); 187 audiohw_mute(false);
170 188
171#ifdef MROBE_100 189#ifdef MROBE_100
@@ -234,6 +252,8 @@ void audiohw_close(void)
234 252
235void audiohw_set_frequency(int fsel) 253void audiohw_set_frequency(int fsel)
236{ 254{
255 (void)fsel;
256#ifndef CODEC_SLAVE
237 static const unsigned char srctrl_table[HW_NUM_FREQ] = 257 static const unsigned char srctrl_table[HW_NUM_FREQ] =
238 { 258 {
239 HW_HAVE_11_([HW_FREQ_11] = CODEC_SRCTRL_11025HZ,) 259 HW_HAVE_11_([HW_FREQ_11] = CODEC_SRCTRL_11025HZ,)
@@ -246,4 +266,5 @@ void audiohw_set_frequency(int fsel)
246 fsel = HW_FREQ_DEFAULT; 266 fsel = HW_FREQ_DEFAULT;
247 267
248 wmcodec_write(CLOCKING, srctrl_table[fsel]); 268 wmcodec_write(CLOCKING, srctrl_table[fsel]);
269#endif
249} 270}
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h
index 781bc12f8e..c00b673a4a 100644
--- a/firmware/export/audiohw.h
+++ b/firmware/export/audiohw.h
@@ -38,7 +38,7 @@
38#include "uda1380.h" 38#include "uda1380.h"
39#elif defined(HAVE_UDA1341) 39#elif defined(HAVE_UDA1341)
40#include "uda1341.h" 40#include "uda1341.h"
41#elif defined(HAVE_WM8751) 41#elif defined(HAVE_WM8750) || defined(HAVE_WM8751)
42#include "wm8751.h" 42#include "wm8751.h"
43#elif defined(HAVE_WM8978) 43#elif defined(HAVE_WM8978)
44#include "wm8978.h" 44#include "wm8978.h"
diff --git a/firmware/export/config.h b/firmware/export/config.h
index fb9381e7da..906a3fef1a 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -117,6 +117,7 @@
117#define MINI2440_PAD 41 117#define MINI2440_PAD 41
118#define PHILIPS_HDD6330_PAD 42 118#define PHILIPS_HDD6330_PAD 42
119#define PBELL_VIBE500_PAD 43 119#define PBELL_VIBE500_PAD 43
120#define MPIO_HD200_PAD 44
120 121
121/* CONFIG_REMOTE_KEYPAD */ 122/* CONFIG_REMOTE_KEYPAD */
122#define H100_REMOTE 1 123#define H100_REMOTE 1
@@ -412,6 +413,8 @@ Lyre prototype 1 */
412#include "config/samsungyps3.h" 413#include "config/samsungyps3.h"
413#elif defined(PBELL_VIBE500) 414#elif defined(PBELL_VIBE500)
414#include "config/vibe500.h" 415#include "config/vibe500.h"
416#elif defined(MPIO_HD200)
417#include "config/mpiohd200.h"
415#else 418#else
416/* no known platform */ 419/* no known platform */
417#endif 420#endif
diff --git a/firmware/export/wm8751.h b/firmware/export/wm8751.h
index 15170b76bc..c171642853 100644
--- a/firmware/export/wm8751.h
+++ b/firmware/export/wm8751.h
@@ -98,6 +98,15 @@ extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
98#define RESET 0x0f 98#define RESET 0x0f
99#define RESET_RESET 0x000 99#define RESET_RESET 0x000
100 100
101/* WM8750 only */
102#define ENHANCE_3D 0x10
103#define ENHANCE_3D_3DEN (1 << 0)
104#define ENHANCE_3D_DEPTH(x) (((x) & 0xf) << 1)
105#define ENHANCE_3D_3DLC (1 << 5)
106#define ENHANCE_3D_3DUC (1 << 6)
107#define ENHANCE_3D_MODE3D_PLAYBACK (1 << 7)
108#define ENHANCE_3D_MODE3D_RECORD (0 << 7)
109
101#define ADDITIONAL1 0x17 110#define ADDITIONAL1 0x17
102#define ADDITIONAL1_TOEN (1 << 0) 111#define ADDITIONAL1_TOEN (1 << 0)
103#define ADDITIONAL1_DACINV (1 << 1) 112#define ADDITIONAL1_DACINV (1 << 1)
diff --git a/firmware/sound.c b/firmware/sound.c
index d64dfcfdb9..4f95b6ed50 100644
--- a/firmware/sound.c
+++ b/firmware/sound.c
@@ -235,11 +235,12 @@ static void set_prescaled_volume(void)
235 dac_volume(tenthdb2reg(l), tenthdb2reg(r), false); 235 dac_volume(tenthdb2reg(l), tenthdb2reg(r), false);
236#elif defined(HAVE_UDA1380) || defined(HAVE_WM8975) || defined(HAVE_WM8758) \ 236#elif defined(HAVE_UDA1380) || defined(HAVE_WM8975) || defined(HAVE_WM8758) \
237 || defined(HAVE_WM8711) || defined(HAVE_WM8721) || defined(HAVE_WM8731) \ 237 || defined(HAVE_WM8711) || defined(HAVE_WM8721) || defined(HAVE_WM8731) \
238 || defined(HAVE_WM8751) || defined(HAVE_AS3514) || defined(HAVE_TSC2100) \ 238 || defined(HAVE_WM8750) || defined(HAVE_WM8751) || defined(HAVE_AS3514) \
239 || defined(HAVE_AK4537) || defined(HAVE_UDA1341) 239 || defined(HAVE_TSC2100) || defined(HAVE_AK4537) || defined(HAVE_UDA1341)
240 audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r)); 240 audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r));
241#if defined(HAVE_WM8975) || defined(HAVE_WM8758) \ 241#if defined(HAVE_WM8975) || defined(HAVE_WM8758) \
242 || (defined(HAVE_WM8751) && !defined(MROBE_100)) || defined(HAVE_WM8985) 242 || defined(HAVE_WM8750) || (defined(HAVE_WM8751) && !defined(MROBE_100)) \
243 || defined(HAVE_WM8985)
243 audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0)); 244 audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0));
244#endif 245#endif
245 246
@@ -295,7 +296,7 @@ void sound_set_bass(int value)
295 return; 296 return;
296 297
297#if !defined(AUDIOHW_HAVE_CLIPPING) 298#if !defined(AUDIOHW_HAVE_CLIPPING)
298#if defined(HAVE_WM8751) 299#if defined(HAVE_WM8750) || defined(HAVE_WM8751)
299 current_bass = value; 300 current_bass = value;
300#else 301#else
301 current_bass = value * 10; 302 current_bass = value * 10;
@@ -319,7 +320,7 @@ void sound_set_treble(int value)
319 return; 320 return;
320 321
321#if !defined(AUDIOHW_HAVE_CLIPPING) 322#if !defined(AUDIOHW_HAVE_CLIPPING)
322#if defined(HAVE_WM8751) 323#if defined(HAVE_WM8750) || defined(HAVE_WM8751)
323 current_treble = value; 324 current_treble = value;
324#else 325#else
325 current_treble = value * 10; 326 current_treble = value * 10;
diff --git a/firmware/target/coldfire/crt0.S b/firmware/target/coldfire/crt0.S
index bc8a370823..38365c7d71 100644
--- a/firmware/target/coldfire/crt0.S
+++ b/firmware/target/coldfire/crt0.S
@@ -63,7 +63,16 @@ start:
63 move.l #0x00000180,%d0 /* CSCR0 - no wait states, 16 bits, no bursts */ 63 move.l #0x00000180,%d0 /* CSCR0 - no wait states, 16 bits, no bursts */
64 move.l %d0,(0x088,%a0) 64 move.l %d0,(0x088,%a0)
65 65
66#ifndef IAUDIO_M3 66#ifdef MPIO_HD200
67 /* Chip select 3 - LCD controller */
68 /* values taken from original firmware except base address*/
69 move.l #0xf0000000,%d0 /* CSAR3 - Base = 0xf0000000 */
70 move.l %d0,(0x0a4,%a0)
71 moveq.l #0x1,%d0 /* CSMR3 - 64K */
72 move.l %d0,(0x0a8,%a0)
73 move.l #0x00000980,%d0 /* CSCR3 - 1 wait state, 16 bits no bursts */
74 move.l %d0,(0x0ac,%a0)
75#elif !(defined IAUDIO_M3)
67 /* Chip select 1 - LCD controller */ 76 /* Chip select 1 - LCD controller */
68 move.l #0xf0000000,%d0 /* CSAR1 - Base = 0xf0000000 */ 77 move.l #0xf0000000,%d0 /* CSAR1 - Base = 0xf0000000 */
69 move.l %d0,(0x08c,%a0) 78 move.l %d0,(0x08c,%a0)
@@ -267,6 +276,14 @@ start:
267 or.l %d0,(0xbc,%a1) 276 or.l %d0,(0xbc,%a1)
268#endif 277#endif
269 278
279#ifdef MPIO_HD200
280 /* Set KEEP_ACT */
281 move.l #0x02200000,%d0
282 or.l %d0,(0xb4,%a1)
283 or.l %d0,(0xb8,%a1)
284 or.l %d0,(0xbc,%a1)
285#endif
286
270 /* zero out bss */ 287 /* zero out bss */
271 lea _edata,%a2 288 lea _edata,%a2
272 lea _end,%a4 289 lea _end,%a4
diff --git a/firmware/target/coldfire/i2c-coldfire.c b/firmware/target/coldfire/i2c-coldfire.c
index ebfe0a006e..ab3018d713 100644
--- a/firmware/target/coldfire/i2c-coldfire.c
+++ b/firmware/target/coldfire/i2c-coldfire.c
@@ -70,6 +70,10 @@ void i2c_init(void)
70#elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) 70#elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
71 MBDR = 0; /* iRiver firmware does this */ 71 MBDR = 0; /* iRiver firmware does this */
72 MBCR = IEN; /* Enable interface */ 72 MBCR = IEN; /* Enable interface */
73#elif defined(MPIO_HD200)
74 /* second channel */
75 MFDR2 = 0x0d;
76 MBCR2 = IEN;
73#endif 77#endif
74} 78}
75 79
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index 0782b116b4..209d227187 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -55,6 +55,24 @@
55 55
56#define FPARM_CLOCKSEL 0 56#define FPARM_CLOCKSEL 0
57#define FPARM_CLSEL 1 57#define FPARM_CLSEL 1
58
59/* SCLK = Fs * bit clocks per word
60 * so SCLK should be Fs * 64
61 *
62 * CLOCKSEL sets SCLK freq based on Audio CLK
63 * 0x0c SCLK = Audio CLK/2 88200 * 64 = 5644800 Hz
64 * 0x06 SCLK = Audio CLK/4 44100 * 64 = 2822400 Hz
65 * 0x04 SCLK = Audio CLK/8 22050 * 64 = 1411200 Hz
66 * 0x02 SCLK = Audio CLK/16 11025 * 64 = 705600 Hz
67 *
68 * CLSEL sets MCLK1/2 DAC freq based on XTAL freq
69 * 0x01 MCLK1/2 = XTAL freq
70 * 0x02 MCLK1/2 = XTAL/2 freq
71 *
72 * Audio CLK can be XTAL freq or XTAL/2 freq (bit22 in PLLCR)
73 * we always set bit22 so Audio CLK is always XTAL freq
74 */
75
58#if CONFIG_CPU == MCF5249 && defined(HAVE_UDA1380) 76#if CONFIG_CPU == MCF5249 && defined(HAVE_UDA1380)
59static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] = 77static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] =
60{ 78{
@@ -65,6 +83,16 @@ static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] =
65}; 83};
66#endif 84#endif
67 85
86#if CONFIG_CPU == MCF5249 && defined(HAVE_WM8750)
87static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] =
88{
89 [HW_FREQ_88] = { 0x0c, 0x01 },
90 [HW_FREQ_44] = { 0x06, 0x01 },
91 [HW_FREQ_22] = { 0x04, 0x01 },
92 [HW_FREQ_11] = { 0x02, 0x01 },
93};
94#endif
95
68#if (CONFIG_CPU == MCF5250 || CONFIG_CPU == MCF5249) && defined(HAVE_TLV320) 96#if (CONFIG_CPU == MCF5250 || CONFIG_CPU == MCF5249) && defined(HAVE_TLV320)
69static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] = 97static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] =
70{ 98{
@@ -324,6 +352,7 @@ const void * pcm_play_dma_get_peak_buffer(int *count)
324 return (void *)((addr + 2) & ~3); 352 return (void *)((addr + 2) & ~3);
325} /* pcm_play_dma_get_peak_buffer */ 353} /* pcm_play_dma_get_peak_buffer */
326 354
355#ifdef HAVE_RECORDING
327/**************************************************************************** 356/****************************************************************************
328 ** Recording DMA transfer 357 ** Recording DMA transfer
329 **/ 358 **/
@@ -487,3 +516,4 @@ const void * pcm_rec_dma_get_peak_buffer(int *count)
487 *count = (end >> 2) - addr; 516 *count = (end >> 2) - addr;
488 return (void *)(addr << 2); 517 return (void *)(addr << 2);
489} /* pcm_rec_dma_get_peak_buffer */ 518} /* pcm_rec_dma_get_peak_buffer */
519#endif
diff --git a/firmware/target/coldfire/system-coldfire.c b/firmware/target/coldfire/system-coldfire.c
index a387824526..ba67daa3a6 100644
--- a/firmware/target/coldfire/system-coldfire.c
+++ b/firmware/target/coldfire/system-coldfire.c
@@ -152,6 +152,11 @@ default_interrupt (ADC); /* A/D converter */
152#define EXCP_BUTTON_MASK 0x00000202 152#define EXCP_BUTTON_MASK 0x00000202
153#define EXCP_BUTTON_VALUE 0x00000200 /* On button and !hold */ 153#define EXCP_BUTTON_VALUE 0x00000200 /* On button and !hold */
154#define EXCP_PLLCR 0x10800000 154#define EXCP_PLLCR 0x10800000
155#elif defined(MPIO_HD200)
156#define EXCP_BUTTON_GPIO_READ GPIO1_READ
157#define EXCP_BUTTON_MASK 0x01000010
158#define EXCP_BUTTON_VALUE 0x01000000 /* Play button and !hold */
159#define EXCP_PLLCR 0x10800000
155#else 160#else
156#define EXCP_BUTTON_GPIO_READ GPIO1_READ 161#define EXCP_BUTTON_GPIO_READ GPIO1_READ
157#define EXCP_BUTTON_MASK 0x00000022 162#define EXCP_BUTTON_MASK 0x00000022
diff --git a/tools/configure b/tools/configure
index 87646148f2..186e0d5ace 100755
--- a/tools/configure
+++ b/tools/configure
@@ -930,9 +930,12 @@ cat <<EOF
930 ==Logik== 930 ==Logik==
931 ==Samsung== ==Tatung== 80) DAX 1GB MP3/DAB 931 ==Samsung== ==Tatung== 80) DAX 1GB MP3/DAB
932 140) YH-820 150) Elio TPJ-1022 932 140) YH-820 150) Elio TPJ-1022
933 141) YH-920 ==Lyre project==1 933 141) YH-920 ==Lyre project==
934 142) YH-925 ==Packard Bell== 130) Lyre proto 1 934 142) YH-925 ==Packard Bell== 130) Lyre proto 1
935 143) YP-S3 160) Vibe 500 131) Mini2440 935 143) YP-S3 160) Vibe 500 131) Mini2440
936
937 ==MPIO==
938 170) HD200
936EOF 939EOF
937 940
938 buildfor=`input`; 941 buildfor=`input`;
@@ -2525,6 +2528,29 @@ fi
2525 t_model="vibe500" 2528 t_model="vibe500"
2526 ;; 2529 ;;
2527 2530
2531 170|hd200)
2532 target_id=69
2533 modelname="mpiohd200"
2534 target="-DMPIO_HD200"
2535 memory=16 # always
2536 coldfirecc
2537 tool="$rootdir/tools/scramble -add=hd20"
2538 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2539 bmp2rb_native="$rootdir/tools/bmp2rb -f 7"
2540 output="rockbox.mpio"
2541 bootoutput="bootloader.mpio"
2542 appextra="recorder:gui"
2543 plugins="yes"
2544 swcodec="yes"
2545 # toolset is the tools within the tools directory that we build for
2546 # this particular target.
2547 toolset="$genericbitmaptools"
2548 # architecture, manufacturer and model for the target-tree build
2549 t_cpu="coldfire"
2550 t_manufacturer="mpio"
2551 t_model="hd200"
2552 ;;
2553
2528 *) 2554 *)
2529 echo "Please select a supported target platform!" 2555 echo "Please select a supported target platform!"
2530 exit 7 2556 exit 7
diff --git a/tools/scramble.c b/tools/scramble.c
index ed972f7768..7d33e4b203 100644
--- a/tools/scramble.c
+++ b/tools/scramble.c
@@ -125,7 +125,7 @@ void usage(void)
125 "\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n"); 125 "\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n");
126 printf("\t 9200, 1630, 6330, ldax, m200, c100, clip, e2v2,\n" 126 printf("\t 9200, 1630, 6330, ldax, m200, c100, clip, e2v2,\n"
127 "\t m2v4, fuze, c2v2, clv2, y820, y920, y925, x747,\n" 127 "\t m2v4, fuze, c2v2, clv2, y820, y920, y925, x747,\n"
128 "\t 747p, x777, nn2g, m244, cli+, fuz2)\n"); 128 "\t 747p, x777, nn2g, m244, cli+, fuz2, hd20)\n");
129 printf("\nNo option results in Archos standard player/recorder format.\n"); 129 printf("\nNo option results in Archos standard player/recorder format.\n");
130 130
131 exit(1); 131 exit(1);
@@ -328,6 +328,8 @@ int main (int argc, char** argv)
328 modelnum = 68; 328 modelnum = 68;
329 else if (!strcmp(&argv[1][5], "m244")) 329 else if (!strcmp(&argv[1][5], "m244"))
330 modelnum = 131; 330 modelnum = 131;
331 else if (!strcmp(&argv[1][5], "hd20")) /* MPIO HD200 */
332 modelnum = 69;
331 else { 333 else {
332 fprintf(stderr, "unsupported model: %s\n", &argv[1][5]); 334 fprintf(stderr, "unsupported model: %s\n", &argv[1][5]);
333 return 2; 335 return 2;
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 4fd276ac97..2bb7764782 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -1305,6 +1305,30 @@ void button_event(int key, bool pressed)
1305 case SDLK_KP_MULTIPLY: 1305 case SDLK_KP_MULTIPLY:
1306 new_btn = BUTTON_REC; 1306 new_btn = BUTTON_REC;
1307 break; 1307 break;
1308
1309#elif CONFIG_KEYPAD == MPIO_HD200_PAD
1310 case SDLK_UP:
1311 new_btn = BUTTON_PREV;
1312 break;
1313 case SDLK_DOWN:
1314 new_btn = BUTTON_NEXT;
1315 break;
1316 case SDLK_SPACE:
1317 new_btn = BUTTON_SELECT;
1318 break;
1319 case SDLK_RETURN:
1320 new_btn = BUTTON_PLAY;
1321 break;
1322 case SDLK_LEFT:
1323 new_btn = BUTTON_VOL_DOWN;
1324 break;
1325 case SDLK_RIGHT:
1326 new_btn = BUTTON_VOL_UP;
1327 break;
1328 case SDLK_ESCAPE:
1329 new_btn = BUTTON_REC;
1330 break;
1331
1308#else 1332#else
1309#error No keymap defined! 1333#error No keymap defined!
1310#endif /* CONFIG_KEYPAD */ 1334#endif /* CONFIG_KEYPAD */
@@ -1850,6 +1874,18 @@ struct button_map bm[] = {
1850 { SDLK_KP3, 311, 569, 47, "Menu" }, 1874 { SDLK_KP3, 311, 569, 47, "Menu" },
1851 { 0, 0, 0, 0, "None" } 1875 { 0, 0, 0, 0, "None" }
1852}; 1876};
1877#elif defined (MPIO_HD200)
1878struct button_map bm[] = {
1879 { SDLK_ESCAPE, 369, 257, 20, "Rec" },
1880 { SDLK_RETURN, 369, 305, 20, "Play/Stop" },
1881 { SDLK_UP, 353, 168, 10, "Rew" },
1882 { SDLK_DOWN, 353, 198, 10, "FF" },
1883 { SDLK_SPACE, 353, 186, 10, "Select" },
1884 { SDLK_LEFT, 123, 67, 20, "Vol Down" },
1885 { SDLK_RIGHT, 206, 67, 20, "Vol Up" },
1886 { SDLK_h, 369, 402, 30, "Hold" },
1887 { 0, 0, 0, 0, "None" }
1888};
1853#else 1889#else
1854struct button_map bm[] = { 1890struct button_map bm[] = {
1855 { 0, 0, 0, 0, ""} 1891 { 0, 0, 0, 0, ""}
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index ca422c66ef..dac84ffb74 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -389,6 +389,14 @@
389#define UI_HEIGHT 488 /* height of GUI window */ 389#define UI_HEIGHT 488 /* height of GUI window */
390#define UI_LCD_POSX 64 /* x position of lcd */ 390#define UI_LCD_POSX 64 /* x position of lcd */
391#define UI_LCD_POSY 61 /* y position of lcd */ 391#define UI_LCD_POSY 61 /* y position of lcd */
392
393#elif defined(MPIO_HD200)
394#define UI_TITLE "MPIO HD200"
395#define UI_WIDTH 430 /* width of GUI window */
396#define UI_HEIGHT 479 /* height of GUI window */
397#define UI_LCD_POSX 101
398#define UI_LCD_POSY 195
399
392#else 400#else
393#error no UI defines 401#error no UI defines
394#endif 402#endif