MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ create_audio_buffer()

template<typename BufferType , typename... Args>
std::shared_ptr< BufferType > MayaFlux::Buffers::BufferManager::create_audio_buffer ( ProcessingToken  token,
uint32_t  channel,
Args &&...  args 
)
inline

Creates a specialized audio buffer and adds it to the specified token/channel.

Template Parameters
BufferTypeType of buffer to create (must be compatible with token)
ArgsConstructor argument types
Parameters
tokenProcessing domain
channelChannel index
argsConstructor arguments
Returns
Shared pointer to the created buffer

Definition at line 259 of file BufferManager.hpp.

260 {
261 auto& unit = m_unit_manager->ensure_and_get_audio_unit(token, channel);
262 auto buffer = std::make_shared<BufferType>(channel, unit.buffer_size, std::forward<Args>(args)...);
263
264 if (auto audio_buffer = std::dynamic_pointer_cast<AudioBuffer>(buffer)) {
265 add_buffer(audio_buffer, token, channel);
266 }
267
268 return buffer;
269 }
uint32_t channel
std::unique_ptr< TokenUnitManager > m_unit_manager
Token/unit storage and lifecycle.
void add_buffer(const std::shared_ptr< Buffer > &buffer, ProcessingToken token, uint32_t channel=0)
Adds a buffer to a token and channel.

References channel.