summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Wardell <rockbox@barrywardell.net>2006-10-26 13:38:09 +0000
committerBarry Wardell <rockbox@barrywardell.net>2006-10-26 13:38:09 +0000
commit24f4a2a8cfd561657ce25ebf93470716f07397fe (patch)
treef411d86cb56bd128fe0206d148005f0a882f686a
parent34193e5cf23e7d739c2ccda0ed82e77492578cef (diff)
downloadrockbox-24f4a2a8cfd561657ce25ebf93470716f07397fe.tar.gz
rockbox-24f4a2a8cfd561657ce25ebf93470716f07397fe.zip
Allow the Sansa e200 UI simulator to be built. Thanks to Andre Smith for the nice image of the Sansa. Lots more to be done including testing and tweaking the keymaps and modifying the plugins for the Sansa's 176x220 LCD.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11351 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/keymaps/keymap-e200.c252
-rw-r--r--apps/plugins/SOURCES14
-rw-r--r--apps/plugins/battery_bench.c4
-rw-r--r--apps/plugins/bounce.c6
-rw-r--r--apps/plugins/brickmania.c9
-rwxr-xr-xapps/plugins/bubbles.c10
-rw-r--r--apps/plugins/calculator.c9
-rw-r--r--apps/plugins/chessbox/chessbox.c11
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c8
-rw-r--r--apps/plugins/clock.c20
-rw-r--r--apps/plugins/cube.c14
-rw-r--r--apps/plugins/databox/databox.c3
-rw-r--r--apps/plugins/demystify.c6
-rw-r--r--apps/plugins/dice.c9
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/disktidy.c9
-rw-r--r--apps/plugins/doom/i_video.c15
-rw-r--r--apps/plugins/fire.c7
-rw-r--r--apps/plugins/flipit.c10
-rw-r--r--apps/plugins/jewels.c8
-rw-r--r--apps/plugins/jpeg.c12
-rw-r--r--apps/plugins/logo.c8
-rw-r--r--apps/plugins/mandelbrot.c12
-rw-r--r--apps/plugins/metronome.c9
-rw-r--r--apps/plugins/midiplay.c7
-rw-r--r--apps/plugins/minesweeper.c13
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/mp3_encoder.c5
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c5
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/pacbox/pacbox.h11
-rw-r--r--apps/plugins/plasma.c8
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/random_folder_advance_config.c2
-rw-r--r--apps/plugins/rockblox.c11
-rw-r--r--apps/plugins/rockpaint.c11
-rw-r--r--apps/plugins/sliding_puzzle.c7
-rw-r--r--apps/plugins/snake.c6
-rw-r--r--apps/plugins/snake2.c12
-rw-r--r--apps/plugins/snow.c2
-rw-r--r--apps/plugins/sokoban.c10
-rw-r--r--apps/plugins/solitaire.c21
-rwxr-xr-xapps/plugins/spacerocks.c13
-rw-r--r--apps/plugins/star.c13
-rw-r--r--apps/plugins/starfield.c7
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c7
-rw-r--r--apps/plugins/sudoku/SOURCES2
-rw-r--r--apps/plugins/sudoku/sudoku.c3
-rw-r--r--apps/plugins/sudoku/sudoku.h10
-rw-r--r--apps/plugins/viewer.c10
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c15
-rw-r--r--apps/plugins/xobox.c11
-rw-r--r--apps/plugins/zxbox/keymaps.h8
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c11
-rw-r--r--docs/CREDITS1
-rw-r--r--firmware/SOURCES2
-rw-r--r--uisimulator/sdl/UI-e200.bmpbin0 -> 522133 bytes
-rw-r--r--uisimulator/sdl/button.c12
-rw-r--r--uisimulator/sdl/uisdl.h10
63 files changed, 772 insertions, 11 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index 570ec6e24a..e1d8e7bbdd 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -107,4 +107,6 @@ keymaps/keymap-gigabeat.c
107keymaps/keymap-h10.c 107keymaps/keymap-h10.c
108#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 108#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
109keymaps/keymap-ifp7xx.c 109keymaps/keymap-ifp7xx.c
110#elif CONFIG_KEYPAD == SANSA_E200_PAD
111keymaps/keymap-e200.c
110#endif 112#endif
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c
new file mode 100644
index 0000000000..1c90e46592
--- /dev/null
+++ b/apps/keymaps/keymap-e200.c
@@ -0,0 +1,252 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) Barry Wardell 2006
10 *
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19/* Button Code Definitions for iriver H10 target */
20
21#include "config.h"
22#include "action.h"
23#include "button.h"
24#include "settings.h"
25
26/* {Action Code, Button code, Prereq button code } */
27
28/*
29 * The format of the list is as follows
30 * { Action Code, Button code, Prereq button code }
31 * if there's no need to check the previous button's value, use BUTTON_NONE
32 * Insert LAST_ITEM_IN_LIST at the end of each mapping
33 */
34const struct button_mapping button_context_standard[] = {
35 { ACTION_STD_PREV, BUTTON_SCROLL_UP, BUTTON_NONE },
36 { ACTION_STD_PREVREPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
37 { ACTION_STD_NEXT, BUTTON_SCROLL_DOWN, BUTTON_NONE },
38 { ACTION_STD_NEXTREPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
39
40 { ACTION_STD_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
41 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
42 { ACTION_STD_CONTEXT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
43 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
44 { ACTION_STD_QUICKSCREEN, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
45
46 /* TODO: this is a bit of a hack so that we can exit some debug screens
47 * (audio, tagcache, dircache, hwinfo, stack, ports). They don't like it
48 * when ACTION_STD_CANCEL has anything other than BUTTON_NONE for prereq.
49 */
50 { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE },
51
52 LAST_ITEM_IN_LIST
53}; /* button_context_standard */
54
55const struct button_mapping button_context_wps[] = {
56 { ACTION_WPS_PLAY, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
57 { ACTION_WPS_STOP, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT },
58 { ACTION_WPS_SKIPPREV, BUTTON_UP|BUTTON_REL, BUTTON_UP},
59 { ACTION_WPS_SEEKBACK, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
60 { ACTION_WPS_STOPSEEK, BUTTON_UP|BUTTON_REL, BUTTON_UP|BUTTON_REPEAT },
61 { ACTION_WPS_SKIPNEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
62 { ACTION_WPS_SEEKFWD, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
63 { ACTION_WPS_STOPSEEK, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN|BUTTON_REPEAT },
64
65 { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_POWER|BUTTON_DOWN, BUTTON_POWER },
66 { ACTION_WPS_ABSETA_PREVDIR, BUTTON_POWER|BUTTON_UP, BUTTON_POWER },
67 { ACTION_WPSAB_RESET, BUTTON_POWER|BUTTON_SELECT, BUTTON_POWER },
68
69 { ACTION_WPS_VOLDOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE },
70 { ACTION_WPS_VOLDOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT,BUTTON_NONE },
71 { ACTION_WPS_VOLUP, BUTTON_SCROLL_UP, BUTTON_NONE },
72 { ACTION_WPS_VOLUP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
73
74 { ACTION_WPS_BROWSE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
75 { ACTION_WPS_CONTEXT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
76 { ACTION_WPS_QUICKSCREEN, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
77 { ACTION_WPS_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
78 { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_LEFT, BUTTON_SELECT },
79 { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_SELECT },
80
81 LAST_ITEM_IN_LIST
82}; /* button_context_wps */
83
84const struct button_mapping button_context_settings[] = {
85 { ACTION_SETTINGS_INC, BUTTON_SCROLL_UP, BUTTON_NONE },
86 { ACTION_SETTINGS_INCREPEAT,BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
87 { ACTION_SETTINGS_DEC, BUTTON_SCROLL_DOWN, BUTTON_NONE },
88 { ACTION_SETTINGS_DECREPEAT,BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
89 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
90 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
91 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
92 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
93 { ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE },
94
95 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
96}; /* button_context_settings */
97
98const struct button_mapping button_context_list[] = {
99 { ACTION_LISTTREE_PGUP, BUTTON_UP|BUTTON_REL, BUTTON_UP },
100 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
101
102 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
103}; /* button_context_list */
104
105const struct button_mapping button_context_tree[] = {
106 { ACTION_TREE_WPS, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
107 { ACTION_TREE_STOP, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
108
109 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
110}; /* button_context_tree */
111
112const struct button_mapping button_context_listtree_scroll_without_combo[] = {
113 { ACTION_TREE_ROOT_INIT, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
114 { ACTION_TREE_PGLEFT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
115 { ACTION_TREE_PGRIGHT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
116 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
117}; /* button_context_listtree_scroll_without_combo */
118
119const struct button_mapping button_context_listtree_scroll_with_combo[] = {
120 { ACTION_LISTTREE_PGUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
121 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
122 { ACTION_TREE_PGLEFT, BUTTON_UP|BUTTON_SELECT, BUTTON_SELECT },
123 { ACTION_TREE_PGLEFT, BUTTON_UP|BUTTON_REL, BUTTON_UP|BUTTON_SELECT },
124 { ACTION_TREE_PGLEFT, BUTTON_UP|BUTTON_SELECT, BUTTON_UP|BUTTON_REL },
125 { ACTION_TREE_ROOT_INIT, BUTTON_UP|BUTTON_SELECT|BUTTON_REPEAT, BUTTON_UP|BUTTON_SELECT },
126 { ACTION_TREE_PGLEFT, BUTTON_UP|BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
127 { ACTION_TREE_PGRIGHT, BUTTON_DOWN|BUTTON_SELECT, BUTTON_SELECT },
128 { ACTION_TREE_PGRIGHT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN|BUTTON_SELECT },
129 { ACTION_TREE_PGRIGHT, BUTTON_DOWN|BUTTON_SELECT, BUTTON_DOWN|BUTTON_REL },
130 { ACTION_TREE_PGRIGHT, BUTTON_DOWN|BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
131 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
132}; /* button_context_listtree_scroll_with_combo */
133
134const struct button_mapping button_context_yesno[] = {
135 { ACTION_YESNO_ACCEPT, BUTTON_RIGHT, BUTTON_NONE },
136 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
137}; /* button_context_settings_yesno */
138
139const struct button_mapping button_context_quickscreen[] = {
140 { ACTION_QS_DOWNINV, BUTTON_SCROLL_UP, BUTTON_NONE },
141 { ACTION_QS_DOWNINV, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
142 { ACTION_QS_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE },
143 { ACTION_QS_DOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
144 { ACTION_QS_LEFT, BUTTON_UP, BUTTON_NONE },
145 { ACTION_QS_LEFT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
146 { ACTION_QS_RIGHT, BUTTON_DOWN, BUTTON_NONE },
147 { ACTION_QS_RIGHT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
148
149 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
150}; /* button_context_quickscreen */
151
152const struct button_mapping button_context_settings_right_is_inc[] = {
153 { ACTION_SETTINGS_INC, BUTTON_SCROLL_UP, BUTTON_NONE },
154 { ACTION_SETTINGS_INCREPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
155 { ACTION_SETTINGS_DEC, BUTTON_SCROLL_DOWN, BUTTON_NONE },
156 { ACTION_SETTINGS_DECREPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT,BUTTON_NONE },
157 { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
158 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
159 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
160 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
161 { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
162 { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
163 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
164 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
165
166 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
167}; /* button_context_settings_right_is_inc */
168
169const struct button_mapping button_context_pitchscreen[] = {
170 { ACTION_PS_INC_SMALL, BUTTON_SCROLL_UP, BUTTON_NONE },
171 { ACTION_PS_INC_BIG, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
172 { ACTION_PS_DEC_SMALL, BUTTON_SCROLL_DOWN, BUTTON_NONE },
173 { ACTION_PS_DEC_BIG, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
174 { ACTION_PS_NUDGE_LEFT, BUTTON_UP, BUTTON_NONE },
175 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
176 { ACTION_PS_NUDGE_RIGHT, BUTTON_DOWN, BUTTON_NONE },
177 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
178 { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE },
179 { ACTION_PS_EXIT, BUTTON_LEFT, BUTTON_NONE },
180
181 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
182}; /* button_context_pitchscreen */
183
184const struct button_mapping button_context_keyboard[] = {
185 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
186 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
187 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
188 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
189 { ACTION_KBD_SELECT, BUTTON_UP|BUTTON_REL, BUTTON_UP },
190 { ACTION_KBD_DONE, BUTTON_SELECT, BUTTON_NONE },
191 { ACTION_KBD_ABORT, BUTTON_DOWN, BUTTON_NONE },
192 { ACTION_KBD_UP, BUTTON_SCROLL_UP, BUTTON_NONE },
193 { ACTION_KBD_UP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
194 { ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE },
195 { ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
196
197 LAST_ITEM_IN_LIST
198}; /* button_context_keyboard */
199
200const struct button_mapping button_context_bmark[] = {
201 { ACTION_BMS_DELETE, BUTTON_UP, BUTTON_NONE },
202 { ACTION_BMS_SELECT, BUTTON_RIGHT, BUTTON_NONE },
203 { ACTION_BMS_EXIT, BUTTON_LEFT, BUTTON_NONE },
204 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
205}; /* button_context_bmark */
206
207/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
208const struct button_mapping* get_context_mapping(int context)
209{
210 switch (context)
211 {
212 case CONTEXT_STD:
213 case CONTEXT_MAINMENU:
214 return button_context_standard;
215
216 case CONTEXT_WPS:
217 return button_context_wps;
218
219 case CONTEXT_LIST:
220 return button_context_list;
221 case CONTEXT_TREE:
222 if (global_settings.hold_lr_for_scroll_in_list)
223 return button_context_listtree_scroll_without_combo;
224 else
225 return button_context_listtree_scroll_with_combo;
226 case CONTEXT_CUSTOM|CONTEXT_TREE:
227 return button_context_tree;
228
229 case CONTEXT_SETTINGS:
230 return button_context_settings;
231 case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
232 case CONTEXT_SETTINGS_COLOURCHOOSER:
233 case CONTEXT_SETTINGS_EQ:
234 case CONTEXT_SETTINGS_TIME:
235 return button_context_settings_right_is_inc;
236
237 case CONTEXT_YESNOSCREEN:
238 return button_context_yesno;
239 case CONTEXT_BOOKMARKSCREEN:
240 return button_context_bmark;
241 case CONTEXT_QUICKSCREEN:
242 return button_context_quickscreen;
243 case CONTEXT_PITCHSCREEN:
244 return button_context_pitchscreen;
245 case CONTEXT_KEYBOARD:
246 return button_context_keyboard;
247
248 default:
249 return button_context_standard;
250 }
251 return button_context_standard;
252}
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index dbad16ae2d..edc8f9f9c2 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -10,7 +10,7 @@ logo.c
10metronome.c 10metronome.c
11mosaique.c 11mosaique.c
12random_folder_advance_config.c 12random_folder_advance_config.c
13#if (LCD_WIDTH != 240) && ((LCD_WIDTH != 128) || (LCD_HEIGHT != 64)) 13#if (LCD_WIDTH != 240) && ((LCD_WIDTH != 128) || (LCD_HEIGHT != 64)) && !defined(SANSA_E200)
14rockblox.c 14rockblox.c
15#endif 15#endif
16rockbox_flash.c 16rockbox_flash.c
@@ -41,16 +41,20 @@ mandelbrot.c
41plasma.c 41plasma.c
42 42
43bounce.c 43bounce.c
44#ifndef SANSA_E200
44bubbles.c 45bubbles.c
46#endif
45 47
46#if LCD_WIDTH != 128 48#if LCD_WIDTH != 128 && !defined(SANSA_E200)
47/* These need adjusting for the iRiver if'p screen */ 49/* These need adjusting for the iRiver if'p screen */
48brickmania.c 50brickmania.c
49#endif 51#endif
50calculator.c 52calculator.c
51chip8.c 53chip8.c
52demystify.c 54demystify.c
55#ifndef SANSA_E200
53jewels.c 56jewels.c
57#endif
54minesweeper.c 58minesweeper.c
55oscilloscope.c 59oscilloscope.c
56pong.c 60pong.c
@@ -65,7 +69,7 @@ starfield.c
65video.c 69video.c
66#endif 70#endif
67vu_meter.c 71vu_meter.c
68#ifndef IRIVER_H10_5GB 72#if !defined(IRIVER_H10_5GB) && !defined(SANSA_E200)
69wormlet.c 73wormlet.c
70#endif 74#endif
71 75
@@ -87,9 +91,9 @@ rockboy.c
87#if (LCD_WIDTH > 112) && (LCD_HEIGHT > 64) 91#if (LCD_WIDTH > 112) && (LCD_HEIGHT > 64)
88xobox.c 92xobox.c
89#endif 93#endif
90 94#if !defined(SANSA_E200)
91spacerocks.c 95spacerocks.c
92 96#endif
93#if LCD_DEPTH >= 16 97#if LCD_DEPTH >= 16
94rockpaint.c 98rockpaint.c
95#endif 99#endif
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 3c56f84309..75d5cbcabd 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -77,6 +77,10 @@ PLUGIN_HEADER
77#define BATTERY_ON BUTTON_SELECT 77#define BATTERY_ON BUTTON_SELECT
78#define BATTERY_OFF BUTTON_PLAY 78#define BATTERY_OFF BUTTON_PLAY
79 79
80#elif CONFIG_KEYPAD == SANSA_E200_PAD
81#define BATTERY_ON BUTTON_SELECT
82#define BATTERY_OFF BUTTON_POWER
83
80#elif CONFIG_KEYPAD == IRIVER_H10_PAD 84#elif CONFIG_KEYPAD == IRIVER_H10_PAD
81 85
82#define BATTERY_ON BUTTON_PLAY 86#define BATTERY_ON BUTTON_PLAY
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 151a61b07b..002c913d77 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -73,6 +73,12 @@ PLUGIN_HEADER
73#define BOUNCE_QUIT BUTTON_A 73#define BOUNCE_QUIT BUTTON_A
74#define BOUNCE_MODE BUTTON_POWER 74#define BOUNCE_MODE BUTTON_POWER
75 75
76#elif CONFIG_KEYPAD == SANSA_E200_PAD
77#define BOUNCE_UP BUTTON_SCROLL_UP
78#define BOUNCE_DOWN BUTTON_SCROLL_DOWN
79#define BOUNCE_QUIT BUTTON_POWER
80#define BOUNCE_MODE BUTTON_SELECT
81
76#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 82#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
77#define BOUNCE_UP BUTTON_SCROLL_UP 83#define BOUNCE_UP BUTTON_SCROLL_UP
78#define BOUNCE_DOWN BUTTON_SCROLL_DOWN 84#define BOUNCE_DOWN BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 106a0f9bf6..1b6de1c180 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -102,6 +102,15 @@ PLUGIN_HEADER
102#define SCROLL_FWD(x) (0) 102#define SCROLL_FWD(x) (0)
103#define SCROLL_BACK(x) (0) 103#define SCROLL_BACK(x) (0)
104 104
105#elif CONFIG_KEYPAD == SANSA_E200_PAD
106
107#define QUIT BUTTON_POWER
108#define LEFT BUTTON_LEFT
109#define RIGHT BUTTON_RIGHT
110#define SELECT BUTTON_SELECT
111#define UP BUTTON_SCROLL_UP
112#define DOWN BUTTON_SCROLL_DOWN
113
105#elif CONFIG_KEYPAD == IRIVER_H10_PAD /* grayscale at the moment */ 114#elif CONFIG_KEYPAD == IRIVER_H10_PAD /* grayscale at the moment */
106 115
107#define QUIT BUTTON_POWER 116#define QUIT BUTTON_POWER
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c
index ae06c1e2a4..2afbaba011 100755
--- a/apps/plugins/bubbles.c
+++ b/apps/plugins/bubbles.c
@@ -116,6 +116,16 @@ PLUGIN_HEADER
116#define BUBBLES_SELECT BUTTON_UP 116#define BUBBLES_SELECT BUTTON_UP
117#define BUBBLES_RESUME BUTTON_DOWN 117#define BUBBLES_RESUME BUTTON_DOWN
118 118
119#elif CONFIG_KEYPAD == SANSA_E200_PAD
120#define BUBBLES_LEFT BUTTON_LEFT
121#define BUBBLES_RIGHT BUTTON_RIGHT
122#define BUBBLES_UP BUTTON_SCROLL_UP
123#define BUBBLES_DOWN BUTTON_SCROLL_DOWN
124#define BUBBLES_QUIT BUTTON_POWER
125#define BUBBLES_START BUTTON_PLAY
126#define BUBBLES_SELECT BUTTON_SELECT
127#define BUBBLES_RESUME BUTTON_DOWN
128
119#elif CONFIG_KEYPAD == IRIVER_H10_PAD 129#elif CONFIG_KEYPAD == IRIVER_H10_PAD
120#define BUBBLES_LEFT BUTTON_LEFT 130#define BUBBLES_LEFT BUTTON_LEFT
121#define BUBBLES_RIGHT BUTTON_RIGHT 131#define BUBBLES_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 99404765bb..608af85938 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -166,6 +166,15 @@ PLUGIN_HEADER
166#define CALCULATOR_CALC BUTTON_SELECT 166#define CALCULATOR_CALC BUTTON_SELECT
167#define CALCULATOR_CLEAR BUTTON_POWER 167#define CALCULATOR_CLEAR BUTTON_POWER
168 168
169#elif CONFIG_KEYPAD == SANSA_E200_PAD
170#define CALCULATOR_UP BUTTON_UP
171#define CALCULATOR_DOWN BUTTON_DOWN
172#define CALCULATOR_QUIT BUTTON_POWER
173#define CALCULATOR_INPUT_CALC_PRE BUTTON_SELECT
174#define CALCULATOR_INPUT (BUTTON_SELECT|BUTTON_REL)
175#define CALCULATOR_CALC BUTTON_SELECT
176#define CALCULATOR_CLEAR BUTTON_REC
177
169#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 178#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
170 179
171#define CALCULATOR_UP BUTTON_SCROLL_UP 180#define CALCULATOR_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index aea89817e6..fdab570bc2 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -130,6 +130,17 @@ PLUGIN_HEADER
130#define CB_RESTART (BUTTON_REW | BUTTON_PLAY) 130#define CB_RESTART (BUTTON_REW | BUTTON_PLAY)
131#define CB_QUIT BUTTON_POWER 131#define CB_QUIT BUTTON_POWER
132 132
133#elif CONFIG_KEYPAD == SANSA_E200_PAD
134#define CB_SELECT BUTTON_SELECT
135#define CB_UP BUTTON_UP
136#define CB_DOWN BUTTON_DOWN
137#define CB_LEFT BUTTON_LEFT
138#define CB_RIGHT BUTTON_RIGHT
139#define CB_PLAY (BUTTON_SELECT | BUTTON_RIGHT)
140#define CB_LEVEL BUTTON_REC
141#define CB_RESTART (BUTTON_SELECT | BUTTON_REPEAT)
142#define CB_QUIT BUTTON_POWER
143
133#else 144#else
134 #error CHESSBOX: Unsupported keypad 145 #error CHESSBOX: Unsupported keypad
135#endif 146#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 2e2ad4cb7e..c0da728446 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -107,6 +107,16 @@ PLUGIN_HEADER
107#define CHC_SETTINGS_OK BUTTON_MENU 107#define CHC_SETTINGS_OK BUTTON_MENU
108#define CHC_SETTINGS_CANCEL BUTTON_A 108#define CHC_SETTINGS_CANCEL BUTTON_A
109 109
110#elif CONFIG_KEYPAD == SANSA_E200_PAD
111#define CHC_QUIT BUTTON_POWER
112#define CHC_STARTSTOP BUTTON_SELECT
113#define CHC_RESET BUTTON_DOWN
114#define CHC_MENU BUTTON_UP
115#define CHC_SETTINGS_INC BUTTON_RIGHT
116#define CHC_SETTINGS_DEC BUTTON_LEFT
117#define CHC_SETTINGS_OK BUTTON_SELECT
118#define CHC_SETTINGS_CANCEL BUTTON_POWER
119
110#elif CONFIG_KEYPAD == IRIVER_H10_PAD 120#elif CONFIG_KEYPAD == IRIVER_H10_PAD
111#define CHC_QUIT BUTTON_POWER 121#define CHC_QUIT BUTTON_POWER
112#define CHC_STARTSTOP BUTTON_PLAY 122#define CHC_STARTSTOP BUTTON_PLAY
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 09dcad5fd0..6c6c9f44b6 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1003,6 +1003,14 @@ STATIC void chip8 (void)
1003#define CHIP8_KEY6 BUTTON_RIGHT 1003#define CHIP8_KEY6 BUTTON_RIGHT
1004#define CHIP8_KEY8 BUTTON_DOWN 1004#define CHIP8_KEY8 BUTTON_DOWN
1005 1005
1006#elif CONFIG_KEYPAD == SANSA_E200_PAD
1007#define CHIP8_OFF BUTTON_POWER
1008#define CHIP8_KEY2 BUTTON_SCROLL_UP
1009#define CHIP8_KEY4 BUTTON_LEFT
1010#define CHIP8_KEY5 BUTTON_SELECT
1011#define CHIP8_KEY6 BUTTON_RIGHT
1012#define CHIP8_KEY8 BUTTON_SCROLL_DOWN
1013
1006#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 1014#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
1007#define CHIP8_OFF BUTTON_POWER 1015#define CHIP8_OFF BUTTON_POWER
1008#define CHIP8_KEY2 BUTTON_SCROLL_UP 1016#define CHIP8_KEY2 BUTTON_SCROLL_UP
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c
index ff07e44e0c..2bf6a59da3 100644
--- a/apps/plugins/clock.c
+++ b/apps/plugins/clock.c
@@ -182,6 +182,26 @@ PLUGIN_HEADER
182#define MENU_BUTTON_TEXT "SELECT" 182#define MENU_BUTTON_TEXT "SELECT"
183#define COUNTER_BUTTON_TEXT "PLAY" 183#define COUNTER_BUTTON_TEXT "PLAY"
184 184
185#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
186
187#define COUNTER_TOGGLE_BUTTON BUTTON_UP
188#define COUNTER_RESET_BUTTON BUTTON_DOWN
189#define MENU_BUTTON BUTTON_SELECT
190#define EXIT_BUTTON BUTTON_POWER
191#define MOVE_UP_BUTTON BUTTON_SCROLL_UP
192#define MOVE_DOWN_BUTTON BUTTON_SCROLL_DOWN
193#define CHANGE_UP_BUTTON BUTTON_RIGHT
194#define CHANGE_DOWN_BUTTON BUTTON_LEFT
195
196#define YESTEXT "Select"
197#define NAVI_BUTTON_TEXT_LEFT "LEFT"
198#define NAVI_BUTTON_TEXT_RIGHT "RIGHT"
199#define EXIT_BUTTON_TEXT "POWER"
200#define MENU_BUTTON_TEXT "PLAY"
201#define COUNTER_BUTTON_TEXT "PLAY"
202
203
204
185#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 205#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
186 206
187#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL) 207#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL)
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 38b0233b86..1dd981bb56 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -135,6 +135,20 @@ PLUGIN_HEADER
135#define CUBE_PAUSE (BUTTON_SELECT | BUTTON_REL) 135#define CUBE_PAUSE (BUTTON_SELECT | BUTTON_REL)
136#define CUBE_HIGHSPEED (BUTTON_POWER | BUTTON_REL) 136#define CUBE_HIGHSPEED (BUTTON_POWER | BUTTON_REL)
137 137
138#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
139#define CUBE_QUIT BUTTON_POWER
140#define CUBE_X_INC BUTTON_LEFT
141#define CUBE_X_DEC BUTTON_RIGHT
142#define CUBE_Y_INC BUTTON_SCROLL_UP
143#define CUBE_Y_DEC BUTTON_SCROLL_DOWN
144#define CUBE_Z_INC BUTTON_UP
145#define CUBE_Z_DEC BUTTON_DOWN
146#define CUBE_MODE_PRE BUTTON_SELECT
147#define CUBE_MODE (BUTTON_SELECT|BUTTON_REPEAT)
148#define CUBE_PAUSE_PRE BUTTON_SELECT
149#define CUBE_PAUSE (BUTTON_SELECT|BUTTON_REL)
150#define CUBE_HIGHSPEED BUTTON_REC
151
138#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 152#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
139#define CUBE_QUIT BUTTON_POWER 153#define CUBE_QUIT BUTTON_POWER
140#define CUBE_X_INC BUTTON_LEFT 154#define CUBE_X_INC BUTTON_LEFT
diff --git a/apps/plugins/databox/databox.c b/apps/plugins/databox/databox.c
index 194ad66b51..25836a7f07 100644
--- a/apps/plugins/databox/databox.c
+++ b/apps/plugins/databox/databox.c
@@ -50,6 +50,9 @@ PLUGIN_HEADER
50#elif CONFIG_KEYPAD == IRIVER_H10_PAD 50#elif CONFIG_KEYPAD == IRIVER_H10_PAD
51#define DBX_SELECT BUTTON_REW 51#define DBX_SELECT BUTTON_REW
52#define DBX_STOP BUTTON_PLAY 52#define DBX_STOP BUTTON_PLAY
53#elif CONFIG_KEYPAD == SANSA_E200_PAD
54#define DBX_SELECT BUTTON_SELECT
55#define DBX_STOP BUTTON_POWER
53#endif 56#endif
54 57
55#define MAX_TOKENS 70 58#define MAX_TOKENS 70
diff --git a/apps/plugins/demystify.c b/apps/plugins/demystify.c
index da3edeeb1b..55897441f9 100644
--- a/apps/plugins/demystify.c
+++ b/apps/plugins/demystify.c
@@ -33,6 +33,12 @@ PLUGIN_HEADER
33#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT 33#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT
34#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_FWD 34#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_FWD
35#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_BACK 35#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_BACK
36#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
37#define DEMYSTIFY_QUIT BUTTON_POWER
38#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT
39#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT
40#define DEMYSTIFY_INCREASE_SPEED BUTTON_SCROLL_UP
41#define DEMYSTIFY_DECREASE_SPEED BUTTON_SCROLL_DOWN
36#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 42#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
37#define DEMYSTIFY_QUIT BUTTON_POWER 43#define DEMYSTIFY_QUIT BUTTON_POWER
38#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT 44#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT
diff --git a/apps/plugins/dice.c b/apps/plugins/dice.c
index 8351498aad..99c88f431d 100644
--- a/apps/plugins/dice.c
+++ b/apps/plugins/dice.c
@@ -125,6 +125,15 @@ use stop to exit
125#define DICE_BUTTON_ON BUTTON_POWER 125#define DICE_BUTTON_ON BUTTON_POWER
126#define DICE_BUTTON_OFF BUTTON_A 126#define DICE_BUTTON_OFF BUTTON_A
127 127
128#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
129#define DICE_BUTTON_UP BUTTON_SCROLL_UP
130#define DICE_BUTTON_DOWN BUTTON_SCROLL_DOWN
131#define DICE_BUTTON_LEFT BUTTON_LEFT
132#define DICE_BUTTON_RIGHT BUTTON_RIGHT
133#define DICE_BUTTON_SELECT BUTTON_SELECT
134#define DICE_BUTTON_ON BUTTON_UP
135#define DICE_BUTTON_OFF BUTTON_POWER
136
128#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 137#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
129#define DICE_BUTTON_UP BUTTON_SCROLL_UP 138#define DICE_BUTTON_UP BUTTON_SCROLL_UP
130#define DICE_BUTTON_DOWN BUTTON_SCROLL_DOWN 139#define DICE_BUTTON_DOWN BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index 31c1b6363e..1a0cbaab5b 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -113,6 +113,8 @@ long reverse (long N) {
113#define LP_QUIT BUTTON_POWER 113#define LP_QUIT BUTTON_POWER
114#elif CONFIG_KEYPAD == GIGABEAT_PAD 114#elif CONFIG_KEYPAD == GIGABEAT_PAD
115#define LP_QUIT BUTTON_A 115#define LP_QUIT BUTTON_A
116#elif CONFIG_KEYPAD == SANSA_E200_PAD
117#define LP_QUIT BUTTON_POWER
116#elif CONFIG_KEYPAD == IRIVER_H10_PAD 118#elif CONFIG_KEYPAD == IRIVER_H10_PAD
117#define LP_QUIT BUTTON_POWER 119#define LP_QUIT BUTTON_POWER
118#else 120#else
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index e8d6385cbe..7af75f545b 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -83,6 +83,12 @@ enum tidy_system
83#define TIDY_LEFT BUTTON_LEFT 83#define TIDY_LEFT BUTTON_LEFT
84#define TIDY_RIGHT BUTTON_RIGHT 84#define TIDY_RIGHT BUTTON_RIGHT
85 85
86#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
87#define TIDY_DO BUTTON_SELECT
88#define TIDY_STOP BUTTON_POWER
89#define TIDY_LEFT BUTTON_LEFT
90#define TIDY_RIGHT BUTTON_RIGHT
91
86#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 92#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
87#define TIDY_DO BUTTON_PLAY 93#define TIDY_DO BUTTON_PLAY
88#define TIDY_STOP BUTTON_POWER 94#define TIDY_STOP BUTTON_POWER
@@ -383,6 +389,9 @@ void tidy_lcd_menu(enum tidy_system system)
383#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 389#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
384 rb->lcd_puts(0, 0, "[Play] to clean up"); 390 rb->lcd_puts(0, 0, "[Play] to clean up");
385 rb->lcd_puts(0, 1, "[Power] to exit/abort"); 391 rb->lcd_puts(0, 1, "[Power] to exit/abort");
392#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
393 rb->lcd_puts(0, 0, "[Select] to clean up");
394 rb->lcd_puts(0, 1, "[Power] to exit/abort");
386#else 395#else
387 #error DISKTIDY: Unsupported model 396 #error DISKTIDY: Unsupported model
388#endif 397#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index 1fd56a335f..0e9d20f8cf 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -16,7 +16,10 @@
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * $Log$ 18 * $Log$
19 * Revision 1.24 2006/09/05 00:23:06 barrywardell 19 * Revision 1.25 2006/10/26 13:38:04 barrywardell
20 * Allow the Sansa e200 UI simulator to be built. Thanks to Andre Smith for the nice image of the Sansa. Lots more to be done including testing and tweaking the keymaps and modifying the plugins for the Sansa's 176x220 LCD.
21 *
22 * Revision 1.24 2006-09-05 00:23:06 barrywardell
20 * Fix not being able to exit Doom on the H10. 23 * Fix not being able to exit Doom on the H10.
21 * 24 *
22 * Revision 1.23 2006-08-10 18:34:43 amiconn 25 * Revision 1.23 2006-08-10 18:34:43 amiconn
@@ -171,6 +174,16 @@ void I_ShutdownGraphics(void)
171#define DOOMBUTTON_ESC BUTTON_POWER 174#define DOOMBUTTON_ESC BUTTON_POWER
172#define DOOMBUTTON_ENTER BUTTON_REW 175#define DOOMBUTTON_ENTER BUTTON_REW
173#define DOOMBUTTON_WEAPON BUTTON_FF 176#define DOOMBUTTON_WEAPON BUTTON_FF
177#elif CONFIG_KEYPAD == SANSA_E200_PAD
178#define DOOMBUTTON_UP BUTTON_UP
179#define DOOMBUTTON_DOWN BUTTON_DOWN
180#define DOOMBUTTON_LEFT BUTTON_LEFT
181#define DOOMBUTTON_RIGHT BUTTON_RIGHT
182#define DOOMBUTTON_SHOOT BUTTON_SELECT
183#define DOOMBUTTON_OPEN BUTTON_REC
184#define DOOMBUTTON_ESC BUTTON_POWER
185#define DOOMBUTTON_ENTER BUTTON_SCROLL_UP
186#define DOOMBUTTON_WEAPON BUTTON_SCROLL_DOWN
174#else 187#else
175#define DOOMBUTTON_UP BUTTON_UP 188#define DOOMBUTTON_UP BUTTON_UP
176#define DOOMBUTTON_DOWN BUTTON_DOWN 189#define DOOMBUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c
index d161f577f5..df46eb918e 100644
--- a/apps/plugins/fire.c
+++ b/apps/plugins/fire.c
@@ -87,6 +87,13 @@ static unsigned char draw_buffer[8*LCD_WIDTH];
87#define FIRE_INCREASE_MULT BUTTON_UP 87#define FIRE_INCREASE_MULT BUTTON_UP
88#define FIRE_DECREASE_MULT BUTTON_DOWN 88#define FIRE_DECREASE_MULT BUTTON_DOWN
89 89
90#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
91#define FIRE_QUIT BUTTON_POWER
92#define FIRE_SWITCH_FLAMES_TYPE BUTTON_LEFT
93#define FIRE_SWITCH_FLAMES_MOVING BUTTON_RIGHT
94#define FIRE_INCREASE_MULT BUTTON_UP
95#define FIRE_DECREASE_MULT BUTTON_DOWN
96
90#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 97#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
91#define FIRE_QUIT BUTTON_POWER 98#define FIRE_QUIT BUTTON_POWER
92#define FIRE_SWITCH_FLAMES_TYPE BUTTON_LEFT 99#define FIRE_SWITCH_FLAMES_TYPE BUTTON_LEFT
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 5e793a665f..0712e32563 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -97,6 +97,16 @@ PLUGIN_HEADER
97#define FLIPIT_STEP_BY_STEP (BUTTON_POWER | BUTTON_UP) 97#define FLIPIT_STEP_BY_STEP (BUTTON_POWER | BUTTON_UP)
98#define FLIPIT_TOGGLE BUTTON_MENU 98#define FLIPIT_TOGGLE BUTTON_MENU
99 99
100#elif CONFIG_KEYPAD == SANSA_E200_PAD
101
102#define FLIPIT_UP BUTTON_UP
103#define FLIPIT_DOWN BUTTON_DOWN
104#define FLIPIT_QUIT BUTTON_POWER
105#define FLIPIT_SHUFFLE (BUTTON_REC | BUTTON_LEFT)
106#define FLIPIT_SOLVE (BUTTON_REC | BUTTON_RIGHT)
107#define FLIPIT_STEP_BY_STEP (BUTTON_REC | BUTTON_SELECT)
108#define FLIPIT_TOGGLE BUTTON_SELECT
109
100#elif CONFIG_KEYPAD == IRIVER_H10_PAD 110#elif CONFIG_KEYPAD == IRIVER_H10_PAD
101 111
102#define FLIPIT_UP BUTTON_SCROLL_UP 112#define FLIPIT_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 11a33a4395..90544202a6 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -86,6 +86,14 @@ PLUGIN_HEADER
86#define JEWELS_SELECT BUTTON_SELECT 86#define JEWELS_SELECT BUTTON_SELECT
87#define JEWELS_CANCEL BUTTON_A 87#define JEWELS_CANCEL BUTTON_A
88 88
89#elif CONFIG_KEYPAD == SANSA_E200_PAD
90#define JEWELS_UP BUTTON_UP
91#define JEWELS_DOWN BUTTON_DOWN
92#define JEWELS_LEFT BUTTON_LEFT
93#define JEWELS_RIGHT BUTTON_RIGHT
94#define JEWELS_SELECT BUTTON_SELECT
95#define JEWELS_CANCEL BUTTON_POWER
96
89#elif CONFIG_KEYPAD == IRIVER_H10_PAD 97#elif CONFIG_KEYPAD == IRIVER_H10_PAD
90#define JEWELS_UP BUTTON_SCROLL_UP 98#define JEWELS_UP BUTTON_SCROLL_UP
91#define JEWELS_DOWN BUTTON_SCROLL_DOWN 99#define JEWELS_DOWN BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index 716599aec1..12574237b3 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -111,6 +111,18 @@ PLUGIN_HEADER
111#define JPEG_NEXT (BUTTON_POWER | BUTTON_RIGHT) 111#define JPEG_NEXT (BUTTON_POWER | BUTTON_RIGHT)
112#define JPEG_PREVIOUS (BUTTON_POWER | BUTTON_LEFT) 112#define JPEG_PREVIOUS (BUTTON_POWER | BUTTON_LEFT)
113 113
114#elif CONFIG_KEYPAD == SANSA_E200_PAD
115#define JPEG_ZOOM_PRE BUTTON_SELECT
116#define JPEG_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
117#define JPEG_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
118#define JPEG_UP BUTTON_UP
119#define JPEG_DOWN BUTTON_DOWN
120#define JPEG_LEFT BUTTON_LEFT
121#define JPEG_RIGHT BUTTON_RIGHT
122#define JPEG_MENU BUTTON_REC
123#define JPEG_NEXT BUTTON_SCROLL_DOWN
124#define JPEG_PREVIOUS BUTTON_SCROLL_UP
125
114#elif CONFIG_KEYPAD == IRIVER_H10_PAD 126#elif CONFIG_KEYPAD == IRIVER_H10_PAD
115#define JPEG_ZOOM_PRE BUTTON_PLAY 127#define JPEG_ZOOM_PRE BUTTON_PLAY
116#define JPEG_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) 128#define JPEG_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 34696073dd..251c6cb259 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -208,6 +208,14 @@ const unsigned char rockbox16x7[] = {
208#define LP_INC_X BUTTON_RIGHT 208#define LP_INC_X BUTTON_RIGHT
209#define LP_DEC_Y BUTTON_DOWN 209#define LP_DEC_Y BUTTON_DOWN
210#define LP_INC_Y BUTTON_UP 210#define LP_INC_Y BUTTON_UP
211
212#elif CONFIG_KEYPAD == SANSA_E200_PAD
213#define LP_QUIT BUTTON_POWER
214#define LP_DEC_X BUTTON_LEFT
215#define LP_INC_X BUTTON_RIGHT
216#define LP_DEC_Y BUTTON_DOWN
217#define LP_INC_Y BUTTON_UP
218
211#elif CONFIG_KEYPAD == IRIVER_H10_PAD 219#elif CONFIG_KEYPAD == IRIVER_H10_PAD
212#define LP_QUIT BUTTON_POWER 220#define LP_QUIT BUTTON_POWER
213#define LP_DEC_X BUTTON_LEFT 221#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index ba0235b406..4c7c4bbc9b 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -107,6 +107,18 @@ PLUGIN_HEADER
107#define MANDELBROT_MAXITER_DEC (BUTTON_POWER | BUTTON_LEFT) 107#define MANDELBROT_MAXITER_DEC (BUTTON_POWER | BUTTON_LEFT)
108#define MANDELBROT_RESET BUTTON_SELECT 108#define MANDELBROT_RESET BUTTON_SELECT
109 109
110#elif CONFIG_KEYPAD == SANSA_E200_PAD
111#define MANDELBROT_QUIT BUTTON_POWER
112#define MANDELBROT_UP BUTTON_UP
113#define MANDELBROT_DOWN BUTTON_DOWN
114#define MANDELBROT_LEFT BUTTON_LEFT
115#define MANDELBROT_RIGHT BUTTON_RIGHT
116#define MANDELBROT_ZOOM_IN BUTTON_SCROLL_DOWN
117#define MANDELBROT_ZOOM_OUT BUTTON_SCROLL_UP
118#define MANDELBROT_MAXITER_INC (BUTTON_SELECT | BUTTON_RIGHT)
119#define MANDELBROT_MAXITER_DEC (BUTTON_SELECT | BUTTON_LEFT)
120#define MANDELBROT_RESET BUTTON_REC
121
110#elif CONFIG_KEYPAD == IRIVER_H10_PAD 122#elif CONFIG_KEYPAD == IRIVER_H10_PAD
111#define MANDELBROT_QUIT BUTTON_POWER 123#define MANDELBROT_QUIT BUTTON_POWER
112#define MANDELBROT_UP BUTTON_SCROLL_UP 124#define MANDELBROT_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index 5e83fca119..19150bad60 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -94,6 +94,15 @@ PLUGIN_HEADER
94#define METRONOME_R_VOL_DOWN BUTTON_RC_VOL_DOWN 94#define METRONOME_R_VOL_DOWN BUTTON_RC_VOL_DOWN
95#define METRONOME_R_TAP BUTTON_RC_BITRATE 95#define METRONOME_R_TAP BUTTON_RC_BITRATE
96 96
97#elif CONFIG_KEYPAD == SANSA_E200_PAD
98#define METRONOME_QUIT BUTTON_POWER
99#define METRONOME_PLAYPAUSE BUTTON_UP
100#define METRONOME_VOL_UP BUTTON_SCROLL_UP
101#define METRONOME_VOL_DOWN BUTTON_SCROLL_DOWN
102#define METRONOME_TAP BUTTON_SELECT
103#define METRONOME_MSG_START "press play"
104#define METRONOME_MSG_STOP "press pause"
105
97#elif CONFIG_KEYPAD == IRIVER_H10_PAD 106#elif CONFIG_KEYPAD == IRIVER_H10_PAD
98#define METRONOME_QUIT BUTTON_POWER 107#define METRONOME_QUIT BUTTON_POWER
99#define METRONOME_PLAYPAUSE BUTTON_PLAY 108#define METRONOME_PLAYPAUSE BUTTON_PLAY
diff --git a/apps/plugins/midiplay.c b/apps/plugins/midiplay.c
index e0b89cf860..585c7eec25 100644
--- a/apps/plugins/midiplay.c
+++ b/apps/plugins/midiplay.c
@@ -54,6 +54,13 @@ PLUGIN_HEADER
54#define BTN_UP BUTTON_VOL_UP 54#define BTN_UP BUTTON_VOL_UP
55#define BTN_DOWN BUTTON_VOL_DOWN 55#define BTN_DOWN BUTTON_VOL_DOWN
56 56
57#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
58#define BTN_QUIT BUTTON_POWER
59#define BTN_RIGHT BUTTON_RIGHT
60#define BTN_UP BUTTON_UP
61#define BTN_DOWN BUTTON_DOWN
62
63
57#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 64#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
58#define BTN_QUIT BUTTON_POWER 65#define BTN_QUIT BUTTON_POWER
59#define BTN_RIGHT BUTTON_RIGHT 66#define BTN_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index fb59865ee4..fe24e44a77 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -105,6 +105,17 @@ enum minesweeper_status {
105# define MINESWP_RIGHT (BUTTON_SELECT | BUTTON_RIGHT) 105# define MINESWP_RIGHT (BUTTON_SELECT | BUTTON_RIGHT)
106# define MINESWP_LEFT (BUTTON_SELECT | BUTTON_LEFT) 106# define MINESWP_LEFT (BUTTON_SELECT | BUTTON_LEFT)
107 107
108#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
109# define MINESWP_UP BUTTON_UP
110# define MINESWP_DOWN BUTTON_DOWN
111# define MINESWP_QUIT BUTTON_POWER
112# define MINESWP_START BUTTON_SELECT
113# define MINESWP_TOGGLE BUTTON_REC
114# define MINESWP_DISCOVER BUTTON_SELECT
115# define MINESWP_INFO (BUTTON_REC|BUTTON_REPEAT)
116# define MINESWP_RIGHT (BUTTON_SELECT | BUTTON_RIGHT)
117# define MINESWP_LEFT (BUTTON_SELECT | BUTTON_LEFT)
118
108#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 119#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
109# define MINESWP_UP BUTTON_SCROLL_UP 120# define MINESWP_UP BUTTON_SCROLL_UP
110# define MINESWP_DOWN BUTTON_SCROLL_DOWN 121# define MINESWP_DOWN BUTTON_SCROLL_DOWN
@@ -424,6 +435,8 @@ enum minesweeper_status menu( void )
424 "REC to start" 435 "REC to start"
425#elif CONFIG_KEYPAD == IRIVER_H10_PAD 436#elif CONFIG_KEYPAD == IRIVER_H10_PAD
426 "FF to start" 437 "FF to start"
438#elif CONFIG_KEYPAD == SANSA_E200_PAD
439 "SELECT to start"
427#else 440#else
428 "" 441 ""
429# warning Please define help string for this keypad. 442# warning Please define help string for this keypad.
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index b951fdc8b3..b5f8594c4f 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -85,6 +85,11 @@ PLUGIN_HEADER
85#define MOSAIQUE_SPEED BUTTON_MENU 85#define MOSAIQUE_SPEED BUTTON_MENU
86#define MOSAIQUE_RESTART BUTTON_SELECT 86#define MOSAIQUE_RESTART BUTTON_SELECT
87 87
88#elif CONFIG_KEYPAD == SANSA_E200_PAD
89#define MOSAIQUE_QUIT BUTTON_POWER
90#define MOSAIQUE_SPEED BUTTON_DOWN
91#define MOSAIQUE_RESTART BUTTON_SELECT
92
88#elif CONFIG_KEYPAD == IRIVER_H10_PAD 93#elif CONFIG_KEYPAD == IRIVER_H10_PAD
89#define MOSAIQUE_QUIT BUTTON_POWER 94#define MOSAIQUE_QUIT BUTTON_POWER
90#define MOSAIQUE_SPEED BUTTON_FF 95#define MOSAIQUE_SPEED BUTTON_FF
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index d1eef7b23b..6d66111d16 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2348,6 +2348,11 @@ void get_mp3_filename(char *wav_name)
2348#define MP3ENC_NEXT BUTTON_DOWN 2348#define MP3ENC_NEXT BUTTON_DOWN
2349#define MP3ENC_DONE BUTTON_A 2349#define MP3ENC_DONE BUTTON_A
2350#define MP3ENC_SELECT BUTTON_SELECT 2350#define MP3ENC_SELECT BUTTON_SELECT
2351#elif CONFIG_KEYPAD == SANSA_E200_PAD
2352#define MP3ENC_PREV BUTTON_UP
2353#define MP3ENC_NEXT BUTTON_DOWN
2354#define MP3ENC_DONE BUTTON_POWER
2355#define MP3ENC_SELECT BUTTON_SELECT
2351#elif CONFIG_KEYPAD == IRIVER_H10_PAD 2356#elif CONFIG_KEYPAD == IRIVER_H10_PAD
2352#define MP3ENC_PREV BUTTON_SCROLL_UP 2357#define MP3ENC_PREV BUTTON_SCROLL_UP
2353#define MP3ENC_NEXT BUTTON_SCROLL_DOWN 2358#define MP3ENC_NEXT BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 67569a7e1c..3e9dd48b40 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -71,6 +71,11 @@ static int total_offset = 0;
71#define MPEG_STOP BUTTON_POWER 71#define MPEG_STOP BUTTON_POWER
72#define MPEG_PAUSE BUTTON_PLAY 72#define MPEG_PAUSE BUTTON_PLAY
73 73
74#elif CONFIG_KEYPAD == SANSA_E200_PAD
75#define MPEG_MENU BUTTON_SELECT
76#define MPEG_STOP BUTTON_POWER
77#define MPEG_PAUSE BUTTON_UP
78
74#else 79#else
75#error MPEGPLAYER: Unsupported keypad 80#error MPEGPLAYER: Unsupported keypad
76#endif 81#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 7f212bf690..7df43e7271 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -85,6 +85,17 @@ PLUGIN_HEADER
85#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP 85#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
86#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN 86#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
87 87
88#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
89#define OSCILLOSCOPE_QUIT BUTTON_POWER
90#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
91#define OSCILLOSCOPE_ADVMODE BUTTON_DOWN
92#define OSCILLOSCOPE_ORIENTATION BUTTON_UP
93#define OSCILLOSCOPE_PAUSE BUTTON_REC
94#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
95#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
96#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_UP
97#define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_DOWN
98
88#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 99#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
89#define OSCILLOSCOPE_QUIT BUTTON_POWER 100#define OSCILLOSCOPE_QUIT BUTTON_POWER
90#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT 101#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index f6816082ef..863f9b246b 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -87,6 +87,17 @@
87#define PACMAN_COIN BUTTON_REC 87#define PACMAN_COIN BUTTON_REC
88#define PACMAN_MENU BUTTON_PLAY 88#define PACMAN_MENU BUTTON_PLAY
89 89
90#elif CONFIG_KEYPAD == SANSA_E200_PAD
91
92#define PACMAN_UP BUTTON_UP
93#define PACMAN_DOWN BUTTON_DOWN
94#define PACMAN_LEFT BUTTON_LEFT
95#define PACMAN_RIGHT BUTTON_RIGHT
96#define PACMAN_1UP BUTTON_SELECT
97#define PACMAN_2UP BUTTON_POWER
98#define PACMAN_COIN BUTTON_REC
99#define PACMAN_MENU (BUTTON_SELECT|BUTTON_REPEAT)
100
90#elif CONFIG_KEYPAD == IRIVER_H10_PAD 101#elif CONFIG_KEYPAD == IRIVER_H10_PAD
91 102
92#if defined(IRIVER_H10_5GB) 103#if defined(IRIVER_H10_5GB)
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index 77c489f2ae..c48235ecf8 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -59,6 +59,12 @@ static int plasma_frequency;
59#define PLASMA_QUIT BUTTON_A 59#define PLASMA_QUIT BUTTON_A
60#define PLASMA_INCREASE_FREQUENCY BUTTON_UP 60#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
61#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN 61#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
62
63#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
64#define PLASMA_QUIT BUTTON_POWER
65#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
66#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
67
62#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) 68#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
63#define PLASMA_QUIT BUTTON_POWER 69#define PLASMA_QUIT BUTTON_POWER
64#define PLASMA_INCREASE_FREQUENCY BUTTON_UP 70#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
@@ -81,6 +87,8 @@ static int plasma_frequency;
81#define PLASMA_REGEN_COLORS BUTTON_PLAY 87#define PLASMA_REGEN_COLORS BUTTON_PLAY
82#elif CONFIG_KEYPAD == IRIVER_H10_PAD 88#elif CONFIG_KEYPAD == IRIVER_H10_PAD
83#define PLASMA_REGEN_COLORS BUTTON_PLAY 89#define PLASMA_REGEN_COLORS BUTTON_PLAY
90#elif CONFIG_KEYPAD == SANSA_E200_PAD
91#define PLASMA_REGEN_COLORS BUTTON_SELECT
84#elif CONFIG_KEYPAD == IPOD_4G_PAD 92#elif CONFIG_KEYPAD == IPOD_4G_PAD
85#define PLASMA_REGEN_COLORS BUTTON_SELECT 93#define PLASMA_REGEN_COLORS BUTTON_SELECT
86#elif CONFIG_KEYPAD == IRIVER_H300_PAD 94#elif CONFIG_KEYPAD == IRIVER_H300_PAD
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index ef7f2f672e..5da61f5947 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -91,6 +91,14 @@ PLUGIN_HEADER
91#define PONG_RIGHT_UP BUTTON_POWER 91#define PONG_RIGHT_UP BUTTON_POWER
92#define PONG_RIGHT_DOWN BUTTON_MENU 92#define PONG_RIGHT_DOWN BUTTON_MENU
93 93
94#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
95#define PONG_QUIT BUTTON_POWER
96#define PONG_PAUSE BUTTON_SELECT
97#define PONG_LEFT_UP BUTTON_LEFT
98#define PONG_LEFT_DOWN BUTTON_DOWN
99#define PONG_RIGHT_UP BUTTON_UP
100#define PONG_RIGHT_DOWN BUTTON_RIGHT
101
94#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 102#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
95#define PONG_QUIT BUTTON_POWER 103#define PONG_QUIT BUTTON_POWER
96#define PONG_LEFT_UP BUTTON_SCROLL_UP 104#define PONG_LEFT_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/random_folder_advance_config.c b/apps/plugins/random_folder_advance_config.c
index adf115c909..7d055c4172 100644
--- a/apps/plugins/random_folder_advance_config.c
+++ b/apps/plugins/random_folder_advance_config.c
@@ -50,6 +50,8 @@ struct file_format *list = NULL;
50 50
51#elif CONFIG_KEYPAD == GIGABEAT_PAD 51#elif CONFIG_KEYPAD == GIGABEAT_PAD
52 52
53#elif CONFIG_KEYPAD == SANSA_E200_PAD
54
53#elif CONFIG_KEYPAD == IRIVER_H10_PAD 55#elif CONFIG_KEYPAD == IRIVER_H10_PAD
54 56
55#endif 57#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index a3f5b16d52..a9fd89db16 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -96,6 +96,17 @@ PLUGIN_HEADER
96#define ROCKBLOX_DROP BUTTON_REC 96#define ROCKBLOX_DROP BUTTON_REC
97#define ROCKBLOX_RESTART BUTTON_PLAY 97#define ROCKBLOX_RESTART BUTTON_PLAY
98 98
99#elif CONFIG_KEYPAD == SANSA_E200_PAD
100
101#define ROCKBLOX_OFF BUTTON_POWER
102#define ROCKBLOX_ROTATE_RIGHT BUTTON_SCROLL_UP
103#define ROCKBLOX_ROTATE_LEFT BUTTON_SCROLL_DOWN
104#define ROCKBLOX_DOWN BUTTON_DOWN
105#define ROCKBLOX_LEFT BUTTON_LEFT
106#define ROCKBLOX_RIGHT BUTTON_RIGHT
107#define ROCKBLOX_DROP BUTTON_SELECT
108#define ROCKBLOX_RESTART BUTTON_REC
109
99#elif CONFIG_KEYPAD == IRIVER_H10_PAD 110#elif CONFIG_KEYPAD == IRIVER_H10_PAD
100 111
101#define ROCKBLOX_OFF BUTTON_POWER 112#define ROCKBLOX_OFF BUTTON_POWER
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 73927ed83d..8fd75755d6 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -81,6 +81,17 @@ PLUGIN_HEADER
81#define ROCKPAINT_LEFT BUTTON_LEFT 81#define ROCKPAINT_LEFT BUTTON_LEFT
82#define ROCKPAINT_RIGHT BUTTON_RIGHT 82#define ROCKPAINT_RIGHT BUTTON_RIGHT
83 83
84#elif CONFIG_KEYPAD == SANSA_E200_PAD
85#define ROCKPAINT_QUIT BUTTON_POWER
86#define ROCKPAINT_DRAW BUTTON_SELECT
87#define ROCKPAINT_MENU ( BUTTON_SELECT | BUTTON_POWER )
88#define ROCKPAINT_TOOLBAR BUTTON_REC
89#define ROCKPAINT_TOOLBAR2 ( BUTTON_REC | BUTTON_LEFT )
90#define ROCKPAINT_UP BUTTON_UP
91#define ROCKPAINT_DOWN BUTTON_DOWN
92#define ROCKPAINT_LEFT BUTTON_LEFT
93#define ROCKPAINT_RIGHT BUTTON_RIGHT
94
84#elif ( CONFIG_KEYPAD == IRIVER_H10_PAD ) 95#elif ( CONFIG_KEYPAD == IRIVER_H10_PAD )
85#define ROCKPAINT_QUIT BUTTON_POWER 96#define ROCKPAINT_QUIT BUTTON_POWER
86#define ROCKPAINT_DRAW BUTTON_FF 97#define ROCKPAINT_DRAW BUTTON_FF
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index d9ddba1332..2fe226c9db 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -69,6 +69,13 @@ PLUGIN_HEADER
69#define PUZZLE_SHUFFLE BUTTON_SELECT 69#define PUZZLE_SHUFFLE BUTTON_SELECT
70#define PUZZLE_PICTURE BUTTON_POWER 70#define PUZZLE_PICTURE BUTTON_POWER
71 71
72#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
73#define PUZZLE_QUIT BUTTON_POWER
74#define PUZZLE_UP BUTTON_UP
75#define PUZZLE_DOWN BUTTON_DOWN
76#define PUZZLE_SHUFFLE BUTTON_REC
77#define PUZZLE_PICTURE BUTTON_SELECT
78
72#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 79#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
73#define PUZZLE_QUIT BUTTON_POWER 80#define PUZZLE_QUIT BUTTON_POWER
74#define PUZZLE_UP BUTTON_SCROLL_UP 81#define PUZZLE_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index b1e9e10a55..6b27c04d6e 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -76,6 +76,12 @@ PLUGIN_HEADER
76#define SNAKE_DOWN BUTTON_DOWN 76#define SNAKE_DOWN BUTTON_DOWN
77#define SNAKE_PLAYPAUSE BUTTON_SELECT 77#define SNAKE_PLAYPAUSE BUTTON_SELECT
78 78
79#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
80#define SNAKE_QUIT BUTTON_POWER
81#define SNAKE_UP BUTTON_UP
82#define SNAKE_DOWN BUTTON_DOWN
83#define SNAKE_PLAYPAUSE BUTTON_SELECT
84
79#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 85#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
80#define SNAKE_QUIT BUTTON_POWER 86#define SNAKE_QUIT BUTTON_POWER
81#define SNAKE_UP BUTTON_SCROLL_UP 87#define SNAKE_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 30660c0f89..c2357967f5 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -219,6 +219,18 @@ PLUGIN_HEADER
219#define SNAKE2_PLAYPAUSE BUTTON_SELECT 219#define SNAKE2_PLAYPAUSE BUTTON_SELECT
220#define SNAKE2_PLAYPAUSE_TEXT "Select" 220#define SNAKE2_PLAYPAUSE_TEXT "Select"
221 221
222#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
223#define SNAKE2_UP BUTTON_UP
224#define SNAKE2_DOWN BUTTON_DOWN
225#define SNAKE2_QUIT BUTTON_POWER
226#define SNAKE2_LEVEL_UP BUTTON_UP
227#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
228#define SNAKE2_MAZE_NEXT BUTTON_RIGHT
229#define SNAKE2_MAZE_LAST BUTTON_LEFT
230#define SNAKE2_SELECT_TYPE BUTTON_REC
231#define SNAKE2_PLAYPAUSE BUTTON_SELECT
232#define SNAKE2_PLAYPAUSE_TEXT "Select"
233
222#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 234#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
223#define SNAKE2_UP BUTTON_SCROLL_UP 235#define SNAKE2_UP BUTTON_SCROLL_UP
224#define SNAKE2_DOWN BUTTON_SCROLL_DOWN 236#define SNAKE2_DOWN BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 8f907a7ec6..9e8f4f582f 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -45,6 +45,8 @@ PLUGIN_HEADER
45#define SNOW_QUIT BUTTON_POWER 45#define SNOW_QUIT BUTTON_POWER
46#elif CONFIG_KEYPAD == GIGABEAT_PAD 46#elif CONFIG_KEYPAD == GIGABEAT_PAD
47#define SNOW_QUIT BUTTON_A 47#define SNOW_QUIT BUTTON_A
48#elif CONFIG_KEYPAD == SANSA_E200_PAD
49#define SNOW_QUIT BUTTON_POWER
48#elif CONFIG_KEYPAD == IRIVER_H10_PAD 50#elif CONFIG_KEYPAD == IRIVER_H10_PAD
49#define SNOW_QUIT BUTTON_POWER 51#define SNOW_QUIT BUTTON_POWER
50#else 52#else
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 06788d4806..fbbbf3ea06 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -102,6 +102,16 @@ extern const fb_data sokoban_tiles[];
102#define SOKOBAN_LEVEL_DOWN (BUTTON_POWER | BUTTON_DOWN) 102#define SOKOBAN_LEVEL_DOWN (BUTTON_POWER | BUTTON_DOWN)
103#define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT 103#define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT
104 104
105#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
106#define SOKOBAN_UP BUTTON_UP
107#define SOKOBAN_DOWN BUTTON_DOWN
108#define SOKOBAN_QUIT BUTTON_POWER
109#define SOKOBAN_UNDO_PRE BUTTON_SELECT
110#define SOKOBAN_UNDO (BUTTON_SELECT | BUTTON_UP)
111#define SOKOBAN_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT)
112#define SOKOBAN_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT)
113#define SOKOBAN_LEVEL_REPEAT BUTTON_REC
114
105#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 115#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
106#define SOKOBAN_UP BUTTON_SCROLL_UP 116#define SOKOBAN_UP BUTTON_SCROLL_UP
107#define SOKOBAN_DOWN BUTTON_SCROLL_DOWN 117#define SOKOBAN_DOWN BUTTON_SCROLL_DOWN
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index d369e89a0a..d72cea9a96 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -175,6 +175,27 @@ static struct plugin_api* rb;
175# define HK_CUR2STACK "SELECT.." 175# define HK_CUR2STACK "SELECT.."
176# define HK_REM2STACK "POWER+RIGHT" 176# define HK_REM2STACK "POWER+RIGHT"
177 177
178#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
179# define SOL_QUIT BUTTON_POWER
180# define SOL_UP BUTTON_UP
181# define SOL_DOWN BUTTON_DOWN
182# define SOL_LEFT BUTTON_LEFT
183# define SOL_RIGHT BUTTON_RIGHT
184# define SOL_MOVE_PRE BUTTON_SELECT
185# define SOL_MOVE (BUTTON_SELECT | BUTTON_UP)
186# define SOL_DRAW_PRE BUTTON_UP
187# define SOL_DRAW (BUTTON_UP | BUTTON_LEFT)
188# define SOL_REM2CUR_PRE BUTTON_UP
189# define SOL_REM2CUR (BUTTON_UP | BUTTON_RIGHT)
190# define SOL_CUR2STACK_PRE BUTTON_SELECT
191# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_RIGHT)
192# define SOL_REM2STACK BUTTON_REC
193# define HK_MOVE "SELECT"
194# define HK_DRAW "PLAY"
195# define HK_REM2CUR "PLAY.."
196# define HK_CUR2STACK "SELECT.."
197# define HK_REM2STACK "REC"
198
178#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 199#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
179# define SOL_QUIT BUTTON_POWER 200# define SOL_QUIT BUTTON_POWER
180# define SOL_UP BUTTON_SCROLL_UP 201# define SOL_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index aeac49b92f..1406643395 100755
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -106,6 +106,19 @@ static struct plugin_api* rb; /* global api struct pointer */
106#define AST_FIRE BUTTON_SELECT 106#define AST_FIRE BUTTON_SELECT
107#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT 107#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
108 108
109#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
110#define AST_PAUSE BUTTON_SELECT
111#define AST_QUIT BUTTON_POWER
112#define AST_THRUST_REP BUTTON_UP | BUTTON_RIGHT
113#define AST_THRUST BUTTON_UP
114#define AST_HYPERSPACE BUTTON_DOWN
115#define AST_LEFT BUTTON_LEFT
116#define AST_LEFT_REP BUTTON_LEFT | BUTTON_RIGHT
117#define AST_RIGHT BUTTON_RIGHT
118#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_RIGHT)
119#define AST_FIRE BUTTON_SELECT
120#define AST_FIRE_REP BUTTON_SELECT | BUTTON_RIGHT
121
109#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 122#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
110#define AST_PAUSE BUTTON_PLAY 123#define AST_PAUSE BUTTON_PLAY
111#define AST_QUIT BUTTON_POWER 124#define AST_QUIT BUTTON_POWER
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index d46063efdd..2bf2902bc6 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -135,6 +135,19 @@ PLUGIN_HEADER
135#define STAR_LEVEL_REPEAT (BUTTON_POWER | BUTTON_RIGHT) 135#define STAR_LEVEL_REPEAT (BUTTON_POWER | BUTTON_RIGHT)
136#define STAR_MENU_RUN BUTTON_RIGHT 136#define STAR_MENU_RUN BUTTON_RIGHT
137 137
138#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
139
140#define STAR_QUIT BUTTON_POWER
141#define STAR_UP BUTTON_UP
142#define STAR_DOWN BUTTON_DOWN
143#define STAR_TOGGLE_CONTROL_PRE BUTTON_SELECT
144#define STAR_TOGGLE_CONTROL (BUTTON_SELECT | BUTTON_REL)
145#define STAR_LEVEL_UP BUTTON_SCROLL_UP
146#define STAR_LEVEL_DOWN BUTTON_SCROLL_DOWN
147#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_RIGHT)
148#define STAR_MENU_RUN BUTTON_REC
149
150
138#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 151#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
139 152
140#define STAR_QUIT BUTTON_POWER 153#define STAR_QUIT BUTTON_POWER
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index ef3fd688e8..0d87ea7fff 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -51,6 +51,13 @@ static struct plugin_api* rb; /* global api struct pointer */
51#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN 51#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
52#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT 52#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
53#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 53#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
54#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
55#define STARFIELD_QUIT BUTTON_POWER
56#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
57#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
58#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
59#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
60
54#else 61#else
55#define STARFIELD_QUIT BUTTON_OFF 62#define STARFIELD_QUIT BUTTON_OFF
56#define STARFIELD_INCREASE_ZMOVE BUTTON_UP 63#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 20d17c75b2..0a1f2e48f9 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -54,6 +54,9 @@ static int fontwidth, fontheight;
54#elif CONFIG_KEYPAD == GIGABEAT_PAD 54#elif CONFIG_KEYPAD == GIGABEAT_PAD
55#define STATS_STOP BUTTON_A 55#define STATS_STOP BUTTON_A
56 56
57#elif CONFIG_KEYPAD == SANSA_E200_PAD
58#define STATS_STOP BUTTON_POWER
59
57#elif CONFIG_KEYPAD == IRIVER_H10_PAD 60#elif CONFIG_KEYPAD == IRIVER_H10_PAD
58#define STATS_STOP BUTTON_POWER 61#define STATS_STOP BUTTON_POWER
59 62
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 849ff687ce..f1e7355e65 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -95,6 +95,13 @@ PLUGIN_HEADER
95#define STOPWATCH_LAP_TIMER BUTTON_MENU 95#define STOPWATCH_LAP_TIMER BUTTON_MENU
96#define STOPWATCH_SCROLL_UP BUTTON_UP 96#define STOPWATCH_SCROLL_UP BUTTON_UP
97#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 97#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
98#elif CONFIG_KEYPAD == SANSA_E200_PAD
99#define STOPWATCH_QUIT BUTTON_POWER
100#define STOPWATCH_START_STOP BUTTON_LEFT
101#define STOPWATCH_RESET_TIMER BUTTON_REC
102#define STOPWATCH_LAP_TIMER BUTTON_SELECT
103#define STOPWATCH_SCROLL_UP BUTTON_UP
104#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
98#elif CONFIG_KEYPAD == IRIVER_H10_PAD 105#elif CONFIG_KEYPAD == IRIVER_H10_PAD
99#define STOPWATCH_QUIT BUTTON_POWER 106#define STOPWATCH_QUIT BUTTON_POWER
100#define STOPWATCH_START_STOP BUTTON_PLAY 107#define STOPWATCH_START_STOP BUTTON_PLAY
diff --git a/apps/plugins/sudoku/SOURCES b/apps/plugins/sudoku/SOURCES
index 7cce555c93..8b344bdfeb 100644
--- a/apps/plugins/sudoku/SOURCES
+++ b/apps/plugins/sudoku/SOURCES
@@ -1,3 +1,5 @@
1#if !defined(SANSA_E200)
1sudoku.c 2sudoku.c
2generator.c 3generator.c
3templates.c 4templates.c
5#endif
diff --git a/apps/plugins/sudoku/sudoku.c b/apps/plugins/sudoku/sudoku.c
index 98d11b7962..e1e99bf444 100644
--- a/apps/plugins/sudoku/sudoku.c
+++ b/apps/plugins/sudoku/sudoku.c
@@ -129,7 +129,8 @@ static const char default_game[9][9] =
129#define CELL_WIDTH 12 129#define CELL_WIDTH 12
130#define CELL_HEIGHT 12 130#define CELL_HEIGHT 12
131 131
132#elif (LCD_HEIGHT==176) && (LCD_WIDTH==220) 132#elif ((LCD_HEIGHT==176) && (LCD_WIDTH==220)) || \
133 ((LCD_HEIGHT==220) && (LCD_WIDTH==176))
133/* Iriver h300, iPod Color/Photo - 220x176, 9 cells @ 16x16 with 14 border lines */ 134/* Iriver h300, iPod Color/Photo - 220x176, 9 cells @ 16x16 with 14 border lines */
134 135
135/* Internal dimensions of a cell */ 136/* Internal dimensions of a cell */
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 761be3a988..fefaf9f57d 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -100,6 +100,16 @@
100#define SUDOKU_BUTTON_MENU BUTTON_PLAY 100#define SUDOKU_BUTTON_MENU BUTTON_PLAY
101#define SUDOKU_BUTTON_POSSIBLE BUTTON_FF 101#define SUDOKU_BUTTON_POSSIBLE BUTTON_FF
102 102
103#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
104#define SUDOKU_BUTTON_QUIT BUTTON_POWER
105#define SUDOKU_BUTTON_UP BUTTON_UP
106#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
107#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
108#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
109#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
110#define SUDOKU_BUTTON_MENU (BUTTON_SELECT|BUTTON_REPEAT)
111#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC
112
103#elif 113#elif
104 #error SUDOKU: Unsupported keypad 114 #error SUDOKU: Unsupported keypad
105#endif 115#endif
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 9024825104..af73257508 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -157,6 +157,16 @@ PLUGIN_HEADER
157#define VIEWER_MENU BUTTON_MENU 157#define VIEWER_MENU BUTTON_MENU
158#define VIEWER_AUTOSCROLL BUTTON_A 158#define VIEWER_AUTOSCROLL BUTTON_A
159 159
160/* Sansa E200 keys */
161#elif CONFIG_KEYPAD == SANSA_E200_PAD
162#define VIEWER_QUIT BUTTON_POWER
163#define VIEWER_PAGE_UP BUTTON_UP
164#define VIEWER_PAGE_DOWN BUTTON_DOWN
165#define VIEWER_SCREEN_LEFT BUTTON_LEFT
166#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
167#define VIEWER_MENU BUTTON_SELECT
168#define VIEWER_AUTOSCROLL BUTTON_SCROLL_UP
169
160/* iriver H10 keys */ 170/* iriver H10 keys */
161#elif CONFIG_KEYPAD == IRIVER_H10_PAD 171#elif CONFIG_KEYPAD == IRIVER_H10_PAD
162#define VIEWER_QUIT BUTTON_POWER 172#define VIEWER_QUIT BUTTON_POWER
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 559aafabc1..2ee708efed 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -83,6 +83,17 @@ PLUGIN_HEADER
83#define VUMETER_UP BUTTON_UP 83#define VUMETER_UP BUTTON_UP
84#define VUMETER_DOWN BUTTON_DOWN 84#define VUMETER_DOWN BUTTON_DOWN
85 85
86#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
87#define VUMETER_QUIT BUTTON_POWER
88#define VUMETER_HELP BUTTON_REC
89#define VUMETER_MENU BUTTON_SELECT
90#define VUMETER_MENU_EXIT BUTTON_SELECT
91#define VUMETER_MENU_EXIT2 BUTTON_POWER
92#define VUMETER_LEFT BUTTON_LEFT
93#define VUMETER_RIGHT BUTTON_RIGHT
94#define VUMETER_UP BUTTON_UP
95#define VUMETER_DOWN BUTTON_DOWN
96
86#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 97#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
87#define VUMETER_QUIT BUTTON_POWER 98#define VUMETER_QUIT BUTTON_POWER
88#define VUMETER_HELP BUTTON_PLAY 99#define VUMETER_HELP BUTTON_PLAY
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 279fcfcb61..f108b4d518 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -127,6 +127,21 @@ PLUGIN_HEADER
127#define PLAYERS_TEXT "Up/Down" 127#define PLAYERS_TEXT "Up/Down"
128#define WORMS_TEXT "Left/Right" 128#define WORMS_TEXT "Left/Right"
129 129
130
131#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
132
133#define BTN_DIR_UP BUTTON_UP
134#define BTN_DIR_DOWN BUTTON_DOWN
135#define BTN_DIR_LEFT BUTTON_LEFT
136#define BTN_DIR_RIGHT BUTTON_RIGHT
137#define BTN_STARTPAUSE BUTTON_SELECT
138#define BTN_QUIT BUTTON_POWER
139#define BTN_STOPRESET BUTTON_REC
140
141#define PLAYERS_TEXT "Up/Down"
142#define WORMS_TEXT "Left/Right"
143
144
130#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 145#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
131 146
132#define BTN_DIR_UP BUTTON_SCROLL_UP 147#define BTN_DIR_UP BUTTON_SCROLL_UP
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 4c56a8cf19..abfd2a53b4 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -66,6 +66,17 @@ PLUGIN_HEADER
66#define DOWN BUTTON_DOWN 66#define DOWN BUTTON_DOWN
67#define PAUSE BUTTON_MENU 67#define PAUSE BUTTON_MENU
68 68
69#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
70
71#define QUIT BUTTON_POWER
72#define LEFT BUTTON_LEFT
73#define RIGHT BUTTON_RIGHT
74#define SELECT BUTTON_SELECT
75#define UP BUTTON_UP
76#define DOWN BUTTON_DOWN
77#define PAUSE BUTTON_REC
78
79
69#elif CONFIG_KEYPAD == IRIVER_H10_PAD 80#elif CONFIG_KEYPAD == IRIVER_H10_PAD
70 81
71#define QUIT BUTTON_POWER 82#define QUIT BUTTON_POWER
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index f3f23295c5..54218dbf51 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -77,6 +77,14 @@
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
81#define ZX_SELECT BUTTON_SELECT
82#define ZX_MENU BUTTON_POWER
83#define ZX_LEFT BUTTON_LEFT
84#define ZX_RIGHT BUTTON_RIGHT
85#define ZX_UP BUTTON_UP
86#define ZX_DOWN BUTTON_DOWN
87
80#endif 88#endif
81 89
82#endif 90#endif
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 685d9ce6bb..ea4abae618 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -99,6 +99,17 @@
99#define KBD_UP BUTTON_SCROLL_UP 99#define KBD_UP BUTTON_SCROLL_UP
100#define KBD_DOWN BUTTON_SCROLL_DOWN 100#define KBD_DOWN BUTTON_SCROLL_DOWN
101 101
102#elif CONFIG_KEYPAD == SANSA_E200_PAD
103
104/* TODO: Check keyboard mappings */
105
106#define KBD_SELECT BUTTON_SELECT
107#define KBD_ABORT BUTTON_POWER
108#define KBD_LEFT BUTTON_LEFT
109#define KBD_RIGHT BUTTON_RIGHT
110#define KBD_UP BUTTON_UP
111#define KBD_DOWN BUTTON_DOWN
112
102#endif 113#endif
103 114
104 115
diff --git a/docs/CREDITS b/docs/CREDITS
index abac76db52..3dbf6f79f0 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -245,3 +245,4 @@ Jared Stafford
245Martin Hensel 245Martin Hensel
246Stéphane Doyen 246Stéphane Doyen
247Austin Appel 247Austin Appel
248Andre Smith
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 171cd6db12..e64fbebc7e 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -227,11 +227,13 @@ drivers/m5636.c
227#endif 227#endif
228 228
229#ifdef SANSA_E200 229#ifdef SANSA_E200
230#ifndef SIMULATOR
230target/arm/sandisk/sansa-e200/ata-e200.c 231target/arm/sandisk/sansa-e200/ata-e200.c
231target/arm/sandisk/sansa-e200/lcd-e200.c 232target/arm/sandisk/sansa-e200/lcd-e200.c
232target/arm/sandisk/sansa-e200/adc-e200.c 233target/arm/sandisk/sansa-e200/adc-e200.c
233target/arm/wmcodec-pp.c 234target/arm/wmcodec-pp.c
234#endif 235#endif
236#endif
235 237
236#ifdef IAUDIO_X5 238#ifdef IAUDIO_X5
237target/coldfire/iaudio/x5/power-x5.c 239target/coldfire/iaudio/x5/power-x5.c
diff --git a/uisimulator/sdl/UI-e200.bmp b/uisimulator/sdl/UI-e200.bmp
new file mode 100644
index 0000000000..ee9c6b5242
--- /dev/null
+++ b/uisimulator/sdl/UI-e200.bmp
Binary files differ
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 22cfda1119..4408dde3e9 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -467,17 +467,17 @@ void button_event(int key, bool pressed)
467 break; 467 break;
468 case SDLK_KP8: 468 case SDLK_KP8:
469 case SDLK_UP: 469 case SDLK_UP:
470 new_btn = BUTTON_UP; 470 new_btn = BUTTON_SCROLL_UP;
471 break; 471 break;
472 case SDLK_KP2: 472 case SDLK_KP2:
473 case SDLK_DOWN: 473 case SDLK_DOWN:
474 new_btn = BUTTON_DOWN; 474 new_btn = BUTTON_SCROLL_DOWN;
475 break; 475 break;
476 case SDLK_KP9: 476 case SDLK_KP9:
477 new_btn = BUTTON_SCROLL_UP; 477 new_btn = BUTTON_UP;
478 break; 478 break;
479 case SDLK_KP3: 479 case SDLK_KP3:
480 new_btn = BUTTON_SCROLL_DOWN; 480 new_btn = BUTTON_DOWN;
481 break; 481 break;
482 case SDLK_KP1: 482 case SDLK_KP1:
483 new_btn = BUTTON_POWER; 483 new_btn = BUTTON_POWER;
@@ -485,6 +485,10 @@ void button_event(int key, bool pressed)
485 case SDLK_KP7: 485 case SDLK_KP7:
486 new_btn = BUTTON_REC; 486 new_btn = BUTTON_REC;
487 break; 487 break;
488 case SDLK_KP5:
489 case SDLK_SPACE:
490 new_btn = BUTTON_SELECT;
491 break;
488 492
489#endif /* CONFIG_KEYPAD */ 493#endif /* CONFIG_KEYPAD */
490 case SDLK_KP0: 494 case SDLK_KP0:
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index 9b844c3945..a8e05008af 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -231,6 +231,16 @@
231#define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */ 231#define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */
232#define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */ 232#define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */
233 233
234#elif defined(SANSA_E200)
235#define UI_TITLE "Sansa e200"
236#define UI_WIDTH 260 /* width of GUI window */
237#define UI_HEIGHT 502 /* height of GUI window */
238/* high-colour */
239#define UI_LCD_POSX 42 /* x position of lcd */
240#define UI_LCD_POSY 37 /* y position of lcd (74 for real aspect) */
241#define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */
242#define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */
243
234#elif defined(IRIVER_IFP7XX) 244#elif defined(IRIVER_IFP7XX)
235#define UI_TITLE "iriver iFP7xx" 245#define UI_TITLE "iriver iFP7xx"
236#define UI_WIDTH 425 /* width of GUI window */ 246#define UI_WIDTH 425 /* width of GUI window */