dxd - dynax driver framework 2.1.0d71
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::stream::device< desc_t > Class Template Referenceabstract

#include <dx_usb_stream_device.h>

+ Inheritance diagram for dx::usb::stream::device< desc_t >:
+ Collaboration diagram for dx::usb::stream::device< desc_t >:

Classes

struct  property
 

Public Types

typedef ::io_service_t creator
 
typedef desc_t desc
 
enum class  speed : uint8_t {
  low = ::UsbLowSpeed , full = ::UsbFullSpeed , high = ::UsbHighSpeed , super = ::UsbSuperSpeed ,
  superplus = 4 , superplus2 = 5 , usb1 = full , usb2 = high ,
  usb3 = super , usb31 = super , usb32 = superplus , usb32x2 = superplus2
}
 

Public Member Functions

virtual uint32_t clocksource ()
 
virtual uint32_t clocksource (uint32_t clocksource) try
 
deviceclose () noexcept
 
virtual void conclude () noexcept
 conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.
 
virtual void conclude () noexcept
 conclude notification: device will be removed from tree
 
virtual void configure ()
 
auto count () const noexcept
 
auto count () const noexcept
 
void ctl (uint32_t ioctl) const
 
void ctl (unsigned int ioctl) const
 
 device (generic::driver &driver, const creator &creator, const desc_t &desc={})
 
 dx_catchall_rethrow ()
 
 dx_catchall_rethrow () device &open()
 for macOS compatibility only
 
 dx_catchall_rethrow () int32_t iosize(uint32_t iosize) try
 
 dx_catchall_rethrow () uint32_t version() const
 
 dx_catchall_rethrow () virtual uint32_t samplerate() const
 
 dx_catchall_rethrow (, "iosize: %d (current: %d)", iosize, hw.iosize) int32_t iosize() const try
 
 dx_catchall_rethrow (, "name: %s, access rights: %x, sharing options:%x", name, access, share)
 
 dx_catchall_rethrow (if(autoclear) try {const_cast< device * >(this) ->clear();} dx_catchall(), "handle: %p size: %lld request: %x idx: %x value: %x length: %x", winusb.handle, sizeof(request), request.control::request, request.index, request.value, request.length) template< typename data_t
 
 dx_catchall_rethrow (try {if(exception.error==stalled) const_cast< device * >(this) ->reset();} dx_catchall_handler(this,), "request type:%x [recipient:%d type:%x direction:%x] request:%x value:%x index:%x length:%d", reinterpret_cast< const uint8_t & >(request), request.recipient, request.type, request.direction, request.control::request, request.value, request.index, request.length) template< typename data_t >data_t submit(const control &control) const
 device control request
 
registryerase (const char *key=nullptr)
 
uint64_t frame () const
 
uint64_t frame () const try
 
::CFTypeRef get (::CFStringRef key) const
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key) const
 
::CFTypeRef get (::CFStringRef key, ::CFTypeRef dflt) const noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key, ::CFTypeRef dflt) const noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key, value_t dflt) const noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key, value_t dflt) const noexcept
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef get (key_t key) const
 
template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
value_t get (key_t key) const
 
template<typename rx_t >
rx_t ictl (uint32_t ioctl) const
 member ioctl
 
template<typename rx_t >
size_t ictl (uint32_t ioctl, rx_t &rx) const
 
template<typename rx_t >
rx_t ictl (unsigned int ioctl) const
 Windows: member ioctl.
 
template<typename rx_t >
size_t ictl (unsigned int ioctl, rx_t &rx) const
 
virtual void info ()=0
 log object class information
 
void initialize (const char *name, ::DWORD access=GENERIC_READ|GENERIC_WRITE, ::DWORD share=FILE_SHARE_READ|FILE_SHARE_WRITE) try
 (re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
 
void initialize (const char *path, ::HKEY root, ::REGSAM rights=KEY_READ, const char *key=nullptr)
 
void initialize (const char *path, ::REGSAM rights=KEY_READ, ::HKEY root=HKEY_CURRENT_USER, const char *key=nullptr)
 
template<typename rx_t , typename tx_t >
rx_t ioctl (uint32_t ioctl, const tx_t &tx) const
 
template<typename rx_t , typename tx_t >
size_t ioctl (uint32_t ioctl, const tx_t &tx, rx_t &rx) const
 
size_t ioctl (uint32_t ioctl, const void *tx=nullptr, size_t tx_size=0, void *rx=nullptr, size_t rx_size=0) const
 
template<typename rx_t , typename tx_t >
rx_t ioctl (unsigned int ioctl, const tx_t &tx) const
 
template<typename tx_t , typename rx_t >
size_t ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) const
 
