dxd - dynax driver framework 2.2.0d91
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::driver< device_id_t > Class Template Referenceabstract

abstract base driver interface class This is the abstract base interface to a driver. More...

#include <dx_driver.h>

+ Inheritance diagram for dx::driver< device_id_t >:
+ Collaboration diagram for dx::driver< device_id_t >:

Public Member Functions

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.
 
 driver (const char *product_id, dx::log log)
 abstract driver interface class constructor
 
void exception (const class exception &exception, bool filtered=false) const noexcept override try
 notification exception handler
 
virtual void exception (const exception &exception, bool filtered=false) const noexcept=0
 notification exception handler
 
virtual void info (std::ostream &os) noexcept
 log object class information
 
virtual void launch ()
 launch notification: object mounted and ready to use
 
 ~driver () noexcept override
 

Public Attributes

bool launched {}
 
log log {}
 
const char * product_id
 
uint32_t version = DX_VERSION32
 

Protected Member Functions

virtual void add (const device_id_t &)=0
 adds a new device to the device list
 
virtual void arrived ()
 notify device arrivals completed stub
 
virtual void remove (const device_id_t &)=0
 finds and removes a device from the device list
 
virtual void removed () noexcept
 notify device removals completed stub
 

Detailed Description

template<typename device_id_t>
class dx::driver< device_id_t >

abstract base driver interface class This is the abstract base interface to a driver.

Exceptions
incase of an error returned by the underlaying API the driver class throws a dx::exception.

Constructor & Destructor Documentation

◆ driver()

template<typename device_id_t >
dx::driver< device_id_t >::driver ( const char * product_id,
dx::log log )
inline

abstract driver interface class constructor

Parameters
product_iddriver ID
loglog settings

◆ ~driver()

template<typename device_id_t >
dx::driver< device_id_t >::~driver ( )
inlineoverridenoexcept

Member Function Documentation

◆ add()

template<typename device_id_t >
virtual void dx::driver< device_id_t >::add ( const device_id_t & )
protectedpure virtual

◆ arrived()

◆ conclude()

virtual void dx::object::conclude ( )
inlinevirtualnoexceptinherited

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.

Reimplemented in dx::proxy::stream::_device< desc_t, stream_t >, dx::usb::pipe< device_t >, dx::usb::pipe< device_t >, dx::proxy::device, dx::proxy::device, dx::map::driver< device >, and dx::map::driver< device_t >.

+ Here is the caller graph for this function:

◆ exception() [1/2]

template<typename device_id_t >
void dx::driver< device_id_t >::exception ( const class exception & exception,
bool filtered = false ) const
inlineoverridenoexcept

notification exception handler

+ Here is the caller graph for this function:

◆ exception() [2/2]

virtual void dx::object::exception ( const exception & exception,
bool filtered = false ) const
pure virtualnoexceptinherited

notification exception handler

Implemented in dx::device< std::string >, dx::device<::AudioObjectID >, dx::device<::io_service_t >, dx::device< id_t >, dx::stream::pin< device_t, _circular_t >, dx::virtuel::stream::_device< desc_t, stream_t >, dx::proxy::device, dx::usb::platform::device, and dx::proxy::device.

+ Here is the caller graph for this function:

◆ info()

virtual void dx::object::info ( std::ostream & os)
inlinevirtualnoexceptinherited

log object class information

Reimplemented in dx::device< std::string >, dx::device<::AudioObjectID >, dx::device<::io_service_t >, dx::device< id_t >, dx::proxy::stream::_device< desc_t, stream_t >, dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >, dx::stream::engine< device< super_device_t >, audio_pin_t, dx::proxy::driver< device< super_device_t > >, int32_t >, dx::stream::engine< dx::test::device< super_device_t >, audio_pin_t, dx::proxy::driver< dx::test::device< super_device_t > >, int32_t >, dx::stream::engine< dx::test::device< super_device_t >, audio_pin_t, dx::virtuel::driver< dx::test::device< super_device_t > >, int32_t >, dx::stream::engine< dx::test::midi::device< super_device_t >, audio_pin_t, dx::proxy::driver< dx::test::midi::device< super_device_t > >, int32_t >, dx::usb::pipe< device_t >, dx::usb::pipe< device_t >, dx::usb::stream::_device< desc_t, stream_t >, dx::virtuel::driver< device_t >, dx::virtuel::stream::_device< desc_t, stream_t >, dx::coreaudio::_device< desc_t, stream_t >, dx::coreaudio::driver< device_t >, dx::proxy::device, dx::proxy::driver< device< pin_t > >, dx::proxy::driver< device< stream_pin_t > >, dx::proxy::driver< device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< dx::test::device< super_device_t > >, dx::proxy::driver< dx::test::midi::device< super_device_t > >, dx::proxy::driver< device_t >, dx::usb::platform::device, dx::proxy::device, dx::stream::object< _device_t >, dx::stream::object< device >, dx::stream::object< device_t >, dx::stream::control< dx::device< std::string > >, dx::stream::control< dx::device<::AudioObjectID > >, dx::stream::control< dx::proxy::device >, dx::stream::control< object< device_t > >, dx::stream::control< stream::object< device > >, dx::stream::control< stream::object< device_t > >, dx::stream::control< usb::device >, dx::stream::device< dx::stream::control< dx::device< std::string > >, desc, dx::stream::shared::stream< device< desc, dx::stream::shared::stream > > >, dx::stream::device< dx::stream::control< dx::device< std::string > >, desc_t, stream_t >, dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > >, desc_t, stream_t >, dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > >, dx::virtuel::stream::desc, dx::stream::stream< device< dx::virtuel::stream::desc, dx::stream::stream > > >, dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > >, dx::virtuel::stream::desc, stream< device< dx::virtuel::stream::desc, stream > > >, dx::stream::device< dx::stream::control< dx::proxy::device >, desc_t, stream_t >, dx::stream::device< dx::stream::control< dx::proxy::device >, dx::stream::desc<>, stream< device< dx::stream::desc<>, stream > > >, dx::stream::device< dx::stream::control< usb::device >, desc_t, pipe< device< desc_t, pipe > > >, dx::stream::device< dx::stream::control< usb::device >, desc_t, stream_t >, dx::stream::pin< device_t, _circular_t >, dx::stream::stream< device< desc_t, pipe >, dx::circular, usb::pipe< device< desc_t, pipe > > >, and dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >.

+ Here is the caller graph for this function:

◆ launch()

◆ remove()

◆ removed()

template<typename device_id_t >
virtual void dx::driver< device_id_t >::removed ( )
inlineprotectedvirtualnoexcept

Member Data Documentation

◆ launched

bool dx::object::launched {}
inherited

◆ log

template<typename device_id_t >
log dx::driver< device_id_t >::log {}

◆ product_id

template<typename device_id_t >
const char* dx::driver< device_id_t >::product_id

◆ version

template<typename device_id_t >
uint32_t dx::driver< device_id_t >::version = DX_VERSION32

The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Mar 11 2025

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.