summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMark Arigo <markarigo@gmail.com>2007-09-06 03:28:58 +0000
committerMark Arigo <markarigo@gmail.com>2007-09-06 03:28:58 +0000
commitdbc6b4e39a8f68708bc20a7b3295662c7871856a (patch)
tree725674ac56a56c80246181f1e42342ada60b7199 /apps
parent4f3bcbbb11905c95337fcbe670a1b7da477fbf13 (diff)
downloadrockbox-dbc6b4e39a8f68708bc20a7b3295662c7871856a.tar.gz
rockbox-dbc6b4e39a8f68708bc20a7b3295662c7871856a.zip
Sansa c200 port. Rockbox works with sound. Several features are disabled including some lcd options, FM radio, recording, and all plugins. Loading the OF from the Rockbox bootloader does not work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14625 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/bitmaps/native/SOURCES2
-rw-r--r--apps/bitmaps/native/rockboxlogo.132x40x16.bmpbin0 -> 15894 bytes
-rw-r--r--apps/debug_menu.c7
-rw-r--r--apps/keymaps/keymap-c200.c361
-rw-r--r--apps/lang/english.lang43
6 files changed, 391 insertions, 24 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index a8a4d0c91e..04d9e76c51 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -149,6 +149,8 @@ keymaps/keymap-h10.c
149keymaps/keymap-ifp7xx.c 149keymaps/keymap-ifp7xx.c
150#elif CONFIG_KEYPAD == SANSA_E200_PAD 150#elif CONFIG_KEYPAD == SANSA_E200_PAD
151keymaps/keymap-e200.c 151keymaps/keymap-e200.c
152#elif CONFIG_KEYPAD == SANSA_C200_PAD
153keymaps/keymap-c200.c
152#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 154#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
153keymaps/keymap-av300.c 155keymaps/keymap-av300.c
154#endif 156#endif
diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES
index 094b2d61b1..88b60e0654 100644
--- a/apps/bitmaps/native/SOURCES
+++ b/apps/bitmaps/native/SOURCES
@@ -5,6 +5,8 @@
5rockboxlogo.112x30x1.bmp 5rockboxlogo.112x30x1.bmp
6#elif (LCD_WIDTH == 128) && (LCD_DEPTH == 16) 6#elif (LCD_WIDTH == 128) && (LCD_DEPTH == 16)
7rockboxlogo.128x40x16.bmp 7rockboxlogo.128x40x16.bmp
8#elif (LCD_WIDTH == 132) && (LCD_DEPTH == 16)
9rockboxlogo.132x40x16.bmp
8#elif (LCD_WIDTH == 138) && (LCD_DEPTH == 2) 10#elif (LCD_WIDTH == 138) && (LCD_DEPTH == 2)
9rockboxlogo.138x46x2.bmp 11rockboxlogo.138x46x2.bmp
10#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2) 12#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2)
diff --git a/apps/bitmaps/native/rockboxlogo.132x40x16.bmp b/apps/bitmaps/native/rockboxlogo.132x40x16.bmp
new file mode 100644
index 0000000000..865a8ed59d
--- /dev/null
+++ b/apps/bitmaps/native/rockboxlogo.132x40x16.bmp
Binary files differ
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 41507708d4..f8492d34b6 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -1010,7 +1010,8 @@ static bool dbg_spdif(void)
1010#elif CONFIG_KEYPAD == IRIVER_H10_PAD 1010#elif CONFIG_KEYPAD == IRIVER_H10_PAD
1011# define DEBUG_CANCEL BUTTON_REW 1011# define DEBUG_CANCEL BUTTON_REW
1012 1012
1013#elif CONFIG_KEYPAD == SANSA_E200_PAD 1013#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
1014 (CONFIG_KEYPAD == SANSA_C200_PAD)
1014# define DEBUG_CANCEL BUTTON_LEFT 1015# define DEBUG_CANCEL BUTTON_LEFT
1015#endif /* key definitios */ 1016#endif /* key definitios */
1016 1017
@@ -2007,7 +2008,7 @@ static bool dbg_save_roms(void)
2007 2008
2008 return false; 2009 return false;
2009} 2010}
2010#elif defined(CPU_PP) && !defined(SANSA_E200) 2011#elif defined(CPU_PP) && !(defined(SANSA_E200) || defined(SANSA_C200))
2011static bool dbg_save_roms(void) 2012static bool dbg_save_roms(void)
2012{ 2013{
2013 int fd; 2014 int fd;
@@ -2254,7 +2255,7 @@ static const struct the_menu_item menuitems[] = {
2254 { "LCD Power Off", dbg_lcd_power_off }, 2255 { "LCD Power Off", dbg_lcd_power_off },
2255#endif 2256#endif
2256#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || \ 2257#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || \
2257 (defined(CPU_PP) && !defined(SANSA_E200)) 2258 (defined(CPU_PP) && !(defined(SANSA_E200) || defined(SANSA_C200)))
2258 { "Dump ROM contents", dbg_save_roms }, 2259 { "Dump ROM contents", dbg_save_roms },
2259#endif 2260#endif
2260#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || defined(CPU_PP) || CONFIG_CPU == S3C2440 2261#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || defined(CPU_PP) || CONFIG_CPU == S3C2440
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c
new file mode 100644
index 0000000000..2141c9bf33
--- /dev/null
+++ b/apps/keymaps/keymap-c200.c
@@ -0,0 +1,361 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id:$
9 *
10 * Copyright (C) 2007 Mark Arigo
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/* Button Code Definitions for Sandisk c200 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 */
34static const struct button_mapping button_context_standard[] = {
35 { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
36 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
37
38 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
39 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
40
41 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
42 { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
43 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
44
45 { ACTION_STD_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
46 { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
47 { ACTION_STD_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
48 { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_SELECT, BUTTON_NONE },
49
50 LAST_ITEM_IN_LIST
51}; /* button_context_standard */
52
53
54static const struct button_mapping button_context_wps[] = {
55 { ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
56 { ACTION_WPS_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
57
58 { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
59 { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
60 { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
61
62 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
63 { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
64 { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
65
66 { ACTION_WPS_ABSETB_NEXTDIR,BUTTON_POWER|BUTTON_RIGHT, BUTTON_POWER },
67 { ACTION_WPS_ABSETA_PREVDIR,BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER },
68 { ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER },
69
70 { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
71 { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
72
73 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
74 { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
75
76 { ACTION_WPS_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
77 { ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
78 { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT },
79 { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT },
80 { ACTION_WPS_CONTEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
81 { ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
82 { ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
83
84 LAST_ITEM_IN_LIST
85}; /* button_context_wps */
86
87static const struct button_mapping button_context_settings[] = {
88 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
89 { ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE },
90
91 { ACTION_SETTINGS_INC, BUTTON_DOWN, BUTTON_NONE },
92 { ACTION_SETTINGS_INCREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
93
94 { ACTION_SETTINGS_DEC, BUTTON_UP, BUTTON_NONE },
95 { ACTION_SETTINGS_DECREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
96
97 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
98 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
99
100 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
101 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
102
103 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
104}; /* button_context_settings */
105
106static const struct button_mapping button_context_list[] = {
107 { ACTION_LISTTREE_PGUP, BUTTON_REC|BUTTON_UP, BUTTON_REC },
108 { ACTION_LISTTREE_PGDOWN, BUTTON_REC|BUTTON_DOWN, BUTTON_REC },
109
110#ifdef HAVE_VOLUME_IN_LIST
111 { ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
112 { ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
113
114 { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
115 { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
116#endif
117
118 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
119}; /* button_context_list */
120
121static const struct button_mapping button_context_tree[] = {
122 { ACTION_TREE_WPS, BUTTON_REC|BUTTON_UP, BUTTON_REC },
123 { ACTION_TREE_STOP, BUTTON_REC|BUTTON_UP|BUTTON_REPEAT, BUTTON_REC|BUTTON_UP },
124
125 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
126}; /* button_context_tree */
127
128static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
129 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
130 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
131 { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
132 { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
133 { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
134
135 { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
136 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
137 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
138 { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
139
140 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
141}; /* button_context_listtree_scroll_without_combo */
142
143static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
144 { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
145
146 { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_REC },
147 { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
148
149 { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_REC },
150 { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
151
152 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
153}; /* button_context_listtree_scroll_with_combo */
154
155static const struct button_mapping button_context_yesno[] = {
156 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
157
158 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
159}; /* button_context_settings_yesno */
160
161static const struct button_mapping button_context_quickscreen[] = {
162 { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
163 { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
164
165 { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
166 { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
167
168 { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
169 { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
170
171 { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
172 { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
173
174 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
175 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
176
177 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
178}; /* button_context_quickscreen */
179
180static const struct button_mapping button_context_settings_right_is_inc[] = {
181 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
182 { ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
183
184 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
185 { ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
186
187 { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
188 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
189
190 { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
191 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
192
193 { ACTION_NONE, BUTTON_SELECT, BUTTON_NONE },
194 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
195
196 { ACTION_NONE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
197 { ACTION_NONE, BUTTON_POWER, BUTTON_NONE },
198 { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
199
200 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
201}; /* button_context_settings_right_is_inc */
202
203static const struct button_mapping button_context_settings_time[] = {
204 { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
205 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
206
207 { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
208 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
209
210 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
211}; /* button_context_settings_time */
212
213static const struct button_mapping button_context_pitchscreen[] = {
214 { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE },
215 { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
216
217 { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE },
218 { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
219
220 { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
221 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
222
223 { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
224 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
225
226 { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE },
227 { ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE },
228
229 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
230}; /* button_context_pitchscreen */
231
232/** Recording Screen **/
233#ifdef HAVE_RECORDING
234static const struct button_mapping button_context_recscreen[] = {
235 { ACTION_STD_MENU, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
236 { ACTION_REC_PAUSE, BUTTON_UP|BUTTON_REL, BUTTON_UP },
237 { ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
238 { ACTION_REC_NEWFILE, BUTTON_REC|BUTTON_REL, BUTTON_REC },
239
240 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
241 { ACTION_SETTINGS_INC, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
242
243 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
244 { ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
245
246 { ACTION_STD_PREV, BUTTON_SCROLL_UP, BUTTON_NONE },
247 { ACTION_STD_PREV, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
248
249 { ACTION_STD_NEXT, BUTTON_SCROLL_DOWN, BUTTON_NONE },
250 { ACTION_STD_NEXT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT,BUTTON_NONE },
251
252 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
253}; /* button_context_recscreen */
254#endif
255
256/** FM Radio Screen **/
257#if CONFIG_TUNER
258static const struct button_mapping button_context_radio[] = {
259 { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE },
260 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE },
261 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
262 { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE },
263 { ACTION_FM_EXIT, BUTTON_POWER, BUTTON_NONE },
264 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
265 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
266}; /* button_context_radio */
267#endif
268
269static const struct button_mapping button_context_keyboard[] = {
270 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
271 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
272
273 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
274 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
275
276 { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
277 { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE },
278
279 { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
280 { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
281
282 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
283 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
284
285 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
286 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
287
288 { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_DOWN, BUTTON_NONE },
289 { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_DOWN|BUTTON_REPEAT,BUTTON_NONE },
290
291 { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC },
292
293 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
294 { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE },
295 { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE },
296
297 LAST_ITEM_IN_LIST
298}; /* button_context_keyboard */
299
300static const struct button_mapping button_context_bmark[] = {
301 { ACTION_BMS_DELETE, BUTTON_UP, BUTTON_NONE },
302
303 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
304}; /* button_context_bmark */
305
306/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
307const struct button_mapping* get_context_mapping(int context)
308{
309 switch (context)
310 {
311 case CONTEXT_STD:
312 return button_context_standard;
313
314 case CONTEXT_WPS:
315 return button_context_wps;
316
317 case CONTEXT_LIST:
318 return button_context_list;
319 case CONTEXT_TREE:
320 case CONTEXT_MAINMENU:
321 if (global_settings.hold_lr_for_scroll_in_list)
322 return button_context_listtree_scroll_without_combo;
323 else
324 return button_context_listtree_scroll_with_combo;
325 case CONTEXT_CUSTOM|CONTEXT_TREE:
326 return button_context_tree;
327
328 case CONTEXT_SETTINGS:
329 return button_context_settings;
330 case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
331 case CONTEXT_SETTINGS_COLOURCHOOSER:
332 case CONTEXT_SETTINGS_EQ:
333 return button_context_settings_right_is_inc;
334
335 case CONTEXT_SETTINGS_TIME:
336 return button_context_settings_time;
337
338 case CONTEXT_YESNOSCREEN:
339 return button_context_yesno;
340#if CONFIG_TUNER
341 case CONTEXT_FM:
342 return button_context_radio;
343#endif
344 case CONTEXT_BOOKMARKSCREEN:
345 return button_context_bmark;
346 case CONTEXT_QUICKSCREEN:
347 return button_context_quickscreen;
348 case CONTEXT_PITCHSCREEN:
349 return button_context_pitchscreen;
350#ifdef HAVE_RECORDING
351 case CONTEXT_RECSCREEN:
352 return button_context_recscreen;
353#endif
354 case CONTEXT_KEYBOARD:
355 return button_context_keyboard;
356
357 default:
358 return button_context_standard;
359 }
360 return button_context_standard;
361}
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index cf9ce3b268..28451d0890 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -72,6 +72,7 @@
72# 72#
73# Sandisk 73# Sandisk
74# Sansa E200 e200 74# Sansa E200 e200
75# Sansa C200 c200
75# 76#
76 77
77<phrase> 78<phrase>
@@ -319,13 +320,13 @@
319 <source> 320 <source>
320 *: "PLAY = Yes" 321 *: "PLAY = Yes"
321 h100,h120,h300: "NAVI = Yes" 322 h100,h120,h300: "NAVI = Yes"
322 ipod*,x5,m5,gigabeatf,e200,h10,h10_5gb: "SELECT = Yes" 323 ipod*,x5,m5,gigabeatf,e200,c200,h10,h10_5gb: "SELECT = Yes"
323 player: "(PLAY/STOP)" 324 player: "(PLAY/STOP)"
324 </source> 325 </source>
325 <dest> 326 <dest>
326 *: "PLAY = Yes" 327 *: "PLAY = Yes"
327 h100,h120,h300: "NAVI = Yes" 328 h100,h120,h300: "NAVI = Yes"
328 ipod*,x5,m5,gigabeatf,e200,h10,h10_5gb: "SELECT = Yes" 329 ipod*,x5,m5,gigabeatf,e200,c200,h10,h10_5gb: "SELECT = Yes"
329 player: "(PLAY/STOP)" 330 player: "(PLAY/STOP)"
330 </dest> 331 </dest>
331 <voice> 332 <voice>
@@ -2421,14 +2422,14 @@
2421 h100,h120,h300: "Building database... %d found (STOP to return)" 2422 h100,h120,h300: "Building database... %d found (STOP to return)"
2422 ipod*: "Building database... %d found (PLAY/PAUSE to return)" 2423 ipod*: "Building database... %d found (PLAY/PAUSE to return)"
2423 x5,m5: "Building database... %d found (LEFT to return)" 2424 x5,m5: "Building database... %d found (LEFT to return)"
2424 h10,h10_5gb,e200: "Building database... %d found (PREV to return)" 2425 h10,h10_5gb,e200,c200: "Building database... %d found (PREV to return)"
2425 </source> 2426 </source>
2426 <dest> 2427 <dest>
2427 *: "Building database... %d found (OFF to return)" 2428 *: "Building database... %d found (OFF to return)"
2428 h100,h120,h300: "Building database... %d found (STOP to return)" 2429 h100,h120,h300: "Building database... %d found (STOP to return)"
2429 ipod*: "Building database... %d found (PLAY/PAUSE to return)" 2430 ipod*: "Building database... %d found (PLAY/PAUSE to return)"
2430 x5,m5: "Building database... %d found (LEFT to return)" 2431 x5,m5: "Building database... %d found (LEFT to return)"
2431 h10,h10_5gb,e200: "Building database... %d found (PREV to return)" 2432 h10,h10_5gb,e200,c200: "Building database... %d found (PREV to return)"
2432 </dest> 2433 </dest>
2433 <voice> 2434 <voice>
2434 *: "entries found for database" 2435 *: "entries found for database"
@@ -4179,17 +4180,17 @@
4179 *: none 4180 *: none
4180 rtc: "ON = Set" 4181 rtc: "ON = Set"
4181 h100,h120,h300: "NAVI = Set" 4182 h100,h120,h300: "NAVI = Set"
4182 ipod*,x5,m5,h10,h10_5gb,e200,gigabeatf: "SELECT = Set" 4183 ipod*,x5,m5,h10,h10_5gb,e200,c200,gigabeatf: "SELECT = Set"
4183 </source> 4184 </source>
4184 <dest> 4185 <dest>
4185 *: none 4186 *: none
4186 rtc: "ON = Set" 4187 rtc: "ON = Set"
4187 h100,h120,h300: "NAVI = Set" 4188 h100,h120,h300: "NAVI = Set"
4188 ipod*,x5,m5,h10,h10_5gb,e200,gigabeatf: "SELECT = Set" 4189 ipod*,x5,m5,h10,h10_5gb,e200,c200,gigabeatf: "SELECT = Set"
4189 </dest> 4190 </dest>
4190 <voice> 4191 <voice>
4191 *: none 4192 *: none
4192 rtc,h100,h120,h300,h10,h10_5gb,x5,m5,ipod*,e200,gigabeatf: "" 4193 rtc,h100,h120,h300,h10,h10_5gb,x5,m5,ipod*,e200,c200,gigabeatf: ""
4193 </voice> 4194 </voice>
4194</phrase> 4195</phrase>
4195<phrase> 4196<phrase>
@@ -4200,7 +4201,7 @@
4200 *: none 4201 *: none
4201 rtc: "OFF = Revert" 4202 rtc: "OFF = Revert"
4202 h100,h120,h300: "STOP = Revert" 4203 h100,h120,h300: "STOP = Revert"
4203 ipod*,e200: "MENU = Revert" 4204 ipod*,e200,c200: "MENU = Revert"
4204 x5,m5: "RECORD = Revert" 4205 x5,m5: "RECORD = Revert"
4205 h10,h10_5gb: "PREV = Revert" 4206 h10,h10_5gb: "PREV = Revert"
4206 gigabeatf: "A = Revert" 4207 gigabeatf: "A = Revert"
@@ -4209,14 +4210,14 @@
4209 *: none 4210 *: none
4210 rtc: "OFF = Revert" 4211 rtc: "OFF = Revert"
4211 h100,h120,h300: "STOP = Revert" 4212 h100,h120,h300: "STOP = Revert"
4212 ipod*,e200: "MENU = Revert" 4213 ipod*,e200,c200: "MENU = Revert"
4213 x5,m5: "RECORD = Revert" 4214 x5,m5: "RECORD = Revert"
4214 h10,h10_5gb: "PREV = Revert" 4215 h10,h10_5gb: "PREV = Revert"
4215 gigabeatf: "A = Revert" 4216 gigabeatf: "A = Revert"
4216 </dest> 4217 </dest>
4217 <voice> 4218 <voice>
4218 *: none 4219 *: none
4219 rtc,h100,h120,h300,ipod*,e200,x5,m5,h10,h10_gb,gigabeatf: "" 4220 rtc,h100,h120,h300,ipod*,e200,c200,x5,m5,h10,h10_gb,gigabeatf: ""
4220 </voice> 4221 </voice>
4221</phrase> 4222</phrase>
4222<phrase> 4223<phrase>
@@ -6951,17 +6952,17 @@
6951 user: 6952 user:
6952 <source> 6953 <source>
6953 *: none 6954 *: none
6954 e200: "mSD:" 6955 e200,c200: "mSD:"
6955 ondio*: "MMC:" 6956 ondio*: "MMC:"
6956 </source> 6957 </source>
6957 <dest> 6958 <dest>
6958 *: none 6959 *: none
6959 e200: "mSD:" 6960 e200,c200: "mSD:"
6960 ondio*: "MMC:" 6961 ondio*: "MMC:"
6961 </dest> 6962 </dest>
6962 <voice> 6963 <voice>
6963 *: none 6964 *: none
6964 e200: "micro Secure Digital card:" 6965 e200,c200: "micro Secure Digital card:"
6965 ondio*: "Multimedia card" 6966 ondio*: "Multimedia card"
6966 </voice> 6967 </voice>
6967</phrase> 6968</phrase>
@@ -8325,18 +8326,18 @@
8325 recording: "The disk is full. Press OFF to continue." 8326 recording: "The disk is full. Press OFF to continue."
8326 h100,h120,h300: "The disk is full. Press STOP to continue." 8327 h100,h120,h300: "The disk is full. Press STOP to continue."
8327 m5,x5: "The disk is full. Press POWER to continue." 8328 m5,x5: "The disk is full. Press POWER to continue."
8328 e200: "The disk is full. Press UP to continue." 8329 e200,c200: "The disk is full. Press UP to continue."
8329 </source> 8330 </source>
8330 <dest> 8331 <dest>
8331 *: none 8332 *: none
8332 recording: "The disk is full. Press OFF to continue." 8333 recording: "The disk is full. Press OFF to continue."
8333 h100,h120,h300: "The disk is full. Press STOP to continue." 8334 h100,h120,h300: "The disk is full. Press STOP to continue."
8334 m5,x5: "The disk is full. Press POWER to continue." 8335 m5,x5: "The disk is full. Press POWER to continue."
8335 e200: "The disk is full. Press UP to continue." 8336 e200,c200: "The disk is full. Press UP to continue."
8336 </dest> 8337 </dest>
8337 <voice> 8338 <voice>
8338 *: none 8339 *: none
8339 recording,h100,h120,h300,m5,x5,e200: "" 8340 recording,h100,h120,h300,m5,x5,e200,c200: ""
8340 </voice> 8341 </voice>
8341</phrase> 8342</phrase>
8342<phrase> 8343<phrase>
@@ -8427,14 +8428,14 @@
8427 player,h100,h120,h300: "STOP to abort" 8428 player,h100,h120,h300: "STOP to abort"
8428 ipod*: "PLAY/PAUSE to abort" 8429 ipod*: "PLAY/PAUSE to abort"
8429 x5,m5: "Long PLAY to abort" 8430 x5,m5: "Long PLAY to abort"
8430 h10,h10_5gb,e200: "PREV to abort" 8431 h10,h10_5gb,e200,c200: "PREV to abort"
8431 </source> 8432 </source>
8432 <dest> 8433 <dest>
8433 *: "OFF to abort" 8434 *: "OFF to abort"
8434 player,h100,h120,h300: "STOP to abort" 8435 player,h100,h120,h300: "STOP to abort"
8435 ipod*: "PLAY/PAUSE to abort" 8436 ipod*: "PLAY/PAUSE to abort"
8436 x5,m5: "Long PLAY to abort" 8437 x5,m5: "Long PLAY to abort"
8437 h10,h10_5gb,e200: "PREV to abort" 8438 h10,h10_5gb,e200,c200: "PREV to abort"
8438 </dest> 8439 </dest>
8439 <voice> 8440 <voice>
8440 *: "" 8441 *: ""
@@ -10481,17 +10482,17 @@
10481 *: none 10482 *: none
10482 recording: "The disk is full. Press OFF to continue." 10483 recording: "The disk is full. Press OFF to continue."
10483 h100,h120,h300: "The disk is full. Press STOP to continue." 10484 h100,h120,h300: "The disk is full. Press STOP to continue."
10484 m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200: "The disk is full. Press LEFT to continue." 10485 m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200,c200: "The disk is full. Press LEFT to continue."
10485 </source> 10486 </source>
10486 <dest> 10487 <dest>
10487 *: none 10488 *: none
10488 recording: "The disk is full. Press OFF to continue." 10489 recording: "The disk is full. Press OFF to continue."
10489 h100,h120,h300: "The disk is full. Press STOP to continue." 10490 h100,h120,h300: "The disk is full. Press STOP to continue."
10490 m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200: "The disk is full. Press LEFT to continue." 10491 m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200,c200: "The disk is full. Press LEFT to continue."
10491 </dest> 10492 </dest>
10492 <voice> 10493 <voice>
10493 *: none 10494 *: none
10494 recording,h100,h120,h300,m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200: "" 10495 recording,h100,h120,h300,m5,x5,ipod4g,ipodcolor,ipodnano,ipodvideo,e200,c200: ""
10495 </voice> 10496 </voice>
10496</phrase> 10497</phrase>
10497<phrase> 10498<phrase>