dxd - dynax driver framework 2.2.0d81
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::asio< device_t, pin_t, driver_t > Class Template Reference

#include <dx_asio.h>

+ Inheritance diagram for dx::asio< device_t, pin_t, driver_t >:
+ Collaboration diagram for dx::asio< device_t, pin_t, driver_t >:

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::monitormonitor
 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_tsamplerate
 
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
 

Member Typedef Documentation

◆ desc

typedef device_t::desc dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::desc
inherited

Constructor & Destructor Documentation

◆ ~asio()

template<typename device_t , typename pin_t , typename driver_t >
dx::asio< device_t, pin_t, driver_t >::~asio ( )
inlineprotectednoexcept

◆ asio()

template<typename device_t , typename pin_t , typename driver_t >
dx::asio< device_t, pin_t, driver_t >::asio ( super::match & matching_ids,
const char * id,
::IUnknown * unknown,
::HRESULT * result )
inline

Member Function Documentation

◆ arrived()

dx_catchall_handler(this,) using super void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::arrived ( )
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.

Todo
forward pin creation exception to be thrown at engine::start()

◆ canSampleRate()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::canSampleRate ( ::ASIOSampleRate samplerate)
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:

◆ catch() [1/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineprotectedinherited

◆ catch() [2/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineprotectedinherited

◆ catch() [3/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineprotectedinherited

◆ catch() [4/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineinherited

◆ catch() [5/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineinherited

◆ catch() [6/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineinherited

◆ catch() [7/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( ...)
inlineinherited

◆ catch() [8/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineprotectedinherited

◆ catch() [9/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineprotectedinherited

◆ catch() [10/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineprotectedinherited

◆ catch() [11/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [12/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [13/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [14/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [15/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineprotectedinherited

◆ catch() [16/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineprotectedinherited

◆ catch() [17/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineprotectedinherited

◆ catch() [18/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [19/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [20/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [21/21]

dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ controlPanel()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::controlPanel ( )
inlineoverrideprotectednoexcept

◆ createBuffers()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::createBuffers ( ::ASIOBufferInfo * info,
long channels,
long iosize,
::ASIOCallbacks * callbacks )
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:

◆ detach()

virtual void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::detach ( )
inlinevirtualnoexceptinherited

◆ disposeBuffers()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::disposeBuffers ( )
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dx_catchall_rethrow()

template<typename device_t , typename pin_t , typename driver_t >
dx::asio< device_t, pin_t, driver_t >::dx_catchall_rethrow ( status = exception.error;)
inline

◆ exception()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::exception ( const exception & exception,
bool filtered = false ) const
inlineoverrideprotectednoexcept

◆ free()

virtual void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::free ( )
inlinevirtualnoexceptinherited
Todo
replace test for valid pin by overwise keeping track of allocated channels

◆ future()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::future ( long selector,
void *  )
inlineoverrideprotectednoexcept

◆ getBufferSize()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getBufferSize ( long * min,
long * max,
long * preferred,
long * granularity )
inlineoverrideprotectednoexcept

todo set limits for Windows clock if no ASIO clock IRQ is available or if HW clock is already in use

◆ getChannelInfo()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getChannelInfo ( ::ASIOChannelInfo * info)
inlineoverrideprotectednoexcept

◆ getChannels()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getChannels ( long * ins,
long * outs )
inlineoverrideprotectednoexcept

◆ getClockSources()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getClockSources ( ::ASIOClockSource * clocks,
long * sources )
inlineoverrideprotectednoexcept

◆ getDriverName()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::getDriverName ( char * name)
inlineoverrideprotectednoexcept

◆ getDriverVersion()

template<typename device_t , typename pin_t , typename driver_t >
long dx::asio< device_t, pin_t, driver_t >::getDriverVersion ( )
inlineoverrideprotectednoexcept

◆ getErrorMessage()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::getErrorMessage ( char * string)
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:

◆ getLatencies()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getLatencies ( long * rx,
long * tx )
inlineoverrideprotectednoexcept

◆ getSamplePosition()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getSamplePosition ( ::ASIOSamples * samples,
::ASIOTimeStamp * timestamp )
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!

Exceptions
Ifno input/output is present, ASE_NotPresent will be returned. If there is no clock, ASE_SPNotAdvancing will be returned.
Parameters
sampleswill hold the sample position on return. The sample position is reset to zero when ASIOStart() gets called.
timestampwill hold the system time on return when the sample position was latched
+ Here is the call graph for this function:

◆ getSampleRate()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::getSampleRate ( ::ASIOSampleRate * samplerate)
inlineoverrideprotectednoexcept

◆ halt()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::halt ( )
inlineoverridenoexceptinherited

stop streaming engine

◆ init()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOBool dx::asio< device_t, pin_t, driver_t >::init ( void * )
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:

◆ initialize()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::initialize ( uint32_t iosize,
uint64_t channel_map[2][(max_channels+63)/64] )
inlineinherited
Todo
clock already runnning with different iosize: check if engine should be initialized with current iosize
Todo
stream::engine::initialize(): define sync reference pin

◆ NonDelegatingQueryInterface()

template<typename device_t , typename pin_t , typename driver_t >
DECLARE_IUNKNOWN ::HRESULT STDMETHODCALLTYPE dx::asio< device_t, pin_t, driver_t >::NonDelegatingQueryInterface ( const ::IID & riid,
void ** object )
inlineoverrideprotectednoexcept

◆ notify() [1/2]

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::notify ( )
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:

◆ notify() [2/2]

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::notify ( unsigned int )
inlineoverrideprotectedvirtualnoexcept

notify sample rate change from device

Reimplemented from dx::stream::engine< device_t, pin_t, driver_t >.

◆ outputReady()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::outputReady ( )
inlineoverrideprotectednoexcept

◆ overload()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::overload ( )
inlineoverrideprotectedvirtualnoexcept

Reimplemented from dx::stream::engine< device_t, pin_t, driver_t >.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ process()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::process ( int64_t timestamp)
inlineoverrideprotectedvirtualnoexcept

Implements dx::stream::engine< device_t, pin_t, driver_t >.

+ Here is the call graph for this function:

◆ removed()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::removed ( device_t & device)
inlineoverrideprotectednoexceptinherited

notify specific device removal stub

◆ run()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::run ( )
inlineoverrideinherited

start streaming engine

◆ samplerate() [1/2]

uint32_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::samplerate ( ) const
inlineinherited

◆ samplerate() [2/2]

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::samplerate ( uint32_t samplerate)
inlineinherited

◆ setClockSource()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::setClockSource ( long index)
inlineoverrideprotectednoexcept

◆ setSampleRate()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::setSampleRate ( ::ASIOSampleRate samplerate)
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:

◆ sleep()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::sleep ( )
inlineoverrideprotected
+ Here is the call graph for this function:

◆ start()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::start ( )
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stop()

template<typename device_t , typename pin_t , typename driver_t >
::ASIOError dx::asio< device_t, pin_t, driver_t >::stop ( )
inlineoverrideprotectednoexcept
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sync()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::sync ( const std::chrono::high_resolution_clock::time_point & now)
inlineoverrideprotectedinherited

◆ tick()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::tick ( )
inlineoverrideprotectedinherited
Todo
enable re-sync with correct rx/tx position dependent clock event time point

◆ update()

void dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::update ( )
inlineprotectednoexceptinherited

◆ wake()

template<typename device_t , typename pin_t , typename driver_t >
void dx::asio< device_t, pin_t, driver_t >::wake ( )
inlineoverrideprotected
+ Here is the call graph for this function:

Member Data Documentation

◆ [struct]

struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::cache

◆ callbacks

template<typename device_t , typename pin_t , typename driver_t >
::ASIOCallbacks* dx::asio< device_t, pin_t, driver_t >::callbacks = nullptr
protected

◆ cerr

template<typename device_t , typename pin_t , typename driver_t >
redirect::file dx::asio< device_t, pin_t, driver_t >::cerr
protected

◆ circular

typename pin_t::circular_t * dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::circular[direction::directions]
inherited

◆ clog

template<typename device_t , typename pin_t , typename driver_t >
redirect::file dx::asio< device_t, pin_t, driver_t >::clog
protected

◆ device

std::shared_ptr<device_t> dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::device
protectedinherited

◆ engine_driven

bool dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::engine_driven
inherited

pins do not provide any means of driving streaming

◆ force_read

force_read dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::force_read
inherited

◆ force_write

force_write dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::force_write
inherited

◆ frame

uint64_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::frame
protectedinherited

◆ hw_clock

bool dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::hw_clock
protectedinherited

◆ interval

uint32_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::interval
inherited

clock resolution: HW stream frame size in samples

◆ [struct] [1/2]

struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::io[direction::directions]

◆ io [2/2]

int32_t ** dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::io[direction::directions][2]
protectedinherited

◆ iosize

uint32_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::iosize
protectedinherited

◆ kernel_streaming

bool dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::kernel_streaming
protectedinherited

◆ linesize

uint32_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::linesize
inherited

◆ log_path

template<typename device_t , typename pin_t , typename driver_t >
std::string dx::asio< device_t, pin_t, driver_t >::log_path
protected

◆ mmoffset

template<typename device_t , typename pin_t , typename driver_t >
int64_t dx::asio< device_t, pin_t, driver_t >::mmoffset = 0
protected

◆ monitor

dx::stream::clock::monitor* dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::monitor
protectedinherited

io[directions][double buffer][channel][sample]

◆ [struct]

struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::observer

◆ paused

template<typename device_t , typename pin_t , typename driver_t >
bool dx::asio< device_t, pin_t, driver_t >::paused = false
protected

◆ pin

std::shared_ptr<pin_t> dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::pin[direction::directions]
protectedinherited

◆ reference

direction::direction dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::reference
inherited

◆ safety_offset

uint32_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::safety_offset
inherited

◆ sample_position

template<typename device_t , typename pin_t , typename driver_t >
uint64_t dx::asio< device_t, pin_t, driver_t >::sample_position = 0
protected

◆ samplerate [1/2]

volatile uint32_t* dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::samplerate
inherited

◆ samplerate [2/2]

uint32_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::samplerate
inherited

◆ status

template<typename device_t , typename pin_t , typename driver_t >
os_result dx::asio< device_t, pin_t, driver_t >::status = not_initialized
protected

◆ streaming

template<typename device_t , typename pin_t , typename driver_t >
bool dx::asio< device_t, pin_t, driver_t >::streaming = false
protected

keeps track of the start/stop state of the streaming engine

◆ [struct]

struct { ... } dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::sync

◆ time_code

template<typename device_t , typename pin_t , typename driver_t >
bool dx::asio< device_t, pin_t, driver_t >::time_code = false
protected

indicate to generate time code

◆ time_info

template<typename device_t , typename pin_t , typename driver_t >
bool dx::asio< device_t, pin_t, driver_t >::time_info = false
protected

indicate ASIO host supports time info

◆ trigger

int64_t dx::stream::engine< device_t, pin_t, driver_t, int32_t , typename pin_t::circular_t >::trigger
inherited

resync condition


The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Dec 20 2024

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.