dxd - dynax driver framework  3208
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::usb::interface Class Reference

#include <dx_usb_device.h>

+ Inheritance diagram for dx::usb::interface:
+ Collaboration diagram for dx::usb::interface:

Public Member Functions

interfaceinfo () noexcept
 
interfaceinfo () noexcept
 
 interface (::WINUSB_INTERFACE_HANDLE handle, decltype(descriptor::head)*raw, unsigned int length, const dx::log &log={})
 
 interface (io_object_t io_object, decltype(descriptor::head)*raw, unsigned int length, const dx::log &log={})
 
::IOUSBInterfaceInterface650 * operator-> () const
 
 operator::IOUSBInterfaceInterface650 ** () const
 
 operator::WINUSB_INTERFACE_HANDLE () const
 
interfaceoperator[] (unsigned char setting)
 
interfaceoperator[] (unsigned char setting)
 
template<size_t size = 0x100>
std::string string (unsigned char idx, enum language language=language::standard) const
 
template<size_t size = 0x100>
std::string string (unsigned char idx) const
 
template<typename data_t >
interfacesubmit (const request< data_t > &request) const
 
template<typename data_t >
data_t submit (const control &control) const
 
template<typename data_t >
interfacesubmit (const request< data_t > &request, unsigned char idx=0) const
 
template<typename data_t >
data_t submit (const control &control, unsigned char idx=0) const
 
virtual ~interface () noexcept
 
 ~interface () noexcept
 

Public Attributes

std::deque< union audio
<>::descriptor::interface > 
audio
 
std::deque< union audio
<>::descriptor::interface > 
audio
 
std::deque< __endpointendpoint
 
std::deque< _endpointendpoint
 
dx::log log {}
 
 runloop
 

Protected Member Functions

void initialize (::IOCFPlugInInterface **cf_interface,::CFUUIDRef uuid)
 
void initialize (io_object_t io_object,::CFUUIDRef type,::CFUUIDRef uuid)
 

Protected Attributes

::WINUSB_INTERFACE_HANDLE handle
 

Constructor & Destructor Documentation

dx::usb::interface::interface ( io_object_t  io_object,
decltype(descriptor::head)*  raw,
unsigned int  length,
const dx::log log = {} 
)
inline

create and attach runloop source of asynchronous interface operation

dx::usb::interface::~interface ( )
inlinenoexcept
dx::usb::interface::interface ( ::WINUSB_INTERFACE_HANDLE  handle,
decltype(descriptor::head)*  raw,
unsigned int  length,
const dx::log log = {} 
)
inline
virtual dx::usb::interface::~interface ( )
inlinevirtualnoexcept

Member Function Documentation

interface& dx::usb::interface::info ( )
inlinenoexcept

< BCD: Audio Device Class Specification Release Number in Binary-Coded Decimal.

< Constant, indicating the primary use of this audio function, as intended by the manufacturer. See Appendix A.7, “Audio Function Category Codes.”

< Total number of bytes returned for the class-specific AudioControl interface descriptor. Includes the combined length of this descriptor header and all Clock Source, Unit and Terminal descriptors.

< D1..0: Latency Control; D7..2: Reserved. Must be set to 0.

< Constant uniquely identifying the Terminal within the audio function. This value is used in all requests to address this Terminal.

< Constant characterizing the type of Terminal. See USB Audio Terminal Types.

< ID of the Output Terminal to which this Input Terminal is associated.

< ID of the Clock Entity to which this Input Terminal is connected.

< Number of logical output channels in the Terminal’s output audio channel cluster.

< Describes the spatial location of the logical channels.

< Index of a string descriptor, describing the name of the first logical channel.

< D1..0: Copy Protect Control D3..2: Connector Control D5..4: Overload Control D7..6: Cluster Control D9..8: Underflow Control D11..10: Overflow Control D15..12: Reserved. Must be set to 0.

< Index of a string descriptor, describing the Input Terminal.

