|
dxd - dynax driver framework 2.7.0d222
cross platform open source driver development framework
|
#include <dx_usb_stream_device.h>
Public Types | |
| typedef desc_t | desc_t |
| typedef event | event_t |
| typedef pipe< device< desc_t, dx::preference, pipe > > | stream_t |
Public Member Functions | |
| void | attach (channel_t **io[dx::stream::direction::directions][2], const std::vector< bool >(&channel_map)[2]) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| device & | close (bool force=false) noexcept |
| void | conclude () noexcept override |
| conclude notifacation: device will be removed from tree | |
| virtual uint8_t | configuration (uint8_t configuration) |
| uint8_t | configurations () const |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END void | configure () |
| auto | count () const noexcept |
| auto | count () const noexcept |
| void | ctl (uint32_t ioctl) const try |
| dx_catchall_handler (this,) void conclude() noexcept override | |
| 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) | |
| uint64_t | frame () const try |
| value_t | get (::CFStringRef key) const |
| ::CFTypeRef | get (::CFStringRef key) const |
| value_t | get (::CFStringRef key, ::CFTypeRef dflt) const noexcept |
| ::CFTypeRef | get (::CFStringRef key, ::CFTypeRef dflt) const noexcept |
| value_t | get (::CFStringRef key, value_t dflt) const noexcept |
| value_t | get (::CFStringRef key, value_t dflt) const noexcept |
| value_t | get (key_t key) const |
| ::CFTypeRef | get (key_t key) const |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END void | halt () noexcept override |
| virtual bool | hw_clock () const noexcept |
| virtual void | hw_clock (abstract::event *hw_clock, uint32_t iosize) |
| rx_t | ictl (unsigned int ioctl) const |
| Windows: member ioctl. | |
| size_t | ictl (unsigned int ioctl, rx_t &rx) const |
| 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 | |
| rx_t | ioctl (unsigned int ioctl, const tx_t &tx) const |
| size_t | ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) const |
| void | launch () override try |
| void | octl (unsigned int ioctl, const tx_t &tx) const |
| device & | open () |
| opens the USB device for exclusice access | |
| operator const ::io_registry_entry_t & () const noexcept | |
| auto converter into const io_object | |
| operator const ::io_registry_entry_t & () const noexcept | |
| auto converter into const io_object | |
| operator const os_event () const noexcept | |
| operator const std::string & () const noexcept | |
| identifying device string, mirroring macOS' io::registry conversion | |
| operator os_event () noexcept | |
| operator uint64_t () const | |
| operator uint64_t () const | |
| ::IOUSBDeviceInterface650 * | operator-> () const |
| operator::CFMutableDictionaryRef () const | |
| operator::CFMutableDictionaryRef () const | |
| operator::CFStringRef () const | |
| operator::CFStringRef () const | |
| operator::HANDLE () const noexcept | |
| 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 | |
| operator::IOUSBDeviceInterface650 ** () const | |
| bool | operator== (::io_registry_entry_t io_object) const noexcept |
| bool | operator== (::io_registry_entry_t io_object) const noexcept |
| virtual device & | operator>> (std::ostream &) const |
| virtual device & | operator>> (std::ostream &) const |
| ::CFTypeRef | operator[] (::CFStringRef key) const |
| ::CFTypeRef | operator[] (::CFStringRef key) const |
| ::CFTypeRef | operator[] (key_t key) const |
| ::CFTypeRef | operator[] (key_t key) const |
| registry | parent () const |
| registry | parent () const |
| device & | reenumerate () |
| reference & | retain () |
| reference & | retain () |
| registry & | set (::CFStringRef key, ::CFTypeRef value) |
| registry & | set (::CFStringRef key, ::CFTypeRef value) |
| registry & | set (::CFStringRef key, value_t value) |
| registry & | set (::CFStringRef key, value_t value) |
| device & | 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. | |
| 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. | |
| registry & | set (key_t key, ::CFTypeRef value) |
| registry & | set (key_t key, ::CFTypeRef value) |
| registry & | set (key_t key, value_t value) |
| registry & | set (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 |
| device & | submit (const request< data_t > &request, bool autoclear=true) const try |
| bool | try_conclude () noexcept |
| atomically conclude()s if currently launched; returns whether this call did it | |
| bool | try_conclude () noexcept |
| atomically conclude()s if currently launched; returns whether this call did it | |
| bool | try_conclude () noexcept |
| atomically conclude()s if currently launched; returns whether this call did it | |
| bool | try_launch () |
| atomically launch()es if not already launched; returns whether this call did it | |
| bool | try_launch () |
| atomically launch()es if not already launched; returns whether this call did it | |
| bool | try_launch () |
| atomically launch()es if not already launched; returns whether this call did it | |
| void | wake () override |
Static Public Member Functions | |
| static void | create (const char *product_id, const ::GUID &guid, const std::string &id, const desc_t &desc) |
| persisted software device: PnP keeps it enumerated after the creating handle closes | |
| static void | destroy (const char *product_id, const ::GUID &guid, const std::string &id) |
| re-acquires the persisted device and binds it to the closing handle | |
Public Attributes | |
| union { | |
| struct { | |
| struct { | |
| struct { | |
| uint8_t id | |
| } selector | |
| struct { | |
| uint8_t id | |
| } source | |
| } clock | |
| } v2 | |
| } | adc |
| uint16_t | bcdADC |
| cf::string | bundle_id |
| struct { | |
| struct { | |
| uint8_t id | |
| } selector | |
| struct { | |
| uint8_t id | |
| } source | |
| } | clock |
| promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference)> | clocksource |
| bool | composite |
| indicate WinUSB matched against single interface of composite device; | |
| dx::driver< decltype(id), dx::preference > & | driver |
| dx::driver< decltype(id), dx::preference > & | driver |
| dx::driver< decltype(id), dx::preference > & | driver |
| ::WINUSB_INTERFACE_HANDLE | handle |
| struct { | |
| shared::guard< std::map< abstract::event *, std::pair< uint32_t, size_t > > > clock | |
| event -> {iosize, sample counter} More... | |
| uint32_t iosize | |
| staging value for registration paths without their own iosize argument (macOS CF property bridge) More... | |
| } | hw |
| promoted< std::string >::preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference)> | icon |
| uint8_t | id |
| std::weak_ptr< dx::circular > | implicit_feedback |
| promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference)> | iosize |
| uint32_t | iosize |
| staging value for registration paths without their own iosize argument (macOS CF property bridge) | |
| std::atomic< bool > | launched |
| std::atomic< bool > | launched |
| std::atomic< bool > | launched |
| dx::stream::device::monitor | monitor |
| std::deque< std::function< void(control &)> > | notify |
| dx::preference | preference |
| dx::preference | preference |
| dx::preference | preference |
| std::string | puid |
| persistent UID - system unique - could change with location | |
| std::string | puid |
| persistent UID - system unique - could change with location | |
| std::string | puid |
| persistent UID - system unique - could change with location | |
| std::string | puuid |
| persistent universal UID - universally unique ID (i.e. serial number) | |
| std::string | puuid |
| persistent universal UID - universally unique ID (i.e. serial number) | |
| std::string | puuid |
| persistent universal UID - universally unique ID (i.e. serial number) | |
| promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference)> | safety_offset [direction::directions] |
| promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference)> | samplerate |
| struct { | |
| uint8_t id | |
| } | selector |
| return | size |
| struct { | |
| uint8_t id | |
| } | source |
| enum speed | speed |
| std::atomic< unsigned int > | started |
| std::map< decltype(desc_t::stream::target.idx()), std::weak_ptr< pipe< device< desc_t, dx::preference, pipe > > > > | streams |
| promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference)> | sync_cycle_ticks |
| promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< usb::device< dx::preference > >::preference), uint32_t > | sync_reference |
| rx_t &rx const | try |
| struct { | |
| struct { | |
| struct { | |
| uint8_t id | |
| } selector | |
| struct { | |
| uint8_t id | |
| } source | |
| } clock | |
| } | v2 |
| dx::stream::device::monitor | version |
Protected Types | |
| typedef service::request< service::stream::data< typename super_device_t::desc_t > > | request |
| typedef pipe< request >::template server< user_client, std::weak_ptr< device > > | server |
| pipe::server connecting user_clients The pipe holds a std::weak_ptr<device> as a temporary by the pipe::server::args variadic tuple to create shared device references for the user_client. At time of device construction there is not yet a std::shared_ptr<device>, therefore the pipe::server::args weak_ptr assignment happens at service::device::launch(). | |
| enum | type |
Protected Member Functions | |
| std::string | canonical (const std::string &name) const try |
| catch (...) | |
| virtual void | conclude () noexcept |
| conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there. Called only through try_conclude() - never call this directly from outside the class hierarchy. | |
| dx_catchall_rethrow () registry(const registry ®istry | |
| registry & | erase (const char *subkey=nullptr) noexcept |
| virtual void | flush () |
| void | initialize (::IOCFPlugInInterface **cf_interface, ::CFUUIDRef uuid) |
| 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 |
| registry & | run () |
| dx_catchall_rethrow() registry &initialize(size_t | size () const noexcept |
Static Protected Member Functions | |
| static self_t void | assign (const self_t &self, const value_t &value) try |
| static registry | at (const self_t &self) |
| static container_t | children (const self_t &self) noexcept try |
| static bool | fetch (const self_t &self, value_t &value) try |
| static bool | nested (const self_t &self) noexcept |
| static size_t | size (const self_t &self) noexcept |
Protected Attributes | |
| bool | connected |
| struct { | |
| cf::string bundle_id | |
| cf::string class_name | |
| } | kernel |
| std::string | key |
| const std::string & | key |
| std::deque< std::function< void()> > | listen |
| std::atomic< int > | opened |
| const std::string | owns_root |
| server | pipe |
| io::port | port |
| ::HANDLE | process |
| const std::string | root |
| class dx::service::device::promoted | safety_offset_in [dx::stream::direction::in] |
| class dx::service::device::promoted | safety_offset_out [dx::stream::direction::out] |
| decltype(super::samplerate) ::chain | samplerate_server |
| bool | schedule_erase |
| std::recursive_mutex | start_stop_in_progress |
| start/stop operation in progress | |
| struct { | |
| ::WINUSB_INTERFACE_HANDLE handle | |
| } | winusb |
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
pipe::server connecting user_clients The pipe holds a std::weak_ptr<device> as a temporary by the pipe::server::args variadic tuple to create shared device references for the user_client. At time of device construction there is not yet a std::shared_ptr<device>, therefore the pipe::server::args weak_ptr assignment happens at service::device::launch().
|
inherited |
|
strongprotectedinherited |
|
inlinestaticprotectedinherited |
|
inlinestaticprotectedinherited |
dx::key_value_tree<registry> contract: resolves self's parent chain into one real key/value position, then delegates below - the only place a registry[k1][k2]..[kN] chain becomes real subkeys/values.
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlinestaticprotectednoexceptinherited |
self's own child names as any string container, yielding an empty one when the key is absent or inaccessible. Stays a static, not a dx::key_value_tree-style operator container_t(): registry is a dependent base of key_value_tree<registry> (inherited via the tree_t template parameter), and key_value_tree's own operator value_t() becomes entirely unreachable once a dependent base declares a same-shaped operator container_t() template of its own.
|
inlinenoexceptinherited |
|
inlineprotectedvirtualnoexceptinherited |
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. Called only through try_conclude() - never call this directly from outside the class hierarchy.
|
inlineoverridenoexceptinherited |
conclude notifacation: device will be removed from tree
|
inlinevirtualinherited |
|
inlineinherited |
|
inlinevirtualinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinestaticinherited |
persisted software device: PnP keeps it enumerated after the creating handle closes
|
inlineinherited |
|
inlinestaticinherited |
re-acquires the persisted device and binds it to the closing handle
|
inlineoverridenoexceptinherited |
|
protectedinherited |
cheap: purely in-memory identity extension with a bare child name - what dx::key_value_tree::operator[] builds on.
|
inherited |
|
inherited |
|
inlineprotectednoexceptinherited |
|
inlinestaticprotectedinherited |
|
inlineprotectedvirtualinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverridevirtualnoexceptinherited |
Reimplemented from dx::stream::control< usb::device< dx::preference > >.
|
inlinevirtualnoexceptinherited |
|
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 |
|
inlineoverridevirtualnoexceptinherited |
|
inlineprotectedinherited |
|
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 |
|
inlineoverridevirtualinherited |
Reimplemented from dx::object.
|
inlinestaticprotectednoexceptinherited |
|
inlineinherited |
|
inlineinherited |
opens the USB device for exclusice access
|
inlinenoexceptinherited |
auto converter into const io_object
|
inlinenoexceptinherited |
auto converter into const io_object
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
identifying device string, mirroring macOS' io::registry conversion
|
inlinenoexceptinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlineinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlineexplicitinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
auto converter into io_object
|
inlinenoexceptinherited |
auto converter into io_object
|
inlinenoexceptinherited |
auto converter into io_object pointer
|
inlinenoexceptinherited |
auto converter into io_object pointer
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
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 |
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 |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectednoexceptinherited |
stays a named method: base and derived conversion function templates are simultaneous overload candidates, so an operator value_t() here would compete with dx::key_value_tree's own. like get<value_t>() but returns false for ERROR_FILE_NOT_FOUND, from either RegQueryValueExA or value_of() itself; any other failure throws. a sibling thread/process may delete the containing key between value_of()'s create and the set - retry recreates the whole chain in that case subkey+value count, 0 if the key doesn't exist (key_of()'s non-throwing overload - an ordinary, expected outcome here, not a genuine error).
|
inlinestaticprotectednoexceptinherited |
|
inlinevirtualinherited |
notify system will sleep stub
|
inlinevirtualinherited |
notify system will sleep stub
|
inlinevirtualinherited |
result indicates if start changed the state.
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inlineinherited |
|
inlinenoexceptinherited |
atomically conclude()s if currently launched; returns whether this call did it
|
inlinenoexceptinherited |
atomically conclude()s if currently launched; returns whether this call did it
|
inlinenoexceptinherited |
atomically conclude()s if currently launched; returns whether this call did it
|
inlineinherited |
atomically launch()es if not already launched; returns whether this call did it
|
inlineinherited |
atomically launch()es if not already launched; returns whether this call did it
|
inlineinherited |
atomically launch()es if not already launched; returns whether this call did it
|
inlineoverrideinherited |
| union { ... } dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe > > >::adc |
|
inherited |
|
inherited |
| struct { ... } dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe > > >::clock |
|
inherited |
|
inherited |
indicate WinUSB matched against single interface of composite device;
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| struct { ... } dx::stream::device< dx::stream::control< usb::device< dx::preference > >, desc_t, pipe< device< desc_t, dx::preference, pipe > > >::hw |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
staging value for registration paths without their own iosize argument (macOS CF property bridge)
| struct { ... } dx::service::device< dx::preference >::kernel |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
persistent UID - system unique - could change with location
|
inherited |
persistent UID - system unique - could change with location
|
inherited |
persistent UID - system unique - could change with location
|
inherited |
persistent universal UID - universally unique ID (i.e. serial number)
|
inherited |
persistent universal UID - universally unique ID (i.e. serial number)
|
inherited |
persistent universal UID - universally unique ID (i.e. serial number)
|
protectedinherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
| struct { ... } dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe > > >::selector |
|
inherited |
| struct { ... } dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe > > >::source |
|
inherited |
|
protectedinherited |
start/stop operation in progress
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| struct { ... } dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe > > >::v2 |
|
inherited |
| struct { ... } dx::usb::platform::device< dx::preference >::winusb |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |