diff options
-rw-r--r-- | apps/SOURCES | 2 | ||||
-rw-r--r-- | apps/codecs/SOURCES | 14 | ||||
-rw-r--r-- | apps/keymaps/keymap-logikdax.c | 319 | ||||
-rw-r--r-- | bootloader/telechips.c | 36 | ||||
-rw-r--r-- | firmware/SOURCES | 4 | ||||
-rw-r--r-- | firmware/export/config-logikdax.h | 22 | ||||
-rw-r--r-- | firmware/export/config-m200.h | 15 | ||||
-rw-r--r-- | firmware/target/arm/pcm-telechips.c | 4 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/lcd-ssd1815.c | 17 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/logikdax/audio-logikdax.c | 43 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/m200/audio-m200.c | 43 | ||||
-rw-r--r-- | firmware/target/arm/wmcodec-telechips.c | 2 | ||||
-rw-r--r-- | tools/scramble.c | 6 |
13 files changed, 482 insertions, 45 deletions
diff --git a/apps/SOURCES b/apps/SOURCES index 419d24d7a8..eb09797719 100644 --- a/apps/SOURCES +++ b/apps/SOURCES | |||
@@ -200,4 +200,6 @@ keymaps/keymap-sa9200.c | |||
200 | keymaps/keymap-hdd1630.c | 200 | keymaps/keymap-hdd1630.c |
201 | #elif CONFIG_KEYPAD == IAUDIO67_PAD | 201 | #elif CONFIG_KEYPAD == IAUDIO67_PAD |
202 | keymaps/keymap-iaudio67.c | 202 | keymaps/keymap-iaudio67.c |
203 | #elif CONFIG_KEYPAD == LOGIK_DAX_PAD | ||
204 | keymaps/keymap-logikdax.c | ||
203 | #endif | 205 | #endif |
diff --git a/apps/codecs/SOURCES b/apps/codecs/SOURCES index 3038903f9e..bd82fcf2d6 100644 --- a/apps/codecs/SOURCES +++ b/apps/codecs/SOURCES | |||
@@ -5,25 +5,25 @@ mpa.c | |||
5 | flac.c | 5 | flac.c |
6 | wav.c | 6 | wav.c |
7 | a52.c | 7 | a52.c |
8 | mpc.c | ||
9 | wavpack.c | 8 | wavpack.c |
10 | #ifndef RB_PROFILE | 9 | #ifndef RB_PROFILE |
11 | alac.c | 10 | alac.c |
12 | #endif | 11 | #endif |
12 | #if MEMORYSIZE > 2 | ||
13 | mpc.c | ||
13 | wma.c | 14 | wma.c |
14 | #if MEMORYSIZE > 1 | ||
15 | aac.c | 15 | aac.c |
16 | #endif | 16 | sid.c |
17 | ape.c | 17 | ape.c |
18 | nsf.c | ||
19 | #endif | ||
20 | spc.c | ||
21 | asap.c | ||
18 | mod.c | 22 | mod.c |
19 | shorten.c | 23 | shorten.c |
20 | aiff.c | 24 | aiff.c |
21 | speex.c | 25 | speex.c |
22 | sid.c | ||
23 | adx.c | 26 | adx.c |
24 | nsf.c | ||
25 | spc.c | ||
26 | asap.c | ||
27 | #if defined(HAVE_RECORDING) && !defined(SIMULATOR) | 27 | #if defined(HAVE_RECORDING) && !defined(SIMULATOR) |
28 | /* encoders */ | 28 | /* encoders */ |
29 | aiff_enc.c | 29 | aiff_enc.c |
diff --git a/apps/keymaps/keymap-logikdax.c b/apps/keymaps/keymap-logikdax.c new file mode 100644 index 0000000000..fdf51e1652 --- /dev/null +++ b/apps/keymaps/keymap-logikdax.c | |||
@@ -0,0 +1,319 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2008 Dave Chapman | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | /* Button Code Definitions for Sandisk c200 target */ | ||
22 | |||
23 | #include "config.h" | ||
24 | #include "action.h" | ||
25 | #include "button.h" | ||
26 | #include "settings.h" | ||
27 | |||
28 | /* {Action Code, Button code, Prereq button code } */ | ||
29 | |||
30 | /* | ||
31 | * The format of the list is as follows | ||
32 | * { Action Code, Button code, Prereq button code } | ||
33 | * if there's no need to check the previous button's value, use BUTTON_NONE | ||
34 | * Insert LAST_ITEM_IN_LIST at the end of each mapping | ||
35 | */ | ||
36 | static const struct button_mapping button_context_standard[] = { | ||
37 | { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE }, | ||
38 | { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
39 | |||
40 | { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, | ||
41 | { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
42 | |||
43 | { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
44 | { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, | ||
45 | { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, | ||
46 | |||
47 | { ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE }, | ||
48 | { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
49 | // { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_SELECT, BUTTON_NONE }, | ||
50 | |||
51 | LAST_ITEM_IN_LIST | ||
52 | }; /* button_context_standard */ | ||
53 | |||
54 | |||
55 | static const struct button_mapping button_context_wps[] = { | ||
56 | { ACTION_WPS_PLAY, BUTTON_POWERPLAY|BUTTON_REL, BUTTON_POWERPLAY }, | ||
57 | { ACTION_WPS_STOP, BUTTON_POWERPLAY|BUTTON_REPEAT, BUTTON_POWERPLAY }, | ||
58 | |||
59 | { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | ||
60 | { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
61 | { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, | ||
62 | |||
63 | { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
64 | { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
65 | { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, | ||
66 | |||
67 | { ACTION_WPS_ABSETB_NEXTDIR,BUTTON_MODE|BUTTON_RIGHT, BUTTON_MODE }, | ||
68 | { ACTION_WPS_ABSETA_PREVDIR,BUTTON_MODE|BUTTON_LEFT, BUTTON_MODE }, | ||
69 | { ACTION_WPS_ABRESET, BUTTON_MODE|BUTTON_UP, BUTTON_MODE }, | ||
70 | |||
71 | { ACTION_WPS_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE }, | ||
72 | { ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
73 | #if 0 | ||
74 | { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT }, | ||
75 | { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT }, | ||
76 | { ACTION_WPS_CONTEXT, BUTTON_VOLDOWN|BUTTON_REL, BUTTON_VOLDOWN }, | ||
77 | { ACTION_WPS_QUICKSCREEN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_VOLDOWN }, | ||
78 | #endif | ||
79 | |||
80 | LAST_ITEM_IN_LIST | ||
81 | }; /* button_context_wps */ | ||
82 | |||
83 | static const struct button_mapping button_context_settings[] = { | ||
84 | { ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE }, | ||
85 | { ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE }, | ||
86 | |||
87 | { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, | ||
88 | { ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
89 | |||
90 | { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, | ||
91 | { ACTION_SETTINGS_DECREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
92 | |||
93 | { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE }, | ||
94 | { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
95 | |||
96 | { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, | ||
97 | { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
98 | |||
99 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
100 | }; /* button_context_settings */ | ||
101 | |||
102 | static const struct button_mapping button_context_list[] = { | ||
103 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
104 | }; /* button_context_list */ | ||
105 | |||
106 | static const struct button_mapping button_context_tree[] = { | ||
107 | // { ACTION_TREE_WPS, BUTTON_REC|BUTTON_VOLUP, BUTTON_REC }, | ||
108 | // { ACTION_TREE_STOP, BUTTON_REC|BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_REC|BUTTON_VOLUP }, | ||
109 | |||
110 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | ||
111 | }; /* button_context_tree */ | ||
112 | |||
113 | static const struct button_mapping button_context_listtree_scroll_without_combo[] = { | ||
114 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, | ||
115 | { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | ||
116 | { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, | ||
117 | { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
118 | { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, | ||
119 | |||
120 | { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE }, | ||
121 | { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
122 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
123 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, | ||
124 | |||
125 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
126 | }; /* button_context_listtree_scroll_without_combo */ | ||
127 | |||
128 | static const struct button_mapping button_context_listtree_scroll_with_combo[] = { | ||
129 | { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
130 | |||
131 | // { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_REC }, | ||
132 | // { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
133 | |||
134 | // { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_REC }, | ||
135 | // { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE }, | ||
136 | |||
137 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
138 | }; /* button_context_listtree_scroll_with_combo */ | ||
139 | |||
140 | static const struct button_mapping button_context_yesno[] = { | ||
141 | { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE }, | ||
142 | |||
143 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
144 | }; /* button_context_settings_yesno */ | ||
145 | |||
146 | static const struct button_mapping button_context_quickscreen[] = { | ||
147 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, | ||
148 | { ACTION_STD_CANCEL, BUTTON_MODE|BUTTON_REL, BUTTON_NONE }, | ||
149 | |||
150 | { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, | ||
151 | { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
152 | |||
153 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, | ||
154 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
155 | |||
156 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, | ||
157 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
158 | |||
159 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, | ||
160 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
161 | |||
162 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
163 | }; /* button_context_quickscreen */ | ||
164 | |||
165 | static const struct button_mapping button_context_settings_right_is_inc[] = { | ||
166 | { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, | ||
167 | { ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
168 | |||
169 | { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, | ||
170 | { ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
171 | |||
172 | { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE }, | ||
173 | |||
174 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
175 | }; /* button_context_settings_right_is_inc */ | ||
176 | |||
177 | static const struct button_mapping button_context_pitchscreen[] = { | ||
178 | { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE }, | ||
179 | { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
180 | |||
181 | { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE }, | ||
182 | { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
183 | |||
184 | { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
185 | { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, | ||
186 | |||
187 | { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
188 | { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, | ||
189 | |||
190 | { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE }, | ||
191 | { ACTION_PS_EXIT, BUTTON_MODE, BUTTON_NONE }, | ||
192 | |||
193 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD), | ||
194 | }; /* button_context_pitchscreen */ | ||
195 | |||
196 | /** Recording Screen **/ | ||
197 | #ifdef HAVE_RECORDING | ||
198 | static const struct button_mapping button_context_recscreen[] = { | ||
199 | { ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE }, | ||
200 | { ACTION_REC_PAUSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
201 | { ACTION_STD_CANCEL, BUTTON_MODE|BUTTON_REPEAT, BUTTON_NONE }, | ||
202 | { ACTION_REC_NEWFILE, BUTTON_REC|BUTTON_REL, BUTTON_REC }, | ||
203 | |||
204 | { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, | ||
205 | { ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
206 | { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, | ||
207 | { ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
208 | |||
209 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
210 | }; /* button_context_recscreen */ | ||
211 | #endif | ||
212 | |||
213 | /** FM Radio Screen **/ | ||
214 | #if CONFIG_TUNER | ||
215 | static const struct button_mapping button_context_radio[] = { | ||
216 | { ACTION_NONE, BUTTON_UP, BUTTON_NONE }, | ||
217 | { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE }, | ||
218 | { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE }, | ||
219 | { ACTION_FM_STOP, BUTTON_POWERPLAY|BUTTON_REPEAT, BUTTON_POWERPLAY }, | ||
220 | { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE }, | ||
221 | { ACTION_FM_EXIT, BUTTON_MODE|BUTTON_REL, BUTTON_MODE }, | ||
222 | { ACTION_FM_PLAY, BUTTON_POWERPLAY|BUTTON_REL, BUTTON_POWERPLAY }, | ||
223 | { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE }, | ||
224 | { ACTION_SETTINGS_INCREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
225 | { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE }, | ||
226 | { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
227 | |||
228 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) | ||
229 | }; /* button_context_radio */ | ||
230 | #endif | ||
231 | |||
232 | static const struct button_mapping button_context_keyboard[] = { | ||
233 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
234 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
235 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
236 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
237 | |||
238 | // { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE }, | ||
239 | // { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE }, | ||
240 | // { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE }, | ||
241 | // { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE }, | ||
242 | |||
243 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
244 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
245 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
246 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
247 | |||
248 | // { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN, BUTTON_NONE }, | ||
249 | // { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN|BUTTON_REPEAT,BUTTON_NONE }, | ||
250 | |||
251 | // { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC }, | ||
252 | |||
253 | { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, | ||
254 | { ACTION_KBD_DONE, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
255 | { ACTION_KBD_ABORT, BUTTON_MODE, BUTTON_NONE }, | ||
256 | |||
257 | LAST_ITEM_IN_LIST | ||
258 | }; /* button_context_keyboard */ | ||
259 | |||
260 | static const struct button_mapping button_context_bmark[] = { | ||
261 | // { ACTION_BMS_DELETE, BUTTON_REC, BUTTON_NONE }, | ||
262 | |||
263 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | ||
264 | }; /* button_context_bmark */ | ||
265 | |||
266 | /* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */ | ||
267 | const struct button_mapping* get_context_mapping(int context) | ||
268 | { | ||
269 | switch (context) | ||
270 | { | ||
271 | case CONTEXT_STD: | ||
272 | return button_context_standard; | ||
273 | |||
274 | case CONTEXT_WPS: | ||
275 | return button_context_wps; | ||
276 | |||
277 | case CONTEXT_LIST: | ||
278 | return button_context_list; | ||
279 | case CONTEXT_TREE: | ||
280 | case CONTEXT_MAINMENU: | ||
281 | if (global_settings.hold_lr_for_scroll_in_list) | ||
282 | return button_context_listtree_scroll_without_combo; | ||
283 | else | ||
284 | return button_context_listtree_scroll_with_combo; | ||
285 | case CONTEXT_CUSTOM|CONTEXT_TREE: | ||
286 | return button_context_tree; | ||
287 | |||
288 | case CONTEXT_SETTINGS: | ||
289 | case CONTEXT_SETTINGS_TIME: | ||
290 | return button_context_settings; | ||
291 | case CONTEXT_CUSTOM|CONTEXT_SETTINGS: | ||
292 | case CONTEXT_SETTINGS_COLOURCHOOSER: | ||
293 | case CONTEXT_SETTINGS_EQ: | ||
294 | return button_context_settings_right_is_inc; | ||
295 | |||
296 | case CONTEXT_YESNOSCREEN: | ||
297 | return button_context_yesno; | ||
298 | #if CONFIG_TUNER | ||
299 | case CONTEXT_FM: | ||
300 | return button_context_radio; | ||
301 | #endif | ||
302 | case CONTEXT_BOOKMARKSCREEN: | ||
303 | return button_context_bmark; | ||
304 | case CONTEXT_QUICKSCREEN: | ||
305 | return button_context_quickscreen; | ||
306 | case CONTEXT_PITCHSCREEN: | ||
307 | return button_context_pitchscreen; | ||
308 | #ifdef HAVE_RECORDING | ||
309 | case CONTEXT_RECSCREEN: | ||
310 | return button_context_recscreen; | ||
311 | #endif | ||
312 | case CONTEXT_KEYBOARD: | ||
313 | return button_context_keyboard; | ||
314 | |||
315 | default: | ||
316 | return button_context_standard; | ||
317 | } | ||
318 | return button_context_standard; | ||
319 | } | ||
diff --git a/bootloader/telechips.c b/bootloader/telechips.c index 7f9a3556c0..a4f4d36c11 100644 --- a/bootloader/telechips.c +++ b/bootloader/telechips.c | |||
@@ -44,16 +44,12 @@ | |||
44 | #include "file.h" | 44 | #include "file.h" |
45 | #include "common.h" | 45 | #include "common.h" |
46 | 46 | ||
47 | #if defined(COWON_D2) || defined(IAUDIO_7) && defined(TCCBOOT) | 47 | #if defined(COWON_D2) || defined(IAUDIO_7) |
48 | # define REAL_BOOT | 48 | #include "pcf50606.h" |
49 | #endif | 49 | #endif |
50 | 50 | ||
51 | #ifdef REAL_BOOT | 51 | /* Address to load main Rockbox image to */ |
52 | # if defined(COWON_D2) || defined(IAUDIO_7) | 52 | #define LOAD_ADDRESS 0x20000000 /* DRAM_START */ |
53 | # include "pcf50606.h" | ||
54 | # endif | ||
55 | # define LOAD_ADDRESS 0x20000000 /* DRAM_START */ | ||
56 | #endif | ||
57 | 53 | ||
58 | char version[] = APPSVERSION; | 54 | char version[] = APPSVERSION; |
59 | 55 | ||
@@ -70,13 +66,12 @@ void show_debug_screen(void) | |||
70 | int count = 0; | 66 | int count = 0; |
71 | bool do_power_off = false; | 67 | bool do_power_off = false; |
72 | 68 | ||
73 | /*lcd_puts_scroll(0,0,"this is a very long line to test scrolling");*/ | 69 | lcd_puts_scroll(0,0,"this is a very long line to test scrolling"); |
74 | while(!do_power_off) { | 70 | while (!do_power_off) { |
75 | |||
76 | line = 1; | 71 | line = 1; |
77 | button = button_get(false); | 72 | button = button_get(false); |
78 | 73 | ||
79 | /* Power-off if POWER button has been held for a time | 74 | /* Power-off if POWER button has been held for a time |
80 | This loop is currently running at about 100 iterations/second | 75 | This loop is currently running at about 100 iterations/second |
81 | */ | 76 | */ |
82 | if (button & POWEROFF_BUTTON) { | 77 | if (button & POWEROFF_BUTTON) { |
@@ -86,7 +81,7 @@ void show_debug_screen(void) | |||
86 | } else { | 81 | } else { |
87 | power_count = 0; | 82 | power_count = 0; |
88 | } | 83 | } |
89 | #ifdef BUTTON_SELECT | 84 | #if 0 |
90 | if (button & BUTTON_SELECT){ | 85 | if (button & BUTTON_SELECT){ |
91 | _backlight_off(); | 86 | _backlight_off(); |
92 | } | 87 | } |
@@ -94,17 +89,19 @@ void show_debug_screen(void) | |||
94 | _backlight_on(); | 89 | _backlight_on(); |
95 | } | 90 | } |
96 | #endif | 91 | #endif |
97 | /*printf("Btn: 0x%08x",button); | 92 | printf("Btn: 0x%08x",button); |
93 | #if 0 | ||
98 | printf("Tick: %d",current_tick); | 94 | printf("Tick: %d",current_tick); |
99 | printf("GPIOA: 0x%08x",GPIOA); | 95 | printf("GPIOA: 0x%08x",GPIOA); |
100 | printf("GPIOB: 0x%08x",GPIOB); | 96 | printf("GPIOB: 0x%08x",GPIOB); |
101 | printf("GPIOC: 0x%08x",GPIOC); | 97 | printf("GPIOC: 0x%08x",GPIOC); |
102 | printf("GPIOD: 0x%08x",GPIOD); | 98 | printf("GPIOD: 0x%08x",GPIOD); |
103 | printf("GPIOE: 0x%08x",GPIOE);*/ | 99 | printf("GPIOE: 0x%08x",GPIOE); |
100 | #endif | ||
104 | 101 | ||
105 | #if 0 | 102 | #if 0 |
106 | int i; | 103 | int i; |
107 | for (i = 1; i<4; i++) | 104 | for (i = 0; i<4; i++) |
108 | { | 105 | { |
109 | printf("ADC%d: 0x%04x",i,adc_read(i)); | 106 | printf("ADC%d: 0x%04x",i,adc_read(i)); |
110 | } | 107 | } |
@@ -124,9 +121,10 @@ void show_debug_screen(void) | |||
124 | 121 | ||
125 | printf("(NOT) POWERED OFF"); | 122 | printf("(NOT) POWERED OFF"); |
126 | while (true); | 123 | while (true); |
127 | |||
128 | } | 124 | } |
125 | |||
129 | #else /* !CPU_TCC77X */ | 126 | #else /* !CPU_TCC77X */ |
127 | |||
130 | void show_debug_screen(void) | 128 | void show_debug_screen(void) |
131 | { | 129 | { |
132 | int button; | 130 | int button; |
@@ -178,7 +176,7 @@ void show_debug_screen(void) | |||
178 | 176 | ||
179 | void* main(void) | 177 | void* main(void) |
180 | { | 178 | { |
181 | #ifdef REAL_BOOT | 179 | #ifdef TCCBOOT |
182 | int rc; | 180 | int rc; |
183 | unsigned char* loadbuffer = (unsigned char*)LOAD_ADDRESS; | 181 | unsigned char* loadbuffer = (unsigned char*)LOAD_ADDRESS; |
184 | #endif | 182 | #endif |
@@ -203,7 +201,7 @@ void* main(void) | |||
203 | 201 | ||
204 | /* Only load the firmware if TCCBOOT is defined - this ensures SDRAM_START is | 202 | /* Only load the firmware if TCCBOOT is defined - this ensures SDRAM_START is |
205 | available for loading the firmware. Otherwise display the debug screen. */ | 203 | available for loading the firmware. Otherwise display the debug screen. */ |
206 | #ifdef REAL_BOOT | 204 | #ifdef TCCBOOT |
207 | printf("Rockbox boot loader"); | 205 | printf("Rockbox boot loader"); |
208 | printf("Version %s", version); | 206 | printf("Version %s", version); |
209 | 207 | ||
diff --git a/firmware/SOURCES b/firmware/SOURCES index a120c88fa2..6717ccaf93 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -987,8 +987,10 @@ target/arm/tcc77x/usb-tcc77x.c | |||
987 | target/arm/tcc77x/logikdax/button-logikdax.c | 987 | target/arm/tcc77x/logikdax/button-logikdax.c |
988 | target/arm/tcc77x/logikdax/power-logikdax.c | 988 | target/arm/tcc77x/logikdax/power-logikdax.c |
989 | #ifndef BOOTLOADER | 989 | #ifndef BOOTLOADER |
990 | target/arm/wmcodec-telechips.c | ||
990 | target/arm/tcc77x/debug-tcc77x.c | 991 | target/arm/tcc77x/debug-tcc77x.c |
991 | target/arm/pcm-telechips.c | 992 | target/arm/pcm-telechips.c |
993 | target/arm/tcc77x/logikdax/audio-logikdax.c | ||
992 | #endif /* BOOTLOADER */ | 994 | #endif /* BOOTLOADER */ |
993 | #endif /* SIMULATOR */ | 995 | #endif /* SIMULATOR */ |
994 | #endif /* LOGIK_DAX */ | 996 | #endif /* LOGIK_DAX */ |
@@ -1007,8 +1009,10 @@ target/arm/tcc77x/usb-tcc77x.c | |||
1007 | target/arm/tcc77x/m200/button-m200.c | 1009 | target/arm/tcc77x/m200/button-m200.c |
1008 | target/arm/tcc77x/m200/power-m200.c | 1010 | target/arm/tcc77x/m200/power-m200.c |
1009 | #ifndef BOOTLOADER | 1011 | #ifndef BOOTLOADER |
1012 | target/arm/wmcodec-telechips.c | ||
1010 | target/arm/tcc77x/debug-tcc77x.c | 1013 | target/arm/tcc77x/debug-tcc77x.c |
1011 | target/arm/pcm-telechips.c | 1014 | target/arm/pcm-telechips.c |
1015 | target/arm/tcc77x/m200/audio-m200.c | ||
1012 | #endif /* BOOTLOADER */ | 1016 | #endif /* BOOTLOADER */ |
1013 | #endif /* SIMULATOR */ | 1017 | #endif /* SIMULATOR */ |
1014 | #endif /* SANSA_M200 */ | 1018 | #endif /* SANSA_M200 */ |
diff --git a/firmware/export/config-logikdax.h b/firmware/export/config-logikdax.h index c66a2ab581..4b205de425 100644 --- a/firmware/export/config-logikdax.h +++ b/firmware/export/config-logikdax.h | |||
@@ -32,6 +32,8 @@ | |||
32 | /* define this if you would like tagcache to build on this target */ | 32 | /* define this if you would like tagcache to build on this target */ |
33 | #define HAVE_TAGCACHE | 33 | #define HAVE_TAGCACHE |
34 | 34 | ||
35 | #define HAVE_FAT16SUPPORT | ||
36 | |||
35 | /* define this if you have a flash memory storage */ | 37 | /* define this if you have a flash memory storage */ |
36 | #define HAVE_FLASH_STORAGE | 38 | #define HAVE_FLASH_STORAGE |
37 | 39 | ||
@@ -54,14 +56,22 @@ | |||
54 | /* Define this if you have a software controlled poweroff */ | 56 | /* Define this if you have a software controlled poweroff */ |
55 | #define HAVE_SW_POWEROFF | 57 | #define HAVE_SW_POWEROFF |
56 | 58 | ||
59 | /* The number of bytes reserved for loadable codecs */ | ||
60 | #define CODEC_SIZE 0x9c000 | ||
61 | |||
57 | /* The number of bytes reserved for loadable plugins */ | 62 | /* The number of bytes reserved for loadable plugins */ |
58 | #define PLUGIN_BUFFER_SIZE 0x8000 | 63 | #define PLUGIN_BUFFER_SIZE 0x8c000 |
59 | 64 | ||
60 | #define AB_REPEAT_ENABLE 1 | 65 | #define AB_REPEAT_ENABLE 1 |
61 | 66 | ||
62 | /* Define this if you do software codec */ | 67 | /* Define this if you do software codec */ |
63 | #define CONFIG_CODEC SWCODEC | 68 | #define CONFIG_CODEC SWCODEC |
64 | 69 | ||
70 | /* The DAX uses built-in WM8731 codec */ | ||
71 | #define HAVE_WM8731 | ||
72 | /* Codec is slave on serial bus */ | ||
73 | #define CODEC_SLAVE | ||
74 | |||
65 | /* Define this for LCD backlight available */ | 75 | /* Define this for LCD backlight available */ |
66 | #define HAVE_BACKLIGHT | 76 | #define HAVE_BACKLIGHT |
67 | 77 | ||
@@ -109,4 +119,14 @@ | |||
109 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 119 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
110 | #define BOOTDIR "/" | 120 | #define BOOTDIR "/" |
111 | 121 | ||
122 | #define IBSS_ATTR_VOICE_STACK | ||
123 | #define ICODE_ATTR_TREMOR_NOT_MDCT | ||
124 | #define ICODE_ATTR_TREMOR_MDCT | ||
125 | #define ICODE_ATTR_FLAC | ||
126 | #define IBSS_ATTR_FLAC_DECODED0 | ||
127 | #define ICONST_ATTR_MPA_HUFFMAN | ||
128 | #define IBSS_ATTR_MPC_SAMPLE_BUF | ||
129 | #define ICODE_ATTR_ALAC | ||
130 | #define IBSS_ATTR_SHORTEN_DECODED0 | ||
131 | |||
112 | #endif /* SIMULATOR */ | 132 | #endif /* SIMULATOR */ |
diff --git a/firmware/export/config-m200.h b/firmware/export/config-m200.h index f7ab78d87e..eeac509970 100644 --- a/firmware/export/config-m200.h +++ b/firmware/export/config-m200.h | |||
@@ -57,8 +57,11 @@ | |||
57 | /* Define this if you have a software controlled poweroff */ | 57 | /* Define this if you have a software controlled poweroff */ |
58 | #define HAVE_SW_POWEROFF | 58 | #define HAVE_SW_POWEROFF |
59 | 59 | ||
60 | /* The number of bytes reserved for loadable codecs */ | ||
61 | #define CODEC_SIZE 0x20000 | ||
62 | |||
60 | /* The number of bytes reserved for loadable plugins */ | 63 | /* The number of bytes reserved for loadable plugins */ |
61 | #define PLUGIN_BUFFER_SIZE 0x8000 | 64 | #define PLUGIN_BUFFER_SIZE 0x10000 |
62 | 65 | ||
63 | #define AB_REPEAT_ENABLE 1 | 66 | #define AB_REPEAT_ENABLE 1 |
64 | 67 | ||
@@ -118,4 +121,14 @@ | |||
118 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 121 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
119 | #define BOOTDIR "/" | 122 | #define BOOTDIR "/" |
120 | 123 | ||
124 | #define IBSS_ATTR_VOICE_STACK | ||
125 | #define ICODE_ATTR_TREMOR_NOT_MDCT | ||
126 | #define ICODE_ATTR_TREMOR_MDCT | ||
127 | #define ICODE_ATTR_FLAC | ||
128 | #define IBSS_ATTR_FLAC_DECODED0 | ||
129 | #define ICONST_ATTR_MPA_HUFFMAN | ||
130 | #define IBSS_ATTR_MPC_SAMPLE_BUF | ||
131 | #define ICODE_ATTR_ALAC | ||
132 | #define IBSS_ATTR_SHORTEN_DECODED0 | ||
133 | |||
121 | #endif /* SIMULATOR */ | 134 | #endif /* SIMULATOR */ |
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c index 63f50f7d78..b3fd9216dc 100644 --- a/firmware/target/arm/pcm-telechips.c +++ b/firmware/target/arm/pcm-telechips.c | |||
@@ -94,6 +94,10 @@ void pcm_play_dma_init(void) | |||
94 | BCLKCTR |= DEV_DAI; | 94 | BCLKCTR |= DEV_DAI; |
95 | /* Master mode, 256->64fs, 16bit LSB*/ | 95 | /* Master mode, 256->64fs, 16bit LSB*/ |
96 | DAMR = 0x3cce20; | 96 | DAMR = 0x3cce20; |
97 | #elif defined(LOGIK_DAX) | ||
98 | /* TODO */ | ||
99 | #elif defined(SANSA_M200) | ||
100 | /* TODO */ | ||
97 | #else | 101 | #else |
98 | #error "Target isn't supported" | 102 | #error "Target isn't supported" |
99 | #endif | 103 | #endif |
diff --git a/firmware/target/arm/tcc77x/lcd-ssd1815.c b/firmware/target/arm/tcc77x/lcd-ssd1815.c index a6e4481fb2..b41c8d26ef 100644 --- a/firmware/target/arm/tcc77x/lcd-ssd1815.c +++ b/firmware/target/arm/tcc77x/lcd-ssd1815.c | |||
@@ -129,21 +129,8 @@ void lcd_set_invert_display(bool yesno) | |||
129 | /* turn the display upside down (call lcd_update() afterwards) */ | 129 | /* turn the display upside down (call lcd_update() afterwards) */ |
130 | void lcd_set_flip(bool yesno) | 130 | void lcd_set_flip(bool yesno) |
131 | { | 131 | { |
132 | /* TODO: flip mode isn't working. The commands in the else part of | 132 | (void)yesno; |
133 | this function are how the original firmware inits the LCD */ | 133 | /* TODO */ |
134 | |||
135 | if (yesno) | ||
136 | { | ||
137 | lcd_write_command(LCD_SET_SEGMENT_REMAP | 0x01); | ||
138 | lcd_write_command(LCD_SET_COM_OUTPUT_SCAN_DIRECTION); | ||
139 | xoffset = 132 - LCD_WIDTH; /* 132 colums minus the 128 we have */ | ||
140 | } | ||
141 | else | ||
142 | { | ||
143 | lcd_write_command(LCD_SET_SEGMENT_REMAP); | ||
144 | lcd_write_command(LCD_SET_COM_OUTPUT_SCAN_DIRECTION | 0x08); | ||
145 | xoffset = 0; | ||
146 | } | ||
147 | } | 134 | } |
148 | 135 | ||
149 | 136 | ||
diff --git a/firmware/target/arm/tcc77x/logikdax/audio-logikdax.c b/firmware/target/arm/tcc77x/logikdax/audio-logikdax.c new file mode 100644 index 0000000000..bd85e0b573 --- /dev/null +++ b/firmware/target/arm/tcc77x/logikdax/audio-logikdax.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2007 by Michael Sevakis | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #include "system.h" | ||
22 | #include "cpu.h" | ||
23 | #include "audio.h" | ||
24 | #include "sound.h" | ||
25 | |||
26 | int audio_channels = 2; | ||
27 | int audio_output_source = AUDIO_SRC_PLAYBACK; | ||
28 | |||
29 | void audiohw_enable_output(bool on) | ||
30 | { | ||
31 | (void)on; | ||
32 | } | ||
33 | |||
34 | void audio_set_output_source(int source) | ||
35 | { | ||
36 | (void)source; | ||
37 | } | ||
38 | |||
39 | void audio_input_mux(int source, unsigned flags) | ||
40 | { | ||
41 | (void)source; | ||
42 | (void)flags; | ||
43 | } | ||
diff --git a/firmware/target/arm/tcc77x/m200/audio-m200.c b/firmware/target/arm/tcc77x/m200/audio-m200.c new file mode 100644 index 0000000000..bd85e0b573 --- /dev/null +++ b/firmware/target/arm/tcc77x/m200/audio-m200.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2007 by Michael Sevakis | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #include "system.h" | ||
22 | #include "cpu.h" | ||
23 | #include "audio.h" | ||
24 | #include "sound.h" | ||
25 | |||
26 | int audio_channels = 2; | ||
27 | int audio_output_source = AUDIO_SRC_PLAYBACK; | ||
28 | |||
29 | void audiohw_enable_output(bool on) | ||
30 | { | ||
31 | (void)on; | ||
32 | } | ||
33 | |||
34 | void audio_set_output_source(int source) | ||
35 | { | ||
36 | (void)source; | ||
37 | } | ||
38 | |||
39 | void audio_input_mux(int source, unsigned flags) | ||
40 | { | ||
41 | (void)source; | ||
42 | (void)flags; | ||
43 | } | ||
diff --git a/firmware/target/arm/wmcodec-telechips.c b/firmware/target/arm/wmcodec-telechips.c index 5fcc46154b..de3a29c8c7 100644 --- a/firmware/target/arm/wmcodec-telechips.c +++ b/firmware/target/arm/wmcodec-telechips.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #if defined(COWON_D2) | 34 | #if defined(COWON_D2) |
35 | /* The D2's audio codec uses an I2C address of 0x34 */ | 35 | /* The D2's audio codec uses an I2C address of 0x34 */ |
36 | #define I2C_AUDIO_ADDRESS 0x34 | 36 | #define I2C_AUDIO_ADDRESS 0x34 |
37 | #elif defined (IAUDIO_7) | 37 | #elif defined (IAUDIO_7) || defined(LOGIK_DAX) || defined(SANSA_M200) |
38 | #define I2C_AUDIO_ADDRESS 0x34 | 38 | #define I2C_AUDIO_ADDRESS 0x34 |
39 | #else | 39 | #else |
40 | #error wmcodec not implemented for this target! | 40 | #error wmcodec not implemented for this target! |
diff --git a/tools/scramble.c b/tools/scramble.c index ffcde9328b..3b2ff67291 100644 --- a/tools/scramble.c +++ b/tools/scramble.c | |||
@@ -122,7 +122,7 @@ void usage(void) | |||
122 | "\t (X values: h100, h120, h140, h300, ipco, nano, ipvd, mn2g\n" | 122 | "\t (X values: h100, h120, h140, h300, ipco, nano, ipvd, mn2g\n" |
123 | "\t ip3g, ip4g, mini, iax5, iam5, iam3, h10, h10_5gb,\n" | 123 | "\t ip3g, ip4g, mini, iax5, iam5, iam3, h10, h10_5gb,\n" |
124 | "\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n"); | 124 | "\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n"); |
125 | printf("\t 9200, 1630)\n"); | 125 | printf("\t 9200, 1630, ldax, m200)\n"); |
126 | printf("\nNo option results in Archos standard player/recorder format.\n"); | 126 | printf("\nNo option results in Archos standard player/recorder format.\n"); |
127 | 127 | ||
128 | exit(1); | 128 | exit(1); |
@@ -277,6 +277,10 @@ int main (int argc, char** argv) | |||
277 | modelnum = 25; | 277 | modelnum = 25; |
278 | else if(!strcmp(&argv[1][5], "9200")) /* Philips SA9200 */ | 278 | else if(!strcmp(&argv[1][5], "9200")) /* Philips SA9200 */ |
279 | modelnum = 26; | 279 | modelnum = 26; |
280 | else if (!strcmp(&argv[1][5], "ldax")) | ||
281 | modelnum = 27; | ||
282 | else if (!strcmp(&argv[1][5], "m200")) | ||
283 | modelnum = 29; | ||
280 | else if(!strcmp(&argv[1][5], "1630")) /* Philips HDD1630 */ | 284 | else if(!strcmp(&argv[1][5], "1630")) /* Philips HDD1630 */ |
281 | modelnum = 31; | 285 | modelnum = 31; |
282 | else if (!strcmp(&argv[1][5], "i7")) | 286 | else if (!strcmp(&argv[1][5], "i7")) |