Module: USB
- Defined in:
- lib/libusb/compat.rb
Overview
Compatibility layer for ruby-usb (API based on libusb-0.1)
This module provides some limited compatibility to ruby-usb.
Usage example:
begin
require 'usb'
rescue LoadError
require 'libusb/compat'
end
p USB.devices => [#<USB::Device ...>]
Known issues:
- Exceptions are different between ruby-usb and libusb and they don't get converted
- libusb-1.0 doesn't explicitly manage USB-buses, so only one Bus is used currently
Defined Under Namespace
Classes: Bus, Configuration, DevHandle, Device, Endpoint, Interface, Setting
Constant Summary collapse
- USB_CLASS_PER_INTERFACE =
LIBUSB::CLASS_PER_INTERFACE
- USB_CLASS_AUDIO =
LIBUSB::CLASS_AUDIO
- USB_CLASS_COMM =
LIBUSB::CLASS_COMM
- USB_CLASS_HID =
LIBUSB::CLASS_HID
- USB_CLASS_PRINTER =
LIBUSB::CLASS_PRINTER
- USB_CLASS_PTP =
LIBUSB::CLASS_PTP
- USB_CLASS_MASS_STORAGE =
LIBUSB::CLASS_MASS_STORAGE
- USB_CLASS_HUB =
LIBUSB::CLASS_HUB
- USB_CLASS_DATA =
LIBUSB::CLASS_DATA
- USB_CLASS_VENDOR_SPEC =
LIBUSB::CLASS_VENDOR_SPEC
- USB_DT_DEVICE =
LIBUSB::DT_DEVICE
- USB_DT_CONFIG =
LIBUSB::DT_CONFIG
- USB_DT_STRING =
LIBUSB::DT_STRING
- USB_DT_INTERFACE =
LIBUSB::DT_INTERFACE
- USB_DT_ENDPOINT =
LIBUSB::DT_ENDPOINT
- USB_DT_HID =
LIBUSB::DT_HID
- USB_DT_REPORT =
LIBUSB::DT_REPORT
- USB_DT_PHYSICAL =
LIBUSB::DT_PHYSICAL
- USB_DT_HUB =
LIBUSB::DT_HUB
- USB_DT_DEVICE_SIZE =
LIBUSB::DT_DEVICE_SIZE
- USB_DT_CONFIG_SIZE =
LIBUSB::DT_CONFIG_SIZE
- USB_DT_INTERFACE_SIZE =
LIBUSB::DT_INTERFACE_SIZE
- USB_DT_ENDPOINT_SIZE =
LIBUSB::DT_ENDPOINT_SIZE
- USB_DT_ENDPOINT_AUDIO_SIZE =
LIBUSB::DT_ENDPOINT_AUDIO_SIZE
- USB_DT_HUB_NONVAR_SIZE =
LIBUSB::DT_HUB_NONVAR_SIZE
- USB_ENDPOINT_ADDRESS_MASK =
LIBUSB::ENDPOINT_ADDRESS_MASK
- USB_ENDPOINT_DIR_MASK =
LIBUSB::ENDPOINT_DIR_MASK
- USB_ENDPOINT_IN =
LIBUSB::ENDPOINT_IN
- USB_ENDPOINT_OUT =
LIBUSB::ENDPOINT_OUT
- USB_ENDPOINT_TYPE_MASK =
LIBUSB::TRANSFER_TYPE_MASK
- USB_ENDPOINT_TYPE_CONTROL =
LIBUSB::TRANSFER_TYPE_CONTROL
- USB_ENDPOINT_TYPE_ISOCHRONOUS =
LIBUSB::TRANSFER_TYPE_ISOCHRONOUS
- USB_ENDPOINT_TYPE_BULK =
LIBUSB::TRANSFER_TYPE_BULK
- USB_ENDPOINT_TYPE_INTERRUPT =
LIBUSB::TRANSFER_TYPE_INTERRUPT
- USB_REQ_GET_STATUS =
LIBUSB::REQUEST_GET_STATUS
- USB_REQ_CLEAR_FEATURE =
LIBUSB::REQUEST_CLEAR_FEATURE
- USB_REQ_SET_FEATURE =
LIBUSB::REQUEST_SET_FEATURE
- USB_REQ_SET_ADDRESS =
LIBUSB::REQUEST_SET_ADDRESS
- USB_REQ_GET_DESCRIPTOR =
LIBUSB::REQUEST_GET_DESCRIPTOR
- USB_REQ_SET_DESCRIPTOR =
LIBUSB::REQUEST_SET_DESCRIPTOR
- USB_REQ_GET_CONFIGURATION =
LIBUSB::REQUEST_GET_CONFIGURATION
- USB_REQ_SET_CONFIGURATION =
LIBUSB::REQUEST_SET_CONFIGURATION
- USB_REQ_GET_INTERFACE =
LIBUSB::REQUEST_GET_INTERFACE
- USB_REQ_SET_INTERFACE =
LIBUSB::REQUEST_SET_INTERFACE
- USB_REQ_SYNCH_FRAME =
LIBUSB::REQUEST_SYNCH_FRAME
- USB_TYPE_STANDARD =
LIBUSB::REQUEST_TYPE_STANDARD
- USB_TYPE_CLASS =
LIBUSB::REQUEST_TYPE_CLASS
- USB_TYPE_VENDOR =
LIBUSB::REQUEST_TYPE_VENDOR
- USB_TYPE_RESERVED =
LIBUSB::REQUEST_TYPE_RESERVED
- USB_RECIP_DEVICE =
LIBUSB::RECIPIENT_DEVICE
- USB_RECIP_INTERFACE =
LIBUSB::RECIPIENT_INTERFACE
- USB_RECIP_ENDPOINT =
LIBUSB::RECIPIENT_ENDPOINT
- USB_RECIP_OTHER =
LIBUSB::RECIPIENT_OTHER
- HAS_GET_DRIVER_NP =
!FFI::Platform.windows?
- HAS_DETACH_KERNEL_DRIVER_NP =
!FFI::Platform.windows?
- USB_MAXENDPOINTS =
not defined by libusb-1.0, but typical values are:
32- USB_MAXINTERFACES =
32- USB_MAXALTSETTING =
128- USB_MAXCONFIG =
8