1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2006 by Daniel Everton <dan@iocaine.org>
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.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
32 #ifdef HAVE_LCD_BITMAP
33 #include "lcd-bitmap.h"
34 #elif defined(HAVE_LCD_CHARCELLS)
35 #include "lcd-charcells.h"
37 #ifdef HAVE_REMOTE_LCD
38 #include "lcd-remote-bitmap.h"
40 #include "thread-sdl.h"
41 #include "SDL_mutex.h"
42 #include "SDL_thread.h"
46 /* extern functions */
47 extern void new_key(int key
);
48 extern int xy2button( int x
, int y
);
49 void button_event(int key
, bool pressed
);
51 SDL_Surface
*gui_surface
;
52 bool background
= true; /* use backgrounds by default */
53 #ifdef HAVE_REMOTE_LCD
54 bool showremote
= true; /* include remote by default */
57 bool debug_buttons
= false;
59 bool lcd_display_redraw
= true; /* Used for player simulator */
60 char having_new_lcd
= true; /* Used for player simulator */
61 bool sim_alarm_wakeup
= false;
62 const char *sim_root_dir
= NULL
;
65 bool debug_audio
= false;
68 bool debug_wps
= false;
69 int wps_verbose_level
= 3;
71 #if defined(WIN32) && defined(main)
72 /* Don't use SDL_main on windows -> no more stdio redirection */
75 int main(int argc
, char *argv
[])
80 for (x
= 1; x
< argc
; x
++)
83 if (!strcmp("--debugaudio", argv
[x
]))
86 printf("Writing debug audio file.\n");
90 if (!strcmp("--debugwps", argv
[x
]))
93 printf("WPS debug mode enabled.\n");
95 else if (!strcmp("--nobackground", argv
[x
]))
98 printf("Disabling background image.\n");
100 #ifdef HAVE_REMOTE_LCD
101 else if (!strcmp("--noremote", argv
[x
]))
105 printf("Disabling remote image.\n");
108 else if (!strcmp("--old_lcd", argv
[x
]))
110 having_new_lcd
= false;
111 printf("Using old LCD layout.\n");
113 else if (!strcmp("--zoom", argv
[x
]))
117 display_zoom
=atoi(argv
[x
]);
120 printf("Window zoom is %d\n", display_zoom
);
122 else if (!strcmp("--alarm", argv
[x
]))
124 sim_alarm_wakeup
= true;
125 printf("Simulating alarm wakeup.\n");
127 else if (!strcmp("--root", argv
[x
]))
132 sim_root_dir
= argv
[x
];
133 printf("Root directory: %s\n", sim_root_dir
);
136 else if (!strcmp("--mapping", argv
[x
]))
139 printf("Printing click coords with drag radii.\n");
141 else if (!strcmp("--debugbuttons", argv
[x
]))
143 debug_buttons
= true;
144 printf("Printing background button clicks.\n");
148 printf("rockboxui\n");
149 printf("Arguments:\n");
151 printf(" --debugaudio \t Write raw PCM data to audiodebug.raw\n");
153 printf(" --debugwps \t Print advanced WPS debug info\n");
154 printf(" --nobackground \t Disable the background image\n");
155 #ifdef HAVE_REMOTE_LCD
156 printf(" --noremote \t Disable the remote image (will disable backgrounds)\n");
158 printf(" --old_lcd \t [Player] simulate old playermodel (ROM version<4.51)\n");
159 printf(" --zoom [VAL]\t Window zoom (will disable backgrounds)\n");
160 printf(" --alarm \t Simulate a wake-up on alarm\n");
161 printf(" --root [DIR]\t Set root directory\n");
162 printf(" --mapping \t Output coordinates and radius for mapping backgrounds\n");
168 if (display_zoom
> 1) {
172 /* need to call it here for the time being, before enabling threads */
174 struct thread_entry
*t
= NULL
;
176 /* app_main will be called by the new main thread */
177 if (!thread_sdl_init(&t
)) {
178 fprintf(stderr
, "thread_sdl_init failed\n");
184 SDL_WaitThread(t
->context
.t
, &status
);