@si14/si-usbd
usbd::UsbInterface Class Referenceabstract

USB interface base class. More...

Collaboration diagram for usbd::UsbInterface:

Public Member Functions

virtual void init ()
 
virtual UsbEndpointgetEndpoint (int index)=0
 
virtual void setup (SetupData *setupData)
 
virtual void checkDescriptor (InterfaceDescriptor *interfaceDesriptor)
 
virtual const char * getLabel ()
 

Public Attributes

UsbDevicedevice
 

Detailed Description

USB interface base class.

Interface usually has one or more endpoints.

Typical subclass of UsbInterface class looks like:

class TestInterface : public usbd::UsbInterface {
public:
TestEndpoint testEndpoint;
virtual UsbEndpoint *getEndpoint(int index) { return index == 0 ? &testEndpoint : NULL; }
};

Member Function Documentation

◆ checkDescriptor()

virtual void usbd::UsbInterface::checkDescriptor ( InterfaceDescriptor *  interfaceDesriptor)
inlinevirtual

Called when generating interface descriptor.

Called internally from the library.

May be overloaded to modify the default descriptor.

Parameters
interfaceDesriptor

◆ getEndpoint()

virtual UsbEndpoint* usbd::UsbInterface::getEndpoint ( int  index)
pure virtual

Gets endpoint by index.

Must be overloaded by the subclass.

Called internally from the library.

Parameters
indexzero based in scope of interface
Returns
UsbEndpoint*

◆ getLabel()

virtual const char* usbd::UsbInterface::getLabel ( )
inlinevirtual

Get string identifier of the interface.

May be overloaded by the subclass.

Returns
const char*

◆ init()

virtual void usbd::UsbInterface::init ( )
inlinevirtual

Interface initialization.

Called internally from the library.

UsbEndpoint::init() is responsible for calling init() method of endpoints.

◆ setup()

virtual void usbd::UsbInterface::setup ( SetupData *  setupData)
inlinevirtual

Handler of interface control request.

May be overloaded to implement vendor request.

Parameters
setupData

Member Data Documentation

◆ device

UsbDevice* usbd::UsbInterface::device

Owner device. This property is set internally by the library.


The documentation for this class was generated from the following file:
usbd::UsbInterface::getEndpoint
virtual UsbEndpoint * getEndpoint(int index)=0
usbd::UsbInterface
USB interface base class.
Definition: usb-interface.cpp:19