dxd - dynax driver framework 2.6.0d206
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::proxy::stream::stream< device_t, circular_t > Class Template Reference

#include <dx_proxy_stream_device.h>

Inheritance diagram for dx::proxy::stream::stream< device_t, circular_t >:
Collaboration diagram for dx::proxy::stream::stream< device_t, circular_t >:

Public Types

typedef struct device_t::desc::stream desc
typedef event< kernelevent_t

Public Member Functions

 __dx_catchall (std::cerr<< dx::exception(&exception, exception.error, __PRETTY_FUNCTION__, __FILE__, __LINE__)<< std::endl;,) ~stream() override
streamattach (channel_t **[2], uint64_t[(channels+63)/64])
 catch (...)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
 catch (const std::exception &__std_exception)
 dx_catchall_handler (this,) ~stream() override
virtual bool encoder (dx::stream::encoder::index::type, unsigned int, float)
void exception (const class exception &exception, bool filtered=false) const noexcept override
DX_PRAGMA_IGNORE_RETURN_VALUE_END void flush () override
DX_PRAGMA_IGNORE_RETURN_VALUE_END void halt () noexcept override try
void info (std::ostream &os) noexcept override try
virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END void initialize () try
void launch () override try
 operator dx::circular * () const noexcept
dx::circularoperator-> () const noexcept
bool start (uint64_t frame, unsigned int starting=1) override try
 stream (device_t &device, const decltype(super::id)&id, const super::desc &desc)
 creates circular streaming backing store and frame buffers
virtual bool submit (dx::stream::encoder::index::type, unsigned int, uint8_t)
 submit encoder stage to device return true if successfully submitted; if false is returned the encode state machine will not update the stage value (i.e. if the stage can't be submitted during streaming pause), given the chance to submit the stage at start().

Public Attributes

struct { 
   uint32_t   granularity 
   uint32_t   linesize 
   dx::stream::clock::monitor *   monitor 
   os_result   status 
cache
event_t data [direction::directions]
 event signalising data arrival(in) or draining(out)
uint32_t granularity
const decltype(desc::target.idx()) id
uint32_t latency
uint32_t linesize
dx::stream::clock::monitormonitor
decltype(device_t::samplerate) & samplerate
os_result status

Protected Member Functions

virtual void alloc (size_t size, bool free=true)
virtual void free () noexcept

Protected Attributes

dx::circularcircular

Member Typedef Documentation

◆ desc

typedef struct device_t::desc::stream dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::desc
inherited

◆ event_t

typedef event<kernel> dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::event_t
inherited

Constructor & Destructor Documentation

◆ stream()

template<typename device_t, typename circular_t = dx::circular>
dx::proxy::stream::stream< device_t, circular_t >::stream ( device_t & device,
const decltype(super::id)& id,
const super::desc & desc )
inline

creates circular streaming backing store and frame buffers

Member Function Documentation

◆ __dx_catchall()

template<typename device_t, typename circular_t = dx::circular>
dx::proxy::stream::stream< device_t, circular_t >::__dx_catchall ( std::cerr<< dx::exception &,.,,, __LINE__<< std::endl; )
inlineoverride

◆ alloc()

virtual void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::alloc ( size_t size,
bool free = true )
inlineprotectedvirtualinherited

◆ attach()

stream & dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::attach ( channel_t ** [2],
uint64_t [(channels+63)/64] )
inlineinherited

◆ catch() [1/3]

template<typename device_t, typename circular_t = dx::circular>
dx::proxy::stream::stream< device_t, circular_t >::catch ( ...)
inline

◆ catch() [2/3]

template<typename device_t, typename circular_t = dx::circular>
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::proxy::stream::stream< device_t, circular_t >::catch ( const dx::exception & __dx_exception)
inline

◆ catch() [3/3]

template<typename device_t, typename circular_t = dx::circular>
dx::proxy::stream::stream< device_t, circular_t >::catch ( const std::exception & __std_exception)
inline

◆ dx_catchall_handler()

dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::dx_catchall_handler ( this )
inlineoverrideinherited

◆ encoder()

virtual bool dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::encoder ( dx::stream< device_t, dx::circular >::encoder::index::type ,
unsigned int ,
float  )
inlinevirtualinherited

◆ exception()

void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::exception ( const class exception & exception,
bool filtered = false ) const
inlineoverridenoexceptinherited

◆ flush()

DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::flush ( )
inlineoverrideinherited

◆ free()

virtual void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::free ( )
inlineprotectedvirtualnoexceptinherited

◆ halt()

template<typename device_t, typename circular_t = dx::circular>
DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::proxy::stream::stream< device_t, circular_t >::halt ( )
inlineoverridenoexcept
Here is the call graph for this function:
Here is the caller graph for this function:

◆ info()

void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::info ( std::ostream< device_t, dx::circular > & os)
inlineoverridenoexceptinherited

◆ initialize()

virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::initialize ( )
inlinevirtualinherited

◆ launch()

void dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::launch ( )
inlineoverrideinherited

◆ operator dx::circular *()

dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::operator dx::circular * ( ) const
inlinenoexceptinherited

◆ operator->()

dx::circular * dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::operator-> ( ) const
inlinenoexceptinherited

◆ start()

template<typename device_t, typename circular_t = dx::circular>
bool dx::proxy::stream::stream< device_t, circular_t >::start ( uint64_t frame,
unsigned int starting = 1 )
inlineoverride
Here is the call graph for this function:

◆ submit()

virtual bool dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::submit ( dx::stream< device_t, dx::circular >::encoder::index::type ,
unsigned int ,
uint8_t  )
inlinevirtualinherited

submit encoder stage to device return true if successfully submitted; if false is returned the encode state machine will not update the stage value (i.e. if the stage can't be submitted during streaming pause), given the chance to submit the stage at start().

Member Data Documentation

◆ [struct]

struct { ... } dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::cache
Todo
: stream::stream::cache needs to be made protected (coreaudio::device requires cache access)

◆ circular

dx::circular* dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::circular
protectedinherited

◆ data

event_t dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::data[direction::directions]
inherited

event signalising data arrival(in) or draining(out)

◆ granularity

uint32_t dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::granularity
inherited

◆ id

const decltype(desc::target.idx()) dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::id
inherited

◆ latency

uint32_t dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::latency
inherited

◆ linesize

uint32_t dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::linesize
inherited

◆ monitor

dx::stream::clock::monitor* dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::monitor
inherited

◆ samplerate

decltype(device_t::samplerate) & dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::samplerate
inherited

◆ status

os_result dx::stream::stream< device_t, dx::circular, control<object<device_t>>, event<kernel> >::status
inherited

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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.