Corrected name spelling.
[kugel-rb/myfork.git] / apps / main.c
blob22fd8f60515c17b052560a5fd65e5fa743ffb70e
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2002 by Björn Stenberg
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.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
19 #include "ata.h"
20 #include "disk.h"
21 #include "fat.h"
22 #include "lcd.h"
23 #include "rtc.h"
24 #include "debug.h"
25 #include "led.h"
26 #include "kernel.h"
27 #include "button.h"
28 #include "tree.h"
29 #include "panic.h"
30 #include "menu.h"
31 #include "system.h"
32 #include "usb.h"
33 #include "powermgmt.h"
34 #include "adc.h"
35 #include "i2c.h"
36 #ifndef DEBUG
37 #include "serial.h"
38 #endif
39 #include "mpeg.h"
40 #include "main_menu.h"
41 #include "thread.h"
42 #include "settings.h"
43 #include "backlight.h"
44 #include "status.h"
45 #include "debug_menu.h"
46 #include "version.h"
47 #include "sprintf.h"
48 #ifdef LOADABLE_FONTS
49 #include "unicode.h"
50 #endif
53 char appsversion[]=APPSVERSION;
55 void init(void);
57 void app_main(void)
59 init();
60 browse_root();
63 #ifdef SIMULATOR
65 void init(void)
67 init_threads();
68 #ifdef LOADABLE_FONTS
69 unicode_init();
70 #endif
71 lcd_init();
72 show_logo();
73 settings_reset();
74 settings_load();
75 sleep(HZ/2);
78 #else
80 /* defined in linker script */
81 extern int poolstart[];
82 extern int poolend[];
84 void init(void)
86 int rc, i;
87 struct partinfo* pinfo;
89 system_init();
90 kernel_init();
92 settings_reset();
94 lcd_init();
96 show_logo();
98 #ifdef DEBUG
99 debug_init();
100 #else
101 serial_setup();
102 #endif
103 set_irq_level(0);
105 i2c_init();
107 #ifdef HAVE_RTC
108 rtc_init();
109 #endif
111 adc_init();
113 usb_init();
115 backlight_init();
117 button_init();
119 rc = ata_init();
120 if(rc)
122 #ifdef HAVE_LCD_BITMAP
123 char str[32];
124 lcd_clear_display();
125 snprintf(str, 31, "ATA error: %d", rc);
126 lcd_puts(0, 1, str);
127 lcd_puts(0, 3, "Press ON to debug");
128 lcd_update();
129 while(button_get(true) != BUTTON_ON);
130 dbg_ports();
131 #endif
132 panicf("ata: %d", rc);
135 pinfo = disk_init();
136 if (!pinfo)
137 panicf("disk: NULL");
139 for ( i=0; i<4; i++ ) {
140 if (!fat_mount(pinfo[i].start))
141 break;
143 if ( i==4 ) {
144 DEBUGF("No partition found, trying to mount sector 0.\n");
145 rc = fat_mount(0);
146 if(rc)
147 panicf("No FAT32 partition!");
150 settings_load();
152 mpeg_init( global_settings.volume,
153 global_settings.bass,
154 global_settings.treble,
155 global_settings.balance,
156 global_settings.loudness,
157 global_settings.bass_boost,
158 global_settings.avc );
160 status_init();
161 usb_start_monitoring();
162 power_init();
163 #ifdef LOADABLE_FONTS
164 unicode_init();
165 lcd_init_fonts();
166 #endif
169 int main(void)
171 app_main();
173 while(1) {
174 led(true); sleep(HZ/10);
175 led(false); sleep(HZ/10);
177 return 0;
179 #endif