@@ -36,6 +36,7 @@ class Adafruit_USBD_MSC : public Adafruit_USBD_Interface {
36
36
typedef void (*flush_callback_t )(void );
37
37
typedef bool (*ready_callback_t )(void );
38
38
typedef bool (*writable_callback_t )(void );
39
+ typedef bool (*start_stop_callback_t )(uint8_t power_condition, bool start, bool load_eject);
39
40
40
41
Adafruit_USBD_MSC (void );
41
42
@@ -53,6 +54,7 @@ class Adafruit_USBD_MSC : public Adafruit_USBD_Interface {
53
54
write_callback_t wr_cb, flush_callback_t fl_cb);
54
55
void setReadyCallback (uint8_t lun, ready_callback_t cb);
55
56
void setWritableCallback (uint8_t lun, writable_callback_t cb);
57
+ void setStartStopCallback (uint8_t lun, start_stop_callback_t cb);
56
58
57
59
// ------------- Single LUN API -------------//
58
60
void setID (const char *vendor_id, const char *product_id,
@@ -75,6 +77,9 @@ class Adafruit_USBD_MSC : public Adafruit_USBD_Interface {
75
77
void setWritableCallback (writable_callback_t cb) {
76
78
setWritableCallback (0 , cb);
77
79
}
80
+ void setStartStopCallback (start_stop_callback_t cb) {
81
+ setStartStopCallback (0 , cb);
82
+ }
78
83
79
84
// from Adafruit_USBD_Interface
80
85
virtual uint16_t getInterfaceDescriptor (uint8_t itfnum, uint8_t *buf,
@@ -88,6 +93,7 @@ class Adafruit_USBD_MSC : public Adafruit_USBD_Interface {
88
93
flush_callback_t fl_cb;
89
94
ready_callback_t ready_cb;
90
95
writable_callback_t writable_cb;
96
+ start_stop_callback_t start_stop_cb;
91
97
92
98
const char *_inquiry_vid;
93
99
const char *_inquiry_pid;
@@ -114,6 +120,7 @@ class Adafruit_USBD_MSC : public Adafruit_USBD_Interface {
114
120
uint8_t *buffer, uint32_t bufsize);
115
121
friend void tud_msc_write10_complete_cb (uint8_t lun);
116
122
friend bool tud_msc_is_writable_cb (uint8_t lun);
123
+ friend bool tud_msc_start_stop_cb (uint8_t lun, uint8_t power_condition, bool start, bool load_eject);
117
124
};
118
125
119
126
#endif /* ADAFRUIT_USBD_MSC_H_ */
0 commit comments