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

#include <dx_stream_shared_stream.h>

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

Public Types

typedef struct device_t::desc::stream desc
 

Public Member Functions

template<unsigned int channels, typename channel_t >
streamattach (channel_t **io[2], uint64_t channel_map[(channels+63)/64])
 
 catch (...)
 
 catch (...)
 
 catch (...)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
 dx_catchall_handler (this,) ~stream() noexcept override
 
 dx_catchall_rethrow (,"name:%s hash:%d semaphore:%p", name.c_str(), hash.c_str(), semaphore) void wait()
 
virtual float encoder (dx::stream::encoder::index::type type, unsigned int index) const
 
virtual bool encoder (dx::stream::encoder::index::type type, unsigned int index, float value)
 
void exception (const class exception &exception, bool filtered=false) const noexcept override
 
virtual bool flush () noexcept
 
void info (std::ostream &os) noexcept override try
 
virtual void initialize ()
 
void initialize (const std::string &name) try
 
virtual uint32_t latency () noexcept
 
void launch () override
 
 operator circular_t * () const noexcept
 
circular_t * operator-> () const noexcept
 
void reset ()
 
virtual uint32_t samplerate () try
 provisional sample rate handler: needs to move into clock class
 
virtual uint32_t samplerate (uint32_t samplerate) try
 
void signal ()
 
bool start (uint64_t frame, unsigned int starting=1) override try
 
virtual os_result status () noexcept
 
 stream (device_t &device, const decltype(super::id)&id, const super::desc &desc)
 
virtual uint8_t submit (dx::stream::encoder::index::type type, unsigned int index) const
 
virtual bool submit (dx::stream::encoder::index::type type, unsigned int index, uint8_t value)
 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().
 
 ~stream () noexcept override
 

Public Attributes

struct dx::stream::stream::cache cache
 
const decltype(device_t::desc::stream::desc::target.idx()) id
 

Protected Member Functions

void alloc (size_t size) override
 
void free () noexcept override
 
void halt () noexcept override
 

Protected Attributes

struct { 
 
   dx::shared::memory< circular_t >   circular 
 
shared 
 
std::string uid
 

Member Typedef Documentation

◆ desc

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
typedef struct device_t::desc::stream dx::stream::stream< device_t, circular_t, super_stream_t >::desc
inherited

Constructor & Destructor Documentation

◆ stream()

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

◆ ~stream()

template<typename device_t , typename circular_t = dx::circular>
dx::stream::shared::stream< device_t, circular_t >::~stream ( )
inlineoverridenoexcept

Member Function Documentation

◆ alloc()

template<typename device_t , typename circular_t = dx::circular>
void dx::stream::shared::stream< device_t, circular_t >::alloc ( size_t size)
inlineoverrideprotectedvirtual

Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.

+ Here is the call graph for this function:

◆ attach()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
template<unsigned int channels, typename channel_t >
stream & dx::stream::stream< device_t, circular_t, super_stream_t >::attach ( channel_t ** io[2],
uint64_t channel_map[(channels+63)/64] )
inlineinherited

◆ catch() [1/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( ...)
inlineinherited

◆ catch() [2/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( ...)
inlineinherited

◆ catch() [3/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( ...)
inlineinherited

◆ catch() [4/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [5/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [6/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ catch() [7/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [8/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ catch() [9/9]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::catch ( const std::exception & __std_exception)
inlineinherited

◆ dx_catchall_handler()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::dx_catchall_handler ( this )
inlineoverridenoexceptinherited

◆ dx_catchall_rethrow()

dx::shared::event::dx_catchall_rethrow ( "name:%s hash:%d semaphore:%p" ,
name. c_str(),
hash. c_str(),
semaphore  )
inlineinherited

◆ encoder() [1/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual float dx::stream::stream< device_t, circular_t, super_stream_t >::encoder ( dx::stream< device_t, circular_t, super_stream_t >::encoder::index::type type,
unsigned int index ) const
inlinevirtualinherited

◆ encoder() [2/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual bool dx::stream::stream< device_t, circular_t, super_stream_t >::encoder ( dx::stream< device_t, circular_t, super_stream_t >::encoder::index::type type,
unsigned int index,
float value )
inlinevirtualinherited

Reimplemented in dx::usb::stream::pipe< device_t, circular_t >, and dx::usb::stream::pipe< device< desc_t, pipe > >.

+ Here is the caller graph for this function:

◆ exception()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
void dx::stream::stream< device_t, circular_t, super_stream_t >::exception ( const class exception & exception,
bool filtered = false ) const
inlineoverridenoexceptinherited
+ Here is the caller graph for this function:

◆ flush()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual bool dx::stream::stream< device_t, circular_t, super_stream_t >::flush ( )
inlinevirtualnoexceptinherited

◆ free()

template<typename device_t , typename circular_t = dx::circular>
void dx::stream::shared::stream< device_t, circular_t >::free ( )
inlineoverrideprotectedvirtualnoexcept

◆ halt()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
void dx::stream::stream< device_t, circular_t, super_stream_t >::halt ( )
inlineoverrideprotectednoexceptinherited
+ Here is the caller graph for this function:

◆ info()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
void dx::stream::stream< device_t, circular_t, super_stream_t >::info ( std::ostream< device_t, circular_t, super_stream_t > & os)
inlineoverridenoexceptinherited

◆ initialize() [1/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual void dx::stream::stream< device_t, circular_t, super_stream_t >::initialize ( )
inlinevirtualinherited
+ Here is the call graph for this function:

◆ initialize() [2/2]

void dx::shared::event::initialize ( const std::string & name)
inlineinherited

◆ latency()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual uint32_t dx::stream::stream< device_t, circular_t, super_stream_t >::latency ( )
inlinevirtualnoexceptinherited

◆ launch()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
void dx::stream::stream< device_t, circular_t, super_stream_t >::launch ( )
inlineoverrideinherited

◆ operator circular_t *()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
dx::stream::stream< device_t, circular_t, super_stream_t >::operator circular_t * ( ) const
inlinenoexceptinherited

◆ operator->()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
circular_t * dx::stream::stream< device_t, circular_t, super_stream_t >::operator-> ( ) const
inlinenoexceptinherited

◆ reset()

void dx::shared::event::reset ( )
inlineinherited

◆ samplerate() [1/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual uint32_t dx::stream::stream< device_t, circular_t, super_stream_t >::samplerate ( )
inlinevirtualinherited

provisional sample rate handler: needs to move into clock class

Todo
reference dedicated stream::clock class

Reimplemented in dx::usb::stream::pipe< device_t, circular_t >, and dx::usb::stream::pipe< device< desc_t, pipe > >.

◆ samplerate() [2/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual uint32_t dx::stream::stream< device_t, circular_t, super_stream_t >::samplerate ( uint32_t samplerate)
inlinevirtualinherited

◆ signal()

void dx::shared::event::signal ( )
inlineinherited

◆ start()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
bool dx::stream::stream< device_t, circular_t, super_stream_t >::start ( uint64_t frame,
unsigned int starting = 1 )
inlineoverrideinherited
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ status()

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual os_result dx::stream::stream< device_t, circular_t, super_stream_t >::status ( )
inlinevirtualnoexceptinherited

◆ submit() [1/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual uint8_t dx::stream::stream< device_t, circular_t, super_stream_t >::submit ( dx::stream< device_t, circular_t, super_stream_t >::encoder::index::type type,
unsigned int index ) const
inlinevirtualinherited

◆ submit() [2/2]

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
virtual bool dx::stream::stream< device_t, circular_t, super_stream_t >::submit ( dx::stream< device_t, circular_t, super_stream_t >::encoder::index::type type,
unsigned int index,
uint8_t value )
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

◆ cache

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
struct dx::stream::stream::cache dx::stream::stream< device_t, circular_t, super_stream_t >::cache
inherited

◆ circular

template<typename device_t , typename circular_t = dx::circular>
dx::shared::memory<circular_t> dx::stream::shared::stream< device_t, circular_t >::circular

◆ id

template<typename device_t , typename circular_t = dx::circular, typename super_stream_t = dx::stream::control<dx::stream::object<device_t>>>
const decltype(device_t::desc::stream::desc::target.idx()) dx::stream::stream< device_t, circular_t, super_stream_t >::id
inherited

◆ [struct]

struct { ... } dx::stream::shared::stream< device_t, circular_t >::shared

◆ uid

template<typename device_t , typename circular_t = dx::circular>
std::string dx::stream::shared::stream< device_t, circular_t >::uid
protected

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

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Mar 11 2025

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.