Index: apps/main.c =================================================================== --- apps/main.c (revision 14638) +++ apps/main.c (working copy) @@ -444,6 +444,9 @@ static void init(void) #endif usb_start_monitoring(); +#ifdef IPOD_VIDEO + sleep(HZ/4); +#endif while (usb_detect() == USB_INSERTED) { #ifdef HAVE_EEPROM_SETTINGS @@ -485,6 +488,9 @@ static void init(void) } } +#ifdef IPOD_VIDEO + usb_stop_monitoring(); +#endif #if defined(SETTINGS_RESET) || (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IRIVER_H10_PAD) #ifdef SETTINGS_RESET @@ -512,6 +518,9 @@ static void init(void) gui_sync_wps_init(); settings_apply(); +#ifdef IPOD_VIDEO + usb_start_monitoring(); +#endif init_dircache(false); #ifdef HAVE_TAGCACHE init_tagcache(); Index: firmware/export/usb.h =================================================================== --- firmware/export/usb.h (revision 14638) +++ firmware/export/usb.h (working copy) @@ -60,6 +60,9 @@ void usb_init(void); void usb_enable(bool on); void usb_start_monitoring(void); +#ifdef IPOD_VIDEO +void usb_stop_monitoring(void); +#endif void usb_acknowledge(long id); void usb_wait_for_disconnect(struct event_queue *q); int usb_wait_for_disconnect_w_tmo(struct event_queue *q, int ticks); Index: firmware/usb.c =================================================================== --- firmware/usb.c (revision 14638) +++ firmware/usb.c (working copy) @@ -359,6 +359,13 @@ void usb_start_monitoring(void) usb_monitor_enabled = true; } +#ifdef IPOD_VIDEO +void usb_stop_monitoring(void) +{ + usb_monitor_enabled = false; +} +#endif + bool usb_inserted(void) { #ifdef HAVE_USB_POWER