15#pragma GCC diagnostic ignored "-Wparentheses"
16#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
17#elif defined(__clang__)
18#pragma clang diagnostic ignored "-Wparentheses"
19#pragma clang diagnostic ignored "-Wdeprecated-declarations"
35#include <wx/evtloop.h>
45#include <wx/msw/wrapwin.h>
51 wxDialog &dialog,
EffectEditor *pEditor,
bool forceModal)
const
55 static_cast<LV2Editor*
>(pEditor)->mDialog = &dialog;
59 dialog.SetMinSize(dialog.GetSize());
61 dialog.SetMaxSize(dialog.GetSize());
66 return dialog.ShowModal();
76 auto parent =
S.GetParent();
78 auto &myInstance =
dynamic_cast<LV2Instance &
>(instance);
97 auto result = std::make_unique<LV2Editor>(*
this,
GetType(),
mPlug,
103 const bool doX42Hack = vendor ==
"Robin Gareus";
104 result->mUI.mJustLeakMemory = doX42Hack;
108 result->mUseGUI = result->BuildFancy(move(pWrapper),
settings);
109 if (!result->mUseGUI && !result->BuildPlain(access))
128#ifdef __WX_EVTLOOP_BUSY_WAITING__
129 wxEventLoop::SetBusyWaiting(
false);
153static LV2EffectsModule::Factory::SubstituteInUnique<LV2Effect>
scope;
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
std::optional< std::unique_ptr< EffectSettingsAccess::Message > > OptionalMessage
static LV2EffectsModule::Factory::SubstituteInUnique< LV2Effect > scope
Defines the module to handle the LV2 effect protocol.
static Settings & settings()
const TranslatableString & Msgid() const
bool SupportsRealtime() const
Performs effect computation.
Hold values to send to effect output meters.
Factory of instances of an effect.
virtual const EffectSettings & Get()=0
VendorSymbol GetVendor() const override
EffectType GetType() const override
Type determines how it behaves.
const LV2FeaturesList mFeatures
void ExportPresets(const EffectPlugin &plugin, const EffectSettings &settings) const override
virtual std::unique_ptr< EffectEditor > MakeEditor(ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const final
Will never be called.
std::unique_ptr< EffectEditor > PopulateUI(const EffectPlugin &plugin, ShuttleGui &S, EffectInstance &instance, EffectSettingsAccess &access, const EffectOutputs *pOutputs) const override
Adds controls to a panel that is given as the parent window of S
int ShowClientInterface(const EffectPlugin &plugin, wxWindow &parent, wxDialog &dialog, EffectEditor *pEditor, bool forceModal) const override
void ShowOptions(const EffectPlugin &plugin) const override
OptionalMessage ImportPresets(const EffectPlugin &plugin, EffectSettings &settings) const override
bool CloseUI() const override
std::unique_ptr< LV2Wrapper > MakeWrapper(const EffectSettings &settings, double sampleRate, EffectOutputs *pOutputs)
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
wxString Translation() const
LV2_API bool GetUseGUI(const EffectDefinitionInterface &effect, bool &useGUI)
Externalized state of a plug-in.