diff options
author | Pete Batard <pbatard@gmail.com> | 2010-01-15 12:35:02 +0000 |
---|---|---|
committer | Pete Batard <pbatard@gmail.com> | 2010-01-15 12:35:02 +0000 |
commit | b96e16e75ffc2b3bdd76ec5457d37d092f0a2590 (patch) | |
tree | 21ad3867b7e663edf6511c511f2ecb0f0a9a7ba6 /libusb/libusb.h | |
parent | 8981e69c7da1c6b8c9e97510bd5b1dd137e50cdb (diff) | |
download | libusb-b96e16e75ffc2b3bdd76ec5457d37d092f0a2590.tar.gz |
r80: workaround for interface macro redefinition on Windows (removes the need for #undef interface in end user sources)
Diffstat (limited to 'libusb/libusb.h')
-rw-r--r-- | libusb/libusb.h | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/libusb/libusb.h b/libusb/libusb.h index 46a5006..d345727 100644 --- a/libusb/libusb.h +++ b/libusb/libusb.h @@ -22,8 +22,7 @@ #define __LIBUSB_H__ #include <stdint.h> -#if defined(_MSC_VER) -#define inline __inline +#ifdef _MSC_VER #include <time.h> #else #include <sys/time.h> @@ -32,6 +31,15 @@ #include <time.h> #include <limits.h> +// Work around for Windows "interface" macro redefinition +#ifdef _MSC_VER +#define inline __inline +#pragma push_macro("interface") +#endif +#ifndef interface +#define interface usb_interface +#endif + #ifdef __cplusplus extern "C" { #endif @@ -496,7 +504,7 @@ struct libusb_config_descriptor { /** Array of interfaces supported by this configuration. The length of * this array is determined by the bNumInterfaces field. */ - const struct libusb_interface *interface; + const struct libusb_interface *usb_interface; /** Extra descriptors. If libusb encounters unknown configuration * descriptors, it will store them here, should you wish to parse them. */ @@ -800,8 +808,8 @@ void libusb_close(libusb_device_handle *dev_handle); libusb_device *libusb_get_device(libusb_device_handle *dev_handle); int libusb_set_configuration(libusb_device_handle *dev, int configuration); -int libusb_claim_interface(libusb_device_handle *dev, int iface); -int libusb_release_interface(libusb_device_handle *dev, int iface); +int libusb_claim_interface(libusb_device_handle *dev, int interface_number); +int libusb_release_interface(libusb_device_handle *dev, int interface_number); libusb_device_handle *libusb_open_device_with_vid_pid(libusb_context *ctx, uint16_t vendor_id, uint16_t product_id); @@ -811,9 +819,9 @@ int libusb_set_interface_alt_setting(libusb_device_handle *dev, int libusb_clear_halt(libusb_device_handle *dev, unsigned char endpoint); int libusb_reset_device(libusb_device_handle *dev); -int libusb_kernel_driver_active(libusb_device_handle *dev, int interface); -int libusb_detach_kernel_driver(libusb_device_handle *dev, int interface); -int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface); +int libusb_kernel_driver_active(libusb_device_handle *dev, int interface_number); +int libusb_detach_kernel_driver(libusb_device_handle *dev, int interface_number); +int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface_number); /* async I/O */ @@ -1237,4 +1245,7 @@ void libusb_set_pollfd_notifiers(libusb_context *ctx, } #endif +#ifdef _MSC_VER +#pragma pop_macro("interface") +#endif #endif |