|
dxd - dynax driver framework 2.6.0d170
cross platform open source driver development framework
|
generic streaming engine More...
#include <dx_stream_engine.h>
Inheritance diagram for dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >:
Collaboration diagram for dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >:Public Types | |
| typedef device_t::desc_t | desc |
| typedef decltype(matching_ids) | match |
| typedef decltype(matching_ids) | match |
Public Member Functions | |
| void | add (const device_id_t &device_id) override try |
| template<typename desc_t > | |
| dx_catchall_rethrow() using super void | add (const std::string &, const desc_t &) |
| void | add (const std::string &, const typename device_t::desc_t &) |
| virtual bool | boot () try |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| virtual void | detach () noexcept |
| dx_catchall_rethrow () virtual operator bool() const noexcept | |
| void | exception (const class exception &exception, bool filtered=false) noexcept override try |
| notification exception handler | |
| virtual void | exception (const exception &exception, bool filtered=false) noexcept=0 |
| notification exception handler | |
| virtual void | free () noexcept |
| void | halt () noexcept override |
| stop streaming engine | |
| void | info (std::ostream &os) noexcept override |
| log object class information | |
| template<unsigned int max_channels> | |
| void | initialize (uint32_t iosize, const uint64_t(&channel_map)[2][(max_channels+63)/64]) try |
| void | launch () override try |
| launch notification: object mounted and ready to use | |
| virtual void | launch () try |
| launch notification: object mounted and ready to use | |
| dx_catchall_rethrow() using super void | remove (const std::string &) |
| void | run () override try |
| start streaming engine | |
| uint32_t | samplerate () const try |
| void | samplerate (uint32_t samplerate) try |
| virtual bool | shutdown () try |
| client driver::shutdown/boot(): override to shutdown/boot host driver | |
Public Attributes | |
| cf::type< const char * > | connection_id = ::IOObjectCopyBundleIdentifierForClass(cf::type<const char*>{this->product_id}.retain()) |
| T | elements |
| STL member. | |
| K | keys |
| STL member. | |
| bool | launched {} |
| log | log |
| decltype(device_t::preference) | preference |
| const char * | product_id |
| io::registry | registry |
| std::deque< setup > | setup |
| uint32_t | version |
Static Public Attributes | |
| static constexpr auto | connection_id = class_name |
Protected Types | |
| typedef decltype(device_t::id) | device_id_t |
Protected Member Functions | |
| dx_catchall_handler(this,) using super void | arrived () override try |
| notify device arrivals completed stub | |
| virtual void | arrived (device_t &) |
| notify specific device arrival stub | |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const dx::exception &__dx_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| void | clear () noexcept try |
| replaces std::map::clear to call virtual notification methods | |
| void | conclude () noexcept override try |
| 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. | |
| dx_catchall_handler (this,) virtual void operator<<(std | |
| restores device settings | |
| engine (const typename super::match &matching_ids, const char *id) | |
| virtual void | notify (uint32_t) noexcept |
| notify sample rate change from device | |
| virtual void | operator>> (std::ostream &ostream) const |
| saves device tree | |
| virtual void | overload () noexcept |
| virtual void | process (int64_t timestamp) noexcept=0 |
| void | remove (const device_id_t &device_id) override try |
| finds and removes a device from the device list | |
| void | removed (device_t &device) noexcept override |
| notify specific device removal stub | |
| void | sync (const std::chrono::high_resolution_clock::time_point &now) override try |
| void | tick () override try |
| void | update () noexcept try |
| virtual | ~engine () noexcept |
Protected Attributes | ||
| struct { | ||
| circular_t * circular [direction::directions] | ||
| force_read force_read | ||
| force_write force_write | ||
| struct { | ||
| struct { | ||
| uint32_t interval | ||
| clock resolution: HW stream frame size in samples More... | ||
| uint32_t linesize | ||
| uint32_t safety_offset | ||
| } io [direction::directions] | ||
| direction::direction reference | ||
| uint32_t samplerate | ||
| int64_t trigger | ||
| resync condition More... | ||
| } sync | ||
| } | cache | |
| std::shared_ptr< device_t > | device | |
| uint64_t | frame = 0 | |
| bool | hw_clock = false | |
| io_t ** | io [direction::directions][2] {} | |
| uint32_t | iosize = 0 | |
| bool | kernel_streaming = false | |
| std::vector<::GUID > | matching_ids | |
| dx::stream::clock::monitor * | monitor = nullptr | |
| io[directions][double buffer][channel][sample] | ||
| struct dx::proxy::driver::notification | notification | |
| std::shared_ptr< pin_t > | pin [direction::directions] | |
generic streaming engine
| in | case of an error returned by the underlaying API the device class throws a dx::exception. |
| typedef device_t::desc_t dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::desc |
|
protectedinherited |
|
inherited |
|
inherited |
|
inlineprotected |
|
inlineprotectedvirtualnoexcept |
Here is the call graph for this function:
|
inlineoverridevirtualinherited |
Reimplemented from dx::map::driver< device_t >.
|
inlineinherited |
Here is the caller graph for this function:
|
inlineinherited |
|
inlineoverrideprotectedvirtual |
notify device arrivals completed stub
pin creation exception caught here to allow device inspection even if streaming is not possible - most likely due to exclusive access.
Reimplemented from dx::map::driver< device_t >.
Here is the call graph for this function:
|
inlineprotectedvirtualinherited |
notify specific device arrival stub
Reimplemented in dx::coremidi::server::plugin< stream_pin_t, device_t, driver_t >, dx::coreaudio::driver< device_t >, and dx::coreaudio::server::plugin< pin_t, device_t, driver_t >.
|
inlinevirtualinherited |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotectednoexceptinherited |
replaces std::map::clear to call virtual notification methods
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineoverrideprotectedvirtualnoexceptinherited |
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 from dx::object.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtualnoexcept |
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotectedinherited |
restores device settings
|
inlinenoexceptinherited |
Here is the caller graph for this function:
|
inlineoverridenoexceptinherited |
notification exception handler
|
pure virtualnoexceptinherited |
notification exception handler
Implemented in dx::device< dx::guid, dx::preference >, dx::device< dx::guid, preference_t >, dx::device< std::string, dx::preference >, dx::device< std::string, preference_t >, dx::device<::AudioObjectID, cf::preference >, dx::device<::AudioObjectID, preference_t >, dx::device<::io_service_t, dx::preference >, dx::device<::io_service_t, preference_t >, dx::device<::MIDIDeviceRef, cf::preference >, dx::device<::MIDIDeviceRef, preference_t >, dx::device< id_t, preference_t >, dx::stream::pin< device_t, _circular_t >, dx::virtuel::stream::_device< desc_t, preference_t, stream_t >, dx::usb::platform::device< preference_t >, dx::asio::client::_device< desc_t, preference_t, stream_t >, dx::proxy::device< dx::preference >, dx::proxy::device<>, and dx::proxy::device< preference_t >.
Here is the caller graph for this function:
|
inlinevirtualnoexcept |
Here is the caller graph for this function:
|
inlineoverridenoexcept |
stop streaming engine
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineoverridevirtualnoexcept |
log object class information
Reimplemented from dx::map::driver< device_t >.
Reimplemented in dx::test::driver< super_device_t, audio_pin_t, io_t, device_t, driver_t, engine_t >, and dx::test::usb::driver< super_device_t, audio_pin_t, io_t, device_t, driver_t, engine_t >.
Here is the call graph for this function:
|
inline |
Here is the call graph for this function:
|
inlineoverridevirtualinherited |
launch notification: object mounted and ready to use
Reimplemented from dx::map::driver< device_t >.
Here is the caller graph for this function:
|
inlinevirtualinherited |
launch notification: object mounted and ready to use
Reimplemented from dx::map::driver< device_t >.
Reimplemented in dx::coremidi::server::plugin< stream_pin_t, device_t, driver_t >.
Here is the call graph for this function:
|
inlineprotectedvirtualnoexcept |
notify sample rate change from device
Reimplemented in dx::asio::driver< device_t, pin_t, driver_t >.
Here is the caller graph for this function:
|
inlineprotectedvirtualinherited |
saves device tree
Here is the call graph for this function:
|
inlineprotectedvirtualnoexcept |
Reimplemented in dx::asio::driver< device_t, pin_t, driver_t >.
Here is the caller graph for this function:
|
protectedpure virtualnoexcept |
Implemented in dx::asio::driver< device_t, pin_t, driver_t >, dx::test::driver< super_device_t, audio_pin_t, int32_t, dx::test::device< super_device_t >, dx::proxy::driver< dx::test::device< super_device_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::test::driver< super_device_t, audio_pin_t, int32_t, dx::test::device< super_device_t >, dx::virtuel::driver< dx::test::device< super_device_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::test::driver< super_device_t, audio_pin_t, int32_t, dx::test::midi::device< super_device_t >, dx::proxy::driver< dx::test::midi::device< super_device_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 > >, and dx::test::driver< super_device_t, audio_pin_t, io_t, device_t, driver_t, engine_t >.
|
inlineoverrideprotectedvirtualinherited |
finds and removes a device from the device list
| dx::exception |
Implements dx::driver< decltype(device_t::id), decltype(device_t::preference)>.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
|
inlineoverrideprotectedvirtualnoexcept |
notify specific device removal stub
Reimplemented from dx::map::driver< device_t >.
Here is the call graph for this function:
|
inlineoverride |
start streaming engine
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
|
inline |
Here is the call graph for this function:
|
inlinevirtualinherited |
client driver::shutdown/boot(): override to shutdown/boot host driver
|
inlineoverrideprotected |
Here is the call graph for this function:
|
inlineoverrideprotected |
Here is the call graph for this function:
|
inlineprotectednoexcept |
Here is the call graph for this function:
Here is the caller graph for this function:| struct { ... } dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::cache |
| circular_t* dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::circular[direction::directions] |
|
inherited |
|
staticconstexprinherited |
|
protected |
|
inherited |
STL member.
| force_read dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::force_read |
| force_write dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::force_write |
|
protected |
|
protected |
| uint32_t dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::interval |
clock resolution: HW stream frame size in samples
| struct { ... } dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::io[direction::directions] |
|
protected |
|
protected |
|
protected |
|
inherited |
STL member.
|
inherited |
| uint32_t dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::linesize |
|
inherited |
|
protectedinherited |
|
protected |
io[directions][double buffer][channel][sample]
|
protectedinherited |
|
protected |
|
inherited |
|
inherited |
| direction::direction dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::reference |
|
inherited |
| uint32_t dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::safety_offset {} |
| uint32_t dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::samplerate |
|
inherited |
| struct { ... } dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::sync |
| int64_t dx::stream::engine< device_t, pin_t, driver_t, io_t, circular_t >::trigger |
resync condition
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on Mon Nov 3 2025 |