MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
SoundFileBridge.cpp
Go to the documentation of this file.
1#include "SoundFileBridge.hpp"
2
4
8
11
12namespace MayaFlux::Buffers {
13
15 const std::shared_ptr<Kakshya::SoundFileContainer>& file_container,
16 uint32_t source_channel)
17 : SoundContainerBuffer(channel_id, s_preferred_buffer_size, std::dynamic_pointer_cast<Kakshya::StreamContainer>(file_container), source_channel)
18{
19}
20
22{
23 m_capture_stream = std::make_shared<Kakshya::DynamicSoundStream>(
24 static_cast<uint32_t>(s_registered_sample_rate),
25 static_cast<uint32_t>(get_container()->get_structure().get_channel_count()));
26
27 m_stream_writer = std::make_shared<SoundStreamWriter>(m_capture_stream);
28
29 auto chain = get_processing_chain();
30 if (!chain) {
31 chain = std::make_shared<BufferProcessingChain>();
33 }
34 chain->set_preferred_token(token);
35
36 chain->add_postprocessor(m_stream_writer, shared_from_this());
37
39}
40
41} // namespace MayaFlux::Buffers
void enforce_default_processing(bool should_process) override
Controls whether the audio buffer should use default processing.
void set_processing_chain(const std::shared_ptr< BufferProcessingChain > &chain, bool force=false) override
Sets the audio transformation chain for this buffer.
std::shared_ptr< BufferProcessingChain > get_processing_chain() override
Gets the audio transformation chain attached to this buffer.
std::shared_ptr< Kakshya::StreamContainer > get_container() const
Get the backing StreamContainer.
AudioBuffer implementation backed by a StreamContainer.
std::shared_ptr< SoundStreamWriter > m_stream_writer
void setup_processors(Buffers::ProcessingToken token) override
Setup the processing chain with automatic input/output.
std::shared_ptr< Kakshya::DynamicSoundStream > m_capture_stream
SoundFileBridge(uint32_t channel_id, const std::shared_ptr< Kakshya::SoundFileContainer > &file_container, uint32_t source_channel=0)
Construct a file-to-stream bridge.
static uint32_t s_preferred_buffer_size
Global default buffer size.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
static uint64_t s_registered_sample_rate
Global default sample rate.