forked from len0rd/rockbox
Disable bootloader messages in the ipod bootloader unless the RIGHT button is being held. Messages are still displayed if an error occurs. This needs implementing for the other bootloaders.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12631 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
e70362d106
commit
4d25bffc8a
3 changed files with 24 additions and 7 deletions
|
@ -22,9 +22,18 @@
|
|||
#include "system.h"
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include "cpu.h"
|
||||
#include "common.h"
|
||||
|
||||
/* TODO: Other bootloaders need to be adjusted to set this variable to true
|
||||
on a button press - currently only the ipod version does. */
|
||||
#ifdef IPOD_ARCH
|
||||
bool verbose = false;
|
||||
#else
|
||||
bool verbose = true;
|
||||
#endif
|
||||
|
||||
int line = 0;
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
int remote_line = 0;
|
||||
|
@ -54,12 +63,14 @@ void printf(const char *format, ...)
|
|||
va_end(ap);
|
||||
|
||||
lcd_puts(0, line++, ptr);
|
||||
lcd_update();
|
||||
if (verbose)
|
||||
lcd_update();
|
||||
if(line >= LCD_HEIGHT/SYSFONT_HEIGHT)
|
||||
line = 0;
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
lcd_remote_puts(0, remote_line++, ptr);
|
||||
lcd_remote_update();
|
||||
if (verbose)
|
||||
lcd_remote_update();
|
||||
if(remote_line >= LCD_REMOTE_HEIGHT/SYSFONT_HEIGHT)
|
||||
remote_line = 0;
|
||||
#endif
|
||||
|
|
|
@ -26,6 +26,9 @@
|
|||
#define EBAD_CHKSUM -5
|
||||
#define EFILE_TOO_BIG -6
|
||||
|
||||
/* Set this to true to enable lcd_update() in the printf function */
|
||||
extern bool verbose;
|
||||
|
||||
/* Functions common to all bootloaders */
|
||||
void reset_screen(void);
|
||||
void printf(const char *format, ...);
|
||||
|
|
|
@ -223,6 +223,7 @@ void* main(void)
|
|||
{
|
||||
char buf[256];
|
||||
int i;
|
||||
int btn;
|
||||
int rc;
|
||||
bool haveretailos;
|
||||
bool button_was_held;
|
||||
|
@ -278,6 +279,11 @@ void* main(void)
|
|||
button_init();
|
||||
#endif
|
||||
|
||||
btn=key_pressed();
|
||||
|
||||
/* Enable bootloader messages */
|
||||
if (btn==BUTTON_RIGHT)
|
||||
verbose = true;
|
||||
|
||||
lcd_setfont(FONT_SYSFIXED);
|
||||
|
||||
|
@ -314,10 +320,7 @@ void* main(void)
|
|||
pinfo->type, pinfo->size / 2048);
|
||||
|
||||
|
||||
/* Check for a keypress */
|
||||
i=key_pressed();
|
||||
|
||||
if (button_was_held || (i==BUTTON_MENU)) {
|
||||
if (button_was_held || (btn==BUTTON_MENU)) {
|
||||
/* If either the hold switch was on, or the Menu button was held, then
|
||||
try the Apple firmware */
|
||||
|
||||
|
@ -349,7 +352,7 @@ void* main(void)
|
|||
/* Everything failed - just loop forever */
|
||||
printf("No RetailOS detected");
|
||||
|
||||
} else if (i==BUTTON_PLAY) {
|
||||
} else if (btn==BUTTON_PLAY) {
|
||||
printf("Loading Linux...");
|
||||
rc=load_raw_firmware(loadbuffer, "/linux.bin", MAX_LOADSIZE);
|
||||
if (rc < EOK) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue