forked from len0rd/rockbox
detect cold start (from flash) and look for archos.mod/ajbrec.ajz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3808 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d4735224bb
commit
c47f8c042c
1 changed files with 22 additions and 1 deletions
23
apps/main.c
23
apps/main.c
|
|
@ -50,6 +50,7 @@
|
||||||
#include "wps-display.h"
|
#include "wps-display.h"
|
||||||
#include "playlist.h"
|
#include "playlist.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
|
#include "rolo.h"
|
||||||
|
|
||||||
char appsversion[]=APPSVERSION;
|
char appsversion[]=APPSVERSION;
|
||||||
|
|
||||||
|
|
@ -97,6 +98,7 @@ void init(void)
|
||||||
{
|
{
|
||||||
int rc, i;
|
int rc, i;
|
||||||
struct partinfo* pinfo;
|
struct partinfo* pinfo;
|
||||||
|
bool coldstart; /* starting from Flash */
|
||||||
|
|
||||||
system_init();
|
system_init();
|
||||||
kernel_init();
|
kernel_init();
|
||||||
|
|
@ -131,6 +133,9 @@ void init(void)
|
||||||
|
|
||||||
button_init();
|
button_init();
|
||||||
|
|
||||||
|
/* if nobody initialized ATA before, I consider this a cold start */
|
||||||
|
coldstart = (PACR2 & 0x4000) != 0;
|
||||||
|
|
||||||
rc = ata_init();
|
rc = ata_init();
|
||||||
if(rc)
|
if(rc)
|
||||||
{
|
{
|
||||||
|
|
@ -168,7 +173,7 @@ void init(void)
|
||||||
dbg_partitions();
|
dbg_partitions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settings_load();
|
settings_load();
|
||||||
|
|
||||||
status_init();
|
status_init();
|
||||||
|
|
@ -188,6 +193,22 @@ void init(void)
|
||||||
global_settings.channel_config );
|
global_settings.channel_config );
|
||||||
|
|
||||||
power_init();
|
power_init();
|
||||||
|
|
||||||
|
if (coldstart && !usb_detect())
|
||||||
|
{ /* when starting from flash, this time _we_ have to yield */
|
||||||
|
int fd;
|
||||||
|
#ifdef HAVE_LCD_CHARCELLS
|
||||||
|
static const char filename[] = "/archos.mod";
|
||||||
|
#else
|
||||||
|
static const char filename[] = "/ajbrec.ajz";
|
||||||
|
#endif
|
||||||
|
fd = open(filename, O_RDONLY);
|
||||||
|
if(fd >= 0) /* no complaint if it doesn't exit */
|
||||||
|
{
|
||||||
|
close(fd);
|
||||||
|
rolo_load((char*)filename); /* start if it does */
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue