diff options
| author | MasterPhi <[email protected]> | 2021-07-01 11:38:06 +0200 |
|---|---|---|
| committer | MasterPhi <[email protected]> | 2021-07-04 15:46:11 +0200 |
| commit | 204f3152cb486b8de3817bf940efd4593c8bfd07 (patch) | |
| tree | 4819dbdb4630aad796611787660449fdae56b7d7 /src/class | |
| parent | a1639b027997706977a550faa34ef85d48a75fba (diff) | |
audio_device : clear fifo on intf change.
Diffstat (limited to 'src/class')
| -rw-r--r-- | src/class/audio/audio_device.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/class/audio/audio_device.c b/src/class/audio/audio_device.c index cb35adb82..230b689cd 100644 --- a/src/class/audio/audio_device.c +++ b/src/class/audio/audio_device.c @@ -1481,6 +1481,9 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const * audio->ep_in_as_intf_num = 0; usbd_edpt_close(rhport, audio->ep_in); + // Clear FIFOs, since data is no longer valid + tu_fifo_clear(&audio->ep_in_ff); + // 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)); @@ -1502,6 +1505,13 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const * { audio->ep_out_as_intf_num = 0; usbd_edpt_close(rhport, audio->ep_out); + + // Clear FIFOs, since data is no longer valid + tu_fifo_clear(&audio->ep_out_ff); + + // 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)); + audio->ep_out = 0; // Necessary? // Clear support FIFOs if used |
