Files
0417_QT_code/DRI/Dri_Hid.h

42 lines
1.1 KiB
C
Raw Normal View History

2026-04-17 16:25:19 +08:00
#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);