summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2011-11-17 18:40:00 +0000
committerThomas Martitz <kugel@rockbox.org>2011-11-17 18:40:00 +0000
commit1645c148e35becff9668cc541be5c850153370eb (patch)
treeff4af71980a290ed1877facee590b39280940c45 /firmware
parent2a8eacdbfc5d98b016c480ddaddff100301f721f (diff)
downloadrockbox-1645c148e35becff9668cc541be5c850153370eb.tar.gz
rockbox-1645c148e35becff9668cc541be5c850153370eb.zip
Simulate usb plugging on the sim better using sim_tasks.
Now all threads need to ack the connection like on real target, dircache is unloaded and playback stops accordingly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31009 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/common/dircache.c2
-rw-r--r--firmware/target/hosted/sdl/button-sdl.c5
-rw-r--r--firmware/usb.c8
3 files changed, 4 insertions, 11 deletions
diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c
index 3d7fbd520d..8d264a3e7c 100644
--- a/firmware/common/dircache.c
+++ b/firmware/common/dircache.c
@@ -864,12 +864,10 @@ static void dircache_thread(void)
864 dircache_initialized = false; 864 dircache_initialized = false;
865 break ; 865 break ;
866 866
867#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
868 case SYS_USB_CONNECTED: 867 case SYS_USB_CONNECTED:
869 usb_acknowledge(SYS_USB_CONNECTED_ACK); 868 usb_acknowledge(SYS_USB_CONNECTED_ACK);
870 usb_wait_for_disconnect(&dircache_queue); 869 usb_wait_for_disconnect(&dircache_queue);
871 break ; 870 break ;
872#endif
873 } 871 }
874 } 872 }
875} 873}
diff --git a/firmware/target/hosted/sdl/button-sdl.c b/firmware/target/hosted/sdl/button-sdl.c
index ca1f2e5eb1..837cba4dc4 100644
--- a/firmware/target/hosted/sdl/button-sdl.c
+++ b/firmware/target/hosted/sdl/button-sdl.c
@@ -317,10 +317,7 @@ static void button_event(int key, bool pressed)
317 if (!pressed) 317 if (!pressed)
318 { 318 {
319 usb_connected = !usb_connected; 319 usb_connected = !usb_connected;
320 if (usb_connected) 320 sim_trigger_usb(usb_connected);
321 queue_post(&button_queue, SYS_USB_CONNECTED, 0);
322 else
323 queue_post(&button_queue, SYS_USB_DISCONNECTED, 0);
324 } 321 }
325 return; 322 return;
326 323
diff --git a/firmware/usb.c b/firmware/usb.c
index 4e71c06119..59462b952e 100644
--- a/firmware/usb.c
+++ b/firmware/usb.c
@@ -782,16 +782,14 @@ void usb_set_hid(bool enable)
782} 782}
783#endif /* USB_ENABLE_HID */ 783#endif /* USB_ENABLE_HID */
784 784
785#else /* SIMULATOR || USB_NONE */ 785#elif defined(USB_NONE)
786/* Dummy functions for USB_NONE */
786 787
787#ifdef USB_NONE
788bool usb_inserted(void) 788bool usb_inserted(void)
789{ 789{
790 return false; 790 return false;
791} 791}
792#endif /* USB_NONE */
793 792
794/* Dummy simulator functions */
795void usb_acknowledge(long id) 793void usb_acknowledge(long id)
796{ 794{
797 id = id; 795 id = id;
@@ -814,5 +812,5 @@ void usb_wait_for_disconnect(struct event_queue *q)
814{ 812{
815 (void)q; 813 (void)q;
816} 814}
815#endif /* USB_NONE */
817 816
818#endif /* !USB_NONE && !SIMULATOR */