dxd - dynax driver framework 2.5.0d148
cross platform open source driver development framework
|
#include <dx_proxy_stream_device.h>
Classes | |
class | promoted |
dx::proxy::stream::device::promoted with device::preference More... | |
Public Types | |
typedef desc_t | desc_t |
Public Member Functions | |
template<typename driver_t > | |
_device (driver_t &driver, decltype(super::id)&id) | |
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 | |
virtual void | operator= (const desc_t &desc) |
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 |
_device & | reset () |
reference & | retain () |
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) |
virtual bool | start (uint64_t=0, unsigned int starting=1) |
virtual unsigned int | stop (bool force=false) noexcept |
~_device () noexcept override | |
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_t > | iosize {*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_t > | safety_offset [dx::stream::direction::directions] | |
dx::promoted< uint32_t > | samplerate | |
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 |
registry & | erase (const char *subkey=nullptr) try |
virtual void | flush () |
void | halt () noexcept override |
registry & | initialize (const std::string &key, ::HKEY root=HKEY_CURRENT_USER, ::REGSAM rights=KEY_ALL_ACCESS) try |
registry & | initialize (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 &initialize( | operator 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 | ||
|
inherited |
|
strongprotectedinherited |
|
inline |
|
inlineoverridenoexcept |
|
inlineprotectedinherited |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineoverridevirtualnoexcept |
conclude notifacation: device will be removed from tree
Reimplemented from dx::proxy::device.
|
inline |
|
inline |
|
inline |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverridenoexceptinherited |
|
pure virtual |
|
inlineinherited |
|
inlineinherited |
|
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.
|
inherited |
|
inherited |
|
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 |
|
inherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineoverridevirtualnoexceptinherited |
notification exception handler
Reimplemented from dx::device<::io_service_t >.
Reimplemented in dx::usb::platform::device.
|
inlineprotectedvirtualinherited |
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectedvirtualnoexcept |
Reimplemented from dx::stream::control< dx::proxy::device >.
|
inlinevirtualinherited |
|
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 |
|
inlineoverridevirtualnoexcept |
log object class information
Reimplemented from dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, preference_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 |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlinevirtualinherited |
launch notification: object mounted and ready to use
Reimplemented in dx::stream::stream< device< desc_t, dx::preference, pipe >, dx::circular, usb::pipe< device< desc_t, dx::preference, pipe > > >, dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >, dx::usb::stream::_device< desc_t, preference_t, stream_t >, dx::virtuel::driver< device_t >, dx::map::driver< device >, dx::map::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 >.
|
inlineinherited |
|
inlinenoexceptinherited |
auto converter into const io_object
|
inlineprotectednoexceptinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlinenoexceptinherited |
auto converter into io_object
|
inlinenoexceptinherited |
auto converter into io_object pointer
|
inlinevirtual |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineinherited |
|
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 |
|
inlinevirtualinherited |
result indicates if start changed the state.
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inherited |
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 |
|
inherited |
|
protectedinherited |
|
inherited |
promoted<desc_t, typename desc_t::value_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::desc {*this, ioctl::stream::desc} |
|
inherited |
|
inherited |
struct { ... } dx::stream::device< dx::stream::control< dx::proxy::device > , desc_t , preference_t, stream_t >::hw |
|
inherited |
|
inherited |
promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::iosize {*this, super::iosize, ioctl::stream::clock::iosize} |
struct { ... } dx::proxy::device::kernel |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
|
inherited |
persistent UID (i.e. serial number) - system unique - if no other option to identify could change with location
|
inherited |
persistent universal UID - universally unique ID
promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::safety_offset[dx::stream::direction::directions] |
dx::promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::samplerate |
|
inherited |
|
protectedinherited |
start/stop operation in progress
unsigned int dx::proxy::stream::_device< desc_t, preference_t, stream_t >::started |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Aug 22 2025 |