Route audio from a ProducerModule to ConsumerModule, with ModifierModule in the middle. More...
#include <Pipeline.hpp>
Public Types | |
using | ModifierIterator = details::Iterator< decltype(_modifiers)> |
using | ConsumerIterator = details::Iterator< decltype(_consumers)> |
Public Member Functions | |
Pipeline ()=default | |
Pipeline (Pipeline const &other)=delete | |
Cannot copy because Modifiers & Consumers cannot be shared nor cloned. | |
Pipeline & | operator= (Pipeline const &other)=delete |
Cannot copy because Modifiers & Consumers cannot be shared nor cloned. | |
Pipeline (Pipeline &&other) | |
Pipeline & | operator= (Pipeline &&) |
~Pipeline () | |
Stops the pipeline if running and unsubscribe from the producer. | |
void | run () |
Synchronously runs the pipeline (if supported by the provider). | |
void | start () |
Asynchronously runs the pipeline (if supported by the provider). | |
void | stop () |
Stops a pipeline that's been start()-ed. | |
void | setProducer (ProducerPtr prod) |
Sets a new producer that's already been constructed outside. | |
template<class T , typename... Args> | |
auto | setProducer (Args &&... args) -> std::shared_ptr< T > |
Sets a new producer by constructing it with args . | |
template<class T , typename... Args> | |
auto | pushBackModifier (Args &&... args) -> ModifierIterator |
template<class T , typename... Args> | |
auto | pushFrontModifier (Args &&... args) -> ModifierIterator |
template<class T , typename... Args> | |
auto | pushBackConsumer (Args &&... args) -> ConsumerIterator |
template<class T , typename... Args> | |
auto | pushFrontConsumer (Args &&... args) -> ConsumerIterator |
template<class T , typename... Args> | |
auto | insertModifier (ModifierIterator pos, Args &&... args) -> ModifierIterator |
template<class T , typename... Args> | |
auto | insertConsumer (ConsumerIterator pos, Args &&... args) -> ConsumerIterator |
auto | pushBackModifier (ModifierPtr ptr) -> ModifierIterator |
auto | pushBackConsumer (ConsumerPtr ptr) -> ConsumerIterator |
auto | pushFrontModifier (ModifierPtr ptr) -> ModifierIterator |
auto | pushFrontConsumer (ConsumerPtr ptr) -> ConsumerIterator |
auto | insertModifier (ModifierIterator pos, ModifierPtr ptr) -> ModifierIterator |
auto | insertConsumer (ConsumerIterator pos, ConsumerPtr ptr) -> ConsumerIterator |
void | eraseModifier (ModifierIterator it) |
void | eraseConsumer (ConsumerIterator it) |
auto | producer () const -> ProducerPtr |
Gets this pipeline's producer in a generic form. | |
template<typename T > | |
auto | producer () const -> std::shared_ptr< T > |
Gets this pipeline's producer statically casted to T . | |
Route audio from a ProducerModule to ConsumerModule, with ModifierModule in the middle.
using Vsdk::Audio::Pipeline::ModifierIterator = details::Iterator<decltype(_modifiers)> |
using Vsdk::Audio::Pipeline::ConsumerIterator = details::Iterator<decltype(_consumers)> |
|
default |
|
delete |
Cannot copy because Modifiers & Consumers cannot be shared nor cloned.
Pipeline::Pipeline | ( | Pipeline && | other | ) |
Pipeline::~Pipeline | ( | ) |
Stops the pipeline if running and unsubscribe from the producer.
Cannot copy because Modifiers & Consumers cannot be shared nor cloned.
void Pipeline::run | ( | ) |
Synchronously runs the pipeline (if supported by the provider).
Effectively calls:
Vsdk::Exception | if:
|
void Pipeline::start | ( | ) |
void Pipeline::stop | ( | ) |
void Pipeline::setProducer | ( | ProducerPtr | prod | ) |
Sets a new producer that's already been constructed outside.
auto Vsdk::Audio::Pipeline::setProducer | ( | Args &&... | args | ) | -> std::shared_ptr<T> |
Sets a new producer by constructing it with args
.
auto Vsdk::Audio::Pipeline::pushBackModifier | ( | Args &&... | args | ) | -> ModifierIterator |
auto Vsdk::Audio::Pipeline::pushFrontModifier | ( | Args &&... | args | ) | -> ModifierIterator |
auto Vsdk::Audio::Pipeline::pushBackConsumer | ( | Args &&... | args | ) | -> ConsumerIterator |
auto Vsdk::Audio::Pipeline::pushFrontConsumer | ( | Args &&... | args | ) | -> ConsumerIterator |
auto Vsdk::Audio::Pipeline::insertModifier | ( | ModifierIterator | pos, |
Args &&... | args | ||
) | -> ModifierIterator |
auto Vsdk::Audio::Pipeline::insertConsumer | ( | ConsumerIterator | pos, |
Args &&... | args | ||
) | -> ConsumerIterator |
auto Pipeline::pushBackModifier | ( | ModifierPtr | ptr | ) | -> ModifierIterator |
auto Pipeline::pushBackConsumer | ( | ConsumerPtr | ptr | ) | -> ConsumerIterator |
auto Pipeline::pushFrontModifier | ( | ModifierPtr | ptr | ) | -> ModifierIterator |
auto Pipeline::pushFrontConsumer | ( | ConsumerPtr | ptr | ) | -> ConsumerIterator |
auto Pipeline::insertModifier | ( | ModifierIterator | pos, |
ModifierPtr | ptr | ||
) | -> ModifierIterator |
auto Pipeline::insertConsumer | ( | ConsumerIterator | pos, |
ConsumerPtr | ptr | ||
) | -> ConsumerIterator |
void Pipeline::eraseModifier | ( | ModifierIterator | it | ) |
void Pipeline::eraseConsumer | ( | ConsumerIterator | it | ) |
auto Vsdk::Audio::Pipeline::producer | ( | ) | const -> ProducerPtr |
Gets this pipeline's producer in a generic form.
auto Vsdk::Audio::Pipeline::producer | ( | ) | const -> std::shared_ptr<T> |
Gets this pipeline's producer statically casted to T
.