From d8b4ea1b9d1b1f9b2915b13b2171963f939d3dc2 Mon Sep 17 00:00:00 2001 From: Alrik Vidstrom Date: Wed, 20 Sep 2023 18:29:19 +0200 Subject: [PATCH 1/2] Add callback functionality for thumb drive disconnects Adds callback functionality for thumb drive disconnects that works similarly to the connect callback functionality. --- src/USBHost/USBHost.cpp | 5 +++++ src/USBHostMSD/USBHostMSD.cpp | 6 ++++++ src/USBHostMSD/USBHostMSD.h | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/USBHost/USBHost.cpp b/src/USBHost/USBHost.cpp index e8138f3..7558909 100644 --- a/src/USBHost/USBHost.cpp +++ b/src/USBHost/USBHost.cpp @@ -31,6 +31,7 @@ USBHost * USBHost::instHost = NULL; #define MIN(a, b) ((a > b) ? b : a) extern void (*mount_fnc)(void); +extern void (*unmount_fnc)(void); /** * How interrupts are processed: @@ -256,6 +257,10 @@ void USBHost::usb_process() } while(0); + if (nullptr != unmount_fnc) { + unmount_fnc(); + } + break; // a td has been processed diff --git a/src/USBHostMSD/USBHostMSD.cpp b/src/USBHostMSD/USBHostMSD.cpp index f8b4ef3..163db54 100644 --- a/src/USBHostMSD/USBHostMSD.cpp +++ b/src/USBHostMSD/USBHostMSD.cpp @@ -29,6 +29,7 @@ #define BO_MASS_STORAGE_RESET (0xFF) void (*mount_fnc)(void) = nullptr; +void (*unmount_fnc)(void) = nullptr; USBHostMSD::USBHostMSD() { @@ -442,4 +443,9 @@ bool USBHostMSD::attach_detected_callback(void (*cbk)()) { return true; } +bool USBHostMSD::attach_removed_callback(void (*cbk)()) { + unmount_fnc = cbk; + return true; +} + #endif diff --git a/src/USBHostMSD/USBHostMSD.h b/src/USBHostMSD/USBHostMSD.h index f61c6f3..3ec3180 100644 --- a/src/USBHostMSD/USBHostMSD.h +++ b/src/USBHostMSD/USBHostMSD.h @@ -65,7 +65,7 @@ class USBHostMSD : public IUSBEnumerator, public mbed::BlockDevice virtual mbed::bd_size_t size() const; virtual const char *get_type() const; bool attach_detected_callback(void (*cbk)()); - + bool attach_removed_callback(void (*cbk)()); protected: //From IUSBEnumerator From f8b3422122bc2d13f88ab344e6dc3abc02e054f3 Mon Sep 17 00:00:00 2001 From: Alrik Vidstrom Date: Wed, 20 Sep 2023 18:34:50 +0200 Subject: [PATCH 2/2] Add comment --- src/USBHost/USBHost.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/USBHost/USBHost.cpp b/src/USBHost/USBHost.cpp index 7558909..77ff9e0 100644 --- a/src/USBHost/USBHost.cpp +++ b/src/USBHost/USBHost.cpp @@ -257,6 +257,7 @@ void USBHost::usb_process() } while(0); + // Call the device disconnected callback if registered if (nullptr != unmount_fnc) { unmount_fnc(); }