a streaming device: its desc, the settings the desc defaults, the streams of that desc grouped by dx::stream::group and the clock those groups run on. Every bus device derives from this one and supplies what its transport does differently - the settings' servers (a rate written to the hardware), the group's tick, the streams' rings. The settings themselves are promoted preferences here, so a wish survives the device and is asked of the transport once the device is there.
More...
|
| virtual desc_t::configuration | align (const typename desc_t::configuration &value, const typename desc_t::configuration &) |
| | a configuration the device can run: every stream's index within its configurations, one past them the stream off - a bus device narrows it to what its bus carries, the streams value leaves as current has them standing
|
| template<typename channel_t> |
| void | attach (channel_t **io[dx::stream::direction::directions][2], const std::vector< bool >(&channel_map)[2]) |
| virtual uint64_t | budget (const typename desc_t::configuration &) |
| | the periodic bus time the configuration takes, in ns - a bus device with a periodic budget states it
|
| void | conclude () noexcept override |
| | ends every group's session before the device's resources go; the start counts stay with their holders
|
| | device (decltype(super::driver)&driver, const decltype(super::id)&id, const desc_t &desc, const std::pair< std::string, std::string > &identity={}) |
| | device (decltype(super::driver)&driver, const decltype(super::id)&id, decltype(super::preference)&&preferencepreference, const desc_t &desc, const std::pair< std::string, std::string > &identity={}) |
| | device (decltype(super::driver)&driver, const decltype(super::id)&id, desc_t &&desc, const std::pair< std::string, std::string > &identity={}) |
| | a desc temporary moves into the desc base, and wins over control's forwarding constructor, which binds an rvalue just as well
|
| virtual bool | hw_clock () const noexcept |
| virtual void | hw_clock (abstract::event *hw_clock, uint32_t iosize) |
| | registers a consumer with the device's clock: it is signalled every iosize samples of the clock's own advance. A bus whose driver owns the clock hands the registration on instead
|
| std::shared_ptr< stream_t > | open (const typename _desc_t::stream::desc &desc) |
| | the desc's stream: the registered one, else created, registered and launched
|
| const struct desc_t::stream::config & | operator() (const struct desc_t::stream &stream) |
| | the stream configuration the device runs the stream in: the stream is one of the desc's
|
| group_t & | operator[] (const typename _desc_t::stream::desc &stream) |
| | the stream's group, created on first use
|
| template<typename f_t> |
| void | setting (dx::stream::setting settingsetting, uint32_t index, f_t &&f) |
| | the setting a host keeps for its clients handed to f as its promoted: the transport settings the sync reference's group's, the source the one of the stream whose target index is index
|
| virtual std::pair< source_t &, bool > | source (const struct _desc_t::stream &stream) |
| | the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources
|
| void | wake () override |
template<typename _super_device_t, typename _desc_t, typename _stream_t, typename _group_t = void>
class dx::stream::device< _super_device_t, _desc_t, _stream_t, _group_t >
a streaming device: its desc, the settings the desc defaults, the streams of that desc grouped by dx::stream::group and the clock those groups run on. Every bus device derives from this one and supplies what its transport does differently - the settings' servers (a rate written to the hardware), the group's tick, the streams' rings. The settings themselves are promoted preferences here, so a wish survives the device and is asked of the transport once the device is there.
template<typename _super_device_t, typename _desc_t, typename _stream_t, typename _group_t = void>
| virtual desc_t::configuration dx::stream::device< _super_device_t, _desc_t, _stream_t, _group_t >::align |
( |
const typename desc_t::configuration & | value, |
|
|
const typename desc_t::configuration & | ) |
|
inlinevirtual |
a configuration the device can run: every stream's index within its configurations, one past them the stream off - a bus device narrows it to what its bus carries, the streams value leaves as current has them standing
Reimplemented in dx::usb::stream::_device< desc_t, preference_t, stream_t, group_t >, dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > >, and dx::usb::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >.
template<typename _super_device_t, typename _desc_t, typename _stream_t, typename _group_t = void>
| virtual uint64_t dx::stream::device< _super_device_t, _desc_t, _stream_t, _group_t >::budget |
( |
const typename desc_t::configuration & | | ) |
|
|
inlinevirtual |
the periodic bus time the configuration takes, in ns - a bus device with a periodic budget states it
Reimplemented in dx::usb::stream::_device< desc_t, preference_t, stream_t, group_t >, dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > >, and dx::usb::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >.
template<typename _super_device_t, typename _desc_t, typename _stream_t, typename _group_t = void>
registers a consumer with the device's clock: it is signalled every iosize samples of the clock's own advance. A bus whose driver owns the clock hands the registration on instead
Reimplemented in dx::coreaudio::pod::device< desc_t, preference_t, stream_t, group_t >, dx::proxy::stream::_device< desc_t, preference_t, stream_t, group_t, super_device_t >, dx::proxy::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t, super_device_t > >, group_t< device< desc_t, preference_t, stream_t, group_t, super_device_t > >, super_device_t >, dx::proxy::stream::_device< dx::stream::desc<>, dx::preference, stream< device< dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device< dx::preference > > >, group< device< dx::stream::desc<>, dx::preference, stream, group, dx::proxy::device< dx::preference > > >, dx::proxy::device< dx::preference > >, dx::service::client::_device< desc_t, preference_t, stream_t, group_t >, dx::service::client::_device< desc, preference, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > >, and dx::service::client::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >.
template<typename _super_device_t, typename _desc_t, typename _stream_t, typename _group_t = void>
| virtual std::pair< source_t &, bool > dx::stream::device< _super_device_t, _desc_t, _stream_t, _group_t >::source |
( |
const struct _desc_t::stream & | stream | ) |
|
|
inlinevirtual |
the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources
Reimplemented in dx::usb::stream::_device< desc_t, preference_t, stream_t, group_t >, dx::usb::stream::_device< desc_t, dx::preference, pipe< device< desc_t, dx::preference, pipe, group > >, group< device< desc_t, dx::preference, pipe, group > > >, and dx::usb::stream::_device< desc_t, preference_t, stream_t< device< desc_t, preference_t, stream_t, group_t > >, group_t< device< desc_t, preference_t, stream_t, group_t > > >.