rendered paste bodyIndex: bootloader/main-pp.c
===================================================================
--- bootloader/main-pp.c (revision 15109)
+++ bootloader/main-pp.c (working copy)
@@ -470,16 +470,18 @@
system_init();
kernel_init();
lcd_init();
+
+ lcd_set_foreground(LCD_WHITE);
+ lcd_set_background(LCD_BLACK);
+ lcd_clear_display();
+
font_init();
+ show_logo();
button_init();
#if defined(SANSA_E200)
i2c_init();
__backlight_on();
#endif
-
- lcd_set_foreground(LCD_WHITE);
- lcd_set_background(LCD_BLACK);
- lcd_clear_display();
btn = button_read_device();
#if defined(SANSA_E200) || defined(SANSA_C200)
@@ -494,8 +496,10 @@
btn |= BOOTLOADER_BOOT_OF;
#endif
/* Enable bootloader messages if any button is pressed */
- if (btn)
+ if (btn) {
+ lcd_clear_display();
verbose = true;
+ }
lcd_setfont(FONT_SYSFIXED);
Index: bootloader/gigabeat.c
===================================================================
--- bootloader/gigabeat.c (revision 15109)
+++ bootloader/gigabeat.c (working copy)
@@ -60,6 +60,7 @@
lcd_init();
backlight_init();
font_init();
+ show_logo();
lcd_setfont(FONT_SYSFIXED);
@@ -92,8 +93,10 @@
button_init();
/* Show debug messages if button is pressed */
- if(button_read_device())
+ if(button_read_device()) {
+ lcd_clear_display();
verbose = true;
+ }
printf("Rockbox boot loader");
printf("Version %s", version);
Index: bootloader/main.c
===================================================================
--- bootloader/main.c (revision 15109)
+++ bootloader/main.c (working copy)
@@ -453,6 +453,7 @@
lcd_remote_init();
#endif
font_init();
+ show_logo();
lcd_setfont(FONT_SYSFIXED);
Index: bootloader/iaudio_x5.c
===================================================================
--- bootloader/iaudio_x5.c (revision 15109)
+++ bootloader/iaudio_x5.c (working copy)
@@ -150,6 +150,8 @@
#endif
backlight_init();
font_init();
+ show_logo();
+
adc_init();
button_init();
Index: bootloader/common.c
===================================================================
--- bootloader/common.c (revision 15109)
+++ bootloader/common.c (working copy)
@@ -27,6 +27,7 @@
#include "common.h"
#include "power.h"
#include "kernel.h"
+#include "rockboxlogo.h"
/* TODO: Other bootloaders need to be adjusted to set this variable to true
on a button press - currently only the ipod, H10 and Sansa versions do. */
@@ -223,6 +224,24 @@
return len;
}
+int show_logo( void )
+{
+ char boot_version[32];
+
+ snprintf(boot_version, sizeof(boot_version), "Boot Ver. %s", APPSVERSION);
+
+ lcd_clear_display();
+ lcd_bitmap(rockboxlogo, 0, 10, BMPWIDTH_rockboxlogo, BMPHEIGHT_rockboxlogo);
+ lcd_setfont(FONT_SYSFIXED);
+ lcd_putsxy((LCD_WIDTH/2) - ((strlen(boot_version)*SYSFONT_WIDTH)/2),
+ LCD_HEIGHT-SYSFONT_HEIGHT, (unsigned char *)boot_version);
+
+ lcd_update();
+
+ return 0;
+}
+
+
/* These functions are present in the firmware library, but we reimplement
them here because the originals do a lot more than we want */
void reset_poweroff_timer(void)
Index: bootloader/iriver_h300.c
===================================================================
--- bootloader/iriver_h300.c (revision 15109)
+++ bootloader/iriver_h300.c (working copy)
@@ -200,6 +200,7 @@
lcd_init();
lcd_remote_init();
font_init();
+ show_logo();
lcd_setfont(FONT_SYSFIXED);
Index: bootloader/ipod.c
===================================================================
--- bootloader/ipod.c (revision 15109)
+++ bootloader/ipod.c (working copy)
@@ -253,6 +253,8 @@
lcd_clear_display();
#endif
+ show_logo();
+
#if 0
/* ADC and button drivers are not yet implemented */
adc_init();
@@ -262,8 +264,10 @@
btn=key_pressed();
/* Enable bootloader messages */
- if (btn==BUTTON_RIGHT)
+ if (btn==BUTTON_RIGHT) {
+ lcd_clear_display();
verbose = true;
+ }
lcd_setfont(FONT_SYSFIXED);
Index: bootloader/Makefile
===================================================================
--- bootloader/Makefile (revision 15109)
+++ bootloader/Makefile (working copy)
@@ -8,11 +8,31 @@
#
INCLUDES= $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(OBJDIR) \
- -I$(BUILDDIR)
+ -I$(BUILDDIR) -I$(BUILDDIR)/bitmaps
DEPFILE = $(OBJDIR)/dep-bootloader
LDS := $(FIRMDIR)/boot.lds
+# Set up the bitmap libraries
+BITMAPLIBS =
+LINKBITMAPS =
+ifneq ($(strip $(BMP2RB_MONO)),)
+ BITMAPLIBS += $(BUILDDIR)/libbitmapsmono.a
+ LINKBITMAPS += -lbitmapsmono
+endif
+ifneq ($(strip $(BMP2RB_NATIVE)),)
+ BITMAPLIBS += $(BUILDDIR)/libbitmapsnative.a
+ LINKBITMAPS += -lbitmapsnative
+endif
+ifneq ($(strip $(BMP2RB_REMOTEMONO)),)
+ BITMAPLIBS += $(BUILDDIR)/libbitmapsremotemono.a
+ LINKBITMAPS += -lbitmapsremotemono
+endif
+ifneq ($(strip $(BMP2RB_REMOTENATIVE)),)
+ BITMAPLIBS += $(BUILDDIR)/libbitmapsremotenative.a
+ LINKBITMAPS += -lbitmapsremotenative
+endif
+
ifdef DEBUG
DEFINES := -DDEBUG
CFLAGS += -g
@@ -47,6 +67,8 @@
all: $(BUILDDIR)/$(BINARY) $(FLASHFILE)
endif
+$(DEPFILE): $(BITMAPLIBS)
+
dep: $(DEPFILE)
$(LINKFILE): $(LDS)
@@ -58,9 +80,23 @@
$(SILENT)cat $(MAXINFILE) | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - > $(MAXOUTFILE)
$(SILENT)rm $(MAXINFILE)
-$(OBJDIR)/bootloader.elf : $(OBJS) $(LINKFILE) $(DEPFILE) $(LIBROCKBOX)
- $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Wl,--gc-sections -Os -nostdlib -o $@ $(OBJS) -L$(BUILDDIR) -L$(BUILDDIR)/firmware -lrockbox -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/bootloader.map
+build-bitmapsmono:
+ $(call PRINTS,MAKE in bitmaps/mono)$(MAKE) -C bitmaps/mono OBJDIR=$(OBJDIR)/bitmaps/mono
+build-bitmapsnative:
+ $(call PRINTS,MAKE in bitmaps/native)$(MAKE) -C bitmaps/native OBJDIR=$(OBJDIR)/bitmaps/native
+
+build-bitmapsremotemono:
+ $(call PRINTS,MAKE in bitmaps/remote_mono)$(MAKE) -C bitmaps/remote_mono OBJDIR=$(OBJDIR)/bitmaps/remote_mono
+
+build-bitmapsremotenative:
+ $(call PRINTS,MAKE in bitmaps/remote_native)$(MAKE) -C bitmaps/remote_native OBJDIR=$(OBJDIR)/bitmaps/remote_native
+
+$(BITMAPLIBS): $(BUILDDIR)/lib%.a: build-%
+
+$(OBJDIR)/bootloader.elf : $(OBJS) $(LINKFILE) $(DEPFILE) $(LIBROCKBOX) $(BITMAPLIBS)
+ $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Wl,--gc-sections -Os -nostdlib -o $@ $(OBJS) -L$(BUILDDIR) -L$(BUILDDIR)/firmware -lrockbox $(LINKBITMAPS) -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/bootloader.map
+
$(OBJDIR)/bootloader.bin : $(OBJDIR)/bootloader.elf
$(call PRINTS,OBJCOPY $(@F))$(OC) -O binary $< $@
@@ -76,5 +112,9 @@
$(call PRINTS,cleaning bootloader)-rm -f $(OBJS) $(BUILDDIR)/$(BINARY) $(OBJDIR)/bootloader.asm \
$(OBJDIR)/bootloader.bin $(OBJDIR)/bootloader.elf $(OBJDIR)/*.map \
$(LINKFILE) $(MAXOUTFILE) $(DEPFILE)
+ $(SILENT)$(MAKE) -C bitmaps/mono clean OBJDIR=$(OBJDIR)/bitmaps/mono
+ $(SILENT)$(MAKE) -C bitmaps/native clean OBJDIR=$(OBJDIR)/bitmaps/native
+ $(SILENT)$(MAKE) -C bitmaps/remote_mono clean OBJDIR=$(OBJDIR)/bitmaps/remote_mono
+ $(SILENT)$(MAKE) -C bitmaps/remote_native clean OBJDIR=$(OBJDIR)/bitmaps/remote_native
-include $(DEPFILE)