dxd - dynax driver framework 2.5.0d148
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::proxy::stream::device< desc_t, preference_t, stream_t > Class Template Referenceabstract

#include <dx_proxy_stream_device.h>

+ Inheritance diagram for dx::proxy::stream::device< desc_t, preference_t, stream_t >:
+ Collaboration diagram for dx::proxy::stream::device< desc_t, preference_t, stream_t >:

Public Types

typedef desc_t desc_t
 

Public Member Functions

 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
void conclude () noexcept override
 conclude notifacation: device will be removed from tree
 
unsigned char configuration () const try
 
unsigned char configuration (unsigned char configuration) try
 
unsigned char configurations () const try
 
auto count () const noexcept
 
void ctl (uint32_t ioctl) const try
 
void ctl (unsigned int ioctl) const
 
 dx_catchall_handler (this,) void conclude() noexcept override
 
 dx_catchall_handler_or_rethrow (this, exception.error==not_implemented, return 0;) bool start(uint64_t frame=0
 
 dx_catchall_rethrow () template< typename rx_t > enable_if_ptr< rx_t > ictl(uint32_t ioctl) const try
 
 dx_catchall_rethrow () template< typename rx_t > enable_if_scalar< rx_t > ictl(uint32_t ioctl) const try
 
 dx_catchall_rethrow () template< typename rx_t > hide_if_scalar_or_ptr< rx_t > ictl(uint32_t ioctl) const try
 member ioctl
 
 dx_catchall_rethrow () template< typename rx_t > size_t ictl(uint32_t ioctl
 
 dx_catchall_rethrow () template< typename tx_t
 
 dx_catchall_rethrow () ~device() noexcept override
 the device class destructor
 
 dx_catchall_rethrow (, "name: %s, access rights: %x, sharing options:%x", name, access, share)
 
 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
 
::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 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
 
virtual void hw_clock (dx::event< user > &hw_clock)
 
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
 
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
 
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
 
virtual void launch ()
 launch notification: object mounted and ready to use
 
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 uint64_t () const
 
 operator::CFMutableDictionaryRef () 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 pointer
 
bool operator== (::io_registry_entry_t io_object) const noexcept
 
::CFTypeRef operator[] (::CFStringRef key) const
 
template<typename key_t , typename = cf::enable_if_convertible<key_t>>
::CFTypeRef operator[] (key_t key) const
 
_devicereset ()
 
referenceretain ()
 
registryset (::CFStringRef key, ::CFTypeRef value) noexcept
 
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 value_t , typename = cf::enable_if_convertible<key_t>, typename = cf::enable_if_convertible<value_t>>
registryset (key_t key, value_t value)
 
virtual bool start (uint64_t=0, unsigned int starting=1)
 
virtual unsigned int stop (bool force=false) noexcept
 

Public Attributes

promoted< typename super::client_map, typename super::client_map::value_t > clients {*this, ioctl::stream::desc}
 
dx::event< user > * clock
 
promoted< uint32_t >::preference< preference_t > clocksource
 
std::atomic< size_t > counter
 
promoted< desc_t, typename desc_t::value_t > desc {*this, ioctl::stream::desc}
 
dx::driver< decltype(id)> & driver
 
dx::driver< decltype(id)> & driver
 
struct { 
 
   dx::event< user > *   clock 
 
   std::atomic< size_t >   counter 
 
   uint32_t   iosize 
 
hw 
 
const std::string id
 
const ::io_service_t id
 
promoted< uint32_tiosize {*this, super::iosize, ioctl::stream::clock::iosize}
 
bool launched {}
 
bool launched {}
 
dx::stream::device::monitor monitor
 
std::deque< std::function< void(control &)> notify )
 
preference_t preference
 
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
 
promoted< uint32_tsafety_offset [dx::stream::direction::directions]
 
dx::promoted< uint32_tsamplerate
 
return size
 
unsigned int started
 
std::map< decltype(_desc_t::stream::target.idx()), std::weak_ptr< stream_t > > streams
 
promoted< uint32_t >::preference< preference_t > sync_cycle_ticks
 
promoted< uint32_t >::preference< preference_t > sync_reference
 
rx_t &rx const try
 
dx::stream::device::monitor version
 

Protected Types

enum class  type : ::DWORD {
  undefined = REG_NONE , uint32 = REG_DWORD , uint64 = REG_QWORD , string = REG_SZ ,
  vendor = REG_BINARY
}
 

Protected Member Functions

dx_catchall_rethrow() class iterator iterator begin () const
 
iterator end () const
 
registryerase (const char *subkey=nullptr) try
 
virtual void flush ()
 
void halt () noexcept override
 
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
 

Protected Attributes

bool connected = false
 
struct { 
 
   cf::type< const char * >   bundle_id 
 
   cf::type< const char * >   class_name 
 
kernel 
 
io::port port
 
std::recursive_mutex start_stop_in_progress
 start/stop operation in progress
 

Member Typedef Documentation

◆ desc_t

typedef desc_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::desc_t
inherited

Member Enumeration Documentation

◆ type

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

Member Function Documentation

◆ begin()

dx_catchall_rethrow() class iterator iterator dx::registry::begin ( ) const
inlineprotectedinherited

◆ catch() [1/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [2/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [3/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( ...)
inlineinherited

◆ catch() [4/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [5/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [6/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [7/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [8/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [9/9]

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ conclude()

template<typename desc_t , typename preference_t , typename stream_t >
void dx::proxy::stream::_device< desc_t, preference_t, stream_t >::conclude ( )
inlineoverridevirtualnoexceptinherited

conclude notifacation: device will be removed from tree

Reimplemented from dx::proxy::device.

◆ configuration() [1/2]

template<typename desc_t , typename preference_t , typename stream_t >
unsigned char dx::proxy::stream::_device< desc_t, preference_t, stream_t >::configuration ( ) const
inlineinherited

◆ configuration() [2/2]

template<typename desc_t , typename preference_t , typename stream_t >
unsigned char dx::proxy::stream::_device< desc_t, preference_t, stream_t >::configuration ( unsigned char configuration)
inlineinherited

◆ configurations()

template<typename desc_t , typename preference_t , typename stream_t >
unsigned char dx::proxy::stream::_device< desc_t, preference_t, stream_t >::configurations ( ) const
inlineinherited

◆ count()

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

◆ ctl() [1/2]

void dx::proxy::device::ctl ( uint32_t ioctl) const
inlineinherited
+ Here is the call graph for this function:

◆ ctl() [2/2]

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

◆ dx_catchall_handler()

dx::stream::control< dx::proxy::device >::dx_catchall_handler ( this )
inlineoverridenoexceptinherited

◆ dx_catchall_handler_or_rethrow()

template<typename desc_t , typename preference_t , typename stream_t >
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::dx_catchall_handler_or_rethrow ( this ,
exception. error = not_implemented,
return 0;  )
pure virtualinherited

◆ dx_catchall_rethrow() [1/7]

dx::proxy::device::dx_catchall_rethrow ( ) const
inlineinherited

◆ dx_catchall_rethrow() [2/7]

dx::proxy::device::dx_catchall_rethrow ( ) const
inlineinherited

◆ dx_catchall_rethrow() [3/7]

dx::proxy::device::dx_catchall_rethrow ( ) 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.

◆ dx_catchall_rethrow() [4/7]

dx::proxy::device::dx_catchall_rethrow ( )
inherited

◆ dx_catchall_rethrow() [5/7]

dx::proxy::device::dx_catchall_rethrow ( )
inherited

◆ dx_catchall_rethrow() [6/7]

dx::proxy::device::dx_catchall_rethrow ( )
inlineoverridenoexceptinherited

the device class destructor

the underlaying IOKit API is IOServiceClose().

remark: The io_service reference itself is managed by inherited io::reference

for detailed information see

Disconnect notification port,

closes the connection to the IOService object

◆ dx_catchall_rethrow() [7/7]

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

◆ dx_pass()

dx::proxy::device::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

◆ erase()

registry & dx::registry::erase ( const char * subkey = nullptr)
inlineprotectedinherited
Todo
registry::erase(): investigate why it's not working
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exception()

void dx::proxy::device::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexceptinherited

notification exception handler

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

Reimplemented in dx::usb::platform::device.

+ Here is the call graph for this function:

◆ flush()

virtual void dx::stream::control< dx::proxy::device >::flush ( )
inlineprotectedvirtualinherited

◆ frame()

template<typename desc_t , typename preference_t , typename stream_t >
uint64_t dx::proxy::stream::_device< desc_t, preference_t, stream_t >::frame ( ) const
inlineinherited

◆ get() [1/7]

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

◆ get() [2/7]

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() [3/7]

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

◆ get() [4/7]

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() [5/7]

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

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:

◆ get() [7/7]

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:

◆ halt()

template<typename desc_t , typename preference_t , typename stream_t >
void dx::proxy::stream::_device< desc_t, preference_t, stream_t >::halt ( )
inlineoverrideprotectedvirtualnoexceptinherited

Reimplemented from dx::stream::control< dx::proxy::device >.

+ Here is the call graph for this function:

◆ hw_clock()

virtual void dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::hw_clock ( dx::event< user > & hw_clock)
inlinevirtualinherited

◆ ictl() [1/2]

template<typename rx_t >
rx_t dx::proxy::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() [2/2]

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

◆ info()

template<typename desc_t , typename preference_t , typename stream_t >
void dx::proxy::stream::_device< desc_t, preference_t, stream_t >::info ( std::ostream & os)
inlineoverridevirtualnoexceptinherited

◆ initialize() [1/3]

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

◆ initialize() [2/3]

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() [3/3]

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

◆ ioctl() [1/2]

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

◆ ioctl() [2/2]

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

◆ key_from_index()

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

◆ launch()

◆ octl()

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

◆ operator const ::io_registry_entry_t &()

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()

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

◆ operator::CFMutableDictionaryRef()

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

◆ operator::CFStringRef()

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

◆ operator::io_registry_entry_t &()

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

auto converter into io_object

◆ operator::io_registry_entry_t *()

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

auto converter into io_object pointer

◆ operator==()

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

◆ operator[]() [1/2]

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

◆ operator[]() [2/2]

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:

◆ reset()

template<typename desc_t , typename preference_t , typename stream_t >
_device & dx::proxy::stream::_device< desc_t, preference_t, stream_t >::reset ( )
inlineinherited

◆ retain()

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

◆ set() [1/5]

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

◆ set() [2/5]

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

◆ set() [3/5]

registry & dx::proxy::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() [4/5]

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

◆ set() [5/5]

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

◆ start()

virtual bool dx::stream::control< dx::proxy::device >::start ( uint64_t = 0,
unsigned int starting = 1 )
inlinevirtualinherited

result indicates if start changed the state.

◆ stop()

virtual unsigned int dx::stream::control< dx::proxy::device >::stop ( bool force = false)
inlinevirtualnoexceptinherited

result indicates the amount of stopped start references

Member Data Documentation

◆ bundle_id

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

◆ clients

template<typename desc_t , typename preference_t , typename stream_t >
promoted<typename super::client_map, typename super::client_map::value_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::clients {*this, ioctl::stream::desc}
inherited

◆ clock

dx::event<user>* dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::clock
inherited

◆ clocksource

promoted<uint32_t>::preference<preference_t> dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::clocksource
inherited

◆ connected

bool dx::proxy::device::connected = false
protectedinherited

◆ counter

std::atomic<size_t> dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::counter
inherited

◆ desc

template<typename desc_t , typename preference_t , typename stream_t >
promoted<desc_t, typename desc_t::value_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::desc {*this, ioctl::stream::desc}
inherited

◆ driver [1/2]

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

◆ driver [2/2]

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

◆ [struct]

struct { ... } dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::hw

◆ id [1/2]

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

◆ id [2/2]

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

◆ iosize

template<typename desc_t , typename preference_t , typename stream_t >
promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::iosize {*this, super::iosize, ioctl::stream::clock::iosize}
inherited

◆ [struct]

struct { ... } dx::proxy::device::kernel

◆ launched [1/2]

bool dx::object::launched {}
inherited

◆ launched [2/2]

bool dx::object::launched {}
inherited

◆ monitor

dx::stream::device::monitor dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::monitor
inherited

◆ notify

std::deque<std::function<void(control&)> dx::stream::control< dx::proxy::device >::notify)
inherited

◆ port

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

◆ preference

preference_t dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::preference
inherited

◆ puid

std::string dx::proxy::device::puid
inherited

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

◆ puuid

std::string dx::proxy::device::puuid
inherited

persistent universal UID - universally unique ID

◆ safety_offset

template<typename desc_t , typename preference_t , typename stream_t >
promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::safety_offset[dx::stream::direction::directions]
inherited
Initial value:
{
promoted< uint32_t >::preference< preference_t > safety_offset[direction::directions]
Definition dx_stream_device.h:109
@ rx
set/get RX stream safety_offset
Definition macOS/dx_platform.h:138
@ tx
set/get TX stream safety_offset
Definition macOS/dx_platform.h:137
@ in
Definition dx_stream.h:273
@ out
Definition dx_stream.h:273

◆ samplerate

template<typename desc_t , typename preference_t , typename stream_t >
dx::promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::samplerate
inherited
Initial value:
{
[this](dx::promoted<uint32_t>::lock_t& lock, const uint32_t& value){
dx::promoted<uint32_t>::lock_t tmp(std::move(lock));
if(this->clock[0].settings){
dx_pass(this->clock[0].setting[clocksource].external.locked?
not_permitted: ok, "clocksource:%d", clocksource);
}
this->template ioctl<uint32_t, dx::stream::clock_value>(
this->stream[0].config[0].clock.domain,
this->clock[0].align(value)}));
}else
samplerate.commit(tmp, this->persistence?
this->template ioctl<uint32_t>(
ioctl::stream::clock::samplerate, this->stream[this->sync_reference].config[0].clock.domain):
static_cast<uint32_t>(super::samplerate));
},
{{[this](const uint32_t& value){if(!this->persistence) super::samplerate= value;}}}}
Definition dx_clock.h:52
void commit(lock_t &lock, const value_t &value) try
Definition dx_value.h:137
std::unique_lock< mutex_t > lock_t
Definition dx_value.h:67
bool initialized
Definition dx_value.h:69
dx::promoted< uint32_t > samplerate
Definition dx_proxy_stream_device.h:152
Definition dx_proxy_stream_device.h:46
promoted< uint32_t >::preference< preference_t > samplerate
Definition dx_stream_device.h:99
promoted< uint32_t >::preference< preference_t > clocksource
Definition dx_stream_device.h:91
promoted< uint32_t >::preference< preference_t > sync_reference
Definition dx_stream_device.h:95
#define dx_pass(test,...)
Definition dx_exception.h:37
std::map< std::deque< std::string >, dispatch > super
Definition dx_test.h:130
unsigned int uint32_t
Definition dxd_base.h:110
@ samplerate
set/get sample rate
Definition macOS/dx_platform.h:145
@ ok
Definition macOS/dx_platform.h:169
@ not_permitted
Definition macOS/dx_platform.h:185

◆ size

return dx::proxy::device::size
inherited

◆ start_stop_in_progress

std::recursive_mutex dx::stream::control< dx::proxy::device >::start_stop_in_progress
protectedinherited

start/stop operation in progress

◆ started

template<typename desc_t , typename preference_t , typename stream_t >
unsigned int dx::proxy::stream::_device< desc_t, preference_t, stream_t >::started
inherited

◆ streams

std::map<decltype(_desc_t::stream::target.idx()), std::weak_ptr<stream_t> > dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::streams
inherited

◆ sync_cycle_ticks

promoted<uint32_t>::preference<preference_t> dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::sync_cycle_ticks
inherited

◆ sync_reference

promoted<uint32_t>::preference<preference_t> dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::sync_reference
inherited

◆ try

rx_t& rx const dx::proxy::device::try
inherited
Initial value:
{
size_t size= sizeof rx
return size
Definition macOS/dx_proxy_device.h:219

◆ version

dx::stream::device::monitor dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::version
inherited

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Aug 22 2025

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.