|
| | __dx_catchall (this->started=0;std::cerr<< dx::exception(&exception, exception.error, __PRETTY_FUNCTION__, __FILE__, __LINE__)<< std::endl;,) public |
| | creates this->circular streaming backing store and frame buffers
|
| |
| | __dx_catchall (this->started=0;std::cerr<< dx::exception(&exception, exception.error, __PRETTY_FUNCTION__, __FILE__, __LINE__)<< std::endl;,) void pump_in() noexcept try |
| | data driven streaming in
|
| |
| | __dx_catchall (this->started=0;std::cerr<< dx::exception(&exception, exception.error, __PRETTY_FUNCTION__, __FILE__, __LINE__)<< std::endl;,) void pump_out() noexcept try |
| | data driven streaming out
|
| |
| void | alloc (size_t=0, bool free=true) override |
| |
| | catch (...) |
| |
| | catch (...) |
| |
| | catch (...) |
| |
| | catch (...) |
| |
| | catch (...) |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | 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) |
| |
| | dx_catchall_handler (this,) ~pipe() 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 |
| |
| void | free () noexcept override |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END void | halt () noexcept override |
| |
| void | info (std::ostream &os) noexcept override try |
| |
| void | initialize () override |
| |
| 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) |
| |
| void | received (os_result status, size_t size) override try |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END void | received (os_result status, size_t size, int64_t timestamp, usb::isoc::frame *frame) override try |
| | async isoc read callback
|
| |
| bool | start (uint64_t frame, unsigned int starting=1) override try |
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END void | transmitted (os_result status, size_t size) override try |
| | async write callback
|
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END void | transmitted (os_result status, size_t size, int64_t timestamp, usb::isoc::frame *) override try |
| | async isoc write callback
|
| |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END void | watchdog () noexcept try |
| | observer watchdog thread: for clock driven endpoints
|
| |
template<typename device_t , typename circular_t = dx::circular, template< typename ... > typename stream_t = dx::stream::stream>
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
- Todo
- reset max frame size when pipe is closed
template<typename device_t , typename circular_t = dx::circular, template< typename ... > typename stream_t = dx::stream::stream>
estimate upcoming timestamp
scheduling all but one isoc requests at least 1 sequence ahead; aligned to whole cycles,