mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 10:37:38 -04:00
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 "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;
|
||||||
|
|
|
@ -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, ...);
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue