35 void on_attach(
const std::shared_ptr<Buffer>& buffer)
override;
36 void on_detach(
const std::shared_ptr<Buffer>& buffer)
override;
37 void processing_function(
const std::shared_ptr<Buffer>& buffer)
override;
38 [[nodiscard]]
bool is_compatible_with(
const std::shared_ptr<Buffer>& buffer)
const override;
62 void bind(
size_t index);
68 void unbind(
size_t index);
77 [[nodiscard]]
bool any_active()
const;
83 [[nodiscard]]
size_t slot_count()
const {
return m_slots.size(); }
89 void set_on_end(std::function<
void(
size_t)> cb) { m_on_end = std::move(cb); }
94 std::shared_ptr<Kakshya::CursorAccessProcessor>
proc;
99 uint32_t m_frames_per_block {};
101 void detach_slot(
size_t index);
Central computational transformation interface for continuous buffer processing.
void set_on_end(std::function< void(size_t)> cb)
Register a callback fired when a slot's one-shot playback ends.
std::vector< Slot > m_slots
const Kakshya::StreamSlice & slice(size_t index) const
size_t slot_count() const
Get the current number of slots.
~StreamSliceProcessor() override=default
StreamSliceProcessor()=default
Kakshya::StreamSlice & slice(size_t index)
std::function< void(size_t)> m_on_end
BufferProcessor that drives a pool of independent StreamSlices against DynamicSoundStream instances,...
std::shared_ptr< Kakshya::CursorAccessProcessor > proc
A bounded region of a DynamicSoundStream with associated playback parameters.