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 260 of file BufferManager.hpp.

261 {
262 auto& unit = m_unit_manager->ensure_and_get_audio_unit(token, channel);
263 auto buffer = std::make_shared<BufferType>(channel, unit.buffer_size, std::forward<Args>(args)...);
264
265 if (auto audio_buffer = std::dynamic_pointer_cast<AudioBuffer>(buffer)) {
266 add_buffer(audio_buffer, token, channel);
267 }
268
269 return buffer;
270 }
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.