summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorReinhard Panhuber <[email protected]>2020-10-09 19:50:05 +0200
committerReinhard Panhuber <[email protected]>2020-10-09 19:50:05 +0200
commit032e84c9befa0797f6a6faf86fbfdff13ec77bbe (patch)
treeb7e6fabfae12676f047c0d876423378852db8405 /src/class
parentf700c08aeddd14ab5ae0a02a9eff330c5ae99dea (diff)
Revert dcd_alloc_mem_for_conf() but keep changes from @kasjer for ISO EP
Add tud_audio_set_itf_close_EP_cb()
Diffstat (limited to 'src/class')
-rw-r--r--src/class/audio/audio_device.c6
-rw-r--r--src/class/audio/audio_device.h3
2 files changed, 8 insertions, 1 deletions
diff --git a/src/class/audio/audio_device.c b/src/class/audio/audio_device.c
index 0f501bb6e..2c8ba300d 100644
--- a/src/class/audio/audio_device.c
+++ b/src/class/audio/audio_device.c
@@ -876,6 +876,10 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
{
_audiod_itf[idxDriver].ep_in_as_intf_num = 0;
usbd_edpt_close(rhport, _audiod_itf[idxDriver].ep_in);
+
+ // Invoke callback - can be used to stop data sampling
+ if (tud_audio_set_itf_close_EP_cb) TU_VERIFY(tud_audio_set_itf_close_EP_cb(rhport, p_request));
+
_audiod_itf[idxDriver].ep_in = 0; // Necessary?
}
#endif
@@ -928,7 +932,7 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
_audiod_itf[idxDriver].ep_in = ep_addr;
_audiod_itf[idxDriver].ep_in_as_intf_num = itf;
- // Invoke callback and trigger data generation - if not already running
+ // Invoke callback - can be used to trigger data sampling if not already running
if (tud_audio_set_itf_cb) TU_VERIFY(tud_audio_set_itf_cb(rhport, p_request));
// Schedule first transmit - in case no sample data is available a ZLP is loaded
diff --git a/src/class/audio/audio_device.h b/src/class/audio/audio_device.h
index d2f8155db..d86232720 100644
--- a/src/class/audio/audio_device.h
+++ b/src/class/audio/audio_device.h
@@ -272,6 +272,9 @@ TU_ATTR_WEAK bool tud_audio_int_ctr_done_cb(uint8_t rhport, uint16_t * n_bytes_c
// Invoked when audio set interface request received
TU_ATTR_WEAK bool tud_audio_set_itf_cb(uint8_t rhport, tusb_control_request_t const * p_request);
+// Invoked when audio set interface request received which closes an EP
+TU_ATTR_WEAK bool tud_audio_set_itf_close_EP_cb(uint8_t rhport, tusb_control_request_t const * p_request);
+
// Invoked when audio class specific set request received for an EP
TU_ATTR_WEAK bool tud_audio_set_req_ep_cb(uint8_t rhport, tusb_control_request_t const * p_request, uint8_t *pBuff);