#pragma once #include "MID/Mid_Def.h" #include #include #include // Shared HID async read/write helpers used by USB and BLE HID paths. struct Dri_Hid_Struct_ReadPort { HANDLE HandleRead = INVALID_HANDLE_VALUE; HANDLE HandleEvent = nullptr; OVERLAPPED OverlappedRead = {}; bool IsOpened = false; bool IsReadPending = false; quint16 InputLength = 0; Mid_Enum_RawPacketSource PacketSource = Mid_Enum_RawPacketSource_None; QString PortName; QByteArray ReadBuffer; }; void Dri_Hid_CloseReadPort(Dri_Hid_Struct_ReadPort* p_Port); bool Dri_Hid_InitReadPort( Dri_Hid_Struct_ReadPort* p_Port, const QString& DevicePath, quint16 InputLength, Mid_Enum_RawPacketSource PacketSource, const QString& PortName, QString* p_TextStatus); bool Dri_Hid_Read( Dri_Hid_Struct_ReadPort* p_Port, Mid_Struct_RawPacket* p_Packet, QString* p_TextStatus); HANDLE Dri_Hid_OpenWriteHandle(const QString& DevicePath, QString* p_TextError); bool Dri_Hid_WritePacket( HANDLE HandleWrite, quint16 OutputLength, const QByteArray& Packet, QString* p_TextError);