14#ifndef __AUDACITY_AUDIO_UNIT_VALIDATOR__
15#define __AUDACITY_AUDIO_UNIT_VALIDATOR__
17#include <AudioToolbox/AudioUnitUtilities.h>
18#include <unordered_map>
29 static std::unique_ptr<EffectUIValidator>
Create(
31 const wxString &uiType,
46 void *inObject,
const AudioUnitEvent *inEvent,
47 UInt64 inEventHostTime, AudioUnitParameterValue inParameterValue);
49 AudioUnitParameterValue inParameterValue);
50 void OnIdle(wxIdleEvent &evt);
67 std::pair<AudioUnitParameterID, AudioUnitParameterValue>>
mToUpdate;
71 std::unordered_map<AudioUnitParameterID, AudioUnitParameterValue>
std::unique_ptr< T, AudioUnitCleaner< T, fn > > AudioUnitCleanup
RAII for cleaning up AU plugin state.
static Settings & settings()
bool FetchSettingsFromInstance(EffectSettings &settings)
bool IsGraphicalUI() override
static std::unique_ptr< EffectUIValidator > Create(EffectUIClientInterface &effect, ShuttleGui &S, const wxString &uiType, EffectInstance &instance, EffectSettingsAccess &access)
const EventListenerPtr mEventListenerRef
void EventListener(const AudioUnitEvent *inEvent, AudioUnitParameterValue inParameterValue)
AudioUnitValidator(CreateToken, EffectUIClientInterface &effect, EffectSettingsAccess &access, AudioUnitInstance &instance, AUControl *pControl, bool isGraphical)
void OnIdle(wxIdleEvent &evt)
AudioUnitCleanup< AUEventListenerRef, AUListenerDispose > EventListenerPtr
std::vector< std::pair< AudioUnitParameterID, AudioUnitParameterValue > > mToUpdate
EventListenerPtr MakeListener()
static void EventListenerCallback(void *inCallbackRefCon, void *inObject, const AudioUnitEvent *inEvent, UInt64 inEventHostTime, AudioUnitParameterValue inParameterValue)
bool StoreSettingsToInstance(const EffectSettings &settings)
AUControl *const mpControl
~AudioUnitValidator() override
bool ValidateUI() override
Get settings data from the panel; may make error dialogs and return false.
bool UpdateUI() override
Update appearance of the panel for changes in settings.
std::unordered_map< AudioUnitParameterID, AudioUnitParameterValue > mParameterValues
AudioUnitInstance & mInstance
Performs effect computation.
EffectUIClientInterface is an abstract base class to populate a UI and validate UI values....
Interface for transferring values from a panel of effect controls.
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Externalized state of a plug-in.