|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
ASIO client driver interface class. More...
#include <dx_asio_client_driver.h>
Classes | |
| struct | property |
Public Types | |
| typedef std::conditional_t< held, typename view::template iterator< typename holders::const_iterator >, typename holders::const_iterator > | const_iterator |
| typedef std::conditional_t< held, typename view::template iterator< typename holders::iterator >, typename holders::iterator > | iterator |
| typedef driver | map |
| typedef decltype(matching_ids) | match |
| typedef driver_settings< dx::promoted< dx::log >::preference< preference_t > > | settings |
| typedef std::conditional_t< held, typename view::value_type, typename holders::value_type > | value_type |
Public Member Functions | |
| const_iterator | begin () const noexcept |
| iterator | begin () noexcept |
| virtual bool | boot () |
| 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. Called only through try_conclude() - never call this directly from outside the class hierarchy. | |
| driver (const match &matching_ids, const char *product_id, const decltype(super::preference)&preference, dx::log log={}) | |
| the ASIO client driver interface class constructor | |
| driver (const match &matching_ids, const char *product_id, dx::log log={}) | |
| const_iterator | end () const noexcept |
| iterator | end () noexcept |
| void | exception (const class exception &exception, bool filtered=false) const noexcept override |
| notification exception handler | |
| virtual void | exception (const exception &exception, bool filtered=false) const noexcept=0 |
| notification exception handler | |
| iterator | find (const device_id_t &device_id) |
| const_iterator | find (const device_id_t &device_id) const |
| void | info (std::ostream &os) noexcept override |
| log object class information | |
| void | launch () override |
| launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy. | |
| virtual | operator bool () const noexcept |
| virtual driver & | operator<< (const char *file) |
| virtual driver & | operator<< (std::ifstream &) |
| restores device settings | |
| virtual driver & | operator>> (const char *file) const |
| virtual driver & | operator>> (std::ostream &ostream) const |
| saves device tree | |
| virtual bool | shutdown () |
| client driver::shutdown/boot(): override to shutdown/boot host driver | |
| 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 | |
Public Attributes | |
| promoted< uint32_t > | connection_id {1} |
| T | elements |
| STL member. | |
| K | keys |
| STL member. | |
| std::atomic< bool > | launched {} |
| dx::log | log {} |
| cached local log level, mirrors settings::log | |
| preference_t | preference |
| const char * | product_id |
| promoted< os_result > | status {driver_not_connected} |
| uint32_t | version {DX_VERSION32} |
Protected Types | |
| typedef decltype(device_t::id) | device_id_t |
| typedef std::map< device_id_t, std::shared_ptr< dx::apartment< device_t > > > | holders |
Protected Member Functions | |
| virtual void | add (const device_id_t &)=0 |
| adds a new device to the device list | |
| void | add (const device_id_t &device_id) override |
| adds a new device to the device list | |
| virtual void | arrived () |
| notify device arrivals completed stub | |
| virtual void | arrived (device_t &) |
| notify specific device arrival stub | |
| virtual void | clear () noexcept |
| replaces std::map::clear to call virtual notification methods | |
| std::set< dx::guid > | matching_clsids () const |
| the CLSIDs of the SOFTWARE\ASIO entries any match dictionary takes | |
| virtual void | remove (const device_id_t &)=0 |
| finds and removes a device from the device list | |
| void | remove (const device_id_t &device_id) override |
| finds and removes a device from the device list | |
| virtual void | removed () noexcept |
| notify device removals completed stub | |
| virtual void | removed (device_t &) noexcept |
| notify specific device removal stub | |
| virtual void | scan () |
| void | sleep () override |
| < notify system will sleep | |
| void | wake () override |
Static Protected Member Functions | |
| static uint32_t | thunk_idx (callbacks *callbacks) |
Protected Attributes | |
| registry | asio {asio::property::root, HKEY_LOCAL_MACHINE, KEY_NOTIFY, {[this](){scan();}}} |
| std::optional<::AsioDriverList > | list |
| the SDK's view of SOFTWARE\ASIO, taken anew by every scan: a driver registers with its device | |
| std::vector< asio::dictionary > | matching_ids |
Static Protected Attributes | |
| static auto | thunks |
ASIO client driver interface class.
This is the interface to a ASIO client driver identified by a set of matching dx::guid IDs. The driver class is a helper to create device objects and to bind the device to the driver identified by the set of matching dictionaries.
device arrival/removal is initiated by launch/conclude at driver start/end and as registry notification. Therefor manipulating the device std::deque needs to be locked.
| in | case of an error returned by the underlaying API the driver class throws a dx::exception. |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
| typedef decltype(matching_ids) dx::asio::client::driver< device_t, devices >::match |
|
inherited |
the driver's own settings: the log a promoted::preference on the store's dx::log::id node, resolved like a stream desc (dx::log's DX_TREE_SERIALIZE), the constructor's log its default - stored as no entry, reloaded on the store's change
|
inherited |
|
inline |
the ASIO client driver interface class constructor
| matching_ids | the matching dictionaries identifying the driver interface |
| product_id | ASIO client driver ID |
| preference | preference |
| log | log settings |
|
inline |
|
protectedpure virtualinherited |
adds a new device to the device list
| dx::exception |
|
inlineoverrideprotectedinherited |
adds a new device to the device list
| dx::exception |
|
protectedvirtualinherited |
notify device arrivals completed stub
Reimplemented from dx::driver< device_id_t, preference_t >.
|
inlineprotectedvirtualinherited |
notify specific device arrival stub
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinevirtualinherited |
|
inlineprotectedvirtualnoexceptinherited |
replaces std::map::clear to call virtual notification methods
|
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. Called only through try_conclude() - never call this directly from outside the class hierarchy.
Reimplemented from dx::object.
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineoverridenoexceptinherited |
notification exception handler
|
pure virtualnoexceptinherited |
notification exception handler
Implemented in dx::asio::client::_device< desc_t, preference_t, stream_t, group_t >, dx::asio::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > >, dx::asio::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >, dx::device< id_t, preference_t >, dx::device< dx::guid, preference >, dx::device< std::string, dx::preference >, dx::device< std::string, preference >, dx::device< std::string, preference_t >, dx::device<::AudioObjectID, cf::preference >, dx::device<::io_service_t, dx::preference >, dx::device<::io_service_t, preference_t >, dx::device<::MIDIDeviceRef, cf::preference >, dx::device<>, dx::proxy::device< preference_t >, dx::proxy::device< preference_t >, dx::proxy::device< dx::preference >, dx::proxy::device<>, dx::service::app, dx::service::client::_device< desc_t, preference_t, stream_t, group_t >, dx::service::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > >, dx::service::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >, dx::service::device< preference_t >, dx::service::device< dx::preference >, dx::service::device< super_device_t >, dx::stream::object< _device_t >, dx::stream::object< device<> >, dx::stream::pin< device_t, _circular_t >, dx::usb::device< preference_t >, dx::usb::device< dx::preference >, dx::usb::platform::device< preference_t >, dx::usb::platform::device< preference_t >, dx::usb::platform::device< dx::preference >, dx::usb::platform::device< preference_t >, dx::usb::platform::device< preference_t >, dx::usb::stream::pipe< device_t, circular_t, stream_t >, dx::virtuel::stream::_device< desc_t, preference_t, stream_t, group_t >, dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream, group > >, group< device< desc, dx::preference, dx::stream::shared::stream, group > > >, dx::virtuel::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >, and dx::wasapi::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > >.
|
inlineinherited |
|
inlineinherited |
|
inlineoverridevirtualnoexcept |
log object class information
Reimplemented from dx::object.
|
inlineoverridevirtual |
launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.
Reimplemented from dx::object.
|
inlineprotected |
the CLSIDs of the SOFTWARE\ASIO entries any match dictionary takes
|
inlinevirtualnoexcept |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
restores device settings
|
inlinevirtualinherited |
|
inlinevirtualinherited |
saves device tree
|
protectedpure virtualinherited |
finds and removes a device from the device list
|
inlineoverrideprotectedinherited |
finds and removes a device from the device list
| dx::exception |
|
protectedvirtualinherited |
notify device removals completed stub
Reimplemented from dx::driver< device_id_t, preference_t >.
|
inlineprotectedvirtualnoexceptinherited |
notify specific device removal stub
|
inlineprotectedvirtual |
|
inlinevirtualinherited |
client driver::shutdown/boot(): override to shutdown/boot host driver
Reimplemented in dx::coreaudio::driver< device_t >.
|
inlineoverrideprotectedinherited |
< notify system will sleep
notify system wake completed stub
|
inlinestaticprotected |
|
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
|
inlineoverrideprotectedinherited |
|
protected |
| promoted<uint32_t> dx::asio::client::driver< device_t, devices >::connection_id {1} |
|
inherited |
STL member.
|
inherited |
STL member.
|
inherited |
|
protected |
the SDK's view of SOFTWARE\ASIO, taken anew by every scan: a driver registers with its device
|
inherited |
cached local log level, mirrors settings::log
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
inlinestaticprotected |
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |