summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMarianne Arnold <pixelma@rockbox.org>2007-09-20 10:49:48 +0000
committerMarianne Arnold <pixelma@rockbox.org>2007-09-20 10:49:48 +0000
commit12ddb8ea0d8dbaa38703c37551fcd5c5267819e6 (patch)
treee679031afc87caf181d21cce816aff540d4a5cb0 /apps
parent7b71787bd8dc1f570d2270a312438f86b66e3456 (diff)
downloadrockbox-12ddb8ea0d8dbaa38703c37551fcd5c5267819e6.tar.gz
rockbox-12ddb8ea0d8dbaa38703c37551fcd5c5267819e6.zip
Enable plugins on the Sansa C200. Large parts taken from patch FS#7749 by Max Kelley with tweaks, bit of cleanup and additional bitmaps by me. Some of the now enabled plugins could still be improved in regard to screen size adaptation or keymaps but this way it can easily be done later and one by one. The rather ugly 'ifndef's I added temporaryly in plugins/SOURCES will also go one by one. Plugin button actions cause some quirks in a few plugins (e.g. 'clock') but since it's not critical , the bitmaps were already done and it makes a good example for discussing plugin button actions, I thought it could go in.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14771 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/keymaps/keymap-c200.c10
-rw-r--r--apps/plugins/SOURCES14
-rw-r--r--apps/plugins/SUBDIRS6
-rw-r--r--apps/plugins/battery_bench.c3
-rw-r--r--apps/plugins/bitmaps/native/SOURCES16
-rwxr-xr-xapps/plugins/bitmaps/native/clock_binary.132x80x16.bmpbin0 -> 2854 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/clock_digits.132x80x16.bmpbin0 -> 14406 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/clock_logo.132x80x16.bmpbin0 -> 26190 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/clock_messages.132x80x16.bmpbin0 -> 33318 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/clock_segments.132x80x16.bmpbin0 -> 14406 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/clock_smalldigits.132x80x16.bmpbin0 -> 4786 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmpbin0 -> 4786 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/jewels.132x80x16.bmpbin0 -> 7414 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/rockblox_background.132x80x16.bmpbin0 -> 31734 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/sudoku_inverse.132x80x16.bmpbin0 -> 2358 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmpbin0 -> 3894 bytes
-rwxr-xr-xapps/plugins/bitmaps/native/sudoku_start.132x80x16.bmpbin0 -> 3894 bytes
-rw-r--r--apps/plugins/blackjack.c15
-rw-r--r--apps/plugins/bounce.c6
-rw-r--r--apps/plugins/calculator.c15
-rw-r--r--apps/plugins/chessclock.c3
-rw-r--r--apps/plugins/chip8.c8
-rw-r--r--apps/plugins/chopper.c3
-rw-r--r--apps/plugins/cube.c15
-rw-r--r--apps/plugins/dict.c3
-rw-r--r--apps/plugins/disktidy.c3
-rw-r--r--apps/plugins/doom/i_video.c10
-rw-r--r--apps/plugins/fire.c3
-rw-r--r--apps/plugins/fireworks.c3
-rw-r--r--apps/plugins/jewels.c13
-rw-r--r--apps/plugins/jpeg.c15
-rw-r--r--apps/plugins/lib/pluginlib_actions.h15
-rw-r--r--apps/plugins/logo.c3
-rw-r--r--apps/plugins/mandelbrot.c12
-rw-r--r--apps/plugins/maze.c3
-rw-r--r--apps/plugins/mazezam.c3
-rw-r--r--apps/plugins/midiplay.c3
-rw-r--r--apps/plugins/mosaique.c3
-rw-r--r--apps/plugins/mp3_encoder.c3
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c7
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/plasma.c6
-rw-r--r--apps/plugins/pong.c3
-rw-r--r--apps/plugins/reversi/reversi-gui.c8
-rw-r--r--apps/plugins/reversi/reversi-gui.h3
-rw-r--r--apps/plugins/rockblox.c25
-rw-r--r--apps/plugins/rockpaint.c3
-rw-r--r--apps/plugins/sliding_puzzle.c3
-rw-r--r--apps/plugins/snake.c3
-rw-r--r--apps/plugins/snake2.c3
-rw-r--r--apps/plugins/snow.c3
-rw-r--r--apps/plugins/solitaire.c19
-rw-r--r--apps/plugins/spacerocks.c13
-rw-r--r--apps/plugins/star.c3
-rw-r--r--apps/plugins/starfield.c3
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c7
-rw-r--r--apps/plugins/sudoku/sudoku.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h14
-rw-r--r--apps/plugins/viewer.c12
-rw-r--r--apps/plugins/vu_meter.c9
-rw-r--r--apps/plugins/wormlet.c8
-rw-r--r--apps/plugins/xobox.c3
-rw-r--r--apps/plugins/zxbox/keymaps.h3
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c3
65 files changed, 341 insertions, 54 deletions
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c
index 9a4c2b4c75..6e541579f7 100644
--- a/apps/keymaps/keymap-c200.c
+++ b/apps/keymaps/keymap-c200.c
@@ -269,19 +269,16 @@ static const struct button_mapping button_context_radio[] = {
269static const struct button_mapping button_context_keyboard[] = { 269static const struct button_mapping button_context_keyboard[] = {
270 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, 270 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
271 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 271 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
272
273 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, 272 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
274 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 273 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
275 274
276 { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE }, 275 { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
277 { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE }, 276 { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE },
278 277 { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
279 { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
280 { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE }, 278 { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
281 279
282 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, 280 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
283 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, 281 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
284
285 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, 282 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
286 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 283 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
287 284
@@ -291,7 +288,8 @@ static const struct button_mapping button_context_keyboard[] = {
291 { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC }, 288 { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC },
292 289
293 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, 290 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
294 { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, 291 { ACTION_KBD_DONE, BUTTON_VOL_UP, BUTTON_NONE },
292 { ACTION_KBD_DONE, BUTTON_VOL_DOWN, BUTTON_NONE },
295 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, 293 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE },
296 294
297 LAST_ITEM_IN_LIST 295 LAST_ITEM_IN_LIST
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index 31d94d5811..8479cd8b9b 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -34,7 +34,9 @@ wavrecord.c
34#ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */ 34#ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */
35dice.c 35dice.c
36disktidy.c 36disktidy.c
37#ifndef SANSA_C200
37flipit.c 38flipit.c
39#endif
38 40
39#ifdef HAVE_LCD_BITMAP /* Not for the Player */ 41#ifdef HAVE_LCD_BITMAP /* Not for the Player */
40maze.c 42maze.c
@@ -50,14 +52,16 @@ plasma.c
50 52
51blackjack.c 53blackjack.c
52bounce.c 54bounce.c
55#ifndef SANSA_C200
53bubbles.c 56bubbles.c
57#endif
54 58
55#if (LCD_DEPTH >= 2) && !defined(IPOD_MINI) && !defined(IPOD_MINI2G) && !defined(IRIVER_H10_5GB) 59#if (LCD_WIDTH >= 160)
56invadrox.c 60invadrox.c
57#endif 61#endif
58 62
59#if LCD_WIDTH != 128 63#if LCD_WIDTH != 128 && !defined SANSA_C200
60/* These need adjusting for the iRiver if'p screen */ 64/* These need adjusting for the iRiver if'p and Sansa c200, small H10 screen */
61brickmania.c 65brickmania.c
62#endif 66#endif
63calculator.c 67calculator.c
@@ -65,14 +69,18 @@ chip8.c
65chopper.c 69chopper.c
66demystify.c 70demystify.c
67jewels.c 71jewels.c
72#ifndef SANSA_C200
68minesweeper.c 73minesweeper.c
74#endif
69oscilloscope.c 75oscilloscope.c
70pong.c 76pong.c
71sliding_puzzle.c 77sliding_puzzle.c
72snake.c 78snake.c
73snake2.c 79snake2.c
74solitaire.c 80solitaire.c
81#ifndef SANSA_C200
75sokoban.c 82sokoban.c
83#endif
76star.c 84star.c
77starfield.c 85starfield.c
78#if CONFIG_LCD == LCD_SSD1815 86#if CONFIG_LCD == LCD_SSD1815
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index 11643a5b2f..f537fb8965 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -16,7 +16,9 @@ rockboy
16 16
17/* For all targets with a bitmap display */ 17/* For all targets with a bitmap display */
18#ifdef HAVE_LCD_BITMAP 18#ifdef HAVE_LCD_BITMAP
19#ifndef SANSA_C200
19chessbox 20chessbox
21#endif
20sudoku 22sudoku
21reversi 23reversi
22#endif 24#endif
@@ -27,8 +29,8 @@ zxbox
27#endif 29#endif
28 30
29/* For all the colour targets, iriver H1x0 and iAudio M5 */ 31/* For all the colour targets, iriver H1x0 and iAudio M5 */
30#if defined(HAVE_LCD_COLOR) || defined(IRIVER_H100_SERIES) \ 32#if defined(HAVE_LCD_COLOR) && !defined (SANSA_C200)\
31 || defined(IAUDIO_M5) 33 || defined(IRIVER_H100_SERIES) || defined(IAUDIO_M5)
32pacbox 34pacbox
33#endif 35#endif
34 36
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 85377e22a9..43bfc7255f 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -80,7 +80,8 @@ PLUGIN_HEADER
80#define BATTERY_ON BUTTON_SELECT 80#define BATTERY_ON BUTTON_SELECT
81#define BATTERY_OFF BUTTON_PLAY 81#define BATTERY_OFF BUTTON_PLAY
82 82
83#elif CONFIG_KEYPAD == SANSA_E200_PAD 83#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
84(CONFIG_KEYPAD == SANSA_C200_PAD)
84#define BATTERY_ON BUTTON_SELECT 85#define BATTERY_ON BUTTON_SELECT
85#define BATTERY_OFF BUTTON_POWER 86#define BATTERY_OFF BUTTON_POWER
86 87
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 93939c95f7..55ad8392c3 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -167,6 +167,14 @@ clock_segments.138x110x2.bmp
167clock_smallsegments.160x128x2.bmp 167clock_smallsegments.160x128x2.bmp
168clock_logo.138x110x2.bmp 168clock_logo.138x110x2.bmp
169clock_messages.138x110x2.bmp 169clock_messages.138x110x2.bmp
170#elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) && (LCD_DEPTH >= 16)
171clock_binary.132x80x16.bmp
172clock_digits.132x80x16.bmp
173clock_smalldigits.132x80x16.bmp
174clock_segments.132x80x16.bmp
175clock_smallsegments.132x80x16.bmp
176clock_logo.132x80x16.bmp
177clock_messages.132x80x16.bmp
170#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1) 178#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1)
171clock_binary.112x64x1.bmp 179clock_binary.112x64x1.bmp
172clock_digits.112x64x1.bmp 180clock_digits.112x64x1.bmp
@@ -237,6 +245,8 @@ jewels.112x64x1.bmp
237jewels.112x64x1.bmp 245jewels.112x64x1.bmp
238#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) 246#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128)
239jewels.128x128x16.bmp 247jewels.128x128x16.bmp
248#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
249jewels.132x80x16.bmp
240#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) 250#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
241jewels.138x110x2.bmp 251jewels.138x110x2.bmp
242#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && !defined(HAVE_LCD_COLOR) 252#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && !defined(HAVE_LCD_COLOR)
@@ -283,6 +293,8 @@ rockblox_background.176x220x16.bmp
283rockblox_background.160x128x16.bmp 293rockblox_background.160x128x16.bmp
284#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16) 294#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16)
285rockblox_background.128x128x16.bmp 295rockblox_background.128x128x16.bmp
296#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) && (LCD_DEPTH == 16)
297rockblox_background.132x80x16.bmp
286#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 2) 298#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 2)
287rockblox_background.160x128x2.bmp 299rockblox_background.160x128x2.bmp
288#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH == 2) 300#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH == 2)
@@ -426,6 +438,10 @@ sudoku_inverse.112x64x1.bmp
426sudoku_start.138x110x2.bmp 438sudoku_start.138x110x2.bmp
427sudoku_normal.138x110x2.bmp 439sudoku_normal.138x110x2.bmp
428sudoku_inverse.138x110x2.bmp 440sudoku_inverse.138x110x2.bmp
441#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) && (LCD_DEPTH >= 16)
442sudoku_start.132x80x16.bmp
443sudoku_normal.132x80x16.bmp
444sudoku_inverse.132x80x16.bmp
429#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16) 445#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16)
430sudoku_start.128x128x16.bmp 446sudoku_start.128x128x16.bmp
431sudoku_normal.128x128x16.bmp 447sudoku_normal.128x128x16.bmp
diff --git a/apps/plugins/bitmaps/native/clock_binary.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_binary.132x80x16.bmp
new file mode 100755
index 0000000000..fcf7097f8a
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_binary.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/clock_digits.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_digits.132x80x16.bmp
new file mode 100755
index 0000000000..eff4c370a8
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_digits.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/clock_logo.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_logo.132x80x16.bmp
new file mode 100755
index 0000000000..b3d620954e
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_logo.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/clock_messages.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_messages.132x80x16.bmp
new file mode 100755
index 0000000000..e8a25d5bf5
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_messages.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/clock_segments.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_segments.132x80x16.bmp
new file mode 100755
index 0000000000..0b9d436e1c
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_segments.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/clock_smalldigits.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_smalldigits.132x80x16.bmp
new file mode 100755
index 0000000000..e82dbe8727
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_smalldigits.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmp
new file mode 100755
index 0000000000..e4bd944865
--- /dev/null
+++ b/apps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/jewels.132x80x16.bmp b/apps/plugins/bitmaps/native/jewels.132x80x16.bmp
new file mode 100755
index 0000000000..c6c8e04eba
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/rockblox_background.132x80x16.bmp b/apps/plugins/bitmaps/native/rockblox_background.132x80x16.bmp
new file mode 100755
index 0000000000..d4d720f088
--- /dev/null
+++ b/apps/plugins/bitmaps/native/rockblox_background.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/sudoku_inverse.132x80x16.bmp b/apps/plugins/bitmaps/native/sudoku_inverse.132x80x16.bmp
new file mode 100755
index 0000000000..491593c3a0
--- /dev/null
+++ b/apps/plugins/bitmaps/native/sudoku_inverse.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmp b/apps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmp
new file mode 100755
index 0000000000..ff2a824464
--- /dev/null
+++ b/apps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/sudoku_start.132x80x16.bmp b/apps/plugins/bitmaps/native/sudoku_start.132x80x16.bmp
new file mode 100755
index 0000000000..ab6e978e0b
--- /dev/null
+++ b/apps/plugins/bitmaps/native/sudoku_start.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index c4b424143d..2ece48d75d 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -173,6 +173,21 @@ PLUGIN_HEADER
173#define BJACK_RIGHT BUTTON_RIGHT 173#define BJACK_RIGHT BUTTON_RIGHT
174#define BJACK_LEFT BUTTON_LEFT 174#define BJACK_LEFT BUTTON_LEFT
175 175
176#elif CONFIG_KEYPAD == SANSA_C200_PAD
177#define BJACK_START BUTTON_SELECT
178#define BJACK_QUIT BUTTON_POWER
179#define BJACK_MAX (BUTTON_REC|BUTTON_UP)
180#define BJACK_MIN (BUTTON_REC|BUTTON_VOL_DOWN)
181#define BJACK_HIT BUTTON_SELECT
182#define BJACK_STAY BUTTON_RIGHT
183#define BJACK_DOUBLEDOWN BUTTON_LEFT
184#define BJACK_SCORES BUTTON_VOL_UP
185#define BJACK_RESUME BUTTON_REC
186#define BJACK_UP BUTTON_UP
187#define BJACK_DOWN BUTTON_DOWN
188#define BJACK_RIGHT BUTTON_RIGHT
189#define BJACK_LEFT BUTTON_LEFT
190
176#elif CONFIG_KEYPAD == ELIO_TPJ1022_PAD 191#elif CONFIG_KEYPAD == ELIO_TPJ1022_PAD
177#define BJACK_START BUTTON_MAIN 192#define BJACK_START BUTTON_MAIN
178#define BJACK_QUIT BUTTON_POWER 193#define BJACK_QUIT BUTTON_POWER
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index eac6933815..9373050292 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -82,6 +82,12 @@ PLUGIN_HEADER
82#define BOUNCE_QUIT BUTTON_POWER 82#define BOUNCE_QUIT BUTTON_POWER
83#define BOUNCE_MODE BUTTON_SELECT 83#define BOUNCE_MODE BUTTON_SELECT
84 84
85#elif CONFIG_KEYPAD == SANSA_C200_PAD
86#define BOUNCE_UP BUTTON_UP
87#define BOUNCE_DOWN BUTTON_DOWN
88#define BOUNCE_QUIT BUTTON_POWER
89#define BOUNCE_MODE BUTTON_SELECT
90
85#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 91#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
86#define BOUNCE_UP BUTTON_SCROLL_UP 92#define BOUNCE_UP BUTTON_SCROLL_UP
87#define BOUNCE_DOWN BUTTON_SCROLL_DOWN 93#define BOUNCE_DOWN BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index e16f58a412..103ce50a07 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -176,14 +176,15 @@ PLUGIN_HEADER
176#define CALCULATOR_CALC BUTTON_SELECT 176#define CALCULATOR_CALC BUTTON_SELECT
177#define CALCULATOR_CLEAR BUTTON_A 177#define CALCULATOR_CLEAR BUTTON_A
178 178
179#elif CONFIG_KEYPAD == SANSA_E200_PAD 179#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
180#define CALCULATOR_UP BUTTON_UP 180(CONFIG_KEYPAD == SANSA_C200_PAD)
181#define CALCULATOR_DOWN BUTTON_DOWN 181#define CALCULATOR_UP BUTTON_UP
182#define CALCULATOR_QUIT BUTTON_POWER 182#define CALCULATOR_DOWN BUTTON_DOWN
183#define CALCULATOR_QUIT BUTTON_POWER
183#define CALCULATOR_INPUT_CALC_PRE BUTTON_SELECT 184#define CALCULATOR_INPUT_CALC_PRE BUTTON_SELECT
184#define CALCULATOR_INPUT (BUTTON_SELECT|BUTTON_REL) 185#define CALCULATOR_INPUT (BUTTON_SELECT|BUTTON_REL)
185#define CALCULATOR_CALC BUTTON_SELECT 186#define CALCULATOR_CALC (BUTTON_SELECT|BUTTON_REPEAT)
186#define CALCULATOR_CLEAR BUTTON_REC 187#define CALCULATOR_CLEAR BUTTON_REC
187 188
188#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 189#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
189 190
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 73c49767f9..56d2709bb7 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -119,7 +119,8 @@ PLUGIN_HEADER
119#define CHC_SETTINGS_OK BUTTON_SELECT 119#define CHC_SETTINGS_OK BUTTON_SELECT
120#define CHC_SETTINGS_CANCEL BUTTON_POWER 120#define CHC_SETTINGS_CANCEL BUTTON_POWER
121 121
122#elif CONFIG_KEYPAD == SANSA_E200_PAD 122#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
123(CONFIG_KEYPAD == SANSA_C200_PAD)
123#define CHC_QUIT BUTTON_POWER 124#define CHC_QUIT BUTTON_POWER
124#define CHC_STARTSTOP BUTTON_SELECT 125#define CHC_STARTSTOP BUTTON_SELECT
125#define CHC_RESET BUTTON_DOWN 126#define CHC_RESET BUTTON_DOWN
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 0b06ace784..ae6e3bfd29 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1028,6 +1028,14 @@ STATIC void chip8 (void)
1028#define CHIP8_KEY6 BUTTON_RIGHT 1028#define CHIP8_KEY6 BUTTON_RIGHT
1029#define CHIP8_KEY8 BUTTON_SCROLL_DOWN 1029#define CHIP8_KEY8 BUTTON_SCROLL_DOWN
1030 1030
1031#elif CONFIG_KEYPAD == SANSA_C200_PAD
1032#define CHIP8_OFF BUTTON_POWER
1033#define CHIP8_KEY2 BUTTON_VOL_UP
1034#define CHIP8_KEY4 BUTTON_LEFT
1035#define CHIP8_KEY5 BUTTON_SELECT
1036#define CHIP8_KEY6 BUTTON_RIGHT
1037#define CHIP8_KEY8 BUTTON_VOL_DOWN
1038
1031#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 1039#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
1032#define CHIP8_OFF BUTTON_POWER 1040#define CHIP8_OFF BUTTON_POWER
1033#define CHIP8_KEY2 BUTTON_SCROLL_UP 1041#define CHIP8_KEY2 BUTTON_SCROLL_UP
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 5e27a5e6e7..46acf2c74e 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -64,7 +64,8 @@ Still To do:
64#define ACTION BUTTON_RIGHT 64#define ACTION BUTTON_RIGHT
65#define ACTIONTEXT "RIGHT" 65#define ACTIONTEXT "RIGHT"
66 66
67#elif CONFIG_KEYPAD == SANSA_E200_PAD 67#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
68(CONFIG_KEYPAD == SANSA_C200_PAD)
68#define QUIT BUTTON_POWER 69#define QUIT BUTTON_POWER
69#define ACTION BUTTON_SELECT 70#define ACTION BUTTON_SELECT
70#define ACTIONTEXT "SELECT" 71#define ACTIONTEXT "SELECT"
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index f5158e9b7a..3294b37fab 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -163,6 +163,21 @@ PLUGIN_HEADER
163#define CUBE_PAUSE (BUTTON_SELECT|BUTTON_REL) 163#define CUBE_PAUSE (BUTTON_SELECT|BUTTON_REL)
164#define CUBE_HIGHSPEED BUTTON_REC 164#define CUBE_HIGHSPEED BUTTON_REC
165 165
166#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
167#define CUBE_QUIT BUTTON_POWER
168#define CUBE_X_INC BUTTON_LEFT
169#define CUBE_X_DEC BUTTON_RIGHT
170#define CUBE_Y_INC BUTTON_VOL_UP
171#define CUBE_Y_DEC BUTTON_VOL_DOWN
172#define CUBE_Z_INC BUTTON_UP
173#define CUBE_Z_DEC BUTTON_DOWN
174#define CUBE_MODE_PRE BUTTON_SELECT
175#define CUBE_MODE (BUTTON_SELECT|BUTTON_REPEAT)
176#define CUBE_PAUSE_PRE BUTTON_SELECT
177#define CUBE_PAUSE (BUTTON_SELECT|BUTTON_REL)
178#define CUBE_HIGHSPEED BUTTON_REC
179
180
166#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 181#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
167#define CUBE_QUIT BUTTON_POWER 182#define CUBE_QUIT BUTTON_POWER
168#define CUBE_X_INC BUTTON_LEFT 183#define CUBE_X_INC BUTTON_LEFT
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index 32793cbc9f..257a0c6147 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -114,7 +114,8 @@ long reverse (long N) {
114#define LP_QUIT BUTTON_POWER 114#define LP_QUIT BUTTON_POWER
115#elif CONFIG_KEYPAD == GIGABEAT_PAD 115#elif CONFIG_KEYPAD == GIGABEAT_PAD
116#define LP_QUIT BUTTON_POWER 116#define LP_QUIT BUTTON_POWER
117#elif CONFIG_KEYPAD == SANSA_E200_PAD 117#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
118(CONFIG_KEYPAD == SANSA_C200_PAD)
118#define LP_QUIT BUTTON_POWER 119#define LP_QUIT BUTTON_POWER
119#elif CONFIG_KEYPAD == IRIVER_H10_PAD 120#elif CONFIG_KEYPAD == IRIVER_H10_PAD
120#define LP_QUIT BUTTON_POWER 121#define LP_QUIT BUTTON_POWER
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index aba78afb3e..a1c51d762a 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -66,7 +66,8 @@ enum tidy_system
66#elif CONFIG_KEYPAD == GIGABEAT_PAD 66#elif CONFIG_KEYPAD == GIGABEAT_PAD
67#define TIDY_STOP BUTTON_POWER 67#define TIDY_STOP BUTTON_POWER
68 68
69#elif CONFIG_KEYPAD == SANSA_E200_PAD 69#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
70(CONFIG_KEYPAD == SANSA_C200_PAD)
70#define TIDY_STOP BUTTON_POWER 71#define TIDY_STOP BUTTON_POWER
71 72
72#elif CONFIG_KEYPAD == IRIVER_H10_PAD 73#elif CONFIG_KEYPAD == IRIVER_H10_PAD
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 24079a0f71..32990f3923 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -192,6 +192,16 @@ void I_ShutdownGraphics(void)
192#define DOOMBUTTON_ESC BUTTON_POWER 192#define DOOMBUTTON_ESC BUTTON_POWER
193#define DOOMBUTTON_ENTER BUTTON_SELECT 193#define DOOMBUTTON_ENTER BUTTON_SELECT
194#define DOOMBUTTON_WEAPON DOOMBUTTON_SCROLLWHEEL_CW 194#define DOOMBUTTON_WEAPON DOOMBUTTON_SCROLLWHEEL_CW
195#elif CONFIG_KEYPAD == SANSA_C200_PAD
196#define DOOMBUTTON_UP BUTTON_UP
197#define DOOMBUTTON_DOWN BUTTON_DOWN
198#define DOOMBUTTON_LEFT BUTTON_LEFT
199#define DOOMBUTTON_RIGHT BUTTON_RIGHT
200#define DOOMBUTTON_SHOOT BUTTON_SELECT
201#define DOOMBUTTON_OPEN BUTTON_REC
202#define DOOMBUTTON_ESC BUTTON_POWER
203#define DOOMBUTTON_ENTER BUTTON_SELECT
204#define DOOMBUTTON_WEAPON BUTTON_VOL_UP
195#elif CONFIG_KEYPAD == GIGABEAT_PAD 205#elif CONFIG_KEYPAD == GIGABEAT_PAD
196#define DOOMBUTTON_UP BUTTON_UP 206#define DOOMBUTTON_UP BUTTON_UP
197#define DOOMBUTTON_DOWN BUTTON_DOWN 207#define DOOMBUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c
index 5d6f0618a7..7b8a104ec0 100644
--- a/apps/plugins/fire.c
+++ b/apps/plugins/fire.c
@@ -96,7 +96,8 @@ static unsigned char draw_buffer[8*LCD_WIDTH];
96#define FIRE_INCREASE_MULT BUTTON_UP 96#define FIRE_INCREASE_MULT BUTTON_UP
97#define FIRE_DECREASE_MULT BUTTON_DOWN 97#define FIRE_DECREASE_MULT BUTTON_DOWN
98 98
99#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 99#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
100(CONFIG_KEYPAD == SANSA_C200_PAD)
100#define FIRE_QUIT BUTTON_POWER 101#define FIRE_QUIT BUTTON_POWER
101#define FIRE_SWITCH_FLAMES_TYPE BUTTON_LEFT 102#define FIRE_SWITCH_FLAMES_TYPE BUTTON_LEFT
102#define FIRE_SWITCH_FLAMES_MOVING BUTTON_RIGHT 103#define FIRE_SWITCH_FLAMES_MOVING BUTTON_RIGHT
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index e8439dff15..bedf82ffda 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -57,7 +57,8 @@ static struct plugin_api* rb;
57#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 57#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
58#define BTN_MENU BUTTON_MENU 58#define BTN_MENU BUTTON_MENU
59#define BTN_FIRE BUTTON_SELECT 59#define BTN_FIRE BUTTON_SELECT
60#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 60#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
61(CONFIG_KEYPAD == SANSA_C200_PAD)
61#define BTN_MENU BUTTON_POWER 62#define BTN_MENU BUTTON_POWER
62#define BTN_FIRE BUTTON_SELECT 63#define BTN_FIRE BUTTON_SELECT
63#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 64#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index cb4ab88048..dde53a0933 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -95,7 +95,8 @@ PLUGIN_HEADER
95#define JEWELS_SELECT BUTTON_SELECT 95#define JEWELS_SELECT BUTTON_SELECT
96#define JEWELS_CANCEL BUTTON_POWER 96#define JEWELS_CANCEL BUTTON_POWER
97 97
98#elif CONFIG_KEYPAD == SANSA_E200_PAD 98#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
99(CONFIG_KEYPAD == SANSA_C200_PAD)
99#define JEWELS_UP BUTTON_UP 100#define JEWELS_UP BUTTON_UP
100#define JEWELS_DOWN BUTTON_DOWN 101#define JEWELS_DOWN BUTTON_DOWN
101#define JEWELS_LEFT BUTTON_LEFT 102#define JEWELS_LEFT BUTTON_LEFT
@@ -159,6 +160,13 @@ PLUGIN_HEADER
159#define YOFS 6 160#define YOFS 6
160#define NUM_SCORES 10 161#define NUM_SCORES 10
161 162
163+/* use 10x10 tiles (Sansa c200) */
164#elif (LCD_HEIGHT == 80) && (LCD_WIDTH == 132)
165#define TILE_WIDTH 10
166#define TILE_HEIGHT 10
167#define YOFS 0
168#define NUM_SCORES 8
169
162/* use 10x8 tiles (iFP 700) */ 170/* use 10x8 tiles (iFP 700) */
163#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 128) 171#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 128)
164#define TILE_WIDTH 10 172#define TILE_WIDTH 10
@@ -1480,7 +1488,8 @@ static int jewels_main(struct game_context* bj) {
1480 rb->lcd_puts(0, 9, "SELECT to select"); 1488 rb->lcd_puts(0, 9, "SELECT to select");
1481 rb->lcd_puts(0, 10, "Long SELECT to show menu"); 1489 rb->lcd_puts(0, 10, "Long SELECT to show menu");
1482 rb->lcd_puts(0, 11, "POWER to cancel"); 1490 rb->lcd_puts(0, 11, "POWER to cancel");
1483#elif CONFIG_KEYPAD == SANSA_E200_PAD 1491#elif CONFIG_KEYPAD == SANSA_E200_PAD \
1492 || CONFIG_KEYPAD == SANSA_C200_PAD
1484 rb->lcd_puts(0, 2, "Swap pairs of jewels to"); 1493 rb->lcd_puts(0, 2, "Swap pairs of jewels to");
1485 rb->lcd_puts(0, 3, "form connected segments"); 1494 rb->lcd_puts(0, 3, "form connected segments");
1486 rb->lcd_puts(0, 4, "of three or more of the"); 1495 rb->lcd_puts(0, 4, "of three or more of the");
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index 2c8942f8bc..09f7455f8b 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -142,6 +142,21 @@ PLUGIN_HEADER
142#define JPEG_PREVIOUS BUTTON_SCROLL_UP 142#define JPEG_PREVIOUS BUTTON_SCROLL_UP
143#define JPEG_PREVIOUS_REPEAT (BUTTON_SCROLL_UP|BUTTON_REPEAT) 143#define JPEG_PREVIOUS_REPEAT (BUTTON_SCROLL_UP|BUTTON_REPEAT)
144 144
145#elif CONFIG_KEYPAD == SANSA_C200_PAD
146#define JPEG_ZOOM_PRE BUTTON_SELECT
147#define JPEG_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
148#define JPEG_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
149#define JPEG_UP BUTTON_UP
150#define JPEG_DOWN BUTTON_DOWN
151#define JPEG_LEFT BUTTON_LEFT
152#define JPEG_RIGHT BUTTON_RIGHT
153#define JPEG_MENU BUTTON_POWER
154#define JPEG_SLIDE_SHOW BUTTON_REC
155#define JPEG_NEXT BUTTON_VOL_UP
156#define JPEG_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
157#define JPEG_PREVIOUS BUTTON_VOL_DOWN
158#define JPEG_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
159
145#elif CONFIG_KEYPAD == IRIVER_H10_PAD 160#elif CONFIG_KEYPAD == IRIVER_H10_PAD
146#define JPEG_ZOOM_PRE BUTTON_PLAY 161#define JPEG_ZOOM_PRE BUTTON_PLAY
147#define JPEG_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) 162#define JPEG_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h
index c38745a4f1..7b2b0a42e2 100644
--- a/apps/plugins/lib/pluginlib_actions.h
+++ b/apps/plugins/lib/pluginlib_actions.h
@@ -94,7 +94,8 @@ static const struct button_mapping generic_directions[] =
94 || (CONFIG_KEYPAD == GIGABEAT_PAD) \ 94 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
95 || (CONFIG_KEYPAD == RECORDER_PAD) \ 95 || (CONFIG_KEYPAD == RECORDER_PAD) \
96 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \ 96 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \
97 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) 97 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
98 || (CONFIG_KEYPAD == SANSA_C200_PAD)
98 { PLA_UP, BUTTON_UP, BUTTON_NONE}, 99 { PLA_UP, BUTTON_UP, BUTTON_NONE},
99 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, 100 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
100 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 101 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
@@ -142,6 +143,7 @@ static const struct button_mapping generic_directions[] =
142 { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, 143 { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
143 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, 144 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
144 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 145 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
146
145#else 147#else
146 #error pluginlib_actions: Unsupported keypad 148 #error pluginlib_actions: Unsupported keypad
147#endif 149#endif
@@ -191,14 +193,15 @@ static const struct button_mapping generic_left_right_fire[] =
191 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 193 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
192 { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, 194 { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE},
193 { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 195 { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
194#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 196#elif (CONFIG_KEYPAD == SANSA_C200_PAD) \
197 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
195 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 198 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
196 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 199 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
197 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, 200 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
198 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 201 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
199 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 202 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
200 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE}, 203 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
201#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 204#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
202 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 205 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
203 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 206 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
204 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, 207 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
@@ -285,6 +288,12 @@ static const struct button_mapping generic_actions[] =
285 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, 288 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE},
286 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, 289 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
287 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 290 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
291#elif CONFIG_KEYPAD == SANSA_C200_PAD
292 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
293 {PLA_START, BUTTON_UP, BUTTON_NONE},
294 {PLA_MENU, BUTTON_DOWN, BUTTON_NONE},
295 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
296 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
288#elif CONFIG_KEYPAD == IRIVER_H10_PAD 297#elif CONFIG_KEYPAD == IRIVER_H10_PAD
289 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, 298 {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
290 {PLA_START, BUTTON_PLAY, BUTTON_NONE}, 299 {PLA_START, BUTTON_PLAY, BUTTON_NONE},
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 6a37e3602d..88821c8a78 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -210,7 +210,8 @@ const unsigned char rockbox16x7[] = {
210#define LP_DEC_Y BUTTON_DOWN 210#define LP_DEC_Y BUTTON_DOWN
211#define LP_INC_Y BUTTON_UP 211#define LP_INC_Y BUTTON_UP
212 212
213#elif CONFIG_KEYPAD == SANSA_E200_PAD 213#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
214(CONFIG_KEYPAD == SANSA_C200_PAD)
214#define LP_QUIT BUTTON_POWER 215#define LP_QUIT BUTTON_POWER
215#define LP_DEC_X BUTTON_LEFT 216#define LP_DEC_X BUTTON_LEFT
216#define LP_INC_X BUTTON_RIGHT 217#define LP_INC_X BUTTON_RIGHT
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 48450ae455..b1f243b01c 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -132,6 +132,18 @@ PLUGIN_HEADER
132#define MANDELBROT_MAXITER_DEC (BUTTON_SELECT | BUTTON_LEFT) 132#define MANDELBROT_MAXITER_DEC (BUTTON_SELECT | BUTTON_LEFT)
133#define MANDELBROT_RESET BUTTON_REC 133#define MANDELBROT_RESET BUTTON_REC
134 134
135#elif CONFIG_KEYPAD == SANSA_C200_PAD
136#define MANDELBROT_QUIT BUTTON_POWER
137#define MANDELBROT_UP BUTTON_UP
138#define MANDELBROT_DOWN BUTTON_DOWN
139#define MANDELBROT_LEFT BUTTON_LEFT
140#define MANDELBROT_RIGHT BUTTON_RIGHT
141#define MANDELBROT_ZOOM_IN BUTTON_VOL_UP
142#define MANDELBROT_ZOOM_OUT BUTTON_VOL_DOWN
143#define MANDELBROT_MAXITER_INC (BUTTON_SELECT | BUTTON_RIGHT)
144#define MANDELBROT_MAXITER_DEC (BUTTON_SELECT | BUTTON_LEFT)
145#define MANDELBROT_RESET BUTTON_REC
146
135#elif CONFIG_KEYPAD == IRIVER_H10_PAD 147#elif CONFIG_KEYPAD == IRIVER_H10_PAD
136#define MANDELBROT_QUIT BUTTON_POWER 148#define MANDELBROT_QUIT BUTTON_POWER
137#define MANDELBROT_UP BUTTON_SCROLL_UP 149#define MANDELBROT_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c
index 2948eb2aec..8967f59132 100644
--- a/apps/plugins/maze.c
+++ b/apps/plugins/maze.c
@@ -89,6 +89,9 @@ const struct button_mapping *plugin_contexts[]
89#if ( LCD_WIDTH == 112 ) 89#if ( LCD_WIDTH == 112 )
90#define MAZE_WIDTH 16 90#define MAZE_WIDTH 16
91#define MAZE_HEIGHT 12 91#define MAZE_HEIGHT 12
92#elif( LCD_WIDTH == 132 )
93#define MAZE_WIDTH 26
94#define MAZE_HEIGHT 16
92#else 95#else
93#define MAZE_WIDTH 32 96#define MAZE_WIDTH 32
94#define MAZE_HEIGHT 24 97#define MAZE_HEIGHT 24
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 48c564ab8a..41edd3a5e5 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -116,7 +116,8 @@ MEM_FUNCTION_WRAPPERS(rb);
116#define MAZEZAM_QUIT BUTTON_POWER 116#define MAZEZAM_QUIT BUTTON_POWER
117#define MAZEZAM_QUIT_KEYNAME "[POWER]" 117#define MAZEZAM_QUIT_KEYNAME "[POWER]"
118 118
119#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 119#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
120(CONFIG_KEYPAD == SANSA_C200_PAD)
120#define MAZEZAM_UP BUTTON_UP 121#define MAZEZAM_UP BUTTON_UP
121#define MAZEZAM_DOWN BUTTON_DOWN 122#define MAZEZAM_DOWN BUTTON_DOWN
122#define MAZEZAM_LEFT BUTTON_LEFT 123#define MAZEZAM_LEFT BUTTON_LEFT
diff --git a/apps/plugins/midiplay.c b/apps/plugins/midiplay.c
index 59594a97f7..f8a6929661 100644
--- a/apps/plugins/midiplay.c
+++ b/apps/plugins/midiplay.c
@@ -55,7 +55,8 @@ PLUGIN_IRAM_DECLARE
55#define BTN_UP BUTTON_UP 55#define BTN_UP BUTTON_UP
56#define BTN_DOWN BUTTON_DOWN 56#define BTN_DOWN BUTTON_DOWN
57 57
58#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 58#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
59(CONFIG_KEYPAD == SANSA_C200_PAD)
59#define BTN_QUIT BUTTON_POWER 60#define BTN_QUIT BUTTON_POWER
60#define BTN_RIGHT BUTTON_RIGHT 61#define BTN_RIGHT BUTTON_RIGHT
61#define BTN_UP BUTTON_UP 62#define BTN_UP BUTTON_UP
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index bfcd53af66..45d2319101 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -91,7 +91,8 @@ PLUGIN_HEADER
91#define MOSAIQUE_SPEED BUTTON_A 91#define MOSAIQUE_SPEED BUTTON_A
92#define MOSAIQUE_RESTART BUTTON_SELECT 92#define MOSAIQUE_RESTART BUTTON_SELECT
93 93
94#elif CONFIG_KEYPAD == SANSA_E200_PAD 94#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
95(CONFIG_KEYPAD == SANSA_C200_PAD)
95#define MOSAIQUE_QUIT BUTTON_POWER 96#define MOSAIQUE_QUIT BUTTON_POWER
96#define MOSAIQUE_SPEED BUTTON_DOWN 97#define MOSAIQUE_SPEED BUTTON_DOWN
97#define MOSAIQUE_RESTART BUTTON_SELECT 98#define MOSAIQUE_RESTART BUTTON_SELECT
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index 55cfac3899..453c755f10 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2343,7 +2343,8 @@ void get_mp3_filename(char *wav_name)
2343#define MP3ENC_NEXT BUTTON_DOWN 2343#define MP3ENC_NEXT BUTTON_DOWN
2344#define MP3ENC_DONE BUTTON_POWER 2344#define MP3ENC_DONE BUTTON_POWER
2345#define MP3ENC_SELECT BUTTON_SELECT 2345#define MP3ENC_SELECT BUTTON_SELECT
2346#elif CONFIG_KEYPAD == SANSA_E200_PAD 2346#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
2347(CONFIG_KEYPAD == SANSA_C200_PAD)
2347#define MP3ENC_PREV BUTTON_UP 2348#define MP3ENC_PREV BUTTON_UP
2348#define MP3ENC_NEXT BUTTON_DOWN 2349#define MP3ENC_NEXT BUTTON_DOWN
2349#define MP3ENC_DONE BUTTON_POWER 2350#define MP3ENC_DONE BUTTON_POWER
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 481454dc87..af0567c0d1 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -160,6 +160,13 @@ PLUGIN_IRAM_DECLARE
160#define MPEG_VOLDOWN BUTTON_SCROLL_UP 160#define MPEG_VOLDOWN BUTTON_SCROLL_UP
161#define MPEG_VOLUP BUTTON_SCROLL_DOWN 161#define MPEG_VOLUP BUTTON_SCROLL_DOWN
162 162
163#elif CONFIG_KEYPAD == SANSA_C200_PAD
164#define MPEG_MENU BUTTON_SELECT
165#define MPEG_STOP BUTTON_POWER
166#define MPEG_PAUSE BUTTON_UP
167#define MPEG_VOLDOWN BUTTON_VOL_DOWN
168#define MPEG_VOLUP BUTTON_VOL_UP
169
163#else 170#else
164#error MPEGPLAYER: Unsupported keypad 171#error MPEGPLAYER: Unsupported keypad
165#endif 172#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index bd16341008..ee4b089ac1 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -109,6 +109,17 @@ PLUGIN_HEADER
109#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_DOWN 109#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_DOWN
110#define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_UP 110#define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_UP
111 111
112#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
113#define OSCILLOSCOPE_QUIT BUTTON_POWER
114#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
115#define OSCILLOSCOPE_ADVMODE BUTTON_DOWN
116#define OSCILLOSCOPE_ORIENTATION BUTTON_UP
117#define OSCILLOSCOPE_PAUSE BUTTON_REC
118#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
119#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
120#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
121#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
122
112#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 123#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
113#define OSCILLOSCOPE_QUIT BUTTON_POWER 124#define OSCILLOSCOPE_QUIT BUTTON_POWER
114#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT 125#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index 1fae239e53..76c54122e0 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -63,7 +63,8 @@ static int plasma_frequency;
63#define PLASMA_INCREASE_FREQUENCY BUTTON_UP 63#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
64#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN 64#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
65 65
66#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 66#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
67(CONFIG_KEYPAD == SANSA_C200_PAD)
67#define PLASMA_QUIT BUTTON_POWER 68#define PLASMA_QUIT BUTTON_POWER
68#define PLASMA_INCREASE_FREQUENCY BUTTON_UP 69#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
69#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN 70#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
@@ -90,7 +91,8 @@ static int plasma_frequency;
90#define PLASMA_REGEN_COLORS BUTTON_PLAY 91#define PLASMA_REGEN_COLORS BUTTON_PLAY
91#elif CONFIG_KEYPAD == IRIVER_H10_PAD 92#elif CONFIG_KEYPAD == IRIVER_H10_PAD
92#define PLASMA_REGEN_COLORS BUTTON_PLAY 93#define PLASMA_REGEN_COLORS BUTTON_PLAY
93#elif CONFIG_KEYPAD == SANSA_E200_PAD 94#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
95(CONFIG_KEYPAD == SANSA_C200_PAD)
94#define PLASMA_REGEN_COLORS BUTTON_SELECT 96#define PLASMA_REGEN_COLORS BUTTON_SELECT
95#elif CONFIG_KEYPAD == IPOD_4G_PAD 97#elif CONFIG_KEYPAD == IPOD_4G_PAD
96#define PLASMA_REGEN_COLORS BUTTON_SELECT 98#define PLASMA_REGEN_COLORS BUTTON_SELECT
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index b88b95bb91..79069b9285 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -100,7 +100,8 @@ PLUGIN_HEADER
100#define PONG_RIGHT_UP BUTTON_VOL_UP 100#define PONG_RIGHT_UP BUTTON_VOL_UP
101#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN 101#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
102 102
103#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 103#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
104(CONFIG_KEYPAD == SANSA_C200_PAD)
104#define PONG_QUIT BUTTON_POWER 105#define PONG_QUIT BUTTON_POWER
105#define PONG_PAUSE BUTTON_SELECT 106#define PONG_PAUSE BUTTON_SELECT
106#define PONG_LEFT_UP BUTTON_LEFT 107#define PONG_LEFT_UP BUTTON_LEFT
diff --git a/apps/plugins/reversi/reversi-gui.c b/apps/plugins/reversi/reversi-gui.c
index 374cc0f151..f99f616668 100644
--- a/apps/plugins/reversi/reversi-gui.c
+++ b/apps/plugins/reversi/reversi-gui.c
@@ -67,6 +67,14 @@ static struct plugin_api* rb;
67#define CELL_HEIGHT 6 67#define CELL_HEIGHT 6
68#define SMALL_BOARD 68#define SMALL_BOARD
69 69
70#elif (LCD_HEIGHT==80) && (LCD_WIDTH==132)
71/* Sansa C200 - 132x80, 8 cells @ 9x9 with 9 border lines */
72
73/* Internal dimensions of a cell */
74#define CELL_WIDTH 8
75#define CELL_HEIGHT 8
76#define SMALL_BOARD
77
70#elif (LCD_HEIGHT==110) && (LCD_WIDTH==138) 78#elif (LCD_HEIGHT==110) && (LCD_WIDTH==138)
71/* iPod Mini - 138x110, 8 cells @ 10x10 with 9 border lines */ 79/* iPod Mini - 138x110, 8 cells @ 10x10 with 9 border lines */
72 80
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index b82e40d275..5543ea8fd6 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -95,7 +95,8 @@
95#define REVERSI_BUTTON_MAKE_MOVE BUTTON_REW 95#define REVERSI_BUTTON_MAKE_MOVE BUTTON_REW
96#define REVERSI_BUTTON_MENU BUTTON_PLAY 96#define REVERSI_BUTTON_MENU BUTTON_PLAY
97 97
98#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 98#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
99(CONFIG_KEYPAD == SANSA_C200_PAD)
99#define REVERSI_BUTTON_QUIT BUTTON_POWER 100#define REVERSI_BUTTON_QUIT BUTTON_POWER
100#define REVERSI_BUTTON_UP BUTTON_UP 101#define REVERSI_BUTTON_UP BUTTON_UP
101#define REVERSI_BUTTON_DOWN BUTTON_DOWN 102#define REVERSI_BUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 8625e35cfb..0b3382ff19 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -121,6 +121,18 @@ PLUGIN_HEADER
121#define ROCKBLOX_DROP BUTTON_SELECT 121#define ROCKBLOX_DROP BUTTON_SELECT
122#define ROCKBLOX_RESTART BUTTON_REC 122#define ROCKBLOX_RESTART BUTTON_REC
123 123
124#elif CONFIG_KEYPAD == SANSA_C200_PAD
125
126#define ROCKBLOX_OFF BUTTON_POWER
127#define ROCKBLOX_ROTATE_RIGHT BUTTON_UP
128#define ROCKBLOX_ROTATE_RIGHT2 BUTTON_VOL_DOWN
129#define ROCKBLOX_ROTATE_LEFT BUTTON_VOL_UP
130#define ROCKBLOX_DOWN BUTTON_DOWN
131#define ROCKBLOX_LEFT BUTTON_LEFT
132#define ROCKBLOX_RIGHT BUTTON_RIGHT
133#define ROCKBLOX_DROP BUTTON_SELECT
134#define ROCKBLOX_RESTART BUTTON_REC
135
124#elif CONFIG_KEYPAD == IRIVER_H10_PAD 136#elif CONFIG_KEYPAD == IRIVER_H10_PAD
125 137
126#define ROCKBLOX_OFF BUTTON_POWER 138#define ROCKBLOX_OFF BUTTON_POWER
@@ -259,6 +271,19 @@ PLUGIN_HEADER
259#define LEVEL_Y 49 271#define LEVEL_Y 49
260#define LINES_Y 82 272#define LINES_Y 82
261 273
274#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
275
276#define BLOCK_WIDTH 4
277#define BLOCK_HEIGHT 4
278#define BOARD_X 10
279#define BOARD_Y 0
280#define PREVIEW_X 89
281#define PREVIEW_Y 61
282#define LABEL_X 78
283#define SCORE_Y 10
284#define LEVEL_Y 30
285#define LINES_Y 50
286
262#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64) 287#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64)
263 288
264#define BLOCK_WIDTH 3 289#define BLOCK_WIDTH 3
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 3038a06bee..41519f66e1 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -82,7 +82,8 @@ PLUGIN_HEADER
82#define ROCKPAINT_LEFT BUTTON_LEFT 82#define ROCKPAINT_LEFT BUTTON_LEFT
83#define ROCKPAINT_RIGHT BUTTON_RIGHT 83#define ROCKPAINT_RIGHT BUTTON_RIGHT
84 84
85#elif CONFIG_KEYPAD == SANSA_E200_PAD 85#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
86(CONFIG_KEYPAD == SANSA_C200_PAD)
86#define ROCKPAINT_QUIT BUTTON_POWER 87#define ROCKPAINT_QUIT BUTTON_POWER
87#define ROCKPAINT_DRAW BUTTON_SELECT 88#define ROCKPAINT_DRAW BUTTON_SELECT
88#define ROCKPAINT_MENU ( BUTTON_SELECT | BUTTON_POWER ) 89#define ROCKPAINT_MENU ( BUTTON_SELECT | BUTTON_POWER )
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index b819f354cc..17a96baf2a 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -77,7 +77,8 @@ PLUGIN_HEADER
77#define PUZZLE_SHUFFLE BUTTON_SELECT 77#define PUZZLE_SHUFFLE BUTTON_SELECT
78#define PUZZLE_PICTURE BUTTON_A 78#define PUZZLE_PICTURE BUTTON_A
79 79
80#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 80#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
81(CONFIG_KEYPAD == SANSA_C200_PAD)
81#define PUZZLE_QUIT BUTTON_POWER 82#define PUZZLE_QUIT BUTTON_POWER
82#define PUZZLE_UP BUTTON_UP 83#define PUZZLE_UP BUTTON_UP
83#define PUZZLE_DOWN BUTTON_DOWN 84#define PUZZLE_DOWN BUTTON_DOWN
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index eeca6bd547..2beeaa4c5b 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -83,7 +83,8 @@ PLUGIN_HEADER
83#define SNAKE_DOWN BUTTON_DOWN 83#define SNAKE_DOWN BUTTON_DOWN
84#define SNAKE_PLAYPAUSE BUTTON_SELECT 84#define SNAKE_PLAYPAUSE BUTTON_SELECT
85 85
86#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 86#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
87(CONFIG_KEYPAD == SANSA_C200_PAD)
87#define SNAKE_QUIT BUTTON_POWER 88#define SNAKE_QUIT BUTTON_POWER
88#define SNAKE_UP BUTTON_UP 89#define SNAKE_UP BUTTON_UP
89#define SNAKE_DOWN BUTTON_DOWN 90#define SNAKE_DOWN BUTTON_DOWN
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 385af159e4..1d13b0523b 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -232,7 +232,8 @@ PLUGIN_HEADER
232#define SNAKE2_PLAYPAUSE BUTTON_SELECT 232#define SNAKE2_PLAYPAUSE BUTTON_SELECT
233#define SNAKE2_PLAYPAUSE_TEXT "Select" 233#define SNAKE2_PLAYPAUSE_TEXT "Select"
234 234
235#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 235#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
236(CONFIG_KEYPAD == SANSA_C200_PAD)
236#define SNAKE2_UP BUTTON_UP 237#define SNAKE2_UP BUTTON_UP
237#define SNAKE2_DOWN BUTTON_DOWN 238#define SNAKE2_DOWN BUTTON_DOWN
238#define SNAKE2_QUIT BUTTON_POWER 239#define SNAKE2_QUIT BUTTON_POWER
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index c815471e11..6078f87708 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -46,7 +46,8 @@ PLUGIN_HEADER
46#define SNOW_QUIT BUTTON_POWER 46#define SNOW_QUIT BUTTON_POWER
47#elif CONFIG_KEYPAD == GIGABEAT_PAD 47#elif CONFIG_KEYPAD == GIGABEAT_PAD
48#define SNOW_QUIT BUTTON_POWER 48#define SNOW_QUIT BUTTON_POWER
49#elif CONFIG_KEYPAD == SANSA_E200_PAD 49#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
50(CONFIG_KEYPAD == SANSA_C200_PAD)
50#define SNOW_QUIT BUTTON_POWER 51#define SNOW_QUIT BUTTON_POWER
51#elif CONFIG_KEYPAD == IRIVER_H10_PAD 52#elif CONFIG_KEYPAD == IRIVER_H10_PAD
52#define SNOW_QUIT BUTTON_POWER 53#define SNOW_QUIT BUTTON_POWER
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 05ff25b721..ae1294cbc5 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -213,6 +213,25 @@ static struct plugin_api* rb;
213# define HK_CUR2STACK "DOUBLE SELECT" 213# define HK_CUR2STACK "DOUBLE SELECT"
214# define HK_REM2STACK "RIGHT" 214# define HK_REM2STACK "RIGHT"
215 215
216#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
217# define SOL_QUIT BUTTON_POWER
218# define SOL_UP BUTTON_UP
219# define SOL_DOWN BUTTON_DOWN
220# define SOL_LEFT BUTTON_LEFT
221# define SOL_RIGHT BUTTON_RIGHT
222# define SOL_MOVE_PRE BUTTON_SELECT
223# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL)
224# define SOL_DRAW BUTTON_VOL_DOWN
225# define SOL_REM2CUR BUTTON_REC
226# define SOL_CUR2STACK_PRE BUTTON_SELECT
227# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT)
228# define SOL_REM2STACK BUTTON_VOL_UP
229# define HK_MOVE "SELECT"
230# define HK_DRAW "REC"
231# define HK_REM2CUR "LEFT"
232# define HK_CUR2STACK "DOUBLE SELECT"
233# define HK_REM2STACK "RIGHT"
234
216#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 235#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
217# define SOL_QUIT BUTTON_POWER 236# define SOL_QUIT BUTTON_POWER
218# define SOL_UP BUTTON_SCROLL_UP 237# define SOL_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 1278a611ce..d98041da39 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -135,6 +135,19 @@ static struct plugin_api* rb; /* global api struct pointer */
135#define AST_FIRE BUTTON_SELECT 135#define AST_FIRE BUTTON_SELECT
136#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT) 136#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
137 137
138#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
139#define AST_PAUSE BUTTON_REC
140#define AST_QUIT BUTTON_POWER
141#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
142#define AST_THRUST BUTTON_UP
143#define AST_HYPERSPACE BUTTON_DOWN
144#define AST_LEFT BUTTON_LEFT
145#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT)
146#define AST_RIGHT BUTTON_RIGHT
147#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
148#define AST_FIRE BUTTON_SELECT
149#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
150
138#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 151#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
139#define AST_PAUSE BUTTON_PLAY 152#define AST_PAUSE BUTTON_PLAY
140#define AST_QUIT BUTTON_POWER 153#define AST_QUIT BUTTON_POWER
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index c9d31a6c9a..1c2501d6a4 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -144,7 +144,8 @@ PLUGIN_HEADER
144#define STAR_LEVEL_REPEAT BUTTON_A 144#define STAR_LEVEL_REPEAT BUTTON_A
145#define STAR_MENU_RUN BUTTON_SELECT 145#define STAR_MENU_RUN BUTTON_SELECT
146 146
147#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 147#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
148(CONFIG_KEYPAD == SANSA_C200_PAD)
148 149
149#define STAR_QUIT BUTTON_POWER 150#define STAR_QUIT BUTTON_POWER
150#define STAR_UP BUTTON_UP 151#define STAR_UP BUTTON_UP
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 278d24fbc7..333fd32fcd 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -57,7 +57,8 @@ static struct plugin_api* rb; /* global api struct pointer */
57#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT 57#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
58#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 58#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
59#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT 59#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
60#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 60#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
61(CONFIG_KEYPAD == SANSA_C200_PAD)
61#define STARFIELD_QUIT BUTTON_POWER 62#define STARFIELD_QUIT BUTTON_POWER
62#define STARFIELD_INCREASE_ZMOVE BUTTON_UP 63#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
63#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN 64#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index a33331a429..03dc9fa038 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -53,7 +53,8 @@ static bool abort;
53#elif CONFIG_KEYPAD == GIGABEAT_PAD 53#elif CONFIG_KEYPAD == GIGABEAT_PAD
54#define STATS_STOP BUTTON_POWER 54#define STATS_STOP BUTTON_POWER
55 55
56#elif CONFIG_KEYPAD == SANSA_E200_PAD 56#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
57(CONFIG_KEYPAD == SANSA_C200_PAD)
57#define STATS_STOP BUTTON_POWER 58#define STATS_STOP BUTTON_POWER
58 59
59#elif CONFIG_KEYPAD == IRIVER_H10_PAD 60#elif CONFIG_KEYPAD == IRIVER_H10_PAD
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 6f18617d2d..d36a774447 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -100,10 +100,11 @@ PLUGIN_HEADER
100#define STOPWATCH_LAP_TIMER BUTTON_MENU 100#define STOPWATCH_LAP_TIMER BUTTON_MENU
101#define STOPWATCH_SCROLL_UP BUTTON_UP 101#define STOPWATCH_SCROLL_UP BUTTON_UP
102#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 102#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
103#elif CONFIG_KEYPAD == SANSA_E200_PAD 103#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
104(CONFIG_KEYPAD == SANSA_C200_PAD)
104#define STOPWATCH_QUIT BUTTON_POWER 105#define STOPWATCH_QUIT BUTTON_POWER
105#define STOPWATCH_START_STOP BUTTON_LEFT 106#define STOPWATCH_START_STOP BUTTON_RIGHT
106#define STOPWATCH_RESET_TIMER BUTTON_REC 107#define STOPWATCH_RESET_TIMER BUTTON_LEFT
107#define STOPWATCH_LAP_TIMER BUTTON_SELECT 108#define STOPWATCH_LAP_TIMER BUTTON_SELECT
108#define STOPWATCH_SCROLL_UP BUTTON_UP 109#define STOPWATCH_SCROLL_UP BUTTON_UP
109#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 110#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
diff --git a/apps/plugins/sudoku/sudoku.c b/apps/plugins/sudoku/sudoku.c
index 9485f2de23..1d548ace6d 100644
--- a/apps/plugins/sudoku/sudoku.c
+++ b/apps/plugins/sudoku/sudoku.c
@@ -108,6 +108,14 @@ static const char default_game[9][9] =
108#define CELL_HEIGHT 6 108#define CELL_HEIGHT 6
109#define SMALL_BOARD 109#define SMALL_BOARD
110 110
111#elif ((LCD_HEIGHT==80) && (LCD_WIDTH==132))
112/* C200, 9 cells @ 8x8 with 8 border lines */
113
114/* Internal dimensions of a cell */
115#define CELL_WIDTH 8
116#define CELL_HEIGHT 8
117#define SMALL_BOARD
118
111#elif (LCD_HEIGHT==110) && (LCD_WIDTH==138) 119#elif (LCD_HEIGHT==110) && (LCD_WIDTH==138)
112/* iPod Mini - 138x110, 9 cells @ 10x10 with 14 border lines */ 120/* iPod Mini - 138x110, 9 cells @ 10x10 with 14 border lines */
113 121
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index d41c0b879d..f888bd7090 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -122,6 +122,20 @@
122#define SUDOKU_BUTTON_MENU BUTTON_SELECT 122#define SUDOKU_BUTTON_MENU BUTTON_SELECT
123#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC 123#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC
124 124
125#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
126#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
127#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
128#define SUDOKU_BUTTON_UP BUTTON_UP
129#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
130#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
131#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
132#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN
133#define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP
134#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_SELECT
135#define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER
136#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
137#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC
138
125#elif 139#elif
126 #error SUDOKU: Unsupported keypad 140 #error SUDOKU: Unsupported keypad
127#endif 141#endif
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 055ace08c5..7f87b7caa2 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -184,6 +184,18 @@ PLUGIN_HEADER
184#define VIEWER_LINE_UP BUTTON_SCROLL_UP 184#define VIEWER_LINE_UP BUTTON_SCROLL_UP
185#define VIEWER_LINE_DOWN BUTTON_SCROLL_DOWN 185#define VIEWER_LINE_DOWN BUTTON_SCROLL_DOWN
186 186
187/* Sansa C200 keys */
188#elif CONFIG_KEYPAD == SANSA_C200_PAD
189#define VIEWER_QUIT BUTTON_POWER
190#define VIEWER_PAGE_UP BUTTON_VOL_UP
191#define VIEWER_PAGE_DOWN BUTTON_VOL_DOWN
192#define VIEWER_SCREEN_LEFT BUTTON_LEFT
193#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
194#define VIEWER_MENU BUTTON_SELECT
195#define VIEWER_AUTOSCROLL BUTTON_REC
196#define VIEWER_LINE_UP BUTTON_UP
197#define VIEWER_LINE_DOWN BUTTON_DOWN
198
187/* iriver H10 keys */ 199/* iriver H10 keys */
188#elif CONFIG_KEYPAD == IRIVER_H10_PAD 200#elif CONFIG_KEYPAD == IRIVER_H10_PAD
189#define VIEWER_QUIT BUTTON_POWER 201#define VIEWER_QUIT BUTTON_POWER
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index f054a5946e..9175e1d4d3 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -94,6 +94,15 @@ PLUGIN_HEADER
94#define VUMETER_UP BUTTON_SCROLL_DOWN 94#define VUMETER_UP BUTTON_SCROLL_DOWN
95#define VUMETER_DOWN BUTTON_SCROLL_UP 95#define VUMETER_DOWN BUTTON_SCROLL_UP
96 96
97#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
98#define VUMETER_QUIT BUTTON_POWER
99#define VUMETER_HELP BUTTON_REC
100#define VUMETER_MENU BUTTON_SELECT
101#define VUMETER_MENU_EXIT BUTTON_SELECT
102#define VUMETER_MENU_EXIT2 BUTTON_POWER
103#define VUMETER_UP BUTTON_VOL_UP
104#define VUMETER_DOWN BUTTON_VOL_DOWN
105
97#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 106#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
98#define VUMETER_QUIT BUTTON_POWER 107#define VUMETER_QUIT BUTTON_POWER
99#define VUMETER_HELP BUTTON_PLAY 108#define VUMETER_HELP BUTTON_PLAY
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 1c78f33ad0..c05918e9b4 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -148,7 +148,8 @@ PLUGIN_HEADER
148#define WORMS_TEXT "Left/Right" 148#define WORMS_TEXT "Left/Right"
149 149
150 150
151#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 151#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
152(CONFIG_KEYPAD == SANSA_C200_PAD)
152 153
153#define BTN_DIR_UP BUTTON_UP 154#define BTN_DIR_UP BUTTON_UP
154#define BTN_DIR_DOWN BUTTON_DOWN 155#define BTN_DIR_DOWN BUTTON_DOWN
@@ -182,6 +183,11 @@ PLUGIN_HEADER
182#define ARGH_SIZE 4 183#define ARGH_SIZE 4
183#define SPEED 14 184#define SPEED 14
184#define MAX_WORM_SEGMENTS 128 185#define MAX_WORM_SEGMENTS 128
186#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
187#define FOOD_SIZE 3
188#define ARGH_SIZE 4
189#define SPEED 14
190#define MAX_WORM_SEGMENTS 128
185#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) 191#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
186#define FOOD_SIZE 4 192#define FOOD_SIZE 4
187#define ARGH_SIZE 5 193#define ARGH_SIZE 5
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index c91e20aedd..f51e98ecff 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -74,7 +74,8 @@ PLUGIN_HEADER
74#define DOWN BUTTON_DOWN 74#define DOWN BUTTON_DOWN
75#define PAUSE BUTTON_A 75#define PAUSE BUTTON_A
76 76
77#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 77#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
78(CONFIG_KEYPAD == SANSA_C200_PAD)
78 79
79#define QUIT BUTTON_POWER 80#define QUIT BUTTON_POWER
80#define LEFT BUTTON_LEFT 81#define LEFT BUTTON_LEFT
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 603869d454..6af84719ff 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -77,7 +77,8 @@
77#define ZX_UP BUTTON_SCROLL_UP 77#define ZX_UP BUTTON_SCROLL_UP
78#define ZX_DOWN BUTTON_SCROLL_DOWN 78#define ZX_DOWN BUTTON_SCROLL_DOWN
79 79
80#elif CONFIG_KEYPAD == SANSA_E200_PAD 80#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
81(CONFIG_KEYPAD == SANSA_C200_PAD)
81#define ZX_SELECT BUTTON_SELECT 82#define ZX_SELECT BUTTON_SELECT
82#define ZX_MENU BUTTON_POWER 83#define ZX_MENU BUTTON_POWER
83#define ZX_LEFT BUTTON_LEFT 84#define ZX_LEFT BUTTON_LEFT
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 5bea491a51..2b1d171c11 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -101,7 +101,8 @@
101#define KBD_UP BUTTON_SCROLL_UP 101#define KBD_UP BUTTON_SCROLL_UP
102#define KBD_DOWN BUTTON_SCROLL_DOWN 102#define KBD_DOWN BUTTON_SCROLL_DOWN
103 103
104#elif CONFIG_KEYPAD == SANSA_E200_PAD 104#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
105(CONFIG_KEYPAD == SANSA_C200_PAD)
105 106
106/* TODO: Check keyboard mappings */ 107/* TODO: Check keyboard mappings */
107 108