16 "InputAudioBuffer: Attempted to write to null buffer");
21 auto& dst_data = buffer->get_data();
23 if (dst_data.size() != src_data.size()) {
24 dst_data.resize(src_data.size());
27 std::ranges::copy(src_data, dst_data.begin());
34 "InputAudioBuffer: Attempted to register null listener");
39 processor->add_listener(buffer);
46 processor->remove_listener(buffer);
53 processor->clear_listeners();
59 auto input_buffer = std::dynamic_pointer_cast<InputAudioBuffer>(buffer);
67 input_buffer->write_to(listener);
73 auto input_buffer = std::dynamic_pointer_cast<InputAudioBuffer>(buffer);
75 throw std::runtime_error(
"InputAccessProcessor can only be attached to InputAudioBuffer");
81 return std::dynamic_pointer_cast<InputAudioBuffer>(buffer) !=
nullptr;
#define MF_RT_ERROR(comp, ctx,...)
virtual std::vector< double > & get_data()
Gets mutable access to the buffer's underlying audio data.
virtual std::shared_ptr< BufferProcessor > get_default_processor() const override
Gets the current default audio transformation processor.
Concrete audio implementation of the Buffer interface for double-precision audio data.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.