< Constant uniquely identifying the Terminal within the audio function. This value is used in all requests to address this Terminal.

< Constant characterizing the type of Terminal. See USB Audio Terminal Types.

< ID of the Output Terminal to which this Input Terminal is associated.

< ID of the Unit or Terminal to which this Terminal is connected.

< ID of the Clock Entity to which this Input Terminal is connected.

< D1..0: Copy Protect Control D3..2: Connector Control D5..4: Overload Control D7..6: Cluster Control D9..8: Underflow Control D11..10: Overflow Control D15..12: Reserved. Must be set to 0.

< Index of a string descriptor, describing the Input Terminal.

< Constant uniquely identifying the Unit within the audio function. This value is used in all requests to address this Unit.

< ID of the Unit or Terminal to which this Feature Unit is connected.

< The Controls bitmap for master channel 0: D1..0: Mute Control; D3..2: Volume Control; D5..4: Bass Control; D7..6: Mid Control; D9..8: Treble Control; D11..10: Graphic Equalizer Control; D13..12: Automatic Gain Control; D15..14: Delay Control; D17..16: Bass Boost Control; D19..18: Loudness Control; D21..20: Input Gain Control; D23..22: Input Gain Pad Control; D25..24: Phase Inverter Control; D27..26: Underflow Control; D29..28: Overfow Control; D31..30: Reserved. Must be set to 0.

< Constant uniquely identifying the Clock Source Entity within the audio function. This value is used in all requests to address this Entity.

< D1..0: Clock Type: 00: External Clock 01: Internal fixed Clock 10: Internal variable Clock Internal programmable Clock 11:; D2: Clock synchronized to SOF D7..3: Must be set to 0.

< D1..0: Clock Frequency Control D3..2: Clock Validity Control; D7..4: Reserved. Must be set to 0.

< Terminal ID of the Terminal that is associated with this Clock Source.

< Index of a string descriptor, describing the Clock Source Entity.

< The Terminal ID of the Terminal to which this interface is connected.

< D1..0: Active Alternate Setting Control; D3..2: Valid Alternate Settings Control; D7..4: Reserved. Must be set to 0.

< Constant identifying the Format Type the AudioStreaming interface is using.

< The Audio Data Format(s) that can be used to communicate with this interface. See the USB Audio Data Formats document for further details.

< Number of physical channels in the AS Interface audio channel cluster.

< Describes the spatial location of the physical channels.

< Index of a string descriptor, describing the name of the first physical channel.

< FORMAT_TYPE_I. Constant identifying the Format Type the AudioStreaming interface is using.

< The number of bytes occupied by one audio subslot. Can be 1, 2, 3 or 4.

< The number of effectively used bits from the available bits in an audio subslot.

< Constant uniquely identifying the encoder within the interface. This value is used in all requests to address this encoder.

< Constant identifying the encoder. See Appendix A.15, “Encoder Type Codes.”

< D1..0: Bit Rate Control; D3..2: Quality Control; D5..4: VBR Control; D7..6: Type Control; D9..8: Underflow Control; D11..10: Overflow Control; D13..12: Encoder Error Control; D15..14: Param1 Control; D17..16: Param2 Control; D19..18: Param3 Control; D21..20: Param4 Control; D23..22: Param5 Control; D25..24: Param6 Control; D27..26: Param7 Control; D29..28: Param8 Control; D31..30: Reserved. Must be set to 0.

< Index of a string descriptor, describing the purpose of Param[n].

< Index of a string descriptor, describing the encoder.

< Revision of this class specification.

< Total size of class-specific descriptors.

< EMBEDDED or EXTERNAL

< Constant uniquely identifying the MIDI IN/OUT Jack within the USB-MIDI function.

< Index of a string descriptor, describing the encoder.

< Number of Input Pins of this MIDI OUT Jack: p

< ID of the Entity to which the n-th Input Pin of this MIDI OUT Jack is connected.

< Output Pin number of the Entity to which the n-th Input Pin of this MIDI OUT Jack is connected.

