dxd - dynax driver framework 2.1.0d73
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 |
Public Member Functions | |
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 | conclude () noexcept |
void | conclude () noexcept override |
::CFStringRef | copy () const |
virtual void | detach () noexcept |
dx_catchall () static void idle(int64_t nsec) | |
dx_catchall () static void idle(uint64_t timeout) noexcept | |
virtual void | exception (const exception &exception, bool filtered=false) const noexcept try |
notification exception handler | |
virtual void | exception (const exception &exception, bool filtered=false) const noexcept try |
notification exception handler | |
device_t * | find (std::string uid) const noexcept |
Finds the device by guid. The user is responsible for making sure the device list cannot be modified during find(). | |
virtual void | free () noexcept |
void | halt () noexcept override |
stop streaming engine | |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
CFTypeID | id () noexcept |
reference & | initialize (cf_object_t cf_object, bool retain=true) |
template<unsigned int max_channels> | |
void | initialize (uint32_t iosize, uint64_t channel_map[2][(max_channels+63)/64]) try |
virtual void | launch () |
virtual void | launch () |
operator bool () const noexcept | |
operator cf_object_t () const noexcept | |
operator const char * () const | |
operator double () const noexcept | |
Skips whitespace; returns 0.0 on error. | |
operator int32_t () const noexcept | |
Skips whitespace; returns 0 on error, MAX or -MAX on overflow. | |
operator std::string () const | |
template<typename petty_t = cf_object_t, typename = typename std::enable_if_t <!std::is_same_v<petty_t, ::CFTypeRef>>> | |
operator type<> () const noexcept | |
bool | operator!= (::CFStringRef value) const noexcept |
bool | operator!= (cf_object_t cf_object) const noexcept |
bool | operator!= (value_t value) |
::CFMutableStringRef | operator+ (::CFStringRef value) const noexcept |
::CFMutableStringRef | operator+ (const char *value) const noexcept |
operator::CFDataRef () const noexcept | |
operator::CFTypeID () const noexcept | |
template<typename petty_t = cf_object_t, typename = typename std::enable_if_t <!std::is_same_v<petty_t, ::CFTypeRef>>> | |
operator::CFTypeRef () const noexcept | |
bool | operator< (::CFStringRef value) const noexcept |
bool | operator< (value_t value) |
bool | operator<= (::CFStringRef value) const noexcept |
bool | operator<= (value_t value) |
bool | operator== (::CFStringRef value) const noexcept |
bool | operator== (cf_object_t cf_object) const noexcept |
bool | operator== (value_t value) |
bool | operator> (::CFStringRef value) const noexcept |
bool | operator> (value_t value) |
bool | operator>= (::CFStringRef value) const noexcept |
bool | operator>= (value_t value) |
reference & | release () noexcept |
reference & | retain () noexcept |
void | run () override try |
start streaming engine | |
uint32_t | samplerate () const try |
void | samplerate (uint32_t samplerate) try |
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 = false |
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_t 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 |
replaces std::deque::clear to call virtual notification methods | |
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) |
virtual void | notify () noexcept |
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 try |
virtual void | sync (const typename clock_t::time_point &now) |
void | tick () override try |
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] | |
std::atomic< bool > | running | |
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, driver_t >::desc |
|
protected |
|
inherited |
|
inherited |
|
inlineprotected |
|
inlineprotectedvirtualnoexcept |
|
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
Reimplemented in dx::coreaudio::server::plugin< pin_t, device_t >, and dx::coremidi::server::plugin< stream_pin_t, device_t, driver_t >.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
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
Reimplemented in dx::asio< device_t, pin_t >.
|
inlinevirtualnoexceptinherited |
notification exception handler
Reimplemented in dx::asio< device_t, pin_t >.
|
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 |
stop streaming engine
Reimplemented from dx::clock< scope_t, clock_t >.
|
staticnoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlineprotectedvirtualnoexcept |
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, driver_t, engine_t >.
|
inlineprotectedvirtualnoexcept |
notify sample rate change from device
Reimplemented in dx::asio< device_t, pin_t >.
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
Skips whitespace; returns 0.0 on error.
|
inlinenoexceptinherited |
Skips whitespace; returns 0 on error, MAX or -MAX on overflow.
|
inlineinherited |
|
noexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inlineinherited |
|
inlineprotectedvirtualnoexcept |
|
protectedpure virtualnoexcept |
Implemented in dx::asio< device_t, pin_t >, and dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t, driver_t, engine_t >.
|
inlinenoexceptinherited |
|
inlineprotectedvirtualnoexceptinherited |
notify device removals completed stub
Reimplemented from dx::generic::driver.
|
inlineoverrideprotectedvirtualnoexcept |
notify specific device removal stub
Reimplemented from dx::driver< device_t >.
|
inlinenoexceptinherited |
|
inlineoverridevirtual |
start streaming engine
Reimplemented from dx::clock< scope_t, clock_t >.
|
inline |
|
inline |
|
inlineoverrideprotected |
|
inlineprotectedvirtualinherited |
|
inlineoverrideprotectedvirtual |
Implements dx::clock< scope_t, clock_t >.
|
inlineprotectednoexcept |
|
inlineinherited |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::cache |
|
protectedinherited |
|
inherited |
|
inherited |
circular_t* dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::circular[directions] |
|
protected |
|
protectedinherited |
|
inherited |
STL member.
force_read dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::force_read |
force_write dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::force_write |
|
protected |
|
protected |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_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, driver_t >::linesize |
|
inherited |
|
inherited |
|
protected |
io[directions][double buffer][channel][sample]
|
protectedinherited |
|
protectedinherited |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::observer |
|
protected |
|
inherited |
|
inherited |
circular* dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::reference |
|
protectedinherited |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::safety_offset {} |
volatile uint32_t* dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::samplerate |
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::samplerate |
|
inherited |
|
protectedinherited |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::sync |
int64_t dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::trigger |
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Nov 15 2024 |