1
0
Fork 0
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:
Dave Chapman 2007-03-05 23:56:28 +00:00
parent e70362d106
commit 4d25bffc8a
3 changed files with 24 additions and 7 deletions

View file

@ -22,9 +22,18 @@
#include "system.h" #include "system.h"
#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#include <stdbool.h>
#include "cpu.h" #include "cpu.h"
#include "common.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; int line = 0;
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
int remote_line = 0; int remote_line = 0;
@ -54,11 +63,13 @@ void printf(const char *format, ...)
va_end(ap); va_end(ap);
lcd_puts(0, line++, ptr); lcd_puts(0, line++, ptr);
if (verbose)
lcd_update(); lcd_update();
if(line >= LCD_HEIGHT/SYSFONT_HEIGHT) if(line >= LCD_HEIGHT/SYSFONT_HEIGHT)
line = 0; line = 0;
#ifdef HAVE_REMOTE_LCD #ifdef HAVE_REMOTE_LCD
lcd_remote_puts(0, remote_line++, ptr); lcd_remote_puts(0, remote_line++, ptr);
if (verbose)
lcd_remote_update(); lcd_remote_update();
if(remote_line >= LCD_REMOTE_HEIGHT/SYSFONT_HEIGHT) if(remote_line >= LCD_REMOTE_HEIGHT/SYSFONT_HEIGHT)
remote_line = 0; remote_line = 0;

View file

@ -26,6 +26,9 @@
#define EBAD_CHKSUM -5 #define EBAD_CHKSUM -5
#define EFILE_TOO_BIG -6 #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 */ /* Functions common to all bootloaders */
void reset_screen(void); void reset_screen(void);
void printf(const char *format, ...); void printf(const char *format, ...);

View file

@ -223,6 +223,7 @@ void* main(void)
{ {
char buf[256]; char buf[256];
int i; int i;
int btn;
int rc; int rc;
bool haveretailos; bool haveretailos;
bool button_was_held; bool button_was_held;
@ -278,6 +279,11 @@ void* main(void)
button_init(); button_init();
#endif #endif
btn=key_pressed();
/* Enable bootloader messages */
if (btn==BUTTON_RIGHT)
verbose = true;
lcd_setfont(FONT_SYSFIXED); lcd_setfont(FONT_SYSFIXED);
@ -314,10 +320,7 @@ void* main(void)
pinfo->type, pinfo->size / 2048); pinfo->type, pinfo->size / 2048);
/* Check for a keypress */ if (button_was_held || (btn==BUTTON_MENU)) {
i=key_pressed();
if (button_was_held || (i==BUTTON_MENU)) {
/* If either the hold switch was on, or the Menu button was held, then /* If either the hold switch was on, or the Menu button was held, then
try the Apple firmware */ try the Apple firmware */
@ -349,7 +352,7 @@ void* main(void)
/* Everything failed - just loop forever */ /* Everything failed - just loop forever */
printf("No RetailOS detected"); printf("No RetailOS detected");
} else if (i==BUTTON_PLAY) { } else if (btn==BUTTON_PLAY) {
printf("Loading Linux..."); printf("Loading Linux...");
rc=load_raw_firmware(loadbuffer, "/linux.bin", MAX_LOADSIZE); rc=load_raw_firmware(loadbuffer, "/linux.bin", MAX_LOADSIZE);
if (rc < EOK) { if (rc < EOK) {