diff options
-rw-r--r-- | apps/plugins/firmware_flash.c | 18 | ||||
-rw-r--r-- | apps/plugins/rockbox_flash.c | 18 |
2 files changed, 32 insertions, 4 deletions
diff --git a/apps/plugins/firmware_flash.c b/apps/plugins/firmware_flash.c index 880b030748..972d998ca8 100644 --- a/apps/plugins/firmware_flash.c +++ b/apps/plugins/firmware_flash.c @@ -637,8 +637,6 @@ void DoUserDialog(char* filename) tCheckROM result; bool is_romless; - rb->lcd_setfont(FONT_SYSFIXED); - /* this can only work if Rockbox runs in DRAM, not flash ROM */ if ((UINT8*)rb >= FB && (UINT8*)rb < FB + 4096*1024) /* 4 MB max */ { /* we're running from flash */ @@ -653,6 +651,13 @@ void DoUserDialog(char* filename) return; /* exit */ } + /* refuse to work if the power may fail meanwhile */ + if (!rb->battery_level_safe()) + { + rb->splash(HZ*3, true, "Battery too low!"); + return; /* exit */ + } + /* check boot ROM */ result = CheckBootROM(); if (result == eUnknown) @@ -682,6 +687,8 @@ void DoUserDialog(char* filename) return; /* exit */ } + rb->lcd_setfont(FONT_SYSFIXED); + rc = GetFlashInfo(&FlashInfo); ShowFlashInfo(&FlashInfo); if (FlashInfo.size == 0) /* no valid chip */ @@ -881,6 +888,13 @@ void DoUserDialog(char* filename) return; /* exit */ } + /* refuse to work if the power may fail meanwhile */ + if (!rb->battery_level_safe()) + { + rb->splash(HZ*3, true, "Batt. too low!"); + return; /* exit */ + } + /* check boot ROM */ result = CheckBootROM(); if (result == eUnknown) diff --git a/apps/plugins/rockbox_flash.c b/apps/plugins/rockbox_flash.c index e01cc012ee..91d440e1e0 100644 --- a/apps/plugins/rockbox_flash.c +++ b/apps/plugins/rockbox_flash.c @@ -625,8 +625,6 @@ void DoUserDialog(char* filename) UINT32 crc; bool show_greet = false; - rb->lcd_setfont(FONT_SYSFIXED); - /* this can only work if Rockbox runs in DRAM, not flash ROM */ if ((UINT8*)rb >= FB && (UINT8*)rb < FB + 4096*1024) /* 4 MB max */ { /* we're running from flash */ @@ -634,6 +632,13 @@ void DoUserDialog(char* filename) return; /* exit */ } + /* refuse to work if the power may fail meanwhile */ + if (!rb->battery_level_safe()) + { + rb->splash(HZ*3, true, "Battery too low!"); + return; /* exit */ + } + /* "allocate" memory */ sector = rb->plugin_get_buffer(&memleft); if (memleft < SECTORSIZE) /* need buffer for a flash sector */ @@ -642,6 +647,8 @@ void DoUserDialog(char* filename) return; /* exit */ } + rb->lcd_setfont(FONT_SYSFIXED); + pos = (void*)GetSecondImage(); rc = GetFlashInfo(&FlashInfo); @@ -824,6 +831,13 @@ void DoUserDialog(char* filename) return; /* exit */ } + /* refuse to work if the power may fail meanwhile */ + if (!rb->battery_level_safe()) + { + rb->splash(HZ*3, true, "Batt. too low!"); + return; /* exit */ + } + /* "allocate" memory */ sector = rb->plugin_get_buffer(&memleft); if (memleft < SECTORSIZE) /* need buffer for a flash sector */ |