dxd - dynax driver framework 2.6.0d205
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::platform::device< preference_t > Class Template Reference

#include <dx_usb_device_platform.h>

Inheritance diagram for dx::usb::platform::device< preference_t >:
Collaboration diagram for dx::usb::platform::device< preference_t >:

Public Member Functions

deviceclose () noexcept
deviceclose (bool force=false) 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.
void conclude () noexcept override
 conclude notifacation: device will be removed from tree
uint8_t configuration () const
unsigned char configuration () const noexcept
virtual uint8_t configuration (uint8_t configuration)
virtual unsigned char configuration (unsigned char configuration) try
uint8_t configurations () const
auto count () const noexcept
auto count () const noexcept
void ctl (uint32_t ioctl) const try
 device (decltype(super::driver)&driver, ::io_service_t id)
 the device class constructor
 device (decltype(super::driver)&driver, decltype(super::id)&id)
 the device class constructor
 dx_catchall_rethrow (, "name: %s, access rights: %x, sharing options:%x", name, access, share)
 dx_catchall_rethrow () device &open()
 for macOS compatibility only
 dx_catchall_rethrow () device &reset()
 dx_catchall_rethrow () device &submit(const control &control) try
 dx_catchall_rethrow () struct void_struct
 dx_catchall_rethrow () template< typename data_t >device &submit(const request< data_t > &request) try
 standard device request
 dx_catchall_rethrow () unsigned char configurations() const noexcept
 dx_catchall_rethrow () void conclude() noexcept override
 conclude notification: device will be removed from tree
 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) clear();} 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) try
 device control request
 dx_pass (::IOConnectCallStructMethod(io_connect, ioctl, nullptr, 0, &rx, &size), "%s rx:%p size:%d", fourchar::to::string(ioctl).c_str(), &rx, size)
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
 notification exception handler
uint64_t frame () const try
uint64_t frame () const try
template<typename value_t, typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key) const
::CFTypeRef get (::CFStringRef key) const
template<typename value_t, typename = cf::enable_if_convertible<value_t>>
value_t get (::CFStringRef key, ::CFTypeRef dflt) const noexcept
::CFTypeRef 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 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 key_t, typename = cf::enable_if_convertible<key_t>>
::CFTypeRef get (key_t key) const
rx_t ictl (unsigned int ioctl) const
 Windows: member ioctl.
void info (std::ostream &os) noexcept override
 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
size_t ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) const
virtual void launch ()
 launch notification: object mounted and ready to use
virtual void launch ()
 launch notification: object mounted and ready to use
void launch () override
 launch notification: object mounted and ready to use
void octl (unsigned int ioctl, const tx_t &tx) const
deviceopen ()
 opens the USB device for exclusice access
 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 uint64_t () const
 operator uint64_t () const
 operator::CFMutableDictionaryRef () const
 operator::CFMutableDictionaryRef () const
 operator::CFStringRef () const
 operator::CFStringRef () const
 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
