|
| const_iterator | begin () const noexcept |
| iterator | begin () noexcept |
| virtual bool | boot () |
| void | close () noexcept |
| 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 |
| super & | create (const std::string &id, const typename device_t::desc_t &desc) override |
| virtual driver & | create (const std::string &id, const typename super::device_t::desc_t &) |
| super & | destroy (const std::string &id) override |
| | driver (const match &matching_ids, const char *product_id, const decltype(super::preference)&preference, dx::log log={}) |
| | the service 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 | initialize (const std::string &id="", const ::DWORD(&access)[2]={SC_MANAGER_ALL_ACCESS, SERVICE_ALL_ACCESS}, const std::string desc="", const std::string &path="") |
| void | install (const std::string &name) |
| 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.
|
| void | open () |
| virtual | operator bool () const noexcept |
| | operator std::unique_ptr<::QUERY_SERVICE_CONFIGA > () |
| | operator std::unique_ptr<::SERVICE_DESCRIPTION > () |
| | operator::SERVICE_STATUS_PROCESS () |
| 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
|
| void | remove () |
| virtual bool | shutdown () |
| | client driver::shutdown/boot(): override to shutdown/boot host driver
|
| void | start (parser::args &args) |
| void | stop () |
| dx::service::manager::enumerate promoted | this (::DWORD value) |
| dx::service::manager::status promoted | this (promoted::lock_t &&lock, const ::DWORD &value, const ::DWORD &) |
| 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
|
| std::shared_ptr< typename super::device_t > | wait (const std::string &id) noexcept |
| bool | warmup (std::chrono::milliseconds timeout=250ms) |
| | waits for the initial asynchronous device arrival scan to complete
|
|
| 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
|
| 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
|
| 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
|
| void | sleep () override |
| | < notify system will sleep
|
| void | wake () override |
template<
class device_t>
class dx::service::client::driver< device_t >
service client driver interface class
This is the interface to a service client driver identified by a set of matching 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.
- Exceptions
-
| in | case of an error returned by the underlaying API the driver class throws a dx::exception. |
| virtual void dx::object::exception |
( |
const exception & | exception, |
|
|
bool | filtered = false ) const |
|
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 > > >.