diff options
author | Thomas Martitz <kugel@rockbox.org> | 2011-11-17 18:40:00 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2011-11-17 18:40:00 +0000 |
commit | 1645c148e35becff9668cc541be5c850153370eb (patch) | |
tree | ff4af71980a290ed1877facee590b39280940c45 /firmware | |
parent | 2a8eacdbfc5d98b016c480ddaddff100301f721f (diff) | |
download | rockbox-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.c | 2 | ||||
-rw-r--r-- | firmware/target/hosted/sdl/button-sdl.c | 5 | ||||
-rw-r--r-- | firmware/usb.c | 8 |
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 | ||
788 | bool usb_inserted(void) | 788 | bool usb_inserted(void) |
789 | { | 789 | { |
790 | return false; | 790 | return false; |
791 | } | 791 | } |
792 | #endif /* USB_NONE */ | ||
793 | 792 | ||
794 | /* Dummy simulator functions */ | ||
795 | void usb_acknowledge(long id) | 793 | void 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 */ | ||