dxd - dynax driver framework 2.6.0d205
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

enum class  bus { usb = 'usb ' , pci = 'pci ' , vm = 'virt' }
typedef dx::stream::desc<> desc_t
typedef event< kernelevent
typedef stream< device< dx::stream::desc<>, dx::preference, stream > > stream_t
typedef desc value_t

Public Member Functions

struct streamalign (struct stream *sync_reference)
uint32_t align (uint32_t sync_reference) const
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
void conclude () noexcept override
unsigned char configuration (unsigned char configuration) try
DX_PRAGMA_IGNORE_RETURN_VALUE_END unsigned char configurations () const try
auto count () const noexcept
void ctl (uint32_t ioctl) const try
 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 (, "name: %s, access rights: %x, sharing options:%x", name, access, share)
 dx_catchall_rethrow () ~device() override
 the device class destructor
 dx_pass (::IOConnectCallStructMethod(io_connect, ioctl, nullptr, 0, &rx, &size), "%s rx:%p size:%d", fourchar::to::string(ioctl).c_str(), &rx, size)
uint32_t enumerate (const format &format=any) const
 enumerate typified pins
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
 notification exception handler
struct streamfind (const decltype(stream::target.idx())&target)
struct streamfind (const format &format=any, enum direction::direction direction=direction::any)
struct streamfind (const target_t &target)
struct streamfind (uint32_t &pin, const format &format=any, enum direction::direction direction=direction::any)
 finds and returns the stream description and pin idx into this stream
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END 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 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
virtual bool hw_clock () const noexcept
virtual void hw_clock (abstract::event *hw_clock)
rx_t ictl (unsigned int ioctl) const
 Windows: member ioctl.
void info (std::ostream &os) noexcept override
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
void launch () override
 launch notification: object mounted and ready to use
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 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
 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== (const desc &desc) const
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
template<typename key_t, typename = cf::enable_if_convertible<key_t>>
::CFTypeRef operator[] (key_t key) const
registry parent () const
_devicereset ()
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)
template<typename value_t, typename = cf::enable_if_convertible<value_t>>
registryset (::CFStringRef key, value_t 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)
virtual void sleep ()
 notify system will sleep stub
virtual void sleep ()
 notify system will sleep stub
virtual bool start (uint64_t=0, unsigned int starting=1)
virtual unsigned int stop (bool force=false) noexcept
virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END std::string string (uint8_t) const
uint32_t sync_reference (struct stream *sync_reference)
struct streamsync_reference (uint32_t sync_reference)
void wake () override

Public Attributes

cf::string bundle_id
enum dx::stream::desc::bus bus
promoted< typename super::client_map, typename super::client_map::value_t > clients
abstract::eventclock
uint32_t clocks
 number of independent clocks [currenlty only single clock support]
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::proxy::device< dx::preference > >::preference)> clocksource
std::atomic< size_t > counter
promoted< dx::stream::desc<>, typename dx::stream::desc<>::value_tdesc
bool dflt
 can be selected as default (OS audio) device
dx::driver< decltype(id), dx::preference > & driver
dx::driver< decltype(id), dx::preference > & driver
bool editable
 can be edited
bool hidden
 hide device
struct { 
   abstract::event *   clock 
   std::atomic< size_t >   counter 
   uint32_t   iosize 
hw
promoted< std::string > icon
const std::string id
const ::io_service_t id
promoted< uint32_tiosize
bool launched
bool launched
struct dx::stream::desc::name_id model
dx::stream::device::monitor monitor
std::deque< std::function< void(control &)> > notify
bool persistence
 device has capability to store persistent settings (i.e. sample rate; clock source; etc.)
dx::preference preference
dx::preference 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
direction::direction start_stop_order = direction::any
unsigned int started
struct dx::stream::desc::stream stream [max_streams]
std::map< decltype(dx::stream::desc<>::stream::target.idx()), std::weak_ptr< stream< device< dx::stream::desc<>, dx::preference, stream > > > > streams
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::proxy::device< dx::preference > >::preference)> sync_cycle_ticks
promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< dx::proxy::device< dx::preference > >::preference), uint32_tsync_reference
rx_t &rx const try
struct dx::stream::desc::name_id vendor
dx::stream::device::monitor version

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

