dxd - dynax driver framework  3211
cross platform open source driver development framework
dx::circular Struct Reference

kernel/user space shared circular buffer More...

#include <dx_stream.h>

+ Inheritance diagram for dx::circular:

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

◆ format

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

◆ DX_HIDE_IF_PTR() [1/7]

template<typename circular_t , typename ext_t >
dx::circular::DX_HIDE_IF_PTR ( ext_t  ) const

◆ DX_HIDE_IF_PTR() [2/7]

uint64_t unsigned int unsigned int unsigned int unsigned int ext_t dx::circular::DX_HIDE_IF_PTR ( ext_t  ) volatile &

◆ DX_HIDE_IF_PTR() [3/7]

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

◆ DX_HIDE_IF_PTR() [4/7]

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 &

◆ DX_HIDE_IF_PTR() [5/7]

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

◆ DX_HIDE_IF_PTR() [6/7]

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 &

◆ DX_HIDE_IF_PTR() [7/7]

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  )

◆ empty() [1/2]

uint64_t dx::circular::empty ( )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ empty() [2/2]

uint64_t dx::circular::empty ( volatile uint64_t position)
inline

◆ force_write() [1/4]

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

◆ force_write() [2/4]

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

◆ force_write() [3/4]

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

◆ force_write() [4/4]

template<typename data_t >
bool dx::circular::force_write ( data_t *const *const *  src,
uint64_t  clients,
uint64_t  channels,
uint64_t  bulk 
)
inline
+ Here is the call graph for this function:

◆ initialize() [1/2]

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:

◆ initialize() [2/2]

void dx::circular::initialize ( )
inline
+ Here is the caller graph for this function:

◆ loop()

uint64_t dx::circular::loop ( ) const
inline
+ Here is the caller graph for this function:

◆ move()

template<typename callback_t >
void dx::circular::move ( callback_t &  callback,
uint64_t  max 
)
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ read()

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:

◆ used() [1/2]

uint64_t dx::circular::used ( )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ used() [2/2]

uint64_t dx::circular::used ( volatile uint64_t position)
inline

◆ write() [1/2]

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:

◆ write() [2/2]

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

◆ bulk [1/7]

uint64_t dx::circular::bulk

◆ bulk [2/7]

uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t dx::circular::bulk =1

◆ bulk [3/7]

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

◆ bulk [4/7]

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

◆ bulk [5/7]

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

◆ bulk [6/7]

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

◆ bulk [7/7]

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

◆ channels_circular [1/7]

uint64_t unsigned int dx::circular::channels_circular =1

◆ channels_circular [2/7]

uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t uint64_t unsigned int dx::circular::channels_circular =1

◆ channels_circular [3/7]

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

◆ channels_circular [4/7]

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

◆ channels_circular [5/7]

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

◆ channels_circular [6/7]

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

◆ channels_circular [7/7]

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

◆ channels_dst

uint64_t unsigned int unsigned int dx::circular::channels_dst =1

◆ circular_offset [1/7]

uint64_t unsigned int unsigned int unsigned int dx::circular::circular_offset =0

◆ circular_offset [2/7]

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

◆ circular_offset [3/7]

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

◆ circular_offset [4/7]

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

◆ circular_offset [5/7]

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

◆ circular_offset [6/7]

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

◆ circular_offset [7/7]

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

◆ count

volatile uint64_t dx::circular::count

buffer wrap count

◆ data

char dx::circular::data[1]

◆ dropout

volatile uint64_t dx::circular::dropout

drop out counter

◆ dst

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

◆ interleaved [1/7]

uint64_t unsigned int unsigned int unsigned int unsigned int dx::circular::interleaved
Initial value:
=1){
template<typename circular_t

◆ interleaved [2/7]

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

◆ interleaved [3/7]

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

◆ interleaved [4/7]

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

◆ interleaved [5/7]

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

◆ interleaved [6/7]

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

◆ interleaved [7/7]

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

◆ rx

volatile uint64_t dx::circular::rx

single consumers current read index

◆ size

uint64_t dx::circular::size

size of buffer in bytes

◆ src [1/2]

uint64_t unsigned int unsigned int unsigned int unsigned int ext_t const ext_t* dx::circular::src

◆ src [2/2]

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

◆ timestamp

volatile int64_t dx::circular::timestamp

current rx/tx timestamp

timestamp of last buffer wrap

◆ tx

volatile uint64_t dx::circular::tx

producers current write index

◆ zero

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

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

(c) copyright 2009 dynamic acoustics e.U. generated on Sat Aug 22 2020

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.