18#include "RZA1/usb/r_usb_basic/r_usb_basic_if.h"
19#include "definitions.h"
23namespace deluge::io::usb {
28extern volatile bool usbLock;
33 USBAutoLock() { usbLock =
true; }
34 ~USBAutoLock() { usbLock =
false; }
36 USBAutoLock(
const USBAutoLock&) =
delete;
37 USBAutoLock(USBAutoLock&&) =
delete;
38 USBAutoLock& operator=(
const USBAutoLock&) =
delete;
39 USBAutoLock& operator=(USBAutoLock&&) =
delete;
43extern bool anythingInUSBOutputBuffer;
46extern uint8_t stopSendingAfterDeviceNum[USB_NUM_USBIP];
49extern uint8_t usbDeviceNumBeingSentToNow[USB_NUM_USBIP];
52extern uint8_t anyUSBSendingStillHappening[USB_NUM_USBIP];
63extern uint16_t g_usb_peri_connected;
66extern usb_utr_t* g_p_usb_pipe[USB_MAX_PIPE_NO + 1u];
68extern usb_utr_t g_usb_midi_send_utr[USB_NUM_USBIP];
69extern usb_utr_t g_usb_midi_recv_utr[USB_NUM_USBIP][MAX_NUM_USB_MIDI_DEVICES];
72extern uint16_t g_usb_hmidi_tmp_ep_tbl[USB_NUM_USBIP][MAX_NUM_USB_MIDI_DEVICES][(USB_EPL * 2) + 1];
75extern uint8_t currentDeviceNumWithSendPipe[2];
77extern uint16_t g_usb_usbmode;
80extern uint32_t timeLastBRDY[USB_NUM_USBIP];
83void usb_receive_start_rohan_midi(uint16_t pipe);
88void usbSendCompleteAsHost(int32_t ip);
93void usbSendCompleteAsPeripheral(int32_t ip);