< Index of a string descriptor, describing the MIDI OUT Jack.

+ Here is the call graph for this function:

interface& dx::usb::interface::info ( )
inlinenoexcept

< BCD: Audio Device Class Specification Release Number in Binary-Coded Decimal.

< Constant, indicating the primary use of this audio function, as intended by the manufacturer. See Appendix A.7, “Audio Function Category Codes.”

< Total number of bytes returned for the class-specific AudioControl interface descriptor. Includes the combined length of this descriptor header and all Clock Source, Unit and Terminal descriptors.

< D1..0: Latency Control; D7..2: Reserved. Must be set to 0.

< Constant uniquely identifying the Terminal within the audio function. This value is used in all requests to address this Terminal.

< Constant characterizing the type of Terminal. See USB Audio Terminal Types.

< ID of the Output Terminal to which this Input Terminal is associated.

< ID of the Clock Entity to which this Input Terminal is connected.

< Number of logical output channels in the Terminal’s output audio channel cluster.

< Describes the spatial location of the logical channels.

< Index of a string descriptor, describing the name of the first logical channel.

< D1..0: Copy Protect Control D3..2: Connector Control D5..4: Overload Control D7..6: Cluster Control D9..8: Underflow Control D11..10: Overflow Control D15..12: Reserved. Must be set to 0.

< Index of a string descriptor, describing the Input Terminal.

< Constant uniquely identifying the Terminal within the audio function. This value is used in all requests to address this Terminal.

< Constant characterizing the type of Terminal. See USB Audio Terminal Types.

< ID of the Output Terminal to which this Input Terminal is associated.

< ID of the Unit or Terminal to which this Terminal is connected.

< ID of the Clock Entity to which this Input Terminal is connected.

< D1..0: Copy Protect Control D3..2: Connector Control D5..4: Overload Control D7..6: Cluster Control D9..8: Underflow Control D11..10: Overflow Control D15..12: Reserved. Must be set to 0.

< Index of a string descriptor, describing the Input Terminal.

< Constant uniquely identifying the Unit within the audio function. This value is used in all requests to address this Unit.

< ID of the Unit or Terminal to which this Feature Unit is connected.

< The Controls bitmap for master channel 0: D1..0: Mute Control; D3..2: Volume Control; D5..4: Bass Control; D7..6: Mid Control; D9..8: Treble Control; D11..10: Graphic Equalizer Control; D13..12: Automatic Gain Control; D15..14: Delay Control; D17..16: Bass Boost Control; D19..18: Loudness Control; D21..20: Input Gain Control; D23..22: Input Gain Pad Control; D25..24: Phase Inverter Control; D27..26: Underflow Control; D29..28: Overfow Control; D31..30: Reserved. Must be set to 0.

< Constant uniquely identifying the Clock Source Entity within the audio function. This value is used in all requests to address this Entity.

< D1..0: Clock Type: 00: External Clock 01: Internal fixed Clock 10: Internal variable Clock Internal programmable Clock 11:; D2: Clock synchronized to SOF D7..3: Must be set to 0.

< D1..0: Clock Frequency Control D3..2: Clock Validity Control; D7..4: Reserved. Must be set to 0.

< Terminal ID of the Terminal that is associated with this Clock Source.

< Index of a string descriptor, describing the Clock Source Entity.

< The Terminal ID of the Terminal to which this interface is connected.

< D1..0: Active Alternate Setting Control; D3..2: Valid Alternate Settings Control; D7..4: Reserved. Must be set to 0.

< Constant identifying the Format Type the AudioStreaming interface is using.

< The Audio Data Format(s) that can be used to communicate with this interface. See the USB Audio Data Formats document for further details.

< Number of physical channels in the AS Interface audio channel cluster.

< Describes the spatial location of the physical channels.

< Index of a string descriptor, describing the name of the first physical channel.

< FORMAT_TYPE_I. Constant identifying the Format Type the AudioStreaming interface is using.

