diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2009-02-28 14:47:18 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2009-02-28 14:47:18 +0000 |
commit | b6a1af2a9b8d54ed8e94e2a36f5564cf3f239919 (patch) | |
tree | 2f2e78a6d0a9f9ad7e79f7b50ce9dde7ba3fd099 /firmware/usbstack | |
parent | 027b023241dbc0e6e5f1d44b16d7fe1cf50ece25 (diff) | |
download | rockbox-b6a1af2a9b8d54ed8e94e2a36f5564cf3f239919.tar.gz rockbox-b6a1af2a9b8d54ed8e94e2a36f5564cf3f239919.zip |
Adds the possibility to show nice "do not disconnect" screens/icons on the USB screen. A proof-of-concept for the actual screen is at FS#9969
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20138 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack')
-rw-r--r-- | firmware/usbstack/usb_storage.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index 2080865e11..e769216a8d 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c | |||
@@ -346,7 +346,7 @@ void usb_storage_reconnect(void) | |||
346 | } | 346 | } |
347 | } | 347 | } |
348 | 348 | ||
349 | /* called by usb_code_init() */ | 349 | /* called by usb_core_init() */ |
350 | void usb_storage_init(void) | 350 | void usb_storage_init(void) |
351 | { | 351 | { |
352 | int i; | 352 | int i; |
@@ -430,6 +430,12 @@ void usb_storage_init_connection(void) | |||
430 | #endif | 430 | #endif |
431 | #endif | 431 | #endif |
432 | usb_drv_recv(ep_out, tb.transfer_buffer, 1024); | 432 | usb_drv_recv(ep_out, tb.transfer_buffer, 1024); |
433 | |||
434 | int lun; | ||
435 | for(lun=0;lun<NUM_VOLUMES;lun++) | ||
436 | { | ||
437 | queue_broadcast(SYS_USB_LUN_LOCKED, (lun<<16)+0); | ||
438 | } | ||
433 | } | 439 | } |
434 | 440 | ||
435 | void usb_storage_disconnect(void) | 441 | void usb_storage_disconnect(void) |
@@ -895,7 +901,14 @@ static void handle_scsi(struct command_block_wrapper* cbw) | |||
895 | 901 | ||
896 | case SCSI_ALLOW_MEDIUM_REMOVAL: | 902 | case SCSI_ALLOW_MEDIUM_REMOVAL: |
897 | logf("scsi allow_medium_removal %d",lun); | 903 | logf("scsi allow_medium_removal %d",lun); |
898 | /* TODO: use this to show the connect screen ? */ | 904 | if((cbw->command_block[4] & 0x03) == 0) |
905 | { | ||
906 | queue_broadcast(SYS_USB_LUN_LOCKED, (lun<<16)+0); | ||
907 | } | ||
908 | else | ||
909 | { | ||
910 | queue_broadcast(SYS_USB_LUN_LOCKED, (lun<<16)+1); | ||
911 | } | ||
899 | send_csw(UMS_STATUS_GOOD); | 912 | send_csw(UMS_STATUS_GOOD); |
900 | break; | 913 | break; |
901 | case SCSI_READ_FORMAT_CAPACITY: { | 914 | case SCSI_READ_FORMAT_CAPACITY: { |