13 std::cerr <<
"InputAudioBuffer: Attempted to write to null buffer" << std::endl;
18 auto& dst_data = buffer->get_data();
20 if (dst_data.size() != src_data.size()) {
21 dst_data.resize(src_data.size());
24 std::copy(src_data.begin(), src_data.end(), dst_data.begin());
30 std::cerr <<
"InputAudioBuffer: Attempted to register null listener" << std::endl;
35 processor->add_listener(buffer);
42 processor->remove_listener(buffer);
49 processor->clear_listeners();
55 auto input_buffer = std::dynamic_pointer_cast<InputAudioBuffer>(buffer);
63 input_buffer->write_to(listener);
69 auto input_buffer = std::dynamic_pointer_cast<InputAudioBuffer>(buffer);
71 throw std::runtime_error(
"InputAccessProcessor can only be attached to InputAudioBuffer");
77 return std::dynamic_pointer_cast<InputAudioBuffer>(buffer) !=
nullptr;
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.