|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
virtual driver interface class More...
#include <dx_virtual_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 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. | |
| bool | contains (const std::string &id) noexcept |
| virtual driver & | create (const std::string &id, const typename super::device_t::desc_t &) |
| super & | create (const std::string &device_id, const typename device_t::desc_t &desc) override |
| super & | destroy (const std::string &id) override |
| destroy: to be used to permamently eliminate a virtual device | |
| driver (const char *product_id, dx::log log={}) | |
| driver (const match &matching_ids, const char *id, decltype(super::preference)&&preference, dx::log log={}) | |
| the virtual 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 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 | |
| std::shared_ptr< typename super::device_t > | wait (const std::string &id) noexcept |
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} |
| promoted< os_result > | status |
| uint32_t | version {DX_VERSION32} |
| uint32_t | version |
Protected Types | |
| typedef decltype(device_t::id) | device_id_t |
| typedef device_t | device_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 | |
| void | arrived (super::device_t &device) override |
| virtual void | clear () noexcept |
| replaces std::map::clear to call virtual notification methods | |
| 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::set< std::string > | matching_ids |
virtual driver interface class
This is the interface to a virtual driver identified by a set of matching string 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 IOService 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 |
|
protectedinherited |
|
inherited |
|
inherited |
| typedef decltype(matching_ids) dx::virtuel::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 virtual driver interface class constructor
| matching_ids | the matching virtual driver IDs identifying the driver interface |
| id | virtual driver ID |
| preference | preference |
| log | log settings |
|
inline |
|
inline |
|
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 >.
|
inlineoverrideprotectedvirtualinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinevirtualinherited |
|
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.
Reimplemented in dx::midi::services::driver< device_t >, dx::service::client::driver< device_t >, and dx::wasapi::client::driver< device_t >.
|
inlinenoexceptinherited |
|
inlinevirtualinherited |
|
inlineoverride |
|
inlineoverridevirtual |
destroy: to be used to permamently eliminate a virtual device
Reimplemented from dx::stream::driver< 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::stream::driver< 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 >.
|
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
|
inlinenoexceptinherited |
|
inlineoverrideprotectedinherited |
|
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 |
|
inherited |
|
inherited |
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |