From 9bf67d4bb1db516a83f8e5c53bf6efee32131579 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Wed, 28 Mar 2012 21:52:17 +1300 Subject: [PATCH 01/27] Implemented /dev/usb/hid as libusb, but this will not work on mac. Code started for using hidapi instead. --- Externals/libusb/include/hidapi.h | 384 ++++++++++++++++ Externals/libusb/include/lusb0_usb.h | 427 ++++++++++++++++++ Externals/libusb/win32/hidapi.h | 384 ++++++++++++++++ Externals/libusb/win32/lusb0_usb.h | 427 ++++++++++++++++++ Externals/libusb/x64/hidapi.dll | Bin 0 -> 37888 bytes Externals/libusb/x64/hidapi.h | 384 ++++++++++++++++ Externals/libusb/x64/lusb0_usb.h | 427 ++++++++++++++++++ Source/Core/Common/Src/Log.h | 1 + Source/Core/Common/Src/LogManager.cpp | 1 + Source/Core/Core/Core.vcxproj | 14 +- Source/Core/Core/Core.vcxproj.filters | 9 + Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 3 +- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 416 +++++++++++++++++ .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 126 ++++++ Source/VSProps/Dolphin.Win32.props | 4 +- Source/VSProps/Dolphin.x64.props | 4 +- 16 files changed, 3000 insertions(+), 11 deletions(-) create mode 100644 Externals/libusb/include/hidapi.h create mode 100644 Externals/libusb/include/lusb0_usb.h create mode 100644 Externals/libusb/win32/hidapi.h create mode 100644 Externals/libusb/win32/lusb0_usb.h create mode 100644 Externals/libusb/x64/hidapi.dll create mode 100644 Externals/libusb/x64/hidapi.h create mode 100644 Externals/libusb/x64/lusb0_usb.h create mode 100644 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp create mode 100644 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h diff --git a/Externals/libusb/include/hidapi.h b/Externals/libusb/include/hidapi.h new file mode 100644 index 0000000000..bd912acd7f --- /dev/null +++ b/Externals/libusb/include/hidapi.h @@ -0,0 +1,384 @@ +/******************************************************* + HIDAPI - Multi-Platform library for + communication with HID devices. + + Alan Ott + Signal 11 Software + + 8/22/2009 + + Copyright 2009, All Rights Reserved. + + At the discretion of the user of this library, + this software may be licensed under the terms of the + GNU Public License v3, a BSD-Style license, or the + original HIDAPI license as outlined in the LICENSE.txt, + LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt + files located at the root of the source distribution. + These files may also be found in the public source + code repository located at: + http://github.com/signal11/hidapi . +********************************************************/ + +/** @file + * @defgroup API hidapi API + */ + +#ifndef HIDAPI_H__ +#define HIDAPI_H__ + +#include + +#ifdef _WIN32 + #define HID_API_EXPORT __declspec(dllexport) + #define HID_API_CALL +#else + #define HID_API_EXPORT /**< API export macro */ + #define HID_API_CALL /**< API call macro */ +#endif + +#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ + +#ifdef __cplusplus +extern "C" { +#endif + struct hid_device_; + typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ + + /** hidapi info structure */ + struct hid_device_info { + /** Platform-specific device path */ + char *path; + /** Device Vendor ID */ + unsigned short vendor_id; + /** Device Product ID */ + unsigned short product_id; + /** Serial Number */ + wchar_t *serial_number; + /** Device Release Number in binary-coded decimal, + also known as Device Version Number */ + unsigned short release_number; + /** Manufacturer String */ + wchar_t *manufacturer_string; + /** Product string */ + wchar_t *product_string; + /** Usage Page for this Device/Interface + (Windows/Mac only). */ + unsigned short usage_page; + /** Usage for this Device/Interface + (Windows/Mac only).*/ + unsigned short usage; + /** The USB interface which this logical device + represents. Valid on both Linux implementations + in all cases, and valid on the Windows implementation + only if the device contains more than one interface. */ + int interface_number; + + /** Pointer to the next device */ + struct hid_device_info *next; + }; + + + /** @brief Initialize the HIDAPI library. + + This function initializes the HIDAPI library. Calling it is not + strictly necessary, as it will be called automatically by + hid_enumerate() and any of the hid_open_*() functions if it is + needed. This function should be called at the beginning of + execution however, if there is a chance of HIDAPI handles + being opened by different threads simultaneously. + + @ingroup API + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_init(void); + + /** @brief Finalize the HIDAPI library. + + This function frees all of the static data associated with + HIDAPI. It should be called at the end of execution to avoid + memory leaks. + + @ingroup API + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_exit(void); + + /** @brief Enumerate the HID Devices. + + This function returns a linked list of all the HID devices + attached to the system which match vendor_id and product_id. + If @p vendor_id and @p product_id are both set to 0, then + all HID devices will be returned. + + @ingroup API + @param vendor_id The Vendor ID (VID) of the types of device + to open. + @param product_id The Product ID (PID) of the types of + device to open. + + @returns + This function returns a pointer to a linked list of type + struct #hid_device, containing information about the HID devices + attached to the system, or NULL in the case of failure. Free + this linked list by calling hid_free_enumeration(). + */ + struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); + + /** @brief Free an enumeration Linked List + + This function frees a linked list created by hid_enumerate(). + + @ingroup API + @param devs Pointer to a list of struct_device returned from + hid_enumerate(). + */ + void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); + + /** @brief Open a HID device using a Vendor ID (VID), Product ID + (PID) and optionally a serial number. + + If @p serial_number is NULL, the first device with the + specified VID and PID is opened. + + @ingroup API + @param vendor_id The Vendor ID (VID) of the device to open. + @param product_id The Product ID (PID) of the device to open. + @param serial_number The Serial Number of the device to open + (Optionally NULL). + + @returns + This function returns a pointer to a #hid_device object on + success or NULL on failure. + */ + HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, wchar_t *serial_number); + + /** @brief Open a HID device by its path name. + + The path name be determined by calling hid_enumerate(), or a + platform-specific path name can be used (eg: /dev/hidraw0 on + Linux). + + @ingroup API + @param path The path name of the device to open + + @returns + This function returns a pointer to a #hid_device object on + success or NULL on failure. + */ + HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); + + /** @brief Write an Output report to a HID device. + + The first byte of @p data[] must contain the Report ID. For + devices which only support a single report, this must be set + to 0x0. The remaining bytes contain the report data. Since + the Report ID is mandatory, calls to hid_write() will always + contain one more byte than the report contains. For example, + if a hid report is 16 bytes long, 17 bytes must be passed to + hid_write(), the Report ID (or 0x0, for devices with a + single report), followed by the report data (16 bytes). In + this example, the length passed in would be 17. + + hid_write() will send the data on the first OUT endpoint, if + one exists. If it does not, it will send the data through + the Control Endpoint (Endpoint 0). + + @ingroup API + @param device A device handle returned from hid_open(). + @param data The data to send, including the report number as + the first byte. + @param length The length in bytes of the data to send. + + @returns + This function returns the actual number of bytes written and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); + + int HID_API_EXPORT HID_API_CALL hid_set_output_report(hid_device *dev, const unsigned char *data, size_t length); + /** @brief Read an Input report from a HID device with timeout. + + Input reports are returned + to the host through the INTERRUPT IN endpoint. The first byte will + contain the Report number if the device uses numbered reports. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into. + @param length The number of bytes to read. For devices with + multiple reports, make sure to read an extra byte for + the report number. + @param milliseconds timeout in milliseconds or -1 for blocking wait. + + @returns + This function returns the actual number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); + + /** @brief Read an Input report from a HID device. + + Input reports are returned + to the host through the INTERRUPT IN endpoint. The first byte will + contain the Report number if the device uses numbered reports. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into. + @param length The number of bytes to read. For devices with + multiple reports, make sure to read an extra byte for + the report number. + + @returns + This function returns the actual number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); + + /** @brief Set the device handle to be non-blocking. + + In non-blocking mode calls to hid_read() will return + immediately with a value of 0 if there is no data to be + read. In blocking mode, hid_read() will wait (block) until + there is data to read before returning. + + Nonblocking can be turned on and off at any time. + + @ingroup API + @param device A device handle returned from hid_open(). + @param nonblock enable or not the nonblocking reads + - 1 to enable nonblocking + - 0 to disable nonblocking. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); + + /** @brief Send a Feature report to the device. + + Feature reports are sent over the Control endpoint as a + Set_Report transfer. The first byte of @p data[] must + contain the Report ID. For devices which only support a + single report, this must be set to 0x0. The remaining bytes + contain the report data. Since the Report ID is mandatory, + calls to hid_send_feature_report() will always contain one + more byte than the report contains. For example, if a hid + report is 16 bytes long, 17 bytes must be passed to + hid_send_feature_report(): the Report ID (or 0x0, for + devices which do not use numbered reports), followed by the + report data (16 bytes). In this example, the length passed + in would be 17. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data The data to send, including the report number as + the first byte. + @param length The length in bytes of the data to send, including + the report number. + + @returns + This function returns the actual number of bytes written and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); + + /** @brief Get a feature report from a HID device. + + Make sure to set the first byte of @p data[] to the Report + ID of the report to be read. Make sure to allow space for + this extra byte in @p data[]. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into, including + the Report ID. Set the first byte of @p data[] to the + Report ID of the report to be read. + @param length The number of bytes to read, including an + extra byte for the report ID. The buffer can be longer + than the actual report. + + @returns + This function returns the number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); + + /** @brief Close a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + */ + void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); + + /** @brief Get The Manufacturer String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get The Product String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get The Serial Number String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get a string from a HID device, based on its string index. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string_index The index of the string to get. + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); + + /** @brief Get a string describing the last error which occurred. + + @ingroup API + @param device A device handle returned from hid_open(). + + @returns + This function returns a string containing the last error + which occurred or NULL if none has occurred. + */ + HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Externals/libusb/include/lusb0_usb.h b/Externals/libusb/include/lusb0_usb.h new file mode 100644 index 0000000000..b95fbf0a6d --- /dev/null +++ b/Externals/libusb/include/lusb0_usb.h @@ -0,0 +1,427 @@ +#ifndef __USB_H__ +#define __USB_H__ + +#include +#include + +/* + * 'interface' is defined somewhere in the Windows header files. This macro + * is deleted here to avoid conflicts and compile errors. + */ + +#ifdef interface +#undef interface +#endif + +/* + * PATH_MAX from limits.h can't be used on Windows if the dll and + * import libraries are build/used by different compilers + */ + +#define LIBUSB_PATH_MAX 512 + + +/* + * USB spec information + * + * This is all stuff grabbed from various USB specs and is pretty much + * not subject to change + */ + +/* + * Device and/or Interface Class codes + */ +#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ +#define USB_CLASS_AUDIO 1 +#define USB_CLASS_COMM 2 +#define USB_CLASS_HID 3 +#define USB_CLASS_PRINTER 7 +#define USB_CLASS_MASS_STORAGE 8 +#define USB_CLASS_HUB 9 +#define USB_CLASS_DATA 10 +#define USB_CLASS_VENDOR_SPEC 0xff + +/* + * Descriptor types + */ +#define USB_DT_DEVICE 0x01 +#define USB_DT_CONFIG 0x02 +#define USB_DT_STRING 0x03 +#define USB_DT_INTERFACE 0x04 +#define USB_DT_ENDPOINT 0x05 + +#define USB_DT_HID 0x21 +#define USB_DT_REPORT 0x22 +#define USB_DT_PHYSICAL 0x23 +#define USB_DT_HUB 0x29 + +/* + * Descriptor sizes per descriptor type + */ +#define USB_DT_DEVICE_SIZE 18 +#define USB_DT_CONFIG_SIZE 9 +#define USB_DT_INTERFACE_SIZE 9 +#define USB_DT_ENDPOINT_SIZE 7 +#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ +#define USB_DT_HUB_NONVAR_SIZE 7 + + +/* ensure byte-packed structures */ +#include + + +/* All standard descriptors have these 2 fields in common */ +struct usb_descriptor_header +{ + unsigned char bLength; + unsigned char bDescriptorType; +}; + +/* String descriptor */ +struct usb_string_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wData[1]; +}; + +/* HID descriptor */ +struct usb_hid_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short bcdHID; + unsigned char bCountryCode; + unsigned char bNumDescriptors; +}; + +/* Endpoint descriptor */ +#define USB_MAXENDPOINTS 32 +struct usb_endpoint_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bEndpointAddress; + unsigned char bmAttributes; + unsigned short wMaxPacketSize; + unsigned char bInterval; + unsigned char bRefresh; + unsigned char bSynchAddress; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ +#define USB_ENDPOINT_DIR_MASK 0x80 + +#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */ +#define USB_ENDPOINT_TYPE_CONTROL 0 +#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1 +#define USB_ENDPOINT_TYPE_BULK 2 +#define USB_ENDPOINT_TYPE_INTERRUPT 3 + +/* Interface descriptor */ +#define USB_MAXINTERFACES 32 +struct usb_interface_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bInterfaceNumber; + unsigned char bAlternateSetting; + unsigned char bNumEndpoints; + unsigned char bInterfaceClass; + unsigned char bInterfaceSubClass; + unsigned char bInterfaceProtocol; + unsigned char iInterface; + + struct usb_endpoint_descriptor *endpoint; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +#define USB_MAXALTSETTING 128 /* Hard limit */ + +struct usb_interface +{ + struct usb_interface_descriptor *altsetting; + + int num_altsetting; +}; + +/* Configuration descriptor information.. */ +#define USB_MAXCONFIG 8 +struct usb_config_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wTotalLength; + unsigned char bNumInterfaces; + unsigned char bConfigurationValue; + unsigned char iConfiguration; + unsigned char bmAttributes; + unsigned char MaxPower; + + struct usb_interface *interface; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +/* Device descriptor */ +struct usb_device_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short bcdUSB; + unsigned char bDeviceClass; + unsigned char bDeviceSubClass; + unsigned char bDeviceProtocol; + unsigned char bMaxPacketSize0; + unsigned short idVendor; + unsigned short idProduct; + unsigned short bcdDevice; + unsigned char iManufacturer; + unsigned char iProduct; + unsigned char iSerialNumber; + unsigned char bNumConfigurations; +}; + +struct usb_ctrl_setup +{ + unsigned char bRequestType; + unsigned char bRequest; + unsigned short wValue; + unsigned short wIndex; + unsigned short wLength; +}; + +/* + * Standard requests + */ +#define USB_REQ_GET_STATUS 0x00 +#define USB_REQ_CLEAR_FEATURE 0x01 +/* 0x02 is reserved */ +#define USB_REQ_SET_FEATURE 0x03 +/* 0x04 is reserved */ +#define USB_REQ_SET_ADDRESS 0x05 +#define USB_REQ_GET_DESCRIPTOR 0x06 +#define USB_REQ_SET_DESCRIPTOR 0x07 +#define USB_REQ_GET_CONFIGURATION 0x08 +#define USB_REQ_SET_CONFIGURATION 0x09 +#define USB_REQ_GET_INTERFACE 0x0A +#define USB_REQ_SET_INTERFACE 0x0B +#define USB_REQ_SYNCH_FRAME 0x0C + +#define USB_TYPE_STANDARD (0x00 << 5) +#define USB_TYPE_CLASS (0x01 << 5) +#define USB_TYPE_VENDOR (0x02 << 5) +#define USB_TYPE_RESERVED (0x03 << 5) + +#define USB_RECIP_DEVICE 0x00 +#define USB_RECIP_INTERFACE 0x01 +#define USB_RECIP_ENDPOINT 0x02 +#define USB_RECIP_OTHER 0x03 + +/* + * Various libusb API related stuff + */ + +#define USB_ENDPOINT_IN 0x80 +#define USB_ENDPOINT_OUT 0x00 + +/* Error codes */ +#define USB_ERROR_BEGIN 500000 + +/* + * This is supposed to look weird. This file is generated from autoconf + * and I didn't want to make this too complicated. + */ +#define USB_LE16_TO_CPU(x) + +/* + * Device reset types for usb_reset_ex. + * http://msdn.microsoft.com/en-us/library/ff537269%28VS.85%29.aspx + * http://msdn.microsoft.com/en-us/library/ff537243%28v=vs.85%29.aspx + */ +#define USB_RESET_TYPE_RESET_PORT (1 << 0) +#define USB_RESET_TYPE_CYCLE_PORT (1 << 1) +#define USB_RESET_TYPE_FULL_RESET (USB_RESET_TYPE_CYCLE_PORT | USB_RESET_TYPE_RESET_PORT) + + +/* Data types */ +/* struct usb_device; */ +/* struct usb_bus; */ + +struct usb_device +{ + struct usb_device *next, *prev; + + char filename[LIBUSB_PATH_MAX]; + + struct usb_bus *bus; + + struct usb_device_descriptor descriptor; + struct usb_config_descriptor *config; + + void *dev; /* Darwin support */ + + unsigned char devnum; + + unsigned char num_children; + struct usb_device **children; +}; + +struct usb_bus +{ + struct usb_bus *next, *prev; + + char dirname[LIBUSB_PATH_MAX]; + + struct usb_device *devices; + unsigned long location; + + struct usb_device *root_dev; +}; + +/* Version information, Windows specific */ +struct usb_version +{ + struct + { + int major; + int minor; + int micro; + int nano; + } dll; + struct + { + int major; + int minor; + int micro; + int nano; + } driver; +}; + + +struct usb_dev_handle; +typedef struct usb_dev_handle usb_dev_handle; + +/* Variables */ +#ifndef __USB_C__ +#define usb_busses usb_get_busses() +#endif + + + +#include + + +#ifdef __cplusplus +extern "C" +{ +#endif + + /* Function prototypes */ + + /* usb.c */ + usb_dev_handle *usb_open(struct usb_device *dev); + int usb_close(usb_dev_handle *dev); + int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf, + size_t buflen); + int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, + size_t buflen); + + /* descriptors.c */ + int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep, + unsigned char type, unsigned char index, + void *buf, int size); + int usb_get_descriptor(usb_dev_handle *udev, unsigned char type, + unsigned char index, void *buf, int size); + + /* .c */ + int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, + int value, int index, char *bytes, int size, + int timeout); + int usb_set_configuration(usb_dev_handle *dev, int configuration); + int usb_claim_interface(usb_dev_handle *dev, int interface); + int usb_release_interface(usb_dev_handle *dev, int interface); + int usb_set_altinterface(usb_dev_handle *dev, int alternate); + int usb_resetep(usb_dev_handle *dev, unsigned int ep); + int usb_clear_halt(usb_dev_handle *dev, unsigned int ep); + int usb_reset(usb_dev_handle *dev); + int usb_reset_ex(usb_dev_handle *dev, unsigned int reset_type); + + char *usb_strerror(void); + + void usb_init(void); + void usb_set_debug(int level); + int usb_find_busses(void); + int usb_find_devices(void); + struct usb_device *usb_device(usb_dev_handle *dev); + struct usb_bus *usb_get_busses(void); + + + /* Windows specific functions */ + +#define LIBUSB_HAS_INSTALL_SERVICE_NP 1 + int usb_install_service_np(void); + void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1 + int usb_uninstall_service_np(void); + void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_INSTALL_DRIVER_NP 1 + int usb_install_driver_np(const char *inf_file); + void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1 + int usb_touch_inf_file_np(const char *inf_file); + void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1 + int usb_install_needs_restart_np(void); + +#define LIBUSB_HAS_INSTALL_NP 1 + int usb_install_npW(HWND hwnd, HINSTANCE instance, LPCWSTR cmd_line, int starg_arg); + int usb_install_npA(HWND hwnd, HINSTANCE instance, LPCSTR cmd_line, int starg_arg); + #define usb_install_np usb_install_npA + void CALLBACK usb_install_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + + const struct usb_version *usb_get_version(void); + + int usb_isochronous_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep, int pktsize); + int usb_bulk_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep); + int usb_interrupt_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep); + + int usb_submit_async(void *context, char *bytes, int size); + int usb_reap_async(void *context, int timeout); + int usb_reap_async_nocancel(void *context, int timeout); + int usb_cancel_async(void *context); + int usb_free_async(void **context); + + +#ifdef __cplusplus +} +#endif + +#endif /* __USB_H__ */ + diff --git a/Externals/libusb/win32/hidapi.h b/Externals/libusb/win32/hidapi.h new file mode 100644 index 0000000000..bd912acd7f --- /dev/null +++ b/Externals/libusb/win32/hidapi.h @@ -0,0 +1,384 @@ +/******************************************************* + HIDAPI - Multi-Platform library for + communication with HID devices. + + Alan Ott + Signal 11 Software + + 8/22/2009 + + Copyright 2009, All Rights Reserved. + + At the discretion of the user of this library, + this software may be licensed under the terms of the + GNU Public License v3, a BSD-Style license, or the + original HIDAPI license as outlined in the LICENSE.txt, + LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt + files located at the root of the source distribution. + These files may also be found in the public source + code repository located at: + http://github.com/signal11/hidapi . +********************************************************/ + +/** @file + * @defgroup API hidapi API + */ + +#ifndef HIDAPI_H__ +#define HIDAPI_H__ + +#include + +#ifdef _WIN32 + #define HID_API_EXPORT __declspec(dllexport) + #define HID_API_CALL +#else + #define HID_API_EXPORT /**< API export macro */ + #define HID_API_CALL /**< API call macro */ +#endif + +#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ + +#ifdef __cplusplus +extern "C" { +#endif + struct hid_device_; + typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ + + /** hidapi info structure */ + struct hid_device_info { + /** Platform-specific device path */ + char *path; + /** Device Vendor ID */ + unsigned short vendor_id; + /** Device Product ID */ + unsigned short product_id; + /** Serial Number */ + wchar_t *serial_number; + /** Device Release Number in binary-coded decimal, + also known as Device Version Number */ + unsigned short release_number; + /** Manufacturer String */ + wchar_t *manufacturer_string; + /** Product string */ + wchar_t *product_string; + /** Usage Page for this Device/Interface + (Windows/Mac only). */ + unsigned short usage_page; + /** Usage for this Device/Interface + (Windows/Mac only).*/ + unsigned short usage; + /** The USB interface which this logical device + represents. Valid on both Linux implementations + in all cases, and valid on the Windows implementation + only if the device contains more than one interface. */ + int interface_number; + + /** Pointer to the next device */ + struct hid_device_info *next; + }; + + + /** @brief Initialize the HIDAPI library. + + This function initializes the HIDAPI library. Calling it is not + strictly necessary, as it will be called automatically by + hid_enumerate() and any of the hid_open_*() functions if it is + needed. This function should be called at the beginning of + execution however, if there is a chance of HIDAPI handles + being opened by different threads simultaneously. + + @ingroup API + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_init(void); + + /** @brief Finalize the HIDAPI library. + + This function frees all of the static data associated with + HIDAPI. It should be called at the end of execution to avoid + memory leaks. + + @ingroup API + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_exit(void); + + /** @brief Enumerate the HID Devices. + + This function returns a linked list of all the HID devices + attached to the system which match vendor_id and product_id. + If @p vendor_id and @p product_id are both set to 0, then + all HID devices will be returned. + + @ingroup API + @param vendor_id The Vendor ID (VID) of the types of device + to open. + @param product_id The Product ID (PID) of the types of + device to open. + + @returns + This function returns a pointer to a linked list of type + struct #hid_device, containing information about the HID devices + attached to the system, or NULL in the case of failure. Free + this linked list by calling hid_free_enumeration(). + */ + struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); + + /** @brief Free an enumeration Linked List + + This function frees a linked list created by hid_enumerate(). + + @ingroup API + @param devs Pointer to a list of struct_device returned from + hid_enumerate(). + */ + void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); + + /** @brief Open a HID device using a Vendor ID (VID), Product ID + (PID) and optionally a serial number. + + If @p serial_number is NULL, the first device with the + specified VID and PID is opened. + + @ingroup API + @param vendor_id The Vendor ID (VID) of the device to open. + @param product_id The Product ID (PID) of the device to open. + @param serial_number The Serial Number of the device to open + (Optionally NULL). + + @returns + This function returns a pointer to a #hid_device object on + success or NULL on failure. + */ + HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, wchar_t *serial_number); + + /** @brief Open a HID device by its path name. + + The path name be determined by calling hid_enumerate(), or a + platform-specific path name can be used (eg: /dev/hidraw0 on + Linux). + + @ingroup API + @param path The path name of the device to open + + @returns + This function returns a pointer to a #hid_device object on + success or NULL on failure. + */ + HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); + + /** @brief Write an Output report to a HID device. + + The first byte of @p data[] must contain the Report ID. For + devices which only support a single report, this must be set + to 0x0. The remaining bytes contain the report data. Since + the Report ID is mandatory, calls to hid_write() will always + contain one more byte than the report contains. For example, + if a hid report is 16 bytes long, 17 bytes must be passed to + hid_write(), the Report ID (or 0x0, for devices with a + single report), followed by the report data (16 bytes). In + this example, the length passed in would be 17. + + hid_write() will send the data on the first OUT endpoint, if + one exists. If it does not, it will send the data through + the Control Endpoint (Endpoint 0). + + @ingroup API + @param device A device handle returned from hid_open(). + @param data The data to send, including the report number as + the first byte. + @param length The length in bytes of the data to send. + + @returns + This function returns the actual number of bytes written and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); + + int HID_API_EXPORT HID_API_CALL hid_set_output_report(hid_device *dev, const unsigned char *data, size_t length); + /** @brief Read an Input report from a HID device with timeout. + + Input reports are returned + to the host through the INTERRUPT IN endpoint. The first byte will + contain the Report number if the device uses numbered reports. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into. + @param length The number of bytes to read. For devices with + multiple reports, make sure to read an extra byte for + the report number. + @param milliseconds timeout in milliseconds or -1 for blocking wait. + + @returns + This function returns the actual number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); + + /** @brief Read an Input report from a HID device. + + Input reports are returned + to the host through the INTERRUPT IN endpoint. The first byte will + contain the Report number if the device uses numbered reports. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into. + @param length The number of bytes to read. For devices with + multiple reports, make sure to read an extra byte for + the report number. + + @returns + This function returns the actual number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); + + /** @brief Set the device handle to be non-blocking. + + In non-blocking mode calls to hid_read() will return + immediately with a value of 0 if there is no data to be + read. In blocking mode, hid_read() will wait (block) until + there is data to read before returning. + + Nonblocking can be turned on and off at any time. + + @ingroup API + @param device A device handle returned from hid_open(). + @param nonblock enable or not the nonblocking reads + - 1 to enable nonblocking + - 0 to disable nonblocking. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); + + /** @brief Send a Feature report to the device. + + Feature reports are sent over the Control endpoint as a + Set_Report transfer. The first byte of @p data[] must + contain the Report ID. For devices which only support a + single report, this must be set to 0x0. The remaining bytes + contain the report data. Since the Report ID is mandatory, + calls to hid_send_feature_report() will always contain one + more byte than the report contains. For example, if a hid + report is 16 bytes long, 17 bytes must be passed to + hid_send_feature_report(): the Report ID (or 0x0, for + devices which do not use numbered reports), followed by the + report data (16 bytes). In this example, the length passed + in would be 17. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data The data to send, including the report number as + the first byte. + @param length The length in bytes of the data to send, including + the report number. + + @returns + This function returns the actual number of bytes written and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); + + /** @brief Get a feature report from a HID device. + + Make sure to set the first byte of @p data[] to the Report + ID of the report to be read. Make sure to allow space for + this extra byte in @p data[]. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into, including + the Report ID. Set the first byte of @p data[] to the + Report ID of the report to be read. + @param length The number of bytes to read, including an + extra byte for the report ID. The buffer can be longer + than the actual report. + + @returns + This function returns the number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); + + /** @brief Close a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + */ + void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); + + /** @brief Get The Manufacturer String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get The Product String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get The Serial Number String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get a string from a HID device, based on its string index. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string_index The index of the string to get. + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); + + /** @brief Get a string describing the last error which occurred. + + @ingroup API + @param device A device handle returned from hid_open(). + + @returns + This function returns a string containing the last error + which occurred or NULL if none has occurred. + */ + HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Externals/libusb/win32/lusb0_usb.h b/Externals/libusb/win32/lusb0_usb.h new file mode 100644 index 0000000000..b95fbf0a6d --- /dev/null +++ b/Externals/libusb/win32/lusb0_usb.h @@ -0,0 +1,427 @@ +#ifndef __USB_H__ +#define __USB_H__ + +#include +#include + +/* + * 'interface' is defined somewhere in the Windows header files. This macro + * is deleted here to avoid conflicts and compile errors. + */ + +#ifdef interface +#undef interface +#endif + +/* + * PATH_MAX from limits.h can't be used on Windows if the dll and + * import libraries are build/used by different compilers + */ + +#define LIBUSB_PATH_MAX 512 + + +/* + * USB spec information + * + * This is all stuff grabbed from various USB specs and is pretty much + * not subject to change + */ + +/* + * Device and/or Interface Class codes + */ +#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ +#define USB_CLASS_AUDIO 1 +#define USB_CLASS_COMM 2 +#define USB_CLASS_HID 3 +#define USB_CLASS_PRINTER 7 +#define USB_CLASS_MASS_STORAGE 8 +#define USB_CLASS_HUB 9 +#define USB_CLASS_DATA 10 +#define USB_CLASS_VENDOR_SPEC 0xff + +/* + * Descriptor types + */ +#define USB_DT_DEVICE 0x01 +#define USB_DT_CONFIG 0x02 +#define USB_DT_STRING 0x03 +#define USB_DT_INTERFACE 0x04 +#define USB_DT_ENDPOINT 0x05 + +#define USB_DT_HID 0x21 +#define USB_DT_REPORT 0x22 +#define USB_DT_PHYSICAL 0x23 +#define USB_DT_HUB 0x29 + +/* + * Descriptor sizes per descriptor type + */ +#define USB_DT_DEVICE_SIZE 18 +#define USB_DT_CONFIG_SIZE 9 +#define USB_DT_INTERFACE_SIZE 9 +#define USB_DT_ENDPOINT_SIZE 7 +#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ +#define USB_DT_HUB_NONVAR_SIZE 7 + + +/* ensure byte-packed structures */ +#include + + +/* All standard descriptors have these 2 fields in common */ +struct usb_descriptor_header +{ + unsigned char bLength; + unsigned char bDescriptorType; +}; + +/* String descriptor */ +struct usb_string_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wData[1]; +}; + +/* HID descriptor */ +struct usb_hid_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short bcdHID; + unsigned char bCountryCode; + unsigned char bNumDescriptors; +}; + +/* Endpoint descriptor */ +#define USB_MAXENDPOINTS 32 +struct usb_endpoint_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bEndpointAddress; + unsigned char bmAttributes; + unsigned short wMaxPacketSize; + unsigned char bInterval; + unsigned char bRefresh; + unsigned char bSynchAddress; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ +#define USB_ENDPOINT_DIR_MASK 0x80 + +#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */ +#define USB_ENDPOINT_TYPE_CONTROL 0 +#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1 +#define USB_ENDPOINT_TYPE_BULK 2 +#define USB_ENDPOINT_TYPE_INTERRUPT 3 + +/* Interface descriptor */ +#define USB_MAXINTERFACES 32 +struct usb_interface_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bInterfaceNumber; + unsigned char bAlternateSetting; + unsigned char bNumEndpoints; + unsigned char bInterfaceClass; + unsigned char bInterfaceSubClass; + unsigned char bInterfaceProtocol; + unsigned char iInterface; + + struct usb_endpoint_descriptor *endpoint; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +#define USB_MAXALTSETTING 128 /* Hard limit */ + +struct usb_interface +{ + struct usb_interface_descriptor *altsetting; + + int num_altsetting; +}; + +/* Configuration descriptor information.. */ +#define USB_MAXCONFIG 8 +struct usb_config_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wTotalLength; + unsigned char bNumInterfaces; + unsigned char bConfigurationValue; + unsigned char iConfiguration; + unsigned char bmAttributes; + unsigned char MaxPower; + + struct usb_interface *interface; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +/* Device descriptor */ +struct usb_device_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short bcdUSB; + unsigned char bDeviceClass; + unsigned char bDeviceSubClass; + unsigned char bDeviceProtocol; + unsigned char bMaxPacketSize0; + unsigned short idVendor; + unsigned short idProduct; + unsigned short bcdDevice; + unsigned char iManufacturer; + unsigned char iProduct; + unsigned char iSerialNumber; + unsigned char bNumConfigurations; +}; + +struct usb_ctrl_setup +{ + unsigned char bRequestType; + unsigned char bRequest; + unsigned short wValue; + unsigned short wIndex; + unsigned short wLength; +}; + +/* + * Standard requests + */ +#define USB_REQ_GET_STATUS 0x00 +#define USB_REQ_CLEAR_FEATURE 0x01 +/* 0x02 is reserved */ +#define USB_REQ_SET_FEATURE 0x03 +/* 0x04 is reserved */ +#define USB_REQ_SET_ADDRESS 0x05 +#define USB_REQ_GET_DESCRIPTOR 0x06 +#define USB_REQ_SET_DESCRIPTOR 0x07 +#define USB_REQ_GET_CONFIGURATION 0x08 +#define USB_REQ_SET_CONFIGURATION 0x09 +#define USB_REQ_GET_INTERFACE 0x0A +#define USB_REQ_SET_INTERFACE 0x0B +#define USB_REQ_SYNCH_FRAME 0x0C + +#define USB_TYPE_STANDARD (0x00 << 5) +#define USB_TYPE_CLASS (0x01 << 5) +#define USB_TYPE_VENDOR (0x02 << 5) +#define USB_TYPE_RESERVED (0x03 << 5) + +#define USB_RECIP_DEVICE 0x00 +#define USB_RECIP_INTERFACE 0x01 +#define USB_RECIP_ENDPOINT 0x02 +#define USB_RECIP_OTHER 0x03 + +/* + * Various libusb API related stuff + */ + +#define USB_ENDPOINT_IN 0x80 +#define USB_ENDPOINT_OUT 0x00 + +/* Error codes */ +#define USB_ERROR_BEGIN 500000 + +/* + * This is supposed to look weird. This file is generated from autoconf + * and I didn't want to make this too complicated. + */ +#define USB_LE16_TO_CPU(x) + +/* + * Device reset types for usb_reset_ex. + * http://msdn.microsoft.com/en-us/library/ff537269%28VS.85%29.aspx + * http://msdn.microsoft.com/en-us/library/ff537243%28v=vs.85%29.aspx + */ +#define USB_RESET_TYPE_RESET_PORT (1 << 0) +#define USB_RESET_TYPE_CYCLE_PORT (1 << 1) +#define USB_RESET_TYPE_FULL_RESET (USB_RESET_TYPE_CYCLE_PORT | USB_RESET_TYPE_RESET_PORT) + + +/* Data types */ +/* struct usb_device; */ +/* struct usb_bus; */ + +struct usb_device +{ + struct usb_device *next, *prev; + + char filename[LIBUSB_PATH_MAX]; + + struct usb_bus *bus; + + struct usb_device_descriptor descriptor; + struct usb_config_descriptor *config; + + void *dev; /* Darwin support */ + + unsigned char devnum; + + unsigned char num_children; + struct usb_device **children; +}; + +struct usb_bus +{ + struct usb_bus *next, *prev; + + char dirname[LIBUSB_PATH_MAX]; + + struct usb_device *devices; + unsigned long location; + + struct usb_device *root_dev; +}; + +/* Version information, Windows specific */ +struct usb_version +{ + struct + { + int major; + int minor; + int micro; + int nano; + } dll; + struct + { + int major; + int minor; + int micro; + int nano; + } driver; +}; + + +struct usb_dev_handle; +typedef struct usb_dev_handle usb_dev_handle; + +/* Variables */ +#ifndef __USB_C__ +#define usb_busses usb_get_busses() +#endif + + + +#include + + +#ifdef __cplusplus +extern "C" +{ +#endif + + /* Function prototypes */ + + /* usb.c */ + usb_dev_handle *usb_open(struct usb_device *dev); + int usb_close(usb_dev_handle *dev); + int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf, + size_t buflen); + int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, + size_t buflen); + + /* descriptors.c */ + int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep, + unsigned char type, unsigned char index, + void *buf, int size); + int usb_get_descriptor(usb_dev_handle *udev, unsigned char type, + unsigned char index, void *buf, int size); + + /* .c */ + int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, + int value, int index, char *bytes, int size, + int timeout); + int usb_set_configuration(usb_dev_handle *dev, int configuration); + int usb_claim_interface(usb_dev_handle *dev, int interface); + int usb_release_interface(usb_dev_handle *dev, int interface); + int usb_set_altinterface(usb_dev_handle *dev, int alternate); + int usb_resetep(usb_dev_handle *dev, unsigned int ep); + int usb_clear_halt(usb_dev_handle *dev, unsigned int ep); + int usb_reset(usb_dev_handle *dev); + int usb_reset_ex(usb_dev_handle *dev, unsigned int reset_type); + + char *usb_strerror(void); + + void usb_init(void); + void usb_set_debug(int level); + int usb_find_busses(void); + int usb_find_devices(void); + struct usb_device *usb_device(usb_dev_handle *dev); + struct usb_bus *usb_get_busses(void); + + + /* Windows specific functions */ + +#define LIBUSB_HAS_INSTALL_SERVICE_NP 1 + int usb_install_service_np(void); + void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1 + int usb_uninstall_service_np(void); + void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_INSTALL_DRIVER_NP 1 + int usb_install_driver_np(const char *inf_file); + void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1 + int usb_touch_inf_file_np(const char *inf_file); + void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1 + int usb_install_needs_restart_np(void); + +#define LIBUSB_HAS_INSTALL_NP 1 + int usb_install_npW(HWND hwnd, HINSTANCE instance, LPCWSTR cmd_line, int starg_arg); + int usb_install_npA(HWND hwnd, HINSTANCE instance, LPCSTR cmd_line, int starg_arg); + #define usb_install_np usb_install_npA + void CALLBACK usb_install_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + + const struct usb_version *usb_get_version(void); + + int usb_isochronous_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep, int pktsize); + int usb_bulk_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep); + int usb_interrupt_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep); + + int usb_submit_async(void *context, char *bytes, int size); + int usb_reap_async(void *context, int timeout); + int usb_reap_async_nocancel(void *context, int timeout); + int usb_cancel_async(void *context); + int usb_free_async(void **context); + + +#ifdef __cplusplus +} +#endif + +#endif /* __USB_H__ */ + diff --git a/Externals/libusb/x64/hidapi.dll b/Externals/libusb/x64/hidapi.dll new file mode 100644 index 0000000000000000000000000000000000000000..1461560e500765127d643e677dee6cd415a2c708 GIT binary patch literal 37888 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 literal 0 HcmV?d00001 diff --git a/Externals/libusb/x64/hidapi.h b/Externals/libusb/x64/hidapi.h new file mode 100644 index 0000000000..bd912acd7f --- /dev/null +++ b/Externals/libusb/x64/hidapi.h @@ -0,0 +1,384 @@ +/******************************************************* + HIDAPI - Multi-Platform library for + communication with HID devices. + + Alan Ott + Signal 11 Software + + 8/22/2009 + + Copyright 2009, All Rights Reserved. + + At the discretion of the user of this library, + this software may be licensed under the terms of the + GNU Public License v3, a BSD-Style license, or the + original HIDAPI license as outlined in the LICENSE.txt, + LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt + files located at the root of the source distribution. + These files may also be found in the public source + code repository located at: + http://github.com/signal11/hidapi . +********************************************************/ + +/** @file + * @defgroup API hidapi API + */ + +#ifndef HIDAPI_H__ +#define HIDAPI_H__ + +#include + +#ifdef _WIN32 + #define HID_API_EXPORT __declspec(dllexport) + #define HID_API_CALL +#else + #define HID_API_EXPORT /**< API export macro */ + #define HID_API_CALL /**< API call macro */ +#endif + +#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ + +#ifdef __cplusplus +extern "C" { +#endif + struct hid_device_; + typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ + + /** hidapi info structure */ + struct hid_device_info { + /** Platform-specific device path */ + char *path; + /** Device Vendor ID */ + unsigned short vendor_id; + /** Device Product ID */ + unsigned short product_id; + /** Serial Number */ + wchar_t *serial_number; + /** Device Release Number in binary-coded decimal, + also known as Device Version Number */ + unsigned short release_number; + /** Manufacturer String */ + wchar_t *manufacturer_string; + /** Product string */ + wchar_t *product_string; + /** Usage Page for this Device/Interface + (Windows/Mac only). */ + unsigned short usage_page; + /** Usage for this Device/Interface + (Windows/Mac only).*/ + unsigned short usage; + /** The USB interface which this logical device + represents. Valid on both Linux implementations + in all cases, and valid on the Windows implementation + only if the device contains more than one interface. */ + int interface_number; + + /** Pointer to the next device */ + struct hid_device_info *next; + }; + + + /** @brief Initialize the HIDAPI library. + + This function initializes the HIDAPI library. Calling it is not + strictly necessary, as it will be called automatically by + hid_enumerate() and any of the hid_open_*() functions if it is + needed. This function should be called at the beginning of + execution however, if there is a chance of HIDAPI handles + being opened by different threads simultaneously. + + @ingroup API + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_init(void); + + /** @brief Finalize the HIDAPI library. + + This function frees all of the static data associated with + HIDAPI. It should be called at the end of execution to avoid + memory leaks. + + @ingroup API + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_exit(void); + + /** @brief Enumerate the HID Devices. + + This function returns a linked list of all the HID devices + attached to the system which match vendor_id and product_id. + If @p vendor_id and @p product_id are both set to 0, then + all HID devices will be returned. + + @ingroup API + @param vendor_id The Vendor ID (VID) of the types of device + to open. + @param product_id The Product ID (PID) of the types of + device to open. + + @returns + This function returns a pointer to a linked list of type + struct #hid_device, containing information about the HID devices + attached to the system, or NULL in the case of failure. Free + this linked list by calling hid_free_enumeration(). + */ + struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); + + /** @brief Free an enumeration Linked List + + This function frees a linked list created by hid_enumerate(). + + @ingroup API + @param devs Pointer to a list of struct_device returned from + hid_enumerate(). + */ + void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); + + /** @brief Open a HID device using a Vendor ID (VID), Product ID + (PID) and optionally a serial number. + + If @p serial_number is NULL, the first device with the + specified VID and PID is opened. + + @ingroup API + @param vendor_id The Vendor ID (VID) of the device to open. + @param product_id The Product ID (PID) of the device to open. + @param serial_number The Serial Number of the device to open + (Optionally NULL). + + @returns + This function returns a pointer to a #hid_device object on + success or NULL on failure. + */ + HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, wchar_t *serial_number); + + /** @brief Open a HID device by its path name. + + The path name be determined by calling hid_enumerate(), or a + platform-specific path name can be used (eg: /dev/hidraw0 on + Linux). + + @ingroup API + @param path The path name of the device to open + + @returns + This function returns a pointer to a #hid_device object on + success or NULL on failure. + */ + HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); + + /** @brief Write an Output report to a HID device. + + The first byte of @p data[] must contain the Report ID. For + devices which only support a single report, this must be set + to 0x0. The remaining bytes contain the report data. Since + the Report ID is mandatory, calls to hid_write() will always + contain one more byte than the report contains. For example, + if a hid report is 16 bytes long, 17 bytes must be passed to + hid_write(), the Report ID (or 0x0, for devices with a + single report), followed by the report data (16 bytes). In + this example, the length passed in would be 17. + + hid_write() will send the data on the first OUT endpoint, if + one exists. If it does not, it will send the data through + the Control Endpoint (Endpoint 0). + + @ingroup API + @param device A device handle returned from hid_open(). + @param data The data to send, including the report number as + the first byte. + @param length The length in bytes of the data to send. + + @returns + This function returns the actual number of bytes written and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); + + int HID_API_EXPORT HID_API_CALL hid_set_output_report(hid_device *dev, const unsigned char *data, size_t length); + /** @brief Read an Input report from a HID device with timeout. + + Input reports are returned + to the host through the INTERRUPT IN endpoint. The first byte will + contain the Report number if the device uses numbered reports. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into. + @param length The number of bytes to read. For devices with + multiple reports, make sure to read an extra byte for + the report number. + @param milliseconds timeout in milliseconds or -1 for blocking wait. + + @returns + This function returns the actual number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); + + /** @brief Read an Input report from a HID device. + + Input reports are returned + to the host through the INTERRUPT IN endpoint. The first byte will + contain the Report number if the device uses numbered reports. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into. + @param length The number of bytes to read. For devices with + multiple reports, make sure to read an extra byte for + the report number. + + @returns + This function returns the actual number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); + + /** @brief Set the device handle to be non-blocking. + + In non-blocking mode calls to hid_read() will return + immediately with a value of 0 if there is no data to be + read. In blocking mode, hid_read() will wait (block) until + there is data to read before returning. + + Nonblocking can be turned on and off at any time. + + @ingroup API + @param device A device handle returned from hid_open(). + @param nonblock enable or not the nonblocking reads + - 1 to enable nonblocking + - 0 to disable nonblocking. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); + + /** @brief Send a Feature report to the device. + + Feature reports are sent over the Control endpoint as a + Set_Report transfer. The first byte of @p data[] must + contain the Report ID. For devices which only support a + single report, this must be set to 0x0. The remaining bytes + contain the report data. Since the Report ID is mandatory, + calls to hid_send_feature_report() will always contain one + more byte than the report contains. For example, if a hid + report is 16 bytes long, 17 bytes must be passed to + hid_send_feature_report(): the Report ID (or 0x0, for + devices which do not use numbered reports), followed by the + report data (16 bytes). In this example, the length passed + in would be 17. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data The data to send, including the report number as + the first byte. + @param length The length in bytes of the data to send, including + the report number. + + @returns + This function returns the actual number of bytes written and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); + + /** @brief Get a feature report from a HID device. + + Make sure to set the first byte of @p data[] to the Report + ID of the report to be read. Make sure to allow space for + this extra byte in @p data[]. + + @ingroup API + @param device A device handle returned from hid_open(). + @param data A buffer to put the read data into, including + the Report ID. Set the first byte of @p data[] to the + Report ID of the report to be read. + @param length The number of bytes to read, including an + extra byte for the report ID. The buffer can be longer + than the actual report. + + @returns + This function returns the number of bytes read and + -1 on error. + */ + int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); + + /** @brief Close a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + */ + void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); + + /** @brief Get The Manufacturer String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get The Product String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get The Serial Number String from a HID device. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); + + /** @brief Get a string from a HID device, based on its string index. + + @ingroup API + @param device A device handle returned from hid_open(). + @param string_index The index of the string to get. + @param string A wide string buffer to put the data into. + @param maxlen The length of the buffer in multiples of wchar_t. + + @returns + This function returns 0 on success and -1 on error. + */ + int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); + + /** @brief Get a string describing the last error which occurred. + + @ingroup API + @param device A device handle returned from hid_open(). + + @returns + This function returns a string containing the last error + which occurred or NULL if none has occurred. + */ + HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Externals/libusb/x64/lusb0_usb.h b/Externals/libusb/x64/lusb0_usb.h new file mode 100644 index 0000000000..b95fbf0a6d --- /dev/null +++ b/Externals/libusb/x64/lusb0_usb.h @@ -0,0 +1,427 @@ +#ifndef __USB_H__ +#define __USB_H__ + +#include +#include + +/* + * 'interface' is defined somewhere in the Windows header files. This macro + * is deleted here to avoid conflicts and compile errors. + */ + +#ifdef interface +#undef interface +#endif + +/* + * PATH_MAX from limits.h can't be used on Windows if the dll and + * import libraries are build/used by different compilers + */ + +#define LIBUSB_PATH_MAX 512 + + +/* + * USB spec information + * + * This is all stuff grabbed from various USB specs and is pretty much + * not subject to change + */ + +/* + * Device and/or Interface Class codes + */ +#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ +#define USB_CLASS_AUDIO 1 +#define USB_CLASS_COMM 2 +#define USB_CLASS_HID 3 +#define USB_CLASS_PRINTER 7 +#define USB_CLASS_MASS_STORAGE 8 +#define USB_CLASS_HUB 9 +#define USB_CLASS_DATA 10 +#define USB_CLASS_VENDOR_SPEC 0xff + +/* + * Descriptor types + */ +#define USB_DT_DEVICE 0x01 +#define USB_DT_CONFIG 0x02 +#define USB_DT_STRING 0x03 +#define USB_DT_INTERFACE 0x04 +#define USB_DT_ENDPOINT 0x05 + +#define USB_DT_HID 0x21 +#define USB_DT_REPORT 0x22 +#define USB_DT_PHYSICAL 0x23 +#define USB_DT_HUB 0x29 + +/* + * Descriptor sizes per descriptor type + */ +#define USB_DT_DEVICE_SIZE 18 +#define USB_DT_CONFIG_SIZE 9 +#define USB_DT_INTERFACE_SIZE 9 +#define USB_DT_ENDPOINT_SIZE 7 +#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ +#define USB_DT_HUB_NONVAR_SIZE 7 + + +/* ensure byte-packed structures */ +#include + + +/* All standard descriptors have these 2 fields in common */ +struct usb_descriptor_header +{ + unsigned char bLength; + unsigned char bDescriptorType; +}; + +/* String descriptor */ +struct usb_string_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wData[1]; +}; + +/* HID descriptor */ +struct usb_hid_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short bcdHID; + unsigned char bCountryCode; + unsigned char bNumDescriptors; +}; + +/* Endpoint descriptor */ +#define USB_MAXENDPOINTS 32 +struct usb_endpoint_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bEndpointAddress; + unsigned char bmAttributes; + unsigned short wMaxPacketSize; + unsigned char bInterval; + unsigned char bRefresh; + unsigned char bSynchAddress; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ +#define USB_ENDPOINT_DIR_MASK 0x80 + +#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */ +#define USB_ENDPOINT_TYPE_CONTROL 0 +#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1 +#define USB_ENDPOINT_TYPE_BULK 2 +#define USB_ENDPOINT_TYPE_INTERRUPT 3 + +/* Interface descriptor */ +#define USB_MAXINTERFACES 32 +struct usb_interface_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bInterfaceNumber; + unsigned char bAlternateSetting; + unsigned char bNumEndpoints; + unsigned char bInterfaceClass; + unsigned char bInterfaceSubClass; + unsigned char bInterfaceProtocol; + unsigned char iInterface; + + struct usb_endpoint_descriptor *endpoint; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +#define USB_MAXALTSETTING 128 /* Hard limit */ + +struct usb_interface +{ + struct usb_interface_descriptor *altsetting; + + int num_altsetting; +}; + +/* Configuration descriptor information.. */ +#define USB_MAXCONFIG 8 +struct usb_config_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short wTotalLength; + unsigned char bNumInterfaces; + unsigned char bConfigurationValue; + unsigned char iConfiguration; + unsigned char bmAttributes; + unsigned char MaxPower; + + struct usb_interface *interface; + + unsigned char *extra; /* Extra descriptors */ + int extralen; +}; + +/* Device descriptor */ +struct usb_device_descriptor +{ + unsigned char bLength; + unsigned char bDescriptorType; + unsigned short bcdUSB; + unsigned char bDeviceClass; + unsigned char bDeviceSubClass; + unsigned char bDeviceProtocol; + unsigned char bMaxPacketSize0; + unsigned short idVendor; + unsigned short idProduct; + unsigned short bcdDevice; + unsigned char iManufacturer; + unsigned char iProduct; + unsigned char iSerialNumber; + unsigned char bNumConfigurations; +}; + +struct usb_ctrl_setup +{ + unsigned char bRequestType; + unsigned char bRequest; + unsigned short wValue; + unsigned short wIndex; + unsigned short wLength; +}; + +/* + * Standard requests + */ +#define USB_REQ_GET_STATUS 0x00 +#define USB_REQ_CLEAR_FEATURE 0x01 +/* 0x02 is reserved */ +#define USB_REQ_SET_FEATURE 0x03 +/* 0x04 is reserved */ +#define USB_REQ_SET_ADDRESS 0x05 +#define USB_REQ_GET_DESCRIPTOR 0x06 +#define USB_REQ_SET_DESCRIPTOR 0x07 +#define USB_REQ_GET_CONFIGURATION 0x08 +#define USB_REQ_SET_CONFIGURATION 0x09 +#define USB_REQ_GET_INTERFACE 0x0A +#define USB_REQ_SET_INTERFACE 0x0B +#define USB_REQ_SYNCH_FRAME 0x0C + +#define USB_TYPE_STANDARD (0x00 << 5) +#define USB_TYPE_CLASS (0x01 << 5) +#define USB_TYPE_VENDOR (0x02 << 5) +#define USB_TYPE_RESERVED (0x03 << 5) + +#define USB_RECIP_DEVICE 0x00 +#define USB_RECIP_INTERFACE 0x01 +#define USB_RECIP_ENDPOINT 0x02 +#define USB_RECIP_OTHER 0x03 + +/* + * Various libusb API related stuff + */ + +#define USB_ENDPOINT_IN 0x80 +#define USB_ENDPOINT_OUT 0x00 + +/* Error codes */ +#define USB_ERROR_BEGIN 500000 + +/* + * This is supposed to look weird. This file is generated from autoconf + * and I didn't want to make this too complicated. + */ +#define USB_LE16_TO_CPU(x) + +/* + * Device reset types for usb_reset_ex. + * http://msdn.microsoft.com/en-us/library/ff537269%28VS.85%29.aspx + * http://msdn.microsoft.com/en-us/library/ff537243%28v=vs.85%29.aspx + */ +#define USB_RESET_TYPE_RESET_PORT (1 << 0) +#define USB_RESET_TYPE_CYCLE_PORT (1 << 1) +#define USB_RESET_TYPE_FULL_RESET (USB_RESET_TYPE_CYCLE_PORT | USB_RESET_TYPE_RESET_PORT) + + +/* Data types */ +/* struct usb_device; */ +/* struct usb_bus; */ + +struct usb_device +{ + struct usb_device *next, *prev; + + char filename[LIBUSB_PATH_MAX]; + + struct usb_bus *bus; + + struct usb_device_descriptor descriptor; + struct usb_config_descriptor *config; + + void *dev; /* Darwin support */ + + unsigned char devnum; + + unsigned char num_children; + struct usb_device **children; +}; + +struct usb_bus +{ + struct usb_bus *next, *prev; + + char dirname[LIBUSB_PATH_MAX]; + + struct usb_device *devices; + unsigned long location; + + struct usb_device *root_dev; +}; + +/* Version information, Windows specific */ +struct usb_version +{ + struct + { + int major; + int minor; + int micro; + int nano; + } dll; + struct + { + int major; + int minor; + int micro; + int nano; + } driver; +}; + + +struct usb_dev_handle; +typedef struct usb_dev_handle usb_dev_handle; + +/* Variables */ +#ifndef __USB_C__ +#define usb_busses usb_get_busses() +#endif + + + +#include + + +#ifdef __cplusplus +extern "C" +{ +#endif + + /* Function prototypes */ + + /* usb.c */ + usb_dev_handle *usb_open(struct usb_device *dev); + int usb_close(usb_dev_handle *dev); + int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf, + size_t buflen); + int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, + size_t buflen); + + /* descriptors.c */ + int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep, + unsigned char type, unsigned char index, + void *buf, int size); + int usb_get_descriptor(usb_dev_handle *udev, unsigned char type, + unsigned char index, void *buf, int size); + + /* .c */ + int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout); + int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, + int value, int index, char *bytes, int size, + int timeout); + int usb_set_configuration(usb_dev_handle *dev, int configuration); + int usb_claim_interface(usb_dev_handle *dev, int interface); + int usb_release_interface(usb_dev_handle *dev, int interface); + int usb_set_altinterface(usb_dev_handle *dev, int alternate); + int usb_resetep(usb_dev_handle *dev, unsigned int ep); + int usb_clear_halt(usb_dev_handle *dev, unsigned int ep); + int usb_reset(usb_dev_handle *dev); + int usb_reset_ex(usb_dev_handle *dev, unsigned int reset_type); + + char *usb_strerror(void); + + void usb_init(void); + void usb_set_debug(int level); + int usb_find_busses(void); + int usb_find_devices(void); + struct usb_device *usb_device(usb_dev_handle *dev); + struct usb_bus *usb_get_busses(void); + + + /* Windows specific functions */ + +#define LIBUSB_HAS_INSTALL_SERVICE_NP 1 + int usb_install_service_np(void); + void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1 + int usb_uninstall_service_np(void); + void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_INSTALL_DRIVER_NP 1 + int usb_install_driver_np(const char *inf_file); + void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1 + int usb_touch_inf_file_np(const char *inf_file); + void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + +#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1 + int usb_install_needs_restart_np(void); + +#define LIBUSB_HAS_INSTALL_NP 1 + int usb_install_npW(HWND hwnd, HINSTANCE instance, LPCWSTR cmd_line, int starg_arg); + int usb_install_npA(HWND hwnd, HINSTANCE instance, LPCSTR cmd_line, int starg_arg); + #define usb_install_np usb_install_npA + void CALLBACK usb_install_np_rundll(HWND wnd, HINSTANCE instance, + LPSTR cmd_line, int cmd_show); + + const struct usb_version *usb_get_version(void); + + int usb_isochronous_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep, int pktsize); + int usb_bulk_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep); + int usb_interrupt_setup_async(usb_dev_handle *dev, void **context, + unsigned char ep); + + int usb_submit_async(void *context, char *bytes, int size); + int usb_reap_async(void *context, int timeout); + int usb_reap_async_nocancel(void *context, int timeout); + int usb_cancel_async(void *context); + int usb_free_async(void **context); + + +#ifdef __cplusplus +} +#endif + +#endif /* __USB_H__ */ + diff --git a/Source/Core/Common/Src/Log.h b/Source/Core/Common/Src/Log.h index 3be97d54d4..4892886693 100644 --- a/Source/Core/Common/Src/Log.h +++ b/Source/Core/Common/Src/Log.h @@ -64,6 +64,7 @@ enum LOG_TYPE { WII_IPC_DVD, WII_IPC_ES, WII_IPC_FILEIO, + WII_IPC_HID, WII_IPC_HLE, WII_IPC_NET, WII_IPC_SD, diff --git a/Source/Core/Common/Src/LogManager.cpp b/Source/Core/Common/Src/LogManager.cpp index a79c413cf8..df55f018c6 100644 --- a/Source/Core/Common/Src/LogManager.cpp +++ b/Source/Core/Common/Src/LogManager.cpp @@ -71,6 +71,7 @@ LogManager::LogManager() m_Log[LogTypes::WIIMOTE] = new LogContainer("Wiimote", "Wiimote"); m_Log[LogTypes::WII_IOB] = new LogContainer("WII_IOB", "WII IO Bridge"); m_Log[LogTypes::WII_IPC] = new LogContainer("WII_IPC", "WII IPC"); + m_Log[LogTypes::WII_IPC_HID] = new LogContainer("WII_IPC_HID", "WII IPC HID"); m_Log[LogTypes::WII_IPC_HLE] = new LogContainer("WII_IPC_HLE", "WII IPC HLE"); m_Log[LogTypes::WII_IPC_DVD] = new LogContainer("WII_IPC_DVD", "WII IPC DVD"); m_Log[LogTypes::WII_IPC_ES] = new LogContainer("WII_IPC_ES", "WII IPC ES"); diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj index e03d40e43a..25ede66e60 100644 --- a/Source/Core/Core/Core.vcxproj +++ b/Source/Core/Core/Core.vcxproj @@ -115,7 +115,7 @@ - .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories) + .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;..\..\..\Externals\libusb\include;%(AdditionalIncludeDirectories);..\..\..\Externals\libusb\include true @@ -127,7 +127,7 @@ - .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories) + .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;..\..\..\Externals\libusb\include;%(AdditionalIncludeDirectories);..\..\..\Externals\libusb\include true @@ -139,7 +139,7 @@ - .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories) + .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;..\..\..\Externals\libusb\include;%(AdditionalIncludeDirectories) true @@ -153,7 +153,7 @@ - .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories) + .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories);..\..\..\Externals\libusb\include true @@ -167,7 +167,7 @@ - .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories) + .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;..\..\..\Externals\libusb\include;%(AdditionalIncludeDirectories) true @@ -181,7 +181,7 @@ - .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;%(AdditionalIncludeDirectories) + .\Src;..\Common\Src;..\VideoCommon\Src;..\AudioCommon\Src;..\DiscIO\Src;..\InputCommon\Src;..\wiiuse\Src;..\..\..\Externals\Bochs_disasm;..\..\..\Externals\SFML\include;..\..\..\Externals\LZO;..\..\..\Externals\portaudio\include;..\..\..\Externals\zlib;..\..\..\Externals\libusb\include;%(AdditionalIncludeDirectories);..\..\..\Externals\libusb\include true @@ -326,6 +326,7 @@ + @@ -526,6 +527,7 @@ + diff --git a/Source/Core/Core/Core.vcxproj.filters b/Source/Core/Core/Core.vcxproj.filters index 020cf76ad0..475861b64a 100644 --- a/Source/Core/Core/Core.vcxproj.filters +++ b/Source/Core/Core/Core.vcxproj.filters @@ -556,6 +556,9 @@ HW %28Flipper/Hollywood%29\GCMemcard + + IPC HLE %28IOS/Starlet%29\USB + @@ -1033,6 +1036,9 @@ HW %28Flipper/Hollywood%29\GCMemcard + + IPC HLE %28IOS/Starlet%29\USB + @@ -1173,5 +1179,8 @@ {3e9e6e83-c1bf-45f9-aeff-231f98f60d29} + + {321a9af5-9b3d-4620-888c-fe9d02e9559e} + \ No newline at end of file diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index cd4f679db9..40c31c9e2b 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -50,6 +50,7 @@ They will also generate a true or false return for UpdateInterrupts() in WII_IPC #include "WII_IPC_HLE_Device_usb.h" #include "WII_IPC_HLE_Device_usb_kbd.h" #include "WII_IPC_HLE_Device_sdio_slot0.h" +#include "WII_IPC_HLE_Device_hid.h" #include "FileUtil.h" // For Copy #include "../ConfigManager.h" @@ -113,7 +114,7 @@ void Init() g_DeviceMap[i] = new CWII_IPC_HLE_Device_usb_kbd(i, std::string("/dev/usb/kbd")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_sdio_slot0(i, std::string("/dev/sdio/slot0")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/sdio/slot1")); i++; - g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/usb/hid")); i++; + g_DeviceMap[i] = new CWII_IPC_HLE_Device_hid(i, std::string("/dev/usb/hid")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/usb/oh1")); i++; g_DeviceMap[i] = new IWII_IPC_HLE_Device(i, std::string("_Unimplemented_Device_")); i++; } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp new file mode 100644 index 0000000000..0103a534c3 --- /dev/null +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -0,0 +1,416 @@ +// Copyright (C) 2003 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#include "../Core.h" +#include "../Debugger/Debugger_SymbolMap.h" +#include "../HW/WII_IPC.h" +#include "WII_IPC_HLE.h" +#include "WII_IPC_HLE_Device_hid.h" +#include "lusb0_usb.h" +#include "hidapi.h" + +CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) + : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) +{ + + usb_init(); /* initialize the library */ + +} + +CWII_IPC_HLE_Device_hid::~CWII_IPC_HLE_Device_hid() +{ + +} + +bool CWII_IPC_HLE_Device_hid::Open(u32 _CommandAddress, u32 _Mode) +{ + Dolphin_Debugger::PrintCallstack(LogTypes::WII_IPC_HID, LogTypes::LWARNING); + DEBUG_LOG(WII_IPC_HID, "HID::Open"); + Memory::Write_U32(GetDeviceID(), _CommandAddress + 4); + return true; +} + +bool CWII_IPC_HLE_Device_hid::Close(u32 _CommandAddress, bool _bForce) +{ + DEBUG_LOG(WII_IPC_HID, "HID::Close"); + if (!_bForce) + Memory::Write_U32(0, _CommandAddress + 4); + return true; +} + +bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) +{ + static u32 replyAddress = 0; + static bool hasRun = false; + u32 Parameter = Memory::Read_U32(_CommandAddress + 0xC); + u32 BufferIn = Memory::Read_U32(_CommandAddress + 0x10); + u32 BufferInSize = Memory::Read_U32(_CommandAddress + 0x14); + u32 BufferOut = Memory::Read_U32(_CommandAddress + 0x18); + u32 BufferOutSize = Memory::Read_U32(_CommandAddress + 0x1C); + + u32 ReturnValue = 0; + switch (Parameter) + { + case IOCTL_HID_GET_ATTACHED: + { + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Get Attached) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + BufferIn, BufferInSize, BufferOut, BufferOutSize); + if(!hasRun) + { + FillOutDevices(BufferOut, BufferOutSize); + hasRun = true; + } + else + { + replyAddress = _CommandAddress; + return false; + } + break; + } + case IOCTL_HID_OPEN: + { + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Open) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + BufferIn, BufferInSize, BufferOut, BufferOutSize); + + //hid version, apparently + ReturnValue = 0x40001; + break; + } + case IOCTL_HID_SET_SUSPEND: + { + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Set Suspend) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + BufferIn, BufferInSize, BufferOut, BufferOutSize); + // not actually implemented in IOS + ReturnValue = 0; + + if (replyAddress != 0){ + FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); + WII_IPC_HLE_Interface::EnqReply(replyAddress); + replyAddress = 0; + hasRun = false; + } + + break; + } + case IOCTL_HID_CANCEL_INTERRUPT: + { + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Cancel Interrupt) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + BufferIn, BufferInSize, BufferOut, BufferOutSize); + + if (replyAddress != 0){ + FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); + WII_IPC_HLE_Interface::EnqReply(replyAddress); + replyAddress = 0; + hasRun = false; + } + + ReturnValue = 0; + break; + } + case IOCTL_HID_CONTROL: + { + /* + ERROR CODES: + -4 Cant find device specified + */ + u32 dev_num = Memory::Read_U32(BufferIn+0x10); + u8 requesttype = Memory::Read_U8(BufferIn+0x14); + u8 request = Memory::Read_U8(BufferIn+0x15); + u16 value = Memory::Read_U16(BufferIn+0x16); + u16 index = Memory::Read_U16(BufferIn+0x18); + u16 size = Memory::Read_U16(BufferIn+0x1A); + u32 data = Memory::Read_U32(BufferIn+0x1C); + + static int upto = 0; + int i; + usb_find_busses(); /* find all busses */ + usb_find_devices(); /* find all connected devices */ + + struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + + if (dev_handle == NULL) + { + ReturnValue = -4; + break; + } + + ReturnValue = usb_control_msg(dev_handle, requesttype, request, + value, index, (char*)Memory::GetPointer(data), size, + 0); + + if(ReturnValue>=0) + { + ReturnValue += sizeof(usb_ctrl_setup); + } + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", + requesttype, request, ReturnValue); + + usb_close(dev_handle); + + u8 test_out[0x20]; + Memory::ReadBigEData(test_out, BufferIn, BufferInSize); + char file[0x50]; + snprintf(file, 0x50, "ctrl_ctrlprotocol_%d.bin", upto); + FILE* test = fopen (file, "wb"); + for(i=0;i<0x20;i++) + fwrite(&test_out[i], 1, 1, test); + if (size > 0) + fwrite((char*)Memory::GetPointer(data), 1, size, test); + fclose(test); + upto++; + break; + } + case IOCTL_HID_INTERRUPT_IN: + { + + + u32 dev_num = Memory::Read_U32(BufferIn+0x10); + u32 end_point = Memory::Read_U32(BufferIn+0x14); + u32 length = Memory::Read_U32(BufferIn+0x18); + + u32 data = Memory::Read_U32(BufferIn+0x1C); + + struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + + if (dev_handle == NULL) + { + ReturnValue = -4; + break; + } + + usb_claim_interface(dev_handle,0); + ReturnValue = usb_interrupt_read(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 1000); + + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt In)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + + usb_close(dev_handle); + break; + } + case IOCTL_HID_INTERRUPT_OUT: + { + + + u32 dev_num = Memory::Read_U32(BufferIn+0x10); + u32 end_point = Memory::Read_U32(BufferIn+0x14); + u32 length = Memory::Read_U32(BufferIn+0x18); + + u32 data = Memory::Read_U32(BufferIn+0x1C); + + struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + + if (dev_handle == NULL) + { + ReturnValue = -4; + break; + } + + usb_claim_interface(dev_handle,0); + ReturnValue = usb_interrupt_write(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 0); + + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt Out) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + + usb_close(dev_handle); + break; + } + default: + { + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(0x%x) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + Parameter, BufferIn, BufferInSize, BufferOut, BufferOutSize); + break; + } + } + + Memory::Write_U32(ReturnValue, _CommandAddress + 4); + + return true; +} + +bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) +{ + + Dolphin_Debugger::PrintCallstack(LogTypes::WII_IPC_HID, LogTypes::LWARNING); + u32 ReturnValue = 0; + SIOCtlVBuffer CommandBuffer(_CommandAddress); + + switch (CommandBuffer.Parameter) + { + + default: + { + DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); + DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); + DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); + DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); + DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); + DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); + DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); + #if defined(_DEBUG) || defined(DEBUGFAST) + DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); + #endif + } + break; + } + + Memory::Write_U32(ReturnValue, _CommandAddress + 4); + return true; +} + + + +void CWII_IPC_HLE_Device_hid::ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, struct usb_device_descriptor *src) +{ + memcpy(dest,src,sizeof(WiiHIDDeviceDescriptor)); + dest->bcdUSB = Common::swap16(dest->bcdUSB); + dest->idVendor = Common::swap16(dest->idVendor); + dest->idProduct = Common::swap16(dest->idProduct); + dest->bcdDevice = Common::swap16(dest->bcdDevice); +} + +void CWII_IPC_HLE_Device_hid::ConvertConfigToWii(WiiHIDConfigDescriptor *dest, struct usb_config_descriptor *src) +{ + memcpy(dest,src,sizeof(WiiHIDConfigDescriptor)); + dest->wTotalLength = Common::swap16(dest->wTotalLength); +} + +void CWII_IPC_HLE_Device_hid::ConvertInterfaceToWii(WiiHIDInterfaceDescriptor *dest, struct usb_interface_descriptor *src) +{ + memcpy(dest,src,sizeof(WiiHIDInterfaceDescriptor)); +} + +void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, struct usb_endpoint_descriptor *src) +{ + memcpy(dest,src,sizeof(WiiHIDEndpointDescriptor)); + dest->wMaxPacketSize = Common::swap16(dest->wMaxPacketSize); +} +/* +// hidapi version +void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) +{ + // Enumerate and print the HID devices on the system + struct hid_device_info *devs, *cur_dev; + + devs = hid_enumerate(0x0, 0x0); + cur_dev = devs; + while (cur_dev) { + printf("Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", + cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number); + printf("\n"); + printf(" Manufacturer: %ls\n", cur_dev->manufacturer_string); + printf(" Product: %ls\n", cur_dev->product_string); + printf("\n"); + cur_dev = cur_dev->next; + } + hid_free_enumeration(devs); +} +*/ + +// libusb version +void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) +{ + usb_find_busses(); // find all busses + usb_find_devices(); // find all connected devices + struct usb_bus *bus; + struct usb_device *dev; + int OffsetBuffer = BufferOut; + int OffsetStart = 0; + int c,ic,i,e; // config, interface container, interface, endpoint + for (bus = usb_get_busses(); bus; bus = bus->next) + { + for (dev = bus->devices; dev; dev = dev->next) + { + struct usb_device_descriptor *device = &dev->descriptor; + DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d",device->idVendor, device->idProduct, dev->devnum); + + OffsetStart = OffsetBuffer; + OffsetBuffer += 4; // skip length for now, fill at end + + Memory::Write_U32(dev->devnum, OffsetBuffer); //write device num + OffsetBuffer += 4; + + WiiHIDDeviceDescriptor wii_device; + ConvertDeviceToWii(&wii_device, device); + Memory::WriteBigEData((const u8*)&wii_device, OffsetBuffer, Align(wii_device.bLength, 4)); + OffsetBuffer += Align(wii_device.bLength, 4); + + for (c = 0; c < device->bNumConfigurations; c++) + { + struct usb_config_descriptor *config = &dev->config[c]; + + WiiHIDConfigDescriptor wii_config; + ConvertConfigToWii(&wii_config, config); + Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(wii_config.bLength, 4)); + OffsetBuffer += Align(wii_config.bLength, 4); + + for (ic = 0; ic < config->bNumInterfaces; ic++) + { + struct usb_interface *interfaceContainer = &config->interface[ic]; + for (i = 0; i < interfaceContainer->num_altsetting; i++) + { + struct usb_interface_descriptor *interface = &interfaceContainer->altsetting[i]; + + WiiHIDInterfaceDescriptor wii_interface; + ConvertInterfaceToWii(&wii_interface, interface); + Memory::WriteBigEData((const u8*)&wii_interface, OffsetBuffer, Align(wii_interface.bLength, 4)); + OffsetBuffer += Align(wii_interface.bLength, 4); + + for (e = 0; e < interface->bNumEndpoints; e++) + { + struct usb_endpoint_descriptor *endpoint = &interface->endpoint[e]; + + WiiHIDEndpointDescriptor wii_endpoint; + ConvertEndpointToWii(&wii_endpoint, endpoint); + Memory::WriteBigEData((const u8*)&wii_endpoint, OffsetBuffer, Align(wii_endpoint.bLength, 4)); + OffsetBuffer += Align(wii_endpoint.bLength, 4); + + } //endpoints + } // interfaces + } // interface containters + } // configs + + Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length + + } // devices + } // buses + + Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices + + +} + + + +int CWII_IPC_HLE_Device_hid::Align(int num, int alignment) +{ + return (num + (alignment-1)) & ~(alignment-1); +} + + +struct usb_dev_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) +{ + for (struct usb_bus *bus = usb_get_busses(); bus; bus = bus->next) + { + for (struct usb_device *dev = bus->devices; dev; dev = dev->next) + { + if(dev->devnum == devNum){ + return usb_open(dev); + } + } + } + return NULL; +} \ No newline at end of file diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h new file mode 100644 index 0000000000..2bb7f47a59 --- /dev/null +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -0,0 +1,126 @@ +// Copyright (C) 2003 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#pragma once + +#include "WII_IPC_HLE.h" +#include "WII_IPC_HLE_Device.h" + +class CWII_IPC_HLE_Device_hid : public IWII_IPC_HLE_Device +{ +public: + CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName); + + virtual ~CWII_IPC_HLE_Device_hid(); + + virtual bool Open(u32 _CommandAddress, u32 _Mode); + virtual bool Close(u32 _CommandAddress, bool _bForce); + + virtual bool IOCtlV(u32 _CommandAddress); + virtual bool IOCtl(u32 _CommandAddress); +private: + + + std::map deviceList; + + enum + { + IOCTL_HID_GET_ATTACHED = 0x00, + IOCTL_HID_SET_SUSPEND = 0x01, + IOCTL_HID_CONTROL = 0x02, + IOCTL_HID_INTERRUPT_IN = 0x03, + IOCTL_HID_INTERRUPT_OUT = 0x04, + IOCTL_HID_GET_US_STRING = 0x05, + IOCTL_HID_OPEN = 0x06, + IOCTL_HID_SHUTDOWN = 0x07, + IOCTL_HID_CANCEL_INTERRUPT = 0x08, + }; + + /* Device descriptor */ + typedef struct + { + u8 bLength; + u8 bDescriptorType; + u16 bcdUSB; + u8 bDeviceClass; + u8 bDeviceSubClass; + u8 bDeviceProtocol; + u8 bMaxPacketSize0; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 iManufacturer; + u8 iProduct; + u8 iSerialNumber; + u8 bNumConfigurations; + u8 pad[2]; + } WiiHIDDeviceDescriptor; + + typedef struct + { + u8 bLength; + u8 bDescriptorType; + u16 wTotalLength; + u8 bNumInterfaces; + u8 bConfigurationValue; + u8 iConfiguration; + u8 bmAttributes; + u8 MaxPower; + u8 pad[3]; + } WiiHIDConfigDescriptor; + + typedef struct + { + u8 bLength; + u8 bDescriptorType; + u8 bInterfaceNumber; + u8 bAlternateSetting; + u8 bNumEndpoints; + u8 bInterfaceClass; + u8 bInterfaceSubClass; + u8 bInterfaceProtocol; + u8 iInterface; + u8 pad[3]; + } WiiHIDInterfaceDescriptor; + + typedef struct + { + u8 bLength; + u8 bDescriptorType; + u8 bEndpointAddress; + u8 bmAttributes; + u16 wMaxPacketSize; + u8 bInterval; + u8 bRefresh; + u8 bSynchAddress; + u8 pad[1]; + } WiiHIDEndpointDescriptor; + + + void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize); + + void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, struct usb_device_descriptor *src); + void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, struct usb_config_descriptor *src); + void ConvertInterfaceToWii(WiiHIDInterfaceDescriptor *dest, struct usb_interface_descriptor *src); + void ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, struct usb_endpoint_descriptor *src); + + int Align(int num, int alignment); + + struct usb_dev_handle * GetDeviceByDevNum(u32 devNum); + + +}; diff --git a/Source/VSProps/Dolphin.Win32.props b/Source/VSProps/Dolphin.Win32.props index 5adc4159e0..a78f75c4ac 100644 --- a/Source/VSProps/Dolphin.Win32.props +++ b/Source/VSProps/Dolphin.Win32.props @@ -7,8 +7,8 @@ - ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew32s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;%(AdditionalDependencies) + ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) + portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew32s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;hidapi.lib;%(AdditionalDependencies) diff --git a/Source/VSProps/Dolphin.x64.props b/Source/VSProps/Dolphin.x64.props index 557e6350e7..c9cc2eb7ff 100644 --- a/Source/VSProps/Dolphin.x64.props +++ b/Source/VSProps/Dolphin.x64.props @@ -8,8 +8,8 @@ - ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg64;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;%(AdditionalDependencies) + ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg64;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) + portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;hidapi.lib;%(AdditionalDependencies) From db6e981728f65ab1df047a87a1c16f7fcdb82f94 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 3 Apr 2012 19:26:12 +1200 Subject: [PATCH 02/27] Added hidapi start. x64 doesn't work... not sure why. --- Externals/libusb/win32/hidapi.h | 384 ---------------- Externals/libusb/win32/lusb0_usb.h | 427 ------------------ Externals/libusb/x64/hidapi.dll | Bin 37888 -> 0 bytes Externals/libusb/x64/hidapi.h | 384 ---------------- Externals/libusb/x64/lusb0_usb.h | 427 ------------------ .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 143 ++++-- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 5 +- 7 files changed, 121 insertions(+), 1649 deletions(-) delete mode 100644 Externals/libusb/win32/hidapi.h delete mode 100644 Externals/libusb/win32/lusb0_usb.h delete mode 100644 Externals/libusb/x64/hidapi.dll delete mode 100644 Externals/libusb/x64/hidapi.h delete mode 100644 Externals/libusb/x64/lusb0_usb.h diff --git a/Externals/libusb/win32/hidapi.h b/Externals/libusb/win32/hidapi.h deleted file mode 100644 index bd912acd7f..0000000000 --- a/Externals/libusb/win32/hidapi.h +++ /dev/null @@ -1,384 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 8/22/2009 - - Copyright 2009, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -/** @file - * @defgroup API hidapi API - */ - -#ifndef HIDAPI_H__ -#define HIDAPI_H__ - -#include - -#ifdef _WIN32 - #define HID_API_EXPORT __declspec(dllexport) - #define HID_API_CALL -#else - #define HID_API_EXPORT /**< API export macro */ - #define HID_API_CALL /**< API call macro */ -#endif - -#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ - -#ifdef __cplusplus -extern "C" { -#endif - struct hid_device_; - typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ - - /** hidapi info structure */ - struct hid_device_info { - /** Platform-specific device path */ - char *path; - /** Device Vendor ID */ - unsigned short vendor_id; - /** Device Product ID */ - unsigned short product_id; - /** Serial Number */ - wchar_t *serial_number; - /** Device Release Number in binary-coded decimal, - also known as Device Version Number */ - unsigned short release_number; - /** Manufacturer String */ - wchar_t *manufacturer_string; - /** Product string */ - wchar_t *product_string; - /** Usage Page for this Device/Interface - (Windows/Mac only). */ - unsigned short usage_page; - /** Usage for this Device/Interface - (Windows/Mac only).*/ - unsigned short usage; - /** The USB interface which this logical device - represents. Valid on both Linux implementations - in all cases, and valid on the Windows implementation - only if the device contains more than one interface. */ - int interface_number; - - /** Pointer to the next device */ - struct hid_device_info *next; - }; - - - /** @brief Initialize the HIDAPI library. - - This function initializes the HIDAPI library. Calling it is not - strictly necessary, as it will be called automatically by - hid_enumerate() and any of the hid_open_*() functions if it is - needed. This function should be called at the beginning of - execution however, if there is a chance of HIDAPI handles - being opened by different threads simultaneously. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_init(void); - - /** @brief Finalize the HIDAPI library. - - This function frees all of the static data associated with - HIDAPI. It should be called at the end of execution to avoid - memory leaks. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_exit(void); - - /** @brief Enumerate the HID Devices. - - This function returns a linked list of all the HID devices - attached to the system which match vendor_id and product_id. - If @p vendor_id and @p product_id are both set to 0, then - all HID devices will be returned. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the types of device - to open. - @param product_id The Product ID (PID) of the types of - device to open. - - @returns - This function returns a pointer to a linked list of type - struct #hid_device, containing information about the HID devices - attached to the system, or NULL in the case of failure. Free - this linked list by calling hid_free_enumeration(). - */ - struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); - - /** @brief Free an enumeration Linked List - - This function frees a linked list created by hid_enumerate(). - - @ingroup API - @param devs Pointer to a list of struct_device returned from - hid_enumerate(). - */ - void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); - - /** @brief Open a HID device using a Vendor ID (VID), Product ID - (PID) and optionally a serial number. - - If @p serial_number is NULL, the first device with the - specified VID and PID is opened. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the device to open. - @param product_id The Product ID (PID) of the device to open. - @param serial_number The Serial Number of the device to open - (Optionally NULL). - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, wchar_t *serial_number); - - /** @brief Open a HID device by its path name. - - The path name be determined by calling hid_enumerate(), or a - platform-specific path name can be used (eg: /dev/hidraw0 on - Linux). - - @ingroup API - @param path The path name of the device to open - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); - - /** @brief Write an Output report to a HID device. - - The first byte of @p data[] must contain the Report ID. For - devices which only support a single report, this must be set - to 0x0. The remaining bytes contain the report data. Since - the Report ID is mandatory, calls to hid_write() will always - contain one more byte than the report contains. For example, - if a hid report is 16 bytes long, 17 bytes must be passed to - hid_write(), the Report ID (or 0x0, for devices with a - single report), followed by the report data (16 bytes). In - this example, the length passed in would be 17. - - hid_write() will send the data on the first OUT endpoint, if - one exists. If it does not, it will send the data through - the Control Endpoint (Endpoint 0). - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); - - int HID_API_EXPORT HID_API_CALL hid_set_output_report(hid_device *dev, const unsigned char *data, size_t length); - /** @brief Read an Input report from a HID device with timeout. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - @param milliseconds timeout in milliseconds or -1 for blocking wait. - - @returns - This function returns the actual number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); - - /** @brief Read an Input report from a HID device. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - - @returns - This function returns the actual number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); - - /** @brief Set the device handle to be non-blocking. - - In non-blocking mode calls to hid_read() will return - immediately with a value of 0 if there is no data to be - read. In blocking mode, hid_read() will wait (block) until - there is data to read before returning. - - Nonblocking can be turned on and off at any time. - - @ingroup API - @param device A device handle returned from hid_open(). - @param nonblock enable or not the nonblocking reads - - 1 to enable nonblocking - - 0 to disable nonblocking. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); - - /** @brief Send a Feature report to the device. - - Feature reports are sent over the Control endpoint as a - Set_Report transfer. The first byte of @p data[] must - contain the Report ID. For devices which only support a - single report, this must be set to 0x0. The remaining bytes - contain the report data. Since the Report ID is mandatory, - calls to hid_send_feature_report() will always contain one - more byte than the report contains. For example, if a hid - report is 16 bytes long, 17 bytes must be passed to - hid_send_feature_report(): the Report ID (or 0x0, for - devices which do not use numbered reports), followed by the - report data (16 bytes). In this example, the length passed - in would be 17. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send, including - the report number. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); - - /** @brief Get a feature report from a HID device. - - Make sure to set the first byte of @p data[] to the Report - ID of the report to be read. Make sure to allow space for - this extra byte in @p data[]. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into, including - the Report ID. Set the first byte of @p data[] to the - Report ID of the report to be read. - @param length The number of bytes to read, including an - extra byte for the report ID. The buffer can be longer - than the actual report. - - @returns - This function returns the number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); - - /** @brief Close a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - */ - void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); - - /** @brief Get The Manufacturer String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Product String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Serial Number String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get a string from a HID device, based on its string index. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string_index The index of the string to get. - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); - - /** @brief Get a string describing the last error which occurred. - - @ingroup API - @param device A device handle returned from hid_open(). - - @returns - This function returns a string containing the last error - which occurred or NULL if none has occurred. - */ - HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/Externals/libusb/win32/lusb0_usb.h b/Externals/libusb/win32/lusb0_usb.h deleted file mode 100644 index b95fbf0a6d..0000000000 --- a/Externals/libusb/win32/lusb0_usb.h +++ /dev/null @@ -1,427 +0,0 @@ -#ifndef __USB_H__ -#define __USB_H__ - -#include -#include - -/* - * 'interface' is defined somewhere in the Windows header files. This macro - * is deleted here to avoid conflicts and compile errors. - */ - -#ifdef interface -#undef interface -#endif - -/* - * PATH_MAX from limits.h can't be used on Windows if the dll and - * import libraries are build/used by different compilers - */ - -#define LIBUSB_PATH_MAX 512 - - -/* - * USB spec information - * - * This is all stuff grabbed from various USB specs and is pretty much - * not subject to change - */ - -/* - * Device and/or Interface Class codes - */ -#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ -#define USB_CLASS_AUDIO 1 -#define USB_CLASS_COMM 2 -#define USB_CLASS_HID 3 -#define USB_CLASS_PRINTER 7 -#define USB_CLASS_MASS_STORAGE 8 -#define USB_CLASS_HUB 9 -#define USB_CLASS_DATA 10 -#define USB_CLASS_VENDOR_SPEC 0xff - -/* - * Descriptor types - */ -#define USB_DT_DEVICE 0x01 -#define USB_DT_CONFIG 0x02 -#define USB_DT_STRING 0x03 -#define USB_DT_INTERFACE 0x04 -#define USB_DT_ENDPOINT 0x05 - -#define USB_DT_HID 0x21 -#define USB_DT_REPORT 0x22 -#define USB_DT_PHYSICAL 0x23 -#define USB_DT_HUB 0x29 - -/* - * Descriptor sizes per descriptor type - */ -#define USB_DT_DEVICE_SIZE 18 -#define USB_DT_CONFIG_SIZE 9 -#define USB_DT_INTERFACE_SIZE 9 -#define USB_DT_ENDPOINT_SIZE 7 -#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ -#define USB_DT_HUB_NONVAR_SIZE 7 - - -/* ensure byte-packed structures */ -#include - - -/* All standard descriptors have these 2 fields in common */ -struct usb_descriptor_header -{ - unsigned char bLength; - unsigned char bDescriptorType; -}; - -/* String descriptor */ -struct usb_string_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short wData[1]; -}; - -/* HID descriptor */ -struct usb_hid_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short bcdHID; - unsigned char bCountryCode; - unsigned char bNumDescriptors; -}; - -/* Endpoint descriptor */ -#define USB_MAXENDPOINTS 32 -struct usb_endpoint_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned char bEndpointAddress; - unsigned char bmAttributes; - unsigned short wMaxPacketSize; - unsigned char bInterval; - unsigned char bRefresh; - unsigned char bSynchAddress; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ -#define USB_ENDPOINT_DIR_MASK 0x80 - -#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */ -#define USB_ENDPOINT_TYPE_CONTROL 0 -#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1 -#define USB_ENDPOINT_TYPE_BULK 2 -#define USB_ENDPOINT_TYPE_INTERRUPT 3 - -/* Interface descriptor */ -#define USB_MAXINTERFACES 32 -struct usb_interface_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned char bInterfaceNumber; - unsigned char bAlternateSetting; - unsigned char bNumEndpoints; - unsigned char bInterfaceClass; - unsigned char bInterfaceSubClass; - unsigned char bInterfaceProtocol; - unsigned char iInterface; - - struct usb_endpoint_descriptor *endpoint; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -#define USB_MAXALTSETTING 128 /* Hard limit */ - -struct usb_interface -{ - struct usb_interface_descriptor *altsetting; - - int num_altsetting; -}; - -/* Configuration descriptor information.. */ -#define USB_MAXCONFIG 8 -struct usb_config_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short wTotalLength; - unsigned char bNumInterfaces; - unsigned char bConfigurationValue; - unsigned char iConfiguration; - unsigned char bmAttributes; - unsigned char MaxPower; - - struct usb_interface *interface; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -/* Device descriptor */ -struct usb_device_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short bcdUSB; - unsigned char bDeviceClass; - unsigned char bDeviceSubClass; - unsigned char bDeviceProtocol; - unsigned char bMaxPacketSize0; - unsigned short idVendor; - unsigned short idProduct; - unsigned short bcdDevice; - unsigned char iManufacturer; - unsigned char iProduct; - unsigned char iSerialNumber; - unsigned char bNumConfigurations; -}; - -struct usb_ctrl_setup -{ - unsigned char bRequestType; - unsigned char bRequest; - unsigned short wValue; - unsigned short wIndex; - unsigned short wLength; -}; - -/* - * Standard requests - */ -#define USB_REQ_GET_STATUS 0x00 -#define USB_REQ_CLEAR_FEATURE 0x01 -/* 0x02 is reserved */ -#define USB_REQ_SET_FEATURE 0x03 -/* 0x04 is reserved */ -#define USB_REQ_SET_ADDRESS 0x05 -#define USB_REQ_GET_DESCRIPTOR 0x06 -#define USB_REQ_SET_DESCRIPTOR 0x07 -#define USB_REQ_GET_CONFIGURATION 0x08 -#define USB_REQ_SET_CONFIGURATION 0x09 -#define USB_REQ_GET_INTERFACE 0x0A -#define USB_REQ_SET_INTERFACE 0x0B -#define USB_REQ_SYNCH_FRAME 0x0C - -#define USB_TYPE_STANDARD (0x00 << 5) -#define USB_TYPE_CLASS (0x01 << 5) -#define USB_TYPE_VENDOR (0x02 << 5) -#define USB_TYPE_RESERVED (0x03 << 5) - -#define USB_RECIP_DEVICE 0x00 -#define USB_RECIP_INTERFACE 0x01 -#define USB_RECIP_ENDPOINT 0x02 -#define USB_RECIP_OTHER 0x03 - -/* - * Various libusb API related stuff - */ - -#define USB_ENDPOINT_IN 0x80 -#define USB_ENDPOINT_OUT 0x00 - -/* Error codes */ -#define USB_ERROR_BEGIN 500000 - -/* - * This is supposed to look weird. This file is generated from autoconf - * and I didn't want to make this too complicated. - */ -#define USB_LE16_TO_CPU(x) - -/* - * Device reset types for usb_reset_ex. - * http://msdn.microsoft.com/en-us/library/ff537269%28VS.85%29.aspx - * http://msdn.microsoft.com/en-us/library/ff537243%28v=vs.85%29.aspx - */ -#define USB_RESET_TYPE_RESET_PORT (1 << 0) -#define USB_RESET_TYPE_CYCLE_PORT (1 << 1) -#define USB_RESET_TYPE_FULL_RESET (USB_RESET_TYPE_CYCLE_PORT | USB_RESET_TYPE_RESET_PORT) - - -/* Data types */ -/* struct usb_device; */ -/* struct usb_bus; */ - -struct usb_device -{ - struct usb_device *next, *prev; - - char filename[LIBUSB_PATH_MAX]; - - struct usb_bus *bus; - - struct usb_device_descriptor descriptor; - struct usb_config_descriptor *config; - - void *dev; /* Darwin support */ - - unsigned char devnum; - - unsigned char num_children; - struct usb_device **children; -}; - -struct usb_bus -{ - struct usb_bus *next, *prev; - - char dirname[LIBUSB_PATH_MAX]; - - struct usb_device *devices; - unsigned long location; - - struct usb_device *root_dev; -}; - -/* Version information, Windows specific */ -struct usb_version -{ - struct - { - int major; - int minor; - int micro; - int nano; - } dll; - struct - { - int major; - int minor; - int micro; - int nano; - } driver; -}; - - -struct usb_dev_handle; -typedef struct usb_dev_handle usb_dev_handle; - -/* Variables */ -#ifndef __USB_C__ -#define usb_busses usb_get_busses() -#endif - - - -#include - - -#ifdef __cplusplus -extern "C" -{ -#endif - - /* Function prototypes */ - - /* usb.c */ - usb_dev_handle *usb_open(struct usb_device *dev); - int usb_close(usb_dev_handle *dev); - int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf, - size_t buflen); - int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, - size_t buflen); - - /* descriptors.c */ - int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep, - unsigned char type, unsigned char index, - void *buf, int size); - int usb_get_descriptor(usb_dev_handle *udev, unsigned char type, - unsigned char index, void *buf, int size); - - /* .c */ - int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, - int value, int index, char *bytes, int size, - int timeout); - int usb_set_configuration(usb_dev_handle *dev, int configuration); - int usb_claim_interface(usb_dev_handle *dev, int interface); - int usb_release_interface(usb_dev_handle *dev, int interface); - int usb_set_altinterface(usb_dev_handle *dev, int alternate); - int usb_resetep(usb_dev_handle *dev, unsigned int ep); - int usb_clear_halt(usb_dev_handle *dev, unsigned int ep); - int usb_reset(usb_dev_handle *dev); - int usb_reset_ex(usb_dev_handle *dev, unsigned int reset_type); - - char *usb_strerror(void); - - void usb_init(void); - void usb_set_debug(int level); - int usb_find_busses(void); - int usb_find_devices(void); - struct usb_device *usb_device(usb_dev_handle *dev); - struct usb_bus *usb_get_busses(void); - - - /* Windows specific functions */ - -#define LIBUSB_HAS_INSTALL_SERVICE_NP 1 - int usb_install_service_np(void); - void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1 - int usb_uninstall_service_np(void); - void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_INSTALL_DRIVER_NP 1 - int usb_install_driver_np(const char *inf_file); - void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1 - int usb_touch_inf_file_np(const char *inf_file); - void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1 - int usb_install_needs_restart_np(void); - -#define LIBUSB_HAS_INSTALL_NP 1 - int usb_install_npW(HWND hwnd, HINSTANCE instance, LPCWSTR cmd_line, int starg_arg); - int usb_install_npA(HWND hwnd, HINSTANCE instance, LPCSTR cmd_line, int starg_arg); - #define usb_install_np usb_install_npA - void CALLBACK usb_install_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - - const struct usb_version *usb_get_version(void); - - int usb_isochronous_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep, int pktsize); - int usb_bulk_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep); - int usb_interrupt_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep); - - int usb_submit_async(void *context, char *bytes, int size); - int usb_reap_async(void *context, int timeout); - int usb_reap_async_nocancel(void *context, int timeout); - int usb_cancel_async(void *context); - int usb_free_async(void **context); - - -#ifdef __cplusplus -} -#endif - -#endif /* __USB_H__ */ - diff --git a/Externals/libusb/x64/hidapi.dll b/Externals/libusb/x64/hidapi.dll deleted file mode 100644 index 1461560e500765127d643e677dee6cd415a2c708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37888 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 diff --git a/Externals/libusb/x64/hidapi.h b/Externals/libusb/x64/hidapi.h deleted file mode 100644 index bd912acd7f..0000000000 --- a/Externals/libusb/x64/hidapi.h +++ /dev/null @@ -1,384 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 8/22/2009 - - Copyright 2009, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -/** @file - * @defgroup API hidapi API - */ - -#ifndef HIDAPI_H__ -#define HIDAPI_H__ - -#include - -#ifdef _WIN32 - #define HID_API_EXPORT __declspec(dllexport) - #define HID_API_CALL -#else - #define HID_API_EXPORT /**< API export macro */ - #define HID_API_CALL /**< API call macro */ -#endif - -#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ - -#ifdef __cplusplus -extern "C" { -#endif - struct hid_device_; - typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ - - /** hidapi info structure */ - struct hid_device_info { - /** Platform-specific device path */ - char *path; - /** Device Vendor ID */ - unsigned short vendor_id; - /** Device Product ID */ - unsigned short product_id; - /** Serial Number */ - wchar_t *serial_number; - /** Device Release Number in binary-coded decimal, - also known as Device Version Number */ - unsigned short release_number; - /** Manufacturer String */ - wchar_t *manufacturer_string; - /** Product string */ - wchar_t *product_string; - /** Usage Page for this Device/Interface - (Windows/Mac only). */ - unsigned short usage_page; - /** Usage for this Device/Interface - (Windows/Mac only).*/ - unsigned short usage; - /** The USB interface which this logical device - represents. Valid on both Linux implementations - in all cases, and valid on the Windows implementation - only if the device contains more than one interface. */ - int interface_number; - - /** Pointer to the next device */ - struct hid_device_info *next; - }; - - - /** @brief Initialize the HIDAPI library. - - This function initializes the HIDAPI library. Calling it is not - strictly necessary, as it will be called automatically by - hid_enumerate() and any of the hid_open_*() functions if it is - needed. This function should be called at the beginning of - execution however, if there is a chance of HIDAPI handles - being opened by different threads simultaneously. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_init(void); - - /** @brief Finalize the HIDAPI library. - - This function frees all of the static data associated with - HIDAPI. It should be called at the end of execution to avoid - memory leaks. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_exit(void); - - /** @brief Enumerate the HID Devices. - - This function returns a linked list of all the HID devices - attached to the system which match vendor_id and product_id. - If @p vendor_id and @p product_id are both set to 0, then - all HID devices will be returned. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the types of device - to open. - @param product_id The Product ID (PID) of the types of - device to open. - - @returns - This function returns a pointer to a linked list of type - struct #hid_device, containing information about the HID devices - attached to the system, or NULL in the case of failure. Free - this linked list by calling hid_free_enumeration(). - */ - struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); - - /** @brief Free an enumeration Linked List - - This function frees a linked list created by hid_enumerate(). - - @ingroup API - @param devs Pointer to a list of struct_device returned from - hid_enumerate(). - */ - void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); - - /** @brief Open a HID device using a Vendor ID (VID), Product ID - (PID) and optionally a serial number. - - If @p serial_number is NULL, the first device with the - specified VID and PID is opened. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the device to open. - @param product_id The Product ID (PID) of the device to open. - @param serial_number The Serial Number of the device to open - (Optionally NULL). - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, wchar_t *serial_number); - - /** @brief Open a HID device by its path name. - - The path name be determined by calling hid_enumerate(), or a - platform-specific path name can be used (eg: /dev/hidraw0 on - Linux). - - @ingroup API - @param path The path name of the device to open - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); - - /** @brief Write an Output report to a HID device. - - The first byte of @p data[] must contain the Report ID. For - devices which only support a single report, this must be set - to 0x0. The remaining bytes contain the report data. Since - the Report ID is mandatory, calls to hid_write() will always - contain one more byte than the report contains. For example, - if a hid report is 16 bytes long, 17 bytes must be passed to - hid_write(), the Report ID (or 0x0, for devices with a - single report), followed by the report data (16 bytes). In - this example, the length passed in would be 17. - - hid_write() will send the data on the first OUT endpoint, if - one exists. If it does not, it will send the data through - the Control Endpoint (Endpoint 0). - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); - - int HID_API_EXPORT HID_API_CALL hid_set_output_report(hid_device *dev, const unsigned char *data, size_t length); - /** @brief Read an Input report from a HID device with timeout. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - @param milliseconds timeout in milliseconds or -1 for blocking wait. - - @returns - This function returns the actual number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); - - /** @brief Read an Input report from a HID device. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - - @returns - This function returns the actual number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); - - /** @brief Set the device handle to be non-blocking. - - In non-blocking mode calls to hid_read() will return - immediately with a value of 0 if there is no data to be - read. In blocking mode, hid_read() will wait (block) until - there is data to read before returning. - - Nonblocking can be turned on and off at any time. - - @ingroup API - @param device A device handle returned from hid_open(). - @param nonblock enable or not the nonblocking reads - - 1 to enable nonblocking - - 0 to disable nonblocking. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); - - /** @brief Send a Feature report to the device. - - Feature reports are sent over the Control endpoint as a - Set_Report transfer. The first byte of @p data[] must - contain the Report ID. For devices which only support a - single report, this must be set to 0x0. The remaining bytes - contain the report data. Since the Report ID is mandatory, - calls to hid_send_feature_report() will always contain one - more byte than the report contains. For example, if a hid - report is 16 bytes long, 17 bytes must be passed to - hid_send_feature_report(): the Report ID (or 0x0, for - devices which do not use numbered reports), followed by the - report data (16 bytes). In this example, the length passed - in would be 17. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send, including - the report number. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); - - /** @brief Get a feature report from a HID device. - - Make sure to set the first byte of @p data[] to the Report - ID of the report to be read. Make sure to allow space for - this extra byte in @p data[]. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into, including - the Report ID. Set the first byte of @p data[] to the - Report ID of the report to be read. - @param length The number of bytes to read, including an - extra byte for the report ID. The buffer can be longer - than the actual report. - - @returns - This function returns the number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); - - /** @brief Close a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - */ - void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); - - /** @brief Get The Manufacturer String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Product String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Serial Number String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get a string from a HID device, based on its string index. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string_index The index of the string to get. - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); - - /** @brief Get a string describing the last error which occurred. - - @ingroup API - @param device A device handle returned from hid_open(). - - @returns - This function returns a string containing the last error - which occurred or NULL if none has occurred. - */ - HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/Externals/libusb/x64/lusb0_usb.h b/Externals/libusb/x64/lusb0_usb.h deleted file mode 100644 index b95fbf0a6d..0000000000 --- a/Externals/libusb/x64/lusb0_usb.h +++ /dev/null @@ -1,427 +0,0 @@ -#ifndef __USB_H__ -#define __USB_H__ - -#include -#include - -/* - * 'interface' is defined somewhere in the Windows header files. This macro - * is deleted here to avoid conflicts and compile errors. - */ - -#ifdef interface -#undef interface -#endif - -/* - * PATH_MAX from limits.h can't be used on Windows if the dll and - * import libraries are build/used by different compilers - */ - -#define LIBUSB_PATH_MAX 512 - - -/* - * USB spec information - * - * This is all stuff grabbed from various USB specs and is pretty much - * not subject to change - */ - -/* - * Device and/or Interface Class codes - */ -#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ -#define USB_CLASS_AUDIO 1 -#define USB_CLASS_COMM 2 -#define USB_CLASS_HID 3 -#define USB_CLASS_PRINTER 7 -#define USB_CLASS_MASS_STORAGE 8 -#define USB_CLASS_HUB 9 -#define USB_CLASS_DATA 10 -#define USB_CLASS_VENDOR_SPEC 0xff - -/* - * Descriptor types - */ -#define USB_DT_DEVICE 0x01 -#define USB_DT_CONFIG 0x02 -#define USB_DT_STRING 0x03 -#define USB_DT_INTERFACE 0x04 -#define USB_DT_ENDPOINT 0x05 - -#define USB_DT_HID 0x21 -#define USB_DT_REPORT 0x22 -#define USB_DT_PHYSICAL 0x23 -#define USB_DT_HUB 0x29 - -/* - * Descriptor sizes per descriptor type - */ -#define USB_DT_DEVICE_SIZE 18 -#define USB_DT_CONFIG_SIZE 9 -#define USB_DT_INTERFACE_SIZE 9 -#define USB_DT_ENDPOINT_SIZE 7 -#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ -#define USB_DT_HUB_NONVAR_SIZE 7 - - -/* ensure byte-packed structures */ -#include - - -/* All standard descriptors have these 2 fields in common */ -struct usb_descriptor_header -{ - unsigned char bLength; - unsigned char bDescriptorType; -}; - -/* String descriptor */ -struct usb_string_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short wData[1]; -}; - -/* HID descriptor */ -struct usb_hid_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short bcdHID; - unsigned char bCountryCode; - unsigned char bNumDescriptors; -}; - -/* Endpoint descriptor */ -#define USB_MAXENDPOINTS 32 -struct usb_endpoint_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned char bEndpointAddress; - unsigned char bmAttributes; - unsigned short wMaxPacketSize; - unsigned char bInterval; - unsigned char bRefresh; - unsigned char bSynchAddress; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ -#define USB_ENDPOINT_DIR_MASK 0x80 - -#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */ -#define USB_ENDPOINT_TYPE_CONTROL 0 -#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1 -#define USB_ENDPOINT_TYPE_BULK 2 -#define USB_ENDPOINT_TYPE_INTERRUPT 3 - -/* Interface descriptor */ -#define USB_MAXINTERFACES 32 -struct usb_interface_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned char bInterfaceNumber; - unsigned char bAlternateSetting; - unsigned char bNumEndpoints; - unsigned char bInterfaceClass; - unsigned char bInterfaceSubClass; - unsigned char bInterfaceProtocol; - unsigned char iInterface; - - struct usb_endpoint_descriptor *endpoint; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -#define USB_MAXALTSETTING 128 /* Hard limit */ - -struct usb_interface -{ - struct usb_interface_descriptor *altsetting; - - int num_altsetting; -}; - -/* Configuration descriptor information.. */ -#define USB_MAXCONFIG 8 -struct usb_config_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short wTotalLength; - unsigned char bNumInterfaces; - unsigned char bConfigurationValue; - unsigned char iConfiguration; - unsigned char bmAttributes; - unsigned char MaxPower; - - struct usb_interface *interface; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -/* Device descriptor */ -struct usb_device_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short bcdUSB; - unsigned char bDeviceClass; - unsigned char bDeviceSubClass; - unsigned char bDeviceProtocol; - unsigned char bMaxPacketSize0; - unsigned short idVendor; - unsigned short idProduct; - unsigned short bcdDevice; - unsigned char iManufacturer; - unsigned char iProduct; - unsigned char iSerialNumber; - unsigned char bNumConfigurations; -}; - -struct usb_ctrl_setup -{ - unsigned char bRequestType; - unsigned char bRequest; - unsigned short wValue; - unsigned short wIndex; - unsigned short wLength; -}; - -/* - * Standard requests - */ -#define USB_REQ_GET_STATUS 0x00 -#define USB_REQ_CLEAR_FEATURE 0x01 -/* 0x02 is reserved */ -#define USB_REQ_SET_FEATURE 0x03 -/* 0x04 is reserved */ -#define USB_REQ_SET_ADDRESS 0x05 -#define USB_REQ_GET_DESCRIPTOR 0x06 -#define USB_REQ_SET_DESCRIPTOR 0x07 -#define USB_REQ_GET_CONFIGURATION 0x08 -#define USB_REQ_SET_CONFIGURATION 0x09 -#define USB_REQ_GET_INTERFACE 0x0A -#define USB_REQ_SET_INTERFACE 0x0B -#define USB_REQ_SYNCH_FRAME 0x0C - -#define USB_TYPE_STANDARD (0x00 << 5) -#define USB_TYPE_CLASS (0x01 << 5) -#define USB_TYPE_VENDOR (0x02 << 5) -#define USB_TYPE_RESERVED (0x03 << 5) - -#define USB_RECIP_DEVICE 0x00 -#define USB_RECIP_INTERFACE 0x01 -#define USB_RECIP_ENDPOINT 0x02 -#define USB_RECIP_OTHER 0x03 - -/* - * Various libusb API related stuff - */ - -#define USB_ENDPOINT_IN 0x80 -#define USB_ENDPOINT_OUT 0x00 - -/* Error codes */ -#define USB_ERROR_BEGIN 500000 - -/* - * This is supposed to look weird. This file is generated from autoconf - * and I didn't want to make this too complicated. - */ -#define USB_LE16_TO_CPU(x) - -/* - * Device reset types for usb_reset_ex. - * http://msdn.microsoft.com/en-us/library/ff537269%28VS.85%29.aspx - * http://msdn.microsoft.com/en-us/library/ff537243%28v=vs.85%29.aspx - */ -#define USB_RESET_TYPE_RESET_PORT (1 << 0) -#define USB_RESET_TYPE_CYCLE_PORT (1 << 1) -#define USB_RESET_TYPE_FULL_RESET (USB_RESET_TYPE_CYCLE_PORT | USB_RESET_TYPE_RESET_PORT) - - -/* Data types */ -/* struct usb_device; */ -/* struct usb_bus; */ - -struct usb_device -{ - struct usb_device *next, *prev; - - char filename[LIBUSB_PATH_MAX]; - - struct usb_bus *bus; - - struct usb_device_descriptor descriptor; - struct usb_config_descriptor *config; - - void *dev; /* Darwin support */ - - unsigned char devnum; - - unsigned char num_children; - struct usb_device **children; -}; - -struct usb_bus -{ - struct usb_bus *next, *prev; - - char dirname[LIBUSB_PATH_MAX]; - - struct usb_device *devices; - unsigned long location; - - struct usb_device *root_dev; -}; - -/* Version information, Windows specific */ -struct usb_version -{ - struct - { - int major; - int minor; - int micro; - int nano; - } dll; - struct - { - int major; - int minor; - int micro; - int nano; - } driver; -}; - - -struct usb_dev_handle; -typedef struct usb_dev_handle usb_dev_handle; - -/* Variables */ -#ifndef __USB_C__ -#define usb_busses usb_get_busses() -#endif - - - -#include - - -#ifdef __cplusplus -extern "C" -{ -#endif - - /* Function prototypes */ - - /* usb.c */ - usb_dev_handle *usb_open(struct usb_device *dev); - int usb_close(usb_dev_handle *dev); - int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf, - size_t buflen); - int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, - size_t buflen); - - /* descriptors.c */ - int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep, - unsigned char type, unsigned char index, - void *buf, int size); - int usb_get_descriptor(usb_dev_handle *udev, unsigned char type, - unsigned char index, void *buf, int size); - - /* .c */ - int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, - int value, int index, char *bytes, int size, - int timeout); - int usb_set_configuration(usb_dev_handle *dev, int configuration); - int usb_claim_interface(usb_dev_handle *dev, int interface); - int usb_release_interface(usb_dev_handle *dev, int interface); - int usb_set_altinterface(usb_dev_handle *dev, int alternate); - int usb_resetep(usb_dev_handle *dev, unsigned int ep); - int usb_clear_halt(usb_dev_handle *dev, unsigned int ep); - int usb_reset(usb_dev_handle *dev); - int usb_reset_ex(usb_dev_handle *dev, unsigned int reset_type); - - char *usb_strerror(void); - - void usb_init(void); - void usb_set_debug(int level); - int usb_find_busses(void); - int usb_find_devices(void); - struct usb_device *usb_device(usb_dev_handle *dev); - struct usb_bus *usb_get_busses(void); - - - /* Windows specific functions */ - -#define LIBUSB_HAS_INSTALL_SERVICE_NP 1 - int usb_install_service_np(void); - void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1 - int usb_uninstall_service_np(void); - void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_INSTALL_DRIVER_NP 1 - int usb_install_driver_np(const char *inf_file); - void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1 - int usb_touch_inf_file_np(const char *inf_file); - void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1 - int usb_install_needs_restart_np(void); - -#define LIBUSB_HAS_INSTALL_NP 1 - int usb_install_npW(HWND hwnd, HINSTANCE instance, LPCWSTR cmd_line, int starg_arg); - int usb_install_npA(HWND hwnd, HINSTANCE instance, LPCSTR cmd_line, int starg_arg); - #define usb_install_np usb_install_npA - void CALLBACK usb_install_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - - const struct usb_version *usb_get_version(void); - - int usb_isochronous_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep, int pktsize); - int usb_bulk_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep); - int usb_interrupt_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep); - - int usb_submit_async(void *context, char *bytes, int size); - int usb_reap_async(void *context, int timeout); - int usb_reap_async_nocancel(void *context, int timeout); - int usb_cancel_async(void *context); - int usb_free_async(void **context); - - -#ifdef __cplusplus -} -#endif - -#endif /* __USB_H__ */ - diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 0103a534c3..2e1e3c1823 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -248,24 +248,16 @@ bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) u32 ReturnValue = 0; SIOCtlVBuffer CommandBuffer(_CommandAddress); - switch (CommandBuffer.Parameter) - { - - default: - { - DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); - DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); - DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); - DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); - DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); - DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); - DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); - #if defined(_DEBUG) || defined(DEBUGFAST) - DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); - #endif - } - break; - } + DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); + DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); + DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); + DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); + DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); + DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); + DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); + #if defined(_DEBUG) || defined(DEBUGFAST) + DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); + #endif Memory::Write_U32(ReturnValue, _CommandAddress + 4); return true; @@ -298,31 +290,130 @@ void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *des memcpy(dest,src,sizeof(WiiHIDEndpointDescriptor)); dest->wMaxPacketSize = Common::swap16(dest->wMaxPacketSize); } -/* + +u32 CWII_IPC_HLE_Device_hid::GetAvailableID(char* path) +{ + return 0; +} + // hidapi version -void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) +void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutSize) { // Enumerate and print the HID devices on the system struct hid_device_info *devs, *cur_dev; + int OffsetBuffer = BufferOut; + int OffsetStart = 0; + int c,ic,i,e; // config, interface container, interface, endpoint + devs = hid_enumerate(0x0, 0x0); cur_dev = devs; while (cur_dev) { - printf("Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", + + OffsetStart = OffsetBuffer; + OffsetBuffer += 4; // skip length for now, fill at end + + Memory::Write_U32(GetAvailableID(cur_dev->path), OffsetBuffer); //write device num + OffsetBuffer += 4; + + WiiHIDDeviceDescriptor wii_device; + /* + u8 bDescriptorType; + u16 bcdUSB; + u8 bDeviceClass; + u8 bDeviceSubClass; + u8 bDeviceProtocol; + u8 bMaxPacketSize0; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 iManufacturer; + u8 iProduct; + u8 iSerialNumber; + u8 bNumConfigurations; + u8 pad[2]; + + */ + + wii_device.bLength = Common::swap8(0x12); + wii_device.bcdUSB = Common::swap16(0x0002); + wii_device.bDeviceClass = Common::swap8(0); + wii_device.bDeviceSubClass = Common::swap8(0); + wii_device.bDeviceProtocol = Common::swap8(0); + wii_device.bMaxPacketSize0 = Common::swap8(0x20); + wii_device.idVendor = Common::swap16(cur_dev->vendor_id); + wii_device.idProduct = Common::swap16(cur_dev->product_id); + wii_device.bcdDevice = Common::swap16(0x100); + wii_device.iManufacturer = Common::swap8(0x1); + wii_device.iProduct = Common::swap8(0x2); + wii_device.iSerialNumber = Common::swap8(0); + wii_device.bNumConfigurations = Common::swap8(0x1); + + Memory::WriteBigEData((const u8*)&wii_device, OffsetBuffer, Align(wii_device.bLength, 4)); + + OffsetBuffer += Align(wii_device.bLength, 4); + + + for (c = 0; c < Common::swap8(wii_device.bNumConfigurations); c++) + { + + WiiHIDConfigDescriptor wii_config; + wii_config.bLength = Common::swap8(0x9); + wii_config.bDescriptorType = Common::swap8(0x2); + wii_config.wTotalLength = Common::swap16(0x29); + wii_config.bNumInterfaces = Common::swap8(0x1); + wii_config.bConfigurationValue = Common::swap8(0x1); + wii_config.iConfiguration = Common::swap8(0); + wii_config.bmAttributes = Common::swap8(0x80); + wii_config.MaxPower = Common::swap8(0x96); + + Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(wii_config.bLength, 4)); + OffsetBuffer += Align(wii_config.bLength, 4); + + for (ic = 0; ic < wii_config.bNumInterfaces; ic++) + { +/* struct usb_interface *interfaceContainer = &config->interface[ic]; + for (i = 0; i < interfaceContainer->num_altsetting; i++) + { + struct usb_interface_descriptor *interface = &interfaceContainer->altsetting[i]; + + WiiHIDInterfaceDescriptor wii_interface; + ConvertInterfaceToWii(&wii_interface, interface); + Memory::WriteBigEData((const u8*)&wii_interface, OffsetBuffer, Align(wii_interface.bLength, 4)); + OffsetBuffer += Align(wii_interface.bLength, 4); + + for (e = 0; e < interface->bNumEndpoints; e++) + { + struct usb_endpoint_descriptor *endpoint = &interface->endpoint[e]; + + WiiHIDEndpointDescriptor wii_endpoint; + ConvertEndpointToWii(&wii_endpoint, endpoint); + Memory::WriteBigEData((const u8*)&wii_endpoint, OffsetBuffer, Align(wii_endpoint.bLength, 4)); + OffsetBuffer += Align(wii_endpoint.bLength, 4); + + } //endpoints + } // interfaces + */ + } // interface containters + } // configs + + + NOTICE_LOG(WII_IPC_HID, "Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number); - printf("\n"); - printf(" Manufacturer: %ls\n", cur_dev->manufacturer_string); - printf(" Product: %ls\n", cur_dev->product_string); - printf("\n"); + NOTICE_LOG(WII_IPC_HID, "\n"); + NOTICE_LOG(WII_IPC_HID, " Manufacturer: %ls\n", cur_dev->manufacturer_string); + NOTICE_LOG(WII_IPC_HID, " Product: %ls\n", cur_dev->product_string); + NOTICE_LOG(WII_IPC_HID, "\n"); cur_dev = cur_dev->next; } hid_free_enumeration(devs); } -*/ + // libusb version void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { + //FillOutDevicesHidApi(BufferOut, BufferOutSize); usb_find_busses(); // find all busses usb_find_devices(); // find all connected devices struct usb_bus *bus; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 2bb7f47a59..ef3b8912f1 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -111,7 +111,10 @@ private: } WiiHIDEndpointDescriptor; - void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize); + u32 GetAvailableID(char* path); + + void FillOutDevices(u32 BufferOut, u32 BufferOutSize); + void FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutSize); void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, struct usb_device_descriptor *src); void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, struct usb_config_descriptor *src); From e46779e3bd74e47c51b1a314935f9684ac7ec60f Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 3 Apr 2012 20:05:05 +1200 Subject: [PATCH 03/27] Add lib files. --- Externals/libusb/win32/hidapi.lib | Bin 0 -> 48456 bytes Externals/libusb/win32/libusb.lib | Bin 0 -> 11974 bytes Externals/libusb/x64/hidapi.lib | Bin 0 -> 51080 bytes Externals/libusb/x64/libusb.lib | Bin 0 -> 11674 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Externals/libusb/win32/hidapi.lib create mode 100644 Externals/libusb/win32/libusb.lib create mode 100644 Externals/libusb/x64/hidapi.lib create mode 100644 Externals/libusb/x64/libusb.lib diff --git a/Externals/libusb/win32/hidapi.lib b/Externals/libusb/win32/hidapi.lib new file mode 100644 index 0000000000000000000000000000000000000000..2b75c20b698a2e75eb88a99ea90fd78948170993 GIT binary patch literal 48456 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⋘9t8287kiR* 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 U$4o<1e>_K00d$i}OlI-_04glrKmY&$ literal 0 HcmV?d00001 diff --git a/Externals/libusb/win32/libusb.lib b/Externals/libusb/win32/libusb.lib new file mode 100644 index 0000000000000000000000000000000000000000..64ac6f79d01ea0085188a82b04a2e0f8fd94c1fc GIT binary patch literal 11974 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 Z_EeD%uXZ|@SrfHMP|LY6c21HZ{vQr5Um^ei literal 0 HcmV?d00001 diff --git a/Externals/libusb/x64/libusb.lib b/Externals/libusb/x64/libusb.lib new file mode 100644 index 0000000000000000000000000000000000000000..dfdaad05d14b3a56d6446ce3a79a4aa7b6f1e712 GIT binary patch literal 11674 zcmcIqO>7)R7Jm7I;Fw_YQ%j} zepT(s*K0w2=Pv`Vl;Xcjm&mARPmz$0H^_++5#B94{+v3fVl^f z#vTF?oxi8(H+&Kumvrtc0HV>~6_xObH2b}znV$iO#z!PA9R(md`&iQa69A&cFBPrg z6KU)%NedqW2*N%sAT9kOsq_;7(bA`q#<2~ei4P==e~xveb7e`>zXA}=V0%O>-$=S} z4uEL#HAUaz6KVN7Nh{bFqSB6}IV=;6;&>3vUYE4If%-`EgNpX>iF6k2h$bFMnwkS3 znnpdMsjnqXqwe&cXxAC^~=CwQ5(8AkoJ80~*+O7{#!SL(NR_F?WEE&mNx8sDJ!1M14F{|2ioDh+k zvL&Ocxp9kz8`cA_-Dw5R)+dhZH`*=F??fmW;;c3-cFgasZu9TXKLW2KyT+=fJ;4mz zT0=BtYDNRQ=LSKy-C<27c{c5+QKKwaMz`MbJ3*`I?1plfdEID*I2S0{_U?9rTE}b2 zsZ4W?MZH<`b{zq`U90OEj`NIm;5OY_=qB{jTw_7lwPq&{kYXDBz(t|k79*_7Mp{Ss zz}dkDg#xP@9bskc*&GXrLb>+;Mn$g(y z{Dy;zGjv1IIIkzP8t%tlovUev(UTm}kSZD(ttke?sz%52!%nT)bV4^EEXS9_ZDHrx zI6>EMG@GIuX;UpVEp+{~mN2#o^6hl%v{Bj2wcNC#u^WN+u^S{^HryNw-6(;kn$tpK z-)VL0JE*wrYv*wbXAbD>`Myl%9-uvOm)T7Ih=Vgz)$ZKoD~ z;@9OoX2^`S*!7ZTDW=gk8(PxHE-{v2cWc+f%_HhujA8U}qvS5Is!hl7TlJb>cV*lf zWy3dCQjzr_#xQ!@f$K6YRy8_0V0_nYgbwaRom$XIhG9x*v2VX0TX8I0xt9 zMOcJEn1{o#3@h+5oQ7dI2`Ats7=<&i1T!!TC7681tslZD*+<4`Ld%x!6Ik9nrIfKuRj6Q=Y?MePmS@LB@k2peCR10&(`hhc@prLd zr*ab3p_D8=cec!pwO|wLM(BlQcBH75%rV$5L^`qkM=-3XpTrp>I{31EhKyMn&i57) ziMo`lgg>4lu$_d|<6DJzbH`b+-9uYg58Zml&`Nr*pgKFh$OUfp2PsZ)`C#iUCABAT zOTV2=JCezYtx2}_d1HnhH;S!yX`orj=})e4p`DT9k}SIXFpF1AhN+shO#10nEV*49!g9k7J#Egr6tHSe{cV!LW4J_Q(74=+)p*L2& zMy*qup`=s%F!6+cBmGZS;SfI8;o=WUZ%wf=FT)?=X+5g0L+OWu_&kAG9sQ0mrxxJk z(DTUqkC4cI&ObVF%c}>iu(jPOEo?59Zr<2EypuRer$Rbt1d&eFaEM=`Kk7%V16)-#dK`pJ z{JXFG@u@{hxq693%0Uq+{}O$p9@-@eSC_S_%VRl9ez5)LV>SnAdnTD5FPDdB!P@7z#jr9WAFq@! zOORM95$7m}jQA;v2Vd{wxRw!#c!7v_fi}F@sjV+x^Y)OJ7`8eR_Jvi|DS2XC zr_j%#6qY`3a!6J#wjOfU-pdS8pJiG5d`gR9=`=Fo-D&jhgu)W%WDe5vZjv{KCnJ=^ zahvBKh4p@4Sb5PilESi0Vz1s+qyPMgXR^~6J);Rkb1xHfvgb9jmXWLAM;-jG5|3De z`Bc2kSS$4A7>khgr4nBLH2U+jnh~e?84AB4X-_p?Rtn$qoMwz~2~j6fsOdDmSG+a- z?_!Ca6+hVFcQEB;#^oEs;zM0*WoFDK?dazfuDICaAU#KG-W#~2P|P(UccS-9qndH9 z#Lt>AnZhzxlH5U7E;NdHd(KpZnf&h`hQeJggjmUlPdckiM~Ju@c+0$83?*Y{!_U9? z4cNZ|HaOf&IcE8L(_7RU6o>4|f-?jBM zb^P+0L$Y!qAMXHRFVf|K5TBts&#n_Bn&Q*!!wj%UBgFh`O4CYIFJj DaB1hA literal 0 HcmV?d00001 From 8ba2abc699e6a1fc4cb903bf9a16699f9901c61b Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 3 Apr 2012 20:36:50 +1200 Subject: [PATCH 04/27] Fixed x64 lib. --- Externals/libusb/x64/hidapi.lib | Bin 51080 -> 50962 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Externals/libusb/x64/hidapi.lib b/Externals/libusb/x64/hidapi.lib index f15eaed80ce9cad686f08280f398689ac32d4d4f..067d0166022037012e839cbe0c6bcab38621841c 100644 GIT binary patch delta 4841 zcma)=SO>5&<3MgddZL1>lrisCVzND%J}K?vdvhp$C%uFto=^{eXY>R(q6 zYs*~T+UT+=&=42bExMaRL3+RX_!};csy#^mflG|m6!NDdCOW!%_wFGfaXsUsh8nqsGu8v<`{ZMi4XHC3%gRtA%QG0;NvS58 zH&C(3!at(JC_kg;C~u2W_dJ6}xpm-X8tG=y$(i)R)Pcv+PB#l5s+Q^W01btibi@=Y zxnf3dQ6G1Uv@Mgd>y+g#OShryR1S6R4aRQMX?K}RbR97sS&a22qlYY|Lj_Wdhin)) zi?PwO=!|=)Ztg5~?kN~^5!^;Ph{)$q59lgXtJ#dTr^itJpc1LQr!38ZDxjfI6;QRp zGhBjdnyrrb%WN^CiD5OK!hJf2?s|qwDRUX~As;W~k@n^>wwS8XQniS& zn{>%rHavoQmai^;*kZ<_DZoeOqo|LMMVg5E&y?jOOKl2p&s6Rs8{S#MSj`f3_7|6^ z>oFYb@fqB~0pRC)wNgccfDNzYCfmZs-9<2zk z(q^nP4p-vFwo=3v#uU1WuE|ho^cZR-)COwrFH5yhAFAGUs2>m)Oq=}m9xdL+qTv(= zrzE4Fu^B1?jwhY-mknboaJyU8TsXTG_e(wjvhMCy>K@R6>u5?qk~CuIfP|5Dd%#WZ zCgc7S827;l6cQLoN7@hfFdF<4j0c;*{@_>OD0-OFRZ2!Jg_h+8Q$lV} zo(y$f7kP&U=2c1V*3v6?=x$!Sq`nBM!l`G8D63V44U+9v)hd*`RJ9(ZxU8OSM=2(v zXYZqYM^%@c-YpuxDBLJ^mX`4D(V9h9IHR%o{R#)5Zq+fHnAT7bJ1!drVk2WC!8Kqa zxDFf*;t8 zo2oVi{n-i;mO+c6;PNQnzSa$`FiEEMDL$JUNz=>yaH)cF1!Y}%3?D?_m!B-eS~wp4 zJSZzpJ==#e8=dv+0@OHF{RXAII&F2>!Bj5_Dppl^bgYM}a-g)h)lgz|J*$Nh4_wdA zLJd~Ee?lSIvS8kKnl3I_XEo3tN(&qYHAwA}2sJ=e^P&2yYBSU=wZ}dv?YUin8mhK7 zL-keF?=EDcFk=X|4Kd?K_QSN4^AL*IGOutrBKqNl$pJB{Z7Dbm6pw5qcnTZ~HiDDE zAHY=bA(#ce0B3O%ZxaOCMZD1SADenhF| zz1X_6?adoX%l0rRE!(4=t-YYMydMa4OC4ndl$MA{0!J$zv*RtpvNA+a>#YY=aw%^z$Bb_9dKE+7)l z76*0)k>D&66mK}*Tia-`D>w!W1*d>W%r>?Rh%gunzz*OFup?MP4|a@`N>Hnz>Yc&# z#?GF+#9qBKlK1KD6+BRU5WTFW(|S5~)BpS9NZz};Mc{kyShH%Us&Oj2Q#DZbu5k5t zgZPeKpvqkpyqRLE3i$=9uZo3ku1XQR2n9{-U{9;|jZY&%3XuHM_^^$L~*{ zN;h{;_ex8hJ$s&LR*w)$+>^+2Y1bZw7g5t5rAMWs#T~?uIO^0=E5w*cPPNnu&1s_k zdnX{tw(nJRj~RWwH_q&XMH7cNPHmu06!5NM?&0vouNbZKBua(9(BbRwcuO?dnI`O4!UtFNFey1YNoTgL2g`T@RUTB#$&Oap*_uw@9gJ}oKb9n%_PoR; z6jT$%7tzQXi`UdVd2E>4fHqc2MKuaPNT<=#_^V;iA1xQ?N3=9kc&)-+Xi}}xE?A6) zqcctyma%Z=Otq>OA#}Lb;x6_HBkFzDSS@t3Hj4KquR|8E<8Jx;x;QU6m#7bW#>j#rey50^e+FSNnVr(19hZX$8T5?#K^o1i@Y*X60 z-G>v1Nk+rbuHm9VT*7gUcCR>HUU7O+z>)KO1l>3?flsISqY7V4^H5gMyGOJ6De|dP z_&;b!onpT4=-UtDYjbd;vbq>|@m&{9ht8I5q|0?tygfawvv@Up`&;g7&ZX*1G4+bM zcMHVfNWiHLF^UT6vvJ|(dWA2ew#O8{i;|9I<3IHGp}(PDjw!l-x1dh;S=^7d*cBc} zjVQ+xKc3B()12c9-%NW@9;2_}T%|!L%5>LU>8lfQx_hqVelpr!{4|hp!KO*$I9X3d z>7KdL;*%Y`y8b%)i;2z&n&|LJ1yjFu5{Xqi>d7B1Jt^Rn!V@VGWd;?WQVN%f%)pU~ zQ@f3Fhl9_SW9@f4otIDJJRI@)n}}Z8QeK54K8%`^le;i?-fS_hIK((`@Tb)^Cu(7O zYA(gUCl}swj6Va-IyNmoEhjy1z9ZDpcW&DJg8y=a!VMD~-aB$eD$R7>~I zjP;T_M>l3WFFt^h8WjFIz1fg}{{kBua_qzZdQne7=jPfg&&BKM{`oL_mro{hZu$>~ C6+43f delta 5001 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 OV@78F0^8p6nfyN$I%z8a From d188233b130ef777e4bfd261265c10306d0bc0ca Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 12 Nov 2012 19:12:10 +1300 Subject: [PATCH 05/27] Moving to libHID --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 102 ++++++++++-------- 1 file changed, 55 insertions(+), 47 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 2e1e3c1823..70edc1805b 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -127,6 +127,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ERROR CODES: -4 Cant find device specified */ + u32 dev_num = Memory::Read_U32(BufferIn+0x10); u8 requesttype = Memory::Read_U8(BufferIn+0x14); u8 request = Memory::Read_U8(BufferIn+0x15); @@ -135,10 +136,11 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u16 size = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); + /* //libusb way static int upto = 0; int i; - usb_find_busses(); /* find all busses */ - usb_find_devices(); /* find all connected devices */ + usb_find_busses(); + usb_find_devices(); struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); @@ -172,6 +174,13 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) fwrite((char*)Memory::GetPointer(data), 1, size, test); fclose(test); upto++; + */ + + ReturnValue = size + sizeof(usb_ctrl_setup); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", + requesttype, request, ReturnValue); + + break; } case IOCTL_HID_INTERRUPT_IN: @@ -291,20 +300,22 @@ void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *des dest->wMaxPacketSize = Common::swap16(dest->wMaxPacketSize); } +static int x = 0; u32 CWII_IPC_HLE_Device_hid::GetAvailableID(char* path) { - return 0; + return x++; } // hidapi version void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutSize) { + x = 0; // Enumerate and print the HID devices on the system struct hid_device_info *devs, *cur_dev; int OffsetBuffer = BufferOut; int OffsetStart = 0; - int c,ic,i,e; // config, interface container, interface, endpoint + int c,i,e; // config, interface container, interface, endpoint devs = hid_enumerate(0x0, 0x0); cur_dev = devs; @@ -317,33 +328,17 @@ void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutS OffsetBuffer += 4; WiiHIDDeviceDescriptor wii_device; - /* - u8 bDescriptorType; - u16 bcdUSB; - u8 bDeviceClass; - u8 bDeviceSubClass; - u8 bDeviceProtocol; - u8 bMaxPacketSize0; - u16 idVendor; - u16 idProduct; - u16 bcdDevice; - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; - u8 pad[2]; - - */ wii_device.bLength = Common::swap8(0x12); - wii_device.bcdUSB = Common::swap16(0x0002); + wii_device.bDescriptorType = Common::swap8(0x1); + wii_device.bcdUSB = Common::swap16(0x0200); wii_device.bDeviceClass = Common::swap8(0); wii_device.bDeviceSubClass = Common::swap8(0); wii_device.bDeviceProtocol = Common::swap8(0); wii_device.bMaxPacketSize0 = Common::swap8(0x20); wii_device.idVendor = Common::swap16(cur_dev->vendor_id); wii_device.idProduct = Common::swap16(cur_dev->product_id); - wii_device.bcdDevice = Common::swap16(0x100); + wii_device.bcdDevice = Common::swap16(cur_dev->release_number); wii_device.iManufacturer = Common::swap8(0x1); wii_device.iProduct = Common::swap8(0x2); wii_device.iSerialNumber = Common::swap8(0); @@ -367,36 +362,44 @@ void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutS wii_config.bmAttributes = Common::swap8(0x80); wii_config.MaxPower = Common::swap8(0x96); - Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(wii_config.bLength, 4)); - OffsetBuffer += Align(wii_config.bLength, 4); + Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(Common::swap8(wii_config.bLength), 4)); + OffsetBuffer += Align(Common::swap8(wii_config.bLength), 4); - for (ic = 0; ic < wii_config.bNumInterfaces; ic++) + for (i = 0; i < wii_config.bNumInterfaces; i++) { -/* struct usb_interface *interfaceContainer = &config->interface[ic]; - for (i = 0; i < interfaceContainer->num_altsetting; i++) - { - struct usb_interface_descriptor *interface = &interfaceContainer->altsetting[i]; - WiiHIDInterfaceDescriptor wii_interface; - ConvertInterfaceToWii(&wii_interface, interface); - Memory::WriteBigEData((const u8*)&wii_interface, OffsetBuffer, Align(wii_interface.bLength, 4)); - OffsetBuffer += Align(wii_interface.bLength, 4); - for (e = 0; e < interface->bNumEndpoints; e++) + wii_interface.bLength = Common::swap8(0x9); + wii_interface.bDescriptorType = Common::swap8(0x4); + wii_interface.bInterfaceNumber = Common::swap8(i); + wii_interface.bAlternateSetting = Common::swap8(0); + wii_interface.bNumEndpoints = Common::swap8(0x2); + wii_interface.bInterfaceClass = Common::swap8(0x3); + wii_interface.bInterfaceSubClass = Common::swap8(0); + wii_interface.bInterfaceProtocol = Common::swap8(0); + wii_interface.iInterface = Common::swap8(0); + + Memory::WriteBigEData((const u8*)&wii_interface, OffsetBuffer, Align(Common::swap8(wii_interface.bLength), 4)); + OffsetBuffer += Align(Common::swap8(wii_interface.bLength), 4); + + for (e = 0; e < Common::swap8(wii_interface.bNumEndpoints); e++) { - struct usb_endpoint_descriptor *endpoint = &interface->endpoint[e]; - WiiHIDEndpointDescriptor wii_endpoint; - ConvertEndpointToWii(&wii_endpoint, endpoint); - Memory::WriteBigEData((const u8*)&wii_endpoint, OffsetBuffer, Align(wii_endpoint.bLength, 4)); - OffsetBuffer += Align(wii_endpoint.bLength, 4); + wii_endpoint.bLength = Common::swap8(0x7); + wii_endpoint.bDescriptorType = Common::swap8(0x5); + wii_endpoint.bEndpointAddress = Common::swap8(e == 0 ? 0x1 : 0x81); + wii_endpoint.bmAttributes = Common::swap8(0x3); + wii_endpoint.wMaxPacketSize = Common::swap16(0x20); + wii_endpoint.bInterval = Common::swap8(0x1); + + Memory::WriteBigEData((const u8*)&wii_endpoint, OffsetBuffer, Align(Common::swap8(wii_endpoint.bLength), 4)); + OffsetBuffer += Align(Common::swap8(wii_endpoint.bLength), 4); } //endpoints - } // interfaces - */ - } // interface containters + } // interfaces } // configs - + + Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length NOTICE_LOG(WII_IPC_HID, "Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number); @@ -406,6 +409,11 @@ void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutS NOTICE_LOG(WII_IPC_HID, "\n"); cur_dev = cur_dev->next; } + Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices + + FILE* test = fopen ("mattsbin.bin", "wb"); + fwrite(Memory::GetPointer(BufferOut), BufferOutSize, 1, test); + fclose(test); hid_free_enumeration(devs); } @@ -413,8 +421,8 @@ void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutS // libusb version void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { - //FillOutDevicesHidApi(BufferOut, BufferOutSize); - usb_find_busses(); // find all busses + FillOutDevicesHidApi(BufferOut, BufferOutSize); + /*usb_find_busses(); // find all busses usb_find_devices(); // find all connected devices struct usb_bus *bus; struct usb_device *dev; @@ -480,7 +488,7 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) } // buses Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices - + */ } From 586813b1504669b434f47bb216379561fb3f0f16 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 13 Nov 2012 00:14:47 +1300 Subject: [PATCH 06/27] Basic HID works on windows! I had to customise HIDAPI. --- Externals/libusb/include/hidapi.h | 6 +- Externals/libusb/win32/hidapi.lib | Bin 48456 -> 51150 bytes Externals/libusb/x64/hidapi.lib | Bin 50962 -> 53880 bytes .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 79 ++++++++++++++---- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 3 +- 5 files changed, 69 insertions(+), 19 deletions(-) diff --git a/Externals/libusb/include/hidapi.h b/Externals/libusb/include/hidapi.h index bd912acd7f..3cd829b54a 100644 --- a/Externals/libusb/include/hidapi.h +++ b/Externals/libusb/include/hidapi.h @@ -155,7 +155,7 @@ extern "C" { This function returns a pointer to a #hid_device object on success or NULL on failure. */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, wchar_t *serial_number); + HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); /** @brief Open a HID device by its path name. @@ -173,7 +173,7 @@ extern "C" { HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); /** @brief Write an Output report to a HID device. - + The first byte of @p data[] must contain the Report ID. For devices which only support a single report, this must be set to 0x0. The remaining bytes contain the report data. Since @@ -199,8 +199,8 @@ extern "C" { -1 on error. */ int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); + int HID_API_EXPORT HID_API_CALL hid_write_report(hid_device *device, const unsigned char *data, size_t length); - int HID_API_EXPORT HID_API_CALL hid_set_output_report(hid_device *dev, const unsigned char *data, size_t length); /** @brief Read an Input report from a HID device with timeout. Input reports are returned diff --git a/Externals/libusb/win32/hidapi.lib b/Externals/libusb/win32/hidapi.lib index 2b75c20b698a2e75eb88a99ea90fd78948170993..7fbc90bbca71487e188cf871a337db918d55a809 100644 GIT binary patch literal 51150 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 literal 48456 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⋘9t8287kiR* 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 U$4o<1e>_K00d$i}OlI-_04glrKmY&$ diff --git a/Externals/libusb/x64/hidapi.lib b/Externals/libusb/x64/hidapi.lib index 067d0166022037012e839cbe0c6bcab38621841c..0626164cb7fa14c5b1a90f5220bb4afae60bd718 100644 GIT binary patch delta 18389 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 s3&~4XeR=YM$N8c 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 delta 16263 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 EUma loaded_devices; +static std::map loaded_devices_rev; +static std::map opened_devices; + + + CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { - usb_init(); /* initialize the library */ - + //usb_init(); /* initialize the library */ + hid_init(); } CWII_IPC_HLE_Device_hid::~CWII_IPC_HLE_Device_hid() { - + hid_exit(); } bool CWII_IPC_HLE_Device_hid::Open(u32 _CommandAddress, u32 _Mode) @@ -175,7 +181,29 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) fclose(test); upto++; */ + + hid_device * dev_handle = GetDeviceByDevNumHidLib(dev_num); + if (dev_handle == NULL) + { + ReturnValue = -4; + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", + requesttype, request, ReturnValue); + break; + } + + // this is our write request + if(request == 0x09) + { + #define rw_buf_size 0x21 + unsigned char buf[rw_buf_size]; + memset(&buf[0], 0, rw_buf_size); + memcpy(&buf[1], (unsigned char*)Memory::GetPointer(data), size); + int success = hid_write_report(dev_handle, buf, size+1); + + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control) success = %d", success); + } + ReturnValue = size + sizeof(usb_ctrl_setup); DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", requesttype, request, ReturnValue); @@ -193,21 +221,29 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u32 data = Memory::Read_U32(BufferIn+0x1C); - struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + hid_device * dev_handle = GetDeviceByDevNumHidLib(dev_num); if (dev_handle == NULL) { ReturnValue = -4; + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt In)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } - usb_claim_interface(dev_handle,0); - ReturnValue = usb_interrupt_read(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 1000); + //ReturnValue = -5; + ReturnValue = hid_read(dev_handle, (unsigned char*)Memory::GetPointer(data), length); + //ReturnValue = usb_interrupt_read(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 1000); + + FILE* test = fopen ("readdata.bin", "wb"); + fwrite(Memory::GetPointer(data), ReturnValue, 1, test); + fclose(test); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt In)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - usb_close(dev_handle); + break; } case IOCTL_HID_INTERRUPT_OUT: @@ -220,21 +256,22 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u32 data = Memory::Read_U32(BufferIn+0x1C); - struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + hid_device * dev_handle = GetDeviceByDevNumHidLib(dev_num); if (dev_handle == NULL) { ReturnValue = -4; + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt Out) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } - usb_claim_interface(dev_handle,0); - ReturnValue = usb_interrupt_write(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 0); + ReturnValue = -5; + //ReturnValue = usb_interrupt_write(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 0); DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt Out) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - usb_close(dev_handle); break; } default: @@ -303,7 +340,12 @@ void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *des static int x = 0; u32 CWII_IPC_HLE_Device_hid::GetAvailableID(char* path) { - return x++; + std::string dev_path = path; + if(loaded_devices.find(dev_path) == loaded_devices.end()){ + loaded_devices_rev[x] = dev_path; + loaded_devices[dev_path] = x++; + } + return loaded_devices[dev_path]; } // hidapi version @@ -411,9 +453,6 @@ void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutS } Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices - FILE* test = fopen ("mattsbin.bin", "wb"); - fwrite(Memory::GetPointer(BufferOut), BufferOutSize, 1, test); - fclose(test); hid_free_enumeration(devs); } @@ -499,6 +538,16 @@ int CWII_IPC_HLE_Device_hid::Align(int num, int alignment) return (num + (alignment-1)) & ~(alignment-1); } +hid_device * CWII_IPC_HLE_Device_hid::GetDeviceByDevNumHidLib(u32 devNum) +{ + if (loaded_devices_rev.find(devNum) == loaded_devices_rev.end()) + return NULL; + if (opened_devices.find(devNum) != opened_devices.end()) + return opened_devices[devNum]; + + hid_device * phPortalHandle = opened_devices[devNum] = hid_open_path(loaded_devices_rev[devNum].c_str()); + return phPortalHandle; +} struct usb_dev_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) { diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index ef3b8912f1..2fc4ba9a22 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -19,6 +19,7 @@ #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device.h" +#include "hidapi.h" class CWII_IPC_HLE_Device_hid : public IWII_IPC_HLE_Device { @@ -122,7 +123,7 @@ private: void ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, struct usb_endpoint_descriptor *src); int Align(int num, int alignment); - + hid_device * GetDeviceByDevNumHidLib(u32 devNum); struct usb_dev_handle * GetDeviceByDevNum(u32 devNum); From d8b879a4ee844b693af2d7af85e2cd3d6d2712b3 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Thu, 15 Nov 2012 01:09:25 +1300 Subject: [PATCH 07/27] Movd back to libusb for full support on windows --- Externals/libusb/include/hidapi.h | 384 ------------------ Externals/libusb/win32/hidapi.lib | Bin 51150 -> 0 bytes Externals/libusb/x64/hidapi.lib | Bin 53880 -> 0 bytes Source/Core/Common/Src/Log.h | 2 +- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 381 ++++++----------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 25 +- Source/VSProps/Dolphin.x64.props | 2 +- 7 files changed, 143 insertions(+), 651 deletions(-) delete mode 100644 Externals/libusb/include/hidapi.h delete mode 100644 Externals/libusb/win32/hidapi.lib delete mode 100644 Externals/libusb/x64/hidapi.lib diff --git a/Externals/libusb/include/hidapi.h b/Externals/libusb/include/hidapi.h deleted file mode 100644 index 3cd829b54a..0000000000 --- a/Externals/libusb/include/hidapi.h +++ /dev/null @@ -1,384 +0,0 @@ -/******************************************************* - HIDAPI - Multi-Platform library for - communication with HID devices. - - Alan Ott - Signal 11 Software - - 8/22/2009 - - Copyright 2009, All Rights Reserved. - - At the discretion of the user of this library, - this software may be licensed under the terms of the - GNU Public License v3, a BSD-Style license, or the - original HIDAPI license as outlined in the LICENSE.txt, - LICENSE-gpl3.txt, LICENSE-bsd.txt, and LICENSE-orig.txt - files located at the root of the source distribution. - These files may also be found in the public source - code repository located at: - http://github.com/signal11/hidapi . -********************************************************/ - -/** @file - * @defgroup API hidapi API - */ - -#ifndef HIDAPI_H__ -#define HIDAPI_H__ - -#include - -#ifdef _WIN32 - #define HID_API_EXPORT __declspec(dllexport) - #define HID_API_CALL -#else - #define HID_API_EXPORT /**< API export macro */ - #define HID_API_CALL /**< API call macro */ -#endif - -#define HID_API_EXPORT_CALL HID_API_EXPORT HID_API_CALL /**< API export and call macro*/ - -#ifdef __cplusplus -extern "C" { -#endif - struct hid_device_; - typedef struct hid_device_ hid_device; /**< opaque hidapi structure */ - - /** hidapi info structure */ - struct hid_device_info { - /** Platform-specific device path */ - char *path; - /** Device Vendor ID */ - unsigned short vendor_id; - /** Device Product ID */ - unsigned short product_id; - /** Serial Number */ - wchar_t *serial_number; - /** Device Release Number in binary-coded decimal, - also known as Device Version Number */ - unsigned short release_number; - /** Manufacturer String */ - wchar_t *manufacturer_string; - /** Product string */ - wchar_t *product_string; - /** Usage Page for this Device/Interface - (Windows/Mac only). */ - unsigned short usage_page; - /** Usage for this Device/Interface - (Windows/Mac only).*/ - unsigned short usage; - /** The USB interface which this logical device - represents. Valid on both Linux implementations - in all cases, and valid on the Windows implementation - only if the device contains more than one interface. */ - int interface_number; - - /** Pointer to the next device */ - struct hid_device_info *next; - }; - - - /** @brief Initialize the HIDAPI library. - - This function initializes the HIDAPI library. Calling it is not - strictly necessary, as it will be called automatically by - hid_enumerate() and any of the hid_open_*() functions if it is - needed. This function should be called at the beginning of - execution however, if there is a chance of HIDAPI handles - being opened by different threads simultaneously. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_init(void); - - /** @brief Finalize the HIDAPI library. - - This function frees all of the static data associated with - HIDAPI. It should be called at the end of execution to avoid - memory leaks. - - @ingroup API - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_exit(void); - - /** @brief Enumerate the HID Devices. - - This function returns a linked list of all the HID devices - attached to the system which match vendor_id and product_id. - If @p vendor_id and @p product_id are both set to 0, then - all HID devices will be returned. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the types of device - to open. - @param product_id The Product ID (PID) of the types of - device to open. - - @returns - This function returns a pointer to a linked list of type - struct #hid_device, containing information about the HID devices - attached to the system, or NULL in the case of failure. Free - this linked list by calling hid_free_enumeration(). - */ - struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id); - - /** @brief Free an enumeration Linked List - - This function frees a linked list created by hid_enumerate(). - - @ingroup API - @param devs Pointer to a list of struct_device returned from - hid_enumerate(). - */ - void HID_API_EXPORT HID_API_CALL hid_free_enumeration(struct hid_device_info *devs); - - /** @brief Open a HID device using a Vendor ID (VID), Product ID - (PID) and optionally a serial number. - - If @p serial_number is NULL, the first device with the - specified VID and PID is opened. - - @ingroup API - @param vendor_id The Vendor ID (VID) of the device to open. - @param product_id The Product ID (PID) of the device to open. - @param serial_number The Serial Number of the device to open - (Optionally NULL). - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); - - /** @brief Open a HID device by its path name. - - The path name be determined by calling hid_enumerate(), or a - platform-specific path name can be used (eg: /dev/hidraw0 on - Linux). - - @ingroup API - @param path The path name of the device to open - - @returns - This function returns a pointer to a #hid_device object on - success or NULL on failure. - */ - HID_API_EXPORT hid_device * HID_API_CALL hid_open_path(const char *path); - - /** @brief Write an Output report to a HID device. - - The first byte of @p data[] must contain the Report ID. For - devices which only support a single report, this must be set - to 0x0. The remaining bytes contain the report data. Since - the Report ID is mandatory, calls to hid_write() will always - contain one more byte than the report contains. For example, - if a hid report is 16 bytes long, 17 bytes must be passed to - hid_write(), the Report ID (or 0x0, for devices with a - single report), followed by the report data (16 bytes). In - this example, the length passed in would be 17. - - hid_write() will send the data on the first OUT endpoint, if - one exists. If it does not, it will send the data through - the Control Endpoint (Endpoint 0). - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_write(hid_device *device, const unsigned char *data, size_t length); - int HID_API_EXPORT HID_API_CALL hid_write_report(hid_device *device, const unsigned char *data, size_t length); - - /** @brief Read an Input report from a HID device with timeout. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - @param milliseconds timeout in milliseconds or -1 for blocking wait. - - @returns - This function returns the actual number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_read_timeout(hid_device *dev, unsigned char *data, size_t length, int milliseconds); - - /** @brief Read an Input report from a HID device. - - Input reports are returned - to the host through the INTERRUPT IN endpoint. The first byte will - contain the Report number if the device uses numbered reports. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into. - @param length The number of bytes to read. For devices with - multiple reports, make sure to read an extra byte for - the report number. - - @returns - This function returns the actual number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_read(hid_device *device, unsigned char *data, size_t length); - - /** @brief Set the device handle to be non-blocking. - - In non-blocking mode calls to hid_read() will return - immediately with a value of 0 if there is no data to be - read. In blocking mode, hid_read() will wait (block) until - there is data to read before returning. - - Nonblocking can be turned on and off at any time. - - @ingroup API - @param device A device handle returned from hid_open(). - @param nonblock enable or not the nonblocking reads - - 1 to enable nonblocking - - 0 to disable nonblocking. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_set_nonblocking(hid_device *device, int nonblock); - - /** @brief Send a Feature report to the device. - - Feature reports are sent over the Control endpoint as a - Set_Report transfer. The first byte of @p data[] must - contain the Report ID. For devices which only support a - single report, this must be set to 0x0. The remaining bytes - contain the report data. Since the Report ID is mandatory, - calls to hid_send_feature_report() will always contain one - more byte than the report contains. For example, if a hid - report is 16 bytes long, 17 bytes must be passed to - hid_send_feature_report(): the Report ID (or 0x0, for - devices which do not use numbered reports), followed by the - report data (16 bytes). In this example, the length passed - in would be 17. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data The data to send, including the report number as - the first byte. - @param length The length in bytes of the data to send, including - the report number. - - @returns - This function returns the actual number of bytes written and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_send_feature_report(hid_device *device, const unsigned char *data, size_t length); - - /** @brief Get a feature report from a HID device. - - Make sure to set the first byte of @p data[] to the Report - ID of the report to be read. Make sure to allow space for - this extra byte in @p data[]. - - @ingroup API - @param device A device handle returned from hid_open(). - @param data A buffer to put the read data into, including - the Report ID. Set the first byte of @p data[] to the - Report ID of the report to be read. - @param length The number of bytes to read, including an - extra byte for the report ID. The buffer can be longer - than the actual report. - - @returns - This function returns the number of bytes read and - -1 on error. - */ - int HID_API_EXPORT HID_API_CALL hid_get_feature_report(hid_device *device, unsigned char *data, size_t length); - - /** @brief Close a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - */ - void HID_API_EXPORT HID_API_CALL hid_close(hid_device *device); - - /** @brief Get The Manufacturer String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_manufacturer_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Product String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_product_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get The Serial Number String from a HID device. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *device, wchar_t *string, size_t maxlen); - - /** @brief Get a string from a HID device, based on its string index. - - @ingroup API - @param device A device handle returned from hid_open(). - @param string_index The index of the string to get. - @param string A wide string buffer to put the data into. - @param maxlen The length of the buffer in multiples of wchar_t. - - @returns - This function returns 0 on success and -1 on error. - */ - int HID_API_EXPORT_CALL hid_get_indexed_string(hid_device *device, int string_index, wchar_t *string, size_t maxlen); - - /** @brief Get a string describing the last error which occurred. - - @ingroup API - @param device A device handle returned from hid_open(). - - @returns - This function returns a string containing the last error - which occurred or NULL if none has occurred. - */ - HID_API_EXPORT const wchar_t* HID_API_CALL hid_error(hid_device *device); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/Externals/libusb/win32/hidapi.lib b/Externals/libusb/win32/hidapi.lib deleted file mode 100644 index 7fbc90bbca71487e188cf871a337db918d55a809..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51150 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 diff --git a/Externals/libusb/x64/hidapi.lib b/Externals/libusb/x64/hidapi.lib deleted file mode 100644 index 0626164cb7fa14c5b1a90f5220bb4afae60bd718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53880 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%0DFNwaRygdv}J5)uk@cFii+ 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 I43Yl-0Za>0A^-pY diff --git a/Source/Core/Common/Src/Log.h b/Source/Core/Common/Src/Log.h index 7383e56c92..9664387cf0 100644 --- a/Source/Core/Common/Src/Log.h +++ b/Source/Core/Common/Src/Log.h @@ -101,7 +101,7 @@ void GenericLog(LOGTYPES_LEVELS level, LOGTYPES_TYPE type, #define MAX_LOGLEVEL DEBUG_LEVEL #else #ifndef MAX_LOGLEVEL -#define MAX_LOGLEVEL WARNING_LEVEL +#define MAX_LOGLEVEL DEBUG_LEVEL #endif // loglevel #endif // logging diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 4d3c7ff8e8..fb75386a4a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -21,31 +21,29 @@ #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device_hid.h" #include "lusb0_usb.h" -#include "hidapi.h" - -static std::map loaded_devices; -static std::map loaded_devices_rev; -static std::map opened_devices; - - +#include "errno.h" CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { - //usb_init(); /* initialize the library */ - hid_init(); + usb_init(); /* initialize the library */ + } CWII_IPC_HLE_Device_hid::~CWII_IPC_HLE_Device_hid() { - hid_exit(); + for ( std::map::const_iterator iter = open_devices.begin(); iter != open_devices.end(); ++iter ) + { + usb_close(iter->second); + } + open_devices.clear(); } bool CWII_IPC_HLE_Device_hid::Open(u32 _CommandAddress, u32 _Mode) { - Dolphin_Debugger::PrintCallstack(LogTypes::WII_IPC_HID, LogTypes::LWARNING); DEBUG_LOG(WII_IPC_HID, "HID::Open"); + m_Active = true; Memory::Write_U32(GetDeviceID(), _CommandAddress + 4); return true; } @@ -53,11 +51,48 @@ bool CWII_IPC_HLE_Device_hid::Open(u32 _CommandAddress, u32 _Mode) bool CWII_IPC_HLE_Device_hid::Close(u32 _CommandAddress, bool _bForce) { DEBUG_LOG(WII_IPC_HID, "HID::Close"); + m_Active = false; if (!_bForce) Memory::Write_U32(0, _CommandAddress + 4); return true; } +u32 CWII_IPC_HLE_Device_hid::Update() +{ + u32 work_done = 0; + int ret = -4; + + std::list<_hidevent>::iterator ev = event_list.begin(); + while (ev != event_list.end()) { + + bool ev_finished = false; + + + switch (ev->type) + { + case IOCTL_HID_INTERRUPT_OUT: + case IOCTL_HID_INTERRUPT_IN: + { + ret = usb_reap_async_nocancel(ev->context, 0); + if(ret >= 0) + { + Memory::Write_U32(ret, ev->enq_address + 4); + WII_IPC_HLE_Interface::EnqReply(ev->enq_address); + work_done = ev_finished = true; + } + + break; + } + } + + if (ev_finished) + event_list.erase(ev++); + else + ev++; + } + return work_done; +} + bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { static u32 replyAddress = 0; @@ -75,6 +110,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Get Attached) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", BufferIn, BufferInSize, BufferOut, BufferOutSize); + //Memory::Write_U32(0xFFFFFFFF, BufferOut); if(!hasRun) { FillOutDevices(BufferOut, BufferOutSize); @@ -133,7 +169,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ERROR CODES: -4 Cant find device specified */ - u32 dev_num = Memory::Read_U32(BufferIn+0x10); u8 requesttype = Memory::Read_U8(BufferIn+0x14); u8 request = Memory::Read_U8(BufferIn+0x15); @@ -142,11 +177,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u16 size = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); - /* //libusb way - static int upto = 0; - int i; - usb_find_busses(); - usb_find_devices(); + usb_find_busses(); /* find all busses */ + usb_find_devices(); /* find all connected devices */ struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); @@ -155,7 +187,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ReturnValue = -4; break; } - + ReturnValue = usb_control_msg(dev_handle, requesttype, request, value, index, (char*)Memory::GetPointer(data), size, 0); @@ -164,113 +196,68 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { ReturnValue += sizeof(usb_ctrl_setup); } - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", - requesttype, request, ReturnValue); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + requesttype, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - usb_close(dev_handle); - - u8 test_out[0x20]; - Memory::ReadBigEData(test_out, BufferIn, BufferInSize); - char file[0x50]; - snprintf(file, 0x50, "ctrl_ctrlprotocol_%d.bin", upto); - FILE* test = fopen (file, "wb"); - for(i=0;i<0x20;i++) - fwrite(&test_out[i], 1, 1, test); - if (size > 0) - fwrite((char*)Memory::GetPointer(data), 1, size, test); - fclose(test); - upto++; - */ - - hid_device * dev_handle = GetDeviceByDevNumHidLib(dev_num); - - if (dev_handle == NULL) - { - ReturnValue = -4; - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", - requesttype, request, ReturnValue); - break; - } - - // this is our write request - if(request == 0x09) - { - #define rw_buf_size 0x21 - unsigned char buf[rw_buf_size]; - memset(&buf[0], 0, rw_buf_size); - memcpy(&buf[1], (unsigned char*)Memory::GetPointer(data), size); - int success = hid_write_report(dev_handle, buf, size+1); - - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control) success = %d", success); - } - - ReturnValue = size + sizeof(usb_ctrl_setup); - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d", - requesttype, request, ReturnValue); - - - break; - } - case IOCTL_HID_INTERRUPT_IN: - { - - - u32 dev_num = Memory::Read_U32(BufferIn+0x10); - u32 end_point = Memory::Read_U32(BufferIn+0x14); - u32 length = Memory::Read_U32(BufferIn+0x18); - - u32 data = Memory::Read_U32(BufferIn+0x1C); - - hid_device * dev_handle = GetDeviceByDevNumHidLib(dev_num); - - if (dev_handle == NULL) - { - ReturnValue = -4; - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt In)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - break; - } - - //ReturnValue = -5; - ReturnValue = hid_read(dev_handle, (unsigned char*)Memory::GetPointer(data), length); - //ReturnValue = usb_interrupt_read(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 1000); - - - FILE* test = fopen ("readdata.bin", "wb"); - fwrite(Memory::GetPointer(data), ReturnValue, 1, test); - fclose(test); - - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt In)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - break; } case IOCTL_HID_INTERRUPT_OUT: + case IOCTL_HID_INTERRUPT_IN: { + u32 dev_num = Memory::Read_U32(BufferIn+0x10); u32 end_point = Memory::Read_U32(BufferIn+0x14); u32 length = Memory::Read_U32(BufferIn+0x18); u32 data = Memory::Read_U32(BufferIn+0x1C); - - hid_device * dev_handle = GetDeviceByDevNumHidLib(dev_num); + int ret = 0; + void * context = NULL; + + struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); if (dev_handle == NULL) { ReturnValue = -4; - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt Out) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - break; + goto int_in_end_print; } - ReturnValue = -5; - //ReturnValue = usb_interrupt_write(dev_handle, end_point, (char*)Memory::GetPointer(data), length, 0); - - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt Out) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + usb_claim_interface(dev_handle,0); + + ret = usb_interrupt_setup_async(dev_handle, &context, end_point); + if (ret< 0) + { + ReturnValue = -4; + goto int_in_end_print; + } + ret = usb_submit_async(context, (char*)Memory::GetPointer(data), length); + if (ret< 0) + { + ReturnValue = -4; + goto int_in_end_print; + } + + ret = usb_reap_async_nocancel(context, 0); + if (ret >= 0) + { + ReturnValue = ret; + } + else + { + _hidevent ev; + ev.enq_address = _CommandAddress; + ev.type = Parameter; + ev.context = context; + event_list.push_back(ev); + return false; + } + + int_in_end_print: + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + break; } @@ -294,16 +281,24 @@ bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) u32 ReturnValue = 0; SIOCtlVBuffer CommandBuffer(_CommandAddress); - DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); - DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); - DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); - DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); - DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); - DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); - DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); - #if defined(_DEBUG) || defined(DEBUGFAST) - DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); - #endif + switch (CommandBuffer.Parameter) + { + + default: + { + DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); + DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); + DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); + DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); + DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); + DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); + DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); + #if defined(_DEBUG) || defined(DEBUGFAST) + DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); + #endif + } + break; + } Memory::Write_U32(ReturnValue, _CommandAddress + 4); return true; @@ -337,137 +332,15 @@ void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *des dest->wMaxPacketSize = Common::swap16(dest->wMaxPacketSize); } -static int x = 0; -u32 CWII_IPC_HLE_Device_hid::GetAvailableID(char* path) -{ - std::string dev_path = path; - if(loaded_devices.find(dev_path) == loaded_devices.end()){ - loaded_devices_rev[x] = dev_path; - loaded_devices[dev_path] = x++; - } - return loaded_devices[dev_path]; -} - -// hidapi version -void CWII_IPC_HLE_Device_hid::FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutSize) -{ - x = 0; - // Enumerate and print the HID devices on the system - struct hid_device_info *devs, *cur_dev; - - int OffsetBuffer = BufferOut; - int OffsetStart = 0; - int c,i,e; // config, interface container, interface, endpoint - - devs = hid_enumerate(0x0, 0x0); - cur_dev = devs; - while (cur_dev) { - - OffsetStart = OffsetBuffer; - OffsetBuffer += 4; // skip length for now, fill at end - - Memory::Write_U32(GetAvailableID(cur_dev->path), OffsetBuffer); //write device num - OffsetBuffer += 4; - - WiiHIDDeviceDescriptor wii_device; - - wii_device.bLength = Common::swap8(0x12); - wii_device.bDescriptorType = Common::swap8(0x1); - wii_device.bcdUSB = Common::swap16(0x0200); - wii_device.bDeviceClass = Common::swap8(0); - wii_device.bDeviceSubClass = Common::swap8(0); - wii_device.bDeviceProtocol = Common::swap8(0); - wii_device.bMaxPacketSize0 = Common::swap8(0x20); - wii_device.idVendor = Common::swap16(cur_dev->vendor_id); - wii_device.idProduct = Common::swap16(cur_dev->product_id); - wii_device.bcdDevice = Common::swap16(cur_dev->release_number); - wii_device.iManufacturer = Common::swap8(0x1); - wii_device.iProduct = Common::swap8(0x2); - wii_device.iSerialNumber = Common::swap8(0); - wii_device.bNumConfigurations = Common::swap8(0x1); - - Memory::WriteBigEData((const u8*)&wii_device, OffsetBuffer, Align(wii_device.bLength, 4)); - - OffsetBuffer += Align(wii_device.bLength, 4); - - - for (c = 0; c < Common::swap8(wii_device.bNumConfigurations); c++) - { - - WiiHIDConfigDescriptor wii_config; - wii_config.bLength = Common::swap8(0x9); - wii_config.bDescriptorType = Common::swap8(0x2); - wii_config.wTotalLength = Common::swap16(0x29); - wii_config.bNumInterfaces = Common::swap8(0x1); - wii_config.bConfigurationValue = Common::swap8(0x1); - wii_config.iConfiguration = Common::swap8(0); - wii_config.bmAttributes = Common::swap8(0x80); - wii_config.MaxPower = Common::swap8(0x96); - - Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(Common::swap8(wii_config.bLength), 4)); - OffsetBuffer += Align(Common::swap8(wii_config.bLength), 4); - - for (i = 0; i < wii_config.bNumInterfaces; i++) - { - WiiHIDInterfaceDescriptor wii_interface; - - wii_interface.bLength = Common::swap8(0x9); - wii_interface.bDescriptorType = Common::swap8(0x4); - wii_interface.bInterfaceNumber = Common::swap8(i); - wii_interface.bAlternateSetting = Common::swap8(0); - wii_interface.bNumEndpoints = Common::swap8(0x2); - wii_interface.bInterfaceClass = Common::swap8(0x3); - wii_interface.bInterfaceSubClass = Common::swap8(0); - wii_interface.bInterfaceProtocol = Common::swap8(0); - wii_interface.iInterface = Common::swap8(0); - - Memory::WriteBigEData((const u8*)&wii_interface, OffsetBuffer, Align(Common::swap8(wii_interface.bLength), 4)); - OffsetBuffer += Align(Common::swap8(wii_interface.bLength), 4); - - for (e = 0; e < Common::swap8(wii_interface.bNumEndpoints); e++) - { - WiiHIDEndpointDescriptor wii_endpoint; - wii_endpoint.bLength = Common::swap8(0x7); - wii_endpoint.bDescriptorType = Common::swap8(0x5); - wii_endpoint.bEndpointAddress = Common::swap8(e == 0 ? 0x1 : 0x81); - wii_endpoint.bmAttributes = Common::swap8(0x3); - wii_endpoint.wMaxPacketSize = Common::swap16(0x20); - wii_endpoint.bInterval = Common::swap8(0x1); - - Memory::WriteBigEData((const u8*)&wii_endpoint, OffsetBuffer, Align(Common::swap8(wii_endpoint.bLength), 4)); - OffsetBuffer += Align(Common::swap8(wii_endpoint.bLength), 4); - - } //endpoints - } // interfaces - } // configs - - Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length - - NOTICE_LOG(WII_IPC_HID, "Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls", - cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number); - NOTICE_LOG(WII_IPC_HID, "\n"); - NOTICE_LOG(WII_IPC_HID, " Manufacturer: %ls\n", cur_dev->manufacturer_string); - NOTICE_LOG(WII_IPC_HID, " Product: %ls\n", cur_dev->product_string); - NOTICE_LOG(WII_IPC_HID, "\n"); - cur_dev = cur_dev->next; - } - Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices - - hid_free_enumeration(devs); -} - - -// libusb version void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { - FillOutDevicesHidApi(BufferOut, BufferOutSize); - /*usb_find_busses(); // find all busses - usb_find_devices(); // find all connected devices + usb_find_busses(); /* find all busses */ + usb_find_devices(); /* find all connected devices */ struct usb_bus *bus; struct usb_device *dev; int OffsetBuffer = BufferOut; int OffsetStart = 0; - int c,ic,i,e; // config, interface container, interface, endpoint + int c,ic,i,e; /* config, interface container, interface, endpoint */ for (bus = usb_get_busses(); bus; bus = bus->next) { for (dev = bus->devices; dev; dev = dev->next) @@ -527,38 +400,34 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) } // buses Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices - */ + } - - int CWII_IPC_HLE_Device_hid::Align(int num, int alignment) { return (num + (alignment-1)) & ~(alignment-1); } -hid_device * CWII_IPC_HLE_Device_hid::GetDeviceByDevNumHidLib(u32 devNum) -{ - if (loaded_devices_rev.find(devNum) == loaded_devices_rev.end()) - return NULL; - if (opened_devices.find(devNum) != opened_devices.end()) - return opened_devices[devNum]; - - hid_device * phPortalHandle = opened_devices[devNum] = hid_open_path(loaded_devices_rev[devNum].c_str()); - return phPortalHandle; -} struct usb_dev_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) { + + if (open_devices.find(devNum) != open_devices.end()) + return open_devices[devNum]; + + usb_dev_handle * device = NULL; + for (struct usb_bus *bus = usb_get_busses(); bus; bus = bus->next) { for (struct usb_device *dev = bus->devices; dev; dev = dev->next) { if(dev->devnum == devNum){ - return usb_open(dev); + open_devices[devNum] = device = usb_open(dev); + + return device; } } } - return NULL; + return device; } \ No newline at end of file diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 2fc4ba9a22..099f4deff4 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -19,7 +19,9 @@ #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device.h" -#include "hidapi.h" +#include + +/* Connection timed out */ #define ETRANSFER_TIMEDOUT -116 class CWII_IPC_HLE_Device_hid : public IWII_IPC_HLE_Device { @@ -30,13 +32,12 @@ public: virtual bool Open(u32 _CommandAddress, u32 _Mode); virtual bool Close(u32 _CommandAddress, bool _bForce); + virtual u32 Update(); virtual bool IOCtlV(u32 _CommandAddress); virtual bool IOCtl(u32 _CommandAddress); private: - - std::map deviceList; enum { @@ -112,10 +113,7 @@ private: } WiiHIDEndpointDescriptor; - u32 GetAvailableID(char* path); - - void FillOutDevices(u32 BufferOut, u32 BufferOutSize); - void FillOutDevicesHidApi(u32 BufferOut, u32 BufferOutSize); + void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize); void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, struct usb_device_descriptor *src); void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, struct usb_config_descriptor *src); @@ -123,8 +121,17 @@ private: void ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, struct usb_endpoint_descriptor *src); int Align(int num, int alignment); - hid_device * GetDeviceByDevNumHidLib(u32 devNum); + struct usb_dev_handle * GetDeviceByDevNum(u32 devNum); + std::map open_devices; - + + typedef struct + { + u32 enq_address; + u32 type; + void * context; + } _hidevent; + + std::list<_hidevent> event_list; }; diff --git a/Source/VSProps/Dolphin.x64.props b/Source/VSProps/Dolphin.x64.props index c9cc2eb7ff..fd692daa60 100644 --- a/Source/VSProps/Dolphin.x64.props +++ b/Source/VSProps/Dolphin.x64.props @@ -9,7 +9,7 @@ ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg64;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;hidapi.lib;%(AdditionalDependencies) + portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;%(AdditionalDependencies) From d6e46dd7e2af4dfb1a2979f33ecd3252d88aff6c Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 19 Nov 2012 20:55:52 +1300 Subject: [PATCH 08/27] Add new lib and header for libusb 1.0. --- Externals/libusb/include/libusb.h | 1443 +++++++++++++++++++++++++ Externals/libusb/win32/libusb-1.0.lib | Bin 0 -> 704170 bytes Externals/libusb/x64/libusb-1.0.lib | Bin 0 -> 734478 bytes 3 files changed, 1443 insertions(+) create mode 100644 Externals/libusb/include/libusb.h create mode 100644 Externals/libusb/win32/libusb-1.0.lib create mode 100644 Externals/libusb/x64/libusb-1.0.lib diff --git a/Externals/libusb/include/libusb.h b/Externals/libusb/include/libusb.h new file mode 100644 index 0000000000..044012bcd0 --- /dev/null +++ b/Externals/libusb/include/libusb.h @@ -0,0 +1,1443 @@ +/* + * Public libusb header file + * Copyright (C) 2007-2008 Daniel Drake + * Copyright (c) 2001 Johannes Erdfelt + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef LIBUSB_H +#define LIBUSB_H + +#ifdef _MSC_VER +/* on MS environments, the inline keyword is available in C++ only */ +#define inline __inline +/* ssize_t is also not available (copy/paste from MinGW) */ +#ifndef _SSIZE_T_DEFINED +#define _SSIZE_T_DEFINED +#undef ssize_t +#ifdef _WIN64 + typedef __int64 ssize_t; +#else + typedef int ssize_t; +#endif /* _WIN64 */ +#endif /* _SSIZE_T_DEFINED */ +#endif /* _MSC_VER */ + +/* stdint.h is also not usually available on MS */ +#if defined(_MSC_VER) && (_MSC_VER < 1600) && (!defined(_STDINT)) && (!defined(_STDINT_H)) +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +#else +#include +#endif + +#include +#include +#include + +#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) +#include +#endif + +/* 'interface' might be defined as a macro on Windows, so we need to + * undefine it so as not to break the current libusb API, because + * libusb_config_descriptor has an 'interface' member + * As this can be problematic if you include windows.h after libusb.h + * in your sources, we force windows.h to be included first. */ +#if defined(_WIN32) || defined(__CYGWIN__) +#include +#if defined(interface) +#undef interface +#endif +#endif + +/** \def LIBUSB_CALL + * \ingroup misc + * libusb's Windows calling convention. + * + * Under Windows, the selection of available compilers and configurations + * means that, unlike other platforms, there is not one true calling + * convention (calling convention: the manner in which parameters are + * passed to funcions in the generated assembly code). + * + * Matching the Windows API itself, libusb uses the WINAPI convention (which + * translates to the stdcall convention) and guarantees that the + * library is compiled in this way. The public header file also includes + * appropriate annotations so that your own software will use the right + * convention, even if another convention is being used by default within + * your codebase. + * + * The one consideration that you must apply in your software is to mark + * all functions which you use as libusb callbacks with this LIBUSB_CALL + * annotation, so that they too get compiled for the correct calling + * convention. + * + * On non-Windows operating systems, this macro is defined as nothing. This + * means that you can apply it to your code without worrying about + * cross-platform compatibility. + */ +/* LIBUSB_CALL must be defined on both definition and declaration of libusb + * functions. You'd think that declaration would be enough, but cygwin will + * complain about conflicting types unless both are marked this way. + * The placement of this macro is important too; it must appear after the + * return type, before the function name. See internal documentation for + * API_EXPORTED. + */ +#if defined(_WIN32) || defined(__CYGWIN__) +#define LIBUSB_CALL WINAPI +#else +#define LIBUSB_CALL +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** \def libusb_cpu_to_le16 + * \ingroup misc + * Convert a 16-bit value from host-endian to little-endian format. On + * little endian systems, this function does nothing. On big endian systems, + * the bytes are swapped. + * \param x the host-endian value to convert + * \returns the value in little-endian byte order + */ +static inline uint16_t libusb_cpu_to_le16(const uint16_t x) +{ + union { + uint8_t b8[2]; + uint16_t b16; + } _tmp; + _tmp.b8[1] = x >> 8; + _tmp.b8[0] = x & 0xff; + return _tmp.b16; +} + +/** \def libusb_le16_to_cpu + * \ingroup misc + * Convert a 16-bit value from little-endian to host-endian format. On + * little endian systems, this function does nothing. On big endian systems, + * the bytes are swapped. + * \param x the little-endian value to convert + * \returns the value in host-endian byte order + */ +#define libusb_le16_to_cpu libusb_cpu_to_le16 + +/* standard USB stuff */ + +/** \ingroup desc + * Device and/or Interface Class codes */ +enum libusb_class_code { + /** In the context of a \ref libusb_device_descriptor "device descriptor", + * this bDeviceClass value indicates that each interface specifies its + * own class information and all interfaces operate independently. + */ + LIBUSB_CLASS_PER_INTERFACE = 0, + + /** Audio class */ + LIBUSB_CLASS_AUDIO = 1, + + /** Communications class */ + LIBUSB_CLASS_COMM = 2, + + /** Human Interface Device class */ + LIBUSB_CLASS_HID = 3, + + /** Physical */ + LIBUSB_CLASS_PHYSICAL = 5, + + /** Printer class */ + LIBUSB_CLASS_PRINTER = 7, + + /** Image class */ + LIBUSB_CLASS_PTP = 6, /* legacy name from libusb-0.1 usb.h */ + LIBUSB_CLASS_IMAGE = 6, + + /** Mass storage class */ + LIBUSB_CLASS_MASS_STORAGE = 8, + + /** Hub class */ + LIBUSB_CLASS_HUB = 9, + + /** Data class */ + LIBUSB_CLASS_DATA = 10, + + /** Smart Card */ + LIBUSB_CLASS_SMART_CARD = 0x0b, + + /** Content Security */ + LIBUSB_CLASS_CONTENT_SECURITY = 0x0d, + + /** Video */ + LIBUSB_CLASS_VIDEO = 0x0e, + + /** Personal Healthcare */ + LIBUSB_CLASS_PERSONAL_HEALTHCARE = 0x0f, + + /** Diagnostic Device */ + LIBUSB_CLASS_DIAGNOSTIC_DEVICE = 0xdc, + + /** Wireless class */ + LIBUSB_CLASS_WIRELESS = 0xe0, + + /** Application class */ + LIBUSB_CLASS_APPLICATION = 0xfe, + + /** Class is vendor-specific */ + LIBUSB_CLASS_VENDOR_SPEC = 0xff +}; + +/** \ingroup desc + * Descriptor types as defined by the USB specification. */ +enum libusb_descriptor_type { + /** Device descriptor. See libusb_device_descriptor. */ + LIBUSB_DT_DEVICE = 0x01, + + /** Configuration descriptor. See libusb_config_descriptor. */ + LIBUSB_DT_CONFIG = 0x02, + + /** String descriptor */ + LIBUSB_DT_STRING = 0x03, + + /** Interface descriptor. See libusb_interface_descriptor. */ + LIBUSB_DT_INTERFACE = 0x04, + + /** Endpoint descriptor. See libusb_endpoint_descriptor. */ + LIBUSB_DT_ENDPOINT = 0x05, + + /** HID descriptor */ + LIBUSB_DT_HID = 0x21, + + /** HID report descriptor */ + LIBUSB_DT_REPORT = 0x22, + + /** Physical descriptor */ + LIBUSB_DT_PHYSICAL = 0x23, + + /** Hub descriptor */ + LIBUSB_DT_HUB = 0x29, +}; + +/* Descriptor sizes per descriptor type */ +#define LIBUSB_DT_DEVICE_SIZE 18 +#define LIBUSB_DT_CONFIG_SIZE 9 +#define LIBUSB_DT_INTERFACE_SIZE 9 +#define LIBUSB_DT_ENDPOINT_SIZE 7 +#define LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ +#define LIBUSB_DT_HUB_NONVAR_SIZE 7 + +#define LIBUSB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ +#define LIBUSB_ENDPOINT_DIR_MASK 0x80 + +/** \ingroup desc + * Endpoint direction. Values for bit 7 of the + * \ref libusb_endpoint_descriptor::bEndpointAddress "endpoint address" scheme. + */ +enum libusb_endpoint_direction { + /** In: device-to-host */ + LIBUSB_ENDPOINT_IN = 0x80, + + /** Out: host-to-device */ + LIBUSB_ENDPOINT_OUT = 0x00 +}; + +#define LIBUSB_TRANSFER_TYPE_MASK 0x03 /* in bmAttributes */ + +/** \ingroup desc + * Endpoint transfer type. Values for bits 0:1 of the + * \ref libusb_endpoint_descriptor::bmAttributes "endpoint attributes" field. + */ +enum libusb_transfer_type { + /** Control endpoint */ + LIBUSB_TRANSFER_TYPE_CONTROL = 0, + + /** Isochronous endpoint */ + LIBUSB_TRANSFER_TYPE_ISOCHRONOUS = 1, + + /** Bulk endpoint */ + LIBUSB_TRANSFER_TYPE_BULK = 2, + + /** Interrupt endpoint */ + LIBUSB_TRANSFER_TYPE_INTERRUPT = 3 +}; + +/** \ingroup misc + * Standard requests, as defined in table 9-3 of the USB2 specifications */ +enum libusb_standard_request { + /** Request status of the specific recipient */ + LIBUSB_REQUEST_GET_STATUS = 0x00, + + /** Clear or disable a specific feature */ + LIBUSB_REQUEST_CLEAR_FEATURE = 0x01, + + /* 0x02 is reserved */ + + /** Set or enable a specific feature */ + LIBUSB_REQUEST_SET_FEATURE = 0x03, + + /* 0x04 is reserved */ + + /** Set device address for all future accesses */ + LIBUSB_REQUEST_SET_ADDRESS = 0x05, + + /** Get the specified descriptor */ + LIBUSB_REQUEST_GET_DESCRIPTOR = 0x06, + + /** Used to update existing descriptors or add new descriptors */ + LIBUSB_REQUEST_SET_DESCRIPTOR = 0x07, + + /** Get the current device configuration value */ + LIBUSB_REQUEST_GET_CONFIGURATION = 0x08, + + /** Set device configuration */ + LIBUSB_REQUEST_SET_CONFIGURATION = 0x09, + + /** Return the selected alternate setting for the specified interface */ + LIBUSB_REQUEST_GET_INTERFACE = 0x0A, + + /** Select an alternate interface for the specified interface */ + LIBUSB_REQUEST_SET_INTERFACE = 0x0B, + + /** Set then report an endpoint's synchronization frame */ + LIBUSB_REQUEST_SYNCH_FRAME = 0x0C, +}; + +/** \ingroup misc + * Request type bits of the + * \ref libusb_control_setup::bmRequestType "bmRequestType" field in control + * transfers. */ +enum libusb_request_type { + /** Standard */ + LIBUSB_REQUEST_TYPE_STANDARD = (0x00 << 5), + + /** Class */ + LIBUSB_REQUEST_TYPE_CLASS = (0x01 << 5), + + /** Vendor */ + LIBUSB_REQUEST_TYPE_VENDOR = (0x02 << 5), + + /** Reserved */ + LIBUSB_REQUEST_TYPE_RESERVED = (0x03 << 5) +}; + +/** \ingroup misc + * Recipient bits of the + * \ref libusb_control_setup::bmRequestType "bmRequestType" field in control + * transfers. Values 4 through 31 are reserved. */ +enum libusb_request_recipient { + /** Device */ + LIBUSB_RECIPIENT_DEVICE = 0x00, + + /** Interface */ + LIBUSB_RECIPIENT_INTERFACE = 0x01, + + /** Endpoint */ + LIBUSB_RECIPIENT_ENDPOINT = 0x02, + + /** Other */ + LIBUSB_RECIPIENT_OTHER = 0x03, +}; + +#define LIBUSB_ISO_SYNC_TYPE_MASK 0x0C + +/** \ingroup desc + * Synchronization type for isochronous endpoints. Values for bits 2:3 of the + * \ref libusb_endpoint_descriptor::bmAttributes "bmAttributes" field in + * libusb_endpoint_descriptor. + */ +enum libusb_iso_sync_type { + /** No synchronization */ + LIBUSB_ISO_SYNC_TYPE_NONE = 0, + + /** Asynchronous */ + LIBUSB_ISO_SYNC_TYPE_ASYNC = 1, + + /** Adaptive */ + LIBUSB_ISO_SYNC_TYPE_ADAPTIVE = 2, + + /** Synchronous */ + LIBUSB_ISO_SYNC_TYPE_SYNC = 3 +}; + +#define LIBUSB_ISO_USAGE_TYPE_MASK 0x30 + +/** \ingroup desc + * Usage type for isochronous endpoints. Values for bits 4:5 of the + * \ref libusb_endpoint_descriptor::bmAttributes "bmAttributes" field in + * libusb_endpoint_descriptor. + */ +enum libusb_iso_usage_type { + /** Data endpoint */ + LIBUSB_ISO_USAGE_TYPE_DATA = 0, + + /** Feedback endpoint */ + LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1, + + /** Implicit feedback Data endpoint */ + LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2, +}; + +/** \ingroup desc + * A structure representing the standard USB device descriptor. This + * descriptor is documented in section 9.6.1 of the USB 2.0 specification. + * All multiple-byte fields are represented in host-endian format. + */ +struct libusb_device_descriptor { + /** Size of this descriptor (in bytes) */ + uint8_t bLength; + + /** Descriptor type. Will have value + * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE LIBUSB_DT_DEVICE in this + * context. */ + uint8_t bDescriptorType; + + /** USB specification release number in binary-coded decimal. A value of + * 0x0200 indicates USB 2.0, 0x0110 indicates USB 1.1, etc. */ + uint16_t bcdUSB; + + /** USB-IF class code for the device. See \ref libusb_class_code. */ + uint8_t bDeviceClass; + + /** USB-IF subclass code for the device, qualified by the bDeviceClass + * value */ + uint8_t bDeviceSubClass; + + /** USB-IF protocol code for the device, qualified by the bDeviceClass and + * bDeviceSubClass values */ + uint8_t bDeviceProtocol; + + /** Maximum packet size for endpoint 0 */ + uint8_t bMaxPacketSize0; + + /** USB-IF vendor ID */ + uint16_t idVendor; + + /** USB-IF product ID */ + uint16_t idProduct; + + /** Device release number in binary-coded decimal */ + uint16_t bcdDevice; + + /** Index of string descriptor describing manufacturer */ + uint8_t iManufacturer; + + /** Index of string descriptor describing product */ + uint8_t iProduct; + + /** Index of string descriptor containing device serial number */ + uint8_t iSerialNumber; + + /** Number of possible configurations */ + uint8_t bNumConfigurations; +}; + +/** \ingroup desc + * A structure representing the standard USB endpoint descriptor. This + * descriptor is documented in section 9.6.3 of the USB 2.0 specification. + * All multiple-byte fields are represented in host-endian format. + */ +struct libusb_endpoint_descriptor { + /** Size of this descriptor (in bytes) */ + uint8_t bLength; + + /** Descriptor type. Will have value + * \ref libusb_descriptor_type::LIBUSB_DT_ENDPOINT LIBUSB_DT_ENDPOINT in + * this context. */ + uint8_t bDescriptorType; + + /** The address of the endpoint described by this descriptor. Bits 0:3 are + * the endpoint number. Bits 4:6 are reserved. Bit 7 indicates direction, + * see \ref libusb_endpoint_direction. + */ + uint8_t bEndpointAddress; + + /** Attributes which apply to the endpoint when it is configured using + * the bConfigurationValue. Bits 0:1 determine the transfer type and + * correspond to \ref libusb_transfer_type. Bits 2:3 are only used for + * isochronous endpoints and correspond to \ref libusb_iso_sync_type. + * Bits 4:5 are also only used for isochronous endpoints and correspond to + * \ref libusb_iso_usage_type. Bits 6:7 are reserved. + */ + uint8_t bmAttributes; + + /** Maximum packet size this endpoint is capable of sending/receiving. */ + uint16_t wMaxPacketSize; + + /** Interval for polling endpoint for data transfers. */ + uint8_t bInterval; + + /** For audio devices only: the rate at which synchronization feedback + * is provided. */ + uint8_t bRefresh; + + /** For audio devices only: the address if the synch endpoint */ + uint8_t bSynchAddress; + + /** Extra descriptors. If libusb encounters unknown endpoint descriptors, + * it will store them here, should you wish to parse them. */ + const unsigned char *extra; + + /** Length of the extra descriptors, in bytes. */ + int extra_length; +}; + +/** \ingroup desc + * A structure representing the standard USB interface descriptor. This + * descriptor is documented in section 9.6.5 of the USB 2.0 specification. + * All multiple-byte fields are represented in host-endian format. + */ +struct libusb_interface_descriptor { + /** Size of this descriptor (in bytes) */ + uint8_t bLength; + + /** Descriptor type. Will have value + * \ref libusb_descriptor_type::LIBUSB_DT_INTERFACE LIBUSB_DT_INTERFACE + * in this context. */ + uint8_t bDescriptorType; + + /** Number of this interface */ + uint8_t bInterfaceNumber; + + /** Value used to select this alternate setting for this interface */ + uint8_t bAlternateSetting; + + /** Number of endpoints used by this interface (excluding the control + * endpoint). */ + uint8_t bNumEndpoints; + + /** USB-IF class code for this interface. See \ref libusb_class_code. */ + uint8_t bInterfaceClass; + + /** USB-IF subclass code for this interface, qualified by the + * bInterfaceClass value */ + uint8_t bInterfaceSubClass; + + /** USB-IF protocol code for this interface, qualified by the + * bInterfaceClass and bInterfaceSubClass values */ + uint8_t bInterfaceProtocol; + + /** Index of string descriptor describing this interface */ + uint8_t iInterface; + + /** Array of endpoint descriptors. This length of this array is determined + * by the bNumEndpoints field. */ + const struct libusb_endpoint_descriptor *endpoint; + + /** Extra descriptors. If libusb encounters unknown interface descriptors, + * it will store them here, should you wish to parse them. */ + const unsigned char *extra; + + /** Length of the extra descriptors, in bytes. */ + int extra_length; +}; + +/** \ingroup desc + * A collection of alternate settings for a particular USB interface. + */ +struct libusb_interface { + /** Array of interface descriptors. The length of this array is determined + * by the num_altsetting field. */ + const struct libusb_interface_descriptor *altsetting; + + /** The number of alternate settings that belong to this interface */ + int num_altsetting; +}; + +/** \ingroup desc + * A structure representing the standard USB configuration descriptor. This + * descriptor is documented in section 9.6.3 of the USB 2.0 specification. + * All multiple-byte fields are represented in host-endian format. + */ +struct libusb_config_descriptor { + /** Size of this descriptor (in bytes) */ + uint8_t bLength; + + /** Descriptor type. Will have value + * \ref libusb_descriptor_type::LIBUSB_DT_CONFIG LIBUSB_DT_CONFIG + * in this context. */ + uint8_t bDescriptorType; + + /** Total length of data returned for this configuration */ + uint16_t wTotalLength; + + /** Number of interfaces supported by this configuration */ + uint8_t bNumInterfaces; + + /** Identifier value for this configuration */ + uint8_t bConfigurationValue; + + /** Index of string descriptor describing this configuration */ + uint8_t iConfiguration; + + /** Configuration characteristics */ + uint8_t bmAttributes; + + /** Maximum power consumption of the USB device from this bus in this + * configuration when the device is fully opreation. Expressed in units + * of 2 mA. */ + uint8_t MaxPower; + + /** Array of interfaces supported by this configuration. The length of + * this array is determined by the bNumInterfaces field. */ + const struct libusb_interface *interface; + + /** Extra descriptors. If libusb encounters unknown configuration + * descriptors, it will store them here, should you wish to parse them. */ + const unsigned char *extra; + + /** Length of the extra descriptors, in bytes. */ + int extra_length; +}; + +/** \ingroup asyncio + * Setup packet for control transfers. */ +struct libusb_control_setup { + /** Request type. Bits 0:4 determine recipient, see + * \ref libusb_request_recipient. Bits 5:6 determine type, see + * \ref libusb_request_type. Bit 7 determines data transfer direction, see + * \ref libusb_endpoint_direction. + */ + uint8_t bmRequestType; + + /** Request. If the type bits of bmRequestType are equal to + * \ref libusb_request_type::LIBUSB_REQUEST_TYPE_STANDARD + * "LIBUSB_REQUEST_TYPE_STANDARD" then this field refers to + * \ref libusb_standard_request. For other cases, use of this field is + * application-specific. */ + uint8_t bRequest; + + /** Value. Varies according to request */ + uint16_t wValue; + + /** Index. Varies according to request, typically used to pass an index + * or offset */ + uint16_t wIndex; + + /** Number of bytes to transfer */ + uint16_t wLength; +}; + +#define LIBUSB_CONTROL_SETUP_SIZE (sizeof(struct libusb_control_setup)) + +/* libusb */ + +struct libusb_context; +struct libusb_device; +struct libusb_device_handle; + +/** \ingroup lib + * Structure representing the libusb version. + */ +struct libusb_version { + /** Library major version. */ + const uint16_t major; + + /** Library minor version. */ + const uint16_t minor; + + /** Library micro version. */ + const uint16_t micro; + + /** Library nano version. This field is only nonzero on Windows. */ + const uint16_t nano; + + /** Library release candidate suffix string, e.g. "-rc4". */ + const char *rc; + + /** Output of `git describe --tags` at library build time. */ + const char *describe; +}; + +/** \ingroup lib + * Structure representing a libusb session. The concept of individual libusb + * sessions allows for your program to use two libraries (or dynamically + * load two modules) which both independently use libusb. This will prevent + * interference between the individual libusb users - for example + * libusb_set_debug() will not affect the other user of the library, and + * libusb_exit() will not destroy resources that the other user is still + * using. + * + * Sessions are created by libusb_init() and destroyed through libusb_exit(). + * If your application is guaranteed to only ever include a single libusb + * user (i.e. you), you do not have to worry about contexts: pass NULL in + * every function call where a context is required. The default context + * will be used. + * + * For more information, see \ref contexts. + */ +typedef struct libusb_context libusb_context; + +/** \ingroup dev + * Structure representing a USB device detected on the system. This is an + * opaque type for which you are only ever provided with a pointer, usually + * originating from libusb_get_device_list(). + * + * Certain operations can be performed on a device, but in order to do any + * I/O you will have to first obtain a device handle using libusb_open(). + * + * Devices are reference counted with libusb_ref_device() and + * libusb_unref_device(), and are freed when the reference count reaches 0. + * New devices presented by libusb_get_device_list() have a reference count of + * 1, and libusb_free_device_list() can optionally decrease the reference count + * on all devices in the list. libusb_open() adds another reference which is + * later destroyed by libusb_close(). + */ +typedef struct libusb_device libusb_device; + + +/** \ingroup dev + * Structure representing a handle on a USB device. This is an opaque type for + * which you are only ever provided with a pointer, usually originating from + * libusb_open(). + * + * A device handle is used to perform I/O and other operations. When finished + * with a device handle, you should call libusb_close(). + */ +typedef struct libusb_device_handle libusb_device_handle; + +/** \ingroup dev + * Speed codes. Indicates the speed at which the device is operating. + */ +enum libusb_speed { + /** The OS doesn't report or know the device speed. */ + LIBUSB_SPEED_UNKNOWN = 0, + + /** The device is operating at low speed (1.5MBit/s). */ + LIBUSB_SPEED_LOW = 1, + + /** The device is operating at full speed (12MBit/s). */ + LIBUSB_SPEED_FULL = 2, + + /** The device is operating at high speed (480MBit/s). */ + LIBUSB_SPEED_HIGH = 3, + + /** The device is operating at super speed (5000MBit/s). */ + LIBUSB_SPEED_SUPER = 4, +}; + +/** \ingroup misc + * Error codes. Most libusb functions return 0 on success or one of these + * codes on failure. + * You can call \ref libusb_error_name() to retrieve a string representation + * of an error code. + */ +enum libusb_error { + /** Success (no error) */ + LIBUSB_SUCCESS = 0, + + /** Input/output error */ + LIBUSB_ERROR_IO = -1, + + /** Invalid parameter */ + LIBUSB_ERROR_INVALID_PARAM = -2, + + /** Access denied (insufficient permissions) */ + LIBUSB_ERROR_ACCESS = -3, + + /** No such device (it may have been disconnected) */ + LIBUSB_ERROR_NO_DEVICE = -4, + + /** Entity not found */ + LIBUSB_ERROR_NOT_FOUND = -5, + + /** Resource busy */ + LIBUSB_ERROR_BUSY = -6, + + /** Operation timed out */ + LIBUSB_ERROR_TIMEOUT = -7, + + /** Overflow */ + LIBUSB_ERROR_OVERFLOW = -8, + + /** Pipe error */ + LIBUSB_ERROR_PIPE = -9, + + /** System call interrupted (perhaps due to signal) */ + LIBUSB_ERROR_INTERRUPTED = -10, + + /** Insufficient memory */ + LIBUSB_ERROR_NO_MEM = -11, + + /** Operation not supported or unimplemented on this platform */ + LIBUSB_ERROR_NOT_SUPPORTED = -12, + + /* NB! Remember to update libusb_error_name() + when adding new error codes here. */ + + /** Other error */ + LIBUSB_ERROR_OTHER = -99, +}; + +/** \ingroup asyncio + * Transfer status codes */ +enum libusb_transfer_status { + /** Transfer completed without error. Note that this does not indicate + * that the entire amount of requested data was transferred. */ + LIBUSB_TRANSFER_COMPLETED, + + /** Transfer failed */ + LIBUSB_TRANSFER_ERROR, + + /** Transfer timed out */ + LIBUSB_TRANSFER_TIMED_OUT, + + /** Transfer was cancelled */ + LIBUSB_TRANSFER_CANCELLED, + + /** For bulk/interrupt endpoints: halt condition detected (endpoint + * stalled). For control endpoints: control request not supported. */ + LIBUSB_TRANSFER_STALL, + + /** Device was disconnected */ + LIBUSB_TRANSFER_NO_DEVICE, + + /** Device sent more data than requested */ + LIBUSB_TRANSFER_OVERFLOW, +}; + +/** \ingroup asyncio + * libusb_transfer.flags values */ +enum libusb_transfer_flags { + /** Report short frames as errors */ + LIBUSB_TRANSFER_SHORT_NOT_OK = 1<<0, + + /** Automatically free() transfer buffer during libusb_free_transfer() */ + LIBUSB_TRANSFER_FREE_BUFFER = 1<<1, + + /** Automatically call libusb_free_transfer() after callback returns. + * If this flag is set, it is illegal to call libusb_free_transfer() + * from your transfer callback, as this will result in a double-free + * when this flag is acted upon. */ + LIBUSB_TRANSFER_FREE_TRANSFER = 1<<2, + + /** Terminate transfers that are a multiple of the endpoint's + * wMaxPacketSize with an extra zero length packet. This is useful + * when a device protocol mandates that each logical request is + * terminated by an incomplete packet (i.e. the logical requests are + * not separated by other means). + * + * This flag only affects host-to-device transfers to bulk and interrupt + * endpoints. In other situations, it is ignored. + * + * This flag only affects transfers with a length that is a multiple of + * the endpoint's wMaxPacketSize. On transfers of other lengths, this + * flag has no effect. Therefore, if you are working with a device that + * needs a ZLP whenever the end of the logical request falls on a packet + * boundary, then it is sensible to set this flag on every + * transfer (you do not have to worry about only setting it on transfers + * that end on the boundary). + * + * This flag is currently only supported on Linux. + * On other systems, libusb_submit_transfer() will return + * LIBUSB_ERROR_NOT_SUPPORTED for every transfer where this flag is set. + * + * Available since libusb-1.0.9. + */ + LIBUSB_TRANSFER_ADD_ZERO_PACKET = 1 << 3, +}; + +/** \ingroup asyncio + * Isochronous packet descriptor. */ +struct libusb_iso_packet_descriptor { + /** Length of data to request in this packet */ + unsigned int length; + + /** Amount of data that was actually transferred */ + unsigned int actual_length; + + /** Status code for this packet */ + enum libusb_transfer_status status; +}; + +struct libusb_transfer; + +/** \ingroup asyncio + * Asynchronous transfer callback function type. When submitting asynchronous + * transfers, you pass a pointer to a callback function of this type via the + * \ref libusb_transfer::callback "callback" member of the libusb_transfer + * structure. libusb will call this function later, when the transfer has + * completed or failed. See \ref asyncio for more information. + * \param transfer The libusb_transfer struct the callback function is being + * notified about. + */ +typedef void (LIBUSB_CALL *libusb_transfer_cb_fn)(struct libusb_transfer *transfer); + +/** \ingroup asyncio + * The generic USB transfer structure. The user populates this structure and + * then submits it in order to request a transfer. After the transfer has + * completed, the library populates the transfer with the results and passes + * it back to the user. + */ +struct libusb_transfer { + /** Handle of the device that this transfer will be submitted to */ + libusb_device_handle *dev_handle; + + /** A bitwise OR combination of \ref libusb_transfer_flags. */ + uint8_t flags; + + /** Address of the endpoint where this transfer will be sent. */ + unsigned char endpoint; + + /** Type of the endpoint from \ref libusb_transfer_type */ + unsigned char type; + + /** Timeout for this transfer in millseconds. A value of 0 indicates no + * timeout. */ + unsigned int timeout; + + /** The status of the transfer. Read-only, and only for use within + * transfer callback function. + * + * If this is an isochronous transfer, this field may read COMPLETED even + * if there were errors in the frames. Use the + * \ref libusb_iso_packet_descriptor::status "status" field in each packet + * to determine if errors occurred. */ + enum libusb_transfer_status status; + + /** Length of the data buffer */ + int length; + + /** Actual length of data that was transferred. Read-only, and only for + * use within transfer callback function. Not valid for isochronous + * endpoint transfers. */ + int actual_length; + + /** Callback function. This will be invoked when the transfer completes, + * fails, or is cancelled. */ + libusb_transfer_cb_fn callback; + + /** User context data to pass to the callback function. */ + void *user_data; + + /** Data buffer */ + unsigned char *buffer; + + /** Number of isochronous packets. Only used for I/O with isochronous + * endpoints. */ + int num_iso_packets; + + /** Isochronous packet descriptors, for isochronous transfers only. */ + struct libusb_iso_packet_descriptor iso_packet_desc +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) + [] /* valid C99 code */ +#else + [0] /* non-standard, but usually working code */ +#endif + ; +}; + +/** \ingroup misc + * Capabilities supported by this instance of libusb. Test if the loaded + * library supports a given capability by calling + * \ref libusb_has_capability(). + */ +enum libusb_capability { + /** The libusb_has_capability() API is available. */ + LIBUSB_CAP_HAS_CAPABILITY = 0, +}; + +int LIBUSB_CALL libusb_init(libusb_context **ctx); +void LIBUSB_CALL libusb_exit(libusb_context *ctx); +void LIBUSB_CALL libusb_set_debug(libusb_context *ctx, int level); +const struct libusb_version * LIBUSB_CALL libusb_get_version(void); +int LIBUSB_CALL libusb_has_capability(uint32_t capability); +const char * LIBUSB_CALL libusb_error_name(int errcode); + +ssize_t LIBUSB_CALL libusb_get_device_list(libusb_context *ctx, + libusb_device ***list); +void LIBUSB_CALL libusb_free_device_list(libusb_device **list, + int unref_devices); +libusb_device * LIBUSB_CALL libusb_ref_device(libusb_device *dev); +void LIBUSB_CALL libusb_unref_device(libusb_device *dev); + +int LIBUSB_CALL libusb_get_configuration(libusb_device_handle *dev, + int *config); +int LIBUSB_CALL libusb_get_device_descriptor(libusb_device *dev, + struct libusb_device_descriptor *desc); +int LIBUSB_CALL libusb_get_active_config_descriptor(libusb_device *dev, + struct libusb_config_descriptor **config); +int LIBUSB_CALL libusb_get_config_descriptor(libusb_device *dev, + uint8_t config_index, struct libusb_config_descriptor **config); +int LIBUSB_CALL libusb_get_config_descriptor_by_value(libusb_device *dev, + uint8_t bConfigurationValue, struct libusb_config_descriptor **config); +void LIBUSB_CALL libusb_free_config_descriptor( + struct libusb_config_descriptor *config); +uint8_t LIBUSB_CALL libusb_get_bus_number(libusb_device *dev); +uint8_t LIBUSB_CALL libusb_get_device_address(libusb_device *dev); +int LIBUSB_CALL libusb_get_device_speed(libusb_device *dev); +int LIBUSB_CALL libusb_get_max_packet_size(libusb_device *dev, + unsigned char endpoint); +int LIBUSB_CALL libusb_get_max_iso_packet_size(libusb_device *dev, + unsigned char endpoint); + +int LIBUSB_CALL libusb_open(libusb_device *dev, libusb_device_handle **handle); +void LIBUSB_CALL libusb_close(libusb_device_handle *dev_handle); +libusb_device * LIBUSB_CALL libusb_get_device(libusb_device_handle *dev_handle); + +int LIBUSB_CALL libusb_set_configuration(libusb_device_handle *dev, + int configuration); +int LIBUSB_CALL libusb_claim_interface(libusb_device_handle *dev, + int interface_number); +int LIBUSB_CALL libusb_release_interface(libusb_device_handle *dev, + int interface_number); + +libusb_device_handle * LIBUSB_CALL libusb_open_device_with_vid_pid( + libusb_context *ctx, uint16_t vendor_id, uint16_t product_id); + +int LIBUSB_CALL libusb_set_interface_alt_setting(libusb_device_handle *dev, + int interface_number, int alternate_setting); +int LIBUSB_CALL libusb_clear_halt(libusb_device_handle *dev, + unsigned char endpoint); +int LIBUSB_CALL libusb_reset_device(libusb_device_handle *dev); + +int LIBUSB_CALL libusb_kernel_driver_active(libusb_device_handle *dev, + int interface_number); +int LIBUSB_CALL libusb_detach_kernel_driver(libusb_device_handle *dev, + int interface_number); +int LIBUSB_CALL libusb_attach_kernel_driver(libusb_device_handle *dev, + int interface_number); + +/* async I/O */ + +/** \ingroup asyncio + * Get the data section of a control transfer. This convenience function is here + * to remind you that the data does not start until 8 bytes into the actual + * buffer, as the setup packet comes first. + * + * Calling this function only makes sense from a transfer callback function, + * or situations where you have already allocated a suitably sized buffer at + * transfer->buffer. + * + * \param transfer a transfer + * \returns pointer to the first byte of the data section + */ +static inline unsigned char *libusb_control_transfer_get_data( + struct libusb_transfer *transfer) +{ + return transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE; +} + +/** \ingroup asyncio + * Get the control setup packet of a control transfer. This convenience + * function is here to remind you that the control setup occupies the first + * 8 bytes of the transfer data buffer. + * + * Calling this function only makes sense from a transfer callback function, + * or situations where you have already allocated a suitably sized buffer at + * transfer->buffer. + * + * \param transfer a transfer + * \returns a casted pointer to the start of the transfer data buffer + */ +static inline struct libusb_control_setup *libusb_control_transfer_get_setup( + struct libusb_transfer *transfer) +{ + return (struct libusb_control_setup *) transfer->buffer; +} + +/** \ingroup asyncio + * Helper function to populate the setup packet (first 8 bytes of the data + * buffer) for a control transfer. The wIndex, wValue and wLength values should + * be given in host-endian byte order. + * + * \param buffer buffer to output the setup packet into + * \param bmRequestType see the + * \ref libusb_control_setup::bmRequestType "bmRequestType" field of + * \ref libusb_control_setup + * \param bRequest see the + * \ref libusb_control_setup::bRequest "bRequest" field of + * \ref libusb_control_setup + * \param wValue see the + * \ref libusb_control_setup::wValue "wValue" field of + * \ref libusb_control_setup + * \param wIndex see the + * \ref libusb_control_setup::wIndex "wIndex" field of + * \ref libusb_control_setup + * \param wLength see the + * \ref libusb_control_setup::wLength "wLength" field of + * \ref libusb_control_setup + */ +static inline void libusb_fill_control_setup(unsigned char *buffer, + uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, + uint16_t wLength) +{ + struct libusb_control_setup *setup = (struct libusb_control_setup *) buffer; + setup->bmRequestType = bmRequestType; + setup->bRequest = bRequest; + setup->wValue = libusb_cpu_to_le16(wValue); + setup->wIndex = libusb_cpu_to_le16(wIndex); + setup->wLength = libusb_cpu_to_le16(wLength); +} + +struct libusb_transfer * LIBUSB_CALL libusb_alloc_transfer(int iso_packets); +int LIBUSB_CALL libusb_submit_transfer(struct libusb_transfer *transfer); +int LIBUSB_CALL libusb_cancel_transfer(struct libusb_transfer *transfer); +void LIBUSB_CALL libusb_free_transfer(struct libusb_transfer *transfer); + +/** \ingroup asyncio + * Helper function to populate the required \ref libusb_transfer fields + * for a control transfer. + * + * If you pass a transfer buffer to this function, the first 8 bytes will + * be interpreted as a control setup packet, and the wLength field will be + * used to automatically populate the \ref libusb_transfer::length "length" + * field of the transfer. Therefore the recommended approach is: + * -# Allocate a suitably sized data buffer (including space for control setup) + * -# Call libusb_fill_control_setup() + * -# If this is a host-to-device transfer with a data stage, put the data + * in place after the setup packet + * -# Call this function + * -# Call libusb_submit_transfer() + * + * It is also legal to pass a NULL buffer to this function, in which case this + * function will not attempt to populate the length field. Remember that you + * must then populate the buffer and length fields later. + * + * \param transfer the transfer to populate + * \param dev_handle handle of the device that will handle the transfer + * \param buffer data buffer. If provided, this function will interpret the + * first 8 bytes as a setup packet and infer the transfer length from that. + * \param callback callback function to be invoked on transfer completion + * \param user_data user data to pass to callback function + * \param timeout timeout for the transfer in milliseconds + */ +static inline void libusb_fill_control_transfer( + struct libusb_transfer *transfer, libusb_device_handle *dev_handle, + unsigned char *buffer, libusb_transfer_cb_fn callback, void *user_data, + unsigned int timeout) +{ + struct libusb_control_setup *setup = (struct libusb_control_setup *) buffer; + transfer->dev_handle = dev_handle; + transfer->endpoint = 0; + transfer->type = LIBUSB_TRANSFER_TYPE_CONTROL; + transfer->timeout = timeout; + transfer->buffer = buffer; + if (setup) + transfer->length = LIBUSB_CONTROL_SETUP_SIZE + + libusb_le16_to_cpu(setup->wLength); + transfer->user_data = user_data; + transfer->callback = callback; +} + +/** \ingroup asyncio + * Helper function to populate the required \ref libusb_transfer fields + * for a bulk transfer. + * + * \param transfer the transfer to populate + * \param dev_handle handle of the device that will handle the transfer + * \param endpoint address of the endpoint where this transfer will be sent + * \param buffer data buffer + * \param length length of data buffer + * \param callback callback function to be invoked on transfer completion + * \param user_data user data to pass to callback function + * \param timeout timeout for the transfer in milliseconds + */ +static inline void libusb_fill_bulk_transfer(struct libusb_transfer *transfer, + libusb_device_handle *dev_handle, unsigned char endpoint, + unsigned char *buffer, int length, libusb_transfer_cb_fn callback, + void *user_data, unsigned int timeout) +{ + transfer->dev_handle = dev_handle; + transfer->endpoint = endpoint; + transfer->type = LIBUSB_TRANSFER_TYPE_BULK; + transfer->timeout = timeout; + transfer->buffer = buffer; + transfer->length = length; + transfer->user_data = user_data; + transfer->callback = callback; +} + +/** \ingroup asyncio + * Helper function to populate the required \ref libusb_transfer fields + * for an interrupt transfer. + * + * \param transfer the transfer to populate + * \param dev_handle handle of the device that will handle the transfer + * \param endpoint address of the endpoint where this transfer will be sent + * \param buffer data buffer + * \param length length of data buffer + * \param callback callback function to be invoked on transfer completion + * \param user_data user data to pass to callback function + * \param timeout timeout for the transfer in milliseconds + */ +static inline void libusb_fill_interrupt_transfer( + struct libusb_transfer *transfer, libusb_device_handle *dev_handle, + unsigned char endpoint, unsigned char *buffer, int length, + libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout) +{ + transfer->dev_handle = dev_handle; + transfer->endpoint = endpoint; + transfer->type = LIBUSB_TRANSFER_TYPE_INTERRUPT; + transfer->timeout = timeout; + transfer->buffer = buffer; + transfer->length = length; + transfer->user_data = user_data; + transfer->callback = callback; +} + +/** \ingroup asyncio + * Helper function to populate the required \ref libusb_transfer fields + * for an isochronous transfer. + * + * \param transfer the transfer to populate + * \param dev_handle handle of the device that will handle the transfer + * \param endpoint address of the endpoint where this transfer will be sent + * \param buffer data buffer + * \param length length of data buffer + * \param num_iso_packets the number of isochronous packets + * \param callback callback function to be invoked on transfer completion + * \param user_data user data to pass to callback function + * \param timeout timeout for the transfer in milliseconds + */ +static inline void libusb_fill_iso_transfer(struct libusb_transfer *transfer, + libusb_device_handle *dev_handle, unsigned char endpoint, + unsigned char *buffer, int length, int num_iso_packets, + libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout) +{ + transfer->dev_handle = dev_handle; + transfer->endpoint = endpoint; + transfer->type = LIBUSB_TRANSFER_TYPE_ISOCHRONOUS; + transfer->timeout = timeout; + transfer->buffer = buffer; + transfer->length = length; + transfer->num_iso_packets = num_iso_packets; + transfer->user_data = user_data; + transfer->callback = callback; +} + +/** \ingroup asyncio + * Convenience function to set the length of all packets in an isochronous + * transfer, based on the num_iso_packets field in the transfer structure. + * + * \param transfer a transfer + * \param length the length to set in each isochronous packet descriptor + * \see libusb_get_max_packet_size() + */ +static inline void libusb_set_iso_packet_lengths( + struct libusb_transfer *transfer, unsigned int length) +{ + int i; + for (i = 0; i < transfer->num_iso_packets; i++) + transfer->iso_packet_desc[i].length = length; +} + +/** \ingroup asyncio + * Convenience function to locate the position of an isochronous packet + * within the buffer of an isochronous transfer. + * + * This is a thorough function which loops through all preceding packets, + * accumulating their lengths to find the position of the specified packet. + * Typically you will assign equal lengths to each packet in the transfer, + * and hence the above method is sub-optimal. You may wish to use + * libusb_get_iso_packet_buffer_simple() instead. + * + * \param transfer a transfer + * \param packet the packet to return the address of + * \returns the base address of the packet buffer inside the transfer buffer, + * or NULL if the packet does not exist. + * \see libusb_get_iso_packet_buffer_simple() + */ +static inline unsigned char *libusb_get_iso_packet_buffer( + struct libusb_transfer *transfer, unsigned int packet) +{ + int i; + size_t offset = 0; + int _packet; + + /* oops..slight bug in the API. packet is an unsigned int, but we use + * signed integers almost everywhere else. range-check and convert to + * signed to avoid compiler warnings. FIXME for libusb-2. */ + if (packet > INT_MAX) + return NULL; + _packet = packet; + + if (_packet >= transfer->num_iso_packets) + return NULL; + + for (i = 0; i < _packet; i++) + offset += transfer->iso_packet_desc[i].length; + + return transfer->buffer + offset; +} + +/** \ingroup asyncio + * Convenience function to locate the position of an isochronous packet + * within the buffer of an isochronous transfer, for transfers where each + * packet is of identical size. + * + * This function relies on the assumption that every packet within the transfer + * is of identical size to the first packet. Calculating the location of + * the packet buffer is then just a simple calculation: + * buffer + (packet_size * packet) + * + * Do not use this function on transfers other than those that have identical + * packet lengths for each packet. + * + * \param transfer a transfer + * \param packet the packet to return the address of + * \returns the base address of the packet buffer inside the transfer buffer, + * or NULL if the packet does not exist. + * \see libusb_get_iso_packet_buffer() + */ +static inline unsigned char *libusb_get_iso_packet_buffer_simple( + struct libusb_transfer *transfer, unsigned int packet) +{ + int _packet; + + /* oops..slight bug in the API. packet is an unsigned int, but we use + * signed integers almost everywhere else. range-check and convert to + * signed to avoid compiler warnings. FIXME for libusb-2. */ + if (packet > INT_MAX) + return NULL; + _packet = packet; + + if (_packet >= transfer->num_iso_packets) + return NULL; + + return transfer->buffer + (transfer->iso_packet_desc[0].length * _packet); +} + +/* sync I/O */ + +int LIBUSB_CALL libusb_control_transfer(libusb_device_handle *dev_handle, + uint8_t request_type, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, + unsigned char *data, uint16_t wLength, unsigned int timeout); + +int LIBUSB_CALL libusb_bulk_transfer(libusb_device_handle *dev_handle, + unsigned char endpoint, unsigned char *data, int length, + int *actual_length, unsigned int timeout); + +int LIBUSB_CALL libusb_interrupt_transfer(libusb_device_handle *dev_handle, + unsigned char endpoint, unsigned char *data, int length, + int *actual_length, unsigned int timeout); + +/** \ingroup desc + * Retrieve a descriptor from the default control pipe. + * This is a convenience function which formulates the appropriate control + * message to retrieve the descriptor. + * + * \param dev a device handle + * \param desc_type the descriptor type, see \ref libusb_descriptor_type + * \param desc_index the index of the descriptor to retrieve + * \param data output buffer for descriptor + * \param length size of data buffer + * \returns number of bytes returned in data, or LIBUSB_ERROR code on failure + */ +static inline int libusb_get_descriptor(libusb_device_handle *dev, + uint8_t desc_type, uint8_t desc_index, unsigned char *data, int length) +{ + return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, + LIBUSB_REQUEST_GET_DESCRIPTOR, (desc_type << 8) | desc_index, 0, data, + (uint16_t) length, 1000); +} + +/** \ingroup desc + * Retrieve a descriptor from a device. + * This is a convenience function which formulates the appropriate control + * message to retrieve the descriptor. The string returned is Unicode, as + * detailed in the USB specifications. + * + * \param dev a device handle + * \param desc_index the index of the descriptor to retrieve + * \param langid the language ID for the string descriptor + * \param data output buffer for descriptor + * \param length size of data buffer + * \returns number of bytes returned in data, or LIBUSB_ERROR code on failure + * \see libusb_get_string_descriptor_ascii() + */ +static inline int libusb_get_string_descriptor(libusb_device_handle *dev, + uint8_t desc_index, uint16_t langid, unsigned char *data, int length) +{ + return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, + LIBUSB_REQUEST_GET_DESCRIPTOR, (uint16_t)((LIBUSB_DT_STRING << 8) | desc_index), + langid, data, (uint16_t) length, 1000); +} + +int LIBUSB_CALL libusb_get_string_descriptor_ascii(libusb_device_handle *dev, + uint8_t desc_index, unsigned char *data, int length); + +/* polling and timeouts */ + +int LIBUSB_CALL libusb_try_lock_events(libusb_context *ctx); +void LIBUSB_CALL libusb_lock_events(libusb_context *ctx); +void LIBUSB_CALL libusb_unlock_events(libusb_context *ctx); +int LIBUSB_CALL libusb_event_handling_ok(libusb_context *ctx); +int LIBUSB_CALL libusb_event_handler_active(libusb_context *ctx); +void LIBUSB_CALL libusb_lock_event_waiters(libusb_context *ctx); +void LIBUSB_CALL libusb_unlock_event_waiters(libusb_context *ctx); +int LIBUSB_CALL libusb_wait_for_event(libusb_context *ctx, struct timeval *tv); + +int LIBUSB_CALL libusb_handle_events_timeout(libusb_context *ctx, + struct timeval *tv); +int LIBUSB_CALL libusb_handle_events_timeout_completed(libusb_context *ctx, + struct timeval *tv, int *completed); +int LIBUSB_CALL libusb_handle_events(libusb_context *ctx); +int LIBUSB_CALL libusb_handle_events_completed(libusb_context *ctx, int *completed); +int LIBUSB_CALL libusb_handle_events_locked(libusb_context *ctx, + struct timeval *tv); +int LIBUSB_CALL libusb_pollfds_handle_timeouts(libusb_context *ctx); +int LIBUSB_CALL libusb_get_next_timeout(libusb_context *ctx, + struct timeval *tv); + +/** \ingroup poll + * File descriptor for polling + */ +struct libusb_pollfd { + /** Numeric file descriptor */ + int fd; + + /** Event flags to poll for from . POLLIN indicates that you + * should monitor this file descriptor for becoming ready to read from, + * and POLLOUT indicates that you should monitor this file descriptor for + * nonblocking write readiness. */ + short events; +}; + +/** \ingroup poll + * Callback function, invoked when a new file descriptor should be added + * to the set of file descriptors monitored for events. + * \param fd the new file descriptor + * \param events events to monitor for, see \ref libusb_pollfd for a + * description + * \param user_data User data pointer specified in + * libusb_set_pollfd_notifiers() call + * \see libusb_set_pollfd_notifiers() + */ +typedef void (LIBUSB_CALL *libusb_pollfd_added_cb)(int fd, short events, + void *user_data); + +/** \ingroup poll + * Callback function, invoked when a file descriptor should be removed from + * the set of file descriptors being monitored for events. After returning + * from this callback, do not use that file descriptor again. + * \param fd the file descriptor to stop monitoring + * \param user_data User data pointer specified in + * libusb_set_pollfd_notifiers() call + * \see libusb_set_pollfd_notifiers() + */ +typedef void (LIBUSB_CALL *libusb_pollfd_removed_cb)(int fd, void *user_data); + +const struct libusb_pollfd ** LIBUSB_CALL libusb_get_pollfds( + libusb_context *ctx); +void LIBUSB_CALL libusb_set_pollfd_notifiers(libusb_context *ctx, + libusb_pollfd_added_cb added_cb, libusb_pollfd_removed_cb removed_cb, + void *user_data); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Externals/libusb/win32/libusb-1.0.lib b/Externals/libusb/win32/libusb-1.0.lib new file mode 100644 index 0000000000000000000000000000000000000000..007a1e830b07b8321c4534f3fc3bcb19c2b15829 GIT binary patch literal 704170 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 literal 0 HcmV?d00001 diff --git a/Externals/libusb/x64/libusb-1.0.lib b/Externals/libusb/x64/libusb-1.0.lib new file mode 100644 index 0000000000000000000000000000000000000000..0f4682497e90adaa158874aa309e04c1dc35715e GIT binary patch literal 734478 zcmeEv34A0)^?y%iFLoun42pmP%K~!9!d_Vx@Mn6ayQimT`ZC8Z$igs5CYxcCnJ|;= zfr<-qi3ccn@Iz2kP*Frd0R=@65Jgm!pEviZBEnBWMSt-BzN+q?>dqva?BMbH{ee$< zlbNb-y?XWP)vH&pUhn&+Vy%DZ&GQdm9Q|+k%8nIlj$F06qa*tHGXKvN%Z^yFg8hEt zd`U|DLXs{Uc;)969=sw0ugE|s1G83J(oBD5A22L6`zJLL1$+{RSL^iSgvZgj?%e*Di!=FlKyI1Ng=1?1+|fGMTiSQ*(*~{FRaKR;R7B zmNM)qKuSRf1Jj!;5}vrE)1ZmsORFbxc+@v$1bAE8}>EqpT}e z2CAFu(Qj=%r)4r;KyZ|(Bd9N$rYdXA)C7u;@NCP-xapii9qmYYW(0XnMs;*Ilhrtz z203PZ*EPz3!*%S;=ooS9QxOJ5057#JRo z7O+jjOQrLMqW5&U&V&ZiDJ7lHW(+-L5Mz4leTA-4alk8&mLfPPr{**xr`o!r+6ALD zR_HGG4VNn$nBaz@iE>&d@2c6f7Avt1J63Q4qV8oqJ)3farc-_B^~7OGE17&Y zXK0y_#?0_|eW+uTk((!_$Ql2%hr zF6V>=L-xdoL`f^J>pFT9hm4Jlsu*_0(X!A1e#wxN6H7W)*7cm+1P)ConN8UlQ&q#B zhnN%S%%)W@lgEI^xjwO^W_xMO!+3`#6f~V|O0}JAP%>ougp#>*Dre^{h$Wxf8pNZ& zR4}y(9m=I$Gnd0+#Y#6g#Sj^I@;-oVg!~?4h z*FYvTLAf|wJ|(7uRK?9Y*|hD3t%njfp>;QxQSDU7q)bj+cSm;>!V68JhcEb-3KWH7Yb2MbB88Zop9R3wKXdIBVxK zrslZ{N{x?dWgx4=#d;lbUXQUkqvX|m-pn<`5rwrkft0`60VHz~+VQj<=C6j@0I(k#+iG{OS7+`iT zD6LnOhH1Ry8vorzh*#xvZ^+Dm~J|1bR%<%R6WQGlA?rXrRi#aH&w*RH}?c zt-!RQn0DHB+{TIz=!OVRAU>Beb;D{H5|Ppq2+8MD84U{uTY$?I%(1~Dlq+6oCiIwG1HkW zM73HOt5t`4YQ;)@FlM8tv(S@y4Wz4q?kSS#QW*0~$2yv&8RR&wr72)Ush?SPX6JG@ z5QLRn2qsjsu)3+4Z1XNm=&@_5ZZ?z62Q>8$7t13sIsHM1N|>o+Rn5_D*rtKd^cO4r zrQxs>6UytlW~NOB&xCA4sBH_w<$7$zGnJeLE6~X_@ayA!BjpB@;`n*Tva%^XT%=+n z5F0U50rxdK1Fht%j#&8^drSrMHJ8u3hEfOJ4OKlUf4sb!cCpC}`QuNj{^Ia(U$K8< zl>VHerBwsltCTVx&hpB@XchRK9b;Ru*I*MJ+f>moz>dm-EeOJt{$l?SR*q_Au)F~i zCQ!yPp}o1#7ShbIHSs zHa?79NTrHCRH5}dJBG&l0%2_~wYHK@o0gR_)5>7AhPgk~Kj1IQLa(A+uoV?7NI`mo z!3=E~EY;8)*a}V7nyP0pOioHMh{%xl1I)VX?5K~HXdmT!2t?M~il(P?8f+a*05aZu z`Rp4X-Z;r5uoc_Ia+UEyTQ{_%wo9j@rZhEgI?X1tKSN_9=O_kTBU)As7d%mi1$AQc z0+k#qW5Ktfu$^=V_SD0Wz2a~Ud)}?|%W$>7NGd2Ih>nuYTRBtp!iBq8W3fr)5I@{( z%1Vb`8c&69K-JdjPJwN7S8c&RhNiC-{>;K()h4uNq)pd$Vm%949t_xo*0N68$eQW& z)Z;v%H8bnw;n)gS_2zt>&|1zipjNDKv(~)Ygw|}s($o|za8YgcW8RHn0@h0-#nGW^ ztu%=y^Ay{#^R9_aZ&V*)MIcLL5&`oR&oMnSr;@S`wjbNoWNJ#u=$HJGle4bFEwgf|`rWG@!T{HEpK3?ZlQ2m=qx&3)ud{#vsiTt(R7EIorzV zwi(P&OqyU;`-7k{OS$0(SJR58=d8TtrX$^D1Jv0OHX1B(!7>?oE8$7bWHPz|Cu}fz zFw4~OS`Gb6(Jr_G`Q#H%tYoCHtHn-k2BgBhlsD4(ycM>D{!ODLOHF6si=WUEHkeTP zwXI$awnuGjt4JR9M!M%=iw?^D-R|}{sVZj5varIy){0M+*d!BMvMd+w3oUe+#q7-Z z!Y@{}vs&75G&?eKft*h^bPWJa(cPToI?(9;@-_{AqLOD?Sw|1o#Ayt-ret8AWN;cY zqn0x8pxS0m+`VsaxZw;ka+;a9)F@NNp#qNdg}PXQo#L}cPZw9^RR_piEv#$9aKknAyCpj23B{V2o+IKH%Gwooh%#)bURTDGp{G7dtx|r0R<2 z+P0a6Ql7Li6`A~cGcF3zbe z2vcvRF$A%m1}#!o8$Hb_ximDtiZ!EWi1872I2QU14Y2}OX^6Q~QmhI62oZ+cyupm< zp=W5^*GuR=HH-~mRfOstVW8J8lS6tI` z>>P7%Ha3I82th-$Zm=mb)Tn9Uq$-tj(^k|T;={p(lKLJHHdCvq-jXU`iB_Fd?PH@%o}iO=grWuHx1qCC~ivA zv}~G|l?I2>y6+g*lz8#lDAcyoa6jb z7^P|-9Fv&!QFe*STuUpqrs{C`W~Sm8n|1L~Qk8rvr|G#&bd>5vI{d-OPq?DQL>R~L zc>@RTnVdOQn=1o=28T68GqWz*+@5kPS2p4FNvsGf({sqt+l)WKw4(!6v?@xJrkL0) z<+HYpC5ObFPP(B(8i&{+b0H9dC~DviCaMdkyC}mkby_Q(JPuC)%<%@Xx&nLA!8rqo z5!YQ!JnBq2WU91Two46_2EC7v6vPR@pe|O}D#_GlY@Mu*4be0d=*=hyuE1GvE@p}Q z8$5r(f!vQ`-+{qx(2FA!BW=N9Jk@A231WP1RLm-tj*t%8-A%Dp@l_QTRDYvpPVrKh zD=9ZBdQFT^c04W+n^*E49KE?zw42kYX(_tyraj$>Dm1R~!OlQjG2NhvM@1pB6x(#* zk@2F9Hkm0CYdX5A!e1FRT)3m1CU$)cTG2Ot>cVhheM&j7&s7&5+tQX%-!C5%1Al>P zFc$tz8wL;DPD-(1w9-~N6!XrGWn3AO?3Qa{-F!CfA!f*&QIn36)**U05|2!jhO&>) z+-T0h{y|Tf89lxN)4rCr$`oY+lVg0Ok3_w(GT|5miXfMT3m=3wEFHFT(#AOSYh%I} zp*|b7h6dkN+OSj$j(l-eZy?L0!p^%uE!n%w{wP-(q0@Oj44`uwjgfX4*JN@YLu7Lw;-y=6M z^vqWDG)_BBC?6KQ=C56%XWfQl9SYS$EFndI`9~pH^$)*DDATx)f4PjqxXsL8)9%X8!Xdna>2?7M{40cVv{Y6EheoT~c?Ubi!EU1MY zF!880;q1gwR2P9(84CwDgBwOR)S89mLHp!ABZG5hKa@iqD&sIoB-w%KkX3CH0b4@H z=_2anL=MUu_q1# z|6$fv)BZ6u#X?SqNOTny9*&fifp?vUv3T5%Aa>q`I|@6(ER=xAplEZhlCx9T&0AnO zM`B!zvdC2|%P|o6iKv;tu{BZPJteK?+#H1%Mu>`Hc~}(<6`q!8p(s@-va6n}`J$hFrrRoLxl0H!N zNxsaw-93PI5N>K&de>y7dei(HiXWDWqvgV8e$ZIl1iv?}suEccOz{-3Roo~w+>$&l zsZc47lzkN%+o*_YB#8TMsikQv35{;mGsW99yh^}<-SFj|+G9zu8%&P@65b?h|w zZ|o?L|GJri4hzgFBjHH55NXdhxp5XfUKx{^UF#R+zx&_&-vkD)|0j2U1b>W53MNj_<$%FAXk#`S>sQ}G&;&|pz@Czu>5Z}q>K*!Hw;k>6d&n{ zACFh!<>C2`f8-bPqvsLJ13#s1x<*DBs21v5EB%EjPOnV`M;4Bq&Lawrha-b$QyeYX ziU+l7Q)C-CF8Zq*D&;yE9Mq9;_rp^XN`(Oue1R-O`YY#5l+ zAyPl98IGBQ&Sl>-YcTRXOg99dxG;`M%0{cPfOL3*T*L?%i979YVvfMYsqQx=vr zEL|B*!pEfap-@X(3W)gQs)bgE68}(QvWa4nk5h#j9WElMbwDa@fiX&=3qg}O5Ogbw zvg$%XKkNw&@$Z=x8&oXU1B?QMTWVAz!gzTSz5?GsNmPx?MpN(y0rHOtj{in;l>f$f8mJKL2y-x;Ekt)h7Yz50(;kDZq$I}T&>&vM@Ss-G zUOv!{Sc_Qa1_z?2$WXgBoZ=cH{)3`4VGD48^N7nRFrxodc%xNB!Ud{uszAFeWIKn@ zMW_MlUO4alSxa*mcaa=EhgV0NGBFoTOV1c~&=mCn&J8G6tZDH+Lu+Jg91f>5n7g!k zK&AUr$Pc;_8inErn-v)ckX$yK%9=P|4r&JhW)0$f_goXr1DbOP?9gx#D`=E9w0sMW z=P*%D0SPb0r|jS^VWNVqpiGe@z26*>}DqH?Qb_IT4=_`RpvvWX1Vc0MPg* z{K)T55Jv5ThF_EJ;zbIOvGQP9K#K*r293a$W7^pd$qqi|_FQwi#P7nUql$)WJRG+8 z-LU6>&4sLL^RUc!~1jD7l*c#|4PS)~l+*)jyFk6wwk6qOjYiQ;8V$0BMb2W?(Je29Ral>z zR6=XA>ZH(9Rm1s{*StDao4mJ(0fkf3$axSNp|@PU#yTCY00_0yaG-}R80`ug2M&$C za!M&m0#d;XG-@M&09Pw;MFB^GOgy7vCoWeQp|Bo#Xfks~g^DuSVc>d_snNae zQr~z~UOVVctZnEDH-yA$N2s_iWuy@j8w9UMzRe&mTFV)TQZLpj@oBIIyW>m-+Y;LU z!_2|4qgWZ@32&up<#C?FeO`K3m)lh^qgUBsC8u4@hQCsamh((cj{>Stel9LZ=hSFP zIMj}fmc+4eCJ!46>NL`}+mqG1qD6Hjr{&y~jk^<(qK;dzbvs_xa_I^w?Da@lx<=OB z9W9$tjI4z*Nh?eQg2O~#$l_&9x&ZIt{G0DM2K==hVMugR6=7=z{!dF!8yL?B5j_ZG zqFryKF!qZ%6VWW0I3w1=-DtT{&ni6gI&`p$yZupU#N`w+Zm+|9o#E_8aRe72-T`TALnl1=m9zae8_#u|9#x|FJVe1i3 z#Q=y2sTe4C0K7SA4Rm9%FMwn+ZYM-(~4xWK)oXTa}C zs&dDJzh;EegrUj7o9H6&3O)iBfyWMMnW4~8uhKq@D`*UMwQ*3V;%E_$ehXeR<&;tl zySKirV+fqaCT?uJR^eyk*oKYOuvsGev(X}Ay*$LB=k4feF)I2;)O_7RWfsL4Rzv`l zhxXq zvt2Foi*3fS8U}{h^>ioO$}`b@Gn8jvNQ<&xnlL3a%&OssxUGd=Vu> zKT?Dy6>d3a5K!V5nYiAdjGM-JI?jds`GhN0z3j9mq|8%HlkQz1T*xoe-7DyBwrhcx zs>Cjh)p2xyYiHpu5xz;>k}GV)#v3;k`5}N5k`uY^*!VcOlHd4*+)REg96?Wt$ku9h z1{0KK+aJFsvzdH*g<|}IGNh#t0u{Kt{L&M2msp&mO#Gza$I&(UCf=e?2)phk7H^_v z;$I6INc<`|aq&9p!_rTC2k8)vC85`Jg zILL^R^uG>j)Jn*!AnwQ-U(jAW%0BuevZ4irc~Mwq;s@b=if(O?50f14K>-%88H4xP z!gq&I9^CrmP8pvNWZPXbo34@UQSoVH5u~X6Q&W&6c?Q$TiE>ET;cXoIh8Rq=CyM$yz;2 z8a`mQbpQN0(kx@HwCZE?q`%*~lk|&(B+bSDbEE|OnT3DnvLAZ#|LHsWwDAf3jRa(P z@_N9;|MVF>8~+D28=u5~i(>L`XZr~JJNm0pic`UH14^kDm1vZTw$jG%I4Up4f2Zdh ziT}>aM3FdGI4bpa4t}C-1huHwa~Ln8Epz@v>u}Tt1;jP#Pqb7Vr}1r2mh*t)@Y3QZ zv;C2vdht=2np;83(UA;3o%k>3$!yTyXovsSptc?!xVJZ=CoA5;RpjVC0 z0$lopXlY|lYNZW7bMY5_N+ZZyq0yqxgHa92@Dfy-*WmSo-wC7fe^82lN*w3(M5*WB z&XQ!|f08ER7pEbLBbJjQ=*t#W@y|*-I^*b#7NQqtoaA)Iu_FKMtf)J5BWTA0T6Q4r^Pdt1^Gae^KTb*v z)xkC5nJ0#w`Nh28!r=dkl(IW~3l2fZFJnI1e{LwW1HZ>B`EU6vqmaSi|7`x-9SwL# z9`YScox20UhiL7UjJx3-tEd}yhcoW(a5!hncO6>E_4~5i5d0S>3~uRy;=e<_;nps9 zw|LoQ$I~6}SQPRrX_A{KWPT-0GRu3glHWH71Bwx~{(mt|@{UE~|9_HRc?WLawVacA zN3S@vkj=TZ8-xFnT+lmwnIHF^UP&WO3GgVun-Y)uiK{21k=~J8ph%VQFHJwa!+9Dg zjp@H2bM+1-hd@$^9ZjP1FUys^qxY|n_GibFZ2!{}27%gF5_^Yl(GuQX5E@aqPxmiP z?7d@m`4HULQbzC{x(SHu#IIx$57G_57=I;`_$!&j2idzpUcOA?EhKnDlJ!@zkn{0) zB@6j0S;&R=6upv#e221-|4T0Zw~+gM$8*%}aJGSeXj098PA2!4BYEevvcbKG(MRkVbMfh2-W`a*^I;_*uh{B0kPD@ z^wDH#CWTB+6LKR78Jz?4NET#d{$aUvCrfJl@+Umre!eC)!J=r?WN{t?^}ex(#u~aBw?#w~m$M4->}l*n{#FUR(BkEOchTXo$`X!J^IT3dg=1RmaPxEg`OT(?K??&xo~+1L!I6OLTr0kvFUXcFDoEv z^nVDYb{jz-7vem0sFJ8Q2<*L=InNXfM zUy@#WDIpD<_04lW<*j+~+E-ovi_hC%xcH~nEqO!tt?#+8P1^NUb0zw2>jiDnLSz=C z{|>{eqWj12S_=QaSJ!{(~FBkC&s&*|Bnpv`As)HVlX54tYqD zZji%2*)L(aawYuY%?C@;!;gf2M$479gkOw5pO6;s9Bnwnt8Wd*K}Y#oc4$1Lf-C<;yUy*Q)FL%9ZsfSSXGRVE*^7IBZ~ec*){LXng6|R=ftN zJS;68oZf`@^+~lJ(HH&F(t&DSTKd+qv~-=cQd;V6z)#-_X{oVQTB>L9mED6sx}~L= z>a-Ng3>4MU%)qoDr=bHk^+TQy8^yRRWocjeVaZW=<0;;SCGC>gYxzkl5@%O1>?<%- zi==I@yCji>WbM9o=WQ>&wEMQ%35otaggxKLo`=#iIe!+04sWo6n#SvMnVJSDSJRtg zYMR>yhYd-K5+DEAE+_tI-k!JY^ZHkvbL98G_;7Lo;h-iH0leQY6oHXY1nL7D!@*g< z>4?LY71x(5{lnt}rC`Vy^y&BBx$(X$c1w0`IpBq}mOi>?@>MNCqt$_djo1+}@Y!Fw z*88Bk{OJ#0e%p^KeFrMZowpCZiHmMs5M8WU0qLbJ{i9?ES})hv*Q?{Te*B4~tSskyoi+NkZ@zTK-kZ<(>xCm9{^;wk zy!Ug-g{?MPFAg*0Z_p_a+wma|p;oMn2d+w>^wXLGp#|DbE4U8`zJg@w% zCC0%cSO4{q_a6V>*FBc}%J#vxBl@L5hP-8Dl`-<4%Z48P_>0GE_{leKOa5g0$Wsev zKWR~h{Xb9Kd(w4tp1OC_M~**!;oc8DmV9A$D-#xpocp;Wf{$l+`SGu8>MY!~&x$?X zdRTeexyiq^245U5)W=6h8R@If`q8!H7oY!$?*G~C=XXEwUk4=r-Wqm;^hO)AZhUI% z!#hduxb22j^EVxF@=ud5zHDvaozwpKe&vQamp;)k`}O-i{om60FWh-t@_$~oMrbVh zxf=TA!MWr2`|w?_{=jJme&7d>r(R4-b6OhdflYoUb2jE|MDBRokGK7B{?D&C^D{p_ z;;1!$JvRALOC8~f(i`wAe_c7~%A4*w`=s3PtV`rwZb>Fu>H$yu-GIO5#$E2e_nE(b z=G^x`yR7rBi;qppEy4F8_4inPfHCICKi>ZMr|#VE=<%BtEc^Y@r(TmBp4$rVH;k7D z0^yN<{hdEw`~C7EZ`=CgJ3sT(HM=F>wteWSl>?u@jP8v?Sx@SjedT*szUI%@Ui+6n zC$l@ZLicEWh_be?V%U5B%vo^A{y%+jPxm{IjdlL=>}07m?CL0CGw6GsIrTl?7(C?g zpML&pdmZ`dwZBPzWY?F0>=g`K+5ei(gMV?^9S^Mg>&Bw|+k=zcuX!1;*D&m@=0X4Y zzE3QF+XeZzj~;a6XUCH(_GkrrgcbIUNZOkt5!Z~J@Vvp$zuju zgsu#8nLgo-kInnR<9FTsqZ2;&lQ%v8>En`WxkY4bWf;xY;Hei}bn0!pTy)bnp1Amf zkLQx#+1Mg-u+tdXG++MtxnKFf(zg3=O6H&ZN%GE?kO5n(*ZLXJTlW}!%NJjJ!sixV zaMqSfe|BJZ^6kSd5?w2C+xB-?9dP@317{!qAD_7DhR1%q;Pc5pS6e~G`%&vYqu;sn zM~^bEyzru9AKCfCx9#%XZzYc!Z3P)}S1FBc=F7m1`>osQiJp!_?e>p;NZWMx+)0N1NP}*Y0`w4M#2Bz4Dl}{EIhUczp7qlUt#=e*k01fZdbVpZ?6Zx?Z>PF5{+w zzwdlx^5K?%VIwfur5nC<-z^Kiv&*TAaxcAk>Cs!0N7q`R7qBCIEBH+P*{|O+`uvOE zy7&*z@3Ysz-%5V7-V*Te20pK!y653jiW?TZbj(qI`1*}~TYjCqy(Qe?Q}9+oyuFq& zKK;kro;V@<@Uz$4@{!zrNolMVnnyAD3^K7R7rzT~zuS_ZGw`TDwLfG&)_RpU;_X_jJ=2rXsmm$8)>gd&vb4 zEAj(B+;dg`)jxkGS$a=v;N=RvgNm``qGa1oKm5KsuKN2^!-@BO=)ql*sTQ$8cpa~0 zX5iO+`ZeEvR$sX7xl{hKBKgPfT$xnQYmM-}{@PaGZ@BRbm!I;r(~tP@9uNND8_)ja zhgT;Te6Tg_N(1}q%m3c>g*To1^UJS1Z_)nJo% zx%97(F23yHq1*>ICC{4<_&}MCg0?Kic4_fJC*dWzi&rdLzU<)86^s@F=jn^Lq)tfI zfA+2?&Od+Mp6|NANuE5N2Bz4D5%s>H?{f4LFAX36pKr~-RK4Z$GY^n7wZ<+>$am-V|#i^*!Me1QV!FZ$?zE1q&~ZOh&LyWI7T z7ye`U*>6s6zM(bRM{D&Vz9(CFney4UYWGs1V<1HtwFCK8!N0+>I?~%WK;fKjj zPKV=DXf2Q(I%2dRFMjXly*}CT+S{M|>(Q&nPfvdE(bnjO90ojbo_O7vpKjY|ruV$N z_fzjaY*n)ORBPDqX>7u2<|f9LKRmba*oRJ1%yag-YFIt-ox3HUY7xC!3<%%lnUCD| z#7lp<=J=1iFt%yVEsK($X%Tv)zQy0P{q7TAeBqWae5w2OmprrcO?%zCM{;S4{2s3j zkNCU!H_g7}ZGYKZseSpmefIj)=r68Le&f?}OC~6IjaO`P0Z;$n0KGeT#}((T`1Rk; z``Xv^WY=d}1Baj#$H%H{Ecf`*JJ0;)&8lr{$2>LgzUz-oe)5{uz!3v6GBC{DC&e2d z&Y%5oYUP)%eEcQtwg<0F-uac*z~Q1V;(fhbseJac7yW1A?F+y1!*{Pfe9boFqe=Ix zt)bI0v59XH-@E&UAAO{2pWRm{XJ7o56Tfq8@-2u-X=P6_(!YiAyRUfFojX7DmA2wv zYu|a-(;q)Sc}k1GPcPM<%&-1TL1Zu_Ch($`y~7aQKT~Gh~;}0yj?5mG% z8bAKBU6X??QjZg~abgdn{u^)o%_DDm_lw`F_s+iSp1n3n$qhf52K7^$71)_qxB__S zns45F*uItHPPph>2mffNV>**Vt)mb2S9}Ziv=jFE>+6-d58Qb2A1*m~!;vQ^%dMk> z^Zj_yF5}Iua}vvD{q&FdpX_qORmA3UsF8AcN)F1_!XKNVk|r* zU3ABq&*aRfPG0-QZ(i~7)gL-AIhVsvGs1~j;U9O^uBm5S29-90~d=PBp^{P3Onj#hv3*52f+f88<{HZye2<=)~s*C(&t`bgi_`-|6} z`P-Y5`?iiRz|VWjdr$4(wev&TeZN2a!5=*SaPqj;;o)9g-`Izq?;g8<_RmWe>8HQ> zfbIjm1<7N13)>$@KMs)p!CT1-7r9zqwB?W&f3xqeK6lSyn~g&^-L52W zeQ;)MjD=p}M9knY8BEc~e=(L%cgXunts_y^aFwc%II2_K%sV))4+^m+Fed zU{`V25A4ceZxLYAhGIA=-BweE(u*x$b#tXDF3Y3Oz;@$czw>FlTL7Evb-}FOY+mnY zem&{Y25THebyX{sv1~;h+%U4CwsJ-1Dg@8+T+poc&b;;~{n~Sc+ODFSc`IdQ=yGwv zz_kyrSi{9ap>{j3eS4BKU?-urr%ZXdnKizUSAX1Z{8f?aQ(Z!CR(p4$wxj5I&&b$n zK)E_p9v%<~k9GTXLS0wM*(p1#THqe}ztp~09^+oCzajrk%bA4G9K+E7IhuO3i z0}wk919+1NK<|f46;|k*d;j)zx8S86d|VZo9tm>gI}Tm;y~`gN%(}XetM$_T0XCuS*V{Fg4q2S!g>LL(leM@TgA&gy2 zN1sqTol&OoUO>jk*YIAb{xFtA6hpDJw3X5wp9rlCHKYy~>vgTPsh$#<5mTQ-QJCqx zJB?8jgBgp$WU^T!m9=x6C0bdpjE{hla(~IhTX%&?8iUy^!ekZ8bh2tD+Z;vg)N46! ze&h4zlqk%!Uc<(E6~j48#F@#7`cJCI!93`8#a;EBO%{qspPfF@l7rVF@ zM;q|x(R-t4hM}gltg26iCJJ;6?V|#kI-`{Atf%{O+P3-ZzgR?5A>g|1c^NgJ4Wb#y zg5OcCG*&DRr+jN+2}k>?&$mmXXhzDh^}LzcL9{CcG`vD)2Jc~EJ&p10DiIAYGI4b) zmDTbAZCVK~r|Q-?^MDGFz(j)vFJIa9)kqZ)&|NrcNNc;}v( z(sHQ)&K)gPKw4L6L%y_Cn3FL@bF+wIDARe%Cu3D?YTp`#$z)V5<%IGYp+)Rc4CMy` zimEEc^wZ=snqs1LkBEll)N@jXXN6iT6jZPX16SMX!D~~hjcxS>bw56O-|)r$-YA-* z>86u6+<@IPMEjM1hK#m(Rnt>V(+#nX#q6|)gv#kO*aQ<>gRO#&yk)#p+q$+mJYLeb zh>VUcagT}!V6``3`qeJ0}6{B ziUz&efZYZ`MBio4L?SkzOGN~{BsGuJ;uuqg5N2Ni7HQ(TpbcUZutR{Ed2(Dv*mB;r z%lvWr4-t`4fLl2=<>nRSBnY`x>?fZcamimX7^{k%9X_{?&x(k7ytY;|)45c7MjbzjLq6kM z1%m=4RyWMrjAdcoBR|LxvdkCzhCy3#7?Gp{Tj>{0uDIcgEpQtIz^O9cF^1ZvW}NGqWudw28Vt>h#Mq_0?74Qb`bC1m;L^IT!37yrn81_BLiaR{+jLdS{D9w z1<9Su>-PI~zbMpI={-NN+buW7n=*uKa2z{-dVQaXpA04}_VTrI36nz23GjE_v3zL6u|=`-&)0%CgFZ|r19dvK&HeLgLFTu_cM@pUWXjap&SRHi%J*(dMyH-IrjVAJ%U3%?ss>&0BI>$DPaw3wn8-uEWMP# z`~|$~-~E2A6sqFgGPaS^;LA}X%qN`ABRNnIB6fW!_ro6p!rCaWvl z30R zoFoG8z)K*Qm>tY}`c8jfDNrA~oZ=P9eYMskHJUXg_ogEP-EahT# zh_7Yu7ce#GB=`)iENoE`G?@K7x50RgU9E?$=CievBkto1>H`8I7L}}(%V@bgOsZo4 z5TXaFmBI1`fu*8ei!CaT2uR2Y@1`6r?WnGTsM0OCpgcy4NSr1=pq|33V{FyM%e<^t=2fj<=tW_q>1yt&z4JTZMODVY?Mr+HtBHlHM`s_c=BbcYC6-(!(>A z&bx4w=5+IR%suBAfhPNg5Pu8uP`=Tnp6)Ew$_?u`OsI? z&DQEYIqbpyd^=o#)!-2fW(M+u5FuH*j|$kLTATtwX%Wq z1ctwYiPU^NJONiz@%kMj<7RT^c6iEL^$}NaN{{dy{*fsM@_JWd+ zZ8kOvwbHs`+qRX@!Uc*f48%>ObiqazbGuf?akv2UYTo#hzP&aag)uU^s>8NbhO3)r z0&|%FgS~4$Z(4b5ezr3{;*|7x6WhUlQov1{ik-_reY=K2NfRlXQMFzkE5YIoHtmg} z*`4<@?f3Ju0ua=r>$#4Lm;FRdOWL)Dwm0n+aj4K&s`;eF)Z^y`M7$6UenL3o;CvE@ z$za1s`@8)!4()~gO)+Ta8x8~tR(gPz9v-Z za59;+3nigAsIyY26gz%TJlRm7u(K^Q@4DDXY|oMzL^8)<#m#auvi`J^1w;&3R@dQk zF!SLCAaEzas-Y~c0%@@U+erYT8K25&dM*?7h6K6wAm*WyizLBkYHY?Y5)pUcwJuEG z#g_41qnNe{A0D;0a`Y=eCT$Q^ihUo*pci3qs^@1$gyZ{V`?Ie(5G)WH1LWgJ?^m?v1#$Ew(|j1-&C@D2eI_N1emD&}j{bp=-`7DQ4=^)YzTd{eg` zERiv}StB6onvzl7bjC2S^zs#8N@FN^mkS#em5<6>{2A?vxX>urm+5$6sv;=w%|#eg z)ygm&7o28VE6Mi^nn^}|7ML8k*9SgU0H!TOO4GC~%p1|%hsq=)7)Ycncpq5SS|2jD zgE&Wo#B!m*eP<#BLxdDOT@6)@>F6WIOw3pPrlBF>$H*ILOT&0gG4jlp#PpGm7~4GW zEFd~c&cvxj#xz0&$?UksG8XfYTrX6{h6V<{k;!-|*yKTAQ)OVZihe=-kYa?}f}-~| zwyn8A#50wgg+K+2Z%9pjybt$#Vy~`eQW8_w_eFuQ&2tcY(*Wv^=4PKl@Bg;JaBS3Z zr06)VrNM%v$v}c-b}n~=2rf)BT4KeGTkM2=zKEAsG&id`IYSM5h=~149UIj`KP0UW znQ8>mV)pXBB9w`j1*$L^(_RSWC(vyI6l0bv0PVo5FB$)1lJ5zShuV9Pp$}JFl!WiQhsMkqP?=Rp6C&ut~)^TOR&9$_xiHh2}2BE;Ynx z5pjb>zd?kA>PL9Cg$*8gY#>9iN+LhrAXIV{%W@0|ECS7fok6^AJ2l8+BxUJ9p{}J& z{#qzD+ZIqo=F*p?!y^@KJ>?oHFcdCsWIT>XX2nheI)u7#&N%6e<{COUTdwrh`wAvp z_hsB5I;A9VDRyGLMugCmECNi-jA~DW5D%YY(RD{hF$_&btb}Jx#1PM*V;F{jVJkS* zFtk+K4InbLlGulsizFx1h4V{;pCAKe?{k6bip0m(Ks!=-@>dtJfs55WR;UYN5o+SP zu-Jo^5kZlvBZ)v6cFTa-WLFuBe_1cWd039&nz6EBN1DTlU5lNb6ry;ld<=HtzTxkMT4HU6+vBl-& zD2xH8Irj5jxQ_JKdiSC;HK#9hoX39*2`lhV~oI$>;{wxqy2ZPIbIS z&fOHbw^lMQx-OX99gP=oyPRtPPb^#3&%Y=&) zYhI{xnT&XNt%4x6vB;u3MFfg#cgbn2xin6Ao1uvPiD|+6qAq`Ko}QXw@M>FM<8DG|j`aw$_cC>+fvCW10WpZ*YqF>M?X;TWqa z%oKh4n+TJ_sZcg!=-3PS)O5kg8xyx!Y{ZKqKw3##dAL&I)y00q#5M6$V@CvmPunI! z=NtV92oSpvL)bZrkk_?*8b_A_4eM&~ddK<@Ls%ptsMH5t*Ab`XGa*C}yAhN3U84|L z98advl)n+(E?eNtjL zVwYkY?*pPhdB?J{DLvEzF(9#LF`(rl5W-&(zKN)cP^Wd3>U`!1eTogxDiJ|d+^myL z+qfhXN~w<^_9n*OBcc$VrF;3D7WO72LhMHjLKPv>SRu2Xp2Z=CPerN^`?jeCEh8eJ zA35wrQlXTD08@0sj3T7fl#|Ojp{RxsQ*@(Ogh23WKAVGi8ETHq@OXV_>TVn(B49bT zGme&pQ^IFNh%iMzj*CKMQ+CEwanK!yn4%w>1PE;D4Aae6hG$3om;9hNIPl=!FBVJ4 zy_voxbSU?=ZuDL2n+0H7F>NESWwI%M&svE29AlfcdxW~M$?Pm59~=Y(h)&fYEQ8a) z;w<^mm+zo!ZlC>FK*shD=j3iSlVyiR*h=%rx~7MFG5zo>0SA{$Jj6riEjM}!<44y` zMqu5iFm}=8VF4LkPTPoe!hVBA{`nDm+}9l(Kz1x+9!Zm;vdY29VJr~hQ2|uf6^pz8 zs$sCRNJ3*#ZemEFK=d-7PK}T6$C)oZ`Ai#fe@y#+bnIepKQ8t@*!}fuc0KMFTYmJ0 zU!C)@-L}40mU6#uEMhq7z-cy|Szsx9p#{YR!o}Rr0%*b@oGM;Nf+OePd?I!yH!lFf zX=)pG-X-7sX683RYJcWw24v*5n}Pz3ZH&4EJcy-bxfbFD!x66Z1}DX7?iwd42PYdcUMLQa z;RD*U3O$bjRzyJD+%Vt)%A29i?cUDTA?7(gLqLNxny>+lG%n5ZfD|r`*jDx*)j;i4WFXtAd;4&EU^BB)d|vn~$Pw|9J5u55xQ(pNXJn9}bE zh)~>gLl$9`fe*A$B(otrG!iL`Demu!I0(W)a9#>aK+xH6>7PMoe?{O>;DAB<9`G1vD%uo@06@#raP_ zn@rKf7ZefCrMjsQwwHUfEQxRV&izb7xD7C28A9^a?g<+o7+=<4U{$E_>&)gw(E6Wm*mVT0KJ) zfkcTW!-^xk;-h<^;xAEg*E^TVQo9|is6ua5#z&1>b$m3eI?Ai|?~STU=19_>cP?v_ z+K-P_wGiEx8L#w{TQaQblRJw@KVYsT?Z(LMk5%o08M&@JHlz(V=&kcc-%T}pQIpeK zjn(vO$%HsiJ@NHel`~ zL-HP~xd}DfSs$<1Q)+n6GGzppN$0f9o=4r;z-c^rKm2|zDxhnqHGn)i!7HHqN5|=9 zyThgBtEDsKHhh7Syw8=#-6^#YPRZ9D661sA~ieFe$YcG9)zby z;72+9ODCerM^Gin;FnT)s7-bsgl}UQRqWnM*xbXsU*{B2_h!`Hc8P@A@~)^XQ;UiA zH%*39Ml1b~HU zI(pnpk8jiC0eU<}kKfVbzv)3aZ+4>8HS$jMpgb}%rGt?vuZv9SS!BwxB2%sunev^; zl(R&ptRpg|4UtVe+9-vGOlde|%A_GvGK__k(?X_{6fz~0kSQI6OvxN%O2r^k9tHW` z^q{l_GG!Z(DM^4#cl%|!k}uOudYSIO%XDj9rc38CT^X0@#t^G zrW?xg6ZD{4!ZKa=mFe29+&%}F)g+oxB)`GU*pSr@pDMR}09-x+uK}%P7tNmc^y0(; zn3V})ae`Q!AjT$0h7xq0SEdWNa{E33a=4tL4R&KTl!6?G|L}!?KkN`ZdLRX}7d^eW zjY$Eu!UmGJLIatgft0DeHfnDcwU?mlx^wBWtxWf0WxCNS(-l;iZjH+A$KWZI>zD>3 zrLbo|<3jZC$I$Bc-Y7|jK>VckJ}S!YA@ch6v}B|Qiy`0u%{sDA>@dd?3qht#mpx^= zp4mnhE#>w#VGHqPU=e3U?iRqGwF-|5NFC4l1ho;4YJyhIL<7FvCA@&mq*Xc1i=}P9 z<5Ksj+W_^o4m_@tfp>6upTzNt6E`nT+_G=t2m2;|y03iqk~!DEA@Q>}B%Xdl;?HkL zJh~=v8j?&Vet;E#F?}aC55~~&?2l9Hw8ka&qA|Dtk2dON;zM}M`v@MhFUDierSuz3 zWtp^nf+k>s=0}3AhRSreQ>KfU^XWpROqU;Jx~(YF?LwLE1Iq8B2i>@n>4u!#ekq>P z6qn7yk$RqU@wY!ghaWxyk53U7=dKDm!xm?muE@!Br>%|dqRDhwOm4ppPieB7S78Gk zToiu$GhlyV4Ib|VTibR%Z3&a8ws0oSVS>PTK=;OEy6QFe5&Dg;R>^c7N~Rl3GF>~8 z+vg%Y-d`2jX?fV*I^LfAIGWo3Xgn@Qd$W_LElJ$Hq^&3OEh<|!>2w^P%!@+N2+Cg_UEEV?lw(*+Qju5ZZg7vm|>2DGvD373zsqsQ?k z3NHcuE(MRBY1x=d)4q*~9AhY5@d;;Y}95yK}xhcn9@5ZsAI%fxs!hT5k2mq$B*ej6txjWGTDm> zvQ83YgfLdLkr9$0BZR9(HYlVUWm=dMw1#pm$p(ssK0&Nc5T6osw?d}d5;EO>km3)Dr0sS(C;L8*=FH@MiOmXQl#emBcwJlSiwMhpp}+DGI$$Lz`K5(-c0BGNHMSo2T3 z=110`rsPVJ0W~zMv4&CHwoIYca{D3?qo1<6gk$qO2l0*qNChDK0mSdiYsFgBmx!}F zBtz!3s-m?kWey9l3 zKU^%2G~C5;kW=0akZS<4?R~Tkb8X3B$XrOYcZyg8SetXw~Dys-hPztn3TQ zsTov$7M1sJjB%e>nZI_{H*kE(4MBY3HyQvrsvB=?2k}z-kXRpYV=wj(6(TV4`VUk6 zZDIY2Sf9-N?bSavi~4tj^=r}k%qsS`v7w0j8|fcW%~$nc>q_0Hy>p^{lUSXzJ#-ha z?QfvMeAB7h1jZ_05DVKrM{0_hOJs8;+TTuSzW*-bapO#Y__Xt3RC0hh6EJmxVF-tj z%ID(#9sx#lw8c@Lvw)K6odo4S1(f)aQXJ_@7f5s0!v1MS&u2v@#jZny!|V5KNf(gr z1kxrT&0)%jxRRhgC5WU1-QSSu(uLf9Bc7pZ;~sOL(l~*$djY$Cog^I&Sf5R|O{^V^ zUBmkK$y%`%^>2;Vzgw)|AHAFr?^aK}BBB&|pLvst&O9|`I~f(S{_?GL&AQ9Q#Q z1=NK1D#Gnri5nu99ShXY0(INBNv$wLB(X~<2(+drNJ0}k;ZlN3*Er<%B%WalvFjFb z{EicV|JJuk(mJ5?m4Q)BR3_*uhunTh6F7cFB4oj9xXkvR2(Velf!Kqwde52xLaaqQDWh3Y&&re?I;ot?3?)2n#BEU5_=Mp&c|c+2k>YkD?z@9e)~^) zki8(2y^v_9g3SpCd%7p@>0Tpf_W|+<-b72t0&HVgqw>}Jv6d1aB*3tx1htf)mJ+=LiuUme{VoV-{$bvlBf&K{|u(((Ff$aI;) z$z_THmnnE#rkHD)LZxMjaF!`BS*F-xnWBSbitm*vJXfaRTA4y)Wr}Q-DK1r}s8X3C zLuCr@lqo_}rXWk1!X#yibd)JfQKk?>nZg5Qitv*uMo*?FJDCFIWQui@DOydYfHRpw z#^m-T!nickd|ek|T+XZnn(qLicr&GUGZnuO#hEiMu@lxR-;cp<2j<;k+~;d7(LnKG za{EC7a#Pj#wMzm0P*svnf_%)ndr2IyeW{4xM+cRf_$7UN`tZwucgrY9or7gnp2bW+ zMjuJhY(`}J3K4Va{m&ks0p8zg!22lS?ToV)GFSL955px*#3PNh5Fe16#6&jjysapR-v^DS4z#y|G)SGmb z`T^Bkjhfpo1(k`N7?n&Y*uap!7pSCAB$=Xz+9>o#ZtoHrn#!u!^b@r5fp-!wXh0TH zD|`ofHOT-ox?`+iEz?TVXugetgJcTjnMI*EG6l}a?dt>@w!fyf{~DBJPh+bxTmWyS z%A(tK;t9bQsK$Ay!HwPZ(HhMZ{@(YY#`UPdP2EDYMl+rN9;$H%Y8(gduoD-5pV$|z z+f=LH@Bk{Gc{+1FMJjKISDw=Fedj}fIpAHAbQq-7Z@v;mn6B-6$-_hupq68r`%v{L z)OOYJ_a6a9;*1D6o1z%g)P%o%6i7uNy#ve@e2f$zB~wh3+`hFb@RT~{`X_+ec_w#Y zaA!e7fL zTskj`v3*@}$De?7%DW{=2e*VyEs*{Q|E`~|mEHn1I8dmSMyi`i1BL!RD7nM17hfQ~ zW4KENA6FIgZR`#N{6-esjcPuEc5$t0CHZPqCFAHbzRaR~TgCv1)vNMD)bsq4CX z;O^X(U?1G~F~%5&Ogu|TBfnD1eMwBqT61R_-g1|r-XjsQmb(s#FT^4bfw7FKg)Z0a(Ok9H)}0>C zT81+V940$3;4s~87nu78bP%*B@orGBmxipMg6OxSiCN`+gkUj`zg5sAN74LQw7YwX zYJ$ioLJE4jtU{*CwF_RVCo7OJUz+t@yh#iK0FTq^Rnj>L&i0jPg&M#4!x+E`3P#yLd2leGZZ@ZGAD_C-bJ=@y0DCS*dx7+442nO@e)t&o1fsw>Y~K8Sdj(Dv z3j_yT{6H3Gm+0**a_Vt;9T^`hZ7Gn;4q`EjF@80ZR&0MHl}?kg#mc}i#mMksd72H& z0_hvKfnVKTLDScoPR1>0sh$)_yc2zxClxw1v)i*$$3o1J{io24OHX(gjb3oOG`-7o zi~^fXRtmXgrEU8FlF5>c?tc%ydtR$chcrVqycQ!vqRc<-?Ml(?M!Vf=m+AGmU4`x} zrVH9W5W})SS}>F135kwb_a7Brh#-vM?c`^eC*2A8QBAMl&=l#?)0hZcY8cV;(B@Nn zW=*HNC*`PmffUD!#AJ$l5Si@zBsi1zXH1?aJsL{4PPq~Ff=Ma>eM@<|AmVdDMzYDQ zMw^x;%<5Uvtb6vAx_F47O=BAyxP(Lj7c5AnpKUhT(4W&L$%vWUSK8KwP}c?0;yJyz z5^WSbQnC9bBnkoI!AW%rnmh~3AEJs9(vo@7^U#jIMl4{^Q)x>tIH|R!!H22a?RB(n zt|l3~UIX|~%~7){AdfDPP67LQ3NHv@bt3|BrELbrah~))km87Pf?m|2!9w+fz8<@i zw7I|D4@VKXmpErX>d&hmK|p=^#HcWN%Rt^BI6W!TV)9xbiM<;LM-Zn5 z2WhCb+Qs@t=^S}JQ{i(!6LDtGJ-r^UfIOlpr`IbOU2d;O6r;@rQV0JIBa%+3`GW4O zHIX6*U#slvlV59jZZ}rBZpbgq85~(`d!EggM+7EPMz2B^33xGK41sYpIcjr_UX#{G zt}1?xWst9e3t0=}kT|~HqR74^gZHnI_}y=$4WxGpB18)c`sDFarGINE86&K3^Q315 zD!Nk{y?~UDT91oFHM$Ckr`{=F;zaP%DVDwR0%<4KOt)#{#;OSX7B)t0n0}FUCR{pL|7p=kNaSt|mKLl-%~K_85H!^} zG=vF>0%`WAnD_{z<8R+d2^DW96*uc)yck>>FK#aI*@Re3zD9k>@9a?!EaC(5#KPaZ z?Ev(1p7cjSTnxRZK+Cg+)j4D0rY=@!(ql}gLB)r%lLUkAkIN3a7?Yg~XlSLs3oWE^ zMK6zO?Dh5(JQx99kEm5%C(WYx8_7?o$2+i1+FjcApx=e>f;CuCdb^xL&#}<0w6eSp zTUXd)-9zJJ2-mLkP{apmTdTF! zeXCmieLm;j`(0)xge33tf1dyI6rS9<-+RwJ=iGDddhV84vakki`k`Q4iY`ZL_n9sT zqeE8A=1gnN9Cms#coC>l72Rnn2UH6?+j`fSUK^T@==SRia89Or&xR&f9LbuEzN5LN z2^roKanU(b)Eca?uUxynW0~7BoNR>GGd|F8A=1NzAQVgp%#6aF_tp zj8Hu|GlUzd-P9LIJ&UP-`kTr}nAXk}??#8iU zOucr#oqDl8`38e!h&&}&^XAme!{v3T4Y*~L197R-Qc=bL_$?nZXgiy6*trpNy;>a4 zTeir@*0zAX-DDeMxdpBDcofK&Ws34{-?%?GuF?~LN1)Z1`T<%`7Q9wmyw+UP+JpfF zr{q~Spu$!ZsJ@RPuL~6bnlYSOjA0W8{n<;P`ZD!hFMe^uVvgbJ**2QV{dEF!oUbjm zvtru}zaiD&@PXzcpvM_Vnc5z>IMLvgMh1#@h5?APp%aXYC${?AY%{`ZT{;sGhojuY z)P9)a*P?{hU<41*aegoP<>>9uoiPCPTRC14vJXZV&s~Oz5peLJ8S))P3*A`TDkHt5 z!0ZW8EY`ePrZ5xvN=u#CAjUxyG4+y9%X-X)-lY~36aOfZ_}`6i6wkJ2a!h>%;~0#_ z%^-$~SX8sH4t*;JGlun;T2cUIO#xaR9&|)SX|C1{t+x8Knlb5y(kN?m_H&kR@DW0D z&5LhaSL56s!ta0tqkl@MTJ+*Q?RC7&bD7(LZ4YHK(XUXujp?UC8vVXtO{iNmw`e^W z2MN9D)+iLn7U^x#zt=RNVA51%>PwkAw}jmaED35{nfj;Kjk9rUKOS<+?u{(O)Q^Lt zaq$z*sY8S`kg!t~gq2|Wb(AbU=rfN5o7a-1{XYjei#~0eBX+`T+SjoU*6q=0(jGJGTbP9xZIqCoNKc*B@*K7Y8*z zw+{UwTHS?nI2UuvNC=s{u0&gSARgLxLW)O7^sG@HP6Nj>at~qS50x2x&Qj;7vmi$? zb=KK|(Z$?`C1^%C-0(?vHxRzq(~uo#b+xbTSl_{;jw*Y@_MpY12YQ1%3nT6yzK8$5O?6Aqn!vEt|7dGJpuW*9d;?Algchd+Wombnr=GRQ zh{N1}Sfv^}SF|;D9MQF+>x9B#<>gXiV0^^r-X&+sx_->vE$T6KI)>d1uqoMbw;pm! zWdW&i(5Avfq@X14A|*L`H|-nU?LE>ypq2#9Qrp;uvOjAPax?)20@E}=Zpo|!z?}t9 zZ5?1pac$Jj+T0tcd?Udh0UfFZ7ws&VdnVooW(IcmLymYO5!N+n<8{}t!*i~2(CzJ3 ztyytoH@N*PYIK?E^D2WqFV))Cf%+gvlyN##pt_^2##&0fj0-6q!rDEcFds*3p@91C z=;Arcn>iGYqvZ`Lo{O|;OoLXK=*Efjm!Za@PnTkK560|1BvI}x^c%@~*A=lvmZ@Dz zT42F3_NXXNRH(L&?v+?l=)$4`#_~MAh5hqwZnOBF>13`bS*DFm$HY`xcg{`A**W`r z=Mv=ZN6_AuMk5!LNH5J^0Twatv9L4B8whpDaOkM41 z%S=doM-ud?Bc!f-5i?sEiSv=h!U1@hdKglzU5dMVfOtPa{Ov|Y@Xkm;YesY=m9Y&nszL=6bE9U{tZ4iXOTvXXjk!sL}Uvpn&MP`6rMB3&YH(#pEy#cRSTIW)?TM z*3EBSTGNO@9!Sg-<&7v6%OLBZw$y$cX{u?h>FMceUeSeVEyDK|z;nFP?3q6E(w?7R z5*pn5nMLzG)cl)qvfa3%yQi+Js}mEQ!14^5(I2xo>BW_nt`07$%m5d&z=f&m^R zQ+K$t5jES?%%h^mu8>z!5Vl?hzQ2o_fpBF=ai@)~U}k36Y;Mx?)vTYeX2sOcf*s@H zmN{6Rn_su2m;quY;P=rD0iJ}e^)~|?#k_z9NtOX^`wH&vgL@i(CPSeXK zG4*|0-kR$U!8p(@Y%D|{d(~Z@Tmo*IvoUAQSA|$@U8@2*Zn@`I)bcIl8FkD<<+bzP zaVC{r1u>VYKcez1-WoIbwP>EBJSl6d`6}8cFyalqA?FU8xr1MXm& zmg0#eZp%F`rcMiLN~{dBbkc|$u55aD>^vUnk1s{r*4QL%+xgOm{I8dFt0Ze#J61A% zE~L5GwB`Mj{^-N*GKo8&a|aWnSgKG=P6r{=$hhmMv}?7_X=z-5doMstniXve%xkm8b?`&^No;MyOH@^v_ z6doxI?wBk8fpRG^cS3A2H4z24F*C2Vv2H0W-keOU>_IjQux6xO3t+whFs6QF3$>m0 z`3m+(;662|R^1DH+c1oSCCZihYLR+aamzgnxmcvY)DXAu zVGz%LL)-js1W*(N&j=F4Xs;PP09PF|O%1dV)HF9^^6MLAPeiJXd8q(VM++aPyv5pz zZBt2g7dv^8gYK1%5!_h1>tGJeSCd3{JDIOd! zT1Gb~FOTLcI;41If@@Z+!-Gf0D#l$8-d2UHfDtTJaCrnQaI@tW*GBlxK{%v%i-jGi z)voSXgHe*Z`@xLuvTg~Ix>n!Sxwc8ND+TC6DL^Bl=xZ>V$1)67ZgfwhyV+PweJd#1 zmL{m5=7+kuwVB1seR|ji#d`B7V^v#N(}XjlXzqDFR*!L{r^ikUS*+s#eSW4%7Ig65 zL}MdnodpKSm^vp&ycWv?81=wT*w|3J9EOtGx`w4R-npf5vWjwNowAj+vsKUA`bwg4 zh&a0+1r0{4ZEt{v5Su~}qxXdTSPur>1yUaB?T`JIIfX2jsoN*k*DQfCj@uzVM0*fZ zZ~I0fv=_FvV1mbzNo!IQEkt&K)n~H9z~W+A1P#~(&X9H?`dUn(%=UC*8PgaGUNHGe zmbNt3ESaa*Mdv}ND%&nPe#LFh(Knj)=z`Vg7`T1k$8B@XoHT1leDs!$XE+qiV$`Feyfi?y9?^azb^yyoPFT9`!wwy4BPuNex)N^; z#=T*9@cd}8er)$~I2X9C zXI1OUR+^#ppti)cu}`9gnEB!&ZO&|US5UYtQKlXo03xPd_X*9Kpypty*Qd~t7;+Vu z8oUYjJ4S(TO~k{Sb6c>qqOu>O_=FS>m-kZywL!D66vk9JMsFOoNgZogymTKuax=Xe z_U#m1qoUX#6&S$sy9K?r<_&sS*=GiD6xd8*zbRR4<}P|{|EW((_1JUaU+9|%gca!C z`?ZCR7ggLGZ85t-Dll)Ih*wjW%f^h~L3|;_gXg=WMz7SD?YH)JuQ*bd#;7ihA;tSn zwCxH{P2vr8-<}5)S2i8C3qW_q+fKZ~EW5VCoq!2(V^^q5(Vq{l*QQ{T^ko*td+cl} zy09?{(taLjknaX;Kj2#ElDe8kS(?hegaRNc(Z8iQ1z4){S$DiQI`~)$V@UD(4m-({x|`p>m8rXY z<51srp(~})IX&2Xa}@*42xnt@#sW*D+j36;!-^%!Y@|T%5mUzp5iG&0jI=5ryTHinH3p469#La$#yH0*~BGq?p_n!bAB-rM!R0LU@3N0 zag+tOHOHXHzl5|cfOkZ5WlN^)`bJMI|4GbGlo!R0&{ zt8~{$?|8YS{JYJ(J3O~Gs%n-eUdm%<8JM#cnPk|u_qzZmD_38HNhbCe9GY2FhfSjp z<^G7l3b3zK6)h5%3nqQcrm2w8+v2LZy=!d;U-Qr#j1Z-V@7thU zF&j5yACG^*GNxYkl@VsT6~>FDW_IN+c5=FUu-;Ny-?FIIY(hB@v}5Yq1%_N_2CC+H7AXiDkTq*=GPn->*YzY0Z+lMJ?DUoIMzs3n`wSvh1QLdV5EFJahLElAi%k zI~6Rlh2oxTNc(Y@4|g0Utn_1-u_M*raI6{*+zYoo%##mn;T3f#RHMWHuy zN!f~veICuN_1qn&(@Syr^ougJovFiE#p!{m5tb(tFmnb2dSmJzzQVytbK^o;=Bq2V zq|4ojzb^5wn8CDP+FEq<7hShh)vjLA)xs5RZ*}7YGXPqRIkz3#@UY)YWox8F zM>zXf*xs|cv&}d4m<ub0(JWKnpoAKu0x}M>) zhP{Nls>j_F*NgpL22b~jntza|W}0TOi%#!aYh1(g z8B)BXS5M}kwCMy~XuGx<60Pa3?^x4LA54_nuoz_TL$l1hT^dvk`oJcPo!GUT75gFv zf@$a$cp;Z-lgVIp30)l|u%P_}UqAC(vJ+Diyyo2<5TMMp9$L2~WB0Yl3Y|!St@0y~ zIO=rsavZ&&5ugsGsZ8AqnqmRrq95!cJkV>qI?p`sqfa9}b(G&Kpf19`pS5iYpw136azNVvXsx7k3CZ>+T$PC6`G%-!BhhW#0 zdx(bPr3Wx#ENTw-b}xk#uVdSNeV!rACv%#^upj`H+hMFc+H8;g*qsIXZlaj_z}Ffz zH8r*z;_FeiM}A&pL(PLr+$W{CrJw@&_M~uV{{SRzj)g$7*v^d(69j#xk0VgrLy8xo zx`oy+LfftQ^1;ppsQ;Z`cJkI+MD$!~iK&l#S+U(^V;vp{T`mJ=%s08Y-Iu=|RrHPu z?yWDrT>ol5X*>E9n(RwMs?VPz)Ol~p;mZmq9^mgA!KxnUYuph%nr^pA=Fsd^h}I6x z7U8i@u2;w~o@?b&Un!+o=p*vhoKYelLy3>6%Y$Ua?#b~FES5f6(*b#w9T=eb!ERsQ zxS#~FKMdl*2;`9EIImDJm5qa+zq$3rEZd7^SL8;UZcH8EjzT;`B}5ix!NLD0#ex zQO*X*YTVKlYkJ#h{_u?FTv&lBe&MRZG+lwtLR7+T0+U9cH0Qv$u@rm0{W4@3$OJQk zPNZPB6>G&E90%Dkiyf=rY(zAaeGN=yvkL!rMUyar*B0ullz7`~h__vac%Ng4cPobE zB0}Cn7~(~OA>IoZ;?;g3Ud$Kbjd~&8fEVH=b|GFz7vi;YA>Iua;stLZ-qNOTvf^E0 zA>O}YbzP62n8Ka+bYnR(I(rjg>%I<+g4vvn7AidVj8t0LlpQ0s*{<-ilOD&g& zWc#h2QQM;|KhVROIXoTX4Q6P!e$LL@wGnM$2Jn>PMJXFZAC!~0jg)-y%R@B}4x$JeL z;kY`PWurt&8u)!d9*}fiUzYz z-kyZL!R!LaET-->HlIax%eG`rW5yrCwwmD9-0QiwJaF=OgFU0X_6U1MxeRQSsY~)3 zg}M4(Z_i%R$i1%|*6;*CnYt#wFGOF5H0GL90Xz}apiFJ}iSG=DoSjhFg+LKjJ91%g zb#Jj%!Py*Z<&ZuWl$hj*sKhu*`x(&0<&sJox#myY=j^RTAsmJXU! zA465sgIISbq8`jjnGXXZr8}agX3P@<+pc(o@Mh%N4sfNJZLp&ow577?!Pnk$>w}8k zD?P~CqmNvxI}rE4?{v{WmRZhs2UJ*qTv+29O3{vfhV6r0BZjXVCd0oBb``QC2vZ!ITCY2(T7=9bBU$&lCL63J^VK-j*uPY#v7? zVZ*Dp^~BT@UJ1d7W*)5}oa_i~_RKlW8O9ad(27{gSrqLQ@E!fDkV3V?Q$iXmkNjhE z25Nymdn5;nvF>l@bGkMNdfLycb@8jm%dbt%c_ok*jvcTTitXOIEr-4B;rx0i#ga;p zI!N)u2Imzq*@f#XV&%Zuu(KS4^PLv>*YaSDY0dbwoY)IFoYdh;womc2 zp>ON4>kbV#7~>Xm6a#l?z&_?u8H<_mRnex@S4G&Mg0~J79F!V&|L1puRmK|lOuhDv z)VD|C^H9i`LL^!#Q^7<&PFWE^2ZP|HYm1wI> zJrn3x^Y&Tc-3urSOB}dl18iW=s*!J#aBwXOlU*|4Zu_v}mExoqFka~aVHPoL{(l3$ zvKK)#`*BNYnCHAgw0(!-93t|bwh(V$3-O|~5bq@m@rJMvZ`TU(LaWeRI=tQ~#4D6S zyniXgJB~uUWGKYTf&@B*e^yeZLv+3Wp zCsjy?UZ$SIy*x-ni=|1l42jSY?Fe(FyCk}>=F9w=p;ruqMfT=*+W{Z9(qL9zk4-_y zhP#?aqw^6vd$t#MRM3RlGG0c>R|Rt^MjYO9AcvCKRJrzqeL=7rHQySbmcr7A4Z1Kq zH$o(sjJVb)&LQrVoe3awi;#K2RY?63Y-pa_h{ES81e*+Rwi`p_W(RMDW~pgVKJ*%t zHvJ5Q%KjN5#03@o#KhFSMmlwe(EQX`kLmq9T1U+_8!TF43vtE8IqLU<@{p}U!Nqo- zaOCxwfq{%S^fgO`z9yRshQNFV7%jTxQjEn*S{6fd?!HUbwy&bLq4N>DK4)?4eoW~s zQ%g%}b--N>imT!Oi>eD7cLNHD9btr7K+X;3#+G4R!$W&kK)p1FpHA8@ge++@ z*M}<2;sQ2{_|8OPO8{u>j|63E)!@LtK;I$93;Qw2e*;Kks?_VQ_2_~J%If9LAa`K# z@fR_5A$m@Bo9H-Yx2)H?u=f<@pdq{^&=C4gtZ5?f(xHm{5niU-CTGwUFYi)aKj*x_8XV zd7*~?)WU9ZB1&%%92dRIOj-Jwu#}j!C5%Y0I)O_7xaO}XtRk+lD$2Jr6yK}D{xo+G z_NJ-$CtMEwHOyVu)L_=P^tk~Phvm{v{@oRqT+ASsC5{&T*gg1VZ3pHc`!5zP`o}Lt}WTuZrqfylQMoY~F!4$SyO4kBG;RXm_ zyE|1yAH9JCAgq9y!;Ib$%2T8pi9R}#OBUUM)7~dbR80LmNQ|>2Twm1RzTkaO#=fgB zkEmI{eoe>972Mx#E{Qk{BEn(fQg2d$mA(pyD(~_x+=bS7bHhpR(oW7sVFyYT3wwZ3Y5E3)a`28En(cP7>&!_nT}j<#ti1IqL1 zZO@@_G@IFxL> zqrbu*89k;{Z_HuR|M}@>`!P}b-E<#e(k%X#;%_egfH2gAzh?Xi7p018cq)YT?^0Pn zGG1=8H{Kt4-U~f1ryxiqwygaIEygX=Syu2yVczL;< z@$$T?@yeYQp>QmVy^K#jf9(aKQoR>86pBL5+*XSN57F!w_*bfTg@$m7uT&p&(Ox;- zL3sQjxhxGcM#suo3GJ0_;~MdeL>wtOY)TvM=_*xxO;knpS*9OZjms{q_)6T;6Q9x> zpBmUU5R7z?_zp?DW6Qdu*Wt>aU_7G#AkiZZKYZHZ_~Lt?Dl)2e)sbtD?3y`a8mL!^=PRN4;mZ)theL^cVJn(@Y}??uj8esyL_OpZN+f(+ zG%uJq_}Zw4+aAI#ReXR{MMfLkCY*TqC}}|iG4Y{N6&Y(%c%1~I_lr%y?qn})nICV=I0s46lhFM<^KMrvUU@$=zS2vBT7HH#aJc8-wH z9gL+2qV=s8mnuH7svVTDe_rXFWSGlj$=BdiVwD`$asT17)|Va%eB9F zqUSTODzZzF^zPz)sp2!RDzfVqfJln(#BLdi1o@Dxid1;guroA6&)#N)dMc2W13{8B z-=tNM0YOQhFV}ip7Psn^Dn4ziBD)#dMWINSkKYaeMw)ycS4C|32&~j1mha|z8V{l?d3y znC&iQmnyyjjC!9RL$a?Hk0KSm7_1`YNF{fKa!XXH;tRqc?F%FpJ}DdwB?7+Dt0FV8 ze!HeEzOJ(;-gyL`0bUnx6T3y6)9Etw|8;U5MPDUQ0;B;WPEi`&-(P2zO=TxZQZoB9V@#! zyE|9)OvCZfFSV~r_I7^>Lq}e|0f1T6GpeWWJ#9tz`s3pr-SOkP@CyAj2!`()tH^X8 zms}dgzVm!O{X%6zzKN_NXP#Vd zz9_6BdwNNjPYg?VfEvZxuH&Z7kYfrn&IgE9WP;tsQSi<&`fF_2P?1?%C^md=Sg+rJ z^tzt-aVxq}q1K()-o-A7ZwISLneS2JQpKl)(VTdkGBznV;w#pj;1w36=Zm}Ou-%(Od~hQ>O28d;)u2#WQ6Os)R2ot4PulEBXQGVrj$NFTuP;#akv;;ec|y zYD#w%Qt^Rg6*<^TWy+GSd*(q>Ulok|n`z=OMU`(Xqc*Nwv2t~hn-9p}Uj<_S-gWKA z<0e#;H&efh(BMv<0zzzS`F^vC9O&cLwrl**(DY}0IedkeOPph-7k)* z{p1Q-s@HtoFi#N!-ftUuhYkm=mqxPwMX~_3L1RXT16&$ z^6bQZZz=9mx=r!mo7XCGkOzWc2KdCZ6GC67FIYm`iCkjay7cUz=F65r!&kGBbzg+e zZ+s1UaWG|&wYOD(ExxX;A~X8Wr9lHb8k)K8I4?w6wWjkpB;}jjsFw4flU_5~HNbN9 z2%0ni@x5&oiNLB@s`%_S`cHkK0KWMGw~A~p_glts3Kk=sxEslrxe*Cclw)2bU)jbu zq<^mcT6SNT0ZG2hts*;hWBld@dm}jj@YQYM?dZ?vdxLa{B_u?gs-HSIWZT_?MGqc=XRts*#AJO|17z&0!ri|{oQ zpL}XtMdtUHVIW(DzPT;Fwv(M5_BFCYK|yTq-YedHbjSMj&oL;&zfZxjr#Fm|ut+B6(l##* zgYaBJe99pnr@+B?!~-}A$PbKz&yWWi!mf4>$QF23+o0Cr%7S*)rBI}I$HIm@N?J831i}cBjZA=$#o5h?1@<9RY=0zD*mY^pLSmRUIwI7E_x7jkn zKbRP86#_;+CLie9QR>+7#aW;wD{_VciR>_o^?2Zk};I6SX_lT{?(!{`{8^(T6u zH$pLe3_Fz$yj6Fij2-!+x^J+`J^(oRt}ey}wiUJ4Eya6qU$|~f_~fy#y5_&5T&nnj zunzz`saCeHaqkEM4ZZ>l(~v9ThA(CGM8PO`8;PH28wB@YHFy7V{Q)TW=&z54**)z8 z;ETNh73hu;C9!AaYH5MY1zVzyRc-Mp#{(^&_=QEpQZ{I1Sj>_u`_RMO>#bs8ZZO9W zcbDUbJI(PUkKD(?@=kp$%uVMASL_HRk z2hn3;dD=V{mKVljVR@)L7MAzIV_|vHIu@2EpkrZq1w0n!j&x9%C}e5Dp3Mzz_(y*q z;*5VPzL6`*Pb9WXo0t(GJ8Q$-ISVY@JBuIgo+VEG!yUBv;vQQ3a2G9pxQ|xFV7}#V zWMoa#!shuc(q#xhB(}7n#so;h$ToF2G_uG93Cc)mbA$O7N|9K7<012F8|H&6;UF?n zx*@meG|^DTL_m&k7KfZ3t#dyaZI*w;Y%J3j>$GIe96nbG1AJ%=B8yo)l4fD>+NLzvv-9t(>~t+=?;4^iCfhaY)sH5QhKQDb55_(LFf z`r(IL|M0`ze)!=oKm2e5Ab#Y@;#fGXzqkz$f%2+iEX=KdEIYzPqzqLEWhV|}BubZv z2rDPJ60NfvCk0Hf=r9sPi8TRIwj!fjymz)u1RvCeIRlLm7GI6QpYQ9!f=NQy{pdR+ zS*rNzE>gQwF7qZ}y^d@C6bLAMp)_62Wo_-Oa$xD}F&J zRxku?(iXu;q;)IcNS3b$!?x|=gR$J4A3!Xh6-G;5ES5z0;BY_D#C?)P+bs37RlgK( zpc9MDQgJX+<9o&f!I3PVJcd=@FfI7z%IL1an`r@zk0R%xD*z)|zMDJ{9LZiRaFvEE ztn~dHrUfV;V1_wuKv0suaw}oU0-tlnVuGix{#oFo&mIdXZvB9gh1^!ck_A2?jb#JB z@Z~T_XM__*B}qapiKG zSd#e)9L*8Ob-+x(GSD=Kiz0j>Tt()Z)hQb2y+s0#=2jy6GG0x^jtxwEXxF281=B^W zi&(p9C#(-$+AyN+5ZYeTxsLrVU)4sFZ3NTbqqf*WAaJ(5%&P}xnaxP(C;{~rI^t`4 zF$skQKx7KRtm^0zGYcQt#$tk{9avYy(_qL6=hI-44{>8|MfqV6g0`!l7C6WUU(SY* zJyWGj#jrNjw!RZWmUWSJaVdSC%#(3FedH?!aXS$N3w(ha20zPdv3I~r6<_E^h76x< z#p1T92(re9Zeg7n0&7&UJh2O&_*ge8nc>Oz@Gh3?HM@orx9JFS!3VXmM$_MPJ`EMZ zsMkT0gel*x+5!mLe23esP-0bZXWX2*@`-N9%P`=!H9-dWq&7^M1wd2RQ*_qsI%WEd zL$E3;E4ikK@fmIyNKMXR*E6ftD_NxZJhz9{ZI@L$QOSZvzlCrYMcB6L+sckPCyX%~~ZFh{R?K0uFBbm@nnQ)mvhs&ed zyF(^CN{4KVknQj{TK|URoP8#Y;7}?PUhM*f4%SJw*9fvd29KHW^*Wx|v*$?24Lam8 zpnDvDM33LlxJ(#9p-GwWCnLyr_|p;E8_9$}(;L&dG$o z&;Y7Ldr#7Mvb7RPA`3G(`Xfa6wI~w~%h#lAbf=55nRxc|tq>cNWUmD2rl!OmCH2Xv zI2Jjk31L4&SZ-=b-^QEbd-ZLYtoAx(PNk}Wlirg_evatoumk_tdCj3_l^HzMYc$pA zpgPS`y_Qs`8LB6b165ouTLUM(H>qByslq>GsyR({KTzGrQvD67?o)EboSRKv`!;SY zS2c9gvq<;1nlAi9rhAvBdjROBE#13GH(hc?%`KqI-1_JqNV@lEy6_K~?jJPWIiNe+ z(tVh8XBX3LEvY`Dslq>Gs!wUE^Fg)VQvDOD)(5EevPAW!8%XtOO%?tjQ++{GT?DF) zmgbs=6JV3RFRj4O@IH|s;slq>Gs-I}8D?qi?QvH-vTLV}9tOic{ z2$KFxlZJoDq@!s3Am-H|y~>gvfw0^v)S_HrE$SfM5&)pBf`7<#x7Bplf$kbhcRSKu zgI41=g{?*>>5kTP;U6+x^m5E^59oGTx)VsZt9Yx?OS%&^UHFGgw^GwR5p<8Ybn&X9 z${k<4mHayC?yl*=KV-VoHQg-ee$&$3n{>Zfa!T!QrWR9c_>pfvd&&dqax(3^X& zv~S}X@tJ5@)TEglA|&1|-OS(YSR9zoeNYO23;qmX3!xip=O}cn8z!ee2HIm$EAcxN znUSk3F63tIST_>2a%A$Tk!I+^!kas4WZ%Y<<1?k081_0wYW8*@duv8o_B15eJK4ux z=SbjZi3f}DTgg(K*)v759CKy=j;*$Jy^PpEZqi{Bsg4y@N_R(nt+603H~9o6vaz2VCmYjdLy3^ z2oPpQ<3i8b8%iUM3qYv^p`di#Fep8%DQ#C?pBz=5EGtirEH@qIHO@c~`TrXeZZ8Sdj16Ps410xP zJCx_f5?UI(87Qud`8#8FEYFQAhAgNQkAI*qOSPn*{y2n$y2!S^=GKPgl8!rEaux3_}H{o%1DR0K?Ec-V76Uq}~w24p9vU&$7a@!LgGlL!}3@V=5P55{haloA$L&?N!iuVvI z)IT8g-AuHU)6wN%>O;nd9r%Y_PF1;-(t z?;9B;rm~=1TAr(LB{0eQP*Ak$OPR1LPk57E;Z3y(a*p-6Nn=Qwt75P;z6s`hB*Kt$ z_-*Spf0R3$%sM-<`)K!td{09BFsDt(hxws|_+fU~gD^iH=V9JeLj0J2TmZA@UiqmW zmJolcX9_}YoyJs6J9xCld?}y9T?<0C-5W52n!ZYddC?55_3_a9_+-U+(_mbTV5e$) z6Wal`pgH199WP#S=2lmYcbxGM{v`m*RgA}cIyadvqsNX!la2{?f&iBSfZ7>vwKI4Q zN6i!t=YYf6cV($3dLF3suV$OL-9Q6w>o0qYOBrnaBa0@FEz0~ zx!*)1{TmUM+izmu#=GLeZq+FpFOdopnE}Z%gPVg8v8uj}&zWHYgm8}t;npC`Xuv%0 z!Q3Y>w*_H#0?Z38%%*`YcLrgm1LkEHX44-9 z=B^-2%FVg5IlnImaR4CxDpCr~IHl%UL2`c(WVS{E{m-{Z9s&e3Sv}Eea`46S37|l? zUI)F^PE6KV)jdhtHLmKkVsfVDl>zlNrn7KS@60@~DeT z?kfm*h&<}@@`fhgJPh*hY4XcJzQxjhpR`-@Xk&!^Q2Yy*^aq;sA;Td3nI`>JkUq?k z{trnX=92c6ZdUV9?JW7Rh4gdH#Mg$wL`hl-=}IuMVq&t@@==Q5T&v56uF<&_2-sK- z8R#k<0}$#++c3zF*5o@t{>X{Rc1wN?$+x@YbwiLl5{2)NEPT2p7^}%2H4O5*X!4yP zzjk8sXiI)ql0VuduUnAZ+KFsF+%{x4O@93_$X99d-5`IAr9G9jk8x>xB_LF+1UQI_q+MrduOsb$g7!V6eNR01k32q((R{o)3_ecOe0%^t-kX(tXIAnp z%gWcu%0k1+F=XYvS?u~+=;Yo3EBBGD`{KE`^4R)@X6wUYu(eUM^>48Ck!5HT8TzVU zFCXO*{1QH=V?AlhQY^Wnvap-qtr5S zIhpA8E21=y@D-ZyHp3wND@}M52$xyHzb4`1{DjN$2w$xUZ|f2cf1Vn2%fKYrimyt` z5UQ?Eej)U8U!>4J!y*xrrdw6`0<>3J^e?`^EtR@$$F5CGOXl=u(L`m-C8bzKfg&BQ z#^51bZ3{?PTBGmm>o#lWOS8860GU9YdjJ-%;myv&PE2>cE+Gpg#LT=UWGbzdc1|xL z(C`Kcf|q)kV%?Y~GuYCF7;OC{vKqb212qcdT8$D01(GKu`g8j1X< zGZUsad#}eP*Tpm8^m+lDwy8gUCHn(`{H(FP2_NcfLEU6p}bK-zN1564hhqHU?zO34%vSLHzx2S zd*C)i!|3eUk|?_gag3I*A4%A3+_36}og-m2HjL=?2XjGH;MPs?-(i)c8i34c&Z5_75y>QrJ}zL6-o3PNmTQ{CQ&;*Vf~rqN}3TESMxLB zao;mwwPz4ae`b411?1=q8e8+c*kHVNyz!i24-Cwz>!%!l|w zC`MftLWek+@EO67z1+NNi0p3V(cgP#!kXl6neZF9NnJF?(xX4JmkZNI z1t#nl5(Xf0Xu`%ykqE-=EMY-7rwH6WMc@_|fm>Dt?yE)Mjw}MVsR-Pu5~i~cxpd!X zvadtpM(?+aUXH!RL>@;Et%YInh4yu&t-rI^N~5OX0VTStuJ?VZ!P2qOaSK?HM!cY&fl`8HfLCi^qO+2My$?<0__F@HfwV%<_q zZ!RuZ*%LWTBYfY+&tOkw7>11(mp5Xb^I1Io9%7K@IizWhq(8)$WAQvsJbY6am_CcE z?6>@wfa9}x5C^x$z!*&&!1yA+!j9k{%GAwd`=3CAY<~)*^~rz3O@0K&b(C4 zfz12A5Rynu*$jcG>;^K-G<_R4RUqpp$C>q$<2j;)Wraa-e}^Mgb{??{JM!Mj>1aWjh2?DBN?CILZj+RH~HVMFp@e zB9LM`vKUE^!IxvPa1&1AX;%Q>^W*Vl* zn;Zwn`2@&WO4z}Kqh+vX?@axo2-IkWb#u)YMCSvNSR>F$ql|6$A#2(jL9~l7oE*g zlVjpMdE|(TYAx($_CgHsT`BmK;DfBDBh<09eulWj%bu)$#PVaQh+MOKYKii{(t#PX54m*8|W z$AtNkA|A8mnIpPz9EoN(esr@F($}_ zGXe#V42e0O%!I#k3sc&#mnG~(8`l0CM27Wewp!-#lJxHa#wFsu@LTT2@AsQxLYCI z6bTE$-8rccE)!>%&gi^M_=&rW0CY&ByZ1zYXWZ=R?`+$yOit-dgwP&0i8(LSADHAY z5{8D={z(0S=^-O`&4fGrk@^FtRTzn>|I1JK(CQCF-u8?REu7qx?%e;G8l7qi>dL)H zU!S}iZt_k#x5LpDCXoqMWkOR~Wn`ivdqxPz!F)@fIys)WA73cI8)SvVNj!khL_1aFrstjE61 zEf#y`ND=Wei?|Q|OlU7u7V!l2+~l9>JVWPCaC9CH%HTv) zXm(J)gr<6+-%atvOZam2Ta$PhpZOUlh@0`8mz*jlRWI)(Z}Uzryu2F~&k=e-71!oS z)T;PJ_%orokdOHKmCqJVlW7%y8RB^p$m)}Cz)ikR=QTQir}H;BT1E@agF{=!#pUUp5S9tefHcInb&4&@!@l5Q60p@L zcZHkWna%__nw$L+kb?x0*C%&}o2-PRnQu;90hMj;`*w}W#>qV6u_IQtY!l4*A=7Wy zq^l5+3AKP(@ok+*i}AAz{Okc_I6??lvvMe=C(LMqug5~UXq2;+WQicIJgMBb%hP)b zCx;u^fFTJOIzz2sXofH}9d2?OoxR{_*8V4P4S7P7p|VrR5`kQna)h=jW+JyT>oMI- z1Z6@iz@+$w&SV>y+z-fb7!j^!?MN#%K1B?vT?zBvo@9|AE{l}fmGSf};iSWpngk4; zp*3LW0AVN%H<^N?xmugxgP>Yq)5s0uU2bv&BtxjKSE9N?uIU32lnJeaki<81o{j-e zvw;lr6S$h49xJ5Z<_U=)E?Y)OHNwfUo{%J9=nNeXhU$f(xp0$n;ApN+NZcM2660NN zas5XZNPg80BLC5$OfOz&F8w z_=e6vHj9=GOe_*68eJx`CnG#@Z;%m2=P{BIMzR|K4QAwP7|d+a%q$UR7JJNmo6J1m zGP4h*!f2k-K-oQurguoCNi%bbW=6gYGo}yB(uiw2P7K(WO9F&Q4{AP>nebsYTmwuW zsK*R8tvbB?!;)yKmzq70fF)Kb~KKU11kt!mwd7?!~1y{Qy8PAua_t zxRI}6a5G+W^9SMPL64iA$PK@Xa03I|)i_;DH~p~YW`gEMzJ|fgKAM}q2sh8dO+HQM zDLPNkd5q4ZaE#FQMS{fh_|7qq^3lv;YIJo4rbgNQm=6LlK$oBmfXWdO4%yiALbLM0 zLRA7rqCT)xK3Ev#@#1nRyqi%}RQ3keH}Z?G78cFM8Ss&l>io3PqG_4og0$)Uv?WE; zQep*Z_eWY3l;;p%M=S@0qz%i;h0tphI z;5*0YBC1)*Ofi8iVhRQR#)=#f^=-VY0y?}*B-fS?I8u}&+O!I6&xhHj5N1_AOgXmy ze^8!dZm?Aeo2z@Ns3Y^ibVYQt0lqGhlMSm0$Q-h4r9OiPsXGvepQG}TY!6!R>x!IT zTr3J^NGq1jjxIfWq2{ZwnHgq}23CiJ0&?RX`4{6k>VsSIz@Ofxy(XUr?&iL!B1fI| zZTdL`42L;h3qTZ+e=`TesJ&UBK@r&&k1W?G%i$)sp%bH1LMKWmOh?iA9P~_KIhm~T zJFhGdE>IRWA3qYuEJA@BMedhxW)E5Vu`s8kKle^HF zNM|QHJJQ*n&R9C5;TZK@Kvwykr#`|3)c4bTK%+il^{MZ|d@xUa5v#t7@?nhn$hl8_ z7w3Z+^)WL6^<9z=Xw=87`_y-7KA2G-Wff50W%+Z?HbaMYIr8mMm{ zps7#JfSa67XBwTo=+>4ha{~;cxQ+jSh*`r^DangLyi1 zkLhmChcP-N`#v4snh$1l$jk(Ecw0W8(IK<$)8Xy;U_5N`etC{!@`2rv4`x(Nxdv2y zXFi}&HDw=A^<4mjs`o|sa8&&W&_LB`ps7!$;3oHjWAykaBGIP*5kH9o5UjgNWNShC zKzup}!Eqx(`!d2|M2^7t$`O|>16nZC5nP!%7~w$t7!U_w4nVJRONC7?riR@?3MFuYC&zk^_hAc^^KY;xPyzekje zpj^pLpPfWild1U=lUND^nQ+fXYWeClUy- zV^nAo^{2w=5R8mRwxi(Er0p2A|7J%08PqjYCNDV(94Tbh7B#aNBfd|N4!W1GVd#F$ z2+@5r2-PQ-z)dcOV{|_jk;wUY{NxxHRPQo`Aa*Cj`qkT_gC`)^AxL5=9Gl##cW0tx z1SL(1#nihT;UKU}aRR%M06_xj{nGQ})q0ZK4+52onz4*TUG;^muuWzrffj@NWp`a(DEB%KrQ*t7bO_^3 z;KMpHTrG?&&Xlm_I7|PWt$%)qpB#buHr~x$(YRZK#?9$ry0gP>lvX%LB#FI1OJ73g!AC$>UCu%^Z?m_bUt%YpFe&u_zSH-@!9upfkHmd&BnNV{P5ME6IuE%K$VX^jI13y`ZZ2nw45+XNYsqb-R)1uLiCpR0Sz0K>y#0T@>C$Fb%Cs~)%f zJR&B$oAaSY18ReNXNuk!Bv51lBbSdd8^`Fp(2UAMXaS_z zilT5lg%*UP`5X*p0f#)nm9v>(^hBw2)9tWbQtY0Z59k1;tXrRu4XdHJz_I-Po&r1AQq=XJfn>i7 z$Bi)cfDt(YgZ!3wsZ1>Z5U@W;u{OdV6l)$&7NuKRVyrA+mus4oU_7;$IJPA9tw-6v zQnm_*t1}ew<`E7VgX$LIN9&Babr!)%Q-Y2W1P|BA{d>HK+M$x1COBIZi_QBo0uCbY zTa!UI7ie3-K1rbDHRDI;g3LKBaG=D8ixiPV8Gjg@{35~#t52drQ+YUoSkxY2*1yV+ zKmj!krYTl#8OUoe19fl(k!(pKgTUFpw6+e3D@oSj5e`{{K);3`ElFnBX@vs`JW2_) z!9O?&=(aUbA665|a3tWvIdlmWHu{hNS%U=H@uMZc3_GjfKmt7Pjvj#}$6>iZ&|?h3 z?kIi@qeplNXwW0{01fVLg=>0*ml2-hH%%5~XsR7DZmi;vabs1wm!w14ziLM0%P=C_ z$)^l%!oxYm(ct8Ayf9p!ycBNoVmO+eH97kGHhy46H}TZZ@tq@7ejuvMTJoE{3Vh9m zhaXWH?zkQdc}B}cp%wx9nw#P-4f$#mEljFGN0Gh)bhsG}EOt7iEOEZ5_0WU>4Mh{o zdG^~{55EHP`s6R*8a;3m5u*F_&v*6Dsru(M{3NaiY>o+N<1@dBH{+Xer-;h_3)7Ou z+Bu5X_{sYF=}dC-Q`$;6JNrEjy@>(QEvKm7#EtMH`}$_)EYE*ZPKj%D@Y{M2_?h9icB(mKZw&6C$WoXT&uJ!nfSn9pMF1 z5-rZ)Ft~Fy@S;a+ayb@JdO61xns&@_li?TR6S=p_UJG{?vYBHxkx&-xA?1Lo;r$xv+X3kqLg$jV zEhzks0kJwn2bO;VOlX7dByyW`-X@c{4k1HQ45sQ4J&C`YNbeyYBICRyv>%)W4kHA2 zju8lQ)#=Wusf=wVRo}ODkfSE0?ggYnaO&;?=78n0fPg4jrs)9tDKj5UlSPN=5pQ9ps55XrnM6-T&6~fN0k}JsAY9c$oz)#|jgpqoId90j< z5lV^2ZCZP`u-F&KnY0{|Vp8f!d;=3L3L1%)%!4|Z76OMLiAUh%@)8%Z&sYel0@5}} zF$r59#I*1za4|S)L*+7?P*&#sBqSwh!{o^Bsb_*@vCEZ%=S#+%?yYYJh2%lmlbL3Y+5%|YOyxMlAdEw(L^G&EfLMvdjxqOPCj3Z zu()k;s!V-=P*yb>R<^)czHLOJY_+SF!WW25TjFkShb}T4gtMnVSGu;6G}y__ft8U z@+mMkk4Q%m>PS@ja|v-6f*BlBCSJhYC~@enoBK9>2o^uZFg#I$aOu2UBKZ1v3Yy1F z=TyP?40l0}>F7(90$LC|^cBN5a!~lTaq-bt3}5-6@Qrfu(Z@0qN^NU=o}3&8q5l5| z64Ldb8gwWy6rv}n((M3&wNJPMsgy9H(s2Zq6a%P~fH^nW_V_X?-NAZ2R-w`z5$Z@( zdJMdnlrsb>Wy-`Wg(}?%;aa7ZND-AXov3sIparo*Uom_;4+`HdEPVgG!&IN-N-RO6(4IAe9nER62#gl41ar5-{f`OW@0> zw90xtR-w|V2z4YXJsDo8lp#PV zgG!&KO6%ZnO3a6wr_u%liM(uIN*Gb;mkBH>f-22V;SezACR>0nqtZs}^;m^U7b4V= zsPsH|p;CrGrA(PPxlpAUglm;rBCbj=6qQ~Gl`>u5rVFc5ivcZ&9r}vlTQVqoO)ftA zis5S+6uzY{KKisuml>ZYCx<~$X}yV2)zqLvfkCCuP^E{!-;_8EZk|dHM^Heegb|f~ zmB5lBsM7ot4gqs+vajLGsI=93JyxO8|3RoDQRzeBg-RI$l`>_buTZ5&AY7}|5^+^} zxv2DVsFdmYHeFtoS_x=D?9f*XU;Ci&t#a|vR}A0kLE-Cg@zJMMdX({ba&j01l`c0i zs+t;fC@`q>S*rAC`0+>`+<{a|7*S~_fhENNDkWgfO|~9iMy1DCug5A>+J#U@qS9;O zg-RI$l`>`G^g@;PAY7}|5^+^}m8kS8sFdmYHeFSf>IJkQcIYdH@3=wXJKn`dUom_q z4hrAbU3~Oum43tcJUKZGf=btz7*$OTIusaG$}2scli+VkWZ@2^Qo@KzPbRRW7(k^2 z%(=-n;LE6VqxE{MLZzD!>PS@jTkt}q41r3SGV!BAm7aodtx`+GRq55D(yO6Trt8~u zbyey+fEL6KeZ}y7cTo6Fb@9~tt=D4}D*X{c9f?Z+0A8q+Ay6q( zCN3;g={X43Dz!vhmEIsKy#Xp^y1q>}RHe=Zv>AlU;!? zqtYv_*JBkb{TV_XiArAzFI379sFW!amlmq@Duip5S|YAW-G!&|VBFdcoVUjSMV zJMU85F*2U3~Oum0o9jo}3&8L8X_N7*$OTIusaG`aD&7J^W3H zo8S(lQo@KzZziy$7(k^2%(=;K!Ix2K&U!soq0-+V)RCz4jqpOH41r3SGV#komHrOl zTBVkVtJ2>}E&VNODbw|B`fXKeGoS^rLtim`w+#y4?Jhq0is8F+Q26e0@zJMMdbja; za&j01mEK@tR5dl|P+(B$3smVn@Z-J*xC5z_Frv~22rMZEP$>a(ZnEFw%c%50>-AWL zN*_X~BT?!5;Dt&V0+ljl;-*5CK8$d!QcJ{D>20FY+n`dW>)Ui&Rq7Ey3u1@9V)*_z zD148(_~6pH}Hp#^=e&VGvY$uZdCB)SyFwL8UKJrGJ9IDe)}aJeB?# zK_V|ZFC~nq^e+UK6hW2dr*H_EbCW%XFQd}ut=D4}Dt!T=jzp!Offp)e2vo|HiQ5WQ z`VzvmN-YsrrFV)-?}SR3u5Z(wRjHQ&Er=cZisAd)pzyuo;-jw^zE=l@?==@6eOjge zFg{OC4uhc5r%jBirUo4f3@YXRBIkAZn-c$mJCI5VBPxB9z>;DBl@c)LCVLBCMx}3C zug5A>`VK-JiAui#FI379sFW!acNMDiJ%nqOS|YAW?-7;W1C=se-==%2Qtty=5Igi0 z!}sB!@O|Xsqpujge-8@ZCoVqvv`RlUK2J^#gP_uXniy404LTGURLZSkOo?aYaZwkS zLl9_ofyvj9mwny`W-R-ZyuzIhQMk!49YyDJ5Kn#v$LxOi0I)g2U{{TBQ;~|{i;Hd_ zGK%nWb%(VXn04yQxj6}pm$Yyrk1Rezp_f$UNQ%p{qHH(fg9KX}edotVe!SRMh`knc zzL=C6Whj3P2v0Pn2n9R;MxZ=r{Run{L1iiZGk%ff9P@|!tg0j>PRrxbSuAqmQAGXd zEH8_4r^))b$yLaNn+yzJS!G4RT)BA{9ubXI5BB&17SMO{AF^YkkZj zwsY0oTA8CR`!+ts6CY1i$leoqGJx;m@U;Mkytso@o$a@2A|;1yw2z~hiwjv0_r%kqV?70FEXOrT)dm<|&CYHA+?v^RhNJA<%8 z*VMk6>oekst<%&@kQ2%61CK*q2BE2ak;ctO_Lr4~CP} zDs@Y0Lt=NGA^jq`>`irJudVVashIrtM_S7N0MIIw|B3O`0S4ee008bF!VO*a2WnQg zTJ{HnT>2m+0_oZCiyms=amW|8o*axH$7X^rqU19-8vs%pw^G}+K8kZmG2)O0=+_fF z+ur^+w^0-5X6@#-YdH)=9n|WWl&VEEg*~s3Pp?TsTQV1LgW;Kvr&uX92+tt003L@F zbL3gr2sF7dJBnxoAmA6`XKM>u&SsQj3X2{b4_Msh83`=XG;uzZTvbS^IMHoh|@LjNbB?U=ENNA&A-7cu+9D!JPt7@=5ch)8ke2I z4Y0PozA2tqqEWu6pLX6r@?@9fA#R&&NV9ZF1{WD@bYDCe8}aC1;JDUVZch+|0Zo%7wmRQV_DY@HkkN$^PBR;1GP z4ZSZ<5tcY44vWsW@FU`@W*(d@97y6q%2^)zW$u_&3@j*Bhq3~|#RyL{x%GJ#XS=~l zdm=DPo4(Xw3$~U95k-cKiA?XaTa39MRvpva&Syqs_Qhs^#u4K0CL1ZxohDA z#Z8EEevHt>*>ngbd#(2+6n7%?lyvGG1OxbHODIQbrU4l-(td?=!~uBR&dO$vXdRRE z79_QBBCJWNb2ZYOMLH9SLefBj)bGd_Arjw*V^iAdQexY>%|uHG!;G4g`iVw+E73A0 zfc6feB}C#(I5wrlb{Da^1(*;(>mJfAR`<>W3@hy2NQoaDtQZ^u%fY17Pk~AFcR8#$ zJOQ~Cj1<)5Nr?-Yt%0-POIa)D9dLlpEgZU-8(g-;xM1dpr7+B_-^V-~S=B&Z=`+9r z!ufWX)LcFZ<}iECMR1x>aW2NMt}zU8E`fst4*@Rm0}~aplCdf$d^l2~ix!|CCe}*< zO&%V_hvgwh6yT#Gb%lxjBN21jG!xlDTOTc3Qg}wPoq;zcZ$KB)x^Jrk_IN%8Z zb_k5GKjF(Fw#-jT{mk(2G-A`2YshCL9g_S79)}R{KgZ+)D^8nb*zS8YegO>szbZOp zm}+~Tc`j0PUa$gskpd#L6r`8LNhCJjLv^_j?Kge zgJH@yESr@24Mf6{_#rUlmBhsF5VzH(?;|2uxTT`?F(3-c=f4pswdE6d9CAaDEuQML z-G%8x1}Q_ofN|z-;O5X*G$9Og-O;DaEvt2)>;H_QTa>})fUvc|UroP2IEHf4uMK%9 zR}z+?+?`;nK6yLbJHtu(TU3R&nW!l zh}SGHgep_Nx0oa|ci{^(wgsHSn8X7%8np+;fd}#FJmf{p>BU7jh;SH@BQU-!1>CZR z0G7?|NcRO@60;I^MCU`UT~mMr6Qvh`9uFJBP5znA zGjL25O8^2~RN*J_R|FT_nMGK8Z3=J0d7KZ;6kKgLRiknA&mP3~cO=a9lbT}Sy;@gR z0@+i%iS;SD-)%1@e3@)?;E4xqLOPY_4gZEPXzNvdTZP=u+Yf3$@ygnm3)$Yvg z`?;R?y59LvU3Kc@bE>+!x~CgCwd;)*kp9s*_PVKm?@SfTJkl6#fZ)a#Yz4lGB)tvF zq*O7DZ!!xnGb#$m-m;W?A5cvEcg3Wb_)YSx8YfLCmd*2e>(*c=)fiR(=HN$_40iva z!0D?h7;>{*qVB=G8seGGu~#nebZ7Q5Xs(Js07c2LnmqQQ8gTxIqh~3In@Iu6cR(>{ zKDZ@-7Tj(z5Vs}_t66dNp?J-5ig%(CbN`;b@hH%QY;rEXVXeLNDf-JBs|Qm*&YL3A`{0j#Aib?#7_L}fcUWT`M+P{kKGn(#mimZb(us%khj#S9B`eJOs?ks%) zmMmKf{tc;}8xv7fHZof^=&A&39KWU^`f6tlb~en~DybMhQL?sN`lWOv{l4Pp(@zlh zH3gcl0}7{e`N7E=K(%KAl>{I)rrsIUcxWGH>60s-(Zg&IFj??~A=>(N_QeNT(; zfpn7Ru%$Q*heImvxfMyBwS2_DC*k$G@uehN!zC3LT^Z>@s=YK<)XE0iU|I;>20W*p zWSEM=t4Z=4TJ1)K%&L2pwXFn-M^59?JhUsZ2qL$W$k;R6i_x8{_saBv!;N@eV^rW%P!*Wnt)~ z!%pZR@x5`YvJti#l&>ty%<=NFRjOr*#P?y6o_4+C_aXn6L}a^~1&4>t&lrUaEpC1; z7F@Bj!cllXYHe2R5*+3qQwwRhD?oe5Xg4ZO40%D>rH$8iOA12IR9caVHv?#llQn3U@n8FT}hMlxi z0l7@fK63CYt;PKt4RcF#=~-`aeGq&w_+YUc1t)t?q8=n&wx#!VT^9Ah9v?EZGZ?4Z zJptkEPfk79ty%z@E-TLem_*b2_5GA2t8cT z!j|AqI7Pua+@U@Kj8t5aZKR#0Wocplk@RS^9wi>asBrEcL(@5mtRt*6)RAY$8%>u3 zBtFN$hriyG|63n9*Oxj6Mmd z?dhCM#YrC1)VDb}rLAP2N=HK;$i-#Vz~i(=c~p7v^r+(*(osCQ{F07n_hUfCUBv1U zd6s0yAs+o3%|Bb6ati*oWza~^_FUl1u-0mNhCLr9%&;X`_H?aA8RpdsfG6Fw?TZwe z2zdmwtzZ~eAC1M;@be?Jx3>R@DOAY@;spnl~@U6oyF8yXi1c}*dU zLQuI>SMp)*2Gf7L^de!d1yaqlEOKG_5uMG$7ej#OFBRQv=fcatNX5C%h?e;>&k~)L z%?xgChtDPTG0K-ItpklR^78)%U(2x7!Z@Ar-{6?#eS2x$py?Iz(b_bU8P)S>ee-Qv zEqI-%X+P;oX(&##Et2h}^@5PA=yE-3Ft@JH(fZ4RxD6S1jHUc8D zjXmBqz&y1&+(Zw()~KDR;dPx_dIIEnF_5LU4{?K9iqPywrdSLwuCJd}i zVbasJ31t{qcK}bepe-9Njbr>yps0J7KcxO}k5Hd@&R<=w+54U@3ifOFTebGS-xb(h zhtJwa=p%cx=CZ$HYy)dQu%X?<`*P;u2N3a^5wV@Z!Prlhjdx7;kTHTv!h9w{Pc5j`)?QMtg7ZvXkHJ+~L)uGw=6MXO>TUJC z;_+-=$JR{8KLKVA+6x}8icyW2z55n}s_K=PKj+2h`_tYP3~7nkM`EfNRf`!qs-5Y}I-H|@4 zjwY*OE*%(bds8R{+YV~bwzuG+B=rBA471JK0L`3ts5psBHm9(`Vdi%qOw%2b?+8~+ z>PUqQPvH;lEd79%GUi>Ws}Bps{%oaDv)M9+h0@)l#$Goq9p%kWwf$H-SH5S8c1sZ_ zF-VyyDKS_d$6$RdXu*aFn8a)n7R!9UWBqOf=P55S6q0S;v6aNVb0tznIrw zP`8VwFR3_5XPwLWRgihMrZQy&M1uIVpRt}@HXyvI5S~(mZ(aJfgo0W4>agvhk z)ZxvWL*_A%(41$+qe5gt*mj;rs_g!HoI8gH^xm(5+X|_6CYe{#^d#K;lBN|#Hi`Hz zgweI2y26aV5cO1x6Vxc5270PFCk$|wTLLL<7ZzUBuylHWE&?=pkOiD>t!Ra0bBdlc z9%ef$7*erjQIKsBH=8A2l;Ej4NWFio@}#Y^bS@ypqeIgAp1^H}E&U`Qj}&r#A=@8iC1{ui6zz+Z%(@Fiyq+4oQTpPd;pO?QUxT+wUAzry@Txu@nd!Gt5ldW$p@DRdRmIs&9593V$TKayEij%lxhKgd~ z@_x+eiTwO6kxixMx3f)=`N`$vYS{5oikTyltFqdSRzvkv!eV?B@9;k+v&*g)xL~^h z964b#xK{^sIR#+a)GJ1$;*D)9@L}+laTFRKo7dp4kl{UhMp{^5^aBixN%9b@sW=1Jky$3AK<59t&t!i*HgM8)(ysga;Cqr<#(WpHqaHU>7h@VOI{x-GEc|DQBcmz45)9 zFz*4WCIcg7A?0@W687+iz5HQsad`kP*_3|n7-hshf6rjlg^B@+oJbKThHCDpsfiwGM-Y z=8_}ih9`kdN|h(mr=B~;i|r^qD`@e?dPJ()cdJP;{`Dwo9))^}gXvY45cf0%QjeBX z2I|UD<>#SFWg)g1GoI%aH^Jd{4BWb(@bw?b9(5*nQ7E|lfwkqmv(ZzP&nIpzc@e}`)JjF1hh=>toY93`yj}n|w`4amee>w?V zPl5zboGi-8VQ=_b`PJI%qmvX5F+t&+=vlmLe#<#@c6}D8`386Tt2|AomGxZtA2gM` z)1^Z7NvWSb{8Y2Eo+z=`LnZ(8YO-{AG1eqFEFCmaS1%n-LExlptj+Q}Xc}d<DE-vEL znKLda;tXisxU@)Bf9|-fh&HhKV+Leo_7xl&n?Evtnwztn()fy}CF_~(-0@Dxuq!3L zI>Q>9JKk+D0k1+}B>{_b$JO*&0$xMKNl9CuWri_rh9?w8v{Ap%#*JUJT?a*UMx1au z${)cZ)e=w0@`xTtSASQ(+*^1hbL(=LR_T?S~ub zH9y=;#YvSaBl4$Llr_6LN*@PhZ|PUrPa0JA*4Zli^Qi1?QdU~HPo)a$p3gYqzT4@r z(O*`F``knC09v(bs4S0d{Tffw7O3hqVa?21Kg2Z?ZT^o2cQ!8`^(uch_{v*zSFo{a zd7T1uLa@Q8FM_VAxlt{D(!HRu%~MXW!E4Tttw_Ar|WBqaE15?xFpP@ z{_q=r_^m%Y#vz#ps#FBCyKMZOC-}WT{E{zW>@N5kZDnZln{7pLi#pa>n=pHD#oy6cmIe~xyNZzJN*-FyT95zmS9iXPSM|Bo{D)sHayAqKL-Fn@VBwc@Llk?|mvxs6wf8 zA+HPmQSszwH+hq}z|LKC+F9TO>6CX;9aC8ejSf0}2s)~L#330DEZJj)@O0Wr`RiVP zdebHSni^zMk@)9c>wJ#=U5gpUIv2<=tGr&b`}?3A@`80+!+_*4ylyrzcfk7`buxBv3GJQK4_s zH@coU&7m(Q^lke_*K?&g^u>j~UEk<~tI?Mb`u1M2C8-y^9?wGs+wJkY9U!X{kv`9e zOTj-nVQK0tNad15eq5c9NDWJ!338@ttrO%Y)!HV=1*#32AnPW&;LUG|(V*@ffw{Om zX$Mv(*rK*XizBB4JbOsN57m-}YFwE4;i#3V<^}#1BnhTtVwXcD3M1;Dam*5>T&(e!1sZtij!y*F}ty7r{(+Fix26yf4|MKDlyC8?luwavf` zv6eM$sf4c8n-1n!3+jF_*=kD5%gZGDQZuVa`}@WKyKl_IjXk%U#fo2n8?(55zd~Ky zPp}tdvF29hpCq*&XZ(+ zRN`cPW{2W3_P=3V?|fqZ-!rgxL2pVOBNyVfRA%J-MI#qeuNiqj-pG~zD@JyR`G3*K zQQnj~MlQo5DKm0`qLE|NYes%QZ{#?itvYQH*Khm7s{T;okQ^LS(eDWyO4A)i5jwIx z0d=H8<{IBpn#Y@I>6B9T?7BH*AMNtP{sEqbO%4Q&A@ASbZy#2%m9la$GR*cJEoYSD z@elOgw|++&CNoAP2Ss+4#r<=rjDWF9e#uTXu=Sk{IP%#BjqvIG7ntq4_!w8|NMN#U zb@^yusul#vNrT%fm5wZl)G=U<*>@6x| z(WJ8O?D9I7lOYdAk!$1x0CSN zoKZEsD%=ewtO_qiPEXf`lwB97I8Vj7D$b?|>%-l_MVUP~B$olMxoaT;U63-{=I>hU z>FM_7kcuwusSe;?L|aE`1{BJoeI&N}@-CIGm3t9a(6Wg>xiZ!)gV-_P(_}KF`d-Ao za1?^yo4JI3#Ow#qHc1bn;v_t|oWi`%RggVreXvxyv;x&@Ft4VW>65Cnc5>%^>Dl;T zWAtYr$+AOW$KeMYG7f=#IKLF;@jRbR+Dq5uMGu&8!)6J0@r2U+P&q>GXkp2d%3HorzyX8>oM^LvtizBHxd57Vo__%;@H1JI00f^yl)3uPx z;$tA?@Iwy8WRxG!Mwc!bbN_(Ub@bFp%y7+Ho0va>yXD|D3;A?fb~O)-=y+_~LLC)yd$P@ph#joHZRFbGo&fp3{E}6Xx{Wv7o2x7nEJM zQiMtTOgfQ%7Kh{xz@~!V%LaV5z;{NlU#;Io)B7~*k)v40r&$lA=Xl2Fio-qPplc2h z`p+Dm=esXb_x({o9Q+px`altSi6^<#A1?EU%l%=7KU~2f`9ofs5B-&bKVA#J%9CB~ z4?h#upNe9y@txQD!*%{}y+7RG4>$S4%^Z@y1^PAZ3IRvlBIw^MTsb=cy-U#hOe4P_ zOP*q3ihDk`97^-u`qNwTOuqZ>eD{1>&PDHf@_X|Ai;4W{Jo&xq{&i4^Dc7rXzo35w zT6`Qv*GT?pav2AGW)-?HRI+a=eX_j9C1^6I9 zo7Ntt;)I$!NZ~V3I(5H7)4f{h$S$wckqQ~KREBWuEWIYEk_k!1rQJYM-~~h^57Cw5 z{yI(fFN)BSaaV_k{wBTNR3lXeSHAz&QTmUd#mBfKQq_&on&f9iDQYep-r`{TlqJNy zO@Y+EOX_>nC#A~d{Iva%phc+>sak4r5Fl05NPVA!mntFd0}7=6LsCDXJ}K2W$xHo0 z(4y3cR4uhQ#E>d#q<+f5OO+7!83j`Rsj&Qxdh&bq$0U9uVIaI=1K~ws{8ku`2nuP2&79FKQu#^`6mKMr0 z`_?S?%lR;2@5Z|F37WI(bA-(+(Yowp72lK?zWbWo4Hxvic3GSEslC*ZR%@9}*8f3j zVF(i~a9OWu;^B4d)e(xJftc{y4_`S9!tZ`;r^;JI*P? zg4_?pw{QUvN1(jsIg+1z#@MgBhC|s%gg!(S0Kz#;`uFr)%f{s+DGqkdJc9!M_WTzVY5VpU7-Lx1+op>W%O&IMX);v-$fG{Gq zEP+a(FHk5uwYIKGm(E6C3R*oq0{sdo(Ukg5^nktwlY?+h80Bu>YL0jg6b+ly!b+cswDo#2i&kzE+od1yfKiMouSDZ`K(K@QM5QuqD z+eiZ`77KyRVPSt*M6`EU20TCpz_r&l%AZ0A{`VW@gDv!uOXzu`mJT+*pU$H!Whhyu zr&_4ywy+nKKH`bWQgLucX%Rq9a4EH@*Jd#eMW^=jiPCtM^Yh1I@M|P(7Dr%o^%B%= zb8<;4PU@NCzonM^nfwL)z2n0LK|5X1%i|XhrgR8@X&RU{l6vWSQ; zbz3&TVmwFF3vt3>wxNj*HP`OJRCeMF3VGK(lz-r#-=w}*50!$r`WqV#onX0ov>HiyLbyahCD+tpK#TX z%9LD4RL-Y&*$c5&KvpU-0@!(N7SF{6KXu8f7{1M7*j5CJ$t$Vz1u6J|Dfp0v)dDTO z59$6>Hms88`iz$?v25%mW4x;-cVwynziU~2Bw_)%cdWF0*u*><#5{_a0=6($7N)d< zQeI+%#06`{sVl6|mELQPDlHefzAam-6CzpO>%`MrRg0+bxKeEjtO}1w*#+chb^&Qa zZp-25wHm!!4x{oNDo%2f=h3p>^^JY$R0?MQqPoOhZh46XtOR{J*<5kCTrsSr_j0*H z-1u*-Zm(UkZ1no%4rTFV|4rC3l(rrV*IUIMJX@7ze8>=g0oN^sSCpf+9OhQyDAiiZ zg1E61*fbs#Tam0TT>0Dbc!FBWr8qTwSAdm0&6?C9UCSTV<}lkiKtlcW{A`~I1xn{^ zCxFtoksW6fspy>QG%RGids($UTk_PoY@oFQ6z zx76*c?3~#5B0ii>HkO2NwwNdhL#&nP%(6Nc4ayKpvI#o9sMavy*VnhEUc8pm9I}nzj}QTg=4mHg|E~p!Tbm+u zWLN0wNOeJ|i@QjNoVoleQ}2`*?L6Xl_5*ZINfdsk5oKjKJeDmzOYWL`HqogJq^f&1P{rU|ZnT#+f=8;$_6F|X z@Lv*VvszfqlCn)hOU9#FBt4(wv@eY7IulAsk zrH!GH`~&IoS@PrTFCO+4tjd~%OOPxf4idWULkwjnE%y(RfyDM;sUhNgx^5B_Ii#p# zd+B?j>rlE-^)ShK{jxjTipl&&QBo!yoZZpXztv2WA(@GGx1qJFH zC3Vadt&O=N4%98h9!5vQsB-cS{~p%$ww<$&iF*A|dWk0K;tcHX-M`9vATy8pT-79U zEU4KgWY~1Af5wf`$j0AsBGoo68J7OdA4iq83aTDYZ)Izj&koxr?g@ha72M?6S4du{})w8?jeipqPxP805$Eh8PUUS-8J}~6qkYWkxzKJM>4}Tp8QSCE$5uSn`TIoY z7KtkNh^n42{Yeqe|E(n37=s~qIqKc^I1kG1UA%M7r|$Oh^$V!uy9?_xuDVmWkEggO z$LSJr61>Xd0V{QBQL4Z1?{Bl|DwqJ-ZSic&t9OR^&Oa-cx$iRZ$>WdT51o_~mrKC| zz2Y;d1G<7k_x>JqrMeID^{c5@nc;7yRy`%-Z*CR7HKY`=ONA=x+#i0zFs^-2tuF!_ z&xNnV>Lv@@mp;On@w0)dTNT4YgI}(Z;fJXq?fdvcg+0^TmyZ8qqyE*4E7sFP4sxJlw3W;*ujYQ@uiiu5^^B6MWeW9mqS44Uxy5YTCWG#TFvpDI1W z<0=6=o8+^{Rq{_=xqVt6QE249Nv~8WB zlZ9$+R-5R;nc^2>5YC^sQFo_%#7FA%SLUgrS#fD@op+kG?|Eu6=yCl z;2t3l?LG@EC&lx&eAQk$J4n1Av}`*sd$aHZMvTZ`OOkM%7{$;$DCju=z<7vyqgSQ8 z1@hb=|6#HEi5e_z&*P|Qwv+{N=Tjiz5m4*_Ngwwe<>-*77R{>b$83>?zX^SHq^q|x z$6p|^2zXRFTHpjGlu7B^$f9AqGh|T;T0{< zL~D1|S|@06s#@Cw4KvjS8Em2pL+}|f8f@3C?hSGkVb2OQs9Vp7I6eLW=s7^ygCzdp zmhQ`8=w?uaj%?ymN4%zp+ti(+Wq3x?Um?z6p)Ll)1<}Y}^$YdvL0R2sVslLbCeZBf`peQ~9qmKAU zLA)yNEZqoHe)+rna+4a_#dbu_X6g92LEN9~DE(Xn$s~Ph$ezEqYxsCYJR5pH5pLX% zsLVS&6@qsp4DZ~`!FxyQx?3pF{~z8vGTg}~K>w6Uw^6T{6k~dapvC83qTbcP6EstV zYkM>hHP1HQ&cQ1pA?}wHNPP*ZaX{L0f8o)nm!)8vvsTm3{k;Jbp8LBSQ9a>lzc&FP z_AP&S+aLbJ;eYV4q5I))vzxsH;vF%&4^ZJ_L&CyW@piaep(~AkJ~s3&+){DV5b=&} zFFizCS@<5E-S^O-{yuekmTV>!Cyd#=4L&kNYgWwm?)Z+~-xSxc7L(~0Ml(EAtE$Wm&Mkh6xj@L_0Bt?>FLmMeX-i zT80vd_;&iz?}8SsKnMJy{x*=!*|P~vl;A_tQTjs=GzePvM>W_^dYq%VuPlgrf&$G4 zOP7JZhkppjwzD);j3uQy=GA&A=5vUBo%iq$6DPfgf4DfwF^e zaS~7V$TBCrVK*=E>?Ql9KL`EhlaRcA8A?Tw`Gr&GJ^Tv*H}@_`#ff9(J^arH{tMOc zuYC{y!osQZ9{xol|3$@L9P7P@e=%X{Jx5CjOJlkJSL)YJ8%si5?T1>Nr6j4%*|gU5 z%-;?ZX8xDZv#0BylwE&U@mGp)BIuARuh6c!0VE_{c@UcX4WLd4H0G*zjdU$(Go0-j zso!41k&1KN3axtO1{)euMUVJYVm}JrsnpbGZf#)4tDez8s(*{z%b*a01RyT5R?{wW zFu_Idz_O?7-;`Z%sdz)h>ndKQ2+mp#+~hslHO>-J9cL{M0gA5R4=Zs<#WQYfrjbmx zR$j_&o1UXeAA$+-Sg6$R-vj=x2aW^igpf*|%)=!fzGIUAMqjVbUesOwq#wL0owCzM zoL?$$B>WgYPR!71m7tY>!&cC0RcR%xmvDXu#>ofbDaLi)xykNXORB(8 z=^O}>wqxQ)=S#ts>Xgnh*>8kOI?QdKZZd(?0O! zSnb_j+sW8}PEW-@XB#@3L6}N#3{(E!m3G0|UYd(;EjBinkis3t5%i%857W#YYZ4Xi zFiNB9r`flFhY%(oPU8Ah3DOc~oT{(dof5ukcZ%{M+Kn=NZruVG zxNj})ZO&Rv2W~r<5V-l!t*2`q$`H8ifhP;lt_hrw`VZWW(5IrW=YNb{6Juw{*vm)x ztKrLKY~<~Y)dFoNZ{+-NYW|C~yLuxRg-K7>!jxSLQUptPlckH(uCY`|{ad<+EERpU z)LwQ|cS2YKEG68YB9R_7C;YwWsmv9Nfdcy804gj%+9NNT8`i0aVAZ zQKeC|aMDrq2;$cZ9UgcLKo<~xNFBT%`NOdsjD2zdU+47m?|nSEAQruP-KCzAGSOS{ z-4}lyKvw!MEVKv~)v(VP7!stzwFT*>& zW%6L0-FWW>-%?{T6(=r{vCS004O4{G=B(9pv`>Ty(Ov-=JzdLDc8#G3(LRaJWJTI$ zPc-yoL01A=lLI2{KL<{MK9#88sE$#kv9$2hsq{#ck9L;_o(|9n!L3X&DV5~t$8gsr zFw0hZ*n^ms5v~iSXV}A40Cn< zpDhKIETEXw_EL$K^8cJDH+j*XN<*dI;czuHW7$9ZbKzlQ;yfx&oTD%s6Cqj77gn3I zR?}nRLYOcn)<8y2*96M0@hZv`VPISYMzR)d?_Mm{S?yv$*9KZMFhtt_z_=88w+^V2 zQgJCHxpY9#fRcQDF)1c_lRT@Fym2OlB$sL=`MMm;d1V>w)}z3Km*IhiY_F5#Gh%G2 z7!{IyGm`ukCHc)E$!}JYE7rK!GBUW^>M?xP34f)ORT5MZej{2+_^YB0g@kWV!qu>` zoWF*O6Z0s~a(+z!2)kBTZO&Rv=ll&YA?G)RWlz^8lwBKBgmk}=&SZ1iHHj^x{uBFV z=u^?hlrBVL+qzSZw20A&a(o2L`pxLZ`dhs9)@s`NUwG@chGkFJmXuvvPz395ll9xu zuCZQ7{ab&#tQUPB*6)h-KUXf^8glVg<)XA;O<*@)qnw=e+t7{mzx38yt7+@+^w#eH z%bu?7D1+g5$?%Tgd%nm+Xr?GZmRQqL&9ZU2>e+x{!{ zXOUf>-9Z{70&x+RoyYhy@5~Wn!+d4;p`I5>NpJG98^iN!R9DN8u`htd?0poxnm6`u zFk$vS7A8GiKco!#{CBBvJnd9K*@ao*<3MBeaiA;hT^Co{=E^^WJVnT&P@gw!`qW=( z34OISwc?H+T*cUWn>7CvpQ*5@@o-e4u7_U~*@+@6ZYm8-9hl~~_FsY>?tMjEPm)n$ z-N!_92u58$ni=@I(f*q8I=;@Gxy)-DuYO*IVJe1LZ~o~holHw-{nv6`Hh~;R2k_T{ z+iCm_Do)q{-=vQB(pGC5llD^>rea7SEtnmp^Jyt*Kg)Gl(wG3K+F9UKk~Ub>GKVFtwVF=aK`pqg!X0N)5Tdi?S+__+yifJWre@07*J0jO*iF+{}z~=^Ti90V9C+s>I+iH`g zT-Qh5DLU18H^1aXE&Is31;DA~T~KHtDb(hy)pXu13KR0~I@Idvx`s03-D1F#8)&Bj z_LFx@fSd|BrkuXQnEU9|_*>|cZdt3T*W3`f7d|*^Wq9H&Yc=hxZ^Hy{7Ao%UNgj<*cY{&RLJb2WOSxiL?fBt74qBQ)eJmwhzZuWEAd_a zT6Z(pVd)ke+<#!8*UrAf(R@`F#Jx)a%9fy{Ql0yt!v-@X!_zujGb8IfyXt=p`bAAFw272P%n=ziY|+g5^S`ucXNe@tE9kNSk8 zS6&eJsYls9>ZY#joyt4p815)0pLy(^RR5g17=FRgGZe&q=}~shGt|e0>^9CWIflE6 z$yXkGH|m*DV&<=wt3P@;SLti8<<;Fq`i&YqxIc@dmoJEGdE26~2Po!jb!GDR1j-Yr zt>C!GY%eiu10rUFIC^G+xWN?2+dI!ppFT2U_AzEo%)r@~R&@S;VmZXa_ZMyTB+<_o z0h8fS+RTv58EeuhtXBFS1EzT6>z4zhq4HAn`fQY0_x+qb2U2IkP--R0Z2cie=9$0= zN^jNLCn(=kJ7$6sMK$}*=LAK0q6?XMki;DcB)4}LZSwi7y}N^jHGj5;bF+4hq$50e z?D3kBJZ?alot?Uc6WK_ZSh_0UAxWd`|JsS{1XLsirF6|6)C9`FM zT&7xUR%^>@gRC~u1-pC2sLd@1Mf3SF6(;1zaxm%X8bjHYs8~itCq+n-Y4Ym|w6hzv ze#iSn!B-Sq+S{v(i1bNa#GRe4mi85J4% zG0wxBKEW=6AQeIF7R&&Gp>JvV8!qjo^@0i)ONE%6*-7FOpxx3EB`>9J|Mj?xiW41Y zTDi#ugv-TZlfHAe7@#Y_PbCt^mU=kK6;}zEw@fbo*JuLv`e@5Onpce&OVsSMwSX3| zuTQm?HVhoDmKx(|s855hQ`z$~L01MkJLU>ij(McL7FzzVx-ryFQebzT*nQFAN9lgd z(x#i9crYP^i?8GMVFsPAkFM&J-0F{TO+<{`aeZB5Ztx0iB84L6jS;i@dqUBMn~cO6 zi41}F&7xREr(nCucBM|id6g?^Vo!3!X$bYh#m6tiKFs?J3-GDRC8+lKgI8X;=LV39!2~i(wltaPx7D3h@QM)qqpZ)1gE}BwFh5e9-_9SR-CzwmyojH1K1#!DjpzTwpfs+Qbo)y7v0kO5TJ2hGT zCyCpJM)KlF|0S-KxJAt$6OZVf#ZT|(GtM@;^%p$O7B?mG-A$D*jr)I%X4ejXhG#0C zU zo}GOM>jQRU&tL1_4&&Ee+80#G`x|u0BN(eS#(Ru=|Np?CZ$=;g`4c}4s8RcpNCzfu zKdm`R1dK@ zILLWZs23`4BQZ;W?W46MD?-y4dw%La1gyNYjp}!e+=-k>y(hw_b3xAjCkbiz z()9Ka==;%I`(g1BQn%IBaMbS=hw_aqPe0wAZS185~mOI?ttVTcoyo2s==keG>1J*f1h zhz6M&PSXpZuO$CC>e^X4o}-s9h&#cfd>!Ps=H-7QR&CC-Y5Ek=I?PTHN}rytDM;(; zr3mMVHabyokUtFehantNAz|G3=^Pb|p#a_KG^o!ZgfJD`Y~N8jBcKfv+L<)WGo`Zv zcsO7|dY26O)n{61f|(QS`u`x;yYg5E=4Ye1gnTk`3KPUyhwrIryO3gWEi?kER8*jh zKPPB8H$Zm*4Rn}CY@Z7!gK@=^L7j0luQ9DO1Q;x6_m3xU#ouCFgF^hs5qsJo8fy#0!Vm((^jF6X?{DA4koEbN7=O2ss57ynOG*;D@Pbcr8yS8VsJ<0 zu{AB{uzfR+y-Xfko5oj-NY5dB*G;*sb3W#0MQ=1XS#YCJP81cD;#Gsq@xAA3i=zQ&bt`3%xHoWjJ8ez;zvO71E(_v*6`KBz z`)#!F$39*gYc;LSzFwQVVA<1k2W8M^KWTF}ZE154N3V?_?p_My@9*WOYBeqY05AVR znDlf#K-qO4MNs1VQsQCSQsNPgUI{_mqoL_t@(?XlI?$_Rt)^8v$gA{6SoU=Np0evP z6~CbfdL1mio}ewgp5*BD62v_fnqIHRX`$C4UN37kt=A8{UVnyVPuH`QT~AX4l@66k z&(oGlFL3lK3F7_|nqH;nXraH&H=*gZ`H~jeO!3-St7&bfdTm<&Ep2AOIA}9X+6)3JZ3c7n+6dx?gr?V~ zjTYLR=(Vv{)7qTmwHXG>p01&kL7S7M&78EQ&0HM4HiEbjq3N|5P77_Odu^=Mv^J-B zZRUq%PuIMZU2{_el}?pP3(}TK3vu)+3E~zGO|Q}dv{30ZuadQzR_R@@QiolsjDc~` z<~?b%Jnc!zij>J>WBA{}XQNwsTUeGSD*;~29zk1OJAYbe(C$BPx}NFztqmks=!Uf zObD&dM)N0$X*0*LRYtjSDmv9ltATBdooe;?l^Wt#&iJWTkKg!)_^qDtQ%#xCTAC1Q z6+bzF$etBKPfJ-5baEK^^1ed)UFwsPwJ7@wsc*|H z8$~}M6=Ir^ZAB}Dbn95Hs7gq;0qU%)dkd3}Z89&wP@!O>#e!FJ;RP!O-Ez~N0asm<3%|lO1SrK${ z7$N;oA>Ez&q+~D3{z57o3+diMHi~{iD#SD++lN*N>AtaAQI(MH2h>?t_nuSjqnT0MRTHN@}WjGt=t`2Cq~s{d{z57o3+d59Hi~{iD#SD+JBC&W z=?`PIqADT%5m0Ac-A7W@{;UpzohXw#YeRY*a39hrBn#;*3+XIED!S>@W{oKw54JIO zs@3Dy+YrCW89&wP@tfKZziAmi)qF@#47G}%oIr&1h|tqgRs@|KMo4EWq$g3Il$=7@ zUr2>xAw5;dM$u15g_ve!r_l-_Jv~+{suI#OfI92yo=%mJ3PMOlncQC+(ldekkVYX{ zNT)cROQ*PvQ_-nbIty%L>{P4A@0^DCotyDftscMg8sc|;#!odL(hEYZ;wL8%Aw4*~IU zDj^kwkcu*SxHhC$0QVt{Lb8yaXdyk3kcw{lv=d$FO0bQwQ>`Aqs~h6?vy7i=_4r-e z5Wnj(eyaJ9ULR@|KRJO2>4l-ErK|`#IgF5gqLAJ|eNu8WWq%i13sVI}jYD0QEa39hrBn#@rn}NF z!8XQDwR-&SXo%mP89&wP@k<-xcX!55H6PM@LapK_ClDdMG4!;Q6+tJ55zFQme;kp5c8M$u15g_ve!57G)DeJEBdsuI$NfjaBzzMm=~6@-wAGI_E#q>lpk zA&o+^ke*>7J%f;nZu+z{TS|OyL#cD-WLi#ySXI#8mJuPKL(8*zh^ecsQ5$cnY#VPv>scVlU(|-Q9k>r^6q1GXA{(U_F-k=@ zecDB?)B(0JcB<9m*Vz!iQ5iqg>hT-h5Wghjr58#hQI(Lc1k_nq_i|JTsUU<@l*z2x zkgg2ehcpVwLRz^l6`fs|jsx2mJJss(`*uV8R?YaSR*&Cz8sb;V_^IYYS`M{}pPWF1 z)Pw;~Jooe;?^)$q9{fwV#_4sYr5WkHw zeyaJ9ZX9YAKRJO2>G;soQdR_=97afIDWnsr^Fm6>{z57o3+ZM;Hi~{iD#SD++niPi z=@zkCQI(KR0_v=*`+HOgsUU<@l*#bgkZuLshcpVQ6H?JxNVf*t7(3PK@!Pf`e%odI zRIA5thlcp=nDJB1hjgbc|SlOj7YEi3jyXA{a&I!TrXSXdE;eUdSBN&3nM)Qe0YEd4yM}c z4HtxfC@tg>T?zEgh#CyNc(^3|N+n)kXi%WxjVwc6c z`}^uYkRs~{pNvvRDr5vm2p?KKh?btOT*7O#B!^TEiEkw6;4#<9%SNK?-yYeUzx5dG zln$P><`vj_+`6Tsbcm!h!bAUP`%qt>dE5RXqtAgn(>eCa1)lEYso2BK9fR79tu$TA zYr3=y-y2cM9xH^mORl89)|nD`oiDyYtoLB88UK{SpS$>XPDD7zgn1Zn5LQ`5Bna84yJ2z zRIJHU;h%3BMf%Sk7~zk59n$q({=K+%XG`xpJf$*m{L#UTk#xCZX<$+(b@B0^@KE9c z93_O~e0`aKP|0i%MhoG1kB|g}Sy}3Xuq;5HDnAC4L}K++x$q^bZGvR0He`Z?Omsqn zXpD%4P;p`}r>7dE1i{`Rs(ib|MUQ4VJ>TFlVV0!-rH(9k8oVR)Z1-|vtEbYJ7h9z{ z&q!;WIgKLVUBIP|pJsy(Ruom6vsTkH-^wsynjK>^-w8+yGv7Gi$rRc(6OfQJ_YlbZ z1hk3>ri!5WPP#}S12pQx+ee|#&v@U49!ppChwpI6rmmCVN>>S3_heu1rtSn!PNXo` z_$lgSnr?c&BTP~1NQI0Rrb%b%6j~ZI<0VY07v`pboy9Smn+7(ooEq4#4*O&pja2?D z^mp= z!}mD2i@>RzqAv{;ej+=EmJ^6m^u?j4r7Q|}2?b)dkeCZY*DRm^m#P19imW5#zdBMO zV@xV%6_UMZXO`^#4gF*J0)?G4J4-VlR&q^}_@Cz3%Gz1&W^+Rl7SpupKk^YZ%-r3o zxifo1k9{YNm#S;h+|v7TD-PN11pn{Ev-HPext~7^#!ncpqQ5y-ov%}=9$(O|=nL5o zi}IB;W#ZN_cUP&wCBxMm&A754?q?LBYy*l7m~DkC!f1ncN9h_s-HHgv+X+X2??A+`>iP2g{X zx0Kpbf^Js>rGClLDy~a%eQDZT+cwClaOVeiDC| z8mO9b^r{Nt?xp}`e^4x_2MAY$OzKKWr?CvefxwN-R!Ew803IZ&HfOD-XZjz&gqePv z&Gh%dxa%H@Fw-AOXYy;>seqcw494>-~L{L0M zM1q3k!s_G*(LXFr#UxIhnz;J8zG!QYm&!-N06= zKD-MgJGq@8vErnO(u*oTDaIL09bAk&0nn*O@_V5YvfpQraR4U+w1k{W#R)%q_}ow7 zhieLd6nJjV%jASf`l%pc8ax`j<_UJ&E2f@?4IFu4$1|}eeZysova|ZK$;#Q4*L zK9y8O$uj`5$@Uz)5*eXODXAyL7nvYSCOUP3`eUK$O6N=}P7!Rvm8lX#xt4kJEU_Kb z{deF_*{{Sq2biT$9SQMm0@ASFI_^AZGbuu9X)nJdWus&t&GyoZlBga@JYN#~7;1Tm z^#<1kk{JJhG2k&!dO3*xsmN;wcwVZvGqWJ`-G$P+I)mbTV&mf#MAS(U&QE%mXzlp8 z2!3S4tMW`#@8W)Byw;$MOW>!lRHfmiCfG?Z!MIE`%2KDR#dhg|r8)eHa zRGb3F*;msEpj!p{fV%#Q_8~{{XekTgKJq9(2c;^q{;gFpvT+G;8)!zH_vq~aS!S7k zn_gz!0TY&4-?3%ZCn(i5lOim$?xZvMoOaD>Nl0}rsPBRR!|&$cz67PRRQZOMEbuY- zjFuA!$9xrfTFRnuUsJ&1UWxvKdMf#a)ra(iS6_Kwz4vh+oKkVhtv=e`fpG>4tB+QI zPCXiO_d_Lp{V0&W03QHo9~gL$iW7eJKPf*a=w(D1Uq6U-#rcp_Xxxs%_pVHfOD-li&|9AqnQdpq{QFlp+3q1fC41T@!yH)rtS(5Mb|RY;1!qBbdVXHCu!aWb6cj>6#NWDuSQE`9tScc6Mf zRBg^$O=s1MFd?fJM@~=IqLf_=t5}dCk|hC~UwpbOP1AjgBI^k0qK;I^ zm2_#RB_F&3pHwmmnGvvSGo!|z?WIo0Vf8Akx+R|aYt)_KP4h-ouC7LTcCY7H|4Xa| zPvw<(b*SrD?r;^=&NkL^+g>(BzlT&Wnh-SoAkNpSA)LFDPwU;*eGUSV1}N6qtvPS3orId zfB4EDzV?S%9Ng;gsw`vHprw@X%a|2tIe}QlOb9(KWl^~AQoz1-PSR1%sJ!Wxw=KDJ z3h$Y{ZfM7pWZd+j9g`Dj(gtc$0<}u>g?I&&f7$H{Y($6m{l=F?4HkEig#BDzHrdj$ zOld7IdkDSK)xSqcx*}x`fKCWWw+fx|{nF)QNUJ305-Io?UQ%?Jq>7rhO)H(HwP|U* z52q{X(1#D{Yw5j4x4)@rOXP492&b7NGBLES9LcLE!R;um6L`!S)b=Z{p!Qq!{$*-!ri)}CJgIwG=^nCTn`0$%?n;qrk*Ob3a5u)N;c1Ads(^DLw3QOK>Af}>s@J|Bo=T8T&zQ%pvPy&(jI^d;7FcU_mez+#K3oVafj+kBE7-p< zK(lx;Do&_iE>1mFt}B^6&zjF9?K+orw3jvjuL`-f_M1w>J({#wqR6`q^eaY;ozgkd zX53U0Mm%BljvUOlaH?c?lr{uGoR)-B@nUZy`tS~0XB)?w)C^k#n$xPc&Xy97>Thsb z5WLZGgvj~!%C)6IS65Z$e+!_cP&*YT?J^d1U(yT%|8C}S;YDg4QbM5@>jH^V>!4cV@mk3F>$Nu zdN%B!sCzOnD>e*P_^BXRu~D>QqO6cM=2;sa0c8`Rv^i@vJv=sp3BzMu8y*KECJc(r zfhUL3P6g~|S-*vlj})>fnqSsW5}%`BQL_$@N)Vmeb@-MdJ4R&11$ZCo6o%ziqW_`j zi#JUBpjRk##asXBuB~B5=4|5++xo+H{;&fFcLJg+Lw^b_G4wi$VE;O>p~()A4Yszku$;o7rQx z_8D3K5o}YlRZsTVs$1G=Zj`U{tL_7$K(ng2>OKW3x%&HH3Bj+rgPRTnXl^=~iW92w z7@&@&Qv>fqM17hXECf!ET*`vDGbj-M15lD9~)ZEj3rtFBe9wuAQ0wP<_4vM#w1##z4VC&(T zt?@sF{~xgR2(#76R!lgOR;q9jmGVzGDus@cU41Q{&kIOL3#l-q`#A-k4{0MK{uqfU zES_Tu`P)llQ9HX>`XT7bE`P=hng1hzcCmCU6({Anl(~R|i`E_|DUoe1Gi`*_UpyZ_ z8G#v?Ke&6Ti)1k-xXZXXJ9Nf>~Ryh-2M@uaHnfP*AP9P$8P3UPUi^5$?0jIO2 z(ACt7r&sxi(AfD@7FN!uQor_mdJc?IF+#Y7u(NbMEsfA~C8IF-ZlKSPt{Y=bRN;K8 zSX7@+e*zC7`17gkg7J9(?L=__6(@1-CJLQTZ{}!flm&6OP(bigX>t|yG@2xwa6S#n z5A1w;5uDQax6j;~JnuFMs+=0jx6+h5E|wAncl0wC{T$Lpymbj8WSM_fAb9Iifaa~s zsW@q44zi&ZP-Y0F%~`AIp>{n?7;2l^Q2Pa9!YI2Dctzsvbl{AeyhLj?E%8<_aiU55 zWkur8fhTv;P6h1e0^k=yzDLNSX#N7=Hu1R^7BzE1AAAc_#OObrDO9=4ful(Uo4(`{GSLTF=Y02?^PPl`X6NpjrVCZQni^4rb0jE?NJU~5_8gYs4 zr)@pj9Ty^ZgO>^q-WJ%-@}r{4fjUN&9s%S8SMJ{<)`i^v4Shbje;aG!7N!D4qRp*E}WYR^5L#tgNE>n9BZ!cper5>HdlaBK@3&N( zv@w6#%n(o>6H1%2R@3A3PcUI-*uuu?@~Muoxk zya=8VLGk<>31oTS=ie8gCs2R!hrjy6-#NJFVOkk-f2Ac(e#kvZ%Lzm_z7Tp^%A#<8 zp@89wut@$KyZpWQzp4N46j?{OVXTf+$OtfXJ4^qdr3`vWeEy_%JomFx|hrS3)HiokNG`hstn(o1xp-z#vHp09~}^;ZPz(Aov2@}hbI zcwNMWm3FP*Y^D9L1}#CoHy~l#S|+)m`CEW8%gw}&(yR1WU~&on`Cay;0=bs!1`e*r-Jvm^D$m*;qzb(~J;vJOW@UFbo(A3wEn+Bw&?RMBR zwEspqKdb&H*5tl$N~+Ds_t1XJp_uUj6(`fEe@NY&{=cNDc!zzN(mRMu2*olT(&OR#?~bt!MN)Kim*5tL}#kDR^5`{Vdu6~c-%0V7lTh!?ht znfGPIyhVX0-_WjEstKviB9RF@|3K7Y&=Z2i{b31lYkk+B28YF4wo3^*3wDYepJ845 zh>g43Kyrg9LPz!?bakXc22J>bJ4=HBY35rRKB;t#r|sU3nnyEIN$2Xx&N6eAh6K`Y zNre^~$%4E&B=XPBp}jM>DXL$5Cqan?!KtIhUN`NOQGT93MPGZ5E(y!skdy6FOT1}Y zZg!N02C*HvE*no@qdk_41a7zQJE=Hf+n5}smQ>Ds*t#&bDDjsO#h`9^%*h{sMgyvh zg}^xxUYoO4)5+ps!WG2smMn81Eu`miz>_(pUvXV8r2dm-dFWAm1+f_cg|yGIWJN*e z3eb=xbJKM5P=t;wOVp7HxsoOG(o&YJ1fNt&&Mr$Ny^_#~-P}?O*)WbW|hR?z<$2;BLJJxF2I}^Nj4l?g73FEHCRV+#oT=ZSJ=v%aFTqLCa zU9^T=B>IAjBxfKl+6))nA{X5pTy(QsBvqj{7X?mMk2>YtwKS->YfbMiYc=hzb-cR{ zGk1-IaaTJ<@YK5U)H1YdJSC+5J++=ZCHjJ=BxfL=+O}>o1#0t7)FbDeQ833lJ>EOk zYT7#+dhZ-*-Wd(!;Fyi%m@%|d0sGk--B`#g2w4=(?~P6rpDtL`L}Orl@lpO1zX|N{ z)28COB3$j9g^CfyU2GKF z{Isl>ISH9I>2E3hq%70B+~nj0l-e42@#5_}bis;eA4;(%Yr@sA(xQ5QW*c}2!Eew8 z$=gbDo3mEa$-F&GIBy(d$y`QoNah`+_3E@!0sBej9fiE6kVVmaGVdflYr&#s^RW-U zeuV3pW_tzP&Z1vi^u;wxAM}>41ibzuJG;P+0PZHP>xk>(tmu4F*z+=ZriJZj86mAu zkmqHjl12cn-19QK!#5S*Fm75pOY73oxY;F z#`a)A$k+pbCmYHl0sG0=?+bYoA&a8{eLNHHjjm?Xh$w+sZ5f>nxvSr5;Nuz5(Vq5pD-fP3lEPg)NusWNj!K0E*+t3f=69HN_olM0^TpE>&#*C&XlS*z*HIt?ad*2$JxJ7Y~qs?&idyU98M`z#e$9Cn>{78)isYgom1=L5+h$L{k?Ebz22b6wUTu>_WLE@{ z8)u^j5wTX&5%~#Bh{!aH$UZO*5jjsj+n;tSU_TK#U&sf6R}+y)T!_d8A~;wC#fV5` z!x6auVkMWos$i^zTmA|e-|2NAJW(-FB8CPd^^i^w4`4iULbK0Azd zjn9NsXCf}7?d8y;;|zbeLfnpoPzjvvb6q9q;Q<=z(ShIhGq+h zG*OxeiYO>WKtPHp3Mx_+6%Y${0RcrsP(eh5-*aZ}OztL|h3_w)Ki}{oJehOm%$YN1 z&YYRKdshsIztd1^z2cl}oKbZtsZfSr_+ghJUrwMZr=i0!YpR}x3X{MFl)j*kbl|m& z)FRm;g4?=2Xf(UrL}Ei)0s^YMf^v2mx&k1IxY_1uCH+P!OB>1)vsF|>?@ktrB6~o{ zt0*En^A|`Ml2;R-7R7%1|LrWVK?s~>26L82&{~^^@Wb$!bs$EL$M2h|@G5h7JuyEH zzAAHARIW6KH&BI1RH5=5rY8TN=kV(gx0%EVmod)lNTvVZb9g?V!$)0M^NzUqR%j?a zz(A&g+tTM)Ew*MKlA}B0Pz6U0?43ZoJtKk?bIo#E7cqB(&u;NiB$=-Goy)BX)`N2vV zSft6i3zjm;QWC7>n}kS{Jt#TGKnPf*5NY@ElI0Q7brOv(8=2chGgBnT<7{NAa?Fq% z)2r$4g<8Ug&ec-fNm*lJipmPT$`sOvd?`#-{{$i3TVfj5210|P+M;%T?P_Y{Rg&)X zl5A6LRn#6FDr)0crC(NlS#E`?tg4Cwo9LXJ+`=4F-8)6yGFcb9EM9jCjTPzKSXGPt z)a@bau18%3^M6VKzyrr>R<_x=QXCZ%J0RH#aA>q$sB>8^(rALvii8x^Rc0 z(UPPYq%c)$TvstuOqH6{RSI*5WqET+Mb%JIv({CHdxi~{qId;6%%e3$D?T*YOg+7x zrJjz^5h?p0=CA+uiazrGn;fQ91&#VIDb#ofN^$m3v&rSWI4zle1(UbfoNVxU@k{lU&&$exf+??Xn92Cu?awly*&xVN ziu?QT)l0o7rT$$#lhRdm?!ViVf+F*Z#@*@P>gxu}x_Z~@$6D=LtiEw(Qt1`wXY9a`q->4~UE!F-KNc|J2m7=jE^$f6rM8ZRsmj-?au1Z0d!mg&g zE=2q%MO-q8_@_cd2a}A6%-#R4AhxeWlnvC84b&1y4F(cA>cEDMRU1$%h}AaGNQl)M z2&C2r5)Fh_$f!=o8$?B|xj^dmCJ{|ZM9lCkmPC{&6KUqiym6c?h=QkfeC(&YaOTCDbv`(1p zU`}+-7Q|Q+16n&O1$<-K*nN)vlaWVCs=mj8C*l#9h^iV2#C_IAg2hRMlRb zWpRXG>7BIk`9fw4Rr4?r-hyIf;&q5w znlfIQqLeQJ6+ZUCcNH$b3s}K6zOdBSAzuwwRq8$fJ$@ zj9huD*^Hq7JyA<@y=5#88Qa{o%tG2F(Ac7={sSaZ-t$z$i(x4$!&)GA+GVQx7ZJ)z zb4%PgS>7y@Z}Ob@4U$PK8jYO!v!!3whZHKQXs-F&DN9EOYxCznxcGyak03B{f z^lAqm9qtSU(cun^*^lqGBSQ5ZZcF59JKUP6g=Gb9Pic|67)L?5-qMQQJBIpZV(?=T z7nN6Ikw~KXwMaNo0$9XB^Z*vodVnDmb57Up0;)?#YucSaIBZpQ^>!d(udcvSann@q zLgm#qp=x&!ogKH!Oi@cg8E-Wih_{*q#9Gz*0`UYqK_E2_sFk9#INA$X;kNY&Iz6d8 zfF`|(Zq`KA;;E=8FAouck`f;Ca3I@<%8l{!NpiJ;pm62-3#4WO3FXqLrXS@}sXTyk z{fO?bMRgXF&U5{zh|7=nOsDcnp_anBs!n5++|q2fhpjK>05V0=yp>mqNt`sw6uK$E zvSi@}&_w3CfcX3<^en6I8~eFJ^H`0n!eO2qpG9yktKnbKIh^KKn_Bn?vG7p~FeZw( zWUNW=cZJ^dOq_Lyb9io+`Mic0RW&4_jK(Gz4Xc$=KcI|eCK*iva{kUZ`Ou#tPCpK` z!|0y&@sDCseFVfO)m|VzsXhSW3-~S|F?`#Bl~SJ*Z=R~E+HN9wOtS*+FC zDfE~uy-%oe8)$rfcLCz6bOz#4r7e&cv0H%sN>R02iDXVihT&y`s@9H*&9j(}mn_3k z%DSiL0g>nHdM*&VG|+Q^*tLNrOY*rT-w??+Snz3sfOrq?1L8fn7l`#h?+?U-Kqe4t zP0Ik{R}|?$ytP!przZ3&dK}?*?M6=?Or5==uQNgp)R1k7bCWbuS>^ zZZr^YwM|g4n({KRGOWy#V?GEeqmfn@3zGR5gh>1*N8b%Px7sd=b^>wx?EvET zdmo7V#(NUIBapULAaxCp@a|Q>N=dGFRF>%mw~TIr))U1%FH~(K73Hx57leVnUGW?cciF#yxXb?EvG+^KNM{e!%q!QAe0! zA2T=NjQ;OW!j~>e^tVKR31m4d(HVjC-z7RNkah|v7e{dx7-tB>Gk$?JFSO+94p`+Lu7QwJ!vp{<%b-O0-WP%SRIJ6-fV3q7MYp zb_4O&b^-C$b^`I%b_hOwyF~9vv{fL>TM}&+NPknJHw4mN2jZ=51mdl20OGB!7kv6U ziPlK8N+8QC5-k@`%65S$@#U+tbAU#r|2!XUP zAl{k-h__}3;;q>PpWaHM8zpKkkmWjwnhK;hk*KjiS|cFdT0`B|m73y>EW{JKjaG9A#+WmM(E(B&)_ zxlFnW7L$Pc*>?02QM0{cOoT7kHcO=9$gJbh2+z-AB*LkO&cW2&*`~`!H^J2n>TF`5X;Kdfk0xT(T`fdf#Fcxeo4Q=vudh#FHv$lqdYmB zWNauPvjh}A-i1IsZ!ZAifhr$}1uAVM5Z@7u0OC7>Tp(6g%?1*?u=|1WprL86gQw_* zP@zA&%4~S55T;EA;)+ZH;)*;D#1sjdAowihg3t1(;Ilj;`1FSbpY{+CSN%aCuKGA2 zzL^;-_|#EA+>~Up(fG}0ZzhK&7zo=X?JZGL-zbo_9*FC{4v6di8W1<)tAfw6iXjZ8 zHkTfh+Q^`DdIS&8NY zar?{z;%+qqNKC`&z||b=%qEg2hdt!OeF}~~lM06$yIooOG?iwX4nS3H4i%X;xTrgq zib}`Py!6>c%@Q&@m^QUE4(x9bCJX(Eqv`WN8mZv7b$ACZGVd_+D4;v;fE^6e8y z|3o0|V<2vskAS%6>;>YU^P%8Vw*v`ly$6g_%u(hEfLpA0s2GvSQ;2Ie-^sa?NTs=@ zrFfdfji6@UwSPb~oS(=u09D&TMa5YqIGc2v1d^dyoY}?1Wfgk7I0DG=w<*=MJzNI1 zt872ZKBCX}wBJz#V}@l>hdKIXa5H1-{{b;$>X(4HJN^sAjd>A>o9iDSZmtVJ++2SH zaVdWRaVdWSaVdWQaVcjd-)VugQ$TzWe+A-$coK-$I3f7dAA!U`dBpxvF-A2=IOR(2J@arJ~{z4?6}mnE5&7PfSWtVV+OBc!nkk?Fz5QOpyL>x&F8? zc2giWD0&khHYj>yAU-HoLDd=ws#YI}&z(?#R11(WtO~4T6?=Rx5U-GmIZ)o`$qR7+ zT#KrBi$+$N*Fi*JlH>#FwW$c#0Hz}oRSRJP3X19EtCA2+3npS|E+;aF*60DFqtcae zx~O*s6Yo_gf%Fan1>Gu9TOj6YL2ZDTs|B?NVyCHfFG1jAixLsX9+^$Z> zNB3TKAhAH-1WcB5vpW*AL*7UfT*?}Wg|UcNWPn~$No_$~e$MUr^8~6EMs)7G?n;jI z7|To?#Nf{zBN(BqghdsphmU(k5{s|LhEq|chR9=C{0OQSjKA!#H&_o!1S>adUm$MQ zyMee_6M)#@1oe@8@sh8%@K;5*liImd4Q zwP>OTvgIAbU~a&uPJ^Lp-Obd>gK?4#MlWJ98&sMNrbB-59Oyh?&X?#Jfh_rzI1%o8n7Nxta>Qj8ZnrMSk=<0sHoJ9KuHU}GKsbiTg(cpu5fJOqO|Q27`V&-1H|HmegTN*2!8{yc%h$@e1A&xheW?gbV8yd5*?Q4 zJBhxO=nH`?2L;j(0C8RR194sU0rBkP6Cj@Td<;}q(ec>BM?icb_)tPT_E)hAmObWfoZ%v*lhZ2cln9HdLj=m8(KAA;m=0BW>ohx-0u)6JI9U3MBJrt zZZCJ=rrZgg`1q-+Z6zMx#ra)RHGDd)3|Cqesd{5p>n+B@PZ^Ba!c(3%iD2FqtF$fN zOr^LT<99EUc%sV^*)5DB{E_lDZ5tIqYw>u3A-_3m_-!Kk@lqqK^7%q@sM0^oAomGl zgtZ|+Y=pJJKzxJ;0kKiC+zZqM6JNIs1ZoT$>6QT!^_QrhKzcfmm7SEN0X1SM1>_ z6i811;y%^~i2GPP5cl`qk}pp3#Y(;y!57p+@LBEZ zEbW1q29|a}T!XfPPrq3pEkdGji5vn2*@2k6AR7>q7t{)f$+O%f_$)02(r*CbDOC#~ zzQ{BO;xp-b!KXEqsEI_41yVzR#QX^YX7k5)*M+=H5d2RpmB_`I6>cLFGe7Ebh54D> zfK{4Ys`?+%{Ri24OfIkL$5U0UAu;&w_v%xTzYtr82 zD&qW12xBuKXa*4XlBa;Umplo?y=1!J)1Lt1zA+7m`^Hot?i*7Wl@2&2Gb(1NHc3!} z9tYxWOa$U>JO;$um;l6d(Z>s9DF@Kg(Dk zrk`ar5N~6YK$;hbuN$R6tcF$s#A>L+fW)eu156GT;NW+tnZ@Lh{8aOPq8ctlNspq) zq~`%58Jjt|1uLM!DxOtDr6ZL|rn87*Dq<&n{G6vu)e5PoBzKsx$C2?|(}pwVqN0&y zcus_6J?-$#!8~7zgZGs;L=t2KYjPVNrrBv5xe+BgkidpTTMfj9MSB&94U4uCh#6U1 zE|9*AA-WS^3d9djmjH2dFA{v}^FShKJPRyLA|H32M}^g|#B&WYhDhw;#M1yqmdRJ_ zIR>9;h}g_jXA!|PM0mG?$V(Rz$u}mv$ckiB;>_1{nD7E|_?gJY^kmZ%6LHhe!e$$R zxNSE8aoes3;*;bx!KbegeEMp^r@t!rv{gXdsaFDVE3W|J(_k48p9V{SSZn&rK&&Vq$+DRO1;!+^NZHBF~tbss5^(CqY#4S`8h*`)|M^J-9 z1PTh4C`cfSE|J0zwRQ!egzIuqAj<_HW(~{VK+GDJ^FVyu{*-)YCEppz_q*gfCHYQD zzF#EY&w@`s0Tjwo=i@+Zi=`g}Vq>oT#Hi3zJIbiE#X2IXhk=;(>P8^3q^<*2+&P}o zY{Yc)RqOARC#h?R>@ON?+Eya*%SX0`DfktK%H@Nxf`zEsJ|b6hnExTs0_~>XCkEe0 ze~8Je*aTT|0YF9cW`~u?hFBJxzk=}d?qU!)Q?#<`V~=qa}Q1Xf(oev z#zT(o(aJGdjROT9~EcAt;bfIgH}apJFOyNHMr zZEV8*U&N@|CSnn}pBOnDZnF)(_6|{f&zHWYBCfsp1Gn(dgUsj$Se2^z89s_j6hA40 zs_kJEpB;}ekd(Y=+D=Zd?m9`;-X;cLf64KC_pNH*5G&W;Jig5QyA3hI4(Jr$*K8-k z2w`}}yN!y9={bsud7x=;FzFSKSkT}%r0MIX>1!lMJo%&ql>X6QI?1l(^SdYusaLyR z2%}R;E#n`@weWig`&V1m=Ovtv*W+CLOi%tqYWAfF#ro$0Sq=)Me+tCX4gCNR3-bDY zAifNK0>r{|(8oY5JO_OQ#KN;>FAxif`Uev20pjv@195q~fOv@ADfqM<61^{w`Zf>` ztaNd{1;0@cGbN*2si^v6)OQSWHOHuIRQOdd+11!d;(_tQtX=-V`1d4Zcu^^imJ4${ zS?1RQ@Vk?5iJ_VgMSV>)xM!uToO*MFNPZ>-b|dFOVrJCNN%V(6>S-XcqxcorpK{pq zaOHj>2IJ0)?-%e!trJvOjmF1_mW>-h&oCpdm`^B<64ify&Ju}DtSJ=FF}w;sqx3tK z`st;rogs?R5PimlU+)>SpU&N22<;cK#412yiM>oU1C7WfVyN8di&R)mr!NrAf45XL z?5_jRE>vn)%cPx!Do{kKIMOgSYIOZWBVU_1{GGdm5W$bJ=ww4}#Mi%9hr{Ho+=&_!Ent_L6Gt_gYmp#wcMcOswE>CoY)O@krp;HE zH&A)NW*x-gyGq%qs5(u$g2>}jXMwbiKrEtZ9e`Lw)7k^Eh^Dm@d}tTTR2;Ay(Zu1~jb2m~pc`r`7=%(u#9X!EzEm8r;d`oS1@oi7Nqz>gAzWAeIC9!m zn;1}i6N5}m47{qK!PN`OHVL|)*nDh(Q&v3J=3hPnI}ao1vBxAO&%czMt4k>|Ny+yw zWyIB`lrkwiIu#r2rZ_^$6#H1_XcM28_yXOek0Aze5$^A*8?$3Fcz85>n2F}mY~0mE zPap<=G59ee1Zq>&9x=0+GDdzsKZ&TmbK`L;@;f)sfoDME9heRzBFt2(638~Qh{0b6 zW)mTB2c9&uRO!H6qWX5=X)3C&14}{V9asP)IxwHA1nR&dV({02#Y70)f#=OERXVVQ zsJCL({}d2k{*M8PrJ?#B;}y|K8- zqetpm!v5T2ZUkZ;qcsPzvS-w<2jYIx7)bQAA+X<`);9=#dRmu}%sr{p(2+l5G_5zR+Y`jb_?nK@Z$w+zplux=uIF(Xi#e;*5 z*@H+9A{bHJu${PF>Ods8UWMJcD>(3}c_t2TdX^6bv4=3)vKppi6;*3*2r-}7u-oW% zMDQ~*F6z@{pif9u!o|I7uA~ z#82SI2)>}vf-h*4LgMfITyHE1nEBOXWz5#+y zO$QQAb`LNeN@vM8aUpr7(?!|?_a`E~$)}{s=_MYHBjRum90#8$$Lql9Xn@{_6@ru6 za;3ZkhXbmXNlf`3cU}p-VyZA3hs;%Y`VkL~ts$wns1S$e6^BPw<^kjd{Ai4aAATf< z=lv0cUPfgegcbp@F$sPVh}kRn1t4ax;DtcUUct`;u^Pb(B;RwA?^($=ABfAFCs5EF zAQs+&W&`ojo(aT8%rXOrhlMAB_?S!wVp6oJKzs?E0>ne(L?E$*P5@TC>>Ucm9KD`R z-f}9>&L7D>8z3KIr{Q^=D0!azTpA+&B%xvay;M`1MD!9yG^{?JMkbdXb5CZ(ifQaH zOiZVkwUBkJ0$uC`Um;#o{D6z__yN8(l8?Qb;dT7VY_Dwu;&XEY5VO6yUNYm71=!C% z60-T;iEXR5fQgHH8;Fa03y6!`3?x>TO~6+bw-ZcU+zucvZaWYc_dby5^1Hx(Hhf#D zxa#KDSLyv=;;rlh;;noF#9R3oNVM`Hu%CTD{6JOr5UuK#a~Bm~O@pt%#5Fhs#5MR5 zh->f#kkH^Du%A{AQ1R7TIRYl$%3&bh%8x+2l^=jaE8hZF+3G8b4R5j|%GDbB1x&o5 zpMiKoCxCcE$ALscM}e;@?hKf?xZi=exYIyf+;2ca+)3c7X)Q*ZCt1uz{{|12b{>dJ zI|sz2{RJeXodv#{w9DY((*6VD(k=mUY5xKVX%~R6CN1b!Ak82DTVo)un-xgt)&RJ2(uhkU?7JAjoL^An^cfy~ z@F@|B2T3$gqJ9Ed(j`h0NWVv-RDrZ)ApU{wBp|MKA`nws?<@H9yCsU3C{`d#v_w4x z(tAjBmq6MbK)kivfp}}(fp}}(1fSkjqRtX^5Xf??L~RAq+ep+}Anj%#-dYq8Z_Ne7 zTXPCNJyN1DiEIK{T1s@IK>7_5wGc?V9*DQr42ZXO9T0D=so>L_NYqH8`T|)(C8{Hk zUR$CNfwW*C-dYe4Z_NV4Thj%fu1RzS-ev3{1+x4j(FK9@za=^^koFf4Z|zSY-r65P zytT7}Pd_8kZxWpp$Z|rW;{xf&B>G7p?FbNW?Jy8;?MEQq+7E(H|6ZbRBswIJ<#UNX z6G%TO(We4w`+<0C`+#_Bp8)aJJ{ElXM-qJ?(Jp~3+a-EmAbp!e?+K*61H@a~3dCF6 z0>oQ;Tkz>`N%V$98wIkgljt>p^tBSL5lDL#h_|*1h_|*9h_|*v@aeBev{a&(1hTv+ z(F+3U3nhA9AniFI-rBQ3ytVm2ytR3PPk%kZ77f+7uw(+GHT! z+9V*}+T(&xpD59Ii5?Ni@}NZH1k%S!G)5q86cBH%42ZYp1>&uh3O>C=q9Td%1+sV~ z8ZMANOrku2v>YJbS~d`GZ72|LElcp}_e(TbqI(6h^p~igKzgP`83Ji(K)khkfOu=E zK)kgS!KWun)K{WD0$JiDiWNwYk*JqIT2CO}S`Q%J+Fd}rwL1l$euqTeBp zFnM%f^3=fO1%b({1C!qkOg<2pd^9lmTwro7EL{O?-aIh*mcZmY1Cvv#Cu5W729;-X zv`Gwp1i$hv_`^Vall_oDL1Tf~MmcB<5Z`2%0r9oCm?1hUDFot2B?UligG=%GNuqwfdyvwOhvL3~T9YQu=b_vw~ADxzJu=~)89=lN4w zxx^6Yqomoy;O~+phX~al#^P}pysz>}F!4)}X$(=9rvh=)OabDinGD2CqfHWg>UbcL zWj_iWxbu$_hi~U6QcPKFgaxJp8=@#2mx& zy5!p^`8G(t^^)&3$+uSWt&x1ICEqH^w^H)0kbJKQK7E-$mZd;k(|j ztYXE18*TvRQ<1oqcjG;ZIF~E+`Odg!h@-d&Uurj2l-seF*XB@pps}7y45K}T^pc~B z2XA~P%RFK+y*!*wquEjN)2z{IK0L}F3gf552F5w@pQys^_XiNS-&r7Lzo0WfEC>bt z4#a{`&}oT&6UcHBh=n7|FF-6D>BoV%*BzDUut55c68#{M_N_ocUjy-WzXD?ITD}0{ zZF~;I+t?4pL*71#J`qUUE76An=^qHB?E&IF-wnijz6*$Z&bvS&B5fVWXh^2gGf935eVDUm$MN3qZoA=Yjp$^e-w7Xw!d) zBaq215`*7L?JDlD5NQfffkzdOM8hS@6-dt!NXrJ|LpKzN4_y`zAG*On zV(9Jz_H(De5`uw5^SM)C#r>%`U}SO=N1)*zLJaULGgr3Zy+P zkUkrTnLwWf#7v;i1Y#!8W=Os#CEs+(_k`q|Cit|e5={Z(#+?krjXMd5OMXo7=@SIf z#sl#hpc6pMWR~MVECsS017hiu zpih3`FXqoV zaEbZzC)M!xyxv(x5YA?L4vVKv5OcvK<~(s5JvA;aC0DsW>Uuq~|0J}mQ^jXY`Ps^#A3SmlKKE4qhpDvPbhft{0_rcxE zRNIej;qmMYM{kHa+`Ae8ai!}6ai!}4aiwbmi3d7r0S8t(lsGCYU6%^0C|!q2tI-gn z(iCJdxQ&UmYL3*1iUZp4x@y{h{FWy9HxOGjFQ#lxw5n}4qvC*V-$WdK`iHi|KoWhk z`&Oj_)SULf*c%gR$;v?T4h>v_bAU^W90`ZY|0*Sa10UU5K zXv-LUvX<6V95`nBsAP`|d`0Gvr5vuJ@ zDytT-J1N9cU3Uh7$h*@YNOUKYs)!RzpG+>DC;=zZK;j70(*eZbuc!AhLcqSbvNb zQjs6UMd(n=!65AT2r>K17#?B-F_Kj>20Y|R41(_8z~jv4EG1Tef7-%`vYGQeRqh>c+$LM#}8&gXr5UO9$cmz`etBM-M74DH@TR?JXTN z+T$6N?-`1-*+FBvbQ)BWo1dFinoC7SahvvS+YK6(-M(GBw#7L^l|RnbYTD^B+mp5_ zwproJY%6T<+rG6ewy(CoY@ZUg(*BlxjeVW{9s4%>cKdGoPW$$-kL;h?Ke2yf|J=UL zal*dPG25{?e4b-z_*%!@@Q)myIX-cG?fAlR#PPl3xZ|m?r^9xH?G2k8zB>G;h@T_= zj<_5#K5|mztjKwhha-=A7W1;+*JwA!@O6mvfnOk8_oCpYt{6 z$IdsLTb!RdKX?A(Jmoy+yyTqin&+DDTHspZTJGBHdfTW;Tfusvp* zXq$xIPqjS(D?DYJVVh-p+V-sNdE1M&#kM6jvdK!@YTIkJ4Yp0TH*8yMTVbQ^ww<=! zwhwI|**>uyuzd}ieP{dL_Ji$5+hN-g+fmyI+ezDRwllUrZRc(O*e=;F+s4}`+9%nk z+NaxR*k{}4+UMJ!vp;WNXkTPsY<~&XUSeNnUtwPf%ag@7*k6b3x7fGB_V2>_@5BB( zVE^6rkL(}A{`)Wr2Qda;*biYWezYI9AF&^`AG05~pRoUG|IL2d{=5CG{V)4D`+566 z_Dl9F_HxGr$K#Gkjwz0*jwc*XIc7L!I%Z+?<~Zg$<~im&o^vd4EOfl!SnPPovBa^| zvCOgDvC6T=vDUH9vEH%4vB~j<;~mF)j%|+j9ororIX=cn?{^$m82uBDUmbrq{&f81IPbXPC=Z(yHYIFo*t9V6is!>#3|kboIP9gcWnnAA zR)(z#do^rz*qX4lVXuX)58Dv7Iqa>ltzqwkZHNEt4BH*H2VV4L*rBkm!j6R<4?7X| zbJ#CoC&PXXI~De4*txLtVVB`!v%=?u&kdg!{%rVy@P*+ohA$3(IecmO^6(YmtKffY z!`Fpx2!B2NjquIkZ-;LUe>Z$v`1bIf;k&~>2;Uq2arnOQ1K|h5KM(&h{HyS9!ViZZ z4gV?p_wawiuY{LJOpTZpu^{64h=ma^M7$L7O2mqYS0h$Otc%zgu_xki#L_m4xp~_8yYsB`59eQ)rRSX&od001UUpt_ zmb=EgCb%ZL9(PT0O?FLjO?6FkJ>h!N^^|L-YnE%aYYv;w&tgU|biLqu(Y466*!7a@ zWj4QGajkT%a=q$W<67%_&9&aO!S%Xplj{xFn{4K9b-m+y*Y%$3eb;tGft`p0dt4v7 z_PRcDed5~Z+V48xI_Ub$^||Xy*CE$eu5Vo5y1sLL@A|>@qwBEii0i29nCrOfXV))? z9>2PNbDc&E`OEdU>mnk_CD#?#gs8`(rXZqBi+VC@X4IUhXAoJQi+Volg{T*!79qyG z9JMrRS=92V6;UgrRzB|aAD%ail_89Qr#-Ry{9!!9@>vrxm4f-C7FK*8ip`4UDGE2B#u2ck9YMtkaMi z%P>0ebpy}jN_;()hCR)OC%#|P73Dn|CDR|tXBeMIBx+SZ6BD51GX{XD^}UMnYIS_Z zAQ0a{o1(n+A)$&tQl2poM2UcIPySlLLx}ib&^F|qcsiz}y94P&YDv*BeAdX;8zrSS z*O;zdq6Q^-vP+6ei}Jj-ex6diQrMR6Ez9u~VQ`Q_^otoZ)KfSJjP9(09HbiA9opvP z=R0ip1ewx?UZkJn$yeIsDKXs#WwKl)$;egE6wg)qSL7;2%2HH1$UB@qRaff9pjP3!27XCb+Vn2ErnV?AO7ou= zRc^d!=m?0-xhAm%rK7S3wQbANu4=?rq+M;;H-47n(o4L$BY7(*_9~5fw`@P6gZf2J zI7V``B4GYzS@UZLq)hoYp<@)j}PBGX{}?y5MDhaWGeDkg|r>6 zG*n-FzR~^rLt1QWbz|Kr-9B1##Ck@*COLsdtDzdbcR+=-Ca#uFwgGSxfwq4dBPhoa`Sx)YtlHzQpYRVK6uEwG9+Nz#pi_LobM1!z^y1|K!w$Z)!}|HvB?orSYzqBM z_J1cn8?h<))MumS4IbR!ro+dqmx5{%2TF@`v-$Tc^YKjg9N##qhkI|U4$bdv>nWdR z{jX-?v+$b0vf^TkfVV!{-s!%Qcf-p?XCdmbXuhJyKhFc*mQa z>WsSWfiJ8|@c)r{-1ua;F}@q$41VE6=b#(yr~go9Ufgq^^~(QUNAO+O**pw=9d-BM zuxIu*nKj-y>yzWrm#tdOx{@=>&A+mUjX4{UT@QX*zOT-qWsfia^tSF@{~2giYt%$# z@g2V{bgkU7ck+n4^DPUtM%%1cP3x8Yhu2&Pii%W+WXJwD<#ALVl zGCB0-@Gma6NZEbN+vDrW)?qc1T~ti6ndk#&9(iJG-p#juv1)V6ZcF<8Vtuyp|AE>a znCzb6>w83fwRqPL{r?%6rJanjW;XplklmHZ9-H8L?#V^%ADq+op<>tDuasFkHLr>6 zk=_D|^E?u34Q75_Z(n%N?{2*0ch$)wyiq#xuWdYMvZ5*?P|nHIz-Wl8JsRV&nB$^FO%5 z8I)gd$-fsrv@W=#CZY}3ZqH;7j44m+_VmyelP`wOn!A3|UDgpbk`0p#%kePD|Bh>T z&pOXNo&}LZ=Oo$gq2S}JMd_|XLdCD;63Xd#Wj%(zbnl3j^@k2+hP4{ zpUCLkI;sBrxv`@@K5o6UX0i(lxt$;A*JA0L-EG$w9#h({dHd@z(%jlu-CrZ7P`C9BMtAqa#x$%$6D_!sfoT2 zTfn!1XG+h$wXOL4<@Xl+e!f-9sQ0YzmDWgb{xCkTPaQZiE^Aoml>yyK#iR{9m9osRvQ@*HeedF|knXNxQ_Ws^kV|rPisF7S8*5qV! z*H}AX&cdUY$6bnD^YkwRPd;^v^^OTDU0l}WAPBPg2Ccz&lRYmK{5)OR6#Db=2l@@Q zj-Oa#;f1AqAso}OmF=+$59Qr{@Iu+Sj~}|j8jVj6)KGDH3lpD+bAHw>jc&826Rjy2*(rxzFO4{@ZOTo;$qq;~$z-&mL66uTz6mk!U(&&O3fbCxlG z^|)?V{Z%t+Elc<`VQkV&>)+FACLJ-g7+JQ+Cyioc~8_# zxTlalBgbSvYt_Ga=E+^FFP+L)pPc(+BWtf3%7)^lMaGt3{gS5J&&D+@-?C`){OK zEBS+;ySML^qHRkjw!YK)Kn-P&uGr?anR)+8b$wb-XaBCX&NQ$sxBj-KW>$y4c#5*U ze8KPCXlYR0$eq7N^;l9o`{)U~)%$vlrI!|Dm++-|_?s=h%6KWP=O#yLTH>!SWLb-A zY8M26>?}k2zggopl#KZ}yV2f+_;?sR?bM9YF+nZ&17fOc_1^%sgc`;49bdF zJ>Svnrh>+$t$tm!=Hj+jUrWDn;hB0{TE5@h+NOr~ zE-T3|FgD$H1TB2~{Oe7X3mwbrdmv>GL#uywJpNv}^L;?k|Vmd)t!?Y}cN zZ;rF3Ew7nyI7(KTw}_2p^Vc4I{GE4Wl9FNvoXUCfje*ve*4Iopp06m#$>*mWS#KZd zJNZa-$JbUKzY@FS$CcJS8*3&UC+S)Fo?$$syzyk0Zu zv`CENClb@IAGUv9TC3~3Sc4YabN}vv)_dNpne2k>G0fgWvsUk^cX*?o^-sy}$4kt(f;|O%t9)Ja#}?;Kt-WfdCv9Cqt@^F4xo_1>W4y%Gon3&7alZC^<9dG6q_vaN zUbz3IEjJA9TyD*~7WsjfHtY@yxf>o{|ITM^?S=OZdG@`i{j~@5unw=ebgXRRPN(6n zuFLOEIQ2lkTi#jrVwbs2YXKL3jSr7N623{5jbF+7k~I?+^gpki+4AY(=O-3hr_@|g zdcO!0-Y=!aiaq0I9=f&m(A#5vxi`}~?(J(B!@xEk&7^w@^YO$-X4aH9tQ*E29Xj^= ztPPK!eAha;=JHMAL++XWNOt2Mb7Q~z?baVZIex^tt>)r!7&NFN8K0RlFuc#-j)rj) z?utlvriNPIbn8nsJH>9uo>!}_e{B6y9hZ*~tW#Oc_6px26 zVLv>3?AQyv-h1J$zU3d?RdVZ2>%9L*VSb(gqi1wJj?eqm)8qRxSK)T$S#5qp>u3M( za`9@MeEDD*2_3d|;;r!yoVmA2#IucZPBhzU9d@m=!N-dHbfn>!n=k)j|7OL3wxi=) zkJ^dHxc1Pafq2F%d$^mNLz$u}77ZVWP|9z@d!XxgZ=qxqClq?T9)$97xiR>r!lAfl zj4K@FDJd#cCe#X2Z20W&2zsJUDerV6eyqe}m3{WKQn}uF51eh@SE-59i_?_W~b6mG;9MYTD*V^>b{}wECMXRmHkWw#KIh zdF?K|b}XLNEpOKX&#(?}i0^N8u-a<{?ba7=?gwQ*=`>Ruk(KI zbwk1^NPyK;?LdUl?^pawsHBA<bKo!MEa_7|$% zOan%vrINF0^|$%ftvq6jc=e}-qIxvKlozd9j1kj**oi?W*HY{6_Z2g=q$n#VJFApl zbHRt+5L7!Cf%4BaBGipX-SXqg@P@j+ zE{qGHMMe!(HU+1~^iR)716@U^2vxp&UQ^uOtYN9qY3Xs%F&POd$)Gicuu$cBv{_*c zFL_*3M)+|duauCS5to)6m(e>eIwLbJE-@iJ13b+bPlwZZ`$g8UnCQgBn3QA+AEzr@5 zJxppQb;(Wf?;*$uQBKI3nQ4jc-f1aG?$qdvKBlU56w9p?R@sW%rIRv+K30tS9Z{dU z{_ZpAp*txdHqo6BgPcCW_=@0m?b@{m+YRW7r7jbY}39Imz2n@y5|U#xQc`-|9Tx-R(!^oiX$ar2SJl~#!HbDY#D825^x0g6BQE$dSH@G>tx0aBR3=Y*4WYWhV+ zL#xS{y9OzWY1gO)d4d?o)UIof$rzX#7u_#9A(7mk%VH{B2bE4>s1p-yot#+{mynwgpuog5t>#{;k& zwIDS2W^iI^3=6<$ZX$$)Dk-=&CAS!bbyq3hPAZ%*d6EYffx3K(PBNO^X4pD9CMGUD z-5nd33~QL;4UNY?Ce;QcCHBe4NHw|8_2BqfMkF$%DF%gtILX)Kz2f2%5DpSkqGMyD zGonp~ZUpAvO>MyeGg4ww65ZsKu_^tNO|8}k?|X*sh*W*uy)zTxN3=k&5uq6|3+|Xq z@iB%Pa;Iam(=uC59?6(!AsceFNDWg`d`7Tr;WqoQ5scjZI)Y;m%o(C|!P*;xfr~~c zhBCD9vUVs29X5502Odm^m_EM2ikkUDr?>pM@li7bPhVhe(4F~WkbG!9Yb z`O1$;N$Hyq2Ln(hLerepawwKV!oz9K<9o4b%5xW=&RpE`yI?>tEy*5EyFMOGXLI^> zEQ({7Ou2+<5ew(!&qZ}}O!1vVslMiqjYAl~luhatmu51(iXLtZ<~b9rP8pNsJ0Y9` zeHGP0lsQlPM61|@H25%uFOv;!g4_nat|`JRnxViNqCD*@CoQ_a2zVwzt-!d-moYsq z4G|LgSoP7d3!0yXa~W>|T8lz!p~`YLjx3ja3ado|5+t!)DCM+Lu(3n;$1>B8u4?-m zne9WB(_kV)`IJo`NK@84XM<7i#o*ZfNZ80D!$Ot%Y{^bdNlAp@IM&lY z;MpvTPtTM&e0!$Tdls&NEkt=rgdz9^59BfcQFQ&u6d1_R?)2n@-o1U}f)2h@au!vY zJPn|0$3txGjZaMJ6`h!pn&FP?EcVn;| zc?6Z|zWT-_MyIDIBqM!DOsuFcqf0Z?KU?8}LNT!q7=;BkMEMI0MrM$a7M+~l8}o%S z33so|#J)Hx0Fx1?E%`h#F@hA&bf+>;w{({|OVyO+8PR_c)J-<14GpIGc8Vo=%zb1> znu2SFFBkSD8HlB{OG!yjpmi}iBLnM^DIT;yt;Z_W0!JLBIkXD-8)RCRgDmi>RQhhj zT>5rH=2LvehlD7P`U=d1`QvFFjEjv)NgZfvy$&SJ_hpVjK8k6E#3(T#W+3)PF>wj~ zC|i*o4a11N=(~G{-_qteL^)%cXOzOYGZEdWAGBVl(>xbj9#fjpK(V~cHaI>j#|$Gp z-C8R%F*+?C8!#9%9?_nEOJIm{Ou8jJ-Poa3*`Lu??k|&48PUCZVawMmEu}wM#iT`J zbgO)e427Q3A~${HCD-e&*qx&7x7c(!X%Z>c+g{igndFhz)Wsa9x!orvJ;R-l+OHFz z--fS-Doy+*>}Z9rDDx^iC3AX{XV!tvoqc3fNti;FmxELLr6ka&5!GW^;Z)s4mXgo!*eJ|_lp}~OnH+<$lIRs^)^aSF$@%vdDz5a zE*-5odZ$tEuso)-vl~RiF}?!Q;`n;)I~OTxJ?P7b+=;SVKN)c_n1A!v5t@Udj;R}U z!N1+eic=DC(jfG6qtofMmy-!HWr9Umx65#2*p=2z8*C=s79qi$#@7e)+C^9tu&KN^ zB{?oFE*@icJLZ+;uUhy%#s#Rg9iK z5c}a&tX6zmAP2W0thn5ln`J;)esH9dkPMZRqBDGAWd}4ob&aa@i%yG6&P;-Fday=s z=L=p^YX8b>9!_WI2v>2l%Vn9AE=4t#(-=d8loVrwoxm@q{?l5On8bDuasD<(A<*Wv zU~|46szlau`wdo>;(kiZ@T`)|Vm#|xk@t@^LfnWO5>rJKabt-{!zMU`>m|eWPh&G)IjmMaW7>Mq-4hQ;|xL#UF-$<2=Fe zaA*+2H29O|M0zH6#=WEIgtVOUI~FA=dCTxk{SC>{GEeL$GDw!!UJs}pSN-Pj1 zXC$x+(*JHmg|WUB*rr)b_)6Pm+QkO@9+YvpF_h^gvqj;8$y&Wr(qiJ=2%l+gEDJcy zV239aXF|=;e5iSKh)qV|pyW?>d$g~181-b@T+=j`z0jc6C<|??jI8_t!=>AIp#r;Q z??&U4%g6nA2zkT^AuDK3WzbTO^_fp9rbIY|H@1wiqo6bgT zNssY!;9xlrp`_>M<`&1{)Ymvw{R8Sy_s*G|Aw4}YbAV~0Gy(m`ie*6T*I`-HW}Vis zzfD5K{7a0Bk49of!5vF3TNf+b>N>@;-LBwHoSiVhmwZpmAM&-ikHgE=0)8m{s}_`4 z>RX8=k`#i{ut%%lYzNLcV)A1YaqwuG`?SW+^_7DFGGJgVHu05x+6LY`WJs@K_7EIL z*p>dcy6Rn2l8z5==I5pirMKzGA!yHzQ;;BWuQJw zY!f3qziYw$0QRF^OC)m^(_ysfD5H(xF|&QUnUI;>HyMeCzeK(zdYbO*xbbmV_~~3r z`m6;^kNC@hJXk`NLJJ;AFb?9tS+Nhq?QkJp{*i-k zUdNZS<9<{rPe2WJ0jc0F0As-CYPoW~Qf_B4B~QKtpVR$Sj zH&&eao0F;M*w|U35V`pdHN_i3!dk}`_aZa8N@p#8?ZF4+p#W%C?_jI5cY;iI3l+fZwQZ>>PbUZllDUv?I>-GfPW5mR@!s(^pSEzW-po*f0$+ka#weHH1@WX zJ;4AmI7yI6E*+E46$Zd0t8}JB&i{GE=pdHGQ?5g65o?Pk?OR+Egd95HGcBwZcoyhS zVchvG3A?Mr5rJ6x`1mtHwAtv!2f24@@96Z5O5;pwFeaB0r ziH1{{7K|oPWdSUVhH&3ON4b1=tCZh^)WXy8RXu-XWn;L0# zDBrH*c#-zD82^+^B!i}|(+(;XIX@|348u-Dun^@LUkP+ygj-{}*EBE6c5oh%V_b1y zC1)>%jLUOhpPYJ49fmBP1jp zy>TdoZpdvcrR6y{(5(}{@{pm54rH6L&C^QXUb0+_?%UZdEKN(9>~uzhKS;awPD{W# zn+PA0cEz)co5d9lyX&vm%JpM8N2rpvMXo^nu?Xn#4Rh07Mpxnn&<#ssZ{#BJl<@MM zv77uLCDYtDTA`oxRh}Jm`R)MdX7C&a!0+)W9hs%2Wu`)`JR>DH9}G9g>}K1Ngczlq z=C|P%p~`?-ljHEO&&-!X6oF_AtWu-oLrG3QQ;Pixh>u_cP>Q82QaRW#Vx#UavR4}HwLn~a9s9;Jw(7B>hawT(Bd`QcfshL7#+_ZvT)<_UOZ+&i34kv&Q~7x9U~() z!hif`jkKmM^sOOAm4yU!5RWRD=8FqGo9}ZFjMEMN{z&xfKFkQq{*6Y$WnAo4TpaSd zam%N*6?y=}=h|F6MzF$H8CufuuupZT;+>$)RQ}vVba64h0F=G2&v-uKKA0s`nOreB z}y9?YNfKT4B1SytO{(#T$ii=Zz{Eb_GQ^q2;fJuG*9ly|C?Rj7Qea0^>jz5Vb zCv)kk@w^=R!qwayclJ=Q+`?D}R$(d0Ehri# znA(B~n|{qwMjxTW9ivi#8r)YN%MJu+yZpaD|FgjVEbu=I{Lcdav%vo>@IMRu&jSCm zz_nN)1(z-syAqOJwErf#M-h~T>a}plm;o<89ha9nxcg= zZmq5*MXQH@_4)rqX}~EBQPK$ito(nqd=b=0(NL^*P0>b3Cbb8z(u4_8%jYq+*Et=c z)$;kQWD_s>4B|e=KN64s)y63riquvq+NB`UU;8hJLp?>i%u9#>?koH^C78qVH zmgCcvsHp}s0U8(xKFsBm$1ox_l9Zz9oQHl(PSGsvw^rqr>lc-$*vcj$KlZ*mKB}U7|K3f2 zKoSCr3Swas!onhp6oC*6q-;VY$%YgVMAwjn5J@B1&|dXj3}WPKFJKoG8&<%!3ig8K zwZHa)y`iGm8^7n7xpVjKW+RyW{rTqe$?V*jGv}N+=ggUMXXdiV&B!jdxe&MKm+R%4 z_n%X}Q&JrVs$&$@O{6-;pt@oJsNzL-7J|(2q`FyBMZDWogOX|ns7_Q=??&G9;RL>i-?gL%c)kfagsHtEkL=~*CMp-6v0(iPE+`8ZPj zQc^{{+f=`kR8Iia;}zBKN%iZ$soNzk?w)C-~zOwVCPn}kaT+j0KN+GZqw~6={AFI zqoSKax{dG}_jmRhi%1tolt~xyZqr3?$NDY?UB9AxAnE#}dyOTeJ6O_1yxVlsB;8X$ zce$cFlysLz_mZcQZn~t4c(>`|@IUK&I_L%zU49`d80fhw=K+W4gk*PQah2^PK28!x zyxYY2T_g}c3&hV<#4}0!OoKT3qE3E#HHjZ7i6h=^;@Oh;`5=C-BF?Tpcy6TcT9wnD zfCh~)^8ymjmBbM@h>H8 zS_gi+BQtUpNR={c?u}O2+g;z=7`o7SgY~^T+E+Nn3o|j;Ti9E&w?Ely?5)_7kYI0x zg}p_+fu9!72Hab*D8w1KP)L?zuE3{p5b{47`iNp*^%jb)BvQ3POe2HM=YZL^dh<8Vpf~A32vZbd1Oa4T6 zi(+XIk_Ah%$r1)BL4P8`3dUN%(nDnFA+RKpZCOaqTtb!(L_x5Gc(+-KPZTU|Nz60k z(*p^DnSR*rJQa616ix@Fo=63yyJDd9mZa1_DbJmf<+iMeqQ^V`ktN#-KSe9D zg8Gl7?l7{2o!XPY)KAQ}xe)KRo#KPQY&yeXJ;RdRLzCR8%6e?b0gX8M6EA=830%#2 zn3TZ}h76n|X(-nv1&5jvNL4Wyid20s7IZ}jZE+@bJ>6p=0ik^74zCo zFo%tbEcLudv6gzXQ_6#*S*l|H5Uu`)M{;;brjR2{LGEPNK-XadA^d9r792Vd^XcF)hRnA2hD*l;djtWl0|2!% zP-*9%bC^6{aF`1Yvj@7TDh~T1*_k&mICUU9N6a}NaiD!6qjM4a{=>>|tewAQhECT$$Pt2ZogN#-wg3VAEt# zz0ARR?u@~P^zTMmFk^5>`(qBl?(kLZ*NO%cHx80z1-FGmBnp3u+ro| zH_KOn0`4*&dh-l+=P1?vm$Y+C)k(z!JxF-MVQS_zNq$-kp z(4GVt$R?ctAhePBF_7;k$u9)?y20*RMZQ1D*P7&|BM8>P_+Fy%Nl##xDuAU|A^Zv**OMSBEkx0|-j>dtoHp z{)vOj(w{gouN@5fHIhE!-5$F(NcuOK^qZp5cPRSiviQxU-z@1P-fj9zCH*^0`pc2v zylL<@F>wzpz*L>}-r>;3Fh!0j?j-SlN#cmBF$G`A1o#HQcy)7yh|V~OBaMI5O|eLz z24faJ}IpHQr z_*)SEdXoDqMZ1}_^9|aKr2RE$KSA10ID%hA@Uckpu`32XmPdNR>w zRYdOy!Z%35Nih( zTc1qn2ldJD&sdR25UyKGwIs->@aTK?VDqK)?OHDl(~|7A09;fcNt6^Tqd<`vKN*9E z_{qvZY{DCzIl**mR|>aw@=;;}b;VJ5d5vfwAKP)wxwuFv5-G;aTcnKOYNeXfixgaZ zixewNV<(tXM2az|7o{HT1oKNLnBM5V!f8zxDdH9SRiX;XUQq>5w=o*H3`T1f5h*W= zl>I6NoJiRsmI?%ts|Aud)iRU5f1OD2)P+*66DdzG6e-Uv^x7D;8~wuuk$GCZ$o#d* zYhyI~@jzu_fgWk#clP2CvwFw|W@+igej6tQ^^{2Cmrz6+KSATQ$;UvY$m5q|M4pj4Po(m*EFzVke(~Dm zW8h#5wm_A55R`WbdGVVlAFz#;=?RaEeVnAYv4d&w;muOO{2@ zZj4O%9JoL*Ae8g8R1Q9EA}~q?^GhdQeYl}N>4^A&5`z4r!MQ9Hcnd_(`+pAIQR zc^75M<1&B3lS|=wk9c_912FyJ&;tLqVgimo9N{>)4F(I(!~u*u_+)bl{N0(R8P)y@ zXi)9nffNI8gzlda7Ur2H0S|!6W5mE>eMMRpcNl#<|3x<-E zOdmYC6lM)A!O063Es{~VrDPOVi)0LZI?BRkh!5Cpe6qPjUJQ~+0vbpr8A$Woi3km$ zBqLo4B?XBT3isDI>kXl-rb-DORRDdFff6ZXF)p(|o?HqGH{3XRqoowUIaWNDDjOL3 z3k)t|06sgPY%Y-(LzT0E22~yiqX zXl2@>3j7CIwv!NqyBLHVl=qP9xXgp_A}|c$zed6=XN1<4@Y3g zQc0BLY|X%XdALxL;F!wgnUf=crrU51M|%&4GSVh(Amf*n@i-yAgz0V2GW`Yq|Q`fkxfP-MaI#R^Z4G<6>w@9WWh*D5s&eHGe~riQX@`nh?yn#6Uj|X zsCs4wihveJVG!fdcycNF50HMO7!?arjEbODj0VQ70;7u&Y$Q^67oKPcDV!8KgOR zGmG4Jbp@56@CXTnVR%+xa1jIWJ;x`TOJI+o%C7?rs$2l1dG36KZVv*Z-ftjN)_Xb< zS?@QI;(XaK8Zm5PnTUD^i6SCRcFxBl16bZ7?{S&McycMsZxi!pl!X`)iD8SvEv-Re zH6#PDOamXzKC?{`AF#j6C!0&;8IqB6lNT{2@Y?u!JTd$gLt>66y*7Tj*!=e5blz+^FJ7ezl6V4SSuECh${$?~)XrYQU34?rtn2YYS&Qk%$@DF=CN{NkEfKt6y5Kb6MRy^P#@haVD=rQ9%tQ&B$8 z{V#;l2F5sfO_N%+rwO)yF~VBDQb#7?pK?iB8_>EG^^^GD9GfnINH+vtl9of3V3p1g&KilDzsPa4BNSHl*wVKT)0I zwUq;SYKC8g+Xpd*OHmdoLk-SG@jUlxgzgRmlKFBcKP|GY;|yFkB?k>!~(#R4)OnGwF zv@0p|0;GBMxrS`OkVxo0Lq0HcDRAbw*C2FX%-})coTk&j1baoNb>5-AtVv&K2N8Br#pcx&wV>W$-ck-?@3nR>qVB~Hj zp<6v2&|pS9#lXx;$;^E~n&-X;p~1`vWP~*|CZ)@RjXXrgGo0J^~dZ_=dErQq4`e34O+`6g!(wjZ#F5T0|^y zBpSs|3oEuhX$;P8iSt{}f|6JNHxwsg-BFyZYoG@f8ByQS+gRUG2o1&cM0$|V9qreq zvaZ~9b7d;FBdkl}p63K?dPg+#aDYH_yj~F8h^H9187R3KFSr>S;${%J;d2yjFx$HW z$J!WX9wE6oP;w)lV&LWo$xXK4W-3DWF$|7kkjWr}!9)ax&?caOGZ)W6CQ?3QcIG9tlju*daD!g#mARJ6cdY;WWj zPZc!H!f}X+O+1lhO*BvmG%(u} zfd+?35W43uIF7+g2IUM&5g4kOhXT%%@El}z6xCF*QY@fMOoPGSof;&fj`j_y(BTFl zx#~#3-a?yRT~K=8=_ea@U>2Csa-%o z){wT9F%J=xu0tYzPL4#fA87p`8*-$%C={%aR4m<&w4PCD`I-%z-uz^3A+WkgC`@kL zoVmjhq&~P8#M~cPAISr^5#Ey;q|Q24-V6aFAle21!bE(mK@6=o05mWWKhWg4TM)XN z88kAeXK*ru1q|jhs77EI%L=l}=LlOMT$nAK9tkLIAxNy2hT0wp7BUB$GMSZ;Forph zbBj5g5ea6P11m#IFwJ3AB%oAzkX48Nln&2~1T)k}S%s;uBNEV1ALSXQzOw)b^|c{A z7WG{TG*I6vpviNuMCd-9L4d(&3{GLNoWW8CixC*=yNayxIYNDe3sc|Kk${H!h}ELL zYa+oy>WfqATNepqsE?dm)VDqo%upXI6Q;gvBLNNdvFaA}T^9*vsE@J=Q{RS2Ktp|$ zXPEk~2O!jUCemY3Ul3@ZzRQ6o&wVLE_ZkKlGq{k!`3%lwa5jV03_1`PI=r9!@;O3> zgbUN*1CfA+4vE#G!>y5EAsw3M!?s1j7&;{T79Bnq31;Y!l?l_~Ly>@n4q0`J4j+yL z<1XJHl7bYI1?-VXFhkXpYnZAZjRZ7QP1%R3`Y`}P)mI=r7FE9hG*II5zYOSDb zpPZ~C4QpJ~jAA6-RG+SdZB%9mXhGQGDF$I54K!$IKY{5y_YVl&-!s_7;2Q=z5g4*R z2C%676!|k1KhBqsD;JQqVXh<^+UI!rgPs3vL1Kd}#kDDTF`XJDW_oz6TwoTAEKMYn z47!@ow7++d6nK36caS4o2kz8pIkT zNmDMSV7m|wS&I-(JZM5Vv%njKBc2T57%x@Q@McE9n5#uY|JfRld=pa+nbiYNp8I5k zQa%+y#&Pc7n7MbfKbjhrlz^_sl7yl7L!34~#97Tuu-ib!x}!_U(`@j>uhi$cn-RJj z5lF`71Q}P18C(!1JPGbE#Lw|zWi-jTDx;V_A*fQQA&FRE;iFMTkyd3+j8ev=rGR{p zMk^SMK^j$%#!{fjb1z2d_9Kwes17n7UiBbhtktgx12U?jfI_tk6Irc^B?2HM922Xm z=z=I^Isw%|8q2_74AS6xgj0Y57uO(^f@lab9xjMT?O7qD6vC?97>2?EV5zbdg~dda z1e#E}Q!SOVt>pvvRZ6Q4d@NRWUyVrR#=Gt`T(L0{!YId=LG#?D2&FIr*vw4NagqGF zSpHmspCExc+8^f@Jsj%h;^r6|!>KkiODdeBat=PlsDltm@u5)!E={WdB9K@Eq^Pub zQqGAli3k6)`mo5MsL5@R3~s1<7)Cw=LK_^P!Xj@>`05#e`H?%_ZQ0M@&{Bi_>v%B_CI)h7x)tYA9met>Iy);XR^; zlR#G1aFkbf2l*&0;7COFVgZu@;?+mH1ZXDV-$>nt(>q#V9F-4cbI6ls;YD&WUOtwTT4 zjwF)tE<#5I4H>)yodD5`Sa(G~5u(3Sh&~H6rRXQ&=FA`;h3Gwd=OqUqUVXAlfaVfD zT=X~&g{j>hA%2Cov-mTEEE*Dj0iLW$hWMu;*~L7seq>1el7*vO%-xIRBx&Q9Ij^#Z-DZ(fjbUR^c0v@7;PCOZQlUOnGMP*(*4@)$S- zeaTcDh311UZp2bJ(OX?8_R`~KERj1TV=t07 z7Kyl6#;YGIGKF83d`yQxM6A04DTF|75(1e83Q{0NLB@qZ<{+{cOPnn@D|QjoEGYOK zwVFP!j(xR$^r;9A7G%XI~~eo%0I0;sx=M<7|B8DzYp{eoeWPeNobtos1s)n~Z` zD5nwf==8t(qyJHO1n*+ljZWyHR4U~-G3Dq2wqH2x>`>h$wK=G}h;_H_$D{6#h`Lvr z)jq*lgSgqlz3Bv(CkB}>L{W>#UPMs^5U=iY5!5V5-YrALuyi@d95Q)9SGYqRg2a82 zOMq5K65t&rkMf1}Lm1iNwG{_!S{$0qn@$bAHR_VN2xVL?BqT~RU`7OcU6gjQbkJJH zm_{h^5RKHDBcm0tXquHyev(gW_*1@{rFcnF4n!c`dEuiKD|%LFhr{Ca0A3|V{T7q4 z7Lfdy=2b0}X>u%O;MHs33Mc~?dGzY@_sZgekm*ScaQ-4<-8H?1FufOr>G{EfY;jG_ zC5Q`Bbm6Eg4x}y$5{eF6Kb1a{2vO4YFW^Tfs%_k&aL0&TWq0%%-4XgJom*2-4`-AAAyv9;7pJ~T{>8o%aAO%G@4l8ET&$G zRA;V3jv>D0bW&Y0v>Mq#;-cy@u0|wC^kPhR6(TMsbzNhjhP40z{r>|h7t1&=MPMQ& zH~ZkZZ$uf_O=fALP-?JrEL~{Q#nM4*8KY&Ynvn_Rxo-w6_sE~ks#7u;S%sDDC$0;_ zns?fejEx5HITWK3u4|;^L~v^AT~e92zVu|4Dr13sak%Mo#ridcM=U2P^ua-FS3bhTleMs&deUd|)#<-Cemsn*C2T=7it zMV98>4}Zsn1^#cjSVugUlQ`#Sa%we+RZ@)^71`lHtC#zH)&o39a6D&h#;!3|ahw{*ea4P=m+|3u<9k`XSt z$Ef$4$sq*;F+j6+W8vd2vJ-91DL_waPF;-40SW zoqlzix>T6=YB-;?(7!M#qR1Hfef$RkYj{nGruD$9NIT8P&I&w?6sJN!9`=r)C(%{M zhoN}{Xv&uT6>5B!Y4i^C_ENMAxQ0Zv~L-v z#J$5gMtnKMtf5mCkjTRdFv(gV8r8=^)%60XlsTUWBW)rMRn8e+eO3fltU}CYQKQ1) zJQ2<;8j?ZOqDnZp$@=9eOrZvLyJwNg+GPV%vXtvU>ucfS8yiAP#pzZhMwhBw7jlDU^St` z=?klfPeGfa@jgRnrI#pZduIGsGW)DT%k^pOJ(0zE@r8>JkOX-K#^(vh@o~tL1zAay z5FHdfNyw4Wr9?Qghmiz4F8~jGu6QyWnK%m=cnKLrak{(b5KY&UbzL9XQ(J(~NNfDO zwyp&xV&b1{>lvqyHzCG!0WsNxm`I3KHsFXSj!6o~6cgeo0ii313A8v8%*y(=m4k5*-um}UK{YzK8ko(Jf9 zOO&!xRN1>wRztgC6R|mx4n-r1i#t^Q+76Pxx;;rTmy)EFEvTFC*G{KUbP#Z$)g@^~ zZT0>-@!4duXd#{$%Bz9c%$#JKZX1xK;fuj7l~w+l>XMeG>b5Ef8#oQdZG)0v4oyqU zESr%vRJZM)q*-$;g$_v48f$7R{WWA!H(0dom!vJIt6gBCk_A#B9@{`r3ClCdB*!Jk zC&$5cj4V$@*IiCN-4D`kOhdzbjh(P3pSsu<%M+az;i}M`opJL!rdO z2KIzT<7^`b_7cA?Y<|;isKh{}#9;%q^2*v!J4@5`p&}`}vK3}W9@)6kl5L{)9jGK};Q}HHWo_I8bNh@&;;)jU1`aKo)Ec!aQ=Yv^ZVQ7_8+~*4NLgtXk-4TwK@E z)M&Bp9A%-?OnA>=t)!``-U8$Skgn(K6P^+iPZ8kjYbqPtn)6$l+M07J8>?#S6(<_D z-Wy%Vu>$+_aA*tle34(UPt<3c)XN5ISyleJ#o`0wImTDBL;j>tAf2&KNavVHXYCXG zNhbUW`vgDVgs&Q`<<{3vgLT)}SR_DY>w4urA*(l$)eYA2>KZHS>y}Fy7&c&${0t$4 z+I_;?V&ZLreYDgywbc2Sg`8(#j=@tDA29UqmI@ply;;XI;|6&&Y5kT`BYc0Z;X1`k?twM&` z)k%B*u4}A+m{@=98pxKRDz|5n*3e|_(WE*3*>%|jvuuxyu5}%k(WTImOa#5V2I^-5 zC3g)JKUuj`eX_PR%xl64^IkO3m)dy2nuzJV9c_qa6N6OV(WYS_QAf#}0zL(%N~cS= zYvToC5(RH1lPGwNm_ot3&I}aeEI3vQbLXXJM&{UvOp^fb;gSS;shG~&xD)|i>(wOz z-tx6K0=)G~65!=ovIe~SN)h1oTLzA{P^YW%Hu=9qfyyEUt zrnZ(UYx|b^8_vAknpQvjq`xk#V+=DA-rXZ<@Jb*_gE#mn8oUdrD;m6($V#KEZaEk+ zM<}|^tAnfn7A1u-!P|5s6TFm1GQm4_6cfCTXD_niwKEb0@3N67c=?P%!CPz$6rGKo zm)aPaT^YO1J5^MJ9 zK=KL?1<6}LqC)CAuLM!G$zJBK39k(=3DJC=YSXN0!)rMd5#Hkwm55-6mt`nO-mwuC zQrCIm2C^C~q8qOC!|N>+3f_ki6@?(iOD7a0@2ZFjsq4JBqAOy&HbSA`{SsZl@kR#) z$Lk-ug5zZi3XV53bYf|Mk}0nmP>{Up0DX+<-2zt$VdyqqjiCAb4b9rh12EaKX)Cl2 zEwB!`urXc_pfHR=T*FkWu{GQvuT@e#!UD{r|9=b2^W>@%pGx2*g*A<}{skcpQ+53q zkx|fCU1Q-K=|_olImI<=g!D|N&nvB2)CRW~HowdeISocu`Lbp)w=<`o6Ge7pQ*#JG z>b6|ww$}LD#Q4aVirgV2WSfUP>1%w5sT$2?2|v6;Q=323ueV_m&WyI!nigMmrN7c* zn{wQ89J8xB4`y!$FGSWKqrh zE@c6;=UG}+;gte7N`-l1_irl9bGltun5TlHRrnO9ccJ3t%!^v#rOf%83NL2<-&Obu z0H_LIDuAO@cnveU*6_v5?oz`SGPkjf4spG$s2oEa%okVOrT$+eB7iZ&H(XrRCyj#P_^+GrySw%#HjQ-Jo-39ixV>f9zNBi zY{Q%m4_5viC$}Amv1AnH?qT}hh-oYHqfyj((oS_wKM*R41K|NcEyC5(t?N1u{J}z6t9*5$f3Z3c zo)46H{>YwUr_5Sxaou#VVz9u|ZHghDwTs3OkK9FPh{x}=`pU-Iy6Uh_kSFlEVw4B& zXy(zl;o&u9qdW(PhT?BoW`TT2@y&x>3X7J(dN#l;TX}N|#rGm~?rih)Fy%5L5ExM*2>8CIKv?aW@A@}ZmSl#oiZqtxHFI^sjfs!a@UTSRDC3njd zoX+i|N)Ud;yW(jn^P;h{gc%^Nnqk|9%;vP=P%W4(VI}lS6SjB=-g{#}nVqRxz zkosK;mu-s~+pJ=7o6H!u#7XMh#U)~K+{P!X8% zX>l*BnC&IR*b~RuxZ^>-XyT3s`KpO;=@lp3QKD7O!%9}za?2L9J6-47|1Q|%R)FYi z>Naj5&>HIM>+6KJ3~#C1xba1+YHRV4n6D9;Jw;<%p#`+SFjBN}tBB^WY^fD6VE~U| zH*{Mnl?@iwlZ9sm1@3OrTBJNUYfr$e9ho(7 z2VDA<8pQ{^`)GU*htGM<+kgL;4*2ti4Rc54+%#9ecHPc{KfpmHttxXa2lTCT8_@qP zs97?%xuxmknks+m+$D8&bL;EowYAQhyL93ab6aZgwyU*-k$Iy+b_ov>Tx+(R+)JIYuOMNQ!iPXo2KA-w_ z>VH!=rL9f7KK+igOVS@7`s~mPoNJwLINx@D;QYiH;MbAj>;oLBX+szJ+uD;ZOj?(; zKIz(|>ymy*TH(0Bak1kv$CZw29P1q$93;5Wahu~##}>yuj{6*29oxXbV~!^rPdT1( zJm+}c@si^$F!ZkDJ;(cw9gYtiA38pAeCGJl@wH=@W4Gfc$FGh*9Dg}hq^?X|m3mg{ z*{SEHUYL4G>ZPfdr(T(QRqDFb^{B|rsT)xtR%8n*v=!BP2o-u1ReA!IdLGqzJN1*) zPgB>XU7fZ*?b@^rX}6@^o_0strnGy~?oA7(-JkYT+HYyUr*#ayd+1|BA0PU}(5HrO zN3}0Xza)Ka`eo@?q+gYOP5O1|*Qei@eslUQ>35`WO5c)xcly2Q52SBPe<=Nt^vBYl zNPjB*>GWsQ|C9bg`b+7rr2jYl_4GH>-%h_^*hRzE4ZD8W4a4pjwq@Ae!*&k)de}F^ zz8&`cu-(Hha9-%V*m((ryUDrP`I_@}2>DHj`5otb&i9==gt$|tRy8#=kFKje=&Fs{ zo;?t~HoCe6Ca|~$dcZO`QuN~)4f`8iRac)rzgDEd6ah1tpkaRkrnX+BVc!^FzA6g? zz=MFPYZS>e)Hr_NBjQiMU6Ui4MnvjER#nMAk|8zSEvPx>mjF z!H(-nGXC0VoNYH&yF5Rn*gvJKaAQ^DMpxI@ zr}5fv+(3c3T{T82?)h3y=G+S52a60p2vX7y&I=W9+|i?j z=k5Y$$aA}ET3VV~T56h`TKt*t{|(K4t$*GjV^1EZ-#!(p8HcvpPYWD$mHr?MY0%7M zoPHh@=z%?L_#G+2!$dfWp}kK$G`06mMX-n=#QeJ2(F?SG`ZZVfKk3DU!H*0%IH_au zbGLtJ-xaq{c*2#^Pygt%M>`e_`S6>P3FlX|AK&zfJ(2vNTEcSJr7Fv5FfC`Xw47Fp z4-p5U`_l*^IRZ}%KkyO?%YprXY z+bZ7URW>#@`Na#nRzWoQ;GUI-E?N2O#SLpNJ$U1*H`|kACE8k9FEAf}-WxgYSI7Oe zt|Fk_RR^(MJeiQq~S@TkF znsQp-;&Wc;761B=JMFg<`#xG-tG^m6#zF)wn_F%_{fb#X*>-Jx`GYH0Hrth65o{&cL!!8z<*aDL3$C$7&rarN*0TjPsHUDfuW zeNFEe?YvcNB@oCLE|^xLmG{_q_W1pO-m>MFpY0DM#f%(V59bTy{hrLY@z{c$i)J47 z;0@PIykxlj;aHJ#94t`J^bWpx`||VOIK20~BXho(Q(@nn93$UL1n#=Vdbp^H%8q;O zTb6w^Z`pg5Th93MA^StIVz(eqm~r-LRRgA6lKbx0hwpg)(+}-G$BG=rf;ozi%Z2CF zJ)D;BYPjRqkIp{f`+GjI{}wayWvz4Be@aU~-#a^f+RthIJf|NstZaBmqFwL1SGl)V zFXSwvvAStV>)geYMvtj9J+6@|SU>&M?F-+%;Q)K-(qX@?a(_J7Zi@*us8&}mTwK#4 zkoUNAOUZ>fW4~E*{o^k-&Ko|}9=CVod+98eRy9l4Qd{!NSx>FG<*PpR{eR!|PU@xh zl)dBLi%g6Lw6x)f{D#ZNEcp1EzmBVY<-y18qxX*a@42p`DuqP;{Or|}@9DYo)x~R1 zI3eZG4?eM%q{O1h*5;Zj=~twol+}HD*WxL@XNQbCaL(wuz-s%9*w9zj`&!$Yn+59= zSG~BU?TYi)mHm0Z8~=I#zr*aMvEdG}9-s-%6sFL?gbtiS9t zW1~{N*jL?Bhn6LDE;RDwzg`Z!(C3XC&baaANtqeH&bC*?L?ROX_;(sdY~1?nnI|7x zAAgmt|0DKUF`-{r)6!T|AL4%V1O4B7b=R*qu0Hp>F;kwsVz&Lbn9$F|@`=B-S_o$H z?k7IIZu`(9+qNc-`TEGyHrpTV7fUOvZL2eTSM8mre%|t2-N=6}dwKhfJ2xL-Up^of z)Xl96_|EPK!S>+SixWqtzxLN)?^B=nr@VEheQj*Go0^GRpnhrBY5%uv{>Z~$yCrzY z_wY$Wr#xGBwcWjUKmYeVh%xF-Uv~F* zhYxu)Z_xbZpTBqZ$U6I&DX}n(?pjPCg+MC4`C`$N6WUhZwd?D94lH(^XuFUFQ4fp~LWqn?qu=$5o6Q{HqQ zw;;!UbVV$P!7}Gh0`;j^W*vEV^Hsg>y>0yGg&%$XqkZ+sF`{m)mji$k5BntH`A?sH z=*1Ine&wj2HXLtnYl;yw)(`~Gh4W9l=(5uu?|<3WZJ%9n;it#ie_a$KW;IG|Slq|< z#_GE+aL2v3)js|6SM0yVgc)dCT3f0F)5{KQo^kuY6K_trXw}lIUmsp(zr7_!rdw*{ zkpHXOhCOj!^_eFez3#UAK6yFu7Q1V4ESOuc`fmvO-^rI|7Hquuve_RcuX()x(+}J0 zW5Nu(Ypn4vk=?)pLud8=tbD?#qP~}2lDqgnpV}K@!`+CbI<77)nmPFT`!XGa8b8s- z-u}SFC)fupjYS$&)zG0p>|HeX^j!~^9yI>h{H@i0Bu}>Q7ZYN1;{vU__Re=7NqnmR zY5k7fbBz1QW%hO?(R75 zqN_goYxy6!w_p6l>@Uwf%-(=qY@2v}J>gy|;4axj4<$x#q-f~{A z8wy@7SXOkteZ&Q^VTZ$Ru4$2Lc|RWT>QxtgIMw$43xkiSy5o&q_O&r0$61x?YUx@p zv&X%*=A0*Q`(tOle$FL3`rBJ$#0|zA6bx2T9?@Io9B+9{GoqztU!R;3n+ppUf0)Nv_kbA?>`yct)p869m zpEG?=(<9ff9Cft)+8A*!3C$th=byAu-&{I%_^gaxyHXrC+7G=uW{uW0Rr%#;BCr4T zJ(8SHeC3+5q4~m(K1;P!twD}gjWZQG_OZHdrP5W4c-c(;B7fP0YUv}}7 zw-PQs<=!JIZ(EYK(f)pnnA;i`HZGCVv-^(S@0ZmH<*Q%+Z`(@e?(Dbi*F6&>*Yi%U ztCkY^;MA4R?bmzek6&y{>A&&3(zEOXK8y`_6<5@Ruy-zea_xkHPyG1nkrUfaxBu`-YCK{+KfRgOjHgbR2S9ea=b$KEPi5O>EekDi!1XcddQ= zvpv6TK4I-|{>42X>1Xd9BkG3MrN-pvt97^k_QzUJbIx0ycp%()>7YK z%!-fdan-+mS<=|D>Bk|5T-W^O9rhtN*kWpxkae??N%r%@JZ1JLZ#Zw$0b7OZ6^ysMZ;!b0o>h08S$g$J z*KR#%-h_bt7rsT_`=$$Hi;nz}BKUabRZG{~cO6u=>4$TtJpHqsUx4~2xcHh0N7@Cl z_b>b8ldH2IzWSKyf#;5CIs6GbzgP25kTu~|_5v($Rk!+}f4+|vc>j|>|Eszw@3oC+ zd`!E{c4^JPP{?(ri+-AR@n;-t64CTbG-_ntP zeUbY1%`c5!l0Rzk6H{#(4>Js#GR2oO)i)-)Xllu^UT;x;zISR{BgVN+wT*SHHPurl zv|@KrTkDhw+Yvkl_0SwRy>l}6_i2H{h9Wp5LDQyf zAERr1m#}bIjbD{27fR>2N>c?JWWkTpQLqRF2W%f>)B659qM-HWAG2t)EIMx(ie7@E zgSU@~)B2tlQM9nBu{N)*5tsMiLIy?EU^i|!ieB1V(+&{qUJ_BXw6dyZR-JzVF3~Yd zwo0NMEV&&eCBN$rD>TGZWk(9&5~cBWM5IoHym0%6w-$6hmHQcx_RQJgB}UgVXfq`c_iY_M8P9U zJ;T%L%J`bweEue1ea+a3I53CXP5`+@mbxPw@rw{2vArKOKUy5E6T8_vnXIq2#;*=z z$3bse;8@r`elE*F@L%BAPvFS5;J`M*dJ~a6G<|w6Y?DNRTv>QiF5-v7Xs2%P*Hb6g zaeYth3WI7r5VJ&*FOeLZ2P8iONtr@|ozIa-!Wxc=p;%&AI1L!y#;Jvz?fnw8zT%`? zmA@s_V0~5dWEqDRxJk;c-)xk*{6I}RbQ)#H?=6}Vk7({VUD6|-wcaX=KFp#$2P3G_ z7xYU=?$Jx9=yl3YpT=N1gJK3V5X4g?`qA*Kw*Nz*lRuqa%tpUs>syTwXMZi8Aqu~5 zRf68=gB8ExSW;B40&e33w=<-0uAYa2m!n{yuRg6`uRc*2jH9?M43amUT

@w!ZHn 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�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 Date: Mon, 24 Dec 2012 08:31:50 +1300 Subject: [PATCH 09/27] Move to 1.0 libusb. --- Externals/libusb/win32/libusb-1.0.lib | Bin 704170 -> 704170 bytes Externals/libusb/x64/libusb-1.0.lib | Bin 734478 -> 734400 bytes .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 223 ++++++++++-------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 13 +- Source/VSProps/Dolphin.Win32.props | 2 +- Source/VSProps/Dolphin.x64.props | 2 +- 6 files changed, 139 insertions(+), 101 deletions(-) diff --git a/Externals/libusb/win32/libusb-1.0.lib b/Externals/libusb/win32/libusb-1.0.lib index 007a1e830b07b8321c4534f3fc3bcb19c2b15829..c9018f05dd9d557220d2f3383f5e090e89d69ba6 100644 GIT binary patch delta 658 zcmYLGOH31C5Z-^b-Q6x*cbj5M6Nm`0q!f}`k(kC945mH!D7Kt5CcS!4ATdTorLoxR z!KmqBLOdbRLorG%P;0?Q)!=*UGf|QzMm%^_PbQ*HDG7&f=AUn7zWFDUUT#e+0} zoCLereO!g7pC$9gl|W+l|k5D?x} zR8y#`&{o|pxScoS!F6zxy+v7tpSAB+8hzt5*)>6iB;KQ@(Ote$hVC*?q`$pDcJ(ex w*r(C;z9mL9An>^n&EQaY;JD;Q-HG}Kqbp%(Fc6Fcfglnjf+=TckW-`o0ZvZFng9R* delta 626 zcmYLGUr1AN6u!T6cYpWpde^loFFuMP>k&%X|n5E1bdA@8-?`W(QK=y z3Lg%>1mYSbWX`F}mK6)L%-o9Jf<=E`dbFMbtqnJLi1o9M05M+tgOuT@UZ< z@OK1`j>V#`T(CL16Xs*l?8)8K{`|p-Q9zFn7LRPXQR6D0QxZzyn_E#Zm+VfGyRt>DA%EO6|$ zg3eylh%kG(&7b)JjTo`gh{`3AV?_teNg5@R9}t5hw6ZrrhNxHQQz3L~9B5;CCPzct7rAf_B{0DoXyVC#w diff --git a/Externals/libusb/x64/libusb-1.0.lib b/Externals/libusb/x64/libusb-1.0.lib index 0f4682497e90adaa158874aa309e04c1dc35715e..a0a18c19acc245dbfeb28c1d5d2bf99e4b216f3d 100644 GIT binary patch delta 3173 zcmeHIZA@Eb6n@{+k9*s)tlx#YAY-=B$+8xqE#Tb9HkwQ~V9bw2CL=LfqRu%#f2g~t z5tL*TcS(*)*-|&v~Bnp5#4nqv-4}MQwL*_mp^w%iLbErq(JHyM1ndUi8_iC4`O<655nO6EayW zO)Vj#YEuaanQeCp0U?8Dol>0D{{Q@M?*RV$^H-M6kcFDckxSB-E=!=-|Z{&{&hEVgpf@kLS{;pB-f!LZCW+ytK!Ib2T!^OG-ON?YY&6u-*#o~ z!HP2Jk@o%Cn~Cetm@_6&gy`44w87b@N<<8Ar9hds@opl2b zw=0M#izCt4M)5-ENtG)?$SGXzQ?5|yT!ci##&7{lWQna|Cv6l@h70Jc(&cb3r3UGp zBjG~*n)i>%J=eE?yY;arEcKV(Y>+C4KX_dWdJ-Z{q^Z>;k5|*Dy>d%4-T!vZ$4p~g zowG0kq-vFuy&tGH)K$}_PF$r2m!^w_w}HzQ!PkDHK3r!9j&|dRda!ZFS;)CMf{oX} zgrm&EpI{!AdJ-q~u!8oW(ZCi7y#{d5Pq3aXTrb;lnkAhWh8ztkB&7JQH*Pr5V*m^G z8^A_o{N4Zs^c2n-zy+rXu6q&8c%Kpc^izDv2myKq`;D-XeimKanD?$ijTI)a($C|L z$y(;vJq1hf3nO^2W*XEuH4Rxd#;iZ8Mp5o%GF?9QVy?3|WrC`l0Ty9xxHr~@@?;wZ zaf=z;{JFTYFR|GSA^H^-THqo2H3}BkLC?!qEWlIkg%~)49KtCp^w5hKwn0Gs4RgD8 z;B+=4la~z_>99PJ4V0QkV*AS|8kIz=VOqUF{l~MpC|u(za}u3 gA8UNkpeB8ndiN$3H4JLxhC!`n_dKveZrujupZevW*#H0l delta 3376 zcmeHJYfM{J96#sW+upVe>1|6p9?2L>3nkrFSScMtmSwYzS_ezPL`CKjj3!PU)0oT{ zZ>Mog7TJ=E`!BOW+MzM=LEt*><^#4eUoaGw#RNYfWzkG$)P3+96Hj|P2no=2>GX?D ze)se|?(gwGr@i;wFOH619mfiU3eRSjyRx!q(Z`wWRXD3EDiYrx(;5em0t7DA>8 z)8rE}o+v#7LT1aEo;cMOGQ6MZ8u)+z|JwtY!To35ev~d$f^{!aEdjM|3jG@pZdZi! zu_yx&GC{H;hbH7g%R^Xc^7iJm(OGoM5YkzE2i6L=?DP(ZQ|+Qur4kP|TBR{=+M)F| z-n(P>&PKl<_C1WvVxZF|U3CQt?_2Q+UcTAm^dz6)973oijF8{WqP*J6s zq(QS$Et-^G+jWYF^$lvt(J;AnK~TJ2T`kpizM-&LXTOfL*lR?H+9E#5!5PQQ<;WDuxQlhT4 zBQ$eGEQ(mf-H{wplr8Ry*qApNMqC>)i@lK?+$Rl1PGe$-!CE|e<3UdNdnV$dB|0V@X^=v zKBOfJ1Z<@-g1qZ(^y;tU19dp~5&W1#?6?=Sdg8@>P_HKz+z(IciBludd+3snp<7SZ z!6u&Ya9K}`cmS^Ii51Im7f+ir;Npn`pM^aLE<{R(! zG?i_CuL(!Ge=Cg9Er)P3Yl98ND!VLhWG|>lSq%6}HW!?(tZY(iS3385xomj5lHI@P zNW%sJ#M!1+OpCzm1da5v^%Y;rD@GSEzlmcstRY8rBxEmaq6B$ zzd{R~*Qt%`ma;su1>dw>f2JCXec^3wo-DQO$>K(xadE9^ zK;diladNXyGg6;|ulA&o+}KBQ6T9 CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { - usb_init(); /* initialize the library */ - + //usb_init(); /* initialize the library */ + libusb_init(NULL); } CWII_IPC_HLE_Device_hid::~CWII_IPC_HLE_Device_hid() { - for ( std::map::const_iterator iter = open_devices.begin(); iter != open_devices.end(); ++iter ) + /*for ( std::map::const_iterator iter = open_devices.begin(); iter != open_devices.end(); ++iter ) { usb_close(iter->second); } open_devices.clear(); + */ + + libusb_exit(NULL); } bool CWII_IPC_HLE_Device_hid::Open(u32 _CommandAddress, u32 _Mode) @@ -61,7 +65,11 @@ u32 CWII_IPC_HLE_Device_hid::Update() { u32 work_done = 0; int ret = -4; - + //timeval tv; + + + //libusb_handle_events_timeout_completed(NULL, &tv, NULL); + /* std::list<_hidevent>::iterator ev = event_list.begin(); while (ev != event_list.end()) { @@ -89,7 +97,7 @@ u32 CWII_IPC_HLE_Device_hid::Update() event_list.erase(ev++); else ev++; - } + }*/ return work_done; } @@ -170,17 +178,17 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) -4 Cant find device specified */ u32 dev_num = Memory::Read_U32(BufferIn+0x10); - u8 requesttype = Memory::Read_U8(BufferIn+0x14); + u8 requestType = Memory::Read_U8(BufferIn+0x14); u8 request = Memory::Read_U8(BufferIn+0x15); u16 value = Memory::Read_U16(BufferIn+0x16); u16 index = Memory::Read_U16(BufferIn+0x18); u16 size = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); - usb_find_busses(); /* find all busses */ - usb_find_devices(); /* find all connected devices */ - - struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + + libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); if (dev_handle == NULL) { @@ -188,76 +196,63 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) break; } - ReturnValue = usb_control_msg(dev_handle, requesttype, request, + /*ReturnValue = usb_control_msg(dev_handle, requesttype, request, value, index, (char*)Memory::GetPointer(data), size, 0); - + */ + ReturnValue = libusb_control_transfer (dev_handle, requestType, request, value, index, (unsigned char*)Memory::GetPointer(data), size, 0); if(ReturnValue>=0) { - ReturnValue += sizeof(usb_ctrl_setup); + ReturnValue += sizeof(libusb_control_setup); } + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - requesttype, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - + requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } case IOCTL_HID_INTERRUPT_OUT: case IOCTL_HID_INTERRUPT_IN: { - - u32 dev_num = Memory::Read_U32(BufferIn+0x10); - u32 end_point = Memory::Read_U32(BufferIn+0x14); + u32 endpoint = Memory::Read_U32(BufferIn+0x14); u32 length = Memory::Read_U32(BufferIn+0x18); u32 data = Memory::Read_U32(BufferIn+0x1C); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); int ret = 0; void * context = NULL; + ReturnValue = -4; - struct usb_dev_handle * dev_handle = GetDeviceByDevNum(dev_num); + libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); if (dev_handle == NULL) { ReturnValue = -4; goto int_in_end_print; } + int transfered = 0; - usb_claim_interface(dev_handle,0); - - ret = usb_interrupt_setup_async(dev_handle, &context, end_point); - if (ret< 0) + if(libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 0 ) == 0) { - ReturnValue = -4; - goto int_in_end_print; - } - ret = usb_submit_async(context, (char*)Memory::GetPointer(data), length); - if (ret< 0) - { - ReturnValue = -4; - goto int_in_end_print; + ReturnValue = transfered; } - ret = usb_reap_async_nocancel(context, 0); - if (ret >= 0) - { - ReturnValue = ret; - } - else - { + /* _hidevent ev; ev.enq_address = _CommandAddress; ev.type = Parameter; ev.context = context; event_list.push_back(ev); return false; - } + */ + int_in_end_print: DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", end_point, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - + Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } @@ -274,6 +269,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) return true; } + bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) { @@ -283,7 +279,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) switch (CommandBuffer.Parameter) { - + case 0x1337: + break; default: { DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); @@ -306,7 +303,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) -void CWII_IPC_HLE_Device_hid::ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, struct usb_device_descriptor *src) +void CWII_IPC_HLE_Device_hid::ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, const struct libusb_device_descriptor *src) { memcpy(dest,src,sizeof(WiiHIDDeviceDescriptor)); dest->bcdUSB = Common::swap16(dest->bcdUSB); @@ -315,18 +312,18 @@ void CWII_IPC_HLE_Device_hid::ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, s dest->bcdDevice = Common::swap16(dest->bcdDevice); } -void CWII_IPC_HLE_Device_hid::ConvertConfigToWii(WiiHIDConfigDescriptor *dest, struct usb_config_descriptor *src) +void CWII_IPC_HLE_Device_hid::ConvertConfigToWii(WiiHIDConfigDescriptor *dest, const struct libusb_config_descriptor *src) { memcpy(dest,src,sizeof(WiiHIDConfigDescriptor)); dest->wTotalLength = Common::swap16(dest->wTotalLength); } -void CWII_IPC_HLE_Device_hid::ConvertInterfaceToWii(WiiHIDInterfaceDescriptor *dest, struct usb_interface_descriptor *src) +void CWII_IPC_HLE_Device_hid::ConvertInterfaceToWii(WiiHIDInterfaceDescriptor *dest, const struct libusb_interface_descriptor *src) { memcpy(dest,src,sizeof(WiiHIDInterfaceDescriptor)); } -void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, struct usb_endpoint_descriptor *src) +void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, const struct libusb_endpoint_descriptor *src) { memcpy(dest,src,sizeof(WiiHIDEndpointDescriptor)); dest->wMaxPacketSize = Common::swap16(dest->wMaxPacketSize); @@ -334,35 +331,45 @@ void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *des void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { - usb_find_busses(); /* find all busses */ - usb_find_devices(); /* find all connected devices */ - struct usb_bus *bus; - struct usb_device *dev; int OffsetBuffer = BufferOut; int OffsetStart = 0; - int c,ic,i,e; /* config, interface container, interface, endpoint */ - for (bus = usb_get_busses(); bus; bus = bus->next) + int OffsetDevice = 0; + int d, c,ic,i,e; /* config, interface container, interface, endpoint */ + + libusb_device **list; + libusb_device *found = NULL; + ssize_t cnt = libusb_get_device_list(NULL, &list); + + for (d = 0; d < cnt; d++) { - for (dev = bus->devices; dev; dev = dev->next) + libusb_device *device = list[d]; + struct libusb_device_descriptor desc; + int dRet = libusb_get_device_descriptor (device, &desc); + + DEBUG_LOG(WII_IPC_HID, "Vendor: %d Product: %X Devnum: %X",desc.idVendor, desc.idProduct); + if (desc.idVendor != 0x21A4) + continue; + + u32 devNum = 0;//(libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); + DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d, Error: %d",desc.idVendor, desc.idProduct, devNum, dRet); + + OffsetStart = OffsetBuffer; + OffsetBuffer += 4; // skip length for now, fill at end + + Memory::Write_U32(devNum, OffsetBuffer); //write device num + OffsetBuffer += 4; + + WiiHIDDeviceDescriptor wii_device; + ConvertDeviceToWii(&wii_device, &desc); + Memory::WriteBigEData((const u8*)&wii_device, OffsetBuffer, Align(wii_device.bLength, 4)); + OffsetBuffer += Align(wii_device.bLength, 4); + bool deviceValid = true; + for (c = 0; deviceValid && c < desc.bNumConfigurations; c++) { - struct usb_device_descriptor *device = &dev->descriptor; - DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d",device->idVendor, device->idProduct, dev->devnum); - - OffsetStart = OffsetBuffer; - OffsetBuffer += 4; // skip length for now, fill at end - - Memory::Write_U32(dev->devnum, OffsetBuffer); //write device num - OffsetBuffer += 4; - - WiiHIDDeviceDescriptor wii_device; - ConvertDeviceToWii(&wii_device, device); - Memory::WriteBigEData((const u8*)&wii_device, OffsetBuffer, Align(wii_device.bLength, 4)); - OffsetBuffer += Align(wii_device.bLength, 4); - - for (c = 0; c < device->bNumConfigurations; c++) + struct libusb_config_descriptor *config = NULL; + int cRet = libusb_get_config_descriptor(device, c, &config); + if(cRet == 0) { - struct usb_config_descriptor *config = &dev->config[c]; - WiiHIDConfigDescriptor wii_config; ConvertConfigToWii(&wii_config, config); Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(wii_config.bLength, 4)); @@ -370,10 +377,10 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) for (ic = 0; ic < config->bNumInterfaces; ic++) { - struct usb_interface *interfaceContainer = &config->interface[ic]; + const struct libusb_interface *interfaceContainer = &config->interface[ic]; for (i = 0; i < interfaceContainer->num_altsetting; i++) { - struct usb_interface_descriptor *interface = &interfaceContainer->altsetting[i]; + const struct libusb_interface_descriptor *interface = &interfaceContainer->altsetting[i]; WiiHIDInterfaceDescriptor wii_interface; ConvertInterfaceToWii(&wii_interface, interface); @@ -382,7 +389,7 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) for (e = 0; e < interface->bNumEndpoints; e++) { - struct usb_endpoint_descriptor *endpoint = &interface->endpoint[e]; + const struct libusb_endpoint_descriptor *endpoint = &interface->endpoint[e]; WiiHIDEndpointDescriptor wii_endpoint; ConvertEndpointToWii(&wii_endpoint, endpoint); @@ -392,42 +399,72 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) } //endpoints } // interfaces } // interface containters - } // configs + libusb_free_config_descriptor(config); + config = NULL; + } + else + { + DEBUG_LOG(WII_IPC_HID, "Could not open the device %d", cRet); + deviceValid = false; + OffsetBuffer = OffsetStart; + } + } // configs + Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length - Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length - - } // devices - } // buses + } + libusb_free_device_list(list, TRUE); + Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices + char file[0x50]; + snprintf(file, 0x50, "device_list.bin"); + FILE* test = fopen (file, "wb"); + fwrite((char*)Memory::GetPointer(BufferOut), 1, (OffsetBuffer - BufferOut)+4, test); + + fclose(test); } - + int CWII_IPC_HLE_Device_hid::Align(int num, int alignment) { return (num + (alignment-1)) & ~(alignment-1); } -struct usb_dev_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) +libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) { - + int i; + libusb_device **list; + libusb_device_handle *handle = NULL; + ssize_t cnt; + if (open_devices.find(devNum) != open_devices.end()) return open_devices[devNum]; + + cnt = libusb_get_device_list(NULL, &list); + + if (cnt < 0) + return NULL; + + for (i = 0; i < cnt; i++) { + libusb_device *device = list[i]; - usb_dev_handle * device = NULL; - - for (struct usb_bus *bus = usb_get_busses(); bus; bus = bus->next) - { - for (struct usb_device *dev = bus->devices; dev; dev = dev->next) + if (libusb_open(device, &handle)) + break; + //struct libusb_device_descriptor desc; + u32 deviceID = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); + if (deviceID == devNum) + open_devices[devNum] = handle; + else { - if(dev->devnum == devNum){ - open_devices[devNum] = device = usb_open(dev); - - return device; - } + libusb_close(handle); + handle = NULL; } } - return device; + + libusb_free_device_list(list, TRUE); + + + return handle; } \ No newline at end of file diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 099f4deff4..be7e1b5926 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -115,15 +115,16 @@ private: void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize); - void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, struct usb_device_descriptor *src); - void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, struct usb_config_descriptor *src); - void ConvertInterfaceToWii(WiiHIDInterfaceDescriptor *dest, struct usb_interface_descriptor *src); - void ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, struct usb_endpoint_descriptor *src); + void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, const struct libusb_device_descriptor *src); + void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, const struct libusb_config_descriptor *src); + void ConvertInterfaceToWii(WiiHIDInterfaceDescriptor *dest, const struct libusb_interface_descriptor *src); + void ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, const struct libusb_endpoint_descriptor *src); int Align(int num, int alignment); - struct usb_dev_handle * GetDeviceByDevNum(u32 devNum); - std::map open_devices; + struct libusb_device_handle * GetDeviceByDevNum(u32 devNum); + std::map open_devices; + std::map device_identifiers; typedef struct diff --git a/Source/VSProps/Dolphin.Win32.props b/Source/VSProps/Dolphin.Win32.props index a78f75c4ac..383ed36590 100644 --- a/Source/VSProps/Dolphin.Win32.props +++ b/Source/VSProps/Dolphin.Win32.props @@ -8,7 +8,7 @@ ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew32s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;hidapi.lib;%(AdditionalDependencies) + portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew32s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;libusb-1.0.lib;%(AdditionalDependencies) diff --git a/Source/VSProps/Dolphin.x64.props b/Source/VSProps/Dolphin.x64.props index fd692daa60..28ae77d1b5 100644 --- a/Source/VSProps/Dolphin.x64.props +++ b/Source/VSProps/Dolphin.x64.props @@ -9,7 +9,7 @@ ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg64;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;%(AdditionalDependencies) + portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;libusb-1.0.lib;%(AdditionalDependencies) From d9dd94ac8b696ceb0e6b32eaafcc302b41f43bd1 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 24 Dec 2012 12:58:11 +1300 Subject: [PATCH 10/27] Add Libusb to cmake and HID files. --- CMakeLists.txt | 10 ++++ CMakeTests/FindLibUSB.cmake | 39 +++++++++++++++ Source/Core/Core/CMakeLists.txt | 7 +++ .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 48 +++++++++++-------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 8 ++-- 5 files changed, 89 insertions(+), 23 deletions(-) create mode 100644 CMakeTests/FindLibUSB.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 37e4f14f5e..414289771c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -414,6 +414,16 @@ else(SDL2_FOUND) endif(SDL_FOUND) endif(SDL2_FOUND) +if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + include(FindLibUSB OPTIONAL) +endif() +if(LIBUSB_FOUND) + message("Using shared LibUSB") + include_directories(${LIBUSB_INCLUDE_DIR}) +else(LIBUSB_FOUND) + +endif(LIBUSB_FOUND) + set(SFML_FIND_VERSION TRUE) set(SFML_FIND_VERSION_MAJOR 1) set(SFML_FIND_VERSION_MINOR 5) diff --git a/CMakeTests/FindLibUSB.cmake b/CMakeTests/FindLibUSB.cmake new file mode 100644 index 0000000000..5d7af82e7a --- /dev/null +++ b/CMakeTests/FindLibUSB.cmake @@ -0,0 +1,39 @@ +# - Find libusb-1.0 library +# This module defines +# LIBUSB_INCLUDE_DIR, where to find bluetooth.h +# LIBUSB_LIBRARIES, the libraries needed to use libusb-1.0. +# LIBUSB_FOUND, If false, do not try to use libusb-1.0. +# +# Copyright (c) 2009, Michal Cihar, +# +# vim: expandtab sw=4 ts=4 sts=4: + +if (NOT LIBUSB_FOUND) + pkg_check_modules (LIBUSB_PKG libusb-1.0) + + find_path(LIBUSB_INCLUDE_DIR NAMES libusb.h + PATHS + ${LIBUSB_PKG_INCLUDE_DIRS} + /usr/include/libusb-1.0 + /usr/include + /usr/local/include + ) + + find_library(LIBUSB_LIBRARIES NAMES usb-1.0 + PATHS + ${LIBUSB_PKG_LIBRARY_DIRS} + /usr/lib + /usr/local/lib + ) + + if(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) + set(LIBUSB_FOUND TRUE CACHE INTERNAL "libusb-1.0 found") + message(STATUS "Found libusb-1.0: ${LIBUSB_INCLUDE_DIR}, ${LIBUSB_LIBRARIES}") + else(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) + set(LIBUSB_FOUND FALSE CACHE INTERNAL "libusb-1.0 found") + message(STATUS "libusb-1.0 not found.") + endif(LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) + + mark_as_advanced(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) +endif (NOT LIBUSB_FOUND) + diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 734d966781..dd19d36d36 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -138,6 +138,7 @@ set(SRCS Src/ActionReplay.cpp Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp + Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp @@ -194,6 +195,12 @@ set(SRCS Src/ActionReplay.cpp set(LIBS bdisasm inputcommon videoogl videosoftware sfml-network) + +if(LIBUSB_FOUND) + # Using shared LibUSB + set(LIBS ${LIBS} ${LIBUSB_LIBRARIES}) +endif(LIBUSB_FOUND) + if(WIN32) set(SRCS ${SRCS} Src/HW/BBA-TAP/TAP_Win32.cpp Src/stdafx.cpp Src/HW/WiimoteReal/IOWin.cpp) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 486ec062e6..250ff7021e 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -64,7 +64,7 @@ bool CWII_IPC_HLE_Device_hid::Close(u32 _CommandAddress, bool _bForce) u32 CWII_IPC_HLE_Device_hid::Update() { u32 work_done = 0; - int ret = -4; + //int ret = -4; //timeval tv; @@ -214,16 +214,15 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) case IOCTL_HID_INTERRUPT_OUT: case IOCTL_HID_INTERRUPT_IN: { - + + int transfered = 0; u32 dev_num = Memory::Read_U32(BufferIn+0x10); u32 endpoint = Memory::Read_U32(BufferIn+0x14); u32 length = Memory::Read_U32(BufferIn+0x18); u32 data = Memory::Read_U32(BufferIn+0x1C); - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); - int ret = 0; - void * context = NULL; ReturnValue = -4; libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); @@ -233,7 +232,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ReturnValue = -4; goto int_in_end_print; } - int transfered = 0; if(libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 0 ) == 0) { @@ -251,7 +249,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) int_in_end_print: - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%p) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; @@ -333,11 +331,11 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { int OffsetBuffer = BufferOut; int OffsetStart = 0; - int OffsetDevice = 0; - int d, c,ic,i,e; /* config, interface container, interface, endpoint */ + //int OffsetDevice = 0; + int d,c,ic,i,e; /* config, interface container, interface, endpoint */ libusb_device **list; - libusb_device *found = NULL; + //libusb_device *found = NULL; ssize_t cnt = libusb_get_device_list(NULL, &list); for (d = 0; d < cnt; d++) @@ -346,17 +344,18 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) struct libusb_device_descriptor desc; int dRet = libusb_get_device_descriptor (device, &desc); - DEBUG_LOG(WII_IPC_HID, "Vendor: %d Product: %X Devnum: %X",desc.idVendor, desc.idProduct); + u32 devNum = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); + + DEBUG_LOG(WII_IPC_HID, "Vendor: %d Product: %X Devnum: %X",desc.idVendor, desc.idProduct, devNum); if (desc.idVendor != 0x21A4) continue; - u32 devNum = 0;//(libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d, Error: %d",desc.idVendor, desc.idProduct, devNum, dRet); OffsetStart = OffsetBuffer; OffsetBuffer += 4; // skip length for now, fill at end - Memory::Write_U32(devNum, OffsetBuffer); //write device num + Memory::Write_U32( 0/*devNum*/, OffsetBuffer); //write device num OffsetBuffer += 4; WiiHIDDeviceDescriptor wii_device; @@ -413,7 +412,7 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) } - libusb_free_device_list(list, TRUE); + libusb_free_device_list(list, 1); Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices @@ -439,6 +438,8 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) libusb_device_handle *handle = NULL; ssize_t cnt; + devNum = 0x204; + if (open_devices.find(devNum) != open_devices.end()) return open_devices[devNum]; @@ -449,13 +450,22 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) for (i = 0; i < cnt; i++) { libusb_device *device = list[i]; - - if (libusb_open(device, &handle)) - break; + int ret = libusb_open(device, &handle); + if (ret) + { + + DEBUG_LOG(WII_IPC_HID, "Failed to open device with error = %d", ret); + continue; + } + //struct libusb_device_descriptor desc; u32 deviceID = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); + DEBUG_LOG(WII_IPC_HID, "Testing device id == %d", deviceID); if (deviceID == devNum) + { open_devices[devNum] = handle; + break; + } else { libusb_close(handle); @@ -463,8 +473,8 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) } } - libusb_free_device_list(list, TRUE); + libusb_free_device_list(list, 1); return handle; -} \ No newline at end of file +} diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index be7e1b5926..7f70324772 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -21,7 +21,7 @@ #include "WII_IPC_HLE_Device.h" #include -/* Connection timed out */ #define ETRANSFER_TIMEDOUT -116 +/* Connection timed out */ class CWII_IPC_HLE_Device_hid : public IWII_IPC_HLE_Device { @@ -45,8 +45,8 @@ private: IOCTL_HID_SET_SUSPEND = 0x01, IOCTL_HID_CONTROL = 0x02, IOCTL_HID_INTERRUPT_IN = 0x03, - IOCTL_HID_INTERRUPT_OUT = 0x04, - IOCTL_HID_GET_US_STRING = 0x05, + IOCTL_HID_INTERRUPT_OUT = 0x04, + IOCTL_HID_GET_US_STRING = 0x05, IOCTL_HID_OPEN = 0x06, IOCTL_HID_SHUTDOWN = 0x07, IOCTL_HID_CANCEL_INTERRUPT = 0x08, @@ -113,7 +113,7 @@ private: } WiiHIDEndpointDescriptor; - void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize); + void FillOutDevices(u32 BufferOut, u32 BufferOutSize); void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, const struct libusb_device_descriptor *src); void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, const struct libusb_config_descriptor *src); From bc385cbdd8e0c3eabdadee22f567f2f141b1fb17 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Fri, 28 Dec 2012 01:26:20 +1300 Subject: [PATCH 11/27] libusb 1.0 hacky working on linux. --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 250ff7021e..af66f2a307 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -216,6 +216,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { int transfered = 0; + int checkme = 34; + int worked = 35; u32 dev_num = Memory::Read_U32(BufferIn+0x10); u32 endpoint = Memory::Read_U32(BufferIn+0x14); u32 length = Memory::Read_U32(BufferIn+0x18); @@ -232,8 +234,26 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ReturnValue = -4; goto int_in_end_print; } + if (libusb_kernel_driver_active(dev_handle, 0) == 1) + { + DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); + worked = libusb_detach_kernel_driver(dev_handle, 0); + if (worked) + { + DEBUG_LOG(WII_IPC_HID, "Attempt to detach interface failed with error: %d", worked); + } + } - if(libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 0 ) == 0) + worked = libusb_claim_interface(dev_handle, 0); + if (worked) + { + DEBUG_LOG(WII_IPC_HID, "Attempt to claim interface failed with error: %d", worked); + ReturnValue = -4; + goto int_in_end_print; + } + + checkme = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 3000 ); + if(checkme == 0) { ReturnValue = transfered; } @@ -249,8 +269,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) int_in_end_print: - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i), err = %d", + Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize, checkme); break; } @@ -438,10 +458,13 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) libusb_device_handle *handle = NULL; ssize_t cnt; - devNum = 0x204; + devNum = 0x304; if (open_devices.find(devNum) != open_devices.end()) + { + DEBUG_LOG(WII_IPC_HID, "Found it... "); return open_devices[devNum]; + } cnt = libusb_get_device_list(NULL, &list); From de0798f4f7fb0d4010567351e34f658ab51348ef Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Sat, 29 Dec 2012 17:46:44 +1300 Subject: [PATCH 12/27] More stable hackyness. :) --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 88 +++++++++++-------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index af66f2a307..50c70e9c6a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -177,6 +177,9 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ERROR CODES: -4 Cant find device specified */ + int ret = -1; + int worked = 32; + u32 dev_num = Memory::Read_U32(BufferIn+0x10); u8 requestType = Memory::Read_U8(BufferIn+0x14); u8 request = Memory::Read_U8(BufferIn+0x15); @@ -185,8 +188,10 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u16 size = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + ReturnValue = -4; + + //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + // requestType, request, BufferIn, BufferInSize, BufferOut, BufferOutSize); libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); @@ -200,10 +205,30 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) value, index, (char*)Memory::GetPointer(data), size, 0); */ - ReturnValue = libusb_control_transfer (dev_handle, requestType, request, value, index, (unsigned char*)Memory::GetPointer(data), size, 0); - if(ReturnValue>=0) + + if (libusb_kernel_driver_active(dev_handle, 0) == 1) { - ReturnValue += sizeof(libusb_control_setup); + //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); + worked = libusb_detach_kernel_driver(dev_handle, 0); + if (worked) + { + //DEBUG_LOG(WII_IPC_HID, "Attempt to detach interface failed with error: %d", worked); + } + } + + worked = libusb_claim_interface(dev_handle, 0); + if (worked) + { + DEBUG_LOG(WII_IPC_HID, "Attempt to claim interface failed with error: %d", worked); + ReturnValue = -4; + break; + } + + ret = libusb_control_transfer (dev_handle, requestType, request, value, index, (unsigned char*)Memory::GetPointer(data), size, 0); + if(ret>=0) + { + ret += sizeof(libusb_control_setup); + ReturnValue = ret; } DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", @@ -223,8 +248,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u32 length = Memory::Read_U32(BufferIn+0x18); u32 data = Memory::Read_U32(BufferIn+0x1C); - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + // Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, BufferIn, BufferInSize, BufferOut, BufferOutSize); ReturnValue = -4; libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); @@ -236,23 +261,23 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) } if (libusb_kernel_driver_active(dev_handle, 0) == 1) { - DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); + //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); worked = libusb_detach_kernel_driver(dev_handle, 0); if (worked) { - DEBUG_LOG(WII_IPC_HID, "Attempt to detach interface failed with error: %d", worked); + //DEBUG_LOG(WII_IPC_HID, "Attempt to detach interface failed with error: %d", worked); } } worked = libusb_claim_interface(dev_handle, 0); if (worked) { - DEBUG_LOG(WII_IPC_HID, "Attempt to claim interface failed with error: %d", worked); + //DEBUG_LOG(WII_IPC_HID, "Attempt to claim interface failed with error: %d", worked); ReturnValue = -4; goto int_in_end_print; } - checkme = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 3000 ); + checkme = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 20 ); if(checkme == 0) { ReturnValue = transfered; @@ -295,25 +320,16 @@ bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) u32 ReturnValue = 0; SIOCtlVBuffer CommandBuffer(_CommandAddress); - switch (CommandBuffer.Parameter) - { - case 0x1337: - break; - default: - { - DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); - DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); - DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); - DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); - DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); - DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); - DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); - #if defined(_DEBUG) || defined(DEBUGFAST) - DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); - #endif - } - break; - } + DEBUG_LOG(WII_IPC_HID, "%s - IOCtlV:", GetDeviceName().c_str()); + DEBUG_LOG(WII_IPC_HID, " Parameter: 0x%x", CommandBuffer.Parameter); + DEBUG_LOG(WII_IPC_HID, " NumberIn: 0x%08x", CommandBuffer.NumberInBuffer); + DEBUG_LOG(WII_IPC_HID, " NumberOut: 0x%08x", CommandBuffer.NumberPayloadBuffer); + DEBUG_LOG(WII_IPC_HID, " BufferVector: 0x%08x", CommandBuffer.BufferVector); + DEBUG_LOG(WII_IPC_HID, " PayloadAddr: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Address); + DEBUG_LOG(WII_IPC_HID, " PayloadSize: 0x%08x", CommandBuffer.PayloadBuffer[0].m_Size); + #if defined(_DEBUG) || defined(DEBUGFAST) + DumpAsync(CommandBuffer.BufferVector, CommandBuffer.NumberInBuffer, CommandBuffer.NumberPayloadBuffer); + #endif Memory::Write_U32(ReturnValue, _CommandAddress + 4); return true; @@ -367,15 +383,15 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) u32 devNum = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); DEBUG_LOG(WII_IPC_HID, "Vendor: %d Product: %X Devnum: %X",desc.idVendor, desc.idProduct, devNum); - if (desc.idVendor != 0x21A4) - continue; + //if (desc.idVendor != 0x21A4) + // continue; DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d, Error: %d",desc.idVendor, desc.idProduct, devNum, dRet); OffsetStart = OffsetBuffer; OffsetBuffer += 4; // skip length for now, fill at end - Memory::Write_U32( 0/*devNum*/, OffsetBuffer); //write device num + Memory::Write_U32( d /*devNum*/, OffsetBuffer); //write device num OffsetBuffer += 4; WiiHIDDeviceDescriptor wii_device; @@ -458,11 +474,8 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) libusb_device_handle *handle = NULL; ssize_t cnt; - devNum = 0x304; - if (open_devices.find(devNum) != open_devices.end()) { - DEBUG_LOG(WII_IPC_HID, "Found it... "); return open_devices[devNum]; } @@ -483,8 +496,7 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) //struct libusb_device_descriptor desc; u32 deviceID = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); - DEBUG_LOG(WII_IPC_HID, "Testing device id == %d", deviceID); - if (deviceID == devNum) + if (i == devNum) { open_devices[devNum] = handle; break; From 3b459fb500b1a87532cc33b1c38363591c3b667f Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Sun, 30 Dec 2012 16:57:37 +1300 Subject: [PATCH 13/27] Add better FindLibUsb support for MacOSX. Make LibUSB optional, don't compile HID support if it doesn't exist. A lot less hacky. Works quite well on Ubuntu now. --- CMakeLists.txt | 6 +- CMakeTests/FindLibUSB.cmake | 1 + Source/Core/Core/CMakeLists.txt | 8 +- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 9 +- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 138 +++++++++--------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 3 + 6 files changed, 85 insertions(+), 80 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d10ed2585..a2908d27b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -427,11 +427,11 @@ else(SDL2_FOUND) endif(SDL_FOUND) endif(SDL2_FOUND) -if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - include(FindLibUSB OPTIONAL) -endif() +include(FindLibUSB OPTIONAL) if(LIBUSB_FOUND) message("Using shared LibUSB") + + add_definitions(-D__LIBUSB__) include_directories(${LIBUSB_INCLUDE_DIR}) else(LIBUSB_FOUND) diff --git a/CMakeTests/FindLibUSB.cmake b/CMakeTests/FindLibUSB.cmake index 5d7af82e7a..789e6f8416 100644 --- a/CMakeTests/FindLibUSB.cmake +++ b/CMakeTests/FindLibUSB.cmake @@ -16,6 +16,7 @@ if (NOT LIBUSB_FOUND) ${LIBUSB_PKG_INCLUDE_DIRS} /usr/include/libusb-1.0 /usr/include + /usr/local/include/libusb-1.0 /usr/local/include ) diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 20c611544a..3541e33713 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -70,8 +70,8 @@ set(SRCS Src/ActionReplay.cpp Src/HW/CPU.cpp Src/HW/DSP.cpp Src/HW/DSPHLE/UCodes/UCode_AX.cpp - Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp - Src/HW/DSPHLE/UCodes/UCode_NewAXWii.cpp + Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp + Src/HW/DSPHLE/UCodes/UCode_NewAXWii.cpp Src/HW/DSPHLE/UCodes/UCode_CARD.cpp Src/HW/DSPHLE/UCodes/UCode_InitAudioSystem.cpp Src/HW/DSPHLE/UCodes/UCode_ROM.cpp @@ -138,7 +138,6 @@ set(SRCS Src/ActionReplay.cpp Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp - Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp Src/IPC_HLE/WII_IPC_HLE_Device_usb.cpp @@ -202,7 +201,8 @@ endif() if(LIBUSB_FOUND) # Using shared LibUSB - set(LIBS ${LIBS} ${LIBUSB_LIBRARIES}) + set(LIBS ${LIBS} ${LIBUSB_LIBRARIES}) + set(SRCS ${SRCS} Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp) endif(LIBUSB_FOUND) if(WIN32) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 1c9a51bcbd..59f5a638cf 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -50,7 +50,10 @@ They will also generate a true or false return for UpdateInterrupts() in WII_IPC #include "WII_IPC_HLE_Device_usb.h" #include "WII_IPC_HLE_Device_usb_kbd.h" #include "WII_IPC_HLE_Device_sdio_slot0.h" -#include "WII_IPC_HLE_Device_hid.h" + +#ifdef __LIBUSB__ + #include "WII_IPC_HLE_Device_hid.h" +#endif #include "FileUtil.h" // For Copy #include "../ConfigManager.h" @@ -114,7 +117,9 @@ void Init() g_DeviceMap[i] = new CWII_IPC_HLE_Device_usb_kbd(i, std::string("/dev/usb/kbd")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_sdio_slot0(i, std::string("/dev/sdio/slot0")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/sdio/slot1")); i++; - g_DeviceMap[i] = new CWII_IPC_HLE_Device_hid(i, std::string("/dev/usb/hid")); i++; + #ifdef __LIBUSB__ + g_DeviceMap[i] = new CWII_IPC_HLE_Device_hid(i, std::string("/dev/usb/hid")); i++; + #endif g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/usb/oh1")); i++; g_DeviceMap[i] = new IWII_IPC_HLE_Device(i, std::string("_Unimplemented_Device_")); i++; } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 50c70e9c6a..b214c13f63 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -20,26 +20,23 @@ #include "../HW/WII_IPC.h" #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device_hid.h" -#include "libusb.h" #include "errno.h" #include CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { - - //usb_init(); /* initialize the library */ libusb_init(NULL); } CWII_IPC_HLE_Device_hid::~CWII_IPC_HLE_Device_hid() { - /*for ( std::map::const_iterator iter = open_devices.begin(); iter != open_devices.end(); ++iter ) + for ( std::map::const_iterator iter = open_devices.begin(); iter != open_devices.end(); ++iter ) { - usb_close(iter->second); + libusb_close(iter->second); } open_devices.clear(); - */ + libusb_exit(NULL); } @@ -146,6 +143,19 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) BufferIn, BufferInSize, BufferOut, BufferOutSize); // not actually implemented in IOS ReturnValue = 0; + if (replyAddress != 0){ + FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); + WII_IPC_HLE_Interface::EnqReply(replyAddress); + replyAddress = 0; + hasRun = false; + } + break; + } + case IOCTL_HID_CANCEL_INTERRUPT: + { + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Cancel Interrupt) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + BufferIn, BufferInSize, BufferOut, BufferOutSize); + ReturnValue = 0; if (replyAddress != 0){ FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); @@ -153,22 +163,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) replyAddress = 0; hasRun = false; } - - break; - } - case IOCTL_HID_CANCEL_INTERRUPT: - { - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Cancel Interrupt) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - BufferIn, BufferInSize, BufferOut, BufferOutSize); - - if (replyAddress != 0){ - FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); - WII_IPC_HLE_Interface::EnqReply(replyAddress); - replyAddress = 0; - hasRun = false; - } - - ReturnValue = 0; + break; } case IOCTL_HID_CONTROL: @@ -178,7 +173,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) -4 Cant find device specified */ int ret = -1; - int worked = 32; u32 dev_num = Memory::Read_U32(BufferIn+0x10); u8 requestType = Memory::Read_U8(BufferIn+0x14); @@ -188,8 +182,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u16 size = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); - ReturnValue = -4; - //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", // requestType, request, BufferIn, BufferInSize, BufferOut, BufferOutSize); @@ -197,29 +189,14 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) if (dev_handle == NULL) { + DEBUG_LOG(WII_IPC_HID, "Could not find handle: %X", dev_num); ReturnValue = -4; break; } - - /*ReturnValue = usb_control_msg(dev_handle, requesttype, request, - value, index, (char*)Memory::GetPointer(data), size, - 0); - */ - if (libusb_kernel_driver_active(dev_handle, 0) == 1) + if (!ClaimDevice(dev_handle)) { - //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); - worked = libusb_detach_kernel_driver(dev_handle, 0); - if (worked) - { - //DEBUG_LOG(WII_IPC_HID, "Attempt to detach interface failed with error: %d", worked); - } - } - - worked = libusb_claim_interface(dev_handle, 0); - if (worked) - { - DEBUG_LOG(WII_IPC_HID, "Attempt to claim interface failed with error: %d", worked); + DEBUG_LOG(WII_IPC_HID, "Could not claim the device for handle: %X", dev_num); ReturnValue = -4; break; } @@ -230,6 +207,10 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ret += sizeof(libusb_control_setup); ReturnValue = ret; } + else + { + ReturnValue = -4; + } DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); @@ -241,8 +222,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { int transfered = 0; - int checkme = 34; - int worked = 35; + int ret; u32 dev_num = Memory::Read_U32(BufferIn+0x10); u32 endpoint = Memory::Read_U32(BufferIn+0x14); u32 length = Memory::Read_U32(BufferIn+0x18); @@ -250,38 +230,31 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u32 data = Memory::Read_U32(BufferIn+0x1C); //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", // Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, BufferIn, BufferInSize, BufferOut, BufferOutSize); - ReturnValue = -4; - libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); if (dev_handle == NULL) { + DEBUG_LOG(WII_IPC_HID, "Could not find handle: %X", dev_num); ReturnValue = -4; - goto int_in_end_print; - } - if (libusb_kernel_driver_active(dev_handle, 0) == 1) - { - //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); - worked = libusb_detach_kernel_driver(dev_handle, 0); - if (worked) - { - //DEBUG_LOG(WII_IPC_HID, "Attempt to detach interface failed with error: %d", worked); - } + break; } - worked = libusb_claim_interface(dev_handle, 0); - if (worked) + if (!ClaimDevice(dev_handle)) { - //DEBUG_LOG(WII_IPC_HID, "Attempt to claim interface failed with error: %d", worked); + DEBUG_LOG(WII_IPC_HID, "Could not claim the device for handle: %X", dev_num); ReturnValue = -4; - goto int_in_end_print; + break; } - checkme = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 20 ); - if(checkme == 0) + ret = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 20 ); + if(ret == 0) { ReturnValue = transfered; } + else + { + ReturnValue = -4; + } /* _hidevent ev; @@ -291,11 +264,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) event_list.push_back(ev); return false; */ - - - int_in_end_print: - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i), err = %d", - Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize, checkme); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } @@ -313,6 +283,33 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) } +bool CWII_IPC_HLE_Device_hid::ClaimDevice(libusb_device_handle * dev) +{ + int ret = 0; + if ((ret = libusb_kernel_driver_active(dev, 0)) == 1) + { + //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); + if ((ret = libusb_detach_kernel_driver(dev, 0))) + { + DEBUG_LOG(WII_IPC_HID, "libusb_detach_kernel_driver failed with error: %d", ret); + return false; + } + } + else if (ret != 0) + { + DEBUG_LOG(WII_IPC_HID, "libusb_kernel_driver_active error ret = %d", ret); + return false; + } + + if ((ret = libusb_claim_interface(dev, 0))) + { + DEBUG_LOG(WII_IPC_HID, "libusb_claim_interface failed with error: %d", ret); + return false; + } + + return true; +} + bool CWII_IPC_HLE_Device_hid::IOCtlV(u32 _CommandAddress) { @@ -469,7 +466,7 @@ int CWII_IPC_HLE_Device_hid::Align(int num, int alignment) libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) { - int i; + u32 i; libusb_device **list; libusb_device_handle *handle = NULL; ssize_t cnt; @@ -494,8 +491,7 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) continue; } - //struct libusb_device_descriptor desc; - u32 deviceID = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); + // u32 deviceID = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); if (i == devNum) { open_devices[devNum] = handle; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 7f70324772..c776d4bb7a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -19,6 +19,7 @@ #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device.h" +#include "libusb.h" #include /* Connection timed out */ @@ -114,6 +115,8 @@ private: void FillOutDevices(u32 BufferOut, u32 BufferOutSize); + + bool ClaimDevice(libusb_device_handle * dev); void ConvertDeviceToWii(WiiHIDDeviceDescriptor *dest, const struct libusb_device_descriptor *src); void ConvertConfigToWii(WiiHIDConfigDescriptor *dest, const struct libusb_config_descriptor *src); From cc4d491d6c65d244bd41f707cf45057f7b23d634 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Sun, 30 Dec 2012 17:48:22 +1300 Subject: [PATCH 14/27] Add ability to enable GPROF in cmake. --- CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2908d27b6..bb0989cf89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -208,9 +208,16 @@ if(NOT CMAKE_BUILD_TYPE) "Build type (Release/Debug/RelWithDebInfo/MinSizeRe)" FORCE) endif(NOT CMAKE_BUILD_TYPE) + if(CMAKE_BUILD_TYPE STREQUAL Debug) add_definitions(-D_DEBUG -ggdb) set(wxWidgets_USE_DEBUG ON CACHE BOOL "Use wxWidgets Debugging") + + option(ENABLE_GPROF "Enable gprof profiling (must be using Debug build)" OFF) + if(ENABLE_GPROF) + add_definitions(-pg) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") + endif() endif(CMAKE_BUILD_TYPE STREQUAL Debug) if(CMAKE_BUILD_TYPE STREQUAL Release) From 35466fb54f95b78ffabfde5ade398f54de6f6b91 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Sun, 30 Dec 2012 17:48:33 +1300 Subject: [PATCH 15/27] Remove saving of debug file. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index b214c13f63..21b58d2d91 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -449,13 +449,6 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices - char file[0x50]; - snprintf(file, 0x50, "device_list.bin"); - FILE* test = fopen (file, "wb"); - fwrite((char*)Memory::GetPointer(BufferOut), 1, (OffsetBuffer - BufferOut)+4, test); - - fclose(test); - } int CWII_IPC_HLE_Device_hid::Align(int num, int alignment) From 510e08370ef7491c6106453248cee8e93771692e Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 01:08:41 +1300 Subject: [PATCH 16/27] Now supports hotplugging. Much more stable but slow. Still missing proper cleanup of old handles. --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 174 +++++++++++++----- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 1 + 2 files changed, 133 insertions(+), 42 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 21b58d2d91..9108a971a4 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -23,9 +23,13 @@ #include "errno.h" #include +#define MAX_DEVICE_DEVNUM 256 +static u64 hidDeviceAliases[MAX_DEVICE_DEVNUM]; + CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { + memset(hidDeviceAliases, 0, sizeof(hidDeviceAliases)); libusb_init(NULL); } @@ -58,9 +62,36 @@ bool CWII_IPC_HLE_Device_hid::Close(u32 _CommandAddress, bool _bForce) return true; } +static u32 replyAddress = 0; +static bool hasRun = false; + u32 CWII_IPC_HLE_Device_hid::Update() { + static u16 timeToFill = 0; u32 work_done = 0; + + if (timeToFill == 0) + { + if (replyAddress != 0){ + FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); + + Memory::Write_U32(8, replyAddress); + // IOS seems to write back the command that was responded to + Memory::Write_U32(/*COMMAND_IOCTL*/ 6, replyAddress + 8); + + // Return value + Memory::Write_U32(0, replyAddress + 4); + + WII_IPC_HLE_Interface::EnqReply(replyAddress); + replyAddress = 0; + hasRun = false; + } + } + + timeToFill+=2; + + work_done = 1; + //int ret = -4; //timeval tv; @@ -84,7 +115,15 @@ u32 CWII_IPC_HLE_Device_hid::Update() Memory::Write_U32(ret, ev->enq_address + 4); WII_IPC_HLE_Interface::EnqReply(ev->enq_address); work_done = ev_finished = true; - } +} + +if (replyAddress != 0){ + FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); + WII_IPC_HLE_Interface::EnqReply(replyAddress); + replyAddress = 0; + hasRun = false; +} + break; } @@ -100,8 +139,6 @@ u32 CWII_IPC_HLE_Device_hid::Update() bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { - static u32 replyAddress = 0; - static bool hasRun = false; u32 Parameter = Memory::Read_U32(_CommandAddress + 0xC); u32 BufferIn = Memory::Read_U32(_CommandAddress + 0x10); u32 BufferInSize = Memory::Read_U32(_CommandAddress + 0x14); @@ -143,12 +180,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) BufferIn, BufferInSize, BufferOut, BufferOutSize); // not actually implemented in IOS ReturnValue = 0; - if (replyAddress != 0){ - FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); - WII_IPC_HLE_Interface::EnqReply(replyAddress); - replyAddress = 0; - hasRun = false; - } break; } case IOCTL_HID_CANCEL_INTERRUPT: @@ -156,14 +187,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Cancel Interrupt) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", BufferIn, BufferInSize, BufferOut, BufferOutSize); ReturnValue = 0; - - if (replyAddress != 0){ - FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); - WII_IPC_HLE_Interface::EnqReply(replyAddress); - replyAddress = 0; - hasRun = false; - } - break; } case IOCTL_HID_CONTROL: @@ -212,8 +235,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ReturnValue = -4; } - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + // requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } @@ -246,7 +269,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) break; } - ret = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 20 ); + ret = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 40 ); if(ret == 0) { ReturnValue = transfered; @@ -264,8 +287,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) event_list.push_back(ev); return false; */ - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + // Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } @@ -289,13 +312,13 @@ bool CWII_IPC_HLE_Device_hid::ClaimDevice(libusb_device_handle * dev) if ((ret = libusb_kernel_driver_active(dev, 0)) == 1) { //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); - if ((ret = libusb_detach_kernel_driver(dev, 0))) + if ((ret = libusb_detach_kernel_driver(dev, 0)) && ret != LIBUSB_ERROR_NOT_SUPPORTED) { DEBUG_LOG(WII_IPC_HID, "libusb_detach_kernel_driver failed with error: %d", ret); return false; } } - else if (ret != 0) + else if (ret != 0 && ret != LIBUSB_ERROR_NOT_SUPPORTED) { DEBUG_LOG(WII_IPC_HID, "libusb_kernel_driver_active error ret = %d", ret); return false; @@ -370,25 +393,31 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) libusb_device **list; //libusb_device *found = NULL; ssize_t cnt = libusb_get_device_list(NULL, &list); - + DEBUG_LOG(WII_IPC_HID, "Hello plane???? %ld", cnt); for (d = 0; d < cnt; d++) { libusb_device *device = list[d]; struct libusb_device_descriptor desc; int dRet = libusb_get_device_descriptor (device, &desc); - u32 devNum = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); + //u32 devNum = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); - DEBUG_LOG(WII_IPC_HID, "Vendor: %d Product: %X Devnum: %X",desc.idVendor, desc.idProduct, devNum); - //if (desc.idVendor != 0x21A4) - // continue; + int devNum = GetAvaiableDevNum(desc.idVendor, + desc.idProduct, + libusb_get_bus_number (device), + libusb_get_device_address (device)); + if (devNum < 0 ) + { + DEBUG_LOG(WII_IPC_HID, "Too many snakes on thsi motherfucking plane."); + // too many devices to handle. + continue; + } DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d, Error: %d",desc.idVendor, desc.idProduct, devNum, dRet); - OffsetStart = OffsetBuffer; OffsetBuffer += 4; // skip length for now, fill at end - Memory::Write_U32( d /*devNum*/, OffsetBuffer); //write device num + Memory::Write_U32( devNum , OffsetBuffer); //write device num OffsetBuffer += 4; WiiHIDDeviceDescriptor wii_device; @@ -464,9 +493,21 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) libusb_device_handle *handle = NULL; ssize_t cnt; + if(devNum >= MAX_DEVICE_DEVNUM) + return NULL; + if (open_devices.find(devNum) != open_devices.end()) { - return open_devices[devNum]; + handle = open_devices[devNum]; + if(libusb_kernel_driver_active(handle, 0) != LIBUSB_ERROR_NO_DEVICE) + { + return handle; + } + else + { + libusb_close(handle); + open_devices.erase(devNum); + } } cnt = libusb_get_device_list(NULL, &list); @@ -476,23 +517,46 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) for (i = 0; i < cnt; i++) { libusb_device *device = list[i]; - int ret = libusb_open(device, &handle); - if (ret) + struct libusb_device_descriptor desc; + int dRet = libusb_get_device_descriptor (device, &desc); + u8 bus = libusb_get_bus_number (device); + u8 port = libusb_get_device_address (device); + u64 unique_id = ((u64)desc.idVendor << 32) | (desc.idProduct << 16) | (bus << 8) | port; + if (hidDeviceAliases[devNum] == unique_id) { + int ret = libusb_open(device, &handle); + if (ret) + { + if (ret == LIBUSB_ERROR_ACCESS) + { + if( dRet ) + { + DEBUG_LOG(WII_IPC_HID, "Dolphin does not have access to this device: Bus %03d Device %03d: ID ????:???? (couldn't get id).", + bus, + port + ); + } + else{ + DEBUG_LOG(WII_IPC_HID, "Dolphin does not have access to this device: Bus %03d Device %03d: ID %04X:%04X.", + bus, + port, + desc.idVendor, + desc.idProduct + ); + } + } + else + { + DEBUG_LOG(WII_IPC_HID, "Failed to open device with error = %d", ret); + } + continue; + } - DEBUG_LOG(WII_IPC_HID, "Failed to open device with error = %d", ret); - continue; - } - - // u32 deviceID = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); - if (i == devNum) - { open_devices[devNum] = handle; break; } else { - libusb_close(handle); handle = NULL; } } @@ -502,3 +566,29 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) return handle; } + + +int CWII_IPC_HLE_Device_hid::GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port) +{ + int i; + int pos = -1; + u64 unique_id = ((u64)idVendor << 32) | (idProduct << 16) | (bus << 8) | port; + for (i=0; i< MAX_DEVICE_DEVNUM; i++) + { + u64 id = hidDeviceAliases[i]; + if(id == 0 && pos == -1) + { + pos = i; + } + else if (id == unique_id) + { + return i; + } + } + if(pos != -1) + { + hidDeviceAliases[pos] = unique_id; + return pos; + } + return -1; +} diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index c776d4bb7a..1ab9a95875 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -115,6 +115,7 @@ private: void FillOutDevices(u32 BufferOut, u32 BufferOutSize); + int GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port); bool ClaimDevice(libusb_device_handle * dev); From 5240d2877662af026e93c0f0e589482abba689ab Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 01:50:16 +1300 Subject: [PATCH 17/27] Small fixes. --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 9108a971a4..41f1a9976c 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -115,16 +115,7 @@ u32 CWII_IPC_HLE_Device_hid::Update() Memory::Write_U32(ret, ev->enq_address + 4); WII_IPC_HLE_Interface::EnqReply(ev->enq_address); work_done = ev_finished = true; -} - -if (replyAddress != 0){ - FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); - WII_IPC_HLE_Interface::EnqReply(replyAddress); - replyAddress = 0; - hasRun = false; -} - - + } break; } } @@ -235,8 +226,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ReturnValue = -4; } - //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - // requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } @@ -287,8 +278,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) event_list.push_back(ev); return false; */ - //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - // Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); break; } From 21fa664c2d9aac2277fdb8326babbe19dce8e226 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 03:51:34 +1300 Subject: [PATCH 18/27] Hopefully fix win32 build issues. --- Externals/libusb/include/libusb.h | 4 +- Externals/libusb/include/lusb0_usb.h | 427 ------------------ Externals/libusb/win32/libusb-1.0.lib | Bin 704170 -> 705064 bytes Externals/libusb/win32/libusb.lib | Bin 11974 -> 0 bytes Externals/libusb/x64/libusb-1.0.lib | Bin 734400 -> 558992 bytes Externals/libusb/x64/libusb.lib | Bin 11674 -> 0 bytes Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 6 +- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 1 + Source/VSProps/Dolphin.Win32.props | 4 +- Source/VSProps/Dolphin.x64.props | 4 +- 10 files changed, 11 insertions(+), 435 deletions(-) delete mode 100644 Externals/libusb/include/lusb0_usb.h delete mode 100644 Externals/libusb/win32/libusb.lib delete mode 100644 Externals/libusb/x64/libusb.lib diff --git a/Externals/libusb/include/libusb.h b/Externals/libusb/include/libusb.h index 044012bcd0..58b406f247 100644 --- a/Externals/libusb/include/libusb.h +++ b/Externals/libusb/include/libusb.h @@ -688,8 +688,8 @@ typedef struct libusb_context libusb_context; * Certain operations can be performed on a device, but in order to do any * I/O you will have to first obtain a device handle using libusb_open(). * - * Devices are reference counted with libusb_ref_device() and - * libusb_unref_device(), and are freed when the reference count reaches 0. + * Devices are reference counted with libusb_device_ref() and + * libusb_device_unref(), and are freed when the reference count reaches 0. * New devices presented by libusb_get_device_list() have a reference count of * 1, and libusb_free_device_list() can optionally decrease the reference count * on all devices in the list. libusb_open() adds another reference which is diff --git a/Externals/libusb/include/lusb0_usb.h b/Externals/libusb/include/lusb0_usb.h deleted file mode 100644 index b95fbf0a6d..0000000000 --- a/Externals/libusb/include/lusb0_usb.h +++ /dev/null @@ -1,427 +0,0 @@ -#ifndef __USB_H__ -#define __USB_H__ - -#include -#include - -/* - * 'interface' is defined somewhere in the Windows header files. This macro - * is deleted here to avoid conflicts and compile errors. - */ - -#ifdef interface -#undef interface -#endif - -/* - * PATH_MAX from limits.h can't be used on Windows if the dll and - * import libraries are build/used by different compilers - */ - -#define LIBUSB_PATH_MAX 512 - - -/* - * USB spec information - * - * This is all stuff grabbed from various USB specs and is pretty much - * not subject to change - */ - -/* - * Device and/or Interface Class codes - */ -#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ -#define USB_CLASS_AUDIO 1 -#define USB_CLASS_COMM 2 -#define USB_CLASS_HID 3 -#define USB_CLASS_PRINTER 7 -#define USB_CLASS_MASS_STORAGE 8 -#define USB_CLASS_HUB 9 -#define USB_CLASS_DATA 10 -#define USB_CLASS_VENDOR_SPEC 0xff - -/* - * Descriptor types - */ -#define USB_DT_DEVICE 0x01 -#define USB_DT_CONFIG 0x02 -#define USB_DT_STRING 0x03 -#define USB_DT_INTERFACE 0x04 -#define USB_DT_ENDPOINT 0x05 - -#define USB_DT_HID 0x21 -#define USB_DT_REPORT 0x22 -#define USB_DT_PHYSICAL 0x23 -#define USB_DT_HUB 0x29 - -/* - * Descriptor sizes per descriptor type - */ -#define USB_DT_DEVICE_SIZE 18 -#define USB_DT_CONFIG_SIZE 9 -#define USB_DT_INTERFACE_SIZE 9 -#define USB_DT_ENDPOINT_SIZE 7 -#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ -#define USB_DT_HUB_NONVAR_SIZE 7 - - -/* ensure byte-packed structures */ -#include - - -/* All standard descriptors have these 2 fields in common */ -struct usb_descriptor_header -{ - unsigned char bLength; - unsigned char bDescriptorType; -}; - -/* String descriptor */ -struct usb_string_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short wData[1]; -}; - -/* HID descriptor */ -struct usb_hid_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short bcdHID; - unsigned char bCountryCode; - unsigned char bNumDescriptors; -}; - -/* Endpoint descriptor */ -#define USB_MAXENDPOINTS 32 -struct usb_endpoint_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned char bEndpointAddress; - unsigned char bmAttributes; - unsigned short wMaxPacketSize; - unsigned char bInterval; - unsigned char bRefresh; - unsigned char bSynchAddress; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ -#define USB_ENDPOINT_DIR_MASK 0x80 - -#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */ -#define USB_ENDPOINT_TYPE_CONTROL 0 -#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1 -#define USB_ENDPOINT_TYPE_BULK 2 -#define USB_ENDPOINT_TYPE_INTERRUPT 3 - -/* Interface descriptor */ -#define USB_MAXINTERFACES 32 -struct usb_interface_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned char bInterfaceNumber; - unsigned char bAlternateSetting; - unsigned char bNumEndpoints; - unsigned char bInterfaceClass; - unsigned char bInterfaceSubClass; - unsigned char bInterfaceProtocol; - unsigned char iInterface; - - struct usb_endpoint_descriptor *endpoint; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -#define USB_MAXALTSETTING 128 /* Hard limit */ - -struct usb_interface -{ - struct usb_interface_descriptor *altsetting; - - int num_altsetting; -}; - -/* Configuration descriptor information.. */ -#define USB_MAXCONFIG 8 -struct usb_config_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short wTotalLength; - unsigned char bNumInterfaces; - unsigned char bConfigurationValue; - unsigned char iConfiguration; - unsigned char bmAttributes; - unsigned char MaxPower; - - struct usb_interface *interface; - - unsigned char *extra; /* Extra descriptors */ - int extralen; -}; - -/* Device descriptor */ -struct usb_device_descriptor -{ - unsigned char bLength; - unsigned char bDescriptorType; - unsigned short bcdUSB; - unsigned char bDeviceClass; - unsigned char bDeviceSubClass; - unsigned char bDeviceProtocol; - unsigned char bMaxPacketSize0; - unsigned short idVendor; - unsigned short idProduct; - unsigned short bcdDevice; - unsigned char iManufacturer; - unsigned char iProduct; - unsigned char iSerialNumber; - unsigned char bNumConfigurations; -}; - -struct usb_ctrl_setup -{ - unsigned char bRequestType; - unsigned char bRequest; - unsigned short wValue; - unsigned short wIndex; - unsigned short wLength; -}; - -/* - * Standard requests - */ -#define USB_REQ_GET_STATUS 0x00 -#define USB_REQ_CLEAR_FEATURE 0x01 -/* 0x02 is reserved */ -#define USB_REQ_SET_FEATURE 0x03 -/* 0x04 is reserved */ -#define USB_REQ_SET_ADDRESS 0x05 -#define USB_REQ_GET_DESCRIPTOR 0x06 -#define USB_REQ_SET_DESCRIPTOR 0x07 -#define USB_REQ_GET_CONFIGURATION 0x08 -#define USB_REQ_SET_CONFIGURATION 0x09 -#define USB_REQ_GET_INTERFACE 0x0A -#define USB_REQ_SET_INTERFACE 0x0B -#define USB_REQ_SYNCH_FRAME 0x0C - -#define USB_TYPE_STANDARD (0x00 << 5) -#define USB_TYPE_CLASS (0x01 << 5) -#define USB_TYPE_VENDOR (0x02 << 5) -#define USB_TYPE_RESERVED (0x03 << 5) - -#define USB_RECIP_DEVICE 0x00 -#define USB_RECIP_INTERFACE 0x01 -#define USB_RECIP_ENDPOINT 0x02 -#define USB_RECIP_OTHER 0x03 - -/* - * Various libusb API related stuff - */ - -#define USB_ENDPOINT_IN 0x80 -#define USB_ENDPOINT_OUT 0x00 - -/* Error codes */ -#define USB_ERROR_BEGIN 500000 - -/* - * This is supposed to look weird. This file is generated from autoconf - * and I didn't want to make this too complicated. - */ -#define USB_LE16_TO_CPU(x) - -/* - * Device reset types for usb_reset_ex. - * http://msdn.microsoft.com/en-us/library/ff537269%28VS.85%29.aspx - * http://msdn.microsoft.com/en-us/library/ff537243%28v=vs.85%29.aspx - */ -#define USB_RESET_TYPE_RESET_PORT (1 << 0) -#define USB_RESET_TYPE_CYCLE_PORT (1 << 1) -#define USB_RESET_TYPE_FULL_RESET (USB_RESET_TYPE_CYCLE_PORT | USB_RESET_TYPE_RESET_PORT) - - -/* Data types */ -/* struct usb_device; */ -/* struct usb_bus; */ - -struct usb_device -{ - struct usb_device *next, *prev; - - char filename[LIBUSB_PATH_MAX]; - - struct usb_bus *bus; - - struct usb_device_descriptor descriptor; - struct usb_config_descriptor *config; - - void *dev; /* Darwin support */ - - unsigned char devnum; - - unsigned char num_children; - struct usb_device **children; -}; - -struct usb_bus -{ - struct usb_bus *next, *prev; - - char dirname[LIBUSB_PATH_MAX]; - - struct usb_device *devices; - unsigned long location; - - struct usb_device *root_dev; -}; - -/* Version information, Windows specific */ -struct usb_version -{ - struct - { - int major; - int minor; - int micro; - int nano; - } dll; - struct - { - int major; - int minor; - int micro; - int nano; - } driver; -}; - - -struct usb_dev_handle; -typedef struct usb_dev_handle usb_dev_handle; - -/* Variables */ -#ifndef __USB_C__ -#define usb_busses usb_get_busses() -#endif - - - -#include - - -#ifdef __cplusplus -extern "C" -{ -#endif - - /* Function prototypes */ - - /* usb.c */ - usb_dev_handle *usb_open(struct usb_device *dev); - int usb_close(usb_dev_handle *dev); - int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf, - size_t buflen); - int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf, - size_t buflen); - - /* descriptors.c */ - int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep, - unsigned char type, unsigned char index, - void *buf, int size); - int usb_get_descriptor(usb_dev_handle *udev, unsigned char type, - unsigned char index, void *buf, int size); - - /* .c */ - int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size, - int timeout); - int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, - int value, int index, char *bytes, int size, - int timeout); - int usb_set_configuration(usb_dev_handle *dev, int configuration); - int usb_claim_interface(usb_dev_handle *dev, int interface); - int usb_release_interface(usb_dev_handle *dev, int interface); - int usb_set_altinterface(usb_dev_handle *dev, int alternate); - int usb_resetep(usb_dev_handle *dev, unsigned int ep); - int usb_clear_halt(usb_dev_handle *dev, unsigned int ep); - int usb_reset(usb_dev_handle *dev); - int usb_reset_ex(usb_dev_handle *dev, unsigned int reset_type); - - char *usb_strerror(void); - - void usb_init(void); - void usb_set_debug(int level); - int usb_find_busses(void); - int usb_find_devices(void); - struct usb_device *usb_device(usb_dev_handle *dev); - struct usb_bus *usb_get_busses(void); - - - /* Windows specific functions */ - -#define LIBUSB_HAS_INSTALL_SERVICE_NP 1 - int usb_install_service_np(void); - void CALLBACK usb_install_service_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1 - int usb_uninstall_service_np(void); - void CALLBACK usb_uninstall_service_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_INSTALL_DRIVER_NP 1 - int usb_install_driver_np(const char *inf_file); - void CALLBACK usb_install_driver_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_TOUCH_INF_FILE_NP 1 - int usb_touch_inf_file_np(const char *inf_file); - void CALLBACK usb_touch_inf_file_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - -#define LIBUSB_HAS_INSTALL_NEEDS_RESTART_NP 1 - int usb_install_needs_restart_np(void); - -#define LIBUSB_HAS_INSTALL_NP 1 - int usb_install_npW(HWND hwnd, HINSTANCE instance, LPCWSTR cmd_line, int starg_arg); - int usb_install_npA(HWND hwnd, HINSTANCE instance, LPCSTR cmd_line, int starg_arg); - #define usb_install_np usb_install_npA - void CALLBACK usb_install_np_rundll(HWND wnd, HINSTANCE instance, - LPSTR cmd_line, int cmd_show); - - const struct usb_version *usb_get_version(void); - - int usb_isochronous_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep, int pktsize); - int usb_bulk_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep); - int usb_interrupt_setup_async(usb_dev_handle *dev, void **context, - unsigned char ep); - - int usb_submit_async(void *context, char *bytes, int size); - int usb_reap_async(void *context, int timeout); - int usb_reap_async_nocancel(void *context, int timeout); - int usb_cancel_async(void *context); - int usb_free_async(void **context); - - -#ifdef __cplusplus -} -#endif - -#endif /* __USB_H__ */ - diff --git a/Externals/libusb/win32/libusb-1.0.lib b/Externals/libusb/win32/libusb-1.0.lib index c9018f05dd9d557220d2f3383f5e090e89d69ba6..0434d5ebdeff1abf4ae15c3c93c8287edb1bc3e7 100644 GIT binary patch delta 201520 zcmeFacYIXE`agc=>~0bQq`)SmHU{g9QXB zRurxUS5Z-~*L!W)mELSvz^+)}_kPbgyD3uc{ro=P`~Bz3>%}uOPn&0+XU?2yXYnWr@ZV4HfAPQnf|Z9m z7i<6L|NH;{R}#^uvGzay@BbeN*BY}?```NS|KC#dKh)#@Uu((#%mA^`+%zo5{P0x0 z$4`VGYARZpv)6R}Tie3aiO@EVd3@vGJGwz@yAE9*pS#9i8)|Flt)@1?+4b%I}=6q{Qh{ z$IqWT-rKTSi)MMFsus*E?(>-5Z87HJO_$<&cT=-V=xK3Z!;5kZx+v9S9=RyfYYXP=Y&=y?iqM=pzrMC zb++z%xc?(}fB00Er{twR4pq+G(owpiwjCE|@TC>dblbt|=>>+iZ#!BYN*#^whh@wtX7?Tj$mb z7QQs9UcZm!i~XD_7pb;cA7_?X_l@pybfhaqFZivFM~%a}T@PWt`(R8<$T*J_E~24(M6lRg+;|E&iDPws0!XY_TCF041; z;3e!e&%K$W`!B^MSM+nH*I)NRy9ei|r;q;dY|6MPVXaQq+kHv7V~1P`4d}`KC6~4R z!#KL-%{gmdnZ9w$)_T({Pj-Msc~w-{iqc)ODrV!jDD+^qdhXK}gN_nl5+lDYVu4z8(+_sdo}<~Q%SUDH+R z`qepRlXu_Ka&{?t0HHR+@|7>n^1E#(Q~U zy&3j?SJy^G-#N;Vzc__kY&LIuzd$@>zW#nEvBRwOK~M3xS^Pnv>nX+7d2%!JpC7oz zOXeZqUQxKjsm3xMF#yq#Lrz=H~UWbYs_Pa&8Y3}bYvdm+EhS~f;N73AzexLyFgGUc^6K&1! z4s>%BD2cr-8k!>yx|jUH%iIn)#{BZ&U@_M0bf|z1JyhtrN%1bbCC@BA;xZ!+ zM~kIq!r{SUxq0Q`60zER;qV}_){H$e*!6_syuQq5Zam@^Pnu62=^$P-zXRnPMHv^- z(7f`fTl`^`9~~|JG>;thiAXcy*kD(?6KvekMS11}$K0a5`P{KS2xR#2!NPA|emvi` zNYS6k%s1aV?iO3kFOGK?51LI+40k=GD5F|tn~$7ui|yu%Cq}rQR=DOl9n8x%i?m`MS{cjKVdK zX=bK>;})mQh2IQ!eXDStuWTXxb0S=3om0``XEWv0AT(m;sgWYgeC<>#5pMo@s*S7o zQ#N8o^E`9bX}4>jDh-&{!hHI)8_(jKrw57AX8N}!u5pU;PLq6d^tW!;BvsnIB;Ry? z=XT9frGoN&bNF{|QD#p6u0$*__k6bwjlAsp!LFMWeba4u=E?8fqQX4;{czWMh3mMi zt9jQCZgIc)*bjqUA1YkBKhNy)quX`)XSD3G#(Cx{lt!x3*9iApD7ii-Epd8#Gwmn0 zD@>Ihh1ENLa*HPBbwBlX4YzRa_N#w(yGE$Opc$>qem}d#EOYG7y)h6x`14?~!TjUr zp04i|{i_ja=EPrOU8P@8`MKe#ru-!qgV2M&v=)=iL%+0fO;MCLZN90hvb zMMY+q>wk?ESDKIg+R8Ou;f`FEZo1CIx@M}JJSk%;f6Dv#a#2bGi_Y+ z6g|4N$4vPxR?Ih>{pNFBuW(&gG&Gn0=62nrN;{$&%WxgTR)zW5Z{5XhX5-(xi#6uV z-#dtP=0m@Cblt7kVpcaaqyBKa?pLKwN$sr8kaITL^^ig>N^Wm%2g7z%>Wk8!CH#*<#lrg*%ee){Hvm zb{(}!;24e42~~OkrAJXZtx8QXbp3J8Exun9EBcF{){GJTb#ZddqoT;=Jjo~w%xt@+ zFPa)I`v}qBRbL@j)iLC{Fks{5J|Vif5*2p#n8xxt7qB^Uj4pb*8d(bJHIolJfNdhb z)k0LgUY-Bb#;dT|N(zsE%)=Q#TE_R9nF;c$9 zWVEc~65Yf&S?oe-hFs+myZUlWU0%uJkYIrGwWN z$a{#*kUMLMUc!)PYKhBSEfg_!Nk?f$!kkvBxbpUV`B|iBevv6wdTo(he?^-W-@kIW z)eUXShTL(e{HoEqwodl1Ee47^<%Zg#SZtK1YKs!r(@JSUYDZb<3`6fx#T(LmR&lo~ zcD<>s%&ZFw-c`jHnst!#Q55gVC3QtV*Cz`5{DLm4e|E{VC=o4wmCd4{`-~!-MqGD9 zLHevJZk&}bzm0~pTP8${L9V#3=mEdGxm*vdD@hgiHn5oFFEJuo*2hE>kscKzdWep4 zQ;Znq>a5r{-rQN{$3oXFvN%=@5*2b2`=KdM$Ep@~sV4@Ahj%TnC)~RJw|(-4T46ac z%erV<`3KRO*65!xLW}Ak_qm0)OS_@KK9-LyD=Q|YS3G{ zRT4Q2`Ger?3SKeRC88F{o^c{0X3TI9x+H2^J*8x!d@fET$YpWDo$>`qlR+w%8i@Kh zRG=>a5K&9W);wjxND%jt!z0M?z{^5&SsX9Phlf0te2MNZ2- z*z(<4?-&vOW12oCOZ@g8CU9qu>RPk|vk{$>I6aymDnYJ^7n%NlO@hR`DF7n`#2jeG zR@5jswbP?|18P%ePMtSq;`HfrwF=>I(g9QJD+lbJfqX$4Kv!4q7_H0LyGM5TG6 z_M$;y9}*lS_=Mmag6{}^BXAx8sC&c@7|X1epfy1rL05tSsJ+$@8Zw;Va)L<&oJ;DQ zLh4r&EF`#rUAT0#4@ibb>4b1HjdsxmE;i2{?Pxdl2*rBa9j% z^AbdMyT@;ZE5kgRHm7%tE8@pAG4~)k2K^}LM?vq2-w{kPhGJut>!7TYvSJ}XIA@0XQiA0Ks|nT;L~WBPi6S}Xi`6h_P9sfgjINA zz%KUUy2>ajQ!dokQRCgTk>*8Ht%K&dHYWk4l6YXU}?jRqG&`n=CTLQrRb2q}1W);GlJS)J!=$S)}=Y+X2OoHD?tt#}RolsIIb& zLMeWUkv|UY`VCa<2XJr}u18e>YUAe5n>A)m>GaZZb1TQSFJshW-Tf)3Z`KlkO%`FN zScm1p3_7yIA%IH#QR}Jjs;M(4&bn%@6kZW0mdPF|qLZJ^tfhLzOUSvtp)i{yu4Jo^ z0XS%(H~|pxDS+!FK-kyJv8(DFe#8!X_ho{uwEsZ@t{Nh@Gsm@pzMFt61pN(ycL+W{ z5edizfgbg>j7$~H+b#Vk+O(t%z-Bc>UWLKY>L7HP&gFvs3xMMcbAKvP=O=Pjs%V0U z+?^^?+NkGCIanFk6f<<43yAQR%(WxvNYIU-2SL9=AbJZ^a+jh{jFEs`tPA@ zZYKa83SHrJgF}T<`QkLixmt1l%-k7*D1l{wW{#WIz;9{G(8~X1b+A^yLeVRosVyAO zR5Lyz4)vbf!AEveuus<=K(Ej>`t8i6vJGhj=>+QOP(EA8B40X!?-tceM_sm+uNL7~ zPpa}OA6I<{`_c>o_24RB4~5C%2?9Dngu!+_oPY}}o$INn;mnOD;37)r+DYeL?9Fj6+j6t(233=tl;B}ZuGH}=sq1Ch3#eN1K|Geyg|Cp{pEzM3`< zF|$b%C8~@-mrpqqA?^NfMhR> z4bIAujO#p|%R4=4wEQenWX9do6rAxzn${4UcJ-w)B};hY7I{G$15z8r-zLqFqd`jg zxEV-qgH!~P9ykD_R3D4FR&LG0gZK~mPL^=jQ8+KVa?~>UU6yE*`H$8Rj2?hqbu))X z)uAj=i*3CuY>2A2wFBFSV9TwndW&4#PM7Zk*sy$H8x0I%cgu2OuP1h92)jq_$rg>{ekAq@VCzx$ z687b&zsqykqIvpN9Y8t=603Fm!mgvnVUFe^>NVLvM>J|Uu_KtggEVahnG}6ta9|Np z``8q@r=3WYSLTSwhCg)%_o)kUf1$W%KZ==adOP8=L@Ej(^4MTa8+*PAepVu@)I)1-V3B@)k(>a)y$UD8py<^BF3oQ2P|)cWfY`cszz2JY7x{UXab-|wUWiT!rQig zKd=wvl>cRR88xhl(IJm<$Pj<0o!o}dx&5F=jg>odMU(79#Sqmon;#BA>oHI@wPGc+ z6zA3CtZz22A0`tUiI}c`4uZ%dTmX15h&m%NDr@Q1T!3#^T}@C_(8_7TSZZ2NO&gTD zE9L1%BGKHlv5s8c2&*eoZfGQO8&9E;hXGti034qJ=$|w91p$W=okNL;nnHO)Y?6tF zNXwywI7$$b5R?#<5SGNRa+D#mV>}aJ_t8*+y*gXiZCi zW3{M;@`=WxWlZNuz^(_@;%zE_YAhPZyhE&GOc2{zHg6)D#!Q?H>~vr)8}j92O+*7Z zB1hDh=}kps%=e@}8=@DG-a4jy3b3`t2BmsiQni|5Jr^|yETLz zCKohCqZ&^G_JO3gE3DNTYz<&W&TY0OH+|PtRK#5${*lrZhROV(`RgQ>pya0 z(>$?X;kAXcCV-y^&Jnl}m#{hnu>|o1sRTI$UV?T6UF2-9sP7-n{3!szy{CrUa?&dZ zZX;Mju#SM6Ogi_LbnYhU+(gp3ccgR2NPmIgbpmb^>F*G5b4cf&kj||jojXAK_XIx? z2<&g@&Xaz?aAvvHqsJ3)dq>Y9;FgZwgn-*PdOkrX0&d*s+^^A#2}Tl(CKyLBgMfQ8 zI(KArKf#Rzw-Br%xPw3f)YCUJyN%#Mf~YdNqM1mK`EUt*?!7YDZRg78f$h+JDX<-Z zE&qr!!&-PW?U|W11gY7s@}@N=P~$5~?E;z5Tx4W5S_uWWO~(=i;?DOnYKlcIl$SRb z%{=Q?gKsL=&3~dI-KkzRoT@j|bQ6+K5ZYcoK} zu%GDcA|hm)gIh^@20)kr;Na$w&MhN7>K19V5KYtX+XS`m&DOLMD0L`3>}r+@%vR^M z5Y6JYZU)o(Ihr;R?Xf2NQIqAa7Q#q5y%nUUb79tE4w_ojVpz^80}h;}Xet^_{PqEG zG@1vF>tMKufj4Qm{x;uQKN9f$rK_Q?(gD5MSwrm*Gx=g03d6-ZT7M^iW20)v3f5d~4 z`rX(!)4Ap5;6|GswNWl zUNPI{W56awzXj|}U@wP>Y6H!lChU-3wGj=In!gRY*RN^)YS5pQjoM-Yc=8?4-vr%@ z{%?!!mebmbc5(W96fM`Z7U)Pe=|%ZuTWqs7eIKL;L8>D4cQjiw{nuv5)OI4aQO^&+ zQfrZ>EkwmtX2!R${T0dyuPTXq=cmb-RwAaA^J7SS4hd}d*b}5m_lA0tFqQ0Ul$Fms zD$-<9Q_QY*?uYPGH(pA3qY~aLW7~^H%|;)B%q=%z{g1X=GqM^LveSu&mCOfna(mGv z>G30w8FaIz70{oR4{g-D@{#t!>+X0A^!?T8vZW6jyTT_@l3qCu@`PLd8m>dKy-&1A z`ScUevnn*L2TZD>zP46yP`22FdkNcoVz}rp&-#Q%zxkkiey}r7cMg!_@4 za`fr@Wo&F%QuO|?-h+FV3@yS8uwI0Ah5R;8*U!E;-2~m7%#gQ z4=C)@Yj96gl~r3SmFWXSx_qM}CT5p~@^u|TiX@GNz3y zTkh{98j9ocY$wrL+$URg7MF>C%G*1OMA2{8HYVa_xu=VmF0!S!t7s&?mIsP31&p~S zM*6#o+BmOR+Ep~E#S_4Q%U5limWvVUV0uAhKPYHDsGd zugQ>)6^Qz36E?d{e!EO$%9916o>(mZD8SBnQ~Az7%$Bae!3g~ILO0P@?3R(;g-3iT zTXq-c#9rC5hsY91a!3!+M(mNd^$@9g$ssA$qKU8fzz)_o@|zx_y*MRvdWv)xN8)U= zOS-DJj-1~U9QCE_iKCB9ta3DS=N*ai+n%Bx7JM>ugtMt^Q78_Gqr2+#68LvmM)ely z;v?CtHyrkg9Nb&<6XWHE-r_FTHHgJPIr|E%YKHX@D=yR>$a8%}lqi-_eZ>+z zZ@=_kS^=IX|zM@QQkY)XFtZ-Te`a$(K@=!l9S-dWL7KwaOB+HA$ z<+|gDJXnNg&XKYGfo&>_`im|&GP<3~2>Aw%>BVry+~cUN4Pd5`=puWg4D>7{@$s~= zN6%q>29%(?lxJZRy|y+%K0E++d??=>AleD9bQYr*?z zuA=$;U<`7<4uu~N%FJP+u|E2c+|xEZ(Hwhkq%0dIV#KF%(J*W^){&156WL;le1Di& zA-<3khr`~p@`vG~D;}0MBSf}3fygd1%S+?r+!3OlYZe|B&CF=$mK#Qhn20hpY1LZG zr$(Sdza{sL5Plaonlv+JO@q~IqUBAOVet4bIAnaFi<`-$`<+3s?20-Zc* zr0Anh*)N-Ch2_fIN8%_dTW%VO?$J;l8;Kw%GD(+Nqr^BDH?SxiFE@-5d&Mj{^9opd zOg?sn$V%gWxwXwbY3lUpr4zByt#PYcXjwvgNuIt!G_3m^XHd@*)YhJp>7zxV-t>^% zT^yb*myQF`}0~>7d+;6IR)5tQd*0bjeuJ)G_g}F8AP2 zO1?Q(B#95?7h~b@HZpb`0=rAL7$;uU+a8hygTp;CeZ06TQ)n49z1Pq_J;n?eT2$0Z zs|eGaBBp$kR*tD&eNE1s=xl)@ubq5#JbGkp`OSE-*pkxw%+0e+2=~UX!gpbSHc;aI^Yfd@OI6fmhnihvcjmY9+}RW{7#Bm25Lp1VofP zHB&q!>dHH3LCG2U;w&*2$hKu7$3Fp06jKPeA1}E3Dk8Xd!Hq+qHut!#oGpgvhxf_RFV)JF*H3q*pqsocd(DBj`pD^X(E8SLNZN+R(2g;8hJ+(^uXxPmFiD zRM=;1!Dx~=U&J`wd?}tQa;3_?^TqQbbyuwg!Y@RMyzMGHH>c&ft6;&8GUIB|(0LgK zPjmLnq-d@DrC1HSpqf+v@tpIdEW29VtdH6+#}vC7p%vfB%xlE$VwimN8qu&R7d9Fe zLQ}^~np0XjX3|6)8e_D_pdYVJs%mSw&}&`UlVVFmeHn8tM&EI=#kHc5pU;=h7ox}_ zn8|3C5zHl6Ku}I_3jvp1f@>kMnm`iVMX;V=Bf(aJ2M8V_*iNv6;7Nkr1TPYBA}d}! z>IdX3Q|u*pm*4|}j|mPD{K{bePH>JOjNXnWNFr!R(3GGxK|VnNfTK5a#RS6$#t=*d z5HkokB8%AoG5TCUofl~I`2_NcGE4n8rPTGRD>uNc=nz!D)z73)eoZ%Q zhL3Ys8^e7sJDXFPUu9bKG;PB4%B3$G7B*sj7 zif1v*mY>7FaP5RD;td?GeOj6Q!e$~P#JOjx@oohFhilwDwX@vMAX9yy9XNc_9AP7K zCSH+&VqJM=vA}vkw!2NFb>w{u&EXm~s@W*ec=JJX)a^cL@{GxITDNM3+ZVv{Dum{U z>fV1$uhMyA29BG9jtcZ}x$-vAAd%N2G)Htb>Tr-J$vwA;xL&+7Q7PPg%GBu-3qa*9 ziW+DN@m@uxvXZIer%#;Ib)}cA#%t4dgk-+kThvtZ9u{PVvs~%Q4j$~f?U=dS87J2EojAmmwLBYU2A$K>IO_yVh z*-DOEF5;CHZJAAq=lvATQ3o}2pFV4DDXM{v9&*)k5!axXrK$>z6^xP3Ef*c~c_T%0 z#7;)ZT zOqrI;M^}gmVzsQd5=+;$vfoP4tpRUt*bf!&Z`j!<?c|D8qIEbgWN3~= zxhF{^)(Y2njY4y@m#gj+$uexUNQ>j03e8blU8R^XeH?am!?i^+Z#DKzcvAsA*?P~T z#Z%|ywD64p{Xu!dYLVN3_ZJY5;5jQ9K-?~Ouf`PoY5D1DY)$Nz4NR0?m0eBI0cXb7 znRr3GBcCxb&VMYwGQo04rrv?l&vL*W@ZK+S@g0~?osrw`Q0u|>?htLUTCKGP>ld#a zv_@pATMC+^gDhGr8q3XVM13@N*Ba3i_v!vzgE?zAS-2Lr>v~|)2E7yI?zN(6JTD%= zxz;r>^$f$-+4AgK+^V}q_LrDXUoXofUQV~lUDyE*=Y<5#(Tc80kor22g3FKT>qK@c zZyjh3UZM-vc=-TfnK)uC2jp0CJ|nM363!b1*u1t>JiSgNh4XrW=1Ac61a|VD z<&W!N@EO_ZPSG-z=k=PyIkco3NIbX4I6DBP)+iRsrFY`K<3M@vPLY8X`JZ><4LMr+ z?h@VQ3wMbyx#%uzBw>`i3x1d-!|sM-%cSpaytWs}$#;uZ;XKyY9ENSo-SFB?@{PN( z2&s@U_h2Vty&QE9t{vVlAH4@2|4@E%k7yCj^Ki}4*6J_q){B$|JRGkQbal8MuDRsY z^&%5yEL{)tn#f0(43}@N$Fy*S{ANA8J4?oF0CK%-xk0oI=V>4Zhm87hel#zNuV|gK za7<9uRUD_zc|S_(28L5tNBT~k6MrDpJp!lB6XaJIn1teUdXilL!%NrrX^k$(_ zH}YtXYKS9ZxOJTf2+k96`GwG_CjUq{{iiO!m2wS$B3A)OxDG(Vm4Jp%>Qw5eRZ!A@ zNbjMlLnsDE#IQaEHbMzHB6|)QTs*)=DV2`!A${yJ*BY85qOfR0@9uqi!z^Wj-%(5T zGB5$fl?iyz?Q9`sv?JU?fPu4JP3LYM4O6LN@7}%FK#3FqiYI7>&uc{&o#)RAzmj)b#yB%H4!;fx&# z=j=#0Ye&L)I}*;^k#O$L_z3|!{G6`?srCh&YD%wY5up7yO!3>c=%|mY2AINy6B6a> zpqX3&0mn5E60U-fa2Sts;o=X(tttuElogKJc#_b8GVtO@CsIzr406_tvRQMd&MURiDvXW@bXyyt zI+!D7=*+pe{5)&UywZs_frrU>=UJzH&BCpD=}l`lW6oD0lQ)axi9BD%oR8Jc9Y3ZI z-fUCHO~>tNP7~HBS{<8Kh!rxBJch=wSOv*B70;!sW2t}#)tVzsZF_RGct}3G8LO=A zOd7h#5sRD4i9%NhPILf^)CvU-Y>n*u_3&h`HVu>G;he8mk zdN$wiIp{l7M8+9wAHb`sOcp#KQdDc_GMkai^ZBZ(=a$a1>%LK5_kc)h$7B0Sor6nl z2I}Ntex+=|cyvKq_73?5WqHP5DH~#-ED!!GWecazpF72t#jWNC(H7nZsFV#cQ1{Fw##Y&iN3bJ$M&9!XI?q|T>k*NSoy~)fhz{XA z)WxbrE{YcMlunYq?bwX|YCHA`r)?Ka(s(YbIox*J=FsbEvOa;mqN99#JEq*7<=0GZ zkvWfI>RBPjJ&J~#^7cpZuxyl1Jc=je;avwF6`!{E_r)Fzu0j>-{g~0MVtTP2j^m7s zV*RB@KqHyutYUpykUhg0EF=``R|c`!z*+@&kepj!xftII+qFhf!YaiT>*Hm! z&qdpQJrry%PY7iepQPMGMd6$Uj%neN%*1o``!(0n#eEugw@rP*gxl z{v_avMXMpYF-eM(m?_VE*ct7&w6=xT8K4(>uLSf?C729g>2K#5hx~ID1@pA>6sjjv zNPU3Z72W0!#s2_>SQ{$d6oHBh=H<@>s#vr~y((9)*AOuTt+tvcCw(EJoU_0pTW)f; z9Kl?%D1kZikSp}g0rZvuSe6X&@J#c$#kUk_<>|D9^u>$n55@lg+3b8#0a)_q15qr7 zqUQN*vF|cV`*3K#8l*z+0zgag<;AV*-dtac_Hg$Np8OV`%wz>*2{o0T{5B&08l`ts zachktP=Ae5Kf_W#2I|X|`Wpbf*AZL`U{y5Mb5_+rUuLrcGKDG#kUQv03b8);@>|=N zi-0N?<51Ni@3*#7H!MW${VvnvVpNGx=9b|4v>-R(SU92h3E`Rfhra=(SW5@ z8!#I+EC;F3dpn?|d|t2tJoK&F0J4NCu^X@gxMH!OvH>fqHsETgzXKeF-qnEKl>k;9 z*Lb3kuhIb0L%IWGtkHlqKoyH?(SS9ohCY^yu0sv$Kq~aE1+EXS=1&BG1{n`#iIO1 za6|QarP^<+zS&Z}5iEt?4S=?4TxQTb4N$gJx2DA;S9CYo1x<88TD%D;sK(U>s#c}y zk2LOpX`xXqr5HbDKmn~d$sSCtvbPw&cVH3p`{meEqD?)Ea21;UH&6<_JNC(MSGwX8 zccIjpgHLWn_a8Elt0(Z8P5|WeRjwo)>V11k#Oo+-_?t5=tCIU>3_&e!&dMyn|NO^Q zWqz3axbjAZRa?0W=NPCl9yhWJy>39;8)359x7ZSS{%}N{hz3BT$>H*fZ$+0JTM+AY z3MMPT#7e;g-~)+r)t{IV9eLbYCpyKFP6Qscr^sVJ311IeNgGQ^W2K}Kpw~l?O^`*9 zL68Puo7ENqo~9@V(hkVjr<`%pza`w|C#Ir%MW*GZ8@q3e2vG9IdKspNZ(*K=sWmm1jd0tr$ z43CRUsKyy~Ud~2}v%VY~7a5K{gsP4kXF0AAb`*Mh0D8L-bS3Ca(2*b?z;@htI<7a$ zfzHZtNpU1rbU(umrMlMbnSqWV#YghP+ZVpa;a$Gm`7_Qi%D06_b*Rc6fsXi7M1a*| ztZs$>^zdZ5t}0uG>aT&$vfu|1m&UpoB41x*z&;i1NTyj*a`y3v_*nM)Dqik=K(^fF z^d?fGn&uQ}4rBzn$z#x5tsx1ZEXxdZJs>yja>nB*mQEXG_qKA>g)Tb^>I%J=1A0dg z3?mpqFqmKtkm}CU^(z75m!w?4BGu;M1ZY8I9uUALvm|P1-9cx$c<1CSJeXBal;PC zu>m;l3gtMz?YMiO2acNw?STG=b$Bjw4@1_un&G z5zy8RH5uW?L_Ww=Tg8v}Dn9zLVTY=EZ5PtIDlXhqQ>*R5i8A^ZxUi}M+l6dT6&G%< zslayOG&u$e;;JgJT{z`{On(+GoTXei&URq{df>tvp}o*s4(Pps;5ve939cqsKroMB z4nY}!?Z;>j*dC+hRXnz*riN^*Z?ctD*j}v3W;^zV1M=8zr#r4{MYdI=OUfZm${Y`47)B0ASQNIXk`R)d{-Jo1;KXxt7EB8awp zZVVCvWJW1)vmErNh|9|IEdv6Y-lf^BAQ*>6Xx)m;z!Ew3H<6Ud`h(ugr*gxVdk=DW z{oSTaPqt0}97veH8hnM`m4M#mX#L5EIDO3l*=fBi*-a$$(QF=F`m=rVfLxUp8Q0nb z1@?Rg6^2CKvlbv=^9KijA80KJY|3&rrGfuWOYldKT32+xDMG^(cw>o>6MMJh0-B}Mr>A%Xl!?kPC%k#9EPq!??FKCeu9q)J|uV_ZQ2>0 z!i$xQPDLcuBM8yy4BQplirl6@{M$`&?d|>S+mnZ9eN?`28)b@9K zadHGGxS_zZ=twn-N-T@M0!yLyB%t?mf=>xf5F9%oPyMaZqD=BsvxxkR9xBAB{^EBAOH&Q`Bnad<_)L8E%=QO2L`7wPk>vhXFX^S342Y)(q6!^sw+l;JP6o z6nX~(S|h>G0P|Sd*mJ~+?ssNZLpkvrE0lcfbVLJv=s~&Z7ty}0rSURoyj*D<0q7kT zQhRxT`Jh@`#|Sydp~uT*n_ZEfs$|Wof+{G1SKr!9y!x&PD1polLEa!?bRfveXU0}u zlW7b(&q&MI%PnIkz}T^mXM|&N zK$S8(1eFENoe~J@Qp1MT*qTgJVeUA~+*He4uC6D-h(ho9kfk#Mwky1C2dm!l)datPz{2TC|>rqxZu@CaGM=KwXJ6wTl4$DDH^tif@g9A}`f;C(( zi^BD^uqUm28T0tv1LE%p*E7O)S@~y>Z~e5&Lorp-v31a6Kk;~YB!^->4U24a?E@ap zP6L);-3UD^{25D7es@rJ%f1nM-LPjZ>drcPT#OY!2>zg^wY%kw5qh?M{b8B;0bKY( zgdRTrIk056$;lnHbWhTY7a|{)u~$11ceu?3BA5h*lZ*Se`@X!r?DE$Lmb8mBUupsJL4tC`IjP8sbB4k(7_ZUJWkFR|P$l)P0|*i9ppp*y)^hEO{yv2OX{2|WsJvQcl=(bEbxKp4%t8;R8} zYBTNu$fq%eUC|q;Xov$fzR4QdHe(ZjU2Rfiu!UQz)|(`6s2i*>&R?~&qsFZehePi} zVpU9i#%2K2^457A^Z@A(0@QR62|)+hz5XGf=;*z)_F)zRaqJht$Jg%s%k0kIzoR2s zf6Oxd5`5uu@c=#QVoZ3FqPh-o8IPepwDS=pRs(5=u^j-0y-maZhCDn7_*c8|V5G`D z!yN3CPhHe9#mUHCz^LFO7M=GLYJx?NBe5)^0mcμ?9Fgolp~Ht0T}-X#jV&(^~? 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%0DX5W6s1^NCR! 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 delta 201658 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

8RoHQ4N_ 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 diff --git a/Externals/libusb/x64/libusb.lib b/Externals/libusb/x64/libusb.lib deleted file mode 100644 index dfdaad05d14b3a56d6446ce3a79a4aa7b6f1e712..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11674 zcmcIqO>7)R7Jm7I;Fw_YQ%j} zepT(s*K0w2=Pv`Vl;Xcjm&mARPmz$0H^_++5#B94{+v3fVl^f z#vTF?oxi8(H+&Kumvrtc0HV>~6_xObH2b}znV$iO#z!PA9R(md`&iQa69A&cFBPrg z6KU)%NedqW2*N%sAT9kOsq_;7(bA`q#<2~ei4P==e~xveb7e`>zXA}=V0%O>-$=S} z4uEL#HAUaz6KVN7Nh{bFqSB6}IV=;6;&>3vUYE4If%-`EgNpX>iF6k2h$bFMnwkS3 znnpdMsjnqXqwe&cXxAC^~=CwQ5(8AkoJ80~*+O7{#!SL(NR_F?WEE&mNx8sDJ!1M14F{|2ioDh+k zvL&Ocxp9kz8`cA_-Dw5R)+dhZH`*=F??fmW;;c3-cFgasZu9TXKLW2KyT+=fJ;4mz zT0=BtYDNRQ=LSKy-C<27c{c5+QKKwaMz`MbJ3*`I?1plfdEID*I2S0{_U?9rTE}b2 zsZ4W?MZH<`b{zq`U90OEj`NIm;5OY_=qB{jTw_7lwPq&{kYXDBz(t|k79*_7Mp{Ss zz}dkDg#xP@9bskc*&GXrLb>+;Mn$g(y z{Dy;zGjv1IIIkzP8t%tlovUev(UTm}kSZD(ttke?sz%52!%nT)bV4^EEXS9_ZDHrx zI6>EMG@GIuX;UpVEp+{~mN2#o^6hl%v{Bj2wcNC#u^WN+u^S{^HryNw-6(;kn$tpK z-)VL0JE*wrYv*wbXAbD>`Myl%9-uvOm)T7Ih=Vgz)$ZKoD~ z;@9OoX2^`S*!7ZTDW=gk8(PxHE-{v2cWc+f%_HhujA8U}qvS5Is!hl7TlJb>cV*lf zWy3dCQjzr_#xQ!@f$K6YRy8_0V0_nYgbwaRom$XIhG9x*v2VX0TX8I0xt9 zMOcJEn1{o#3@h+5oQ7dI2`Ats7=<&i1T!!TC7681tslZD*+<4`Ld%x!6Ik9nrIfKuRj6Q=Y?MePmS@LB@k2peCR10&(`hhc@prLd zr*ab3p_D8=cec!pwO|wLM(BlQcBH75%rV$5L^`qkM=-3XpTrp>I{31EhKyMn&i57) ziMo`lgg>4lu$_d|<6DJzbH`b+-9uYg58Zml&`Nr*pgKFh$OUfp2PsZ)`C#iUCABAT zOTV2=JCezYtx2}_d1HnhH;S!yX`orj=})e4p`DT9k}SIXFpF1AhN+shO#10nEV*49!g9k7J#Egr6tHSe{cV!LW4J_Q(74=+)p*L2& zMy*qup`=s%F!6+cBmGZS;SfI8;o=WUZ%wf=FT)?=X+5g0L+OWu_&kAG9sQ0mrxxJk z(DTUqkC4cI&ObVF%c}>iu(jPOEo?59Zr<2EypuRer$Rbt1d&eFaEM=`Kk7%V16)-#dK`pJ z{JXFG@u@{hxq693%0Uq+{}O$p9@-@eSC_S_%VRl9ez5)LV>SnAdnTD5FPDdB!P@7z#jr9WAFq@! zOORM95$7m}jQA;v2Vd{wxRw!#c!7v_fi}F@sjV+x^Y)OJ7`8eR_Jvi|DS2XC zr_j%#6qY`3a!6J#wjOfU-pdS8pJiG5d`gR9=`=Fo-D&jhgu)W%WDe5vZjv{KCnJ=^ zahvBKh4p@4Sb5PilESi0Vz1s+qyPMgXR^~6J);Rkb1xHfvgb9jmXWLAM;-jG5|3De z`Bc2kSS$4A7>khgr4nBLH2U+jnh~e?84AB4X-_p?Rtn$qoMwz~2~j6fsOdDmSG+a- z?_!Ca6+hVFcQEB;#^oEs;zM0*WoFDK?dazfuDICaAU#KG-W#~2P|P(UccS-9qndH9 z#Lt>AnZhzxlH5U7E;NdHd(KpZnf&h`hQeJggjmUlPdckiM~Ju@c+0$83?*Y{!_U9? z4cNZ|HaOf&IcE8L(_7RU6o>4|f-?jBM zb^P+0L$Y!qAMXHRFVf|K5TBts&#n_Bn&Q*!!wj%UBgFh`O4CYIFJj DaB1hA diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 59f5a638cf..9a47e97d0c 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -51,7 +51,7 @@ They will also generate a true or false return for UpdateInterrupts() in WII_IPC #include "WII_IPC_HLE_Device_usb_kbd.h" #include "WII_IPC_HLE_Device_sdio_slot0.h" -#ifdef __LIBUSB__ +#if defined(__LIBUSB__) || defined (_WIN32) #include "WII_IPC_HLE_Device_hid.h" #endif @@ -117,8 +117,10 @@ void Init() g_DeviceMap[i] = new CWII_IPC_HLE_Device_usb_kbd(i, std::string("/dev/usb/kbd")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_sdio_slot0(i, std::string("/dev/sdio/slot0")); i++; g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/sdio/slot1")); i++; - #ifdef __LIBUSB__ + #if defined(__LIBUSB__) || defined(_WIN32) g_DeviceMap[i] = new CWII_IPC_HLE_Device_hid(i, std::string("/dev/usb/hid")); i++; + #else + g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/usb/hid")); i++; #endif g_DeviceMap[i] = new CWII_IPC_HLE_Device_stub(i, std::string("/dev/usb/oh1")); i++; g_DeviceMap[i] = new IWII_IPC_HLE_Device(i, std::string("_Unimplemented_Device_")); i++; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 41f1a9976c..70e379bfca 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -457,6 +457,7 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) else { DEBUG_LOG(WII_IPC_HID, "Could not open the device %d", cRet); + hidDeviceAliases[devNum] = 0; deviceValid = false; OffsetBuffer = OffsetStart; } diff --git a/Source/VSProps/Dolphin.Win32.props b/Source/VSProps/Dolphin.Win32.props index 77e7131a92..78e145b6d6 100644 --- a/Source/VSProps/Dolphin.Win32.props +++ b/Source/VSProps/Dolphin.Win32.props @@ -8,8 +8,8 @@ ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew32s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;libusb-1.0.lib;%(AdditionalDependencies) + libusb-1.0.lib;portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew32s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;%(AdditionalDependencies) - + \ No newline at end of file diff --git a/Source/VSProps/Dolphin.x64.props b/Source/VSProps/Dolphin.x64.props index d5a97aa693..5fe05be766 100644 --- a/Source/VSProps/Dolphin.x64.props +++ b/Source/VSProps/Dolphin.x64.props @@ -9,8 +9,8 @@ ..\..\..\Externals\SDL\$(PlatformName);..\..\..\Externals\GLew;..\..\..\Externals\Cg64;..\..\..\Externals\portaudio\$(PlatformName)\$(ConfigurationName);..\..\..\Externals\libusb\$(PlatformName) - portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;libusb.lib;libusb-1.0.lib;%(AdditionalDependencies) + libusb-1.0.lib;portaudio.lib;dsound.lib;dxerr.lib;iphlpapi.lib;winmm.lib;setupapi.lib;xinput.lib;vfw32.lib;cg.lib;cgGL.lib;opengl32.lib;glew64s.lib;glu32.lib;rpcrt4.lib;comctl32.lib;%(AdditionalDependencies) - + \ No newline at end of file From c1b8aa75f29025a0d1b1043a572a8e4fd537ce36 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 18:05:38 +1300 Subject: [PATCH 19/27] Tidy up and fix for my Windows crash :D --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 89 ++++++++----------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 4 + 2 files changed, 41 insertions(+), 52 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 70e379bfca..f06bd98313 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -196,22 +196,13 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u16 size = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); - //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - // requestType, request, BufferIn, BufferInSize, BufferOut, BufferOutSize); - + ReturnValue = HIDERR_NO_DEVICE_FOUND; + libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); if (dev_handle == NULL) { DEBUG_LOG(WII_IPC_HID, "Could not find handle: %X", dev_num); - ReturnValue = -4; - break; - } - - if (!ClaimDevice(dev_handle)) - { - DEBUG_LOG(WII_IPC_HID, "Could not claim the device for handle: %X", dev_num); - ReturnValue = -4; break; } @@ -221,10 +212,6 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ret += sizeof(libusb_control_setup); ReturnValue = ret; } - else - { - ReturnValue = -4; - } DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); @@ -242,21 +229,14 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) u32 length = Memory::Read_U32(BufferIn+0x18); u32 data = Memory::Read_U32(BufferIn+0x1C); - //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - // Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, BufferIn, BufferInSize, BufferOut, BufferOutSize); + + ReturnValue = HIDERR_NO_DEVICE_FOUND; + libusb_device_handle * dev_handle = GetDeviceByDevNum(dev_num); if (dev_handle == NULL) { DEBUG_LOG(WII_IPC_HID, "Could not find handle: %X", dev_num); - ReturnValue = -4; - break; - } - - if (!ClaimDevice(dev_handle)) - { - DEBUG_LOG(WII_IPC_HID, "Could not claim the device for handle: %X", dev_num); - ReturnValue = -4; break; } @@ -265,19 +245,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { ReturnValue = transfered; } - else - { - ReturnValue = -4; - } - /* - _hidevent ev; - ev.enq_address = _CommandAddress; - ev.type = Parameter; - ev.context = context; - event_list.push_back(ev); - return false; - */ DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); @@ -302,7 +270,6 @@ bool CWII_IPC_HLE_Device_hid::ClaimDevice(libusb_device_handle * dev) int ret = 0; if ((ret = libusb_kernel_driver_active(dev, 0)) == 1) { - //DEBUG_LOG(WII_IPC_HID, "Kernel has the interface, gtfo kernel!"); if ((ret = libusb_detach_kernel_driver(dev, 0)) && ret != LIBUSB_ERROR_NOT_SUPPORTED) { DEBUG_LOG(WII_IPC_HID, "libusb_detach_kernel_driver failed with error: %d", ret); @@ -384,27 +351,31 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) libusb_device **list; //libusb_device *found = NULL; ssize_t cnt = libusb_get_device_list(NULL, &list); - DEBUG_LOG(WII_IPC_HID, "Hello plane???? %ld", cnt); + DEBUG_LOG(WII_IPC_HID, "Found %ld viable USB devices.", cnt); for (d = 0; d < cnt; d++) { libusb_device *device = list[d]; struct libusb_device_descriptor desc; int dRet = libusb_get_device_descriptor (device, &desc); - - //u32 devNum = (libusb_get_bus_number (device) << 8) | libusb_get_device_address (device); - + if (dRet) + { + // could not aquire the descriptor, no point in trying to use it. + DEBUG_LOG(WII_IPC_HID, "libusb_get_device_descriptor failed with error: %d", dRet); + continue; + } int devNum = GetAvaiableDevNum(desc.idVendor, desc.idProduct, libusb_get_bus_number (device), libusb_get_device_address (device)); if (devNum < 0 ) { - DEBUG_LOG(WII_IPC_HID, "Too many snakes on thsi motherfucking plane."); // too many devices to handle. + ERROR_LOG(WII_IPC_HID, "Exhausted device list, you have way too many usb devices plugged in." + "Or it might be our fault. Let us know at https://code.google.com/p/dolphin-emu/issues/entry?template=Defect%%20report"); continue; } - DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d, Error: %d",desc.idVendor, desc.idProduct, devNum, dRet); + DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d", desc.idVendor, desc.idProduct, devNum); OffsetStart = OffsetBuffer; OffsetBuffer += 4; // skip length for now, fill at end @@ -416,18 +387,21 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) Memory::WriteBigEData((const u8*)&wii_device, OffsetBuffer, Align(wii_device.bLength, 4)); OffsetBuffer += Align(wii_device.bLength, 4); bool deviceValid = true; + for (c = 0; deviceValid && c < desc.bNumConfigurations; c++) { struct libusb_config_descriptor *config = NULL; int cRet = libusb_get_config_descriptor(device, c, &config); - if(cRet == 0) + + // do not try to use usb devices with more than one interface, games can crash + if(cRet == 0 && config->bNumInterfaces <= MAX_HID_INTERFACES) { WiiHIDConfigDescriptor wii_config; ConvertConfigToWii(&wii_config, config); Memory::WriteBigEData((const u8*)&wii_config, OffsetBuffer, Align(wii_config.bLength, 4)); OffsetBuffer += Align(wii_config.bLength, 4); - - for (ic = 0; ic < config->bNumInterfaces; ic++) + + for (ic = 0; ic < config->bNumInterfaces; ic++) { const struct libusb_interface *interfaceContainer = &config->interface[ic]; for (i = 0; i < interfaceContainer->num_altsetting; i++) @@ -456,13 +430,16 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) } else { - DEBUG_LOG(WII_IPC_HID, "Could not open the device %d", cRet); + if(cRet) + DEBUG_LOG(WII_IPC_HID, "libusb_get_config_descriptor failed with: %d", cRet); hidDeviceAliases[devNum] = 0; deviceValid = false; OffsetBuffer = OffsetStart; } } // configs - Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length + + if (deviceValid) + Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length } @@ -523,13 +500,13 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) { if( dRet ) { - DEBUG_LOG(WII_IPC_HID, "Dolphin does not have access to this device: Bus %03d Device %03d: ID ????:???? (couldn't get id).", + ERROR_LOG(WII_IPC_HID, "Dolphin does not have access to this device: Bus %03d Device %03d: ID ????:???? (couldn't get id).", bus, port ); } else{ - DEBUG_LOG(WII_IPC_HID, "Dolphin does not have access to this device: Bus %03d Device %03d: ID %04X:%04X.", + ERROR_LOG(WII_IPC_HID, "Dolphin does not have access to this device: Bus %03d Device %03d: ID %04X:%04X.", bus, port, desc.idVendor, @@ -539,11 +516,19 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) } else { - DEBUG_LOG(WII_IPC_HID, "Failed to open device with error = %d", ret); + ERROR_LOG(WII_IPC_HID, "libusb_open failed to open device with error = %d", ret); } continue; } + + if (!ClaimDevice(handle)) + { + ERROR_LOG(WII_IPC_HID, "Could not claim the device for handle: %X", devNum); + libusb_close(handle); + continue; + } + open_devices[devNum] = handle; break; } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 1ab9a95875..51057d536c 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -22,6 +22,10 @@ #include "libusb.h" #include +#define MAX_HID_INTERFACES 1 + +#define HIDERR_NO_DEVICE_FOUND -4 + /* Connection timed out */ class CWII_IPC_HLE_Device_hid : public IWII_IPC_HLE_Device From 90ce6ad3718637a51bfd2cd83656f80ada149b63 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 18:15:52 +1300 Subject: [PATCH 20/27] Better warning for windows. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index f06bd98313..22c08d6baf 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -514,6 +514,12 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) ); } } +#ifdef _WIN32 + else if (ret == LIBUSB_ERROR_NOT_SUPPORTED) + { + WARN_LOG(WII_IPC_HID, "Please install the libusb drivers for the device %04X:%04X", ret, desc.idVendor, desc.idProduct); + } +#endif else { ERROR_LOG(WII_IPC_HID, "libusb_open failed to open device with error = %d", ret); From cda82eb1fca49434ef8fdb16e5aa7bb4816dd86e Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 18:20:16 +1300 Subject: [PATCH 21/27] Left in a ret value. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 22c08d6baf..47b267f574 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -517,7 +517,7 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) #ifdef _WIN32 else if (ret == LIBUSB_ERROR_NOT_SUPPORTED) { - WARN_LOG(WII_IPC_HID, "Please install the libusb drivers for the device %04X:%04X", ret, desc.idVendor, desc.idProduct); + WARN_LOG(WII_IPC_HID, "Please install the libusb drivers for the device %04X:%04X", desc.idVendor, desc.idProduct); } #endif else From 40a6649dfeb3c0ac9e96eb8327051034d42894ad Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Mon, 31 Dec 2012 20:51:10 +1300 Subject: [PATCH 22/27] Fix unique_id creation, damn sign extension! Cleanup removed devices. --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 126 ++++++++---------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 3 +- 2 files changed, 56 insertions(+), 73 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 47b267f574..2e7b56efc6 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -88,43 +88,9 @@ u32 CWII_IPC_HLE_Device_hid::Update() } } - timeToFill+=2; + timeToFill+=8; work_done = 1; - - //int ret = -4; - //timeval tv; - - - //libusb_handle_events_timeout_completed(NULL, &tv, NULL); - /* - std::list<_hidevent>::iterator ev = event_list.begin(); - while (ev != event_list.end()) { - - bool ev_finished = false; - - - switch (ev->type) - { - case IOCTL_HID_INTERRUPT_OUT: - case IOCTL_HID_INTERRUPT_IN: - { - ret = usb_reap_async_nocancel(ev->context, 0); - if(ret >= 0) - { - Memory::Write_U32(ret, ev->enq_address + 4); - WII_IPC_HLE_Interface::EnqReply(ev->enq_address); - work_done = ev_finished = true; - } - break; - } - } - - if (ev_finished) - event_list.erase(ev++); - else - ev++; - }*/ return work_done; } @@ -143,17 +109,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Get Attached) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", BufferIn, BufferInSize, BufferOut, BufferOutSize); - //Memory::Write_U32(0xFFFFFFFF, BufferOut); - if(!hasRun) - { - FillOutDevices(BufferOut, BufferOutSize); - hasRun = true; - } - else - { - replyAddress = _CommandAddress; - return false; - } + replyAddress = _CommandAddress; + return false; break; } case IOCTL_HID_OPEN: @@ -213,8 +170,8 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ReturnValue = ret; } - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i) = %d", + requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize, ret); break; } @@ -343,6 +300,7 @@ void CWII_IPC_HLE_Device_hid::ConvertEndpointToWii(WiiHIDEndpointDescriptor *des void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { + static u16 check = 1; int OffsetBuffer = BufferOut; int OffsetStart = 0; //int OffsetDevice = 0; @@ -363,24 +321,10 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) DEBUG_LOG(WII_IPC_HID, "libusb_get_device_descriptor failed with error: %d", dRet); continue; } - int devNum = GetAvaiableDevNum(desc.idVendor, - desc.idProduct, - libusb_get_bus_number (device), - libusb_get_device_address (device)); - if (devNum < 0 ) - { - // too many devices to handle. - ERROR_LOG(WII_IPC_HID, "Exhausted device list, you have way too many usb devices plugged in." - "Or it might be our fault. Let us know at https://code.google.com/p/dolphin-emu/issues/entry?template=Defect%%20report"); - continue; - } - - DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %d Product: %d Devnum: %d", desc.idVendor, desc.idProduct, devNum); OffsetStart = OffsetBuffer; OffsetBuffer += 4; // skip length for now, fill at end - Memory::Write_U32( devNum , OffsetBuffer); //write device num - OffsetBuffer += 4; + OffsetBuffer += 4; // skip devNum for now WiiHIDDeviceDescriptor wii_device; ConvertDeviceToWii(&wii_device, &desc); @@ -432,17 +376,54 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) { if(cRet) DEBUG_LOG(WII_IPC_HID, "libusb_get_config_descriptor failed with: %d", cRet); - hidDeviceAliases[devNum] = 0; deviceValid = false; OffsetBuffer = OffsetStart; } } // configs if (deviceValid) + { Memory::Write_U32(OffsetBuffer-OffsetStart, OffsetStart); // fill in length - + + int devNum = GetAvaiableDevNum(desc.idVendor, + desc.idProduct, + libusb_get_bus_number (device), + libusb_get_device_address (device), + check); + if (devNum < 0 ) + { + // too many devices to handle. + ERROR_LOG(WII_IPC_HID, "Exhausted device list, you have way too many usb devices plugged in." + "Or it might be our fault. Let us know at https://code.google.com/p/dolphin-emu/issues/entry?template=Defect%%20report"); + OffsetBuffer = OffsetStart; + continue; + } + + DEBUG_LOG(WII_IPC_HID, "Found device with Vendor: %X Product: %X Devnum: %d", desc.idVendor, desc.idProduct, devNum); + + Memory::Write_U32(devNum , OffsetStart+4); //write device num + } } + // Find devices that no longer exists and free them + for (i=0; i> 48); + if(hidDeviceAliases[i] != 0 && check_cur != check) + { + DEBUG_LOG(WII_IPC_HID, "Removing: device %d %hX %hX", i, check, check_cur); + if (open_devices.find(i) != open_devices.end()) + { + libusb_device_handle *handle = open_devices[i]; + libusb_close(handle); + open_devices.erase(i); + } + hidDeviceAliases[i] = 0; + } + } + check++; + + libusb_free_device_list(list, 1); Memory::Write_U32(0xFFFFFFFF, OffsetBuffer); // no more devices @@ -490,8 +471,8 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) int dRet = libusb_get_device_descriptor (device, &desc); u8 bus = libusb_get_bus_number (device); u8 port = libusb_get_device_address (device); - u64 unique_id = ((u64)desc.idVendor << 32) | (desc.idProduct << 16) | (bus << 8) | port; - if (hidDeviceAliases[devNum] == unique_id) + u64 unique_id = ((u64)desc.idVendor << 32) | ((u64)desc.idProduct << 16) | ((u64)bus << 8) | (u64)port; + if ((hidDeviceAliases[devNum] & HID_ID_MASK) == unique_id) { int ret = libusb_open(device, &handle); if (ret) @@ -551,26 +532,27 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) } -int CWII_IPC_HLE_Device_hid::GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port) +int CWII_IPC_HLE_Device_hid::GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port, u16 check) { int i; int pos = -1; - u64 unique_id = ((u64)idVendor << 32) | (idProduct << 16) | (bus << 8) | port; - for (i=0; i< MAX_DEVICE_DEVNUM; i++) + u64 unique_id = ((u64)idVendor << 32) | ((u64)idProduct << 16) | ((u64)bus << 8) | (u64)port; + for (i=0; i +#define HID_ID_MASK 0x0000FFFFFFFFFFFF #define MAX_HID_INTERFACES 1 #define HIDERR_NO_DEVICE_FOUND -4 @@ -119,7 +120,7 @@ private: void FillOutDevices(u32 BufferOut, u32 BufferOutSize); - int GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port); + int GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port, u16 check); bool ClaimDevice(libusb_device_handle * dev); From f695f088a748008c8341c10b41301bb3bd43747b Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 1 Jan 2013 16:53:59 +1300 Subject: [PATCH 23/27] Add usb thread to check for usb updates. --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 34 ++++++++++++++++++- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 7 ++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index 2e7b56efc6..b0b3f349aa 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -21,20 +21,52 @@ #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device_hid.h" #include "errno.h" -#include + +#if defined(_MSC_VER) || defined(__MINGW32__) +# include +#ifndef _TIMEVAL_DEFINED /* also in winsock[2].h */ +#define _TIMEVAL_DEFINED +struct timeval { + long tv_sec; + long tv_usec; +}; +#endif /* _TIMEVAL_DEFINED */ +#else +# include +#endif #define MAX_DEVICE_DEVNUM 256 static u64 hidDeviceAliases[MAX_DEVICE_DEVNUM]; +// Regular thread +void CWII_IPC_HLE_Device_hid::checkUsbUpdates(CWII_IPC_HLE_Device_hid* hid) +{ + timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 500; + + while (hid->usb_thread_running) + libusb_handle_events_timeout(NULL, &tv); + + return; +} + + CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { memset(hidDeviceAliases, 0, sizeof(hidDeviceAliases)); libusb_init(NULL); + + usb_thread_running = true; + usb_thread = std::thread(checkUsbUpdates, this); } CWII_IPC_HLE_Device_hid::~CWII_IPC_HLE_Device_hid() { + usb_thread_running = false; + usb_thread.join(); + for ( std::map::const_iterator iter = open_devices.begin(); iter != open_devices.end(); ++iter ) { libusb_close(iter->second); diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 2acc2e0e7f..58c3c88da2 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -20,6 +20,7 @@ #include "WII_IPC_HLE.h" #include "WII_IPC_HLE_Device.h" #include "libusb.h" +#include "Thread.h" #include #define HID_ID_MASK 0x0000FFFFFFFFFFFF @@ -130,11 +131,13 @@ private: void ConvertEndpointToWii(WiiHIDEndpointDescriptor *dest, const struct libusb_endpoint_descriptor *src); int Align(int num, int alignment); - + static void checkUsbUpdates(CWII_IPC_HLE_Device_hid* hid); + struct libusb_device_handle * GetDeviceByDevNum(u32 devNum); std::map open_devices; std::map device_identifiers; - + std::thread usb_thread; + bool usb_thread_running; typedef struct { From d3f199273b2fec600af1017ddfae37873a3e47f7 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 1 Jan 2013 19:23:45 +1300 Subject: [PATCH 24/27] Fix warning level... someone let me commit this to master ;D --- Source/Core/Common/Src/Log.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/Src/Log.h b/Source/Core/Common/Src/Log.h index 9664387cf0..8ae845b303 100644 --- a/Source/Core/Common/Src/Log.h +++ b/Source/Core/Common/Src/Log.h @@ -98,7 +98,7 @@ void GenericLog(LOGTYPES_LEVELS level, LOGTYPES_TYPE type, ; #if defined LOGGING || defined _DEBUG || defined DEBUGFAST -#define MAX_LOGLEVEL DEBUG_LEVEL +#define MAX_LOGLEVEL WARNING_LEVEL #else #ifndef MAX_LOGLEVEL #define MAX_LOGLEVEL DEBUG_LEVEL From 8fdc8af1cb83381228c04c60021eb9d2abe30761 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 1 Jan 2013 19:24:00 +1300 Subject: [PATCH 25/27] Thread safe enq_reply. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 25 +++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 9a47e97d0c..fc2118ea20 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -83,6 +83,7 @@ IWII_IPC_HLE_Device* es_handles[ES_MAX_COUNT]; typedef std::deque ipc_msg_queue; static ipc_msg_queue request_queue; // ppc -> arm static ipc_msg_queue reply_queue; // arm -> ppc +static std::mutex s_reply_queue; void Init() { @@ -159,7 +160,12 @@ void Reset(bool _bHard) g_DeviceMap.erase(g_DeviceMap.begin(), g_DeviceMap.end()); } request_queue.clear(); - reply_queue.clear(); + + // lock due to using reply_queue + { + std::lock_guard lk(s_reply_queue); + reply_queue.clear(); + } } void Shutdown() @@ -241,6 +247,8 @@ IWII_IPC_HLE_Device* CreateFileIO(u32 _DeviceID, const std::string& _rDeviceName void DoState(PointerWrap &p) { + std::lock_guard lk(s_reply_queue); + p.Do(request_queue); p.Do(reply_queue); @@ -536,6 +544,7 @@ void EnqRequest(u32 _Address) // Called when IOS module has some reply void EnqReply(u32 _Address) { + std::lock_guard lk(s_reply_queue); reply_queue.push_back(_Address); } @@ -560,12 +569,16 @@ void Update() Dolphin_Debugger::PrintCallstack(LogTypes::WII_IPC_HLE, LogTypes::LDEBUG); #endif } - - if (reply_queue.size()) + + // lock due to using reply_queue { - WII_IPCInterface::GenerateReply(reply_queue.front()); - INFO_LOG(WII_IPC_HLE, "<<-- Reply to IPC Request @ 0x%08x", reply_queue.front()); - reply_queue.pop_front(); + std::lock_guard lk(s_reply_queue); + if (reply_queue.size()) + { + WII_IPCInterface::GenerateReply(reply_queue.front()); + INFO_LOG(WII_IPC_HLE, "<<-- Reply to IPC Request @ 0x%08x", reply_queue.front()); + reply_queue.pop_front(); + } } } From b5ec6609052d7c4f1d37cc2d7dd29a447cfaa6fa Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 1 Jan 2013 19:24:53 +1300 Subject: [PATCH 26/27] Async USB HID :D --- .../Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp | 127 ++++++++++-------- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 4 + 2 files changed, 78 insertions(+), 53 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp index b0b3f349aa..2996cdf563 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp @@ -44,17 +44,58 @@ void CWII_IPC_HLE_Device_hid::checkUsbUpdates(CWII_IPC_HLE_Device_hid* hid) timeval tv; tv.tv_sec = 0; tv.tv_usec = 500; - while (hid->usb_thread_running) + { + + static u16 timeToFill = 0; + if (timeToFill == 0) + { + if (hid->deviceCommandAddress != 0){ + hid->FillOutDevices(Memory::Read_U32(hid->deviceCommandAddress + 0x18), Memory::Read_U32(hid->deviceCommandAddress + 0x1C)); + + Memory::Write_U32(8, hid->deviceCommandAddress); + // IOS seems to write back the command that was responded to + Memory::Write_U32(/*COMMAND_IOCTL*/ 6, hid->deviceCommandAddress + 8); + + // Return value + Memory::Write_U32(0, hid->deviceCommandAddress + 4); + + WII_IPC_HLE_Interface::EnqReply(hid->deviceCommandAddress); + hid->deviceCommandAddress = 0; + } + } + timeToFill+=8; libusb_handle_events_timeout(NULL, &tv); + } return; } +void CWII_IPC_HLE_Device_hid::handleUsbUpdates(struct libusb_transfer *transfer) +{ + int ret = HIDERR_NO_DEVICE_FOUND; + u32 replyAddress = (u32)(size_t)transfer->user_data; + if (transfer->status == LIBUSB_TRANSFER_COMPLETED) + { + ret = transfer->length; + } + + Memory::Write_U32(8, replyAddress); + // IOS seems to write back the command that was responded to + Memory::Write_U32(/*COMMAND_IOCTL*/ 6, replyAddress + 8); + + // Return value + Memory::Write_U32(ret, replyAddress + 4); + + WII_IPC_HLE_Interface::EnqReply(replyAddress); + //DEBUG_LOG(WII_IPC_HID, "OMG OMG OMG I GOT A CALLBACK, IMMA BE FAMOUS %d %d %d", transfer->actual_length, transfer->length, transfer->status); +} + CWII_IPC_HLE_Device_hid::CWII_IPC_HLE_Device_hid(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) { + deviceCommandAddress = 0; memset(hidDeviceAliases, 0, sizeof(hidDeviceAliases)); libusb_init(NULL); @@ -94,35 +135,10 @@ bool CWII_IPC_HLE_Device_hid::Close(u32 _CommandAddress, bool _bForce) return true; } -static u32 replyAddress = 0; -static bool hasRun = false; - u32 CWII_IPC_HLE_Device_hid::Update() { - static u16 timeToFill = 0; + u32 work_done = 0; - - if (timeToFill == 0) - { - if (replyAddress != 0){ - FillOutDevices(Memory::Read_U32(replyAddress + 0x18), Memory::Read_U32(replyAddress + 0x1C)); - - Memory::Write_U32(8, replyAddress); - // IOS seems to write back the command that was responded to - Memory::Write_U32(/*COMMAND_IOCTL*/ 6, replyAddress + 8); - - // Return value - Memory::Write_U32(0, replyAddress + 4); - - WII_IPC_HLE_Interface::EnqReply(replyAddress); - replyAddress = 0; - hasRun = false; - } - } - - timeToFill+=8; - - work_done = 1; return work_done; } @@ -141,7 +157,7 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) { DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Get Attached) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", BufferIn, BufferInSize, BufferOut, BufferOutSize); - replyAddress = _CommandAddress; + deviceCommandAddress = _CommandAddress; return false; break; } @@ -175,14 +191,13 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) ERROR CODES: -4 Cant find device specified */ - int ret = -1; u32 dev_num = Memory::Read_U32(BufferIn+0x10); - u8 requestType = Memory::Read_U8(BufferIn+0x14); - u8 request = Memory::Read_U8(BufferIn+0x15); - u16 value = Memory::Read_U16(BufferIn+0x16); - u16 index = Memory::Read_U16(BufferIn+0x18); - u16 size = Memory::Read_U16(BufferIn+0x1A); + u8 bmRequestType = Memory::Read_U8(BufferIn+0x14); + u8 bRequest = Memory::Read_U8(BufferIn+0x15); + u16 wValue = Memory::Read_U16(BufferIn+0x16); + u16 wIndex = Memory::Read_U16(BufferIn+0x18); + u16 wLength = Memory::Read_U16(BufferIn+0x1A); u32 data = Memory::Read_U32(BufferIn+0x1C); ReturnValue = HIDERR_NO_DEVICE_FOUND; @@ -194,25 +209,25 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) DEBUG_LOG(WII_IPC_HID, "Could not find handle: %X", dev_num); break; } + struct libusb_transfer *transfer = libusb_alloc_transfer(0); + transfer->flags |= LIBUSB_TRANSFER_FREE_BUFFER | LIBUSB_TRANSFER_FREE_TRANSFER; - ret = libusb_control_transfer (dev_handle, requestType, request, value, index, (unsigned char*)Memory::GetPointer(data), size, 0); - if(ret>=0) - { - ret += sizeof(libusb_control_setup); - ReturnValue = ret; - } + u8 * buffer = (u8*)malloc(wLength + LIBUSB_CONTROL_SETUP_SIZE); + libusb_fill_control_setup(buffer, bmRequestType, bRequest, wValue, wIndex, wLength); + memcpy(buffer + LIBUSB_CONTROL_SETUP_SIZE, Memory::GetPointer(data), wLength); + libusb_fill_control_transfer(transfer, dev_handle, buffer, handleUsbUpdates, (void*)(size_t)_CommandAddress, /* no timeout */ 0); + libusb_submit_transfer(transfer); - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i) = %d", - requestType, request, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize, ret); + //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Control)(%02X, %02X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + // bmRequestType, bRequest, BufferIn, BufferInSize, BufferOut, BufferOutSize); + // It's the async way! + return false; break; } case IOCTL_HID_INTERRUPT_OUT: case IOCTL_HID_INTERRUPT_IN: { - - int transfered = 0; - int ret; u32 dev_num = Memory::Read_U32(BufferIn+0x10); u32 endpoint = Memory::Read_U32(BufferIn+0x14); u32 length = Memory::Read_U32(BufferIn+0x18); @@ -229,15 +244,17 @@ bool CWII_IPC_HLE_Device_hid::IOCtl(u32 _CommandAddress) break; } - ret = libusb_interrupt_transfer(dev_handle, endpoint, (unsigned char*)Memory::GetPointer(data), length, &transfered, 40 ); - if(ret == 0) - { - ReturnValue = transfered; - } - - DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) = %d (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", - Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, ReturnValue, BufferIn, BufferInSize, BufferOut, BufferOutSize); + struct libusb_transfer *transfer = libusb_alloc_transfer(0); + transfer->flags |= LIBUSB_TRANSFER_FREE_TRANSFER; + libusb_fill_interrupt_transfer(transfer, dev_handle, endpoint, Memory::GetPointer(data), length, + handleUsbUpdates, (void*)(size_t)_CommandAddress, 0); + libusb_submit_transfer(transfer); + //DEBUG_LOG(WII_IPC_HID, "HID::IOCtl(Interrupt %s)(%d,%d,%X) (BufferIn: (%08x, %i), BufferOut: (%08x, %i)", + // Parameter == IOCTL_HID_INTERRUPT_IN ? "In" : "Out", endpoint, length, data, BufferIn, BufferInSize, BufferOut, BufferOutSize); + + // It's the async way! + return false; break; } default: @@ -444,6 +461,7 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize) if(hidDeviceAliases[i] != 0 && check_cur != check) { DEBUG_LOG(WII_IPC_HID, "Removing: device %d %hX %hX", i, check, check_cur); + std::lock_guard lk(s_open_devices); if (open_devices.find(i) != open_devices.end()) { libusb_device_handle *handle = open_devices[i]; @@ -478,6 +496,9 @@ libusb_device_handle * CWII_IPC_HLE_Device_hid::GetDeviceByDevNum(u32 devNum) if(devNum >= MAX_DEVICE_DEVNUM) return NULL; + + std::lock_guard lk(s_open_devices); + if (open_devices.find(devNum) != open_devices.end()) { handle = open_devices[devNum]; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index 58c3c88da2..b0b1dbda46 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -120,6 +120,7 @@ private: } WiiHIDEndpointDescriptor; + u32 deviceCommandAddress; void FillOutDevices(u32 BufferOut, u32 BufferOutSize); int GetAvaiableDevNum(u16 idVendor, u16 idProduct, u8 bus, u8 port, u16 check); @@ -132,10 +133,13 @@ private: int Align(int num, int alignment); static void checkUsbUpdates(CWII_IPC_HLE_Device_hid* hid); + static void handleUsbUpdates(struct libusb_transfer *transfer); struct libusb_device_handle * GetDeviceByDevNum(u32 devNum); std::map open_devices; + std::mutex s_open_devices; std::map device_identifiers; + std::thread usb_thread; bool usb_thread_running; From 08cc460e963f50361678a4b207d8d0c7db349e12 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Tue, 1 Jan 2013 19:49:45 +1300 Subject: [PATCH 27/27] This was not obvious from API docs :( Fixed Win32 builds. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h index b0b1dbda46..3cf9d9add2 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_hid.h @@ -133,7 +133,7 @@ private: int Align(int num, int alignment); static void checkUsbUpdates(CWII_IPC_HLE_Device_hid* hid); - static void handleUsbUpdates(struct libusb_transfer *transfer); + static void LIBUSB_CALL handleUsbUpdates(struct libusb_transfer *transfer); struct libusb_device_handle * GetDeviceByDevNum(u32 devNum); std::map open_devices;