< The number of bytes occupied by one audio subslot. Can be 1, 2, 3 or 4.

< The number of effectively used bits from the available bits in an audio subslot.

< Constant uniquely identifying the encoder within the interface. This value is used in all requests to address this encoder.

< Constant identifying the encoder. See Appendix A.15, “Encoder Type Codes.”

< D1..0: Bit Rate Control; D3..2: Quality Control; D5..4: VBR Control; D7..6: Type Control; D9..8: Underflow Control; D11..10: Overflow Control; D13..12: Encoder Error Control; D15..14: Param1 Control; D17..16: Param2 Control; D19..18: Param3 Control; D21..20: Param4 Control; D23..22: Param5 Control; D25..24: Param6 Control; D27..26: Param7 Control; D29..28: Param8 Control; D31..30: Reserved. Must be set to 0.

< Index of a string descriptor, describing the purpose of Param[n].

< Index of a string descriptor, describing the encoder.

< Revision of this class specification.

< Total size of class-specific descriptors.

< EMBEDDED or EXTERNAL

< Constant uniquely identifying the MIDI IN/OUT Jack within the USB-MIDI function.

< Index of a string descriptor, describing the encoder.

< Number of Input Pins of this MIDI OUT Jack: p

< ID of the Entity to which the n-th Input Pin of this MIDI OUT Jack is connected.

< Output Pin number of the Entity to which the n-th Input Pin of this MIDI OUT Jack is connected.

< Index of a string descriptor, describing the MIDI OUT Jack.

+ Here is the call graph for this function:

void dx::cf::interface< ::IOUSBInterfaceInterface650 >::initialize ( ::IOCFPlugInInterface **  cf_interface,
::CFUUIDRef  uuid 
)
inlineprotectedinherited
void dx::cf::interface< ::IOUSBInterfaceInterface650 >::initialize ( io_object_t  io_object,
::CFUUIDRef  type,
::CFUUIDRef  uuid 
)
protectedinherited
::IOUSBInterfaceInterface650 * dx::cf::interface< ::IOUSBInterfaceInterface650 >::operator-> ( ) const
inlineinherited
dx::cf::interface< ::IOUSBInterfaceInterface650 >::operator ::IOUSBInterfaceInterface650 ** ( ) const
inlineinherited
dx::usb::interface::operator::WINUSB_INTERFACE_HANDLE ( ) const
inline
interface& dx::usb::interface::operator[] ( unsigned char  setting)
inline
interface& dx::usb::interface::operator[] ( unsigned char  setting)
inline
template<size_t size = 0x100>
std::string dx::usb::interface::string ( unsigned char  idx,
enum language  language = language::standard 
) const
inline

+ Here is the call graph for this function:

template<size_t size = 0x100>
std::string dx::usb::interface::string ( unsigned char  idx) const
inline

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename data_t >
interface& dx::usb::interface::submit ( const request< data_t > &  request) const
inline
template<typename data_t >
data_t dx::usb::interface::submit ( const control control) const
inline
template<typename data_t >
interface& dx::usb::interface::submit ( const request< data_t > &  request,
unsigned char  idx = 0 
) const
inline

+ Here is the caller graph for this function:

template<typename data_t >
data_t dx::usb::interface::submit ( const control control,
unsigned char  idx = 0 
) const
inline

Member Data Documentation

std::deque<union audio<>::descriptor::interface> dx::usb::__interface::audio
inherited
std::deque<union audio<>::descriptor::interface> dx::usb::_interface::audio
inherited
std::deque<__endpoint> dx::usb::__interface::endpoint
inherited
std::deque<_endpoint> dx::usb::_interface::endpoint
inherited
::WINUSB_INTERFACE_HANDLE dx::usb::interface::handle
protected
dx::log dx::usb::interface::log {}
dx::usb::interface::runloop

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

(c) copyright 2009 dynamic acoustics e.U. generated on Wed Jun 17 2020

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.