dxd - dynax driver framework  2979
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::circular Struct Reference

kernel/user space shared circular buffer More...

#include <dx_stream.h>

Public Types

enum  format {
  format::pcm16 = 'pcm\x10', format::pcm24 = 'pcm\x18', format::pcm24in32hi ='pcmh', format::pcm24in32lo ='pcml',
  format::pcm32 = 'pcm\x20', format::midi = 'midi', format::invalid = 'none', format::audio = 'aud\0',
  format::any = 'any\0'
}
 

Public Member Functions

template<typename circular_t , typename ext_t >
 DX_HIDE_IF_PTR (ext_t) read(ext_t *const *dst
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t 
DX_HIDE_IF_PTR (ext_t) force_write(volatile uint64_t &position
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t 
DX_HIDE_IF_PTR (ext_t) force_write(const ext_t *src
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t 
DX_HIDE_IF_PTR (ext_t) write(volatile uint64_t &position
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t 
DX_HIDE_IF_PTR (ext_t) write(const ext_t *src
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t 
DX_HIDE_IF_PTR (ext_t) read(volatile uint64_t &position
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t 
DX_HIDE_IF_PTR (ext_t) read(ext_t *dst
 
uint64_t empty ()
 
uint64_t empty (volatile uint64_t &position)
 
template<typename circular_t , typename ext_t >
bool force_write (volatile uint64_t &position, const ext_t *const *src, uint64_t bulk, unsigned int channels_circular=1, unsigned int channels_src=1, unsigned int circular_offset=0, unsigned int interleaved=1)
 multi channel interleaved bulk write into circular buffer with format conversion if applicable More...
 
template<typename circular_t , typename ext_t >
bool force_write (const ext_t *const *src, uint64_t bulk=1, unsigned int channels_circular=1, unsigned int channels_src=1, unsigned int circular_offset=0, unsigned int interleaved=1)
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int src_t bool 
force_write (src_t *const *const *src, unsigned int clients, unsigned int channels=1, uint64_t bulk=1)
 
template<typename data_t >
bool force_write (data_t *const *const *src, uint64_t clients, uint64_t channels, uint64_t bulk)
 
void initialize (uint64_t backingstore_size)
 
void initialize ()
 
uint64_t loop () const
 
template<typename callback_t >
void move (callback_t &callback, uint64_t max)
 
template<typename circular_t , typename ext_t >
bool read (volatile uint64_t &position, ext_t *const *dst, uint64_t bulk, unsigned int channels_circular=1, unsigned int channels_dst=1, unsigned int circular_offset=0, unsigned int interleaved=1)
 multi channel interleaved bulk read from circular buffer with format conversion if applicable More...
 
uint64_t used ()
 
uint64_t used (volatile uint64_t &position)
 
template<typename circular_t , typename ext_t >
bool write (volatile uint64_t &position, const ext_t *const *src, uint64_t bulk=1, unsigned int channels_circular=1, unsigned int channels_src=1, unsigned int circular_offset=0, unsigned int interleaved=1)
 bulk write into circular buffer with format conversion if applicable More...
 
template<typename circular_t , typename ext_t >
bool write (const ext_t *const *src, uint64_t bulk=1, unsigned int channels_circular=1, unsigned int channels_src=1, unsigned int circular_offset=0, unsigned int interleaved=1)
 

Public Attributes

uint64_t bulk
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t 
bulk =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t 
bulk =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t 
bulk =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t 
bulk =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t 
bulk =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t 
bulk =1
 
uint64_t unsigned int channels_circular =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int 
channels_circular =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int 
channels_circular =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int 
channels_circular =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int 
channels_circular =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int 
channels_circular =1
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int 
channels_circular =1
 
uint64_t unsigned int unsigned int channels_dst =1
 
uint64_t unsigned int unsigned
int unsigned int 
circular_offset =0
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int 
circular_offset =0
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int 
circular_offset =0
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int 
circular_offset =0
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int 
circular_offset =0
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int 
circular_offset =0
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int 
circular_offset =0
 
char data [1]
 
volatile uint64_t dropout
 drop out counter More...
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t * 
dst
 
uint64_t unsigned int unsigned
int unsigned int unsigned int 
interleaved
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int 
interleaved
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int 
interleaved
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int 
interleaved
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int 
interleaved
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int 
interleaved
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t ext_t
uint64_t unsigned int unsigned
int unsigned int ext_t
uint64_t unsigned int unsigned
int unsigned int 
interleaved
 
volatile uint64_t rx
 single consumers current read index More...
 
uint64_t size
 size of buffer in bytes More...
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t * 
src
 
uint64_t unsigned int unsigned
int unsigned int unsigned int
ext_t const ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t uint64_t
unsigned int unsigned int
unsigned int ext_t const ext_t * 
src
 
volatile int64_t timestamp
 current rx/tx timestamp More...
 
volatile uint64_t tx
 producers current write index More...
 
struct {
   volatile uint64_t   count
 buffer wrap count More...
 
   volatile int64_t   timestamp
 timestamp of last buffer wrap More...
 
zero
 

Detailed Description

kernel/user space shared circular buffer

this buffer is non-blocking for single-consumer/single-producer configurations; multiple producer write interleaved while obtaining shadow.tx; if shadow.tx==tx the producer is allowed to write into the buffer after advancing shadow.tx to the final tx position; once tx reaches shadow.tx the write is terminated and the producer can start a write cycle. multiple consumer each hold there own rx and read between rx and cycle.tx.

Member Enumeration Documentation

enum dx::circular::format
strong
Enumerator
pcm16 

signed 16 bit integer little endian linear PCM

pcm24 

signed 24 bit compressed integer little endian linear PCM

pcm24in32hi 

signed 24 bit integer in 32bit frame hi aligned little endian linear PCM

pcm24in32lo 

signed 24 bit integer in 32bit frame lo aligned little endian linear PCM

pcm32 

signed 32 bit integer little endian linear PCM

midi 

USB MIDI.

invalid 
audio 

pseudo type: only for audio pin enumeration

any 

pseudo type: only for audio/MIDI pin enumeration

Member Function Documentation

template<typename circular_t , typename ext_t >
dx::circular::DX_HIDE_IF_PTR ( ext_t  ) const
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  ) volatile
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  ) const
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  ) volatile
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  ) const
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  ) volatile
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  )
uint64_t dx::circular::empty ( )
inline

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint64_t dx::circular::empty ( volatile uint64_t position)
inline
template<typename circular_t , typename ext_t >
bool dx::circular::force_write ( volatile uint64_t position,
const ext_t *const *  src,
uint64_t  bulk,
unsigned int  channels_circular = 1,
unsigned int  channels_src = 1,
unsigned int  circular_offset = 0,
unsigned int  interleaved = 1 
)
inline

multi channel interleaved bulk write into circular buffer with format conversion if applicable

return true if data fit into circular space

+ Here is the caller graph for this function:

template<typename circular_t , typename ext_t >
bool dx::circular::force_write ( const ext_t *const *  src,
uint64_t  bulk = 1,
unsigned int  channels_circular = 1,
unsigned int  channels_src = 1,
unsigned int  circular_offset = 0,
unsigned int  interleaved = 1 
)
inline
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int src_t bool dx::circular::force_write ( src_t *const *const *  src,
unsigned int  clients,
unsigned int  channels = 1,
uint64_t  bulk = 1 
)
inline
template<typename data_t >
bool dx::circular::force_write ( data_t *const *const *  src,
uint64_t  clients,
uint64_t  channels,
uint64_t  bulk 
)
inline
void dx::circular::initialize ( uint64_t  backingstore_size)
inline

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void dx::circular::initialize ( )
inline

+ Here is the caller graph for this function:

uint64_t dx::circular::loop ( ) const
inline

+ Here is the caller graph for this function:

template<typename callback_t >
void dx::circular::move ( callback_t &  callback,
uint64_t  max 
)
inline
template<typename circular_t , typename ext_t >
bool dx::circular::read ( volatile uint64_t position,
ext_t *const *  dst,
uint64_t  bulk,
unsigned int  channels_circular = 1,
unsigned int  channels_dst = 1,
unsigned int  circular_offset = 0,
unsigned int  interleaved = 1 
)
inline

multi channel interleaved bulk read from circular buffer with format conversion if applicable

return true if enough data is available in circular space

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint64_t dx::circular::used ( )
inline

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint64_t dx::circular::used ( volatile uint64_t position)
inline
template<typename circular_t , typename ext_t >
bool dx::circular::write ( volatile uint64_t position,
const ext_t *const *  src,
uint64_t  bulk = 1,
unsigned int  channels_circular = 1,
unsigned int  channels_src = 1,
unsigned int  circular_offset = 0,
unsigned int  interleaved = 1 
)
inline

bulk write into circular buffer with format conversion if applicable

return true if data fit into empty space

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename circular_t , typename ext_t >
bool dx::circular::write ( const ext_t *const *  src,
uint64_t  bulk = 1,
unsigned int  channels_circular = 1,
unsigned int  channels_src = 1,
unsigned int  circular_offset = 0,
unsigned int  interleaved = 1 
)
inline

+ Here is the call graph for this function:

Member Data Documentation

uint64_t dx::circular::bulk
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t dx::circular::bulk =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t dx::circular::bulk =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t dx::circular::bulk =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t dx::circular::bulk =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t dx::circular::bulk =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t dx::circular::bulk =1
uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int dx::circular::channels_circular =1
uint64_t unsigned int unsigned int dx::circular::channels_dst =1
uint64_t unsigned int unsigned int unsigned int dx::circular::circular_offset =0
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int dx::circular::circular_offset =0
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int dx::circular::circular_offset =0
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int dx::circular::circular_offset =0
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int dx::circular::circular_offset =0
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int dx::circular::circular_offset =0
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int dx::circular::circular_offset =0
volatile uint64_t dx::circular::count

buffer wrap count

char dx::circular::data[1]
volatile uint64_t dx::circular::dropout

drop out counter

uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t* dx::circular::dst
uint64_t unsigned int unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
template<typename circular_t
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
return force_write<circular_t,ext_t>(position,&src,bulk,channels_circular,1,circular_offset,interleaved);}
template<typename circular_t
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
return force_write<circular_t,ext_t>(tx,&src,bulk,channels_circular,1,circular_offset,interleaved);}
template<typename circular_t
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
return write<circular_t,ext_t>(position,&src,bulk,channels_circular,1,circular_offset,interleaved);}
template<typename circular_t
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
return write<circular_t,ext_t>(&src,bulk,channels_circular,1,circular_offset,interleaved);}
template<typename circular_t
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
return read<circular_t,ext_t>(position,&dst,bulk,channels_circular,1,circular_offset,interleaved);}
template<typename circular_t
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int dx::circular::interleaved
volatile uint64_t dx::circular::rx

single consumers current read index

uint64_t dx::circular::size

size of buffer in bytes

uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t* dx::circular::src
uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int unsigned int unsigned int ext_t uint64_t unsigned int unsigned int unsigned int ext_t const ext_t* dx::circular::src
volatile int64_t dx::circular::timestamp

current rx/tx timestamp

timestamp of last buffer wrap

volatile uint64_t dx::circular::tx

producers current write index

struct { ... } dx::circular::zero

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Nov 8 2019

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.