dxd - dynax driver framework  3129
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::usb::pipe< device_t > Class Template Reference

#include <dx_usb_device.h>

+ Inheritance diagram for dx::usb::pipe< device_t >:
+ Collaboration diagram for dx::usb::pipe< device_t >:

Public Types

enum  type : unsigned char { type::control =::kUSBControl, type::isoc = ::kUSBIsoc, type::bulk = ::kUSBBulk, type::irq = ::kUSBInterrupt }
 

Public Member Functions

pipeabort ()
 
pipeclear ()
 
uint64_t frame ()
 
bool in () const noexcept
 bus initializer (isoc, bulk, pci, etc.) compatibility More...
 
pipeinfo () noexcept
 
pipemax_frame_size (unsigned int frame_size)
 
 operator const os_event () const noexcept
 
 operator os_event () noexcept
 
template<typename data_t >
pipeoperator<< (const data_t &data)
 
template<typename data_t >
pipeoperator>> (data_t &data)
 
 pipe (device_t &device, const endpoint &endpoint)
 
piperead (void *data, size_t size)
 synchronous USB read request More...
 
pipereceive (void *data, size_t size)
 asynchronous USB read request More...
 
pipereceive (void *data, uint64_t &sequence,::IOUSBIsocFrame *frame, int frames=1)
 asynchronous USB isoc read request More...
 
void reset ()
 
void signal ()
 
pipetransmit (const void *data, size_t size)
 asynchronous USB write request More...
 
pipetransmit (const void *data, uint64_t &sequence,::IOUSBIsocFrame *frame, int frames=1)
 asynchronous USB isoc write request More...
 
void wait (int64_t timeout=0)
 
pipewrite (const void *data, size_t size)
 synchronous USB write request More...
 

Static Public Member Functions

static void wait (::HANDLE handle, int64_t timeout=0)
 

Public Attributes

std::deque< union audio
<>::descriptor::endpoint > 
audio
 
dx::log log {}
 
decltype(descriptor::endpoint)
typedef 
super
 
enum dx::usb::pipe::type type
 
unsigned int micro_frames = 0
 

Protected Member Functions

virtual void exception (const dx::exception &exception) noexcept
 
virtual void received (os_result, size_t)
 
virtual void received (os_result, size_t, int64_t)
 
virtual void transmitted (os_result, size_t)
 
virtual void transmitted (os_result, size_t, int64_t)
 
virtual ~pipe () noexcept
 

Protected Attributes

device_t & device
 
interfaceinterface
 
struct {
   unsigned int   micro_frames = 0
 
isoc
 

Member Enumeration Documentation

template<typename device_t = device>
enum dx::usb::pipe::type : unsigned char
strong
Enumerator
control 
isoc 
bulk 
irq 

Constructor & Destructor Documentation

template<typename device_t = device>
virtual dx::usb::pipe< device_t >::~pipe ( )
inlineprotectedvirtualnoexcept

+ Here is the call graph for this function:

template<typename device_t = device>
dx::usb::pipe< device_t >::pipe ( device_t &  device,
const endpoint endpoint 
)
inline

+ Here is the call graph for this function:

Member Function Documentation

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::abort ( )
inline

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::clear ( )
inline

+ Here is the caller graph for this function:

template<typename device_t = device>
virtual void dx::usb::pipe< device_t >::exception ( const dx::exception exception)
inlineprotectedvirtualnoexcept

+ Here is the caller graph for this function:

template<typename device_t = device>
uint64_t dx::usb::pipe< device_t >::frame ( )
inline
template<typename device_t = device>
bool dx::usb::pipe< device_t >::in ( ) const
inlinenoexcept

bus initializer (isoc, bulk, pci, etc.) compatibility

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::info ( )
inlinenoexcept

< Bit D7 indicates a requirement for wMaxPacketSize packets.; D7: MaxPacketsOnly

< D1..0: Pitch Control; D3..2: Data Overrun Control; D5..4: Data Underrun Control; D7..6: Reserved. Must be set to 0.

< Indicates the units used for the wLockDelay field: 0: Undefined; 1: Milliseconds; 2: Decoded PCM samples; 3..255: Reserved

< Indicates the time it takes this endpoint to reliably lock its internal clock recovery circuitry. Units used depend on the value of the bLockDelayUnits field.

< Number of Embedded MIDI Jacks: n.

< ID of the n-th Embedded Jack that is associated with this endpoint.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::max_frame_size ( unsigned int  frame_size)
inline

+ Here is the caller graph for this function:

dx::event< dx::kernel >::operator const os_event ( ) const
inlinenoexceptinherited
dx::event< dx::kernel >::operator os_event ( )
inlinenoexceptinherited
template<typename device_t = device>
template<typename data_t >
pipe& dx::usb::pipe< device_t >::operator<< ( const data_t &  data)
inline

+ Here is the call graph for this function:

template<typename device_t = device>
template<typename data_t >
pipe& dx::usb::pipe< device_t >::operator>> ( data_t &  data)
inline

+ Here is the call graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::read ( void *  data,
size_t  size 
)
inline

synchronous USB read request

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::receive ( void *  data,
size_t  size 
)
inline

asynchronous USB read request

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::receive ( void *  data,
uint64_t sequence,
::IOUSBIsocFrame *  frame,
int  frames = 1 
)
inline

asynchronous USB isoc read request

template<typename device_t = device>
virtual void dx::usb::pipe< device_t >::received ( os_result  ,
size_t   
)
inlineprotectedvirtual
template<typename device_t = device>
virtual void dx::usb::pipe< device_t >::received ( os_result  ,
size_t  ,
int64_t   
)
inlineprotectedvirtual
void dx::event< dx::kernel >::reset ( )
inlineinherited
void dx::event< dx::kernel >::signal ( )
inlineinherited

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::transmit ( const void *  data,
size_t  size 
)
inline

asynchronous USB write request

+ Here is the caller graph for this function:

template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::transmit ( const void *  data,
uint64_t sequence,
::IOUSBIsocFrame *  frame,
int  frames = 1 
)
inline

asynchronous USB isoc write request

template<typename device_t = device>
virtual void dx::usb::pipe< device_t >::transmitted ( os_result  ,
size_t   
)
inlineprotectedvirtual
template<typename device_t = device>
virtual void dx::usb::pipe< device_t >::transmitted ( os_result  ,
size_t  ,
int64_t   
)
inlineprotectedvirtual
static void dx::event< dx::kernel >::wait ( ::HANDLE  handle,
int64_t  timeout = 0 
)
inlinestaticinherited

+ Here is the caller graph for this function:

void dx::event< dx::kernel >::wait ( int64_t  timeout = 0)
inlineinherited
template<typename device_t = device>
pipe& dx::usb::pipe< device_t >::write ( const void *  data,
size_t  size 
)
inline

synchronous USB write request

+ Here is the caller graph for this function:

Member Data Documentation

std::deque<union audio<>::descriptor::endpoint> dx::usb::__endpoint::audio
inherited
template<typename device_t = device>
device_t& dx::usb::pipe< device_t >::device
protected
template<typename device_t = device>
interface& dx::usb::pipe< device_t >::interface
protected
struct { ... } dx::usb::pipe< device_t >::isoc
template<typename device_t = device>
dx::log dx::usb::pipe< device_t >::log {}
template<typename device_t = device>
unsigned int dx::usb::pipe< device_t >::micro_frames = 0
decltype(descriptor::endpoint) typedef dx::usb::__endpoint::super
inherited
template<typename device_t = device>
enum dx::usb::pipe::type dx::usb::pipe< device_t >::type

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

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Mar 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.