summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/bitmaps/native/SOURCES2
-rw-r--r--apps/keymaps/keymap-av300.c261
-rw-r--r--apps/plugins/SUBDIRS3
-rw-r--r--apps/plugins/bitmaps/native/SOURCES5
-rw-r--r--apps/plugins/bounce.c6
-rw-r--r--apps/plugins/brickmania.c13
-rw-r--r--apps/plugins/calculator.c9
-rw-r--r--apps/plugins/chessbox/chessbox.c11
-rw-r--r--apps/plugins/chessclock.c11
-rw-r--r--apps/plugins/chip8.c12
-rw-r--r--apps/plugins/clock.c19
-rw-r--r--apps/plugins/cube.c12
-rw-r--r--apps/plugins/dice.c9
-rw-r--r--apps/plugins/disktidy.c9
-rw-r--r--apps/plugins/fire.c7
-rw-r--r--apps/plugins/fireworks.c3
-rw-r--r--apps/plugins/flipit.c9
-rw-r--r--apps/plugins/jewels.c8
-rw-r--r--apps/plugins/jpeg.c10
-rw-r--r--apps/plugins/lib/pluginlib_actions.h14
-rw-r--r--apps/plugins/mandelbrot.c12
-rw-r--r--apps/plugins/mazezam.c12
-rw-r--r--apps/plugins/minesweeper.c15
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/rockblox.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/sokoban.c9
-rw-r--r--apps/plugins/solitaire.c17
-rw-r--r--apps/plugins/spacerocks.c14
-rw-r--r--apps/plugins/star.c13
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c7
-rw-r--r--apps/plugins/sudoku/sudoku.h10
-rw-r--r--apps/plugins/viewer.c13
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c16
-rw-r--r--apps/plugins/xobox.c10
-rw-r--r--apps/plugins/zxbox/keymaps.h8
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c8
-rw-r--r--apps/plugins/zxbox/zxvid_com.h4
-rw-r--r--apps/screens.h2
-rw-r--r--firmware/export/config.h24
-rw-r--r--firmware/target/arm/archos/av300/ata-av300.c56
-rw-r--r--firmware/target/arm/archos/av300/ata-target.h62
-rw-r--r--firmware/target/arm/archos/av300/button-target.h49
-rw-r--r--firmware/target/arm/archos/av300/power-av300.c97
-rwxr-xr-xtools/configure26
-rw-r--r--uisimulator/sdl/UI-av300.bmpbin0 -> 428454 bytes
-rw-r--r--uisimulator/sdl/button.c43
-rw-r--r--uisimulator/sdl/uisdl.h13
55 files changed, 1036 insertions, 13 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index c9587cf5bb..20707323f2 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -113,4 +113,6 @@ keymaps/keymap-h10.c
113keymaps/keymap-ifp7xx.c 113keymaps/keymap-ifp7xx.c
114#elif CONFIG_KEYPAD == SANSA_E200_PAD 114#elif CONFIG_KEYPAD == SANSA_E200_PAD
115keymaps/keymap-e200.c 115keymaps/keymap-e200.c
116#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
117keymaps/keymap-av300.c
116#endif 118#endif
diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES
index 027f33e238..ba642ab7aa 100644
--- a/apps/bitmaps/native/SOURCES
+++ b/apps/bitmaps/native/SOURCES
@@ -9,6 +9,8 @@ rockboxlogo.128x40x16.bmp
9rockboxlogo.138x46x2.bmp 9rockboxlogo.138x46x2.bmp
10#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2) 10#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2)
11rockboxlogo.160x53x2.bmp 11rockboxlogo.160x53x2.bmp
12#elif (LCD_WIDTH == 320) && (LCD_DEPTH == 2)
13rockboxlogo.160x53x2.bmp
12#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 16) 14#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 16)
13rockboxlogo.160x50x16.bmp 15rockboxlogo.160x50x16.bmp
14#elif (LCD_WIDTH == 176) && (LCD_DEPTH == 16) 16#elif (LCD_WIDTH == 176) && (LCD_DEPTH == 16)
diff --git a/apps/keymaps/keymap-av300.c b/apps/keymaps/keymap-av300.c
new file mode 100644
index 0000000000..22e1fcc9a1
--- /dev/null
+++ b/apps/keymaps/keymap-av300.c
@@ -0,0 +1,261 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2006 Antoine Cellerier <dionoea @t videolan d.t org>
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/* *
20 * Button Code Definitions for archos AV300 target
21 *
22 * \TODO handle F3
23 */
24
25#include "config.h"
26#include "action.h"
27#include "button.h"
28#include "settings.h"
29
30/* CONTEXT_CUSTOM's used in this file...
31
32CONTEXT_CUSTOM|1 = the standard list/tree defines (without directions)
33
34
35*/
36
37static const struct button_mapping button_context_standard[] = {
38 { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
39 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
40 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
41 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
42
43 { ACTION_STD_OK, BUTTON_ON, BUTTON_NONE },
44 { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
45 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
46
47 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
48 { ACTION_STD_MENU, BUTTON_F1, BUTTON_NONE },
49 { ACTION_STD_QUICKSCREEN, BUTTON_F2, BUTTON_NONE },
50 { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT },
51 { ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE },
52 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
53 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
54 { ACTION_F3, BUTTON_F3, BUTTON_NONE },
55
56 LAST_ITEM_IN_LIST
57};
58
59static const struct button_mapping button_context_wps[] = {
60 { ACTION_WPS_PLAY, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
61 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
62 { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
63 { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
64 { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
65 { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
66 { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
67 { ACTION_WPS_STOP, BUTTON_OFF|BUTTON_REL, BUTTON_OFF },
68 { ACTION_WPS_VOLDOWN, BUTTON_DOWN, BUTTON_NONE },
69 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
70 { ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE },
71 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
72 { ACTION_WPS_MENU, BUTTON_F1|BUTTON_REL, BUTTON_F1 },
73 { ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT },
74 { ACTION_WPS_QUICKSCREEN, BUTTON_F2, BUTTON_NONE },
75 { ACTION_WPS_BROWSE, BUTTON_ON|BUTTON_REL, BUTTON_ON },
76 { ACTION_WPS_ID3SCREEN, BUTTON_F1|BUTTON_ON, BUTTON_NONE },
77 { ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_UP, BUTTON_ON },
78 { ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON },
79 { ACTION_STD_KEYLOCK, BUTTON_F1|BUTTON_DOWN, BUTTON_NONE },
80 { ACTION_F3, BUTTON_F3, BUTTON_NONE },
81 { ACTION_WPS_ABSETB_NEXTDIR, BUTTON_ON|BUTTON_RIGHT, BUTTON_NONE },
82 { ACTION_WPS_ABSETA_PREVDIR, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE },
83 { ACTION_WPSAB_RESET, BUTTON_ON|BUTTON_OFF, BUTTON_ON },
84
85
86 LAST_ITEM_IN_LIST
87};
88
89static const struct button_mapping button_context_settings[] = {
90 { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
91 { ACTION_SETTINGS_INCREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
92 { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE },
93 { ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
94 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
95 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
96 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
97 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
98
99 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
100};
101
102static const struct button_mapping button_context_tree[] = {
103 { ACTION_TREE_WPS, BUTTON_ON|BUTTON_REL, BUTTON_ON },
104 { ACTION_TREE_STOP, BUTTON_OFF, BUTTON_NONE },
105 { ACTION_NONE, BUTTON_ON, BUTTON_NONE },
106 { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP, BUTTON_ON },
107 { ACTION_LISTTREE_PGUP, BUTTON_UP|BUTTON_REL, BUTTON_ON|BUTTON_UP },
108 { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
109 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN, BUTTON_ON },
110 { ACTION_LISTTREE_PGDOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_ON|BUTTON_DOWN },
111 { ACTION_LISTTREE_PGDOWN, BUTTON_ON|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
112 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
113}; /* button_context_listtree */
114
115static const struct button_mapping button_context_tree_scroll_lr[] = {
116 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
117 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
118 { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
119 { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
120 { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
121 { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
122 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
123 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
124 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
125 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|1),
126};
127
128static const struct button_mapping button_context_yesno[] = {
129 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
130
131 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
132};
133static const struct button_mapping button_context_quickscreen[] = {
134 { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
135 { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
136 { ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
137 { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
138 { ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
139 { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
140 { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
141 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
142 { ACTION_STD_CANCEL, BUTTON_SELECT, BUTTON_NONE },
143
144 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
145}; /* button_context_quickscreen */
146
147static const struct button_mapping button_context_pitchscreen[] = {
148 { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE },
149 { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
150 { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE },
151 { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
152 { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
153 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
154 { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
155 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
156 { ACTION_PS_TOGGLE_MODE, BUTTON_F1, BUTTON_NONE },
157 { ACTION_PS_RESET, BUTTON_ON, BUTTON_NONE },
158 { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE },
159
160 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
161}; /* button_context_pitchcreen */
162
163static const struct button_mapping button_context_recscreen[] = {
164 { ACTION_REC_PAUSE, BUTTON_SELECT, BUTTON_NONE },
165 { ACTION_REC_F2, BUTTON_F2, BUTTON_NONE },
166 { ACTION_REC_F3, BUTTON_F3, BUTTON_NONE },
167 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
168 { ACTION_SETTINGS_INC, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
169 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
170 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
171
172 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
173}; /* button_context_recscreen */
174
175static const struct button_mapping button_context_keyboard[] = {
176 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
177 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
178 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
179 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
180 { ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE },
181 { ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
182 { ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_NONE },
183 { ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
184 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
185 { ACTION_KBD_PAGE_FLIP, BUTTON_F1, BUTTON_NONE },
186 { ACTION_KBD_DONE, BUTTON_F2, BUTTON_NONE },
187 { ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE },
188 { ACTION_KBD_BACKSPACE, BUTTON_F3, BUTTON_NONE },
189 { ACTION_KBD_BACKSPACE, BUTTON_F3|BUTTON_REPEAT, BUTTON_NONE },
190 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
191 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
192 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
193 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
194
195 LAST_ITEM_IN_LIST
196}; /* button_context_keyboard */
197
198static const struct button_mapping button_context_bmark[] = {
199 { ACTION_BMS_DELETE, BUTTON_SELECT|BUTTON_ON, BUTTON_SELECT },
200 { ACTION_BMS_DELETE, BUTTON_SELECT|BUTTON_ON, BUTTON_ON },
201 { ACTION_BMS_EXIT, BUTTON_OFF, BUTTON_NONE },
202 { ACTION_BMS_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
203
204 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
205
206}; /* button_context_settings_bmark */
207
208static const struct button_mapping button_context_radio[] = {
209 { ACTION_FM_MENU, BUTTON_F1, BUTTON_NONE },
210 { ACTION_FM_PRESET, BUTTON_F2, BUTTON_NONE },
211 { ACTION_FM_RECORD, BUTTON_F3, BUTTON_NONE },
212 { ACTION_FM_FREEZE, BUTTON_SELECT, BUTTON_NONE },
213 { ACTION_FM_STOP, BUTTON_OFF, BUTTON_NONE },
214 { ACTION_FM_MODE, BUTTON_ON | BUTTON_REPEAT, BUTTON_ON },
215 { ACTION_FM_EXIT, BUTTON_ON | BUTTON_REL, BUTTON_ON },
216
217 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
218
219};
220
221const struct button_mapping* get_context_mapping( int context )
222{
223 switch( context )
224 {
225 case CONTEXT_WPS:
226 return button_context_wps;
227 case CONTEXT_SETTINGS_TIME:
228 case CONTEXT_SETTINGS:
229 return button_context_settings;
230
231 case CONTEXT_YESNOSCREEN:
232 return button_context_yesno;
233
234 case CONTEXT_PITCHSCREEN:
235 return button_context_pitchscreen;
236 case CONTEXT_BOOKMARKSCREEN:
237 return button_context_bmark;
238 case CONTEXT_TREE:
239 if (global_settings.hold_lr_for_scroll_in_list)
240 return button_context_tree_scroll_lr;
241 /* else fall through to CUSTOM|1 */
242 case CONTEXT_CUSTOM|1:
243 return button_context_tree;
244
245 case CONTEXT_QUICKSCREEN:
246 return button_context_quickscreen;
247
248 case CONTEXT_RECSCREEN:
249 return button_context_recscreen;
250 case CONTEXT_KEYBOARD:
251 return button_context_keyboard;
252 case CONTEXT_FM:
253 return button_context_radio;
254
255 case CONTEXT_STD:
256 case CONTEXT_LIST:
257 case CONTEXT_MAINMENU:
258 default:
259 return button_context_standard;
260 }
261}
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index c285a9e2d6..686c4674f3 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -29,7 +29,8 @@ pacbox
29#endif 29#endif
30 30
31/* For all the color targets apart from the Gigabeat */ 31/* For all the color targets apart from the Gigabeat */
32#if (defined(HAVE_LCD_COLOR) && !defined(TOSHIBA_GIGABEAT_F)) || (LCD_DEPTH == 2) 32#if (defined(HAVE_LCD_COLOR) && !defined(TOSHIBA_GIGABEAT_F)) || \
33 (LCD_DEPTH == 2) && !defined(ARCHOS_AV300)
33doom 34doom
34#endif 35#endif
35 36
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 53a8b22b21..568597c95a 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -243,6 +243,11 @@ sudoku_inverse.160x128x2.bmp
243sudoku_start.220x176x16.bmp 243sudoku_start.220x176x16.bmp
244sudoku_normal.220x176x16.bmp 244sudoku_normal.220x176x16.bmp
245sudoku_inverse.220x176x16.bmp 245sudoku_inverse.220x176x16.bmp
246#elif (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) && (LCD_DEPTH == 2)
247/* Temporary bitmaps for Archos AV300 */
248sudoku_start.320x240x16.bmp
249sudoku_normal.320x240x16.bmp
250sudoku_inverse.320x240x16.bmp
246#elif (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) && (LCD_DEPTH == 16) 251#elif (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) && (LCD_DEPTH == 16)
247sudoku_start.320x240x16.bmp 252sudoku_start.320x240x16.bmp
248sudoku_normal.320x240x16.bmp 253sudoku_normal.320x240x16.bmp
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 2fd2c28ad2..40794241e6 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -35,6 +35,12 @@ PLUGIN_HEADER
35#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) 35#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
36#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL) 36#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL)
37 37
38#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
39#define BOUNCE_UP BUTTON_UP
40#define BOUNCE_DOWN BUTTON_DOWN
41#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
42#define BOUNCE_MODE (BUTTON_ON | BUTTON_REL)
43
38#elif CONFIG_KEYPAD == ONDIO_PAD 44#elif CONFIG_KEYPAD == ONDIO_PAD
39#define BOUNCE_UP BUTTON_UP 45#define BOUNCE_UP BUTTON_UP
40#define BOUNCE_DOWN BUTTON_DOWN 46#define BOUNCE_DOWN BUTTON_DOWN
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 5bcecce33b..12ad2c0030 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -64,6 +64,19 @@ PLUGIN_HEADER
64#define SCROLL_FWD(x) (0) 64#define SCROLL_FWD(x) (0)
65#define SCROLL_BACK(x) (0) 65#define SCROLL_BACK(x) (0)
66 66
67#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
68
69#define QUIT BUTTON_OFF
70#define LEFT BUTTON_LEFT
71#define RIGHT BUTTON_RIGHT
72#define SELECT BUTTON_SELECT
73#define UP BUTTON_UP
74#define DOWN BUTTON_DOWN
75
76/* Only iPod have scroll events */
77#define SCROLL_FWD(x) (0)
78#define SCROLL_BACK(x) (0)
79
67#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 80#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
68 (CONFIG_KEYPAD == IPOD_4G_PAD) 81 (CONFIG_KEYPAD == IPOD_4G_PAD)
69 82
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 608af85938..eb1e613ff1 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -116,6 +116,15 @@ PLUGIN_HEADER
116#define CALCULATOR_OPERATORS BUTTON_F2 116#define CALCULATOR_OPERATORS BUTTON_F2
117#define CALCULATOR_CLEAR BUTTON_F1 117#define CALCULATOR_CLEAR BUTTON_F1
118 118
119#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
120#define CALCULATOR_UP BUTTON_UP
121#define CALCULATOR_DOWN BUTTON_DOWN
122#define CALCULATOR_QUIT BUTTON_OFF
123#define CALCULATOR_INPUT BUTTON_SELECT
124#define CALCULATOR_CALC BUTTON_F3
125#define CALCULATOR_OPERATORS BUTTON_F2
126#define CALCULATOR_CLEAR BUTTON_F1
127
119#elif CONFIG_KEYPAD == ONDIO_PAD 128#elif CONFIG_KEYPAD == ONDIO_PAD
120#define CALCULATOR_UP BUTTON_UP 129#define CALCULATOR_UP BUTTON_UP
121#define CALCULATOR_DOWN BUTTON_DOWN 130#define CALCULATOR_DOWN BUTTON_DOWN
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index 3a69fc999a..c6a79e4ec7 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -96,6 +96,17 @@ PLUGIN_HEADER
96#define CB_RESTART BUTTON_F3 96#define CB_RESTART BUTTON_F3
97#define CB_QUIT BUTTON_OFF 97#define CB_QUIT BUTTON_OFF
98 98
99#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
100#define CB_SELECT BUTTON_SELECT
101#define CB_UP BUTTON_UP
102#define CB_DOWN BUTTON_DOWN
103#define CB_LEFT BUTTON_LEFT
104#define CB_RIGHT BUTTON_RIGHT
105#define CB_PLAY BUTTON_ON
106#define CB_LEVEL BUTTON_F1
107#define CB_RESTART BUTTON_F3
108#define CB_QUIT BUTTON_OFF
109
99#elif CONFIG_KEYPAD == ONDIO_PAD 110#elif CONFIG_KEYPAD == ONDIO_PAD
100#define CB_SELECT_PRE BUTTON_MENU 111#define CB_SELECT_PRE BUTTON_MENU
101#define CB_SELECT (BUTTON_MENU|BUTTON_REL) 112#define CB_SELECT (BUTTON_MENU|BUTTON_REL)
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index c0da728446..5269e454f1 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -32,6 +32,17 @@ PLUGIN_HEADER
32#define CHC_SETTINGS_OK2 BUTTON_LEFT 32#define CHC_SETTINGS_OK2 BUTTON_LEFT
33#define CHC_SETTINGS_CANCEL BUTTON_OFF 33#define CHC_SETTINGS_CANCEL BUTTON_OFF
34 34
35#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
36#define CHC_QUIT BUTTON_OFF
37#define CHC_STARTSTOP BUTTON_SELECT
38#define CHC_RESET BUTTON_LEFT
39#define CHC_MENU BUTTON_F1
40#define CHC_SETTINGS_INC BUTTON_UP
41#define CHC_SETTINGS_DEC BUTTON_DOWN
42#define CHC_SETTINGS_OK BUTTON_SELECT
43#define CHC_SETTINGS_OK2 BUTTON_LEFT
44#define CHC_SETTINGS_CANCEL BUTTON_OFF
45
35#elif CONFIG_KEYPAD == ONDIO_PAD 46#elif CONFIG_KEYPAD == ONDIO_PAD
36#define CHC_QUIT BUTTON_OFF 47#define CHC_QUIT BUTTON_OFF
37#define CHC_STARTSTOP BUTTON_RIGHT 48#define CHC_STARTSTOP BUTTON_RIGHT
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 6c6c9f44b6..44cc58c9d5 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -959,6 +959,18 @@ STATIC void chip8 (void)
959#define CHIP8_KEY8 BUTTON_DOWN 959#define CHIP8_KEY8 BUTTON_DOWN
960#define CHIP8_KEY9 BUTTON_ON 960#define CHIP8_KEY9 BUTTON_ON
961 961
962#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD /* only 9 out of 16 chip8 buttons */
963#define CHIP8_OFF BUTTON_OFF
964#define CHIP8_KEY1 BUTTON_F1
965#define CHIP8_KEY2 BUTTON_UP
966#define CHIP8_KEY3 BUTTON_F3
967#define CHIP8_KEY4 BUTTON_LEFT
968#define CHIP8_KEY5 BUTTON_SELECT
969#define CHIP8_KEY6 BUTTON_RIGHT
970#define CHIP8_KEY7 BUTTON_F2
971#define CHIP8_KEY8 BUTTON_DOWN
972#define CHIP8_KEY9 BUTTON_ON
973
962#elif CONFIG_KEYPAD == ONDIO_PAD /* even more limited */ 974#elif CONFIG_KEYPAD == ONDIO_PAD /* even more limited */
963#define CHIP8_OFF BUTTON_OFF 975#define CHIP8_OFF BUTTON_OFF
964#define CHIP8_KEY2 BUTTON_UP 976#define CHIP8_KEY2 BUTTON_UP
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c
index 569b201cab..28cd223795 100644
--- a/apps/plugins/clock.c
+++ b/apps/plugins/clock.c
@@ -134,6 +134,25 @@ PLUGIN_HEADER
134#define MENU_BUTTON_TEXT "PLAY" 134#define MENU_BUTTON_TEXT "PLAY"
135#define COUNTER_BUTTON_TEXT "ON" 135#define COUNTER_BUTTON_TEXT "ON"
136 136
137#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
138
139#define COUNTER_TOGGLE_BUTTON (BUTTON_ON|BUTTON_REL)
140#define COUNTER_RESET_BUTTON (BUTTON_ON|BUTTON_REPEAT)
141#define MENU_BUTTON BUTTON_SELECT
142#define ALT_MENU_BUTTON BUTTON_F1
143#define EXIT_BUTTON BUTTON_OFF
144#define MOVE_UP_BUTTON BUTTON_UP
145#define MOVE_DOWN_BUTTON BUTTON_DOWN
146#define CHANGE_UP_BUTTON BUTTON_RIGHT
147#define CHANGE_DOWN_BUTTON BUTTON_LEFT
148
149#define YESTEXT "Select"
150#define NAVI_BUTTON_TEXT_LEFT "LEFT"
151#define NAVI_BUTTON_TEXT_RIGHT "RIGHT"
152#define EXIT_BUTTON_TEXT "OFF"
153#define MENU_BUTTON_TEXT "SELECT"
154#define COUNTER_BUTTON_TEXT "ON"
155
137#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) 156#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD)
138 157
139#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL) 158#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL)
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 00c9a3b606..57f1015368 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -41,6 +41,18 @@ PLUGIN_HEADER
41#define CUBE_PAUSE BUTTON_PLAY 41#define CUBE_PAUSE BUTTON_PLAY
42#define CUBE_HIGHSPEED BUTTON_ON 42#define CUBE_HIGHSPEED BUTTON_ON
43 43
44#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
45#define CUBE_QUIT BUTTON_OFF
46#define CUBE_X_INC BUTTON_RIGHT
47#define CUBE_X_DEC BUTTON_LEFT
48#define CUBE_Y_INC BUTTON_UP
49#define CUBE_Y_DEC BUTTON_DOWN
50#define CUBE_Z_INC BUTTON_F2
51#define CUBE_Z_DEC BUTTON_F1
52#define CUBE_MODE BUTTON_F3
53#define CUBE_PAUSE BUTTON_SELECT
54#define CUBE_HIGHSPEED BUTTON_ON
55
44#elif CONFIG_KEYPAD == PLAYER_PAD 56#elif CONFIG_KEYPAD == PLAYER_PAD
45#define CUBE_QUIT BUTTON_STOP 57#define CUBE_QUIT BUTTON_STOP
46#define CUBE_X_INC BUTTON_RIGHT 58#define CUBE_X_INC BUTTON_RIGHT
diff --git a/apps/plugins/dice.c b/apps/plugins/dice.c
index 99c88f431d..8638cb8cc3 100644
--- a/apps/plugins/dice.c
+++ b/apps/plugins/dice.c
@@ -69,6 +69,15 @@ use stop to exit
69#define DICE_BUTTON_ON BUTTON_ON 69#define DICE_BUTTON_ON BUTTON_ON
70#define DICE_BUTTON_SELECT BUTTON_PLAY 70#define DICE_BUTTON_SELECT BUTTON_PLAY
71 71
72#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
73#define DICE_BUTTON_UP BUTTON_UP
74#define DICE_BUTTON_DOWN BUTTON_DOWN
75#define DICE_BUTTON_LEFT BUTTON_LEFT
76#define DICE_BUTTON_RIGHT BUTTON_RIGHT
77#define DICE_BUTTON_OFF BUTTON_OFF
78#define DICE_BUTTON_ON BUTTON_ON
79#define DICE_BUTTON_SELECT BUTTON_SELECT
80
72#elif CONFIG_KEYPAD == ONDIO_PAD 81#elif CONFIG_KEYPAD == ONDIO_PAD
73#define DICE_BUTTON_UP BUTTON_UP 82#define DICE_BUTTON_UP BUTTON_UP
74#define DICE_BUTTON_DOWN BUTTON_DOWN 83#define DICE_BUTTON_DOWN BUTTON_DOWN
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index 7af75f545b..88cc39d6cc 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -45,6 +45,12 @@ enum tidy_system
45#define TIDY_LEFT BUTTON_LEFT 45#define TIDY_LEFT BUTTON_LEFT
46#define TIDY_RIGHT BUTTON_RIGHT 46#define TIDY_RIGHT BUTTON_RIGHT
47 47
48#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
49#define TIDY_DO BUTTON_ON
50#define TIDY_STOP BUTTON_OFF
51#define TIDY_LEFT BUTTON_LEFT
52#define TIDY_RIGHT BUTTON_RIGHT
53
48#elif CONFIG_KEYPAD == ONDIO_PAD 54#elif CONFIG_KEYPAD == ONDIO_PAD
49#define TIDY_DO BUTTON_MENU 55#define TIDY_DO BUTTON_MENU
50#define TIDY_STOP BUTTON_OFF 56#define TIDY_STOP BUTTON_OFF
@@ -369,6 +375,9 @@ void tidy_lcd_menu(enum tidy_system system)
369#if CONFIG_KEYPAD == RECORDER_PAD 375#if CONFIG_KEYPAD == RECORDER_PAD
370 rb->lcd_puts(0, 0, "[On] to clean up"); 376 rb->lcd_puts(0, 0, "[On] to clean up");
371 rb->lcd_puts(0, 1, "[Off] to exit/abort"); 377 rb->lcd_puts(0, 1, "[Off] to exit/abort");
378#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
379 rb->lcd_puts(0, 0, "[On] to clean up");
380 rb->lcd_puts(0, 1, "[Off] to exit/abort");
372#elif CONFIG_KEYPAD == ONDIO_PAD 381#elif CONFIG_KEYPAD == ONDIO_PAD
373 rb->lcd_puts(0, 0, "[Menu] to clean up"); 382 rb->lcd_puts(0, 0, "[Menu] to clean up");
374 rb->lcd_puts(0, 1, "[Off] to exit/abort"); 383 rb->lcd_puts(0, 1, "[Off] to exit/abort");
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c
index d03afa2aef..2e762cb9e9 100644
--- a/apps/plugins/fire.c
+++ b/apps/plugins/fire.c
@@ -59,6 +59,13 @@ static unsigned char draw_buffer[8*LCD_WIDTH];
59#define FIRE_INCREASE_MULT BUTTON_UP 59#define FIRE_INCREASE_MULT BUTTON_UP
60#define FIRE_DECREASE_MULT BUTTON_DOWN 60#define FIRE_DECREASE_MULT BUTTON_DOWN
61 61
62#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
63#define FIRE_QUIT BUTTON_OFF
64#define FIRE_SWITCH_FLAMES_TYPE BUTTON_ON
65#define FIRE_SWITCH_FLAMES_MOVING BUTTON_SELECT
66#define FIRE_INCREASE_MULT BUTTON_UP
67#define FIRE_DECREASE_MULT BUTTON_DOWN
68
62#elif CONFIG_KEYPAD == ONDIO_PAD 69#elif CONFIG_KEYPAD == ONDIO_PAD
63#define FIRE_QUIT BUTTON_OFF 70#define FIRE_QUIT BUTTON_OFF
64#define FIRE_SWITCH_FLAMES_TYPE BUTTON_MENU 71#define FIRE_SWITCH_FLAMES_TYPE BUTTON_MENU
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 5a4632749a..8b8ee3398b 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -39,6 +39,9 @@ static struct plugin_api* rb;
39#elif (CONFIG_KEYPAD == RECORDER_PAD) 39#elif (CONFIG_KEYPAD == RECORDER_PAD)
40#define BTN_MENU BUTTON_OFF 40#define BTN_MENU BUTTON_OFF
41#define BTN_FIRE BUTTON_PLAY 41#define BTN_FIRE BUTTON_PLAY
42#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
43#define BTN_MENU BUTTON_OFF
44#define BTN_FIRE BUTTON_SELECT
42#elif (CONFIG_KEYPAD == ONDIO_PAD) 45#elif (CONFIG_KEYPAD == ONDIO_PAD)
43#define BTN_MENU BUTTON_MENU 46#define BTN_MENU BUTTON_MENU
44#define BTN_FIRE BUTTON_UP 47#define BTN_FIRE BUTTON_UP
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 0dd2fa5143..bdf15b7bff 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -30,6 +30,15 @@ PLUGIN_HEADER
30#define FLIPIT_STEP_BY_STEP BUTTON_F3 30#define FLIPIT_STEP_BY_STEP BUTTON_F3
31#define FLIPIT_TOGGLE BUTTON_PLAY 31#define FLIPIT_TOGGLE BUTTON_PLAY
32 32
33#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
34#define FLIPIT_UP BUTTON_UP
35#define FLIPIT_DOWN BUTTON_DOWN
36#define FLIPIT_QUIT BUTTON_OFF
37#define FLIPIT_SHUFFLE BUTTON_F1
38#define FLIPIT_SOLVE BUTTON_F2
39#define FLIPIT_STEP_BY_STEP BUTTON_F3
40#define FLIPIT_TOGGLE BUTTON_SELECT
41
33#elif CONFIG_KEYPAD == PLAYER_PAD 42#elif CONFIG_KEYPAD == PLAYER_PAD
34#define FLIPIT_UP_PRE BUTTON_ON 43#define FLIPIT_UP_PRE BUTTON_ON
35#define FLIPIT_UP (BUTTON_ON | BUTTON_REL) 44#define FLIPIT_UP (BUTTON_ON | BUTTON_REL)
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 46a97f8d07..ba74879359 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -35,6 +35,14 @@ PLUGIN_HEADER
35#define JEWELS_SELECT BUTTON_PLAY 35#define JEWELS_SELECT BUTTON_PLAY
36#define JEWELS_CANCEL BUTTON_OFF 36#define JEWELS_CANCEL BUTTON_OFF
37 37
38#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
39#define JEWELS_UP BUTTON_UP
40#define JEWELS_DOWN BUTTON_DOWN
41#define JEWELS_LEFT BUTTON_LEFT
42#define JEWELS_RIGHT BUTTON_RIGHT
43#define JEWELS_SELECT BUTTON_SELECT
44#define JEWELS_CANCEL BUTTON_OFF
45
38#elif CONFIG_KEYPAD == ONDIO_PAD 46#elif CONFIG_KEYPAD == ONDIO_PAD
39#define JEWELS_UP BUTTON_UP 47#define JEWELS_UP BUTTON_UP
40#define JEWELS_DOWN BUTTON_DOWN 48#define JEWELS_DOWN BUTTON_DOWN
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index f36bdd1bb3..8b90c21d61 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -45,6 +45,16 @@ PLUGIN_HEADER
45#define JPEG_PREVIOUS BUTTON_F2 45#define JPEG_PREVIOUS BUTTON_F2
46#define JPEG_MENU BUTTON_OFF 46#define JPEG_MENU BUTTON_OFF
47 47
48#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
49#define JPEG_ZOOM_IN BUTTON_SELECT
50#define JPEG_ZOOM_OUT BUTTON_ON
51#define JPEG_UP BUTTON_UP
52#define JPEG_DOWN BUTTON_DOWN
53#define JPEG_LEFT BUTTON_LEFT
54#define JPEG_RIGHT BUTTON_RIGHT
55#define JPEG_NEXT BUTTON_F3
56#define JPEG_PREVIOUS BUTTON_F2
57#define JPEG_MENU BUTTON_OFF
48 58
49#elif CONFIG_KEYPAD == ONDIO_PAD 59#elif CONFIG_KEYPAD == ONDIO_PAD
50#define JPEG_ZOOM_PRE BUTTON_MENU 60#define JPEG_ZOOM_PRE BUTTON_MENU
diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h
index b78163f25e..7ce43ce9e4 100644
--- a/apps/plugins/lib/pluginlib_actions.h
+++ b/apps/plugins/lib/pluginlib_actions.h
@@ -52,6 +52,7 @@ static const struct button_mapping generic_directions[] =
52 || (CONFIG_KEYPAD == IAUDIO_X5_PAD) \ 52 || (CONFIG_KEYPAD == IAUDIO_X5_PAD) \
53 || (CONFIG_KEYPAD == GIGABEAT_PAD) \ 53 || (CONFIG_KEYPAD == GIGABEAT_PAD) \
54 || (CONFIG_KEYPAD == RECORDER_PAD) \ 54 || (CONFIG_KEYPAD == RECORDER_PAD) \
55 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \
55 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) 56 || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
56 { PLA_UP, BUTTON_UP, BUTTON_NONE}, 57 { PLA_UP, BUTTON_UP, BUTTON_NONE},
57 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, 58 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
@@ -145,6 +146,13 @@ static const struct button_mapping generic_left_right_fire[] =
145 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, 146 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
146 { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, 147 { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE},
147 { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 148 { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
149#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
150 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
151 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
152 { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
153 { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
154 { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
155 { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
148#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 156#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
149 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, 157 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
150 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, 158 { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
@@ -199,6 +207,12 @@ static const struct button_mapping generic_actions[] =
199 {PLA_MENU, BUTTON_F1, BUTTON_NONE}, 207 {PLA_MENU, BUTTON_F1, BUTTON_NONE},
200 {PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, 208 {PLA_FIRE, BUTTON_PLAY, BUTTON_NONE},
201 {PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, 209 {PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
210#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
211 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE},
212 {PLA_START, BUTTON_ON, BUTTON_NONE},
213 {PLA_MENU, BUTTON_F1, BUTTON_NONE},
214 {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
215 {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
202#elif CONFIG_KEYPAD == ONDIO_PAD 216#elif CONFIG_KEYPAD == ONDIO_PAD
203 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE}, 217 {PLA_QUIT, BUTTON_OFF, BUTTON_NONE},
204 {PLA_START, BUTTON_MENU, BUTTON_NONE}, 218 {PLA_START, BUTTON_MENU, BUTTON_NONE},
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 69c0fca98b..113737ba56 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -39,6 +39,18 @@ PLUGIN_HEADER
39#define MANDELBROT_MAXITER_DEC BUTTON_F1 39#define MANDELBROT_MAXITER_DEC BUTTON_F1
40#define MANDELBROT_RESET BUTTON_F3 40#define MANDELBROT_RESET BUTTON_F3
41 41
42#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
43#define MANDELBROT_QUIT BUTTON_OFF
44#define MANDELBROT_UP BUTTON_UP
45#define MANDELBROT_DOWN BUTTON_DOWN
46#define MANDELBROT_LEFT BUTTON_LEFT
47#define MANDELBROT_RIGHT BUTTON_RIGHT
48#define MANDELBROT_ZOOM_IN BUTTON_SELECT
49#define MANDELBROT_ZOOM_OUT BUTTON_ON
50#define MANDELBROT_MAXITER_INC BUTTON_F2
51#define MANDELBROT_MAXITER_DEC BUTTON_F1
52#define MANDELBROT_RESET BUTTON_F3
53
42#elif CONFIG_KEYPAD == ONDIO_PAD 54#elif CONFIG_KEYPAD == ONDIO_PAD
43#define MANDELBROT_QUIT BUTTON_OFF 55#define MANDELBROT_QUIT BUTTON_OFF
44#define MANDELBROT_UP BUTTON_UP 56#define MANDELBROT_UP BUTTON_UP
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 2a8afc37ab..cd7446eee2 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -38,6 +38,18 @@ static struct plugin_api* rb;
38#define MAZEZAM_QUIT BUTTON_OFF 38#define MAZEZAM_QUIT BUTTON_OFF
39#define MAZEZAM_QUIT_KEYNAME "[OFF]" 39#define MAZEZAM_QUIT_KEYNAME "[OFF]"
40 40
41#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
42#define MAZEZAM_UP BUTTON_UP
43#define MAZEZAM_DOWN BUTTON_DOWN
44#define MAZEZAM_LEFT BUTTON_LEFT
45#define MAZEZAM_RIGHT BUTTON_RIGHT
46#define MAZEZAM_SELECT BUTTON_SELECT
47
48#define MAZEZAM_RETRY BUTTON_F1
49#define MAZEZAM_RETRY_KEYNAME "[F1]"
50#define MAZEZAM_QUIT BUTTON_OFF
51#define MAZEZAM_QUIT_KEYNAME "[OFF]"
52
41#elif CONFIG_KEYPAD == ONDIO_PAD 53#elif CONFIG_KEYPAD == ONDIO_PAD
42#define MAZEZAM_UP BUTTON_UP 54#define MAZEZAM_UP BUTTON_UP
43#define MAZEZAM_DOWN BUTTON_DOWN 55#define MAZEZAM_DOWN BUTTON_DOWN
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 4859e4772f..2500fed8ce 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -45,6 +45,19 @@ enum minesweeper_status {
45# define MINESWP_RIGHT (BUTTON_F1 | BUTTON_RIGHT) 45# define MINESWP_RIGHT (BUTTON_F1 | BUTTON_RIGHT)
46# define MINESWP_LEFT (BUTTON_F1 | BUTTON_LEFT) 46# define MINESWP_LEFT (BUTTON_F1 | BUTTON_LEFT)
47 47
48#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
49# define MINESWP_UP BUTTON_UP
50# define MINESWP_DOWN BUTTON_DOWN
51# define MINESWP_QUIT BUTTON_OFF
52# define MINESWP_START BUTTON_ON
53# define MINESWP_TOGGLE BUTTON_SELECT
54# define MINESWP_TOGGLE2 BUTTON_F1
55# define MINESWP_DISCOVER BUTTON_ON
56# define MINESWP_DISCOVER2 BUTTON_F2
57# define MINESWP_INFO BUTTON_F3
58# define MINESWP_RIGHT (BUTTON_F1 | BUTTON_RIGHT)
59# define MINESWP_LEFT (BUTTON_F1 | BUTTON_LEFT)
60
48#elif CONFIG_KEYPAD == ONDIO_PAD 61#elif CONFIG_KEYPAD == ONDIO_PAD
49# define MINESWP_UP BUTTON_UP 62# define MINESWP_UP BUTTON_UP
50# define MINESWP_DOWN BUTTON_DOWN 63# define MINESWP_DOWN BUTTON_DOWN
@@ -423,6 +436,8 @@ enum minesweeper_status menu( void )
423 rb->lcd_puts( 0, 6, 436 rb->lcd_puts( 0, 6,
424#if CONFIG_KEYPAD == RECORDER_PAD 437#if CONFIG_KEYPAD == RECORDER_PAD
425 "ON to start" 438 "ON to start"
439#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
440 "ON to start"
426#elif CONFIG_KEYPAD == ONDIO_PAD 441#elif CONFIG_KEYPAD == ONDIO_PAD
427 "MODE to start" 442 "MODE to start"
428#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) \ 443#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) \
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index b5f8594c4f..dca2c304b0 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -46,6 +46,11 @@ PLUGIN_HEADER
46#define MOSAIQUE_SPEED BUTTON_F1 46#define MOSAIQUE_SPEED BUTTON_F1
47#define MOSAIQUE_RESTART BUTTON_PLAY 47#define MOSAIQUE_RESTART BUTTON_PLAY
48 48
49#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
50#define MOSAIQUE_QUIT BUTTON_OFF
51#define MOSAIQUE_SPEED BUTTON_F1
52#define MOSAIQUE_RESTART BUTTON_SELECT
53
49#elif CONFIG_KEYPAD == PLAYER_PAD 54#elif CONFIG_KEYPAD == PLAYER_PAD
50#define MOSAIQUE_QUIT BUTTON_STOP 55#define MOSAIQUE_QUIT BUTTON_STOP
51#define MOSAIQUE_SPEED BUTTON_MENU 56#define MOSAIQUE_SPEED BUTTON_MENU
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index f8564b211a..c9120e4fe5 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -39,6 +39,17 @@ PLUGIN_HEADER
39#define OSCILLOSCOPE_VOL_UP BUTTON_UP 39#define OSCILLOSCOPE_VOL_UP BUTTON_UP
40#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN 40#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
41 41
42#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
43#define OSCILLOSCOPE_QUIT BUTTON_OFF
44#define OSCILLOSCOPE_DRAWMODE BUTTON_F1
45#define OSCILLOSCOPE_ADVMODE BUTTON_F2
46#define OSCILLOSCOPE_ORIENTATION BUTTON_F3
47#define OSCILLOSCOPE_PAUSE BUTTON_SELECT
48#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
49#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
50#define OSCILLOSCOPE_VOL_UP BUTTON_UP
51#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
52
42#elif CONFIG_KEYPAD == ONDIO_PAD 53#elif CONFIG_KEYPAD == ONDIO_PAD
43#define OSCILLOSCOPE_QUIT BUTTON_OFF 54#define OSCILLOSCOPE_QUIT BUTTON_OFF
44#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_MENU 55#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_MENU
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 5da61f5947..b257a3a539 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -44,6 +44,14 @@ PLUGIN_HEADER
44#define PONG_RIGHT_UP BUTTON_F3 44#define PONG_RIGHT_UP BUTTON_F3
45#define PONG_RIGHT_DOWN BUTTON_RIGHT 45#define PONG_RIGHT_DOWN BUTTON_RIGHT
46 46
47#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
48#define PONG_QUIT BUTTON_OFF
49#define PONG_PAUSE BUTTON_ON
50#define PONG_LEFT_UP BUTTON_F1
51#define PONG_LEFT_DOWN BUTTON_LEFT
52#define PONG_RIGHT_UP BUTTON_F3
53#define PONG_RIGHT_DOWN BUTTON_RIGHT
54
47#elif CONFIG_KEYPAD == ONDIO_PAD 55#elif CONFIG_KEYPAD == ONDIO_PAD
48#define PONG_QUIT BUTTON_OFF 56#define PONG_QUIT BUTTON_OFF
49#define PONG_PAUSE BUTTON_RIGHT 57#define PONG_PAUSE BUTTON_RIGHT
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index ef6fcafcd8..b77c9b1143 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -63,6 +63,17 @@ PLUGIN_HEADER
63#define ROCKBLOX_DROP BUTTON_ON 63#define ROCKBLOX_DROP BUTTON_ON
64#define ROCKBLOX_RESTART BUTTON_F1 64#define ROCKBLOX_RESTART BUTTON_F1
65 65
66#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
67
68#define ROCKBLOX_OFF BUTTON_OFF
69#define ROCKBLOX_ROTATE_RIGHT BUTTON_UP
70#define ROCKBLOX_ROTATE_LEFT BUTTON_SELECT
71#define ROCKBLOX_DOWN BUTTON_DOWN
72#define ROCKBLOX_LEFT BUTTON_LEFT
73#define ROCKBLOX_RIGHT BUTTON_RIGHT
74#define ROCKBLOX_DROP BUTTON_ON
75#define ROCKBLOX_RESTART BUTTON_F1
76
66#elif CONFIG_KEYPAD == PLAYER_PAD 77#elif CONFIG_KEYPAD == PLAYER_PAD
67 78
68#define ROCKBLOX_OFF BUTTON_STOP 79#define ROCKBLOX_OFF BUTTON_STOP
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 2fe226c9db..1fccdade12 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -29,6 +29,13 @@ PLUGIN_HEADER
29#define PUZZLE_SHUFFLE BUTTON_F1 29#define PUZZLE_SHUFFLE BUTTON_F1
30#define PUZZLE_PICTURE BUTTON_F2 30#define PUZZLE_PICTURE BUTTON_F2
31 31
32#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
33#define PUZZLE_QUIT BUTTON_OFF
34#define PUZZLE_UP BUTTON_UP
35#define PUZZLE_DOWN BUTTON_DOWN
36#define PUZZLE_SHUFFLE BUTTON_F1
37#define PUZZLE_PICTURE BUTTON_F2
38
32#elif CONFIG_KEYPAD == ONDIO_PAD 39#elif CONFIG_KEYPAD == ONDIO_PAD
33#define PUZZLE_QUIT BUTTON_OFF 40#define PUZZLE_QUIT BUTTON_OFF
34#define PUZZLE_UP BUTTON_UP 41#define PUZZLE_UP BUTTON_UP
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 6b27c04d6e..6cf197b4b0 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -42,6 +42,12 @@ PLUGIN_HEADER
42#define SNAKE_DOWN BUTTON_DOWN 42#define SNAKE_DOWN BUTTON_DOWN
43#define SNAKE_PLAYPAUSE BUTTON_PLAY 43#define SNAKE_PLAYPAUSE BUTTON_PLAY
44 44
45#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
46#define SNAKE_QUIT BUTTON_OFF
47#define SNAKE_UP BUTTON_UP
48#define SNAKE_DOWN BUTTON_DOWN
49#define SNAKE_PLAYPAUSE BUTTON_SELECT
50
45#elif CONFIG_KEYPAD == ONDIO_PAD 51#elif CONFIG_KEYPAD == ONDIO_PAD
46#define SNAKE_QUIT BUTTON_OFF 52#define SNAKE_QUIT BUTTON_OFF
47#define SNAKE_UP BUTTON_UP 53#define SNAKE_UP BUTTON_UP
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index adcf3ea17a..7a017e4742 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -157,6 +157,18 @@ PLUGIN_HEADER
157#define SNAKE2_PLAYPAUSE BUTTON_PLAY 157#define SNAKE2_PLAYPAUSE BUTTON_PLAY
158#define SNAKE2_PLAYPAUSE_TEXT "Play" 158#define SNAKE2_PLAYPAUSE_TEXT "Play"
159 159
160#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
161#define SNAKE2_UP BUTTON_UP
162#define SNAKE2_DOWN BUTTON_DOWN
163#define SNAKE2_QUIT BUTTON_OFF
164#define SNAKE2_LEVEL_UP BUTTON_UP
165#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
166#define SNAKE2_MAZE_NEXT BUTTON_RIGHT
167#define SNAKE2_MAZE_LAST BUTTON_LEFT
168#define SNAKE2_SELECT_TYPE BUTTON_F3
169#define SNAKE2_PLAYPAUSE BUTTON_SELECT
170#define SNAKE2_PLAYPAUSE_TEXT "Select"
171
160#elif CONFIG_KEYPAD == ONDIO_PAD 172#elif CONFIG_KEYPAD == ONDIO_PAD
161#define SNAKE2_UP BUTTON_UP 173#define SNAKE2_UP BUTTON_UP
162#define SNAKE2_DOWN BUTTON_DOWN 174#define SNAKE2_DOWN BUTTON_DOWN
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index fbbbf3ea06..b88df504d3 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -50,6 +50,15 @@ extern const fb_data sokoban_tiles[];
50#define SOKOBAN_LEVEL_DOWN BUTTON_F1 50#define SOKOBAN_LEVEL_DOWN BUTTON_F1
51#define SOKOBAN_LEVEL_REPEAT BUTTON_F2 51#define SOKOBAN_LEVEL_REPEAT BUTTON_F2
52 52
53#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
54#define SOKOBAN_UP BUTTON_UP
55#define SOKOBAN_DOWN BUTTON_DOWN
56#define SOKOBAN_QUIT BUTTON_OFF
57#define SOKOBAN_UNDO BUTTON_ON
58#define SOKOBAN_LEVEL_UP BUTTON_F3
59#define SOKOBAN_LEVEL_DOWN BUTTON_F1
60#define SOKOBAN_LEVEL_REPEAT BUTTON_F2
61
53#elif CONFIG_KEYPAD == ONDIO_PAD 62#elif CONFIG_KEYPAD == ONDIO_PAD
54#define SOKOBAN_UP BUTTON_UP 63#define SOKOBAN_UP BUTTON_UP
55#define SOKOBAN_DOWN BUTTON_DOWN 64#define SOKOBAN_DOWN BUTTON_DOWN
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 45e18834f3..835c3ab906 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -64,6 +64,23 @@ static struct plugin_api* rb;
64# define HK_CUR2STACK "F2" 64# define HK_CUR2STACK "F2"
65# define HK_REM2STACK "F3" 65# define HK_REM2STACK "F3"
66 66
67#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
68# define SOL_QUIT BUTTON_OFF
69# define SOL_UP BUTTON_UP
70# define SOL_DOWN BUTTON_DOWN
71# define SOL_LEFT BUTTON_LEFT
72# define SOL_RIGHT BUTTON_RIGHT
73# define SOL_MOVE BUTTON_ON
74# define SOL_DRAW BUTTON_F1
75# define SOL_REM2CUR BUTTON_SELECT
76# define SOL_CUR2STACK BUTTON_F2
77# define SOL_REM2STACK BUTTON_F3
78# define HK_MOVE "ON"
79# define HK_DRAW "F1"
80# define HK_REM2CUR "SELECT"
81# define HK_CUR2STACK "F2"
82# define HK_REM2STACK "F3"
83
67#elif CONFIG_KEYPAD == ONDIO_PAD 84#elif CONFIG_KEYPAD == ONDIO_PAD
68# define SOL_QUIT BUTTON_OFF 85# define SOL_QUIT BUTTON_OFF
69# define SOL_UP_PRE BUTTON_UP 86# define SOL_UP_PRE BUTTON_UP
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 673c931810..0143af97b7 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -38,6 +38,19 @@ static struct plugin_api* rb; /* global api struct pointer */
38#define AST_FIRE BUTTON_PLAY 38#define AST_FIRE BUTTON_PLAY
39#define AST_FIRE_REP BUTTON_PLAY | BUTTON_REPEAT 39#define AST_FIRE_REP BUTTON_PLAY | BUTTON_REPEAT
40 40
41#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
42#define AST_PAUSE BUTTON_ON
43#define AST_QUIT BUTTON_OFF
44#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
45#define AST_THRUST BUTTON_UP
46#define AST_HYPERSPACE BUTTON_DOWN
47#define AST_LEFT BUTTON_LEFT
48#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
49#define AST_RIGHT BUTTON_RIGHT
50#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
51#define AST_FIRE BUTTON_SELECT
52#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
53
41#elif CONFIG_KEYPAD == ONDIO_PAD 54#elif CONFIG_KEYPAD == ONDIO_PAD
42#define AST_PAUSE (BUTTON_MENU | BUTTON_OFF) 55#define AST_PAUSE (BUTTON_MENU | BUTTON_OFF)
43#define AST_QUIT BUTTON_OFF 56#define AST_QUIT BUTTON_OFF
@@ -147,6 +160,7 @@ static struct plugin_api* rb; /* global api struct pointer */
147 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 160 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
148 (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 161 (CONFIG_KEYPAD == IPOD_4G_PAD) || \
149 (CONFIG_KEYPAD == GIGABEAT_PAD)|| \ 162 (CONFIG_KEYPAD == GIGABEAT_PAD)|| \
163 (CONFIG_KEYPAD == ARCHOS_AV300_PAD)|| \
150 (CONFIG_KEYPAD == IRIVER_H10_PAD) 164 (CONFIG_KEYPAD == IRIVER_H10_PAD)
151 #define ENEMY_MISSILE_SURVIVAL_LENGTH 140 165 #define ENEMY_MISSILE_SURVIVAL_LENGTH 140
152 #define MISSILE_SURVIVAL_LENGTH 40 166 #define MISSILE_SURVIVAL_LENGTH 40
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 60debc5000..0287794031 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -71,6 +71,19 @@ PLUGIN_HEADER
71#define STAR_MENU_RUN2 BUTTON_RIGHT 71#define STAR_MENU_RUN2 BUTTON_RIGHT
72#define STAR_MENU_RUN3 BUTTON_ON 72#define STAR_MENU_RUN3 BUTTON_ON
73 73
74#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
75#define STAR_QUIT BUTTON_OFF
76#define STAR_UP BUTTON_UP
77#define STAR_DOWN BUTTON_DOWN
78#define STAR_TOGGLE_CONTROL BUTTON_ON
79#define STAR_TOGGLE_CONTROL2 BUTTON_SELECT
80#define STAR_LEVEL_UP BUTTON_F3
81#define STAR_LEVEL_DOWN BUTTON_F1
82#define STAR_LEVEL_REPEAT BUTTON_F2
83#define STAR_MENU_RUN BUTTON_SELECT
84#define STAR_MENU_RUN2 BUTTON_RIGHT
85#define STAR_MENU_RUN3 BUTTON_ON
86
74#elif CONFIG_KEYPAD == ONDIO_PAD 87#elif CONFIG_KEYPAD == ONDIO_PAD
75#define STAR_QUIT BUTTON_OFF 88#define STAR_QUIT BUTTON_OFF
76#define STAR_UP BUTTON_UP 89#define STAR_UP BUTTON_UP
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 8b02152a1b..b6a824e208 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -32,7 +32,8 @@ static int fontwidth, fontheight;
32#define STATS_STOP BUTTON_STOP 32#define STATS_STOP BUTTON_STOP
33 33
34#elif (CONFIG_KEYPAD == RECORDER_PAD) \ 34#elif (CONFIG_KEYPAD == RECORDER_PAD) \
35 || (CONFIG_KEYPAD == ONDIO_PAD) 35 || (CONFIG_KEYPAD == ONDIO_PAD) \
36 || (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
36#define STATS_STOP BUTTON_OFF 37#define STATS_STOP BUTTON_OFF
37 38
38#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) \ 39#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) \
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index f1e7355e65..d113af7f25 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -41,6 +41,13 @@ PLUGIN_HEADER
41#define STOPWATCH_LAP_TIMER BUTTON_ON 41#define STOPWATCH_LAP_TIMER BUTTON_ON
42#define STOPWATCH_SCROLL_UP BUTTON_UP 42#define STOPWATCH_SCROLL_UP BUTTON_UP
43#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 43#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
44#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
45#define STOPWATCH_QUIT BUTTON_OFF
46#define STOPWATCH_START_STOP BUTTON_SELECT
47#define STOPWATCH_RESET_TIMER BUTTON_LEFT
48#define STOPWATCH_LAP_TIMER BUTTON_ON
49#define STOPWATCH_SCROLL_UP BUTTON_UP
50#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
44#elif CONFIG_KEYPAD == ONDIO_PAD 51#elif CONFIG_KEYPAD == ONDIO_PAD
45#define STOPWATCH_QUIT BUTTON_OFF 52#define STOPWATCH_QUIT BUTTON_OFF
46#define STOPWATCH_START_STOP BUTTON_RIGHT 53#define STOPWATCH_START_STOP BUTTON_RIGHT
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index fefaf9f57d..2628e3254f 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -35,6 +35,16 @@
35#define SUDOKU_BUTTON_MENU BUTTON_F1 35#define SUDOKU_BUTTON_MENU BUTTON_F1
36#define SUDOKU_BUTTON_POSSIBLE BUTTON_F2 36#define SUDOKU_BUTTON_POSSIBLE BUTTON_F2
37 37
38#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
39#define SUDOKU_BUTTON_QUIT BUTTON_OFF
40#define SUDOKU_BUTTON_UP BUTTON_UP
41#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
42#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
43#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
44#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
45#define SUDOKU_BUTTON_MENU BUTTON_F1
46#define SUDOKU_BUTTON_POSSIBLE BUTTON_F2
47
38#elif CONFIG_KEYPAD == ONDIO_PAD 48#elif CONFIG_KEYPAD == ONDIO_PAD
39#define SUDOKU_BUTTON_QUIT BUTTON_OFF 49#define SUDOKU_BUTTON_QUIT BUTTON_OFF
40#define SUDOKU_BUTTON_UP BUTTON_UP 50#define SUDOKU_BUTTON_UP BUTTON_UP
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index af795e736b..a8ef5eb1e8 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -77,6 +77,19 @@ PLUGIN_HEADER
77#define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT) 77#define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT)
78#define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT) 78#define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT)
79 79
80#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
81#define VIEWER_QUIT BUTTON_OFF
82#define VIEWER_PAGE_UP BUTTON_UP
83#define VIEWER_PAGE_DOWN BUTTON_DOWN
84#define VIEWER_SCREEN_LEFT BUTTON_LEFT
85#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
86#define VIEWER_MENU BUTTON_F1
87#define VIEWER_AUTOSCROLL BUTTON_SELECT
88#define VIEWER_LINE_UP (BUTTON_ON | BUTTON_UP)
89#define VIEWER_LINE_DOWN (BUTTON_ON | BUTTON_DOWN)
90#define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT)
91#define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT)
92
80/* Ondio keys */ 93/* Ondio keys */
81#elif CONFIG_KEYPAD == ONDIO_PAD 94#elif CONFIG_KEYPAD == ONDIO_PAD
82#define VIEWER_QUIT BUTTON_OFF 95#define VIEWER_QUIT BUTTON_OFF
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 2ee708efed..cbfc0ee5b8 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -33,6 +33,17 @@ PLUGIN_HEADER
33#define VUMETER_UP BUTTON_UP 33#define VUMETER_UP BUTTON_UP
34#define VUMETER_DOWN BUTTON_DOWN 34#define VUMETER_DOWN BUTTON_DOWN
35 35
36#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
37#define VUMETER_QUIT BUTTON_OFF
38#define VUMETER_HELP BUTTON_ON
39#define VUMETER_MENU BUTTON_F1
40#define VUMETER_MENU_EXIT BUTTON_F1
41#define VUMETER_MENU_EXIT2 BUTTON_OFF
42#define VUMETER_LEFT BUTTON_LEFT
43#define VUMETER_RIGHT BUTTON_RIGHT
44#define VUMETER_UP BUTTON_UP
45#define VUMETER_DOWN BUTTON_DOWN
46
36#elif CONFIG_KEYPAD == ONDIO_PAD 47#elif CONFIG_KEYPAD == ONDIO_PAD
37#define VUMETER_QUIT BUTTON_OFF 48#define VUMETER_QUIT BUTTON_OFF
38#define VUMETER_HELP_PRE BUTTON_MENU 49#define VUMETER_HELP_PRE BUTTON_MENU
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 6a10fac984..5afefb77a8 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -63,6 +63,22 @@ PLUGIN_HEADER
63#define WORMS_TEXT "L/R" 63#define WORMS_TEXT "L/R"
64#define KEY_CONTROL_TEXT "F1" 64#define KEY_CONTROL_TEXT "F1"
65 65
66#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
67#define BTN_DIR_UP BUTTON_UP
68#define BTN_DIR_DOWN BUTTON_DOWN
69#define BTN_DIR_LEFT BUTTON_LEFT
70#define BTN_DIR_RIGHT BUTTON_RIGHT
71#define BTN_PLAYER2_DIR1 BUTTON_F2
72#define BTN_PLAYER2_DIR2 BUTTON_F3
73#define BTN_STARTPAUSE BUTTON_SELECT
74#define BTN_QUIT BUTTON_OFF
75#define BTN_STOPRESET BUTTON_ON
76#define BTN_TOGGLE_KEYS BUTTON_F1
77
78#define PLAYERS_TEXT "UP/DN"
79#define WORMS_TEXT "L/R"
80#define KEY_CONTROL_TEXT "F1"
81
66#elif (CONFIG_KEYPAD == ONDIO_PAD) 82#elif (CONFIG_KEYPAD == ONDIO_PAD)
67#define BTN_DIR_UP BUTTON_UP 83#define BTN_DIR_UP BUTTON_UP
68#define BTN_DIR_DOWN BUTTON_DOWN 84#define BTN_DIR_DOWN BUTTON_DOWN
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index e6b66b3ab5..5669894c5e 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -33,6 +33,16 @@ PLUGIN_HEADER
33 33
34#define RC_QUIT BUTTON_RC_STOP 34#define RC_QUIT BUTTON_RC_STOP
35 35
36#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
37
38#define QUIT BUTTON_OFF
39#define LEFT BUTTON_LEFT
40#define RIGHT BUTTON_RIGHT
41#define PAUSE BUTTON_ON
42#define UP BUTTON_UP
43#define DOWN BUTTON_DOWN
44#define SELECT BUTTON_SELECT
45
36#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 46#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
37 (CONFIG_KEYPAD == IPOD_4G_PAD) 47 (CONFIG_KEYPAD == IPOD_4G_PAD)
38 48
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index b7de0cb6a7..a967b3ab73 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -45,6 +45,14 @@
45#define ZX_UP BUTTON_UP 45#define ZX_UP BUTTON_UP
46#define ZX_DOWN BUTTON_DOWN 46#define ZX_DOWN BUTTON_DOWN
47 47
48#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
49#define ZX_SELECT BUTTON_SELECT
50#define ZX_MENU BUTTON_OFF
51#define ZX_LEFT BUTTON_LEFT
52#define ZX_RIGHT BUTTON_RIGHT
53#define ZX_UP BUTTON_UP
54#define ZX_DOWN BUTTON_DOWN
55
48#elif CONFIG_KEYPAD == ONDIO_PAD 56#elif CONFIG_KEYPAD == ONDIO_PAD
49#define ZX_SELECT BUTTON_MENU 57#define ZX_SELECT BUTTON_MENU
50#define ZX_MENU BUTTON_OFF 58#define ZX_MENU BUTTON_OFF
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index 4dcdc80110..693e48ba73 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -32,6 +32,14 @@
32#define KBD_UP BUTTON_UP 32#define KBD_UP BUTTON_UP
33#define KBD_DOWN BUTTON_DOWN 33#define KBD_DOWN BUTTON_DOWN
34 34
35#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
36#define KBD_SELECT BUTTON_SELECT
37#define KBD_ABORT BUTTON_OFF
38#define KBD_LEFT BUTTON_LEFT
39#define KBD_RIGHT BUTTON_RIGHT
40#define KBD_UP BUTTON_UP
41#define KBD_DOWN BUTTON_DOWN
42
35#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ 43#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */
36#define KBD_SELECT BUTTON_MENU 44#define KBD_SELECT BUTTON_MENU
37#define KBD_ABORT BUTTON_OFF 45#define KBD_ABORT BUTTON_OFF
diff --git a/apps/plugins/zxbox/zxvid_com.h b/apps/plugins/zxbox/zxvid_com.h
index 0483251b96..730971d6a5 100644
--- a/apps/plugins/zxbox/zxvid_com.h
+++ b/apps/plugins/zxbox/zxvid_com.h
@@ -13,6 +13,10 @@
13#if LCD_HEIGHT >= ZX_HEIGHT && LCD_WIDTH >= ZX_WIDTH 13#if LCD_HEIGHT >= ZX_HEIGHT && LCD_WIDTH >= ZX_WIDTH
14#define WIDTH LCD_WIDTH 14#define WIDTH LCD_WIDTH
15#define HEIGHT LCD_HEIGHT 15#define HEIGHT LCD_HEIGHT
16#define X_OFF 0
17#define Y_OFF 0
18#define X_STEP 1
19#define Y_STEP 1
16#else 20#else
17#define WIDTH 320 /* 256 */ 21#define WIDTH 320 /* 256 */
18#define HEIGHT 200 /* 192 */ 22#define HEIGHT 200 /* 192 */
diff --git a/apps/screens.h b/apps/screens.h
index 2bf2b32819..0a13a9ac8b 100644
--- a/apps/screens.h
+++ b/apps/screens.h
@@ -37,7 +37,7 @@ int mmc_remove_request(void);
37bool pitch_screen(void); 37bool pitch_screen(void);
38#endif 38#endif
39 39
40#if CONFIG_KEYPAD == RECORDER_PAD 40#ifdef BUTTON_F3
41extern bool quick_screen_f3(int button_enter); 41extern bool quick_screen_f3(int button_enter);
42#endif 42#endif
43extern bool quick_screen_quick(int button_enter); 43extern bool quick_screen_quick(int button_enter);
diff --git a/firmware/export/config.h b/firmware/export/config.h
index e37cc3f782..20fdc1d770 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -37,14 +37,15 @@
37#define SWCODEC 1 /* if codec is done by SW */ 37#define SWCODEC 1 /* if codec is done by SW */
38 38
39/* CONFIG_CPU */ 39/* CONFIG_CPU */
40#define SH7034 7034 40#define SH7034 7034
41#define MCF5249 5249 41#define MCF5249 5249
42#define MCF5250 5250 42#define MCF5250 5250
43#define PP5002 5002 43#define PP5002 5002
44#define PP5020 5020 44#define PP5020 5020
45#define PNX0101 101 45#define PNX0101 101
46#define S3C2440 2440 46#define S3C2440 2440
47#define PP5024 5024 47#define PP5024 5024
48#define TMS320DSC25 25
48 49
49/* CONFIG_KEYPAD */ 50/* CONFIG_KEYPAD */
50#define PLAYER_PAD 1 51#define PLAYER_PAD 1
@@ -60,6 +61,7 @@
60#define IRIVER_H10_PAD 11 61#define IRIVER_H10_PAD 11
61#define SANSA_E200_PAD 12 62#define SANSA_E200_PAD 12
62#define ELIO_TPJ1022_PAD 13 63#define ELIO_TPJ1022_PAD 13
64#define ARCHOS_AV300_PAD 14
63 65
64/* CONFIG_REMOTE_KEYPAD */ 66/* CONFIG_REMOTE_KEYPAD */
65#define H100_REMOTE 1 67#define H100_REMOTE 1
@@ -99,6 +101,7 @@
99#define LCD_H10 13 /* as used by iriver H10 20Gb */ 101#define LCD_H10 13 /* as used by iriver H10 20Gb */
100#define LCD_H10_5GB 14 /* as used by iriver H10 5Gb */ 102#define LCD_H10_5GB 14 /* as used by iriver H10 5Gb */
101#define LCD_TPJ1022 15 /* as used by Tatung Elio TPJ-1022 */ 103#define LCD_TPJ1022 15 /* as used by Tatung Elio TPJ-1022 */
104#define LCD_DSC25 16 /* as used by Archos AV300 */
102 105
103/* LCD_PIXELFORMAT */ 106/* LCD_PIXELFORMAT */
104#define HORIZONTAL_PACKING 1 107#define HORIZONTAL_PACKING 1
@@ -170,6 +173,8 @@
170#include "config-ondiosp.h" 173#include "config-ondiosp.h"
171#elif defined(ARCHOS_ONDIOFM) 174#elif defined(ARCHOS_ONDIOFM)
172#include "config-ondiofm.h" 175#include "config-ondiofm.h"
176#elif defined(ARCHOS_AV300)
177#include "config-av300.h"
173#elif defined(IRIVER_H100) 178#elif defined(IRIVER_H100)
174#include "config-h100.h" 179#include "config-h100.h"
175#elif defined(IRIVER_H120) 180#elif defined(IRIVER_H120)
@@ -255,7 +260,8 @@
255#endif 260#endif
256 261
257/* define for all cpus from ARM family */ 262/* define for all cpus from ARM family */
258#if defined(CPU_PP) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440) 263#if defined(CPU_PP) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440) \
264 || (CONFIG_CPU == TMS320DSC25)
259#define CPU_ARM 265#define CPU_ARM
260#endif 266#endif
261 267
diff --git a/firmware/target/arm/archos/av300/ata-av300.c b/firmware/target/arm/archos/av300/ata-av300.c
new file mode 100644
index 0000000000..ae7b955632
--- /dev/null
+++ b/firmware/target/arm/archos/av300/ata-av300.c
@@ -0,0 +1,56 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: ata-pp5020.c 10521 2006-08-11 08:35:27Z bger $
9 *
10 * Target-specific ATA functions for AV3xx (TMS320DSC25)
11 *
12 * Based on code from the ArchOpen project - http://www.archopen.org
13 * Adapted for Rockbox in January 2007
14 *
15 * Original file:
16 * lib/target/arch_AV3XX/ata.c
17 *
18 * AvLo - linav project
19 * Copyright (c) 2005 by Christophe THOMAS (oxygen77 at free.fr)
20 *
21 * All files in this archive are subject to the GNU General Public License.
22 * See the file COPYING in the source tree root for full license agreement.
23 *
24 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
25 * KIND, either express or implied.
26 *
27 ****************************************************************************/
28
29#include <stdbool.h>
30#include "system.h"
31#include "ata-target.h"
32
33void ata_reset()
34{
35 /* arch_ata_reset_HD(void) */
36 cpld_set_port_2(CPLD_HD_RESET);
37 cpld_clear_port_2(CPLD_HD_RESET);
38}
39
40void ata_enable(bool on)
41{
42 /* TODO: Implement ata_enable() */
43 (void)on;
44}
45
46bool ata_is_coldstart()
47{
48 /* TODO: Implement coldstart variable */
49 return true;
50}
51
52void ata_device_init()
53{
54 /* Set CF/HD selection to HD */
55 cpld_select(CPLD_HD_CF,CPLD_SEL_HD);
56}
diff --git a/firmware/target/arm/archos/av300/ata-target.h b/firmware/target/arm/archos/av300/ata-target.h
new file mode 100644
index 0000000000..f570ddd4b3
--- /dev/null
+++ b/firmware/target/arm/archos/av300/ata-target.h
@@ -0,0 +1,62 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: ata-target.h 11655 2006-12-03 22:13:44Z amiconn $
9 *
10 * Copyright (C) 2007 by Dave Chapman
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19
20/* Plain C read & write loops */
21
22#define ATA_IOBASE 0x02400000
23
24#define ATA_DATA (*((volatile unsigned short*)(ATA_IOBASE)))
25#define ATA_ERROR (*((volatile unsigned char*)(ATA_IOBASE + 0x080)))
26#define ATA_NSECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x100)))
27#define ATA_SECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x180)))
28#define ATA_LCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x200)))
29#define ATA_HCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x280)))
30#define ATA_SELECT (*((volatile unsigned char*)(ATA_IOBASE + 0x300)))
31#define ATA_CONTROL (*((volatile unsigned char*)(ATA_IOBASE + 0x340)))
32#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x380)))
33
34#define STATUS_BSY 0x80
35#define STATUS_RDY 0x40
36#define STATUS_DF 0x20
37#define STATUS_DRQ 0x08
38#define STATUS_ERR 0x01
39#define ERROR_ABRT 0x04
40
41#define WRITE_PATTERN1 0xa5
42#define WRITE_PATTERN2 0x5a
43#define WRITE_PATTERN3 0xaa
44#define WRITE_PATTERN4 0x55
45
46#define READ_PATTERN1 0xa5
47#define READ_PATTERN2 0x5a
48#define READ_PATTERN3 0xaa
49#define READ_PATTERN4 0x55
50
51#define READ_PATTERN1_MASK 0xff
52#define READ_PATTERN2_MASK 0xff
53#define READ_PATTERN3_MASK 0xff
54#define READ_PATTERN4_MASK 0xff
55
56#define SET_REG(reg,val) reg = (val)
57#define SET_16BITREG(reg,val) reg = (val)
58
59void ata_reset(void);
60void ata_enable(bool on);
61bool ata_is_coldstart(void);
62void ata_device_init(void);
diff --git a/firmware/target/arm/archos/av300/button-target.h b/firmware/target/arm/archos/av300/button-target.h
new file mode 100644
index 0000000000..b08562627b
--- /dev/null
+++ b/firmware/target/arm/archos/av300/button-target.h
@@ -0,0 +1,49 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: button-target.h 11967 2007-01-09 23:29:07Z linus $
9 *
10 * Copyright (C) 2007 by Dave Chapman
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19
20#ifndef _BUTTON_TARGET_H_
21#define _BUTTON_TARGET_H_
22
23#include <stdbool.h>
24#include "config.h"
25
26void button_init_device(void);
27int button_read_device(void);
28
29/* Main unit's buttons */
30
31#define BUTTON_ON 0x00000001
32#define BUTTON_OFF 0x00000002
33
34#define BUTTON_LEFT 0x00000004
35#define BUTTON_RIGHT 0x00000008
36#define BUTTON_UP 0x00000010
37#define BUTTON_DOWN 0x00000020
38
39#define BUTTON_SELECT 0x00000040
40
41#define BUTTON_F1 0x00000080
42#define BUTTON_F2 0x00000100
43#define BUTTON_F3 0x00000200
44
45#define BUTTON_MAIN (BUTTON_ON|BUTTON_OFF|BUTTON_LEFT|BUTTON_RIGHT\
46 |BUTTON_UP|BUTTON_DOWN|BUTTON_SELECT\
47 |BUTTON_F1|BUTTON_F2|BUTTON_F3)
48
49#endif /* _BUTTON_TARGET_H_ */
diff --git a/firmware/target/arm/archos/av300/power-av300.c b/firmware/target/arm/archos/av300/power-av300.c
new file mode 100644
index 0000000000..cfdce69b13
--- /dev/null
+++ b/firmware/target/arm/archos/av300/power-av300.c
@@ -0,0 +1,97 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: power-x5.c 10967 2006-09-17 09:19:50Z jethead71 $
9 *
10 * Based on code from the ArchOpen project - http://www.archopen.org
11 * Adapted for Rockbox in January 2007
12 *
13 * Original files:
14 * lib/target/arch_AV3XX/ata.c
15 *
16 * AvLo - linav project
17 * Copyright (c) 2005 by Christophe THOMAS (oxygen77 at free.fr)
18 *
19 * All files in this archive are subject to the GNU General Public License.
20 * See the file COPYING in the source tree root for full license agreement.
21 *
22 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
23 * KIND, either express or implied.
24 *
25 ****************************************************************************/
26#include "config.h"
27#include "cpu.h"
28#include <stdbool.h>
29#include "kernel.h"
30#include "system.h"
31#include "power.h"
32
33#ifndef SIMULATOR
34
35void power_init(void)
36{
37 /* Charger detect */
38}
39
40bool charger_inserted(void)
41{
42 return false;
43}
44
45void ide_power_enable(bool on)
46{
47 if(on)
48 cpld_set_port_3(CPLD_HD_POWER); /* powering up HD */
49 else
50 cpld_clear_port_3(CPLD_HD_POWER);
51}
52
53bool ide_powered(void)
54{
55 return false;
56}
57
58void power_off(void)
59{
60}
61
62#else
63
64bool charger_inserted(void)
65{
66 return false;
67}
68
69void charger_enable(bool on)
70{
71 (void)on;
72}
73
74void power_off(void)
75{
76}
77
78void ide_power_enable(bool on)
79{
80 (void)on;
81}
82
83#endif /* SIMULATOR */
84
85static bool powered = false;
86
87bool radio_powered()
88{
89 return powered;
90}
91
92bool radio_power(bool status)
93{
94 bool old_status = powered;
95 powered = status;
96 return old_status;
97}
diff --git a/tools/configure b/tools/configure
index e2e0befae5..0d119f6caf 100755
--- a/tools/configure
+++ b/tools/configure
@@ -560,7 +560,7 @@ cat <<EOF
560 3) Recorder v2 13) iFP-790 23) 3G 560 3) Recorder v2 13) iFP-790 23) 3G
561 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale 561 4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
562 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G 562 5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
563 26) Mini 2G 563 6) AV300 26) Mini 2G
564 564
565 ==iAudio== ==Toshiba== ==SanDisk== 565 ==iAudio== ==Toshiba== ==SanDisk==
566 30) X5/X5V/X5L 40) Gigabeat F 50) Sansa e200 566 30) X5/X5V/X5L 40) Gigabeat F 50) Sansa e200
@@ -753,6 +753,30 @@ EOF
753 t_model="ondio" 753 t_model="ondio"
754 ;; 754 ;;
755 755
756 6|av300)
757 target_id=26
758 archos="av300"
759 target="-DARCHOS_AV300"
760 memory=16 # always
761 arm7tdmicc
762 tool="$rootdir/tools/scramble -mm=C"
763 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
764 bmp2rb_native="$rootdir/tools/bmp2rb -f 6"
765 output="cjbm.ajz"
766 appextra="recorder:gui"
767 archosrom=""
768 flash=""
769 plugins="yes"
770 codecs=""
771 # toolset is the tools within the tools directory that we build for
772 # this particular target.
773 toolset="$toolset scramble descramble bmp2rb codepages"
774 # architecture, manufacturer and model for the target-tree build
775 t_cpu="arm"
776 t_manufacturer="archos"
777 t_model="av300"
778 ;;
779
756 10|h120) 780 10|h120)
757 target_id=9 781 target_id=9
758 archos="h120" 782 archos="h120"
diff --git a/uisimulator/sdl/UI-av300.bmp b/uisimulator/sdl/UI-av300.bmp
new file mode 100644
index 0000000000..e86221ca7e
--- /dev/null
+++ b/uisimulator/sdl/UI-av300.bmp
Binary files differ
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 6931d13fe5..f5da828914 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -421,6 +421,49 @@ void button_event(int key, bool pressed)
421 new_btn = BUTTON_PLAY; 421 new_btn = BUTTON_PLAY;
422 break; 422 break;
423 423
424#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
425 case SDLK_KP4:
426 case SDLK_LEFT:
427 new_btn = BUTTON_LEFT;
428 break;
429 case SDLK_KP6:
430 case SDLK_RIGHT:
431 new_btn = BUTTON_RIGHT;
432 break;
433 case SDLK_KP8:
434 case SDLK_UP:
435 new_btn = BUTTON_UP;
436 break;
437 case SDLK_KP2:
438 case SDLK_DOWN:
439 new_btn = BUTTON_DOWN;
440 break;
441 case SDLK_KP_PLUS:
442 case SDLK_F8:
443 new_btn = BUTTON_ON;
444 break;
445 case SDLK_KP_ENTER:
446 case SDLK_RETURN:
447 case SDLK_a:
448 new_btn = BUTTON_OFF;
449 break;
450 case SDLK_KP_DIVIDE:
451 case SDLK_F1:
452 new_btn = BUTTON_F1;
453 break;
454 case SDLK_KP_MULTIPLY:
455 case SDLK_F2:
456 new_btn = BUTTON_F2;
457 break;
458 case SDLK_KP_MINUS:
459 case SDLK_F3:
460 new_btn = BUTTON_F3;
461 break;
462 case SDLK_KP5:
463 case SDLK_SPACE:
464 new_btn = BUTTON_SELECT;
465 break;
466
424#elif CONFIG_KEYPAD == SANSA_E200_PAD 467#elif CONFIG_KEYPAD == SANSA_E200_PAD
425 case SDLK_KP4: 468 case SDLK_KP4:
426 case SDLK_LEFT: 469 case SDLK_LEFT:
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index e742155f6a..7f0a567e79 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -241,6 +241,19 @@
241#define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */ 241#define UI_LCD_WIDTH LCD_WIDTH /* * 1.5 */
242#define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */ 242#define UI_LCD_HEIGHT LCD_HEIGHT /* * 1.5 */
243 243
244#elif defined(ARCHOS_AV300)
245#define UI_TITLE "Archos AV300"
246/* We are temporarily using a 2bpp LCD driver and dummy bitmap */
247#define UI_WIDTH 420 /* width of GUI window */
248#define UI_HEIGHT 340 /* height of GUI window */
249#define UI_LCD_POSX 50 /* x position of lcd */
250#define UI_LCD_POSY 50 /* y position of lcd */
251#define UI_LCD_WIDTH 320
252#define UI_LCD_HEIGHT 240
253#define UI_LCD_BGCOLOR 90, 145, 90 /* bkgnd color of LCD (no backlight) */
254#define UI_LCD_BGCOLORLIGHT 173, 216, 230 /* bkgnd color of LCD (backlight) */
255#define UI_LCD_BLACK 0, 0, 0 /* black */
256
244#endif 257#endif
245extern SDL_Surface *gui_surface; 258extern SDL_Surface *gui_surface;
246extern bool background; /* True if the background image is enabled */ 259extern bool background; /* True if the background image is enabled */