int32_t iosize (uint32_t iosize, dx::event< user > &hw_clock) try
 
void launch () override
 launch notification: object mounted and ready to use
 
bool monitor () noexcept
 
template<typename monitor_t = dx::stream::clock::monitor>
monitor_t * monitor (bool force=false)
 
template<typename tx_t >
void octl (uint32_t ioctl, const tx_t &tx) const
 
template<typename tx_t >
void octl (unsigned int ioctl, const tx_t &tx) const
 
 operator const io_registry_entry_t & () const noexcept
 auto converter into const io_object
 
 operator const io_registry_entry_t & () const noexcept
 auto converter into const io_object
 
 operator io_registry_entry_t & () noexcept
 auto converter into io_object
 
 operator io_registry_entry_t & () noexcept
 auto converter into io_object
 
 operator io_registry_entry_t * () noexcept
 auto converter into io_object pointer
 
 operator io_registry_entry_t * () noexcept
 auto converter into io_object pointer
 
 operator std::string () const
 
 operator uint64_t () const
 
 operator uint64_t () const
 
template<typename value_t >
 operator value_t () const
 
template<typename value_t >
value_t operator() (value_t dflt) const
 
 operator::CFMutableDictionaryRef () const
 
 operator::CFMutableDictionaryRef () const
 
 operator::CFStringRef () const
 
 operator::CFStringRef () const
 
 operator::HKEY () const noexcept
 
bool operator== (io_registry_entry_t io_object) const noexcept
 
bool operator== (io_registry_entry_t io_object) const noexcept
 
::CFTypeRef operator[] (::CFStringRef key) const
 
::CFTypeRef operator[] (::CFStringRef key) const
 
registry operator[] (const char *key) const
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef operator[] (key_t key) const
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef operator[] (key_t key) const
 
devicereenumerate ()
 
devicereset ()
 
referenceretain ()
 
referenceretain ()
 
template<typename observer_t = uint32_t>
observer_t * samplerate () const
 
virtual uint32_t samplerate (uint32_t samplerate) try
 
registryset (::CFStringRef key, ::CFTypeRef value)
 
registryset (::CFStringRef key, ::CFTypeRef value) noexcept
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
registryset (::CFStringRef key, value_t value)
 
template<typename value_t , typename = cf::enable_if_convertible<value_t>>
registryset (::CFStringRef key, value_t value)
 
registryset (::CFTypeRef properties)
 Setting properties in a registry entry is not generally supported, it is more common to support setting of properties of the connection based property setting of dx::device.
 
registryset (::CFTypeRef properties)
 Setting properties in a registry entry is not generally supported, it is more common to support setting of properties of the connection based property setting of dx::device.
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
registryset (key_t key, ::CFTypeRef value)
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
registryset (key_t key, ::CFTypeRef value)
 
template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registryset (key_t key, value_t value)
 
template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registryset (key_t key, value_t value)
 
virtual void start ()
 
virtual void stop (bool=false)
 
devicesubmit (const control &control) const
 
template<typename data_t >
devicesubmit (const request< data_t > &request) const try
 standard device request
 
template<typename data_t >
devicesubmit (const request< data_t > &request, bool autoclear=true) const try
 

Public Attributes

union { 
 
   struct { 
 
      struct { 
 
         struct { 
 
            uint8_t   id 
 
         }   selector 
 
         struct { 
 
            uint8_t   id 
 
         }   source 
 
      }   clock 
 
   }   v2 
 
adc 
 
uint16_t bcdADC = 0
 
bool composite = false
 indicate WinUSB matched against single interface of composit device;
 
generic::driverdriver
 
struct { 
 
   dx::event< user > *   clock 
 
   size_t   counter 
 
