mirror of
https://github.com/CoronaSend/ps4-usb-guitar-plugin.git
synced 2026-10-17 08:01:01 +02:00
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
94 lines
2.2 KiB
C
94 lines
2.2 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
// Transparent structs used internally by the Usbd library.
|
|
typedef struct libusb_device libusb_device;
|
|
typedef struct libusb_device_handle libusb_device_handle;
|
|
|
|
struct libusb_device_descriptor {
|
|
uint8_t bLength;
|
|
uint8_t bDescriptorType;
|
|
uint16_t bcdUSB;
|
|
uint8_t bDeviceClass;
|
|
uint8_t bDeviceSubClass;
|
|
uint8_t bDeviceProtocol;
|
|
uint8_t bMaxPacketSize0;
|
|
uint16_t idVendor;
|
|
uint16_t idProduct;
|
|
uint16_t bcdDevice;
|
|
uint8_t iManufacturer;
|
|
uint8_t iProduct;
|
|
uint8_t iSerialNumber;
|
|
uint8_t bNumConfigurations;
|
|
};
|
|
|
|
struct libusb_interface_descriptor {
|
|
uint8_t bLength;
|
|
uint8_t bDescriptorType;
|
|
uint8_t bInterfaceNumber;
|
|
uint8_t bAlternateSetting;
|
|
uint8_t bNumEndpoints;
|
|
uint8_t bInterfaceClass;
|
|
uint8_t bInterfaceSubClass;
|
|
uint8_t bInterfaceProtocol;
|
|
uint8_t iInterface;
|
|
struct libusb_endpoint_descriptor *endpoint;
|
|
const unsigned char *extra;
|
|
int extra_length;
|
|
};
|
|
|
|
struct libusb_interface {
|
|
struct libusb_interface_descriptor *altsetting;
|
|
int num_altsetting;
|
|
};
|
|
|
|
struct libusb_config_descriptor {
|
|
uint8_t bLength;
|
|
uint8_t bDescriptorType;
|
|
uint16_t wTotalLength;
|
|
uint8_t bNumInterfaces;
|
|
uint8_t bConfigurationValue;
|
|
uint8_t iConfiguration;
|
|
uint8_t bmAttributes;
|
|
uint8_t MaxPower;
|
|
struct libusb_interface *interface;
|
|
unsigned char *extra;
|
|
int extra_length;
|
|
};
|
|
|
|
enum libusb_transfer_status {
|
|
LIBUSB_TRANSFER_COMPLETED,
|
|
LIBUSB_TRANSFER_ERROR,
|
|
LIBUSB_TRANSFER_TIMED_OUT,
|
|
LIBUSB_TRANSFER_CANCELLED,
|
|
LIBUSB_TRANSFER_STALL,
|
|
LIBUSB_TRANSFER_NO_DEVICE,
|
|
LIBUSB_TRANSFER_OVERFLOW
|
|
};
|
|
|
|
struct libusb_iso_packet_descriptor {
|
|
unsigned int length;
|
|
unsigned int actual_length;
|
|
enum libusb_transfer_status status;
|
|
};
|
|
|
|
typedef struct libusb_transfer libusb_transfer;
|
|
typedef void (*libusb_transfer_cb_fn)(struct libusb_transfer *transfer);
|
|
|
|
struct libusb_transfer {
|
|
libusb_device_handle *dev_handle;
|
|
uint8_t flags;
|
|
unsigned char endpoint;
|
|
unsigned char type;
|
|
unsigned int timeout;
|
|
enum libusb_transfer_status status;
|
|
int length;
|
|
int actual_length;
|
|
libusb_transfer_cb_fn callback;
|
|
void *user_data;
|
|
unsigned char *buffer;
|
|
int num_iso_packets;
|
|
struct libusb_iso_packet_descriptor iso_packet_desc[0];
|
|
};
|