one client's attachment to a stream: the pin desc it was made from, the channels it takes of that stream's ring, and its own share of the stream's start count. Several pins - several clients - share one dx::stream::stream, which the device keeps by weak reference: the first pin of a stream creates it, the last one to go releases it, and neither stops a transport the others still run.
More...
|
| template<typename channel_t> |
| pin & | attach (channel_t **io[2], const std::vector< bool > &channel_map) |
| | the client's own planar channel buffers, one pair per channel the map selects - the engine moves them against the ring in the pin's own format
|
| void | conclude () noexcept |
| dx::stream::channel::control * | control () const |
| | kernel streaming: what the driver hands its clients to follow the buffer switch
|
| virtual float | encoder (dx::stream::encoder::index::type type, int index) const |
| virtual bool | encoder (dx::stream::encoder::index::type type, int index, float value) |
| void | exception (const dx::exception &exception, bool filtered=false) const noexcept override |
| | notification exception handler
|
| void | info (std::ostream &os) noexcept override |
| | log object class information
|
| virtual | operator circular_t * () const noexcept |
| virtual circular_t * | operator-> () const noexcept |
| | pin (device_t &device, const typename device_t::desc::stream::desc &stream_desc, const typename device_t::desc::stream::pin::desc &pin_desc) |
| | pin (device_t &device, unsigned int stream_idx=0, unsigned int pin_idx=0) |
| bool | try_conclude () noexcept |
| | atomically conclude()s if currently launched; returns whether this call did it
|
| bool | try_launch () |
| | atomically launch()es if not already launched; returns whether this call did it. A launch() that throws is concluded before the exception leaves: the object never claims a launch it did not finish
|
| | ~pin () override |
template<typename
device_t, typename _circular_t = dx::circular>
class dx::stream::pin< device_t, _circular_t >
one client's attachment to a stream: the pin desc it was made from, the channels it takes of that stream's ring, and its own share of the stream's start count. Several pins - several clients - share one dx::stream::stream, which the device keeps by weak reference: the first pin of a stream creates it, the last one to go releases it, and neither stops a transport the others still run.
| virtual void dx::object::launch |
( |
| ) |
|
|
inlineprotectedvirtualinherited |
launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.
Reimplemented in dx::asio::client::driver< device_t, devices >, dx::asio::service::device< super_device_t >, dx::coreaudio::driver< device_t >, dx::coremidi::driver< device_t >, dx::map::driver< _device_t, holder_t >, dx::map::driver< device<> >, dx::map::driver< device_t >, dx::map::driver< device_t, dx::apartment< device_t > >, dx::midi::services::driver< device_t >, dx::proxy::driver< device_t >, dx::proxy::driver< device_t >, dx::service::app, 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 > > >, 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 > > >, dx::service::client::driver< device_t >, dx::service::device< preference_t >, dx::service::device< dx::preference >, dx::service::device< super_device_t >, dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >, 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 > > >, 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 > > >, dx::virtuel::driver< device_t >, dx::virtuel::driver< device<> >, and dx::wasapi::client::driver< device_t >.