--- iriver_h300.c 2008-07-17 02:27:00.000000000 +0300 +++ iriver_h300_new.c 2008-07-17 02:25:11.000000000 +0300 @@ -141,6 +141,7 @@ bool on_button = false; bool rec_button = false; bool hold_status = false; + bool mode_button = false; int data; bool rtc_alarm; int button; @@ -215,6 +216,10 @@ sleep(HZ/50); /* Allow the button driver to check the buttons */ rec_button = ((button_status() & BUTTON_REC) == BUTTON_REC) || ((button_status() & BUTTON_RC_REC) == BUTTON_RC_REC); + + // Check mode button for "Bootloader USB" fallback + mode_button = ((button_status() & BUTTON_MODE) == BUTTON_MODE) + || ((button_status() & BUTTON_RC_MODE) == BUTTON_RC_MODE); check_battery(); @@ -245,66 +250,12 @@ start_iriver_fw(); } - if(charger_inserted()) - { - const char charging_msg[] = "Charging..."; - const char complete_msg[] = "Charging complete"; - const char *msg; - int w, h; - bool blink_toggle = false; - bool request_start = false; - - cpu_idle_mode(true); - - while(charger_inserted() && !request_start) - { - button = button_get_w_tmo(HZ); - - switch(button) - { - case BUTTON_ON: - request_start = true; - break; - - case BUTTON_NONE: /* Timeout */ - - if(charging_state()) - { - /* To be replaced with a nice animation */ - blink_toggle = !blink_toggle; - msg = charging_msg; - } - else - { - blink_toggle = true; - msg = complete_msg; - } - - font_getstringsize(msg, &w, &h, FONT_SYSFIXED); - reset_screen(); - if(blink_toggle) - lcd_putsxy((LCD_WIDTH-w)/2, (LCD_HEIGHT-h)/2, msg); - - check_battery(); - break; - } - - if(usb_detect() == USB_INSERTED) - request_start = true; - } - if(!request_start) - { - __reset_cookie(); - power_off(); - } - - cpu_idle_mode(false); - } + //OLD BOOTLOADER CHARGER CODE WAS HERE. usb_init(); /* A hack to enter USB mode without using the USB thread */ - if(usb_detect() == USB_INSERTED) + if(usb_detect() == USB_INSERTED && mode_button) { const char msg[] = "Bootloader USB mode"; int w, h;