mirror of
https://github.com/wiiu-env/wut.git
synced 2024-12-14 11:41:50 +01:00
124 lines
2.8 KiB
C
124 lines
2.8 KiB
C
|
#pragma once
|
||
|
#include <wut.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
uint32_t handle;
|
||
|
uint32_t physical_device_inst;
|
||
|
uint16_t vid;
|
||
|
uint16_t pid;
|
||
|
uint8_t interface_index;
|
||
|
uint8_t sub_class;
|
||
|
uint8_t protocol;
|
||
|
|
||
|
uint16_t max_packet_size_rx;
|
||
|
uint16_t max_packet_size_tx;
|
||
|
} HIDDevice;
|
||
|
|
||
|
#define HID_DEVICE_DETACH 0
|
||
|
#define HID_DEVICE_ATTACH 1
|
||
|
|
||
|
typedef struct _HIDClient HIDClient;
|
||
|
|
||
|
typedef int32_t (*HIDAttachCallback)(HIDClient *p_hc,HIDDevice *p_hd,uint32_t attach);
|
||
|
|
||
|
struct _HIDClient
|
||
|
{
|
||
|
HIDClient *next;
|
||
|
HIDAttachCallback attach_cb;
|
||
|
};
|
||
|
|
||
|
typedef void HIDCallback(uint32_t handle,int32_t error,uint8_t *p_buffer,uint32_t bytes_transferred,void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDSetup(void);
|
||
|
|
||
|
int32_t
|
||
|
HIDTeardown(void);
|
||
|
|
||
|
int32_t
|
||
|
HIDAddClient(HIDClient *p_client, HIDAttachCallback attach_callback);
|
||
|
|
||
|
int32_t
|
||
|
HIDDelClient(HIDClient *p_client);
|
||
|
|
||
|
int32_t
|
||
|
HIDGetDescriptor(uint32_t handle,
|
||
|
uint8_t descriptor_type,
|
||
|
uint8_t descriptor_index,
|
||
|
uint16_t language_id,
|
||
|
uint8_t *p_buffer,
|
||
|
uint32_t buffer_length,
|
||
|
HIDCallback hc, void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDSetDescriptor(uint32_t handle,
|
||
|
uint8_t descriptor_type,
|
||
|
uint8_t descriptor_index,
|
||
|
uint16_t language_id,
|
||
|
uint8_t *p_buffer,
|
||
|
uint32_t buffer_length,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDGetReport(uint32_t handle,
|
||
|
uint8_t report_type,
|
||
|
uint8_t report_id,
|
||
|
uint8_t *p_buffer,
|
||
|
uint32_t buffer_length,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDSetReport(uint32_t handle,
|
||
|
uint8_t report_type,
|
||
|
uint8_t report_id,
|
||
|
uint8_t *p_buffer,
|
||
|
uint32_t buffer_length,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDSetIdle(uint32_t handle,
|
||
|
uint8_t interface_index,
|
||
|
uint8_t duration,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDSetProtocol(uint32_t handle,
|
||
|
uint8_t interface_index,
|
||
|
uint8_t protocol,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDGetProtocol(uint32_t handle,
|
||
|
uint8_t interface_index,
|
||
|
uint8_t * protocol,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDRead(uint32_t handle,
|
||
|
uint8_t *p_buffer,
|
||
|
uint32_t buffer_length,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
int32_t
|
||
|
HIDWrite(uint32_t handle,
|
||
|
uint8_t *p_buffer,
|
||
|
uint32_t buffer_length,
|
||
|
HIDCallback hc,
|
||
|
void *p_user);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|