dxd - dynax driver framework 2.1.0d48
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t > Class Template Reference

#include <dx_test.h>

+ Inheritance diagram for dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >:
+ Collaboration diagram for dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >:

Public Types

typedef device_t::desc desc
 

Public Member Functions

 __dx_cf_string_comparator (!=)
 
 __dx_cf_string_comparator (<)
 
 __dx_cf_string_comparator (<=)
 
 __dx_cf_string_comparator (==)
 
 __dx_cf_string_comparator (>)
 
 __dx_cf_string_comparator (>=)
 
virtual void conclude () noexcept
 
void conclude () noexcept override
 
::CFStringRef copy () const
 
virtual void detach () noexcept
 
 driver (const typename super::match &match, const char *id)
 
 dx_catchall () static void idle(int64_t nsec)
 
virtual void exception (const exception &exception, bool=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
 
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])
 
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
 
bool operator!= (::CFStringRef value) const noexcept
 
bool operator!= (cf_object_t cf_object) const noexcept
 
::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
 
void operator<< (char *argv[])
 
bool operator<= (::CFStringRef value) const noexcept
 
bool operator== (::CFStringRef value) const noexcept
 
bool operator== (cf_object_t cf_object) const noexcept
 
bool operator> (::CFStringRef value) const noexcept
 
bool operator>= (::CFStringRef value) const noexcept
 
reference & release () noexcept
 
reference & retain () noexcept
 
void run () override
 
uint32_t samplerate () const
 
void samplerate (uint32_t samplerate)
 

Static Public Member Functions

static void idle (uint64_t timeout) noexcept
 

Public Attributes

::CFStringRef cf_type_desc = nullptr
 
::CFStringRef cf_type_id = nullptr
 
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< device_t > void arrived () override
 notify device arrivals completed stub
 
virtual void arrived (device_t &)
 notify specific device arrival stub
 
template<typename data_t >
void buffer (size_t size=0x1000, uint32_t rx=1, uint32_t tx=1, const std::chrono::high_resolution_clock::duration &duration=3s) const
 
void buffer_header ()
 
void clear () noexcept
 replaces std::deque::clear to call virtual notification methods
 
void clock_monitor (device_t &device, std::chrono::high_resolution_clock::duration duration) noexcept
 
 dx_catchall_rethrow () virtual void handle(char *arg)
 
virtual void exception (const exception &) const noexcept
 notification exception handler
 
virtual void help () const noexcept
 
realtime & initialize (const std::chrono::high_resolution_clock::duration &resolution)
 
void initialize (const typename clock_t::duration &duration)
 
void meta_buffer (size_t size, uint32_t rx, uint32_t tx, const std::chrono::high_resolution_clock::duration &duration) const
 
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
 
void process (int64_t) noexcept override
 
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 unittest (const std::chrono::high_resolution_clock::duration duration) try
 
void update () noexcept try
 
void wait () try
 

Static Protected Member Functions

static void abort (int) noexcept
 
static void sig (int) 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
 
uint32_t dropout = 0
 
clock_t::duration duration = clock_t::duration::zero()
 
uint64_t frame = 0
 
struct { 
 
   double   denominator 
 
   uint32_t   periode = 0 
 
generator 
 
bool hw_clock = false
 
io_t ** io [directions][2] {}
 
uint32_t iosize = 0
 
bool kernel_streaming = false
 
struct { 
 
   bool   audio = false 
 
   bool   midi = false 
 
loopback 
 
dx::stream::clock::monitormonitor = nullptr
 io[directions][double buffer][channel][sample]
 
std::mutex mutex
 
clock_t::time_point objective
 
std::shared_ptr< pin_t > pin [directions]
 
bool quiet = false
 
volatile bool running = false
 
os_result status = not_initialized
 
uint64_t tick = 0
 
struct { 
 
   uint64_t   mask = ULLONG_MAX 
 
