Files

45 lines
953 B
C

#ifndef USBD_XINPUT_H
#define USBD_XINPUT_H
#ifdef __cplusplus
extern "C" {
#endif
#include "usbd_core.h"
#include "usbd_ioreq.h"
#define XINPUT_EPIN_ADDR 0x81U
#define XINPUT_EPOUT_ADDR 0x02U
#define XINPUT_SETUP_EPIN_ADDR 0x83U
#define XINPUT_SETUP_EPOUT_ADDR 0x03U
#define XINPUT_RAW_EPIN_ADDR 0x84U
#define XINPUT_EP_SIZE 64U
#define XINPUT_REPORT_SIZE 20U
#define USB_XINPUT_CONFIG_DESC_SIZ 106U
typedef enum
{
XINPUT_IDLE = 0,
XINPUT_BUSY
} XINPUT_StateTypeDef;
typedef struct
{
uint8_t AltSetting[3];
XINPUT_StateTypeDef state;
} USBD_XINPUT_HandleTypeDef;
extern USBD_ClassTypeDef USBD_XINPUT;
uint8_t USBD_XINPUT_SendReport(USBD_HandleTypeDef *pdev,
uint8_t *report,
uint16_t len);
uint8_t USBD_XINPUT_GetRumbleLeft(void);
uint8_t USBD_XINPUT_GetRumbleRight(void);
#ifdef __cplusplus
}
#endif
#endif /* USBD_XINPUT_H */