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,12 +63,14 @@ void printf(const char *format, ...)
va_end(ap); va_end(ap);
lcd_puts(0, line++, ptr); lcd_puts(0, line++, ptr);
lcd_update(); if (verbose)
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);
lcd_remote_update(); if (verbose)
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;
#endif #endif

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) {