dxd - dynax driver framework 2.1.0d73
cross platform open source driver development framework
|
#include <dx_asio.h>
Classes | |
class | pause |
Public Member Functions | |
asio (super::match match, const char *id, ::IUnknown *unknown, ::HRESULT *result) | |
dx_catchall_rethrow (status=exception.error;) struct property | |
Protected Types | |
typedef device_t::desc | desc |
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 | |
::ASIOError | canSampleRate (::ASIOSampleRate samplerate) noexcept override |
catch (...) | |
catch (...) | |
catch (...) | |
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 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) | |
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 | |
virtual void | conclude () noexcept |
void | conclude () noexcept override |
::ASIOError | controlPanel () noexcept override |
::CFStringRef | copy () const |
::ASIOError | createBuffers (::ASIOBufferInfo *info, long channels, long iosize, ::ASIOCallbacks *callbacks) noexcept override |
virtual void | detach () noexcept |
::ASIOError | disposeBuffers () noexcept override |
dx_catchall () static void idle(int64_t nsec) | |
dx_catchall () static void idle(uint64_t timeout) noexcept | |
void | exception (const exception &exception, bool filtered=false) const noexcept override |
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 |
::ASIOError | future (long selector, void *) noexcept override |
::ASIOError | getBufferSize (long *min, long *max, long *preferred, long *granularity) noexcept override |
::ASIOError | getChannelInfo (::ASIOChannelInfo *info) noexcept override |
::ASIOError | getChannels (long *ins, long *outs) noexcept override |
::ASIOError | getClockSources (::ASIOClockSource *clocks, long *sources) noexcept override |
void | getDriverName (char *name) noexcept override |
long | getDriverVersion () noexcept override |
void | getErrorMessage (char *string) noexcept override |
::ASIOError | getLatencies (long *rx, long *tx) noexcept override |
::ASIOError | getSamplePosition (::ASIOSamples *samples, ::ASIOTimeStamp *timestamp) noexcept override |
Inquires the sample position/time stamp pair. | |
::ASIOError | getSampleRate (::ASIOSampleRate *samplerate) noexcept override |
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 |
::ASIOBool | init (void *) noexcept override |
reference & | initialize (cf_object_t cf_object, bool retain=true) |
realtime & | initialize (const std::chrono::high_resolution_clock::duration &resolution) |
void | initialize (const typename clock_t::duration &duration) |
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 () |
DECLARE_IUNKNOWN ::HRESULT STDMETHODCALLTYPE | NonDelegatingQueryInterface (const ::IID &riid, void **object) noexcept override |
void | notify () noexcept override |
notify change from device requiring streaming reset | |
void | notify (unsigned int samplerate) noexcept override |
notify sample rate change from device | |
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::CFRunLoopSourceRef () 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 | |
operator::IONotificationPortRef () const noexcept | |
operator::mach_port_t () 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) |
::ASIOError | outputReady () noexcept override |
void | overload () noexcept override |
void | process (int64_t timestamp) noexcept override |
reference & | release () noexcept |
virtual void | removed () noexcept |
notify device removals completed stub | |
void | removed (device_t &device) noexcept override |
notify specific device removal stub | |
reference & | retain () noexcept |
void | run () override try |
start streaming engine | |
uint32_t | samplerate () const try |
void | samplerate (uint32_t samplerate) try |
::ASIOError | setClockSource (long index) noexcept override |
::ASIOError | setSampleRate (::ASIOSampleRate samplerate) noexcept override |
void | sleep () override |
::ASIOError | start () noexcept override |
::ASIOError | stop () noexcept override |
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 |
void | wake () override |
~asio () noexcept | |
Static Protected Member Functions | |
::CFTypeID | id () 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 | |
::ASIOCallbacks * | callbacks = nullptr | |
redirect::file | cerr | |
cf_object_t | cf_object = nullptr | |
::CFStringRef | cf_type_desc = nullptr | |
::CFStringRef | cf_type_id = nullptr | |
redirect::file | clog | |
std::shared_ptr< device_t > | device | |
clock_t::duration | duration = clock_t::duration::zero() | |
T | elements | |
STL member. | ||
uint64_t | frame = 0 | |
bool | hw_clock = false | |
io_t ** | io [directions][2] {} | |
uint32_t | iosize = 0 | |
bool | kernel_streaming = false | |
bool | launched = false | |
log | log {} | |
dx::log | log {} | |
std::string | log_path | |
const match | match | |
int64_t | mmoffset = 0 | |
dx::stream::clock::monitor * | monitor = nullptr | |
io[directions][double buffer][channel][sample] | ||
std::mutex | mutex | |
clock_t::time_point | objective | |
bool | paused = false | |
std::shared_ptr< pin_t > | pin [directions] | |
cf::preference | preference | |
dx::registry | preference | |
std::atomic< bool > | running | |
uint64_t | sample_position = 0 | |
dx::generic::driver::setup | setup | |
os_result | status = not_initialized | |
bool | streaming = false | |
keeps track of the start/stop state of the streaming engine | ||
bool | time_code = false | |
indicate to generate time code | ||
bool | time_info = false | |
indicate ASIO host supports time info | ||
|
inherited |
|
protectedinherited |
|
inlineprotectednoexcept |
|
inline |
|
inlineoverrideprotectedvirtualinherited |
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 >.
|
inlineoverrideprotectednoexcept |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectednoexceptinherited |
replaces std::deque::clear to call virtual notification methods
|
inlinevirtualnoexceptinherited |
Reimplemented from dx::generic::driver.
|
inlineoverridevirtualnoexceptinherited |
Reimplemented from dx::generic::driver.
|
inlineoverrideprotectednoexcept |
|
inlineinherited |
|
inlineoverrideprotectednoexcept |
|
inlinevirtualnoexceptinherited |
|
inlineoverrideprotectednoexcept |
|
inlineinherited |
|
inlinenoexceptinherited |
|
inline |
|
inlineoverrideprotectedvirtualnoexcept |
notification exception handler
Reimplemented from dx::generic::driver.
|
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 |
|
inlinevirtualnoexceptinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
todo set limits for Windows clock if no ASIO clock IRQ is available or if HW clock is already in use
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
Inquires the sample position/time stamp pair.
In order to be able to synchronize properly, the sample position / time stamp pair must refer to the current block, that is, the engine will call ASIOGetSamplePosition() in its bufferSwitch() callback and expect the time for the first sample of the current block. Thus, when requested in the very first bufferSwitch after ASIOStart(), the sample position should be zero, and the time stamp should refer to the very time where the stream was started. It also means that the sample position must be block aligned. The driver must ensure proper interpolation if the system time can not be determined for the block position. The driver is responsible for precise time stamps as it usually has most direct access to lower level resources. Proper behavior of ASIOGetSamplePosition() and ASIOGetLatencies() are essential for precise media synchronization!
If | no input/output is present, ASE_NotPresent will be returned. If there is no clock, ASE_SPNotAdvancing will be returned. |
samples | will hold the sample position on return. The sample position is reset to zero when ASIOStart() gets called. |
timestamp | will hold the system time on return when the sample position was latched |
|
inlineoverrideprotectednoexcept |
|
inlineoverridevirtualnoexceptinherited |
stop streaming engine
Reimplemented from dx::clock< scope_t, clock_t >.
|
staticnoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineoverrideprotectednoexcept |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtualnoexcept |
notify change from device requiring streaming reset
Reimplemented from dx::clock< scope_t, clock_t >.
|
inlineoverrideprotectedvirtualnoexcept |
notify sample rate change from device
Reimplemented from dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_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 |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtualnoexcept |
Reimplemented from dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >.
|
inlineoverrideprotectedvirtualnoexcept |
Implements dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >.
|
inlinenoexceptinherited |
|
inlineprotectedvirtualnoexceptinherited |
notify device removals completed stub
Reimplemented from dx::generic::driver.
|
inlineoverrideprotectedvirtualnoexceptinherited |
notify specific device removal stub
Reimplemented from dx::driver< device_t >.
|
inlinenoexceptinherited |
|
inlineoverridevirtualinherited |
start streaming engine
Reimplemented from dx::clock< scope_t, clock_t >.
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtual |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedinherited |
|
inlineprotectedvirtualinherited |
|
inlineoverrideprotectedvirtualinherited |
Implements dx::clock< scope_t, clock_t >.
|
inlineprotectednoexceptinherited |
|
inlineinherited |
|
inlineoverrideprotectedvirtual |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::cache |
|
protected |
|
protected |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
protectedinherited |
|
protectedinherited |
|
inherited |
STL member.
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
clock resolution: HW stream frame size in samples
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
io[directions][double buffer][channel][sample]
|
protectedinherited |
|
protectedinherited |
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::observer |
|
protected |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
inherited |
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
protected |
keeps track of the start/stop state of the streaming engine
struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t, driver_t >::sync |
|
protected |
indicate to generate time code
|
protected |
indicate ASIO host supports time info
|
inherited |
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Nov 15 2024 |