summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHiFiPhile <[email protected]>2024-05-11 12:32:47 +0200
committerHiFiPhile <[email protected]>2024-05-11 12:33:51 +0200
commit9ce44db56f145d2efeec6b67d0786230c1a735c4 (patch)
tree6378258c0673ae38b433be1bba1c37eff03accc1 /src
parentf4d4f2da297bb043990d94b9189c7850da772b09 (diff)
Always send 4 bytes feedback despite 10.14 format (Apple wtf ?!)
Diffstat (limited to 'src')
-rw-r--r--src/class/audio/audio_device.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/class/audio/audio_device.c b/src/class/audio/audio_device.c
index 77645c412..5ee0a4007 100644
--- a/src/class/audio/audio_device.c
+++ b/src/class/audio/audio_device.c
@@ -1231,7 +1231,20 @@ static inline bool audiod_fb_send(audiod_function_t *audio)
audio->feedback.send_buf = audio->feedback.value;
}
- return usbd_edpt_xfer(audio->rhport, audio->ep_fb, (uint8_t *) &audio->feedback.send_buf, apply_correction ? 3 : 4);
+ // About feedback format on FS
+ //
+ // 3 variables: Format | packetSize | sendSize | Working OS:
+ // 16.16 4 4 Linux, Windows
+ // 16.16 4 3 Linux
+ // 16.16 3 4 Linux
+ // 16.16 3 3 Linux
+ // 10.14 4 4 Linux
+ // 10.14 4 3 Linux
+ // 10.14 3 4 Linux, OSX
+ // 10.14 3 3 Linux
+ //
+ // OSX requires wMaxPacketSize=3 while sending 4 bytes (Wth ?!), so we still send 4 bytes even of correction is applied
+ return usbd_edpt_xfer(audio->rhport, audio->ep_fb, (uint8_t *) &audio->feedback.send_buf, 4);
}
#endif