diff options
author | Thomas Martitz <kugel@rockbox.org> | 2014-02-21 11:25:07 +0100 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2014-02-23 20:23:51 +0100 |
commit | facbaab1953f9ab355fb3a3259dc0acbaabd9cc5 (patch) | |
tree | c1fa92517f9eca705f66a1b88667aa41b3299fe3 /uisimulator | |
parent | 77f19f75eb3661b3e3966da20effa2631ed380f1 (diff) | |
download | rockbox-facbaab1953f9ab355fb3a3259dc0acbaabd9cc5.tar.gz rockbox-facbaab1953f9ab355fb3a3259dc0acbaabd9cc5.tar.bz2 rockbox-facbaab1953f9ab355fb3a3259dc0acbaabd9cc5.zip |
simulator: Simulate external storage for HAVE_MULTIDRIVE.
The virtual external storage can be inserted/extracted with the e key. This
has little effect because there is no way to access the storage (yet, a later
commit will change this). Except on ondio where the mmc needs to be
extracted before entering USB (like on real target).
Change-Id: I523402832f3b4ae71e0603b281aba4fb8592a897
Diffstat (limited to 'uisimulator')
-rw-r--r-- | uisimulator/common/sim_tasks.c | 58 | ||||
-rw-r--r-- | uisimulator/common/sim_tasks.h | 1 | ||||
-rw-r--r-- | uisimulator/common/stubs.c | 7 |
3 files changed, 59 insertions, 7 deletions
diff --git a/uisimulator/common/sim_tasks.c b/uisimulator/common/sim_tasks.c index 46e893b437..1299a69302 100644 --- a/uisimulator/common/sim_tasks.c +++ b/uisimulator/common/sim_tasks.c @@ -40,6 +40,10 @@ enum { SIM_SCREENDUMP, SIM_USB_INSERTED, SIM_USB_EXTRACTED, +#ifdef HAVE_MULTIDRIVE + SIM_EXT_INSERTED, + SIM_EXT_EXTRACTED, +#endif }; void sim_thread(void) @@ -95,6 +99,15 @@ void sim_thread(void) * do it here anyway but don't depend on the acks */ queue_broadcast(SYS_USB_DISCONNECTED, 0); break; +#ifdef HAVE_MULTIDRIVE + case SIM_EXT_INSERTED: + case SIM_EXT_EXTRACTED: + queue_broadcast(ev.id == SIM_EXT_INSERTED ? + SYS_HOTSWAP_INSERTED : SYS_HOTSWAP_EXTRACTED, 0); + sleep(HZ/20); + queue_broadcast(SYS_FS_CHANGED, 0); + break; +#endif /* HAVE_MULTIDRIVE */ default: DEBUGF("sim_tasks: unhandled event: %ld\n", ev.id); break; @@ -155,3 +168,48 @@ void usb_wait_for_disconnect(struct event_queue *q) return; } } + +#ifdef HAVE_MULTIDRIVE +static bool is_ext_inserted; + +void sim_trigger_external(bool inserted) +{ + if (inserted) + queue_post(&sim_queue, SIM_EXT_INSERTED, 0); + else + queue_post(&sim_queue, SIM_EXT_EXTRACTED, 0); + is_ext_inserted = inserted; +} + +bool hostfs_present(int drive) +{ + return drive > 0 ? is_ext_inserted : true; +} + +bool hostfs_removable(int drive) +{ + return drive > 0; +} + +#ifdef HAVE_MULTIVOLUME +bool volume_removable(int volume) +{ + /* volume == drive for now */ + return hostfs_removable(volume); +} + +bool volume_present(int volume) +{ + /* volume == drive for now */ + return hostfs_present(volume); +} +#endif + +#if (CONFIG_STORAGE & STORAGE_MMC) +bool mmc_touched(void) +{ + return hostfs_present(1); +} +#endif + +#endif diff --git a/uisimulator/common/sim_tasks.h b/uisimulator/common/sim_tasks.h index dfecd4448e..2bcd09d114 100644 --- a/uisimulator/common/sim_tasks.h +++ b/uisimulator/common/sim_tasks.h @@ -28,5 +28,6 @@ void sim_tasks_init(void); void sim_trigger_screendump(void); void sim_trigger_usb(bool inserted); +void sim_trigger_external(bool inserted); #endif diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c index 480c2a90d8..18f60ce6b3 100644 --- a/uisimulator/common/stubs.c +++ b/uisimulator/common/stubs.c @@ -395,10 +395,3 @@ void touchpad_enable_device(bool en) (void)en; } #endif - -#if (CONFIG_STORAGE & STORAGE_MMC) -bool mmc_touched(void) -{ - return false; -} -#endif |