42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include "MID/Mid_Def.h"
|
|
#include <QtCore/QByteArray>
|
|
#include <QtCore/QString>
|
|
#include <Windows.h>
|
|
|
|
// 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);
|
|
|