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) noexcept=delete | |
Cannot copy because Modifiers & Consumers cannot be shared nor cloned. | |
Pipeline & | operator= (Pipeline const &other) noexcept=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. | |
bool | run () noexcept |
Synchronously runs the pipeline (if supported by the provider). | |
bool | start () noexcept |
Asynchronously starts the pipeline (if supported by the provider). | |
bool | pause () noexcept |
Attempts to pause an already started pipeline. | |
bool | resume () noexcept |
Attempts to resume a paused pipeline. | |
bool | stop () noexcept |
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 | lastError () const -> std::string |
Produces a string formatted from the last generated ExceptionStack. | |
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 |
|
deletenoexcept |
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.
|
noexcept |
|
noexcept |
|
noexcept |
Attempts to pause an already started pipeline.
|
noexcept |
Attempts to resume a paused pipeline.
|
noexcept |
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 Pipeline::lastError | ( | ) | const -> std::string |
Produces a string formatted from the last generated ExceptionStack.
This is akin to calling Vsdk::printExceptionStack()
with default parameters
auto 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
.