Open Lighting Architecture  Latest Git
Public Member Functions | List of all members
ola::usb::SynchronousLibUsbAdaptor Class Reference

Detailed Description

A LibUsbAdaptor for use with Synchronous widgets.

When using synchronous mode, we don't have the requirement of interacting with a LibUsbThread.

Inheritance diagram for ola::usb::SynchronousLibUsbAdaptor:
Inheritance graph
[legend]
Collaboration diagram for ola::usb::SynchronousLibUsbAdaptor:
Collaboration graph
[legend]

Public Member Functions

bool OpenDevice (libusb_device *usb_device, libusb_device_handle **usb_handle)
 Open a libusb device. More...
 
bool OpenDeviceAndClaimInterface (libusb_device *usb_device, int interface, libusb_device_handle **usb_handle)
 Open a libusb device and claim an interface. More...
 
void Close (libusb_device_handle *usb_handle)
 Close a libusb handle. More...
 
- Public Member Functions inherited from ola::usb::BaseLibUsbAdaptor
libusb_device * RefDevice (libusb_device *dev)
 Wraps libusb_ref_device. More...
 
void UnrefDevice (libusb_device *dev)
 Wraps libusb_unref_device. More...
 
int SetConfiguration (libusb_device_handle *dev, int configuration)
 Wraps libusb_set_configuration. More...
 
int ClaimInterface (libusb_device_handle *dev, int interface_number)
 Wraps libusb_claim_interface. More...
 
int DetachKernelDriver (libusb_device_handle *dev, int interface_number)
 Detach a kernel driver. More...
 
int GetDeviceDescriptor (libusb_device *dev, struct libusb_device_descriptor *descriptor)
 Wraps libusb_get_device_descriptor. More...
 
int GetActiveConfigDescriptor (libusb_device *dev, struct libusb_config_descriptor **config)
 Wraps libusb_get_active_config_descriptor. More...
 
int GetConfigDescriptor (libusb_device *dev, uint8_t config_index, struct libusb_config_descriptor **config)
 Wraps libusb_get_config_descriptor. More...
 
void FreeConfigDescriptor (struct libusb_config_descriptor *config)
 Wraps busb_free_config_descriptor. More...
 
bool GetStringDescriptor (libusb_device_handle *usb_handle, uint8_t descriptor_index, std::string *data)
 Get the value of a string descriptor. More...
 
struct libusb_transfer * AllocTransfer (int iso_packets)
 Wraps libusb_alloc_transfer. More...
 
void FreeTransfer (struct libusb_transfer *transfer)
 Wraps libusb_free_transfer. More...
 
int SubmitTransfer (struct libusb_transfer *transfer)
 Wraps libusb_submit_transfer. More...
 
int CancelTransfer (struct libusb_transfer *transfer)
 Wraps libusb_cancel_transfer. More...
 
void FillControlSetup (unsigned char *buffer, uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, uint16_t wLength)
 Wraps libusb_fill_control_setup. More...
 
void FillControlTransfer (struct libusb_transfer *transfer, libusb_device_handle *dev_handle, unsigned char *buffer, libusb_transfer_cb_fn callback, void *user_data, unsigned int timeout)
 Wraps libusb_fill_control_transfer. More...
 
void FillBulkTransfer (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)
 Wraps libusb_fill_bulk_transfer. More...
 
void FillInterruptTransfer (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)
 Wraps libusb_fill_interrupt_transfer. More...
 
int ControlTransfer (libusb_device_handle *dev_handle, uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, unsigned char *data, uint16_t wLength, unsigned int timeout)
 Wraps libusb_control_transfer(). More...
 
int BulkTransfer (struct libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *data, int length, int *transferred, unsigned int timeout)
 Wraps libusb_bulk_transfer. More...
 
int InterruptTransfer (libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *data, int length, int *actual_length, unsigned int timeout)
 Wraps libusb_interrupt_transfer. More...
 
USBDeviceID GetDeviceId (libusb_device *device) const
 Get the USBDeviceID for a device. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ola::usb::LibUsbAdaptor
static bool Initialize (struct libusb_context **context)
 Initialize a new libusb context. More...
 
static bool GetDeviceInfo (struct libusb_device *usb_device, const struct libusb_device_descriptor &device_descriptor, DeviceInformation *device_info)
 Fetch the manufacturer, product and serial strings from a device. More...
 
static bool CheckManufacturer (const std::string &expected, const DeviceInformation &device_info)
 Check if the manufacturer string matches the expected value. More...
 
static bool CheckProduct (const std::string &expected, const DeviceInformation &device_info)
 Check if the product string matches the expected value. More...
 
static bool HotplugSupported ()
 Check if this platform supports hotplug. More...
 
static std::string ErrorCodeToString (const int error_code)
 Try and convert an error code to a string. More...
 

Member Function Documentation

◆ Close()

void ola::usb::SynchronousLibUsbAdaptor::Close ( libusb_device_handle *  usb_handle)
virtual

Close a libusb handle.

Parameters
usb_handlethe handle to close.

Implements ola::usb::LibUsbAdaptor.

◆ OpenDevice()

bool ola::usb::SynchronousLibUsbAdaptor::OpenDevice ( libusb_device *  usb_device,
libusb_device_handle **  usb_handle 
)
virtual

Open a libusb device.

Parameters
usb_deviceThe usb device to open.
[out]usb_handlethe new device handle.
Returns
true if the device was opened, false otherwise.

Implements ola::usb::LibUsbAdaptor.

◆ OpenDeviceAndClaimInterface()

bool ola::usb::SynchronousLibUsbAdaptor::OpenDeviceAndClaimInterface ( libusb_device *  usb_device,
int  interface,
libusb_device_handle **  usb_handle 
)
virtual

Open a libusb device and claim an interface.

Parameters
usb_deviceThe usb device to open.
interfacethe interface index to claim.
[out]usb_handlethe new device handle.
Returns
true if the device was opened and the interface claimed, false otherwise.

Implements ola::usb::LibUsbAdaptor.


The documentation for this class was generated from the following files: