dxd - dynax driver framework 2.2.0d91
cross platform open source driver development framework
|
#include <dx_usb_stream_pipe.h>
Classes | |
struct | cache |
struct | isoc |
Public Types | |
typedef struct device_t::desc::stream | desc |
Public Member Functions | |
template<unsigned int channels, typename channel_t > | |
stream & | attach (channel_t **io[2], uint64_t channel_map[(channels+63)/64]) |
void | exception (const class exception &exception, bool filtered=false) const noexcept override |
virtual void | initialize () |
void | launch () override |
operator circular_t * () const noexcept | |
circular_t * | operator-> () const noexcept |
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(). | |
Public Attributes | |
const decltype(device_t::desc::stream::desc::target.idx()) | id |
Protected Member Functions | |
__dx_catchall (this->started=0;std::cerr<< exception<< std::endl;,) public | |
creates this->circular streaming backing store and frame buffers | |
virtual void | alloc (size_t size) |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
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) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
catch (const std::exception &__std_exception) | |
dx_catchall_handler (this,) ~pipe() noexcept override | |
float | encoder (dx::stream::encoder::index::type type, unsigned int index) const override |
bool | encoder (dx::stream::encoder::index::type type, unsigned int index, float value) override |
void | exception (const dx::exception &exception, bool filtered=false) const noexcept override |
bool | flush () noexcept override |
void | halt () noexcept override |
void | info (std::ostream &os) noexcept override try |
void | initialize (uint32_t packet_size, uint32_t micro_frames) |
void | initialize (uint32_t samplerate, uint32_t line_size, uint32_t micro_frames, bool implicit_feedback) |
uint32_t | latency () noexcept override |
void | received (os_result status, size_t size) override try |
void | received (os_result status, size_t size, int64_t timestamp, usb::isoc::frame *frame) override try |
async isoc read callback | |
uint32_t | samplerate () override try |
provisional sample rate handler: needs to move into clock class | |
uint32_t | samplerate (uint32_t samplerate) override try |
bool | start (uint64_t frame, unsigned int starting=1) override try |
void | thread () noexcept try |
data driven streaming out / observer watchdog thread | |
void | transmitted (os_result status, size_t size) override try |
async write callback | |
void | transmitted (os_result status, size_t size, int64_t timestamp, usb::isoc::frame *) override try |
async isoc write callback | |
Protected Attributes | ||
struct { | ||
uint32_t ahead | ||
volatile uint32_t completion | ||
os_result status | ||
bytes ahead in streaming buffer due to pre-scheduled async requests More... | ||
uint32_t submit | ||
} | async | |
struct dx::usb::stream::pipe::cache | cache | |
circular_t * | circular {} | |
struct dx::usb::stream::pipe::isoc | isoc | |
struct { | ||
struct { | ||
unsigned int ticks | ||
struct { | ||
unsigned int count | ||
} transaction | ||
} cycle | ||
} | sync | |
struct dx::usb::audio::isoc::cycle::tick * | tick = nullptr | |
Friends | |
class | pause |
|
inherited |
|
inlineprotected |
creates this->circular streaming backing store and frame buffers
generates isoc cycle metrics from sample rate,
requests buffers to fit at least 3x max iosize with isoc cycle size granularity
update max frame size
|
inlineprotectedvirtualinherited |
|
inlineinherited |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtual |
Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.
|
inlineoverrideprotectedvirtual |
Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.
|
inlineoverridenoexceptinherited |
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectedvirtualnoexcept |
Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.
|
inlineoverrideprotectednoexcept |
|
inlineoverrideprotectednoexcept |
|
inlinevirtualinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverrideprotectedvirtualnoexcept |
Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.
|
inlineoverrideinherited |
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inlineoverrideprotected |
|
inlineoverrideprotected |
async isoc read callback
|
inlineoverrideprotectedvirtual |
provisional sample rate handler: needs to move into clock class
Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.
|
inlineoverrideprotectedvirtual |
Reimplemented from dx::stream::stream< device_t, circular_t, super_stream_t >.
|
inlineoverrideprotected |
estimate upcoming timestamp
scheduling all but one isoc requests at least 1 sequence ahead; aligned to whole cycles,
|
inlinevirtualinherited |
|
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().
|
inlineprotectednoexcept |
data driven streaming out / observer watchdog thread
|
inlineoverrideprotected |
async write callback
generates timestamp
|
inlineoverrideprotected |
async isoc write callback
|
friend |
uint32_t dx::usb::stream::pipe< device_t, circular_t >::ahead |
struct { ... } dx::usb::stream::pipe< device_t, circular_t >::async |
|
protected |
|
protectedinherited |
volatile uint32_t dx::usb::stream::pipe< device_t, circular_t >::completion |
unsigned int dx::usb::stream::pipe< device_t, circular_t >::count |
struct { ... } dx::usb::stream::pipe< device_t, circular_t >::cycle |
|
inherited |
|
protected |
os_result dx::usb::stream::pipe< device_t, circular_t >::status |
bytes ahead in streaming buffer due to pre-scheduled async requests
streaming status for observer thread
uint32_t dx::usb::stream::pipe< device_t, circular_t >::submit |
struct { ... } dx::usb::stream::pipe< device_t, circular_t >::sync |
|
inherited |
unsigned int dx::usb::stream::pipe< device_t, circular_t >::ticks |
struct { ... } dx::usb::stream::pipe< device_t, circular_t >::transaction |
(c) copyright 2009 dynamic acoustics e.U. | generated on Tue Mar 11 2025 |