|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
WASAPI client driver interface class. More...
#include <dx_wasapi_client_driver.h>
Classes | |
| struct | property |
| this bus's name in the device tree and the preference store More... | |
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 driver_settings< dx::promoted< dx::log >::preference< decltype(device_t::preference) > > | 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 () |
| 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 WASAPI 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 | |
| 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 | |
| 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 | |
| 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_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 | |
| ~driver () override | |
Public Attributes | |
| promoted< uint32_t > | connection_id {1} |
| T | elements |
| STL member. | |
| T | elements |
| STL member. | |
| K | keys |
| STL member. | |
| K | keys |
| STL member. | |
| std::atomic< bool > | launched |
| std::atomic< bool > | launched {} |
| dx::log | log {} |
| cached local log level, mirrors settings::log | |
| dx::log | log |
| cached local log level, mirrors settings::log | |
| preference_t | preference |
| decltype(device_t::preference) | preference |
| const char * | product_id |
| const char * | product_id |
| promoted< os_result > | status {driver_not_connected} |
| the driver's condition, promoted so a host follows it without polling | |
| promoted< os_result > | status |
| the driver's condition, promoted so a host follows it without polling | |
| uint32_t | version {DX_VERSION32} |
| uint32_t | version |
Protected Types | |
| typedef decltype(device_t::id) | device_id_t |
| typedef std::map< device_id_t, std::shared_ptr< device_t > > | holders |
Protected Member Functions | |
| virtual void | add (const device_id_t &)=0 |
| adds a new device to the device list | |
| virtual void | add (const decltype(device_t::id) &)=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 | |
| bool | matches (::IMMDevice *endpoint, const std::string &topology) const |
| any dictionary whose entries all match (case-insensitive substrings) takes the endpoint; an empty match takes every endpoint | |
| virtual void | remove (const device_id_t &)=0 |
| finds and removes a device from the device list | |
| virtual void | remove (const decltype(device_t::id) &)=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 |
Protected Attributes | |
| std::vector< wasapi::dictionary > | matching_ids |
WASAPI client driver interface class.
One device per audio adapter, identified by the device instance path of the KS filter behind its active endpoints and matched by substrings of that filter's device interface ID. Arrival and removal come from the endpoint notification callback.
| 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::wasapi::client::driver< device_t >::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 |
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 WASAPI client driver interface class constructor
| matching_ids | the matching dictionaries identifying the endpoints |
| product_id | WASAPI client driver ID |
| preference | preference |
| log | log settings |
|
inline |
|
inlineoverride |
|
protectedpure virtualinherited |
adds a new device to the device list
| dx::exception |
|
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
Reimplemented in dx::stream::driver< dx::map::driver< device_t > >, and dx::stream::driver< map::driver< device_t > >.
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlineprotectedvirtualnoexceptinherited |
replaces std::map::clear to call virtual notification methods
|
inlineoverridevirtualnoexcept |
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::map::driver< device_t >.
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineoverridenoexceptinherited |
notification exception handler
|
inlineoverridenoexceptinherited |
notification exception handler
|
pure virtualnoexceptinherited |
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::map::driver< device_t >.
|
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::map::driver< device_t >.
|
inlineprotected |
any dictionary whose entries all match (case-insensitive substrings) takes the endpoint; an empty match takes every endpoint
|
inlinevirtualnoexcept |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
restores device settings
Reimplemented in dx::coreaudio::driver< device_t >, and dx::coremidi::driver< device_t >.
|
inlinevirtualinherited |
|
inlinevirtualinherited |
saves device tree
Reimplemented in dx::coreaudio::driver< device_t >.
|
protectedpure virtualinherited |
finds and removes a device from the device list
|
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 >.
|
inlinevirtualinherited |
client driver::shutdown/boot(): override to shutdown/boot host driver
|
inlineoverrideprotectedinherited |
< notify system will sleep
notify system wake completed stub
|
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
|
inlineoverrideprotectedinherited |
| promoted<uint32_t> dx::wasapi::client::driver< device_t >::connection_id {1} |
|
inherited |
STL member.
|
inherited |
STL member.
|
inherited |
STL member.
|
inherited |
STL member.
|
inherited |
|
inherited |
|
inherited |
cached local log level, mirrors settings::log
|
inherited |
cached local log level, mirrors settings::log
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
the driver's condition, promoted so a host follows it without polling
|
inherited |
the driver's condition, promoted so a host follows it without polling
|
inherited |
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |