dxd - dynax driver framework 2.1.0d58
cross platform open source driver development framework
|
generic streaming engine More...
#include <dx_stream_engine.h>
Public Types | |
typedef device_t::desc | desc |
typedef decltype(matching_dictionaries) | match |
typedef ::GUID | match |
Static Public Member Functions | |
::CFTypeID | id () noexcept |
Public Attributes | |
::CFStringRef | cf_type_desc = nullptr |
::CFStringRef | cf_type_id = nullptr |
T | elements |
STL member. | |
bool | launched |
log | log {} |
dx::log | log {} |
cf::preference | preference |
dx::registry | preference |
dx::generic::driver::setup | setup |
Protected Types | |
typedef driver< device_t > | driver |
Protected Member Functions | |
dx_catchall_handler(this,) using driver< device_t > void | arrived () override |
notify device arrivals completed stub | |
virtual void | arrived (device_t &) |
notify specific device arrival stub | |
void | clear () noexcept |
replaces std::deque::clear to call virtual notification methods | |
dx_catchall_rethrow () virtual ~clock() noexcept | |
engine (const typename driver::match &match, const char *id) | |
realtime & | initialize (const std::chrono::high_resolution_clock::duration &resolution) |
void | initialize (const typename clock_t::duration &duration) |
void | notify () noexcept override |
notify change from device requiring streaming reset | |
virtual void | notify (uint32_t) noexcept |
notify sample rate change from device | |
operator::CFRunLoopSourceRef () const noexcept | |
operator::IONotificationPortRef () const noexcept | |
operator::mach_port_t () const noexcept | |
virtual void | overload () noexcept |
virtual void | process (int64_t timestamp) noexcept=0 |
virtual void | removed () noexcept |
notify device removals completed stub | |
void | removed (device_t &device) noexcept override |
notify specific device removal stub | |
void | sync (const std::chrono::high_resolution_clock::time_point &now) override |
virtual void | sync (const typename clock_t::time_point &now) |
void | tick () override |
void | update () noexcept try |
void | wait () try |
virtual | ~engine () noexcept |
Protected Attributes | ||
struct { | ||
circular_t * circular [directions] | ||
force_read force_read | ||
force_write force_write | ||
struct { | ||
volatile uint32_t * samplerate | ||
} observer | ||
struct { | ||
uint32_t interval | ||
clock resolution: HW stream frame size in samples More... | ||
uint32_t linesize | ||
circular * reference | ||
uint32_t safety_offset [directions] | ||
uint32_t samplerate | ||
int64_t trigger | ||
} sync | ||
} | cache | |
cf_object_t | cf_object = nullptr | |
std::shared_ptr< device_t > | device | |
clock_t::duration | duration = clock_t::duration::zero() | |
uint64_t | frame = 0 | |
bool | hw_clock = false | |
io_t ** | io [directions][2] {} | |
uint32_t | iosize = 0 | |
bool | kernel_streaming = false | |
dx::stream::clock::monitor * | monitor = nullptr | |
io[directions][double buffer][channel][sample] | ||
std::mutex | mutex | |
clock_t::time_point | objective | |
std::shared_ptr< pin_t > | pin [directions] | |
volatile bool | running = false | |
os_result | status = not_initialized | |
generic streaming engine
in | case of an error returned by the underlaying API the device class throws a dx::exception. |
typedef device_t::desc dx::stream::engine< device_t, pin_t, io_t, circular_t >::desc |
|
protected |
|
inherited |
|
inherited |
|
inlineprotected |
|
inlineprotectedvirtualnoexcept |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
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::driver< device_t >.
|
inlineprotectedvirtualinherited |
notify specific device arrival stub
|
inlineprotectednoexceptinherited |
replaces std::deque::clear to call virtual notification methods
|
inlinevirtualnoexceptinherited |
Reimplemented from dx::generic::driver.
|
inlineoverridevirtualnoexceptinherited |
Reimplemented from dx::generic::driver.
|
inlineinherited |
|
inlinevirtualnoexcept |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinevirtualnoexceptinherited |
notification exception handler
|
inlinevirtualnoexceptinherited |
notification exception handler
|
inlinenoexceptinherited |
Finds the device by guid.
The user is responsible for making sure the device list cannot be modified during find().
n/a | this method does not throw exceptions |
|
inlinevirtualnoexcept |
|
inlineoverridevirtualnoexcept |
Reimplemented from dx::clock< scope_t, clock_t >.
|
staticnoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineoverrideprotectedvirtualnoexcept |
notify change from device requiring streaming reset
Reimplemented from dx::clock< scope_t, clock_t >.
Reimplemented in dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t, engine_t >.
|
inlineprotectedvirtualnoexcept |
notify sample rate change from device
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
Skips whitespace; returns 0.0 on error.
|
inlinenoexceptinherited |
Skips whitespace; returns 0 on error, MAX or -MAX on overflow.
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineprotectedvirtualnoexcept |
|
protectedpure virtualnoexcept |
Implemented in dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t, engine_t >.
|
inlinenoexceptinherited |
notify device removals completed stub
Reimplemented from dx::generic::driver.
|
inlineoverrideprotectedvirtualnoexcept |
notify specific device removal stub
Reimplemented from dx::driver< device_t >.
|
inlinenoexceptinherited |
|
inline |
|
inline |
|
inlineoverrideprotected |
|
inlineprotectedvirtualinherited |
|
inlineoverrideprotectedvirtual |
Implements dx::clock< scope_t, clock_t >.
|
inlineprotectednoexcept |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t >::cache |
|
protectedinherited |
|
inherited |
|
inherited |
circular_t* dx::stream::engine< device_t, pin_t, io_t, circular_t >::circular[directions] |
|
protected |
|
protectedinherited |
|
inherited |
STL member.
force_read dx::stream::engine< device_t, pin_t, io_t, circular_t >::force_read |
force_write dx::stream::engine< device_t, pin_t, io_t, circular_t >::force_write |
|
protected |
|
protected |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::interval |
clock resolution: HW stream frame size in samples
|
protected |
|
protected |
|
protected |
|
inherited |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::linesize |
|
inherited |
|
inherited |
|
protected |
io[directions][double buffer][channel][sample]
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t >::observer |
|
protected |
|
inherited |
|
inherited |
circular* dx::stream::engine< device_t, pin_t, io_t, circular_t >::reference |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::safety_offset {} |
volatile uint32_t* dx::stream::engine< device_t, pin_t, io_t, circular_t >::samplerate |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::samplerate |
|
inherited |
|
protectedinherited |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t >::sync |
int64_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::trigger |
(c) copyright 2009 dynamic acoustics e.U. | generated on Sun Apr 14 2024 |