   std::chrono::high_resolution_clock::duration   stream_duration = 0s 
 
unit_test 
 

Member Typedef Documentation

◆ desc

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
typedef device_t::desc dx::stream::engine< device_t, pin_t, io_t, circular_t >::desc
inherited

◆ driver

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
typedef driver<device_t> dx::stream::engine< device_t, pin_t, io_t, circular_t >::driver
protectedinherited

Constructor & Destructor Documentation

◆ driver()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::driver ( const typename super::match & match,
const char * id )
inline
+ Here is the call graph for this function:

Member Function Documentation

◆ __dx_cf_string_comparator() [1/6]

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::__dx_cf_string_comparator ( ! )
inherited

◆ __dx_cf_string_comparator() [2/6]

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::__dx_cf_string_comparator ( )
inherited

◆ __dx_cf_string_comparator() [3/6]

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::__dx_cf_string_comparator ( <= )
inherited

◆ __dx_cf_string_comparator() [4/6]

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::__dx_cf_string_comparator ( )
inherited

◆ __dx_cf_string_comparator() [5/6]

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::__dx_cf_string_comparator ( )
inherited

◆ __dx_cf_string_comparator() [6/6]

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::__dx_cf_string_comparator ( >= )
inherited

◆ abort()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
static void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::abort ( int )
inlinestaticprotectednoexcept
+ Here is the caller graph for this function:

◆ arrived() [1/2]

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

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

Reimplemented from dx::driver< device_t >.

+ Here is the call graph for this function:

◆ arrived() [2/2]

template<class device_t = device>
virtual void dx::driver< device_t >::arrived ( device_t & )
inlineprotectedvirtualinherited

◆ buffer()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
template<typename data_t >
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::buffer ( size_t size = 0x1000,
uint32_t rx = 1,
uint32_t tx = 1,
const std::chrono::high_resolution_clock::duration & duration = 3s ) const
inlineprotected
+ Here is the call graph for this function:

◆ buffer_header()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::buffer_header ( )
inlineprotected

◆ clear()

template<class device_t = device>
void dx::driver< device_t >::clear ( )
inlineprotectednoexceptinherited

replaces std::deque::clear to call virtual notification methods

Todo
check if exception catching needed for device::conclude()
+ Here is the call graph for this function:

◆ clock_monitor()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::clock_monitor ( device_t & device,
std::chrono::high_resolution_clock::duration duration )
inlineprotectednoexcept
+ Here is the call graph for this function:

◆ conclude() [1/2]

template<class device_t = device>
virtual void dx::driver< device_t >::conclude ( )
inlinevirtualnoexceptinherited

Reimplemented from dx::generic::driver.

◆ conclude() [2/2]

template<class device_t = device>
void dx::driver< device_t >::conclude ( )
inlineoverridevirtualnoexceptinherited

Reimplemented from dx::generic::driver.

+ Here is the caller graph for this function:

◆ copy()

template<typename cf_object_t >
::CFStringRef dx::cf::__string< cf_object_t >::copy ( ) const
inlineinherited

◆ detach()

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
virtual void dx::stream::engine< device_t, pin_t, io_t, circular_t >::detach ( )
inlinevirtualnoexceptinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dx_catchall()

dx::generic::driver::dx_catchall ( )
inlineinherited

◆ dx_catchall_rethrow()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::dx_catchall_rethrow ( )
inlineprotected

◆ exception() [1/2]

virtual void dx::generic::driver::exception ( const exception & ) const
inlineprotectedvirtualnoexceptinherited

notification exception handler

◆ exception() [2/2]

virtual void dx::generic::driver::exception ( const exception & exception,
bool = false ) const
inlinevirtualnoexceptinherited

notification exception handler

+ Here is the caller graph for this function:

◆ find()

template<class device_t = device>
device_t * dx::driver< device_t >::find ( std::string uid) const
inlinenoexceptinherited

Finds the device by guid.
The user is responsible for making sure the device list cannot be modified during find().

Exceptions
n/athis method does not throw exceptions

◆ free()

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
virtual void dx::stream::engine< device_t, pin_t, io_t, circular_t >::free ( )
inlinevirtualnoexceptinherited
Todo
replace test for valid pin by overwise keeping track of allocated channels
+ Here is the caller graph for this function:

◆ halt()

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
void dx::stream::engine< device_t, pin_t, io_t, circular_t >::halt ( )
inlineoverridevirtualnoexceptinherited

Reimplemented from dx::clock< scope_t, clock_t >.

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

◆ help()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
virtual void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::help ( ) const
inlineprotectedvirtualnoexcept
+ Here is the caller graph for this function:

◆ idle()

static void dx::generic::driver::idle ( uint64_t timeout)
inlinestaticnoexceptinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initialize() [1/4]

template<typename cf_object_t >
reference & dx::cf::reference< cf_object_t >::initialize ( cf_object_t cf_object,
bool retain = true )
inlineinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initialize() [2/4]

realtime & dx::thread::prio::realtime::initialize ( const std::chrono::high_resolution_clock::duration & resolution)
inlineinherited
+ Here is the caller graph for this function:

◆ initialize() [3/4]

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
void dx::clock< scope_t, clock_t >::initialize ( const typename clock_t::duration & duration)
inlineinherited
+ Here is the caller graph for this function:

◆ initialize() [4/4]

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
template<unsigned int max_channels>
void dx::stream::engine< device_t, pin_t, io_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
+ Here is the call graph for this function:

◆ launch() [1/2]

virtual void dx::generic::driver::launch ( )
inlinevirtualinherited

◆ launch() [2/2]

virtual void dx::generic::driver::launch ( )
inlinevirtualinherited
+ Here is the call graph for this function:

◆ meta_buffer()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::meta_buffer ( size_t size,
uint32_t rx,
uint32_t tx,
const std::chrono::high_resolution_clock::duration & duration ) const
inlineprotected

◆ notify() [1/2]

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::notify ( )
inlineoverrideprotectedvirtualnoexcept

notify change from device requiring streaming reset

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

+ Here is the caller graph for this function:

◆ notify() [2/2]

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
virtual void dx::stream::engine< device_t, pin_t, io_t, circular_t >::notify ( uint32_t )
inlineprotectedvirtualnoexceptinherited

notify sample rate change from device

+ Here is the caller graph for this function:

◆ operator bool()

template<typename cf_object_t >
dx::cf::reference< cf_object_t >::operator bool ( ) const
inlinenoexceptinherited

◆ operator cf_object_t()

template<typename cf_object_t >
dx::cf::reference< cf_object_t >::operator cf_object_t ( ) const
inlinenoexceptinherited

◆ operator const char *()

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::operator const char * ( ) const
inlineinherited

◆ operator double()

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::operator double ( ) const
inlinenoexceptinherited

Skips whitespace; returns 0.0 on error.

◆ operator int32_t()

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::operator int32_t ( ) const
inlinenoexceptinherited

Skips whitespace; returns 0 on error, MAX or -MAX on overflow.

◆ operator std::string()

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::operator std::string ( ) const
inlineinherited

◆ operator!=() [1/2]

template<typename cf_object_t >
bool dx::cf::__string< cf_object_t >::operator!= ( ::CFStringRef value) const
inlinenoexceptinherited

◆ operator!=() [2/2]

template<typename cf_object_t >
bool dx::cf::reference< cf_object_t >::operator!= ( cf_object_t cf_object) const
inlinenoexceptinherited

◆ operator+() [1/2]

template<typename cf_object_t >
::CFMutableStringRef dx::cf::__string< cf_object_t >::operator+ ( ::CFStringRef value) const
inlinenoexceptinherited

◆ operator+() [2/2]

template<typename cf_object_t >
::CFMutableStringRef dx::cf::__string< cf_object_t >::operator+ ( const char * value) const
inlinenoexceptinherited

◆ operator::CFDataRef()

template<typename cf_object_t >
dx::cf::__string< cf_object_t >::operator::CFDataRef ( ) const
inlinenoexceptinherited

◆ operator::CFRunLoopSourceRef()

dx::io::power::operator::CFRunLoopSourceRef ( ) const
inlinenoexceptinherited

◆ operator::CFTypeID()

template<typename cf_object_t >
dx::cf::reference< cf_object_t >::operator::CFTypeID ( ) const
inlinenoexceptinherited

◆ operator::CFTypeRef()

template<typename cf_object_t >
template<typename petty_t = cf_object_t, typename = typename std::enable_if_t <!std::is_same_v<petty_t, ::CFTypeRef>>>
dx::cf::reference< cf_object_t >::operator::CFTypeRef ( ) const
inlinenoexceptinherited

◆ operator::IONotificationPortRef()

dx::io::power::operator::IONotificationPortRef ( ) const
inlinenoexceptinherited

◆ operator::mach_port_t()

dx::io::power::operator::mach_port_t ( ) const
inlinenoexceptinherited

◆ operator<()

template<typename cf_object_t >
bool dx::cf::__string< cf_object_t >::operator< ( ::CFStringRef value) const
inlinenoexceptinherited

◆ operator<<()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::operator<< ( char * argv[])
inline
+ Here is the call graph for this function:

◆ operator<=()

template<typename cf_object_t >
bool dx::cf::__string< cf_object_t >::operator<= ( ::CFStringRef value) const
inlinenoexceptinherited

◆ operator==() [1/2]

template<typename cf_object_t >
bool dx::cf::__string< cf_object_t >::operator== ( ::CFStringRef value) const
inlinenoexceptinherited

◆ operator==() [2/2]

template<typename cf_object_t >
bool dx::cf::reference< cf_object_t >::operator== ( cf_object_t cf_object) const
inlinenoexceptinherited

◆ operator>()

template<typename cf_object_t >
bool dx::cf::__string< cf_object_t >::operator> ( ::CFStringRef value) const
inlinenoexceptinherited

◆ operator>=()

template<typename cf_object_t >
bool dx::cf::__string< cf_object_t >::operator>= ( ::CFStringRef value) const
inlinenoexceptinherited

◆ overload()

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
virtual void dx::stream::engine< device_t, pin_t, io_t, circular_t >::overload ( )
inlineprotectedvirtualnoexceptinherited
+ Here is the caller graph for this function:

◆ process()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::process ( int64_t )
inlineoverrideprotectedvirtualnoexcept

Implements dx::stream::engine< device_t, pin_t, io_t, circular_t >.

+ Here is the call graph for this function:

◆ release()

template<typename cf_object_t >
reference & dx::cf::reference< cf_object_t >::release ( )
inlinenoexceptinherited
+ Here is the caller graph for this function:

◆ removed() [1/2]

template<class device_t = device>
virtual void dx::generic::driver::removed ( )
inlineprotectedvirtualnoexceptinherited

notify device removals completed stub

Reimplemented from dx::generic::driver.

◆ removed() [2/2]

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
void dx::stream::engine< device_t, pin_t, io_t, circular_t >::removed ( device_t & )
inlineoverrideprotectedvirtualnoexceptinherited

notify specific device removal stub

Reimplemented from dx::driver< device_t >.

+ Here is the call graph for this function:

◆ retain()

template<typename cf_object_t >
reference & dx::cf::reference< cf_object_t >::retain ( )
inlinenoexceptinherited
+ Here is the caller graph for this function:

◆ run()

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
void dx::stream::engine< device_t, pin_t, io_t, circular_t >::run ( )
inlineoverridevirtualinherited

Reimplemented from dx::clock< scope_t, clock_t >.

+ Here is the call graph for this function:

◆ samplerate() [1/2]

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

◆ samplerate() [2/2]

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
void dx::stream::engine< device_t, pin_t, io_t, circular_t >::samplerate ( uint32_t samplerate)
inlineinherited
+ Here is the call graph for this function:

◆ sig()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
static void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::sig ( int )
inlinestaticprotectednoexcept
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sync() [1/2]

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
void dx::stream::engine< device_t, pin_t, io_t, circular_t >::sync ( const std::chrono::high_resolution_clock::time_point & now)
inlineoverrideprotectedinherited
+ Here is the call graph for this function:

◆ sync() [2/2]

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
virtual void dx::clock< scope_t, clock_t >::sync ( const typename clock_t::time_point & now)
inlineprotectedvirtualinherited

◆ unittest()

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
void dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::unittest ( const std::chrono::high_resolution_clock::duration duration)
inlineprotected
+ Here is the call graph for this function:

◆ update()

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
void dx::stream::engine< device_t, pin_t, io_t, circular_t >::update ( )
inlineprotectednoexceptinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ wait()

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
void dx::clock< scope_t, clock_t >::wait ( )
inlineinherited

Member Data Documentation

◆ audio

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
bool dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::audio = false

◆ [struct]

struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t >::cache

◆ cf_object

template<typename cf_object_t >
cf_object_t dx::cf::reference< cf_object_t >::cf_object = nullptr
protectedinherited

◆ cf_type_desc

template<typename cf_object_t >
::CFStringRef dx::cf::reference< cf_object_t >::cf_type_desc = nullptr
inherited

◆ cf_type_id

template<typename cf_object_t >
::CFStringRef dx::cf::reference< cf_object_t >::cf_type_id = nullptr
inherited

◆ circular

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
circular_t* dx::stream::engine< device_t, pin_t, io_t, circular_t >::circular[directions]
inherited

◆ denominator

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
double dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::denominator

◆ device

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

◆ dropout

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
uint32_t dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::dropout = 0
protected

◆ duration

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
clock_t::duration dx::clock< scope_t, clock_t >::duration = clock_t::duration::zero()
protectedinherited
Todo
evaluate clock::status replacement (exception?)

◆ elements

T std::deque< T >::elements
inherited

STL member.

◆ force_read

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
force_read dx::stream::engine< device_t, pin_t, io_t, circular_t >::force_read
inherited

◆ force_write

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
force_write dx::stream::engine< device_t, pin_t, io_t, circular_t >::force_write
inherited

◆ frame

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
uint64_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::frame = 0
protectedinherited

◆ [struct]

struct { ... } dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::generator

◆ hw_clock

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
bool dx::stream::engine< device_t, pin_t, io_t, circular_t >::hw_clock = false
protectedinherited

◆ interval

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::interval
inherited

clock resolution: HW stream frame size in samples

◆ io

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
io_t** dx::stream::engine< device_t, pin_t, io_t, circular_t >::io[directions][2] {}
protectedinherited

◆ iosize

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::iosize = 0
protectedinherited

◆ kernel_streaming

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
bool dx::stream::engine< device_t, pin_t, io_t, circular_t >::kernel_streaming = false
protectedinherited

◆ launched

template<class device_t = device>
bool dx::driver< device_t >::launched = false
inherited

◆ linesize

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::linesize
inherited

◆ log [1/2]

log dx::generic::driver::log {}
inherited

◆ log [2/2]

dx::log dx::generic::driver::log {}
inherited

◆ [struct]

struct { ... } dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::loopback

◆ mask

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
uint64_t dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::mask = ULLONG_MAX

◆ midi

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
bool dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::midi = false

◆ monitor

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
dx::stream::clock::monitor* dx::stream::engine< device_t, pin_t, io_t, circular_t >::monitor = nullptr
protectedinherited

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

◆ mutex

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
std::mutex dx::clock< scope_t, clock_t >::mutex
protectedinherited

◆ objective

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
clock_t::time_point dx::clock< scope_t, clock_t >::objective
protectedinherited

◆ [struct]

struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t >::observer

◆ periode

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
uint32_t dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::periode = 0

◆ pin

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
std::shared_ptr<pin_t> dx::stream::engine< device_t, pin_t, io_t, circular_t >::pin[directions]
protectedinherited

◆ preference [1/2]

cf::preference dx::generic::driver::preference
inherited

◆ preference [2/2]

dx::registry dx::generic::driver::preference
inherited

◆ quiet

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
bool dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::quiet = false
protected

◆ reference

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
circular* dx::stream::engine< device_t, pin_t, io_t, circular_t >::reference
inherited

◆ running

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
volatile bool dx::clock< scope_t, clock_t >::running = false
protectedinherited

◆ safety_offset

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::safety_offset {}
inherited

◆ samplerate [1/2]

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

◆ samplerate [2/2]

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
uint32_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::samplerate
inherited

◆ setup

dx::generic::driver::setup dx::generic::driver::setup
inherited

◆ status

template<enum scope scope_t = user, typename clock_t = std::chrono::high_resolution_clock>
os_result dx::clock< scope_t, clock_t >::status = not_initialized
protectedinherited

◆ stream_duration

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
std::chrono::high_resolution_clock::duration dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::stream_duration = 0s

◆ [struct]

struct { ... } dx::stream::engine< device_t, pin_t, io_t, circular_t >::sync

◆ tick

template<typename super_device_t , typename audio_pin_t , typename midi_pin_t , typename io_t = int32_t, typename device_t = device< typename audio_pin_t::circular_t, super_device_t, typename midi_pin_t::circular_t>>
uint64_t dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::tick = 0
protected

◆ trigger

template<typename device_t , typename pin_t , typename io_t = int32_t, typename circular_t = typename pin_t::circular_t>
int64_t dx::stream::engine< device_t, pin_t, io_t, circular_t >::trigger
inherited

◆ [struct]

struct { ... } dx::test::driver< super_device_t, audio_pin_t, midi_pin_t, io_t, device_t >::unit_test

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Feb 23 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.