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
|
@ -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…
Reference in New Issue