   uint32_t   iosize 
 
hw 
 
std::weak_ptr< dx::circularimplicit_feedback
 
bool launched {}
 
bool launched = false
 
std::map< uint8_t, std::weak_ptr< usb::pipe< device > > > pipes
 
cf::preference preference
 
std::string puid
 persistent UID (i.e. serial number)
 
std::string puuid
 persistent universal UID
 
shared::memory< dx::stream::clock::monitorshared_monitor
 
enum dx::usb::platform::device::speed speed
 

Protected Member Functions

void initialize (::IOCFPlugInInterface **cf_interface, ::CFUUIDRef uuid)
 
void initialize (io_object_t io_object, ::CFUUIDRef type, ::CFUUIDRef uuid)
 
::IOUSBDeviceInterface650 * operator-> () const
 
 operator::IOUSBDeviceInterface650 ** () const
 

Protected Attributes

struct { 
 
   cf::type< const char * >   bundle_id 
 
   cf::type< const char * >   class_name 
 
kernel 
 
std::atomic< int > opened {}
 
io::port port
 
struct { 
 
   ::WINUSB_INTERFACE_HANDLE   handle 
 
winusb 
 

Member Typedef Documentation

◆ creator

typedef ::io_service_t dx::usb::platform::device::creator
inherited

◆ desc

template<typename desc_t >
typedef desc_t dx::usb::stream::device< desc_t >::desc

Member Enumeration Documentation

◆ speed

enum class dx::usb::platform::device::speed : uint8_t
stronginherited
Enumerator
low 
full 
high 
super 
superplus 
superplus2 
usb1 
usb2 
usb3 
usb31 
usb32 
usb32x2 

Constructor & Destructor Documentation

◆ device()

template<typename desc_t >
dx::usb::stream::device< desc_t >::device ( generic::driver & driver,
const creator & creator,
const desc_t & desc = {} )
inline

Member Function Documentation

◆ clocksource() [1/2]

template<typename desc_t >
virtual uint32_t dx::usb::stream::device< desc_t >::clocksource ( )
inlinevirtual

◆ clocksource() [2/2]

template<typename desc_t >
virtual uint32_t dx::usb::stream::device< desc_t >::clocksource ( uint32_t clocksource)
inlinevirtual

◆ close()

device & dx::usb::platform::device::close ( )
inlinenoexceptinherited

◆ conclude() [1/2]

virtual void dx::object::conclude ( )
inlinevirtualnoexceptinherited

conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.

Reimplemented in dx::coreaudio::driver< dx::coreaudio::device >, dx::coreaudio::driver< device_t >, and dx::coreaudio::device.

+ Here is the caller graph for this function:

◆ conclude() [2/2]

virtual void dx::device::conclude ( )
inlinevirtualnoexceptinherited

conclude notification: device will be removed from tree

+ Here is the caller graph for this function:

◆ configure()

template<typename desc_t >
virtual void dx::usb::stream::device< desc_t >::configure ( )
inlinevirtual
Todo
usb::stream::device::configure(): support odd sample rate ranges
+ Here is the call graph for this function:

◆ count() [1/2]

auto dx::io::reference< io_registry_entry_t >::count ( ) const
inlinenoexceptinherited

◆ count() [2/2]

auto dx::io::reference< io_registry_entry_t >::count ( ) const
inlinenoexceptinherited

◆ ctl() [1/2]

void dx::device::ctl ( uint32_t ioctl) const
inlineinherited

◆ ctl() [2/2]

void dx::device::ctl ( unsigned int ioctl) const
inlineinherited

◆ dx_catchall_rethrow() [1/9]

template<typename desc_t >
dx::usb::stream::device< desc_t >::dx_catchall_rethrow ( )

◆ dx_catchall_rethrow() [2/9]

dx::usb::platform::device::dx_catchall_rethrow ( ) &
inlineinherited

for macOS compatibility only

◆ dx_catchall_rethrow() [3/9]

template<typename desc_t >
dx::usb::stream::device< desc_t >::dx_catchall_rethrow ( )
inline

◆ dx_catchall_rethrow() [4/9]

template<typename desc_t >
dx::usb::stream::device< desc_t >::dx_catchall_rethrow ( ) const
inline

◆ dx_catchall_rethrow() [5/9]

template<typename desc_t >
dx::usb::stream::device< desc_t >::dx_catchall_rethrow ( ) const
inline

◆ dx_catchall_rethrow() [6/9]

template<typename desc_t >
dx::usb::stream::device< desc_t >::dx_catchall_rethrow ( "iosize: %d (current: %d)" ,
iosize ,
hw. iosize ) const
inline

◆ dx_catchall_rethrow() [7/9]

dx::file::dx_catchall_rethrow ( "name: % s,
access rights:% x,
sharing options:%x" ,
name ,
access ,
share  )
inherited

◆ dx_catchall_rethrow() [8/9]

dx::usb::platform::device::dx_catchall_rethrow ( if(autoclear) try {const_cast< device * >(this) ->clear();} dx_catchall() ,
"handle: %p size: %lld request: %x idx: %x value: %x length: %x" ,
winusb. handle,
sizeof(request) ,
request.control::request ,
request. index,
request. value,
request. length )
inherited

◆ dx_catchall_rethrow() [9/9]

dx::usb::platform::device::dx_catchall_rethrow ( try { ifexception.error==stalled) const_cast< device * >(this) ->reset();} dx_catchall_handler(this,,
"request type:%x request:%x value:%x index:%x length:%d" [recipient:%d type:%x direction:%x],
reinterpret_cast< const uint8_t & > request,
request. recipient,
request. type,
request. direction,
request.control::request ,
request. value,
request. index,
request. length ) const &
inlineinherited

device control request

◆ erase()

registry & dx::registry::erase ( const char * key = nullptr)
inlineinherited
Todo
registry::erase(): investigate why it's not working

◆ frame() [1/2]

uint64_t dx::usb::platform::device::frame ( ) const
inlineinherited
+ Here is the caller graph for this function:

◆ frame() [2/2]

uint64_t dx::usb::platform::device::frame ( ) const
inlineinherited
+ Here is the call graph for this function:

◆ get() [1/8]

::CFTypeRef dx::io::registry::get ( ::CFStringRef key) const
inlineinherited
+ Here is the caller graph for this function:

◆ get() [2/8]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key) const
inlineinherited
+ Here is the call graph for this function:

◆ get() [3/8]

::CFTypeRef dx::io::registry::get ( ::CFStringRef key,
::CFTypeRef dflt ) const
inlinenoexceptinherited

◆ get() [4/8]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key,
::CFTypeRef dflt ) const
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ get() [5/8]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key,
value_t dflt ) const
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ get() [6/8]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( ::CFStringRef key,
value_t dflt ) const
inlinenoexceptinherited
+ Here is the call graph for this function:

◆ get() [7/8]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef dx::io::registry::get ( key_t key) const
inlineinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get() [8/8]

template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
value_t dx::io::registry::get ( key_t key) const
inlineinherited
+ Here is the call graph for this function:

◆ ictl() [1/4]

template<typename rx_t >
rx_t dx::device::ictl ( uint32_t ioctl) const
inlineinherited

member ioctl

this member retreives data from the device by providing an IOCTL code. the template argument defines the type of data to be retreived. this member is intended as a convinient way to retreive only small amounts of data since there is an intermediate stack copy involved in returning the data.

+ Here is the caller graph for this function:

◆ ictl() [2/4]

template<typename rx_t >
size_t dx::device::ictl ( uint32_t ioctl,
rx_t & rx ) const
inlineinherited

◆ ictl() [3/4]

template<typename rx_t >
rx_t dx::device::ictl ( unsigned int ioctl) const
inlineinherited

Windows: member ioctl.

this member retreives data from the device by providing an IOCTL code. the template argument defines the type of data to be retreived. this member is intended as a convinient way to retreive only small amounts of data since there is an intermediate stack copy involved in returning the data.

the underlaying windows API is DeviceIoControl(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363216(VS.85).aspx

Exceptions
n/amicrosoft does not give information about what possible errors values are provided by its OS other than
ERROR_INSUFFICIENT_BUFFERif the output buffer is too small to receive any data

◆ ictl() [4/4]

template<typename rx_t >
size_t dx::device::ictl ( unsigned int ioctl,
rx_t & rx ) const
inlineinherited

◆ info()

virtual void dx::object::info ( )
pure virtualinherited

◆ initialize() [1/5]

void dx::cf::interface< ::IOUSBDeviceInterface650 >::initialize ( ::IOCFPlugInInterface ** cf_interface,
::CFUUIDRef uuid )
inlineprotectedinherited

◆ initialize() [2/5]

void dx::file::initialize ( const char * name,
::DWORD access = GENERIC_READ| GENERIC_WRITE,
::DWORD share = FILE_SHARE_READ| FILE_SHARE_WRITE )
inlineinherited

(re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx

Exceptions
n/amicrosoft does not give information about what possible errors values are provided by its OS
+ Here is the caller graph for this function:

◆ initialize() [3/5]

void dx::registry::initialize ( const char * path,
::HKEY root,
::REGSAM rights = KEY_READ,
const char * key = nullptr )
inlineinherited
+ Here is the caller graph for this function:

◆ initialize() [4/5]

void dx::registry::initialize ( const char * path,
::REGSAM rights = KEY_READ,
::HKEY root = HKEY_CURRENT_USER,
const char * key = nullptr )
inlineinherited

◆ initialize() [5/5]

void dx::cf::interface< ::IOUSBDeviceInterface650 >::initialize ( io_object_t io_object,
::CFUUIDRef type,
::CFUUIDRef uuid )
protectedinherited

◆ ioctl() [1/5]

template<typename rx_t , typename tx_t >
rx_t dx::device::ioctl ( uint32_t ioctl,
const tx_t & tx ) const
inlineinherited

◆ ioctl() [2/5]

template<typename rx_t , typename tx_t >
size_t dx::device::ioctl ( uint32_t ioctl,
const tx_t & tx,
rx_t & rx ) const
inlineinherited
+ Here is the caller graph for this function:

◆ ioctl() [3/5]

size_t dx::device::ioctl ( uint32_t ioctl,
const void * tx = nullptr,
size_t tx_size = 0,
void * rx = nullptr,
size_t rx_size = 0 ) const
inlineinherited

◆ ioctl() [4/5]

template<typename rx_t , typename tx_t >
rx_t dx::device::ioctl ( unsigned int ioctl,
const tx_t & tx ) const
inlineinherited

◆ ioctl() [5/5]

template<typename tx_t , typename rx_t >
size_t dx::device::ioctl ( unsigned int ioctl,
const tx_t & tx,
rx_t & rx ) const
inlineinherited

◆ iosize()

template<typename desc_t >
int32_t dx::usb::stream::device< desc_t >::iosize ( uint32_t iosize,
dx::event< user > & hw_clock )
inline

◆ launch()

template<typename desc_t >
void dx::usb::stream::device< desc_t >::launch ( )
inlineoverridevirtual

launch notification: object mounted and ready to use

Reimplemented from dx::object.

◆ monitor() [1/2]

template<typename desc_t >
bool dx::usb::stream::device< desc_t >::monitor ( )
inlinenoexcept
+ Here is the call graph for this function:

◆ monitor() [2/2]

template<typename desc_t >
template<typename monitor_t = dx::stream::clock::monitor>
monitor_t * dx::usb::stream::device< desc_t >::monitor ( bool force = false)
inline
+ Here is the call graph for this function:

◆ octl() [1/2]

template<typename tx_t >
void dx::device::octl ( uint32_t ioctl,
const tx_t & tx ) const
inlineinherited
+ Here is the caller graph for this function:

◆ octl() [2/2]

template<typename tx_t >
void dx::device::octl ( unsigned int ioctl,
const tx_t & tx ) const
inlineinherited

◆ operator const io_registry_entry_t &() [1/2]

dx::io::reference< io_registry_entry_t >::operator const io_registry_entry_t & ( ) const
inlinenoexceptinherited

auto converter into const io_object

◆ operator const io_registry_entry_t &() [2/2]

dx::io::reference< io_registry_entry_t >::operator const io_registry_entry_t & ( ) const
inlinenoexceptinherited

auto converter into const io_object

◆ operator io_registry_entry_t &() [1/2]

dx::io::reference< io_registry_entry_t >::operator io_registry_entry_t & ( )
inlinenoexceptinherited

auto converter into io_object

◆ operator io_registry_entry_t &() [2/2]

dx::io::reference< io_registry_entry_t >::operator io_registry_entry_t & ( )
inlinenoexceptinherited

auto converter into io_object

◆ operator io_registry_entry_t *() [1/2]

dx::io::reference< io_registry_entry_t >::operator io_registry_entry_t * ( )
inlinenoexceptinherited

auto converter into io_object pointer

◆ operator io_registry_entry_t *() [2/2]

dx::io::reference< io_registry_entry_t >::operator io_registry_entry_t * ( )
inlinenoexceptinherited

auto converter into io_object pointer

◆ operator std::string()

dx::registry::operator std::string ( ) const
inlineinherited

◆ operator uint64_t() [1/2]

dx::io::registry::operator uint64_t ( ) const
inlineexplicitinherited

◆ operator uint64_t() [2/2]

dx::io::registry::operator uint64_t ( ) const
inlineexplicitinherited

◆ operator value_t()

template<typename value_t >
dx::registry::operator value_t ( ) const
inlineinherited

◆ operator()()

template<typename value_t >
value_t dx::registry::operator() ( value_t dflt) const
inlineinherited

◆ operator->()

::IOUSBDeviceInterface650 * dx::cf::interface< ::IOUSBDeviceInterface650 >::operator-> ( ) const
inlineinherited

◆ operator::CFMutableDictionaryRef() [1/2]

dx::io::registry::operator::CFMutableDictionaryRef ( ) const
inlineexplicitinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator::CFMutableDictionaryRef() [2/2]

dx::io::registry::operator::CFMutableDictionaryRef ( ) const
inlineexplicitinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator::CFStringRef() [1/2]

dx::io::registry::operator::CFStringRef ( ) const
inlineexplicitinherited

◆ operator::CFStringRef() [2/2]

dx::io::registry::operator::CFStringRef ( ) const
inlineexplicitinherited

◆ operator::HKEY()

dx::registry::operator::HKEY ( ) const
inlinenoexceptinherited

◆ operator::IOUSBDeviceInterface650 **()

dx::cf::interface< ::IOUSBDeviceInterface650 >::operator ::IOUSBDeviceInterface650 ** ( ) const
inlineinherited

◆ operator==() [1/2]

bool dx::io::reference< io_registry_entry_t >::operator== ( io_registry_entry_t io_object) const
inlinenoexceptinherited

◆ operator==() [2/2]

bool dx::io::reference< io_registry_entry_t >::operator== ( io_registry_entry_t io_object) const
inlinenoexceptinherited

◆ operator[]() [1/5]

::CFTypeRef dx::io::registry::operator[] ( ::CFStringRef key) const
inlineinherited
+ Here is the call graph for this function:

◆ operator[]() [2/5]

::CFTypeRef dx::io::registry::operator[] ( ::CFStringRef key) const
inlineinherited
+ Here is the call graph for this function:

◆ operator[]() [3/5]

registry dx::registry::operator[] ( const char * key) const
inlineinherited

◆ operator[]() [4/5]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef dx::io::registry::operator[] ( key_t key) const
inlineinherited
+ Here is the call graph for this function:

◆ operator[]() [5/5]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef dx::io::registry::operator[] ( key_t key) const
inlineinherited
+ Here is the call graph for this function:

◆ reenumerate()

device & dx::usb::platform::device::reenumerate ( )
inlineinherited

◆ reset()

device & dx::usb::platform::device::reset ( )
inlineinherited

◆ retain() [1/2]

reference & dx::io::reference< io_registry_entry_t >::retain ( )
inlineinherited

◆ retain() [2/2]

reference & dx::io::reference< io_registry_entry_t >::retain ( )
inlineinherited

◆ samplerate() [1/2]

template<typename desc_t >
template<typename observer_t = uint32_t>
observer_t * dx::usb::stream::device< desc_t >::samplerate ( ) const
inline

◆ samplerate() [2/2]

template<typename desc_t >
virtual uint32_t dx::usb::stream::device< desc_t >::samplerate ( uint32_t samplerate)
inlinevirtual

◆ set() [1/10]

registry & dx::io::registry::set ( ::CFStringRef key,
::CFTypeRef value )
inlineinherited

◆ set() [2/10]

registry & dx::device::set ( ::CFStringRef key,
::CFTypeRef value )
inlinenoexceptinherited

◆ set() [3/10]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
registry & dx::device::set ( ::CFStringRef key,
value_t value )
inlineinherited

◆ set() [4/10]

template<typename value_t , typename = cf::enable_if_convertible<value_t>>
registry & dx::io::registry::set ( ::CFStringRef key,
value_t value )
inlineinherited
+ Here is the call graph for this function:

◆ set() [5/10]

registry & dx::device::set ( ::CFTypeRef properties)
inlineinherited

Setting properties in a registry entry is not generally supported, it is more common to support setting of properties of the connection based property setting of dx::device.

◆ set() [6/10]

registry & dx::io::registry::set ( ::CFTypeRef properties)
inlineinherited

Setting properties in a registry entry is not generally supported, it is more common to support setting of properties of the connection based property setting of dx::device.

+ Here is the caller graph for this function:

◆ set() [7/10]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
registry & dx::device::set ( key_t key,
::CFTypeRef value )
inlineinherited

◆ set() [8/10]

template<typename key_t , typename = cf::enable_if_convertible<key_t>>
registry & dx::io::registry::set ( key_t key,
::CFTypeRef value )
inlineinherited
+ Here is the call graph for this function:

◆ set() [9/10]

template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registry & dx::device::set ( key_t key,
value_t value )
inlineinherited

◆ set() [10/10]

template<typename key_t , typename value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registry & dx::io::registry::set ( key_t key,
value_t value )
inlineinherited
+ Here is the call graph for this function:

◆ start()

template<typename desc_t >
virtual void dx::usb::stream::device< desc_t >::start ( )
inlinevirtual

◆ stop()

template<typename desc_t >
virtual void dx::usb::stream::device< desc_t >::stop ( bool = false)
inlinevirtual

◆ submit() [1/3]

device & dx::usb::platform::device::submit ( const control & control) const
inlineinherited

◆ submit() [2/3]

template<typename data_t >
device & dx::usb::platform::device::submit ( const request< data_t > & request) const
inlineinherited

standard device request

◆ submit() [3/3]

template<typename data_t >
device & dx::usb::platform::device::submit ( const request< data_t > & request,
bool autoclear = true ) const
inlineinherited

Member Data Documentation

◆ [union]

union { ... } dx::usb::stream::device< desc_t >::adc

◆ bcdADC

template<typename desc_t >
uint16_t dx::usb::stream::device< desc_t >::bcdADC = 0

◆ bundle_id

cf::type<const char*> dx::usb::platform::device::bundle_id
inherited

◆ class_name

cf::type<const char*> dx::usb::platform::device::class_name
inherited

◆ clock [1/2]

template<typename desc_t >
dx::event<user>* dx::usb::stream::device< desc_t >::clock

◆ [struct] [2/2]

struct { ... } dx::usb::stream::device< desc_t >::clock

◆ composite

bool dx::usb::platform::device::composite = false
inherited

indicate WinUSB matched against single interface of composit device;

◆ counter

template<typename desc_t >
size_t dx::usb::stream::device< desc_t >::counter

◆ driver

generic::driver& dx::usb::platform::device::driver
inherited

◆ handle

::WINUSB_INTERFACE_HANDLE dx::usb::platform::device::handle
inherited

◆ [struct]

struct { ... } dx::usb::stream::device< desc_t >::hw

◆ id

template<typename desc_t >
uint8_t dx::usb::stream::device< desc_t >::id

◆ implicit_feedback

template<typename desc_t >
std::weak_ptr<dx::circular> dx::usb::stream::device< desc_t >::implicit_feedback

◆ iosize

template<typename desc_t >
uint32_t dx::usb::stream::device< desc_t >::iosize

◆ [struct]

struct { ... } dx::usb::platform::device::kernel

◆ launched [1/2]

bool dx::object::launched {}
inherited

◆ launched [2/2]

bool dx::device::launched = false
inherited

◆ opened

std::atomic< int > dx::usb::platform::device::opened {}
protectedinherited
Todo
add runloop ////////////////////////////////////////////////////////////////////////////

◆ pipes

template<typename desc_t >
std::map<uint8_t,std::weak_ptr<usb::pipe<device> > > dx::usb::stream::device< desc_t >::pipes

◆ port

io::port dx::device::port
protectedinherited

◆ preference

cf::preference dx::usb::platform::device::preference
inherited

◆ puid

template<typename desc_t >
std::string dx::usb::stream::device< desc_t >::puid

persistent UID (i.e. serial number)

◆ puuid

template<typename desc_t >
std::string dx::usb::stream::device< desc_t >::puuid

persistent universal UID

◆ [struct]

struct { ... } dx::usb::stream::device< desc_t >::selector

◆ shared_monitor

template<typename desc_t >
shared::memory<dx::stream::clock::monitor> dx::usb::stream::device< desc_t >::shared_monitor

◆ [struct]

struct { ... } dx::usb::stream::device< desc_t >::source

◆ speed

◆ [struct]

struct { ... } dx::usb::stream::device< desc_t >::v2

◆ [struct]

struct { ... } dx::usb::platform::device::winusb

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

(c) copyright 2009 dynamic acoustics e.U. generated on Wed Oct 2 2024

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.