11#include <AudioUnitSDK/MusicDeviceBase.h>
70 AudioUnitParameterID* outParameterList,
71 UInt32& outNumParameters)
override;
73 AudioUnitParameterID inParameterID,
74 AudioUnitParameterInfo& outParameterInfo)
override;
76 AudioUnitParameterID inParameterID,
77 CFArrayRef* outStrings)
override;
82 OSStatus
GetParameter(AudioUnitParameterID inID, AudioUnitScope inScope,
83 AudioUnitElement inElement, Float32& outValue)
override;
84 OSStatus
SetParameter(AudioUnitParameterID inID, AudioUnitScope inScope,
85 AudioUnitElement inElement, Float32 inValue,
86 UInt32 inBufferOffsetInFrames)
override;
89 AudioUnitElement inElement, UInt32& outDataSize,
90 bool& outWritable)
override;
91 OSStatus
GetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,
92 AudioUnitElement inElement,
void* outData)
override;
93 OSStatus
SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,
94 AudioUnitElement inElement,
const void* inData,
95 UInt32 inDataSize)
override;
101 AudioUnitElement element)
override;
104 OSStatus
Render(AudioUnitRenderActionFlags& ioActionFlags,
105 const AudioTimeStamp& inTimeStamp,
106 UInt32 inNumberFrames) override;
124 return factory_presets_;
127 OSStatus
SaveState(CFPropertyListRef* outData)
override;
143 UInt8 inData1, UInt8 inData2,
144 UInt32 inStartFrame)
override;
149 OSStatus
HandleSysEx(
const UInt8* inData, UInt32 inLength)
override;
156 bool bypass_engaged() const noexcept;
162 state::StateStore store_;
179 runtime::AliveToken owner_alive_;
204 ParameterDisplayNamePublisher parameter_display_names_;
217 static constexpr std::size_t kMaxSysexPerBlock = 64;
218 static constexpr std::size_t kMaxSysexPayloadBytes = 512;
228 std::array<uint8_t, kMaxSysexPayloadBytes> bytes{};
231 runtime::SpscQueue<SysexChunk, 32> sysex_in_queue_;
236 MidiOutputCallbackPublisher midi_output_callback_;
238 MidiOutputPacketBuilder midi_out_packet_builder_;
243 detail::PlayheadSnapshot playhead_prev_{};
247 OfflineRenderProperty offline_render_;
kAudioUnitProperty_RenderContextObserver, the v2 form of AUv3's renderContextObserver.
Definition au_v2_common.hpp:492
Collection of timestamped MIDI events within a single audio buffer period.
Definition buffer.hpp:31
Definition spsc_queue.hpp:23
RAII handle for a registered parameter-change listener.
Definition listener_token.hpp:47
Definition parameter_event_queue.hpp:82
Per-host accommodation flags consumed by format adapters.
Definition generated_event_source.hpp:33
SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the ...
Definition audio_device_manager.hpp:48
uint32_t ParamID
Unique parameter identifier, stable across plugin versions.
Definition parameter.hpp:55