Base class for Pipeline modules that aquire and dispatch audio buffers (like Producer::File)
More...
#include <Pipeline.hpp>
Base class for Pipeline modules that aquire and dispatch audio buffers (like Producer::File)
◆ Iterator
Iterator pointing to a subscriber of this producer.
◆ State
Enumerator |
---|
Closed | Ready to be open() -ed.
|
Opened | Ready to call run() or start()
|
Running | Inside of run()
|
Started | start() (or resume() ) has been called and work is in progress
|
Paused | pause() has been called
|
Idle | Either stop() has been called or audio production is over, new work can be launched.
|
◆ ProducerModule() [1/3]
ProducerModule::ProducerModule |
( |
| ) |
|
◆ ProducerModule() [2/3]
◆ ~ProducerModule()
ProducerModule::~ProducerModule |
( |
| ) |
|
|
pure virtual |
◆ ProducerModule() [3/3]
Vsdk::Audio::ProducerModule::ProducerModule |
( |
ProducerModule const & |
| ) |
|
|
delete |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ subscribeFirst()
auto ProducerModule::subscribeFirst |
( |
AudioCallback |
c | ) |
-> Iterator |
Subscribes as first in the list of audio buffer receivers for this producer.
◆ subscribeLast()
auto ProducerModule::subscribeLast |
( |
AudioCallback |
c | ) |
-> Iterator |
Subscribes as last in the list of audio buffer receivers for this producer.
◆ unsubscribe()
void ProducerModule::unsubscribe |
( |
Iterator |
it | ) |
|
|
noexcept |
Unsubscribes from this producer audio buffer dispatch list.
◆ lastError()
auto ProducerModule::lastError |
( |
| ) |
const -> std::string |
◆ state()
auto ProducerModule::state |
( |
| ) |
const -> State |
◆ isOpened()
bool ProducerModule::isOpened |
( |
| ) |
const |
◆ isRunning()
bool ProducerModule::isRunning |
( |
| ) |
const |
◆ isStarted()
bool ProducerModule::isStarted |
( |
| ) |
const |
◆ isPaused()
bool ProducerModule::isPaused |
( |
| ) |
const |
◆ isIdle()
bool ProducerModule::isIdle |
( |
| ) |
const |
◆ isClosed()
bool ProducerModule::isClosed |
( |
| ) |
const |
◆ open()
bool ProducerModule::open |
( |
| ) |
|
|
noexcept |
Attempts to open the underlying resource(s) of the producer.
- Note
-
Blocking call
-
lastError()
is reset at the beginning of this function
- Postcondition
state() == State::Opened
◆ run()
bool ProducerModule::run |
( |
| ) |
|
|
noexcept |
- Note
-
Blocking call, no asynchronous work should be performed
-
lastError()
is reset at the beginning of this function
- Warning
- Do not override if you do not support synchronous operations!
- Precondition
state() == State::Opened
- Postcondition
state() == State::Opened
◆ start()
bool ProducerModule::start |
( |
| ) |
|
|
noexcept |
- Note
-
Non-blocking call: producer might not be started right after this
-
lastError()
is reset at the beginning of this function
- Warning
- Do not override if you do not support async operations!
- Precondition
state() == State::Opened
◆ pause()
bool ProducerModule::pause |
( |
| ) |
|
|
noexcept |
Attempts to pause a started producer.
- Note
-
Non-blocking call: producer might not be paused right after this
-
lastError()
is reset at the beginning of this function
- Warning
- Do not override if you do not support pausing!
◆ resume()
bool ProducerModule::resume |
( |
| ) |
|
|
noexcept |
Attempts to resume a paused producer.
- Note
-
Non-blocking call: producer might not be resumed right after this
-
lastError()
is reset at the beginning of this function
- Warning
- Do not override if you do not support resuming!
◆ stop()
bool ProducerModule::stop |
( |
| ) |
|
|
noexcept |
Attempts to stop a started producer.
- Note
-
Non-blocking call: producer state might not be
Idle
after this
-
lastError()
is reset at the beginning of this function
- Warning
- Do not override if you do not support async operations!
◆ close()
bool ProducerModule::close |
( |
| ) |
|
|
noexcept |
- Note
- <lu> Blocking call: producer should wait for proper closing
lastError()
is reset at the beginning of this function
- Warning
-
Attempting to close a running producer will fail
-
Attempting to close a started producer will first try to close it </lu>
- Postcondition
state() == State::Closed
◆ openImpl()
void ProducerModule::openImpl |
( |
| ) |
|
|
protectedvirtual |
◆ runImpl()
void ProducerModule::runImpl |
( |
| ) |
|
|
protectedvirtual |
◆ startImpl()
void ProducerModule::startImpl |
( |
| ) |
|
|
protectedvirtual |
◆ pauseImpl()
void ProducerModule::pauseImpl |
( |
| ) |
|
|
protectedvirtual |
◆ resumeImpl()
void ProducerModule::resumeImpl |
( |
| ) |
|
|
protectedvirtual |
◆ stopImpl()
void ProducerModule::stopImpl |
( |
| ) |
|
|
protectedvirtual |
◆ closeImpl()
void ProducerModule::closeImpl |
( |
| ) |
|
|
protectedvirtual |
◆ dispatchBuffer()
void ProducerModule::dispatchBuffer |
( |
Buffer |
buffer, |
|
|
bool |
last |
|
) |
| |
|
protected |
◆ dispatchAudio()
template<typename T >
void Vsdk::Audio::ProducerModule::dispatchAudio |
( |
T && |
data, |
|
|
int |
sampleRate, |
|
|
int |
channelCount, |
|
|
bool |
isLast |
|
) |
| |
|
protected |
◆ _state
std::atomic<State> Vsdk::Audio::ProducerModule::_state |
|
protected |