14 std::shared_ptr<Kakshya::DynamicSoundStream> capture_stream,
15 uint32_t source_channel)
16 : m_file_container(
std::move(file_container))
17 , m_capture_stream(
std::move(capture_stream))
18 , m_source_channel(source_channel)
38 : m_chain(
std::move(chain))
45 m_chain->process_non_owning(buffer);
53 m_chain->attach_to_buffer(buffer);
63 std::shared_ptr<Kakshya::SoundFileContainer> file_container,
64 uint32_t source_channel)
65 :
AudioBuffer(channel_id, Config::get_buffer_size())
66 , m_file_container(
std::move(file_container))
75 m_chain = std::make_shared<FileToStreamChain>(
uint32_t m_channel_id
Audio channel identifier for this buffer.
virtual void set_default_processor(std::shared_ptr< BufferProcessor > processor) override
Sets the default audio transformation processor for this buffer.
Concrete audio implementation of the Buffer interface for double-precision audio data.
bool add_processor(const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer, std::string *rejection_reason=nullptr)
Adds a processor to the transformation pipeline for a specific buffer.
std::shared_ptr< FileBridgeProcessor > m_processor
std::shared_ptr< Kakshya::SoundFileContainer > m_file_container
void setup_chain_and_processor()
std::shared_ptr< Kakshya::DynamicSoundStream > m_capture_stream
std::shared_ptr< FileToStreamChain > m_chain
FileBridgeBuffer(uint32_t channel_id, std::shared_ptr< Kakshya::SoundFileContainer > file_container, uint32_t source_channel=0)
std::shared_ptr< Buffer > m_attached_buffer
std::shared_ptr< FileToStreamChain > m_chain
void on_attach(std::shared_ptr< Buffer > buffer) override
Called when this processor is attached to a buffer.
void on_detach(std::shared_ptr< Buffer >) override
Called when this processor is detached from a buffer.
FileBridgeProcessor(std::shared_ptr< FileToStreamChain > chain)
void processing_function(std::shared_ptr< Buffer > buffer) override
The core processing function that must be implemented by derived classes.
std::shared_ptr< StreamWriteProcessor > m_stream_writer
std::shared_ptr< ContainerToBufferAdapter > m_container_adapter
uint32_t m_source_channel
void attach_to_buffer(std::shared_ptr< Buffer > buffer)
FileToStreamChain(std::shared_ptr< Kakshya::SoundFileContainer > file_container, std::shared_ptr< Kakshya::DynamicSoundStream > capture_stream, uint32_t source_channel=0)
std::shared_ptr< Kakshya::DynamicSoundStream > m_capture_stream
std::shared_ptr< Kakshya::SoundFileContainer > m_file_container
uint32_t get_sample_rate()
Gets the sample rate from the default engine.