dxd - dynax driver framework 2.2.0d81
cross platform open source driver development framework
|
#include <dx_asio.h>
Classes | |
class | pause |
Public Member Functions | |
asio (super::match &matching_ids, const char *id, ::IUnknown *unknown, ::HRESULT *result) | |
dx_catchall_rethrow (status=exception.error;) struct property | |
Protected Types | |
typedef device_t::desc | desc |
Protected Member Functions | |
dx_catchall_handler(this,) using super void | arrived () override try |
notify device arrivals completed 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) | |
::ASIOError | controlPanel () noexcept override |
::ASIOError | createBuffers (::ASIOBufferInfo *info, long channels, long iosize, ::ASIOCallbacks *callbacks) noexcept override |
virtual void | detach () noexcept |
::ASIOError | disposeBuffers () noexcept override |
void | exception (const exception &exception, bool filtered=false) const noexcept override |
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 | |
::ASIOBool | init (void *) noexcept override |
void | initialize (uint32_t iosize, uint64_t channel_map[2][(max_channels+63)/64]) try |
DECLARE_IUNKNOWN ::HRESULT STDMETHODCALLTYPE | NonDelegatingQueryInterface (const ::IID &riid, void **object) noexcept override |
void | notify () noexcept override |
void | notify (unsigned int samplerate) noexcept override |
notify sample rate change from device | |
::ASIOError | outputReady () noexcept override |
void | overload () noexcept override |
void | process (int64_t timestamp) noexcept override |
void | removed (device_t &device) noexcept override |
notify specific device removal stub | |
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 |
void | tick () override try |
void | update () noexcept try |
void | wake () override |
~asio () noexcept | |
Protected Attributes | ||
struct { | ||
circular_t * circular [direction::directions] | ||
force_read force_read | ||
force_write force_write | ||
struct { | ||
volatile uint32_t * samplerate | ||
} observer | ||
struct { | ||
bool engine_driven | ||
pins do not provide any means of driving streaming More... | ||
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 | |
::ASIOCallbacks * | callbacks = nullptr | |
redirect::file | cerr | |
typename pin_t::circular_t * | circular [direction::directions] | |
redirect::file | clog | |
std::shared_ptr< device_t > | device | |
bool | engine_driven | |
pins do not provide any means of driving streaming | ||
force_read | force_read | |
force_write | force_write | |
uint64_t | frame | |
bool | hw_clock | |
uint32_t | interval | |
clock resolution: HW stream frame size in samples | ||
struct { | ||
uint32_t interval | ||
clock resolution: HW stream frame size in samples More... | ||
uint32_t linesize | ||
uint32_t safety_offset | ||
} | io [direction::directions] | |
int32_t ** | io [direction::directions][2] | |
uint32_t | iosize | |
bool | kernel_streaming | |
uint32_t | linesize | |
std::string | log_path | |
int64_t | mmoffset = 0 | |
dx::stream::clock::monitor * | monitor | |
io[directions][double buffer][channel][sample] | ||
struct { | ||
volatile uint32_t * samplerate | ||
} | observer | |
bool | paused = false | |
std::shared_ptr< pin_t > | pin [direction::directions] | |
direction::direction | reference | |
uint32_t | safety_offset | |
uint64_t | sample_position = 0 | |
volatile uint32_t * | samplerate | |
uint32_t | samplerate | |
os_result | status = not_initialized | |
bool | streaming = false | |
keeps track of the start/stop state of the streaming engine | ||
struct { | ||
bool engine_driven | ||
pins do not provide any means of driving streaming More... | ||
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 | |
bool | time_code = false | |
indicate to generate time code | ||
bool | time_info = false | |
indicate ASIO host supports time info | ||
int64_t | trigger | |
resync condition | ||
|
inherited |
|
inlineprotectednoexcept |
|
inline |
|
inlineoverrideprotectedinherited |
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.
|
inlineoverrideprotectednoexcept |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlinevirtualnoexceptinherited |
|
inlineoverrideprotectednoexcept |
|
inline |
|
inlineoverrideprotectednoexcept |
|
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 |
|
inlineoverridenoexceptinherited |
stop streaming engine
|
inlineoverrideprotectednoexcept |
|
inlineinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtualnoexcept |
notify sample rate change from device
Reimplemented from dx::stream::engine< device_t, pin_t, driver_t >.
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtualnoexcept |
Reimplemented from dx::stream::engine< device_t, pin_t, driver_t >.
|
inlineoverrideprotectedvirtualnoexcept |
Implements dx::stream::engine< device_t, pin_t, driver_t >.
|
inlineoverrideprotectednoexceptinherited |
notify specific device removal stub
|
inlineoverrideinherited |
start streaming engine
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotected |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedinherited |
|
inlineoverrideprotectedinherited |
|
inlineprotectednoexceptinherited |
|
inlineoverrideprotected |
struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::cache |
|
protected |
|
protected |
|
inherited |
|
protected |
|
protectedinherited |
|
inherited |
pins do not provide any means of driving streaming
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
clock resolution: HW stream frame size in samples
struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::io[direction::directions] |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
protected |
|
protected |
|
protectedinherited |
io[directions][double buffer][channel][sample]
struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::observer |
|
protected |
|
protectedinherited |
|
inherited |
|
inherited |
|
protected |
|
inherited |
|
inherited |
|
protected |
|
protected |
keeps track of the start/stop state of the streaming engine
struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::sync |
|
protected |
indicate to generate time code
|
protected |
indicate ASIO host supports time info
|
inherited |
resync condition
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri Dec 20 2024 |