dxd - dynax driver framework 2.2.0d91
cross platform open source driver development framework
|
#include <dx_proxy_stream_device.h>
Public Types | |
typedef desc_t | desc |
Public Member Functions | |
__dx_catchall (iosize_persistence_helper(iosize);std::cerr<< exception<< std::endl;,) int32_t iosize() const override try | |
retrieve iosize; first try from kernel device/persistence store; fallback to user mode store | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
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) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (dx::exception &exception) | |
virtual uint32_t | clocksource () |
virtual uint32_t | clocksource (uint32_t clocksource) try |
void | conclude () noexcept override |
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. | |
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 |
void | ctl (unsigned int ioctl) const |
dx_catchall_handler (this,) void conclude() noexcept override | |
dx_catchall_handler_or_rethrow (this, exception.error==not_implemented,) _device &reset() override | |
dx_catchall_handler_or_rethrow (this, exception.error==not_implemented,) bool monitor() const try | |
dx_catchall_handler_or_rethrow (this, exception.error==not_implemented,) uint32_t safety_offset(dx | |
dx_catchall_rethrow () ~device() noexcept override | |
the device class destructor | |
dx_catchall_rethrow (, "name: %s, access rights: %x, sharing options:%x", name, access, share) | |
registry & | erase (const char *key=nullptr) |
void | exception (const dx::exception &exception, bool filtered=false) const noexcept override |
notification exception handler | |
void | exception (const dx::exception &exception, bool filtered=false) const noexcept override |
notification exception handler | |
uint64_t | frame () const |
::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 |
template<typename rx_t > | |
rx_t | ictl (uint32_t ioctl) const |
member ioctl | |
template<typename rx_t > | |
size_t | ictl (uint32_t ioctl, rx_t &rx) const |
template<typename rx_t > | |
rx_t | ictl (unsigned int ioctl) const |
Windows: member ioctl. | |
template<typename rx_t > | |
size_t | ictl (unsigned int ioctl, rx_t &rx) const |
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 | |
void | initialize (const char *path, ::HKEY root, ::REGSAM rights=KEY_READ, const char *key=nullptr) |
void | initialize (const char *path, ::REGSAM rights=KEY_READ, ::HKEY root=HKEY_CURRENT_USER, const char *key=nullptr) |
template<typename rx_t , typename tx_t > | |
rx_t | ioctl (uint32_t ioctl, const tx_t &tx) const |
template<typename rx_t , typename tx_t > | |
size_t | ioctl (uint32_t ioctl, const tx_t &tx, rx_t &rx) const |
size_t | ioctl (uint32_t ioctl, const void *tx=nullptr, size_t tx_size=0, void *rx=nullptr, size_t rx_size=0) const |
template<typename rx_t , typename tx_t > | |
rx_t | ioctl (unsigned int ioctl, const tx_t &tx) const |
template<typename tx_t , typename rx_t > | |
size_t | ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) const |
virtual int32_t | iosize () const try |
int32_t | iosize (uint32_t iosize) noexcept override try |
persistently save iosize; first try to submit to kernel device/persistence store; fallback to user mode store | |
virtual int32_t | iosize (uint32_t iosize, dx::event< user > &hw_clock) try |
int32_t | iosize (uint32_t iosize, os_event event) try |
set kernel mode HW clock event (also stores iosize persistently) | |
virtual void | launch () |
launch notification: object mounted and ready to use | |
template<typename monitor_t = dx::stream::clock::monitor> | |
monitor_t * | monitor () try |
monitor_t * | monitor (bool force=false) |
template<typename tx_t > | |
void | octl (uint32_t ioctl, const tx_t &tx) const |
template<typename tx_t > | |
void | octl (unsigned int ioctl, const tx_t &tx) const |
operator const io_registry_entry_t & () const noexcept | |
auto converter into const io_object | |
operator io_registry_entry_t & () noexcept | |
auto converter into io_object | |
operator io_registry_entry_t * () noexcept | |
auto converter into io_object pointer | |
operator std::string () const | |
operator uint64_t () const | |
template<typename value_t > | |
operator value_t () const | |
template<typename value_t > | |
value_t | operator() (value_t dflt) const |
operator::CFMutableDictionaryRef () const | |
operator::CFStringRef () const | |
operator::HKEY () const noexcept | |
bool | operator== (io_registry_entry_t io_object) const noexcept |
::CFTypeRef | operator[] (::CFStringRef key) const |
registry | operator[] (const char *key) const |
template<typename key_t , typename = cf::enable_if_convertible<key_t>> | |
::CFTypeRef | operator[] (key_t key) const |
virtual device & | reset () |
reference & | retain () |
uint32_t | safety_offset (dx::stream::direction::direction direction) const override try |
obtain persistent number of rx safety offset ticks - defaults to stream desc config setting | |
virtual uint32_t | safety_offset (dx::stream::direction::direction direction, uint32_t safety_offset) try |
set persistent number of rx/tx safety offset ticks | |
uint32_t | samplerate () const override try |
template<typename observer_t = uint32_t> | |
observer_t * | samplerate () const try |
uint32_t | samplerate (uint32_t samplerate) override try |
registry & | set (::CFStringRef key, ::CFTypeRef value) noexcept |
template<typename value_t , typename = cf::enable_if_convertible<value_t>> | |
registry & | set (::CFStringRef key, value_t value) |
registry & | set (::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>> | |
registry & | set (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>> | |
registry & | set (key_t key, value_t value) |
bool | start (uint64_t frame, unsigned int started=1) override try |
virtual unsigned int | stop (bool force=false) noexcept |
std::string | string (uint8_t idx) const |
virtual uint32_t | sync_cycle_ticks () const try |
obtain persistent number of ticks per sync cycle - defaults to sync_cycle.hw_min_ticks with an absolute minimum of 2 ticks | |
virtual int32_t | sync_reference () const try |
virtual int32_t | sync_reference (uint32_t sync_reference) try |
Public Attributes | ||
dx::event< user > * | clock | |
std::atomic< size_t > | counter | |
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 | |
uint32_t | iosize | |
bool | launched {} | |
bool | launched {} | |
std::deque< std::function< void(control &)> | notify ) | |
sc::preference | preference | |
registry | preference | |
std::string | puid | |
persistent UID (i.e. serial number) | ||
std::string | puuid | |
persistent universal UID | ||
shared::memory< dx::stream::clock::monitor > | shared_monitor | |
std::atomic< unsigned int > | started | |
std::map< decltype(desc_t::stream::target.idx()), std::weak_ptr< stream_t > > | streams | |
uint32_t | version | |
uint32_t | version | |
Protected Member Functions | |
void | halt () noexcept override |
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 | ||
|
inherited |
|
inlineoverrideinherited |
retrieve iosize; first try from kernel device/persistence store; fallback to user mode store
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlineoverridevirtualnoexceptinherited |
conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.
Reimplemented from dx::proxy::device.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverridenoexceptinherited |
|
inlineoverrideinherited |
|
inlineinherited |
|
inlineinherited |
|
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
|
inherited |
|
inlineinherited |
|
inlineoverridevirtualnoexceptinherited |
notification exception handler
Reimplemented from dx::device<::io_service_t >.
Reimplemented in dx::usb::platform::device.
|
inlineoverridevirtualnoexceptinherited |
notification exception handler
Reimplemented from dx::device<::io_service_t >.
Reimplemented in dx::usb::platform::device.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectedvirtualnoexceptinherited |
Reimplemented from dx::stream::control< dx::proxy::device >.
|
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.
|
inlineinherited |
|
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
n/a | microsoft does not give information about what possible errors values are provided by its OS other than |
ERROR_INSUFFICIENT_BUFFER | if the output buffer is too small to receive any data |
|
inlineinherited |
|
inlineoverridevirtualnoexceptinherited |
log object class information
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlineinherited |
(re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
n/a | microsoft does not give information about what possible errors values are provided by its OS |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
<
|
inlineoverridevirtualnoexceptinherited |
persistently save iosize; first try to submit to kernel device/persistence store; fallback to user mode store
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlinevirtualinherited |
|
inlineinherited |
set kernel mode HW clock event (also stores iosize persistently)
|
inlinevirtualinherited |
launch notification: object mounted and ready to use
Reimplemented in dx::stream::stream< device< desc_t, pipe >, dx::circular, usb::pipe< device< desc_t, pipe > > >, dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >, dx::usb::stream::_device< desc_t, stream_t >, dx::virtuel::driver< device_t >, dx::coreaudio::driver< device_t >, dx::proxy::driver< device< pin_t > >, dx::proxy::driver< device< stream_pin_t > >, dx::proxy::driver< device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< dx::test::device< super_device_t > >, dx::proxy::driver< dx::test::midi::device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< device< pin_t > >, dx::proxy::driver< device< stream_pin_t > >, dx::proxy::driver< device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< dx::test::device< super_device_t > >, dx::proxy::driver< dx::test::midi::device< super_device_t > >, and dx::proxy::driver< device_t >.
|
inlinevirtualinherited |
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
auto converter into const io_object
|
inlinenoexceptinherited |
auto converter into io_object
|
inlinenoexceptinherited |
auto converter into io_object pointer
|
inlineinherited |
|
inlineexplicitinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineoverridevirtualinherited |
obtain persistent number of rx safety offset ticks - defaults to stream desc config setting
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlinevirtualinherited |
set persistent number of rx/tx safety offset ticks
|
inlineoverridevirtualinherited |
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlinevirtualinherited |
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlineoverridevirtualinherited |
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >.
|
inlinenoexceptinherited |
|
inlineinherited |
|
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.
|
inlineinherited |
|
inlineinherited |
|
inlineoverridevirtualinherited |
result indicates if start changed the state.
Reimplemented from dx::stream::control< dx::proxy::device >.
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inlineinherited |
|
inlinevirtualinherited |
obtain persistent number of ticks per sync cycle - defaults to sync_cycle.hw_min_ticks with an absolute minimum of 2 ticks
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
struct { ... } dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t, stream_t >::hw |
|
inherited |
|
inherited |
|
inherited |
struct { ... } dx::proxy::device::kernel |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
persistent UID (i.e. serial number)
|
inherited |
persistent universal UID
|
inherited |
|
protectedinherited |
start/stop operation in progress
|
inherited |
|
inherited |
|
inherited |
|
inherited |
(c) copyright 2009 dynamic acoustics e.U. | generated on Tue Mar 11 2025 |