bool operator== (::io_registry_entry_t io_object) const noexcept
bool operator== (::io_registry_entry_t io_object) const noexcept
virtual deviceoperator>> (std::ostream &) const
virtual deviceoperator>> (std::ostream &) const
::CFTypeRef operator[] (::CFStringRef key) const
::CFTypeRef operator[] (::CFStringRef 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
registry parent () const
registry parent () const
devicereenumerate ()
referenceretain ()
referenceretain ()
deviceset (::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 (::CFStringRef key, ::CFTypeRef value)
registryset (::CFStringRef key, ::CFTypeRef value)
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.
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 sleep ()
 notify system will sleep stub
virtual void sleep ()
 notify system will sleep stub
template<typename data_t>
devicesubmit (const request< data_t > &request, bool autoclear=true) const try
virtual void wake ()
 notify system wake completed stub
virtual void wake ()
 notify system wake completed stub
 ~device () override

Public Attributes

cf::string bundle_id
bool composite = false
 indicate WinUSB matched against single interface of composit device;
dx::driver< decltype(id), dx::preference > & driver
dx::driver< decltype(id), dx::preference > & driver
dx::driver< decltype(id), dx::preference > & driver
const std::string id
const ::io_service_t id
const ::io_service_t id
bool launched
bool launched
bool launched
dx::preference preference
dx::preference preference
dx::preference preference
std::string puid
 persistent UID - system unique - could change with location
std::string puid
 persistent UID (i.e. serial number) - system unique - if no other option to identify could change with location
std::string puuid
 persistent universal UID - universally unique ID (i.e. serial number)
std::string puuid
 persistent universal UID - universally unique ID
return size
enum speed speed
rx_t &rx const try

Protected Types

typedef service::request< service::stream::data< typename super_device_t::desc_t > > request
enum class  type : ::DWORD {
  undefined = REG_NONE , uint32 = REG_DWORD , uint64 = REG_QWORD , string = REG_SZ ,
  vendor = REG_BINARY
}

Protected Member Functions

iterator begin () const
iterator end () const
registryerase (const char *subkey=nullptr) noexcept
void initialize (::IOCFPlugInInterface **cf_interface, ::CFUUIDRef uuid)
registryinitialize (const std::string &key, ::HKEY root=HKEY_CURRENT_USER, ::REGSAM rights=KEY_ALL_ACCESS) try
registryinitialize (const std::string &key, ::REGSAM rights, ::HKEY root, const char *path=nullptr) try
std::string key_from_index (size_t index) const try
dx_catchall_rethrow() registry &initializeoperator keys () const noexcept
::IOUSBDeviceInterface650 * operator-> () const
 operator::IOUSBDeviceInterface650 ** () const
registryrun ()

Protected Attributes

class dx::service::device::promoted clocksource
bool connected
class dx::service::device::promoted iosize
struct { 
   cf::string   bundle_id 
   cf::string   class_name 
kernel
dx_catchall_rethrow() public std::deque< std::function< void()> > listen
std::atomic< int > opened {}
pipe< request >::server pipe
io::port port
class dx::service::device::promoted safety_offset [dx::stream::direction::out]
class dx::service::device::promoted safety_offset_in [dx::stream::direction::in]
class dx::service::device::promoted safety_offset_out [dx::stream::direction::out]
class dx::service::device::promoted samplerate
bool schedule_erase {}
struct { 
   ::WINUSB_INTERFACE_HANDLE   handle 
winusb

Member Typedef Documentation

◆ request

typedef service::request<service::stream::data<typename super_device_t::desc_t> > dx::service::device< dx::preference >::request
protectedinherited

Member Enumeration Documentation

◆ type

enum class dx::registry::type : ::DWORD
strongprotectedinherited
Enumerator
undefined 
uint32 
uint64 
string 
vendor 

Constructor & Destructor Documentation

◆ device() [1/2]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::device ( decltype(super::driver)& driver,
::io_service_t id )
inline

the device class constructor

Exceptions
kIOReturnNoMemory means that the system couldn't allocate the class defined in the drivers plist, or nub which ever its trying connecting to

obtain version info

statically gets the device speed

Parameters
idthe IOService object to open the device connection for. This will be held (but not retained) during device class lifetime

◆ ~device()

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::~device ( )
inlineoverride

◆ device() [2/2]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::device ( decltype(super::driver)& driver,
decltype(super::id)& id )
inline

the device class constructor

Exceptions

statically gets the device speed

Member Function Documentation

◆ begin()

iterator dx::registry::begin ( ) const
inlineprotectedinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ close() [1/2]

template<typename preference_t = dx::preference>
device & dx::usb::platform::device< preference_t >::close ( )
inlinenoexcept

◆ close() [2/2]

template<typename preference_t = dx::preference>
device & dx::usb::platform::device< preference_t >::close ( bool force = false)
inlinenoexcept

◆ 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.

◆ conclude() [2/2]

void dx::proxy::device< dx::preference >::conclude ( )
inlineoverridevirtualnoexceptinherited

conclude notifacation: device will be removed from tree

Reimplemented from dx::object.

Reimplemented in dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >.

Here is the caller graph for this function:

◆ configuration() [1/4]

template<typename preference_t = dx::preference>
uint8_t dx::usb::platform::device< preference_t >::configuration ( ) const
inline
Here is the caller graph for this function:

◆ configuration() [2/4]

template<typename preference_t = dx::preference>
unsigned char dx::usb::platform::device< preference_t >::configuration ( ) const
inlinenoexcept

◆ configuration() [3/4]

template<typename preference_t = dx::preference>
virtual uint8_t dx::usb::platform::device< preference_t >::configuration ( uint8_t configuration)
inlinevirtual

◆ configuration() [4/4]

template<typename preference_t = dx::preference>
virtual unsigned char dx::usb::platform::device< preference_t >::configuration ( unsigned char configuration)
inlinevirtual

◆ configurations()

template<typename preference_t = dx::preference>
uint8_t dx::usb::platform::device< preference_t >::configurations ( ) const
inline

◆ count() [1/2]

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

◆ count() [2/2]

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

◆ ctl()

void dx::proxy::device< dx::preference >::ctl ( uint32_t ioctl) const
inlineinherited

◆ dx_catchall_rethrow() [1/10]

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

◆ dx_catchall_rethrow() [2/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( ) &
inline

for macOS compatibility only

◆ dx_catchall_rethrow() [3/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( ) &
inline

◆ dx_catchall_rethrow() [4/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( ) const &
inline

◆ dx_catchall_rethrow() [5/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( )
inline

◆ dx_catchall_rethrow() [6/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( ) const &
inline

standard device request

◆ dx_catchall_rethrow() [7/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( ) const
inlinenoexcept

◆ dx_catchall_rethrow() [8/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( )
inlineoverridenoexcept

conclude notification: device will be removed from tree

◆ dx_catchall_rethrow() [9/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( if(autoclear) try {const_cast< device< preference_t > * >(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 )

◆ dx_catchall_rethrow() [10/10]

template<typename preference_t = dx::preference>
dx::usb::platform::device< preference_t >::dx_catchall_rethrow ( try { ifexception.error==stalled) clear();} 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 &
inline

device control request

◆ dx_pass()

dx::proxy::device< dx::preference >::dx_pass ( ::IOConnectCallStructMethod( io_connect, ioctl, nullptr, 0, &rx, &size) ,
"%s rx:%p size:%d" ,
fourchar::to::string(ioctl).c_str() ,
& rx,
size  )
inherited

◆ end()

iterator dx::registry::end ( ) const
inlineprotectedinherited
Here is the caller graph for this function:

◆ erase()

registry & dx::registry::erase ( const char * subkey = nullptr)
inlineprotectednoexceptinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ exception()

template<typename preference_t = dx::preference>
void dx::usb::platform::device< preference_t >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexcept

notification exception handler

Reimplemented from dx::device<::io_service_t, dx::preference >.

◆ frame() [1/2]

template<typename preference_t = dx::preference>
uint64_t dx::usb::platform::device< preference_t >::frame ( ) const
inline
Here is the caller graph for this function:

◆ frame() [2/2]

template<typename preference_t = dx::preference>
uint64_t dx::usb::platform::device< preference_t >::frame ( ) const
inline

◆ get() [1/8]

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

◆ get() [2/8]

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

◆ get() [3/8]

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

◆ get() [4/8]

::CFTypeRef 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 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 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 value_t, typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
value_t io::registry::get ( key_t key) const
inlineinherited
Here is the call graph for this function:

◆ get() [8/8]

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

◆ ictl()

rx_t dx::proxy::device< dx::preference >::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
Template Parameters
rx_ttype of rx_t needs to be explicitly specified as it can't be deduced

◆ info()

template<typename preference_t = dx::preference>
void dx::usb::platform::device< preference_t >::info ( std::ostream & os)
inlineoverridevirtualnoexcept

◆ initialize() [1/4]

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

◆ initialize() [2/4]

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/4]

registry & dx::registry::initialize ( const std::string & key,
::HKEY root = HKEY_CURRENT_USER,
::REGSAM rights = KEY_ALL_ACCESS )
inlineprotectedinherited
Here is the call graph for this function:

◆ initialize() [4/4]

registry & dx::registry::initialize ( const std::string & key,
::REGSAM rights,
::HKEY root,
const char * path = nullptr )
inlineprotectedinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ioctl()

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

◆ key_from_index()

std::string dx::registry::key_from_index ( size_t index) const
inlineprotectedinherited

◆ launch() [1/3]

virtual void dx::object::launch ( )
inlinevirtualinherited

launch notification: object mounted and ready to use

◆ launch() [2/3]

virtual void dx::object::launch ( )
inlinevirtualinherited

launch notification: object mounted and ready to use

◆ launch() [3/3]

void dx::service::device< dx::preference >::launch ( )
inlineoverridevirtualinherited

launch notification: object mounted and ready to use

Reimplemented from dx::object.

Reimplemented in dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe > > >.

◆ octl()

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

◆ open()

template<typename preference_t = dx::preference>
device & dx::usb::platform::device< preference_t >::open ( )
inline

opens the USB device for exclusice access

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

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]

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

auto converter into const io_object

◆ operator keys()

dx_catchall_rethrow() registry &initialize( dx::registry::operator keys ( ) const
inlineprotectednoexceptinherited

◆ operator uint64_t() [1/2]

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

◆ operator uint64_t() [2/2]

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

◆ operator->()

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

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

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]

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]

io::registry::operator::CFStringRef ( ) const
inlineexplicitinherited
Here is the caller graph for this function:

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

io::registry::operator::CFStringRef ( ) const
inlineexplicitinherited
Here is the caller graph for this function:

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

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

auto converter into io_object

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

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

auto converter into io_object

◆ operator::io_registry_entry_t *() [1/2]

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]

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

auto converter into io_object pointer

◆ operator::IOUSBDeviceInterface650 **()

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

◆ operator==() [1/2]

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

◆ operator==() [2/2]

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

◆ operator>>() [1/2]

virtual device & dx::device< std::string, dx::preference >::operator>> ( std::ostream & ) const
inlinevirtualinherited

◆ operator>>() [2/2]

virtual device & dx::device< ::io_service_t, dx::preference >::operator>> ( std::ostream & ) const
inlinevirtualinherited

◆ operator[]() [1/4]

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

◆ operator[]() [2/4]

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

◆ operator[]() [3/4]

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

◆ operator[]() [4/4]

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

◆ parent() [1/2]

registry io::registry::parent ( ) const
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parent() [2/2]

registry io::registry::parent ( ) const
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ reenumerate()

template<typename preference_t = dx::preference>
device & dx::usb::platform::device< preference_t >::reenumerate ( )
inline

◆ retain() [1/2]

reference & io::reference< ::io_registry_entry_t >::retain ( )
inlineinherited
Here is the caller graph for this function:

◆ retain() [2/2]

reference & io::reference< ::io_registry_entry_t >::retain ( )
inlineinherited
Here is the caller graph for this function:

◆ run()

registry & dx::registry::run ( )
inlineprotectedinherited
Here is the call graph for this function:

◆ set() [1/10]

device & dx::proxy::device< dx::preference >::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() [2/10]

registry & io::registry::set ( ::CFStringRef key,
::CFTypeRef value )
inlineinherited
Here is the call graph for this function:

◆ set() [3/10]

registry & io::registry::set ( ::CFStringRef key,
::CFTypeRef value )
inlineinherited
Here is the call graph for this function:

◆ set() [4/10]

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

◆ set() [5/10]

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

◆ set() [6/10]

registry & 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 call graph for this function:
Here is the caller graph for this function:

◆ set() [7/10]

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

◆ set() [8/10]

template<typename key_t, typename = cf::enable_if_convertible<key_t>>
registry & 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 & io::registry::set ( key_t key,
value_t value )
inlineinherited
Here is the call graph for this function:

◆ 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 & io::registry::set ( key_t key,
value_t value )
inlineinherited
Here is the call graph for this function:

◆ sleep() [1/2]

virtual void dx::device< std::string, dx::preference >::sleep ( )
inlinevirtualinherited

notify system will sleep stub

◆ sleep() [2/2]

virtual void dx::device< ::io_service_t, dx::preference >::sleep ( )
inlinevirtualinherited

notify system will sleep stub

◆ submit()

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

◆ wake() [1/2]

◆ wake() [2/2]

Member Data Documentation

◆ bundle_id

cf::string dx::service::device< dx::preference >::bundle_id
inherited

◆ clocksource

◆ composite

template<typename preference_t = dx::preference>
bool dx::usb::platform::device< preference_t >::composite = false

indicate WinUSB matched against single interface of composit device;

◆ connected

bool dx::proxy::device< dx::preference >::connected
protectedinherited

◆ driver [1/3]

dx::driver<decltype(id), dx::preference>& dx::device< std::string, dx::preference >::driver
inherited

◆ driver [2/3]

dx::driver<decltype(id), dx::preference>& dx::device< ::io_service_t, dx::preference >::driver
inherited

◆ driver [3/3]

dx::driver<decltype(id), dx::preference>& dx::device< ::io_service_t, dx::preference >::driver
inherited

◆ handle

template<typename preference_t = dx::preference>
::WINUSB_INTERFACE_HANDLE dx::usb::platform::device< preference_t >::handle

◆ id [1/3]

const std::string dx::device< std::string, dx::preference >::id
inherited

◆ id [2/3]

const ::io_service_t dx::device< ::io_service_t, dx::preference >::id
inherited

◆ id [3/3]

const ::io_service_t dx::device< ::io_service_t, dx::preference >::id
inherited

◆ iosize

class dx::service::device::promoted dx::service::device< dx::preference >::iosize
protectedinherited

◆ [struct]

struct { ... } dx::service::device< dx::preference >::kernel

◆ launched [1/3]

bool dx::object::launched
inherited

◆ launched [2/3]

bool dx::object::launched
inherited

◆ launched [3/3]

bool dx::object::launched
inherited

◆ listen

dx_catchall_rethrow () public std::deque<std::function<void()> > dx::registry::listen
protectedinherited

◆ opened

template<typename preference_t = dx::preference>
std::atomic< int > dx::usb::platform::device< preference_t >::opened {}
protected
Todo
add runloop ////////////////////////////////////////////////////////////////////////////

◆ pipe

class dx::service::device::promoted dx::service::device< dx::preference >::pipe
protectedinherited

◆ port

io::port dx::proxy::device< dx::preference >::port
protectedinherited

◆ preference [1/3]

dx::preference dx::device< std::string, dx::preference >::preference
inherited

◆ preference [2/3]

dx::preference dx::device< ::io_service_t, dx::preference >::preference
inherited

◆ preference [3/3]

dx::preference dx::device< ::io_service_t, dx::preference >::preference
inherited

◆ puid [1/2]

std::string dx::device< ::io_service_t, dx::preference >::puid
inherited

persistent UID - system unique - could change with location

◆ puid [2/2]

std::string dx::proxy::device< dx::preference >::puid
inherited

persistent UID (i.e. serial number) - system unique - if no other option to identify could change with location

◆ puuid [1/2]

std::string dx::device< ::io_service_t, dx::preference >::puuid
inherited

persistent universal UID - universally unique ID (i.e. serial number)

◆ puuid [2/2]

std::string dx::proxy::device< dx::preference >::puuid
inherited

persistent universal UID - universally unique ID

◆ safety_offset

◆ safety_offset_in

◆ safety_offset_out

◆ samplerate

◆ schedule_erase

bool dx::registry::schedule_erase {}
protectedinherited

◆ size

return dx::proxy::device< dx::preference >::size
inherited

◆ speed

template<typename preference_t = dx::preference>
enum speed dx::usb::platform::device< preference_t >::speed

◆ try

rx_t& rx const dx::proxy::device< dx::preference >::try
inherited

◆ [struct]

struct { ... } dx::usb::platform::device< preference_t >::winusb

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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.