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.