Protected Attributes

bool connected
struct { 
   cf::string   bundle_id 
   cf::string   class_name 
kernel
dx_catchall_rethrow() public std::deque< std::function< void()> > listen
pipe< request >::server pipe
io::port port
class dx::service::device::promoted safety_offset_in [dx::stream::direction::in]
class dx::service::device::promoted safety_offset_out [dx::stream::direction::out]
bool schedule_erase {}
std::recursive_mutex start_stop_in_progress
 start/stop operation in progress

Member Typedef Documentation

◆ desc_t

◆ event

typedef event<kernel> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::event
inherited

◆ request

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

◆ stream_t

typedef stream< device< dx::stream::desc<>, dx::preference, stream > > dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::stream< device< dx::stream::desc<>, dx::preference, stream > >
inherited

◆ value_t

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
typedef desc dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::value_t
inherited

Member Enumeration Documentation

◆ bus

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
enum class dx::stream::desc::bus
stronginherited
Enumerator
usb 
pci 
vm 

◆ type

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

Member Function Documentation

◆ align() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::align ( struct stream * sync_reference)
inlineinherited

◆ align() [2/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::align ( uint32_t sync_reference) const
inlineinherited

◆ begin()

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

◆ catch()

DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ conclude()

void dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::conclude ( )
inlineoverridevirtualnoexceptinherited

◆ configuration()

unsigned char dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::configuration ( unsigned char configuration)
inlineinherited

◆ configurations()

DX_PRAGMA_IGNORE_RETURN_VALUE_END unsigned char dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::configurations ( ) const
inlineinherited

◆ count()

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

dx::stream::control< object_t >::dx_catchall_handler ( this )
inlineoverridenoexceptinherited

◆ dx_catchall_handler_or_rethrow()

dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::dx_catchall_handler_or_rethrow ( this ,
exception. error = not_implemented,
return 0;  )
pure virtualinherited

◆ dx_catchall_rethrow() [1/2]

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

◆ dx_catchall_rethrow() [2/2]

dx::proxy::device< dx::preference >::dx_catchall_rethrow ( )
inlineoverrideinherited

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_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:

◆ enumerate()

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::enumerate ( const format & format = any) const
inlineinherited

enumerate typified pins

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

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

◆ find() [1/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( const decltype(stream::target.idx())& target)
inlineinherited

◆ find() [2/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( const format & format = any,
enum direction::direction direction = direction::any )
inlineinherited
Parameters
formatsearch stream format filter
directionsearch stream direction filter

◆ find() [3/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( const target_t & target)
inlineinherited

◆ find() [4/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( uint32_t & pin,
const format & format = any,
enum direction::direction direction = direction::any )
inlineinherited

finds and returns the stream description and pin idx into this stream

Returns
stream description of indexed pin, pin idx will be altered on return!
Parameters
pinin: global pin index, out: pin index into returned stream description
formatsearch stream format filter
directionsearch stream direction filter
Here is the caller graph for this function:

◆ flush()

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

◆ frame()

DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END uint64_t dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::frame ( ) const
inlinevirtualinherited

◆ get() [1/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() [2/7]

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

::CFTypeRef 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 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() [7/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:

◆ halt()

void dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::halt ( )
inlineoverrideprotectedvirtualnoexceptinherited

◆ hw_clock() [1/2]

virtual bool dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::hw_clock ( ) const
inlinevirtualnoexceptinherited

◆ hw_clock() [2/2]

virtual void dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::hw_clock ( abstract::event * hw_clock)
inlinevirtualinherited

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

void dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::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 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 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/2]

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

launch notification: object mounted and ready to use

◆ launch() [2/2]

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

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

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
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==() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::operator== ( const desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations > & desc) const
inlineinherited

◆ 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/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:

◆ parent()

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

◆ reset()

_device & dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::reset ( )
inlineinherited

◆ retain()

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

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

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

◆ set() [3/5]

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

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

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

◆ start()

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

result indicates if start changed the state.

◆ stop()

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

result indicates the amount of stopped start references

◆ string()

virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END std::string dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::string ( uint8_t ) const
inlinevirtualinherited

◆ sync_reference() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::sync_reference ( struct stream * sync_reference)
inlineinherited

◆ sync_reference() [2/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::sync_reference ( uint32_t sync_reference)
inlineinherited

◆ wake()

void dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::wake ( )
inlineoverrideinherited

Member Data Documentation

◆ bundle_id

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

◆ bus

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
enum dx::stream::desc::bus dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::bus
inherited

◆ clients

promoted<typename super::client_map, typename super::client_map::value_t> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::clients
inherited

◆ clock

◆ clocks

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::clocks
inherited

number of independent clocks [currenlty only single clock support]

◆ clocksource

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::proxy::device< dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::clocksource
inherited

◆ connected

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

◆ counter

std::atomic<size_t> dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::counter
inherited

◆ desc

promoted<dx::stream::desc<>, typename dx::stream::desc<>::value_t> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::desc
inherited

◆ dflt

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::dflt
inherited

can be selected as default (OS audio) device

◆ driver [1/2]

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

◆ driver [2/2]

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

◆ editable

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::editable
inherited

can be edited

◆ hidden

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::hidden
inherited

hide device

◆ [struct]

struct { ... } dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::hw

◆ icon

promoted<std::string> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::icon
inherited

◆ id [1/2]

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

◆ id [2/2]

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

◆ iosize

promoted<uint32_t> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::iosize
inherited

◆ [struct]

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

◆ launched [1/2]

bool dx::object::launched
inherited

◆ launched [2/2]

bool dx::object::launched
inherited

◆ listen

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

◆ model

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct dx::stream::desc::name_id dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::model
inherited

◆ monitor

◆ notify

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

◆ persistence

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::persistence
inherited

device has capability to store persistent settings (i.e. sample rate; clock source; etc.)

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

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

◆ preference [2/2]

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

◆ puid

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

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

persistent universal UID - universally unique ID

◆ safety_offset

promoted<uint32_t> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::safety_offset[dx::stream::direction::directions]
inherited

◆ safety_offset_in

◆ safety_offset_out

◆ samplerate

dx::promoted<uint32_t> dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::samplerate
inherited

◆ schedule_erase

bool dx::registry::schedule_erase {}
protectedinherited

◆ size

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

◆ start_stop_in_progress

std::recursive_mutex dx::stream::control< object_t >::start_stop_in_progress
protectedinherited

start/stop operation in progress

◆ start_stop_order

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
direction::direction dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::start_stop_order = direction::any
inherited

◆ started

unsigned int dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream > > >::started
inherited

◆ stream

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct dx::stream::desc::stream dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream[max_streams]
inherited

◆ streams

std::map<decltype(dx::stream::desc<>::stream::target.idx()), std::weak_ptr<stream< device< dx::stream::desc<>, dx::preference, stream > >> > dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::streams
inherited

◆ sync_cycle_ticks

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::proxy::device< dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::sync_cycle_ticks
inherited

◆ sync_reference

promoted<structdesc_t::stream*>::template preference<decltype(dx::stream::control< dx::proxy::device< dx::preference > >::preference), uint32_t> dx::stream::device< dx::stream::control< dx::proxy::device< dx::preference > >, dx::stream::desc<>, stream< device< dx::stream::desc<>, dx::preference, stream > > >::sync_reference
inherited

◆ try

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

◆ vendor

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct dx::stream::desc::name_id dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::vendor
inherited

◆ version


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

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