Prepared slot facade. More...
#include <voice_runtime_facade.hpp>
Public Types | |
| using | Owner = InstrumentVoiceAllocator |
Public Member Functions | |
| VoiceRuntimeFacade (Owner &owner) noexcept | |
| Owner & | owner () noexcept |
| const Owner & | owner () const noexcept |
| std::uint32_t | voice_count () const noexcept |
| std::uint32_t | active_voice_count () const noexcept |
| std::uint32_t | allocated_voice_count () const noexcept |
| bool | set_steal_policy (VoiceStealPolicy policy) noexcept |
| VoiceStealPolicy | steal_policy () const noexcept |
| void | set_termination_fade_frames (std::uint32_t frames) noexcept |
| AllocatedVoiceRuntimeTriggerResult | trigger (const InstrumentVoiceTrigger &trigger, std::span< VoiceTermination > terminations, std::span< VoiceModulationBuffer > modulation) noexcept |
| bool | release_voice (std::uint32_t voice_index) noexcept |
| std::uint32_t | release_note (int note, std::uint32_t sample_id=kInvalidSampleId) noexcept |
| bool | finish_voice (std::uint32_t voice_index, std::span< VoiceModulationBuffer > modulation) noexcept |
| std::span< const InstrumentVoice > | voices () const noexcept |
| VoiceSumResult | mix (std::span< const VoiceSumInput > inputs, BufferView< float > destination, std::uint64_t frames, const VoiceSumOptions &options={}) const noexcept |
| VoiceRuntimeFacadeStatus | reset (std::span< VoiceModulationBuffer > modulation) noexcept |
Prepared slot facade.
The trigger overload requires exactly one prepared modulation buffer and one termination-record slot per allocator voice. The spans are borrowed only for the call. Successful choke/steal records remain untouched, while terminated and newly allocated slot buffers are reset so stale per-voice lanes cannot leak across voice identities.
| using pulp::audio::VoiceRuntimeFacade< InstrumentVoiceAllocator >::Owner = InstrumentVoiceAllocator |
|
inlineexplicitnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |