3#include <pluginterfaces/gui/iplugview.h>
21 auto vSizer = std::make_unique<wxBoxSizer>(wxVERTICAL);
22 auto controlsRoot =
safenew wxWindow(parent, wxID_ANY);
25 vSizer->Add(controlsRoot);
31 extra.GetDurationFormat(),
39 auto hSizer = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
40 hSizer->Add(
safenew wxStaticText(parent, wxID_ANY,
_(
"Duration:")));
43 vSizer->AddSpacer(10);
44 vSizer->Add(hSizer.release());
46 parent->SetMinSize(vSizer->CalcMin());
47 parent->SetSizer(vSizer.release());
59 [
this](Steinberg::Vst::ParamID
id, Steinberg::Vst::ParamValue value) {
60 Publish({
static_cast<size_t>(
id),
static_cast<float>(value) });
67 mParent->PushEventHandler(
this);
82 bool hasChanges{
false};
99 parent->SetMinSize(wxDefaultSize);
108 static const auto platformType =
114# error "Platform not supported"
117 view->setFrame(plugFrame);
118 if(view->attached(parent->GetHandle(), platformType) != kResultOk)
122 ViewRect initialSize;
123 if(view->getSize(&initialSize) == kResultOk)
124 plugFrame->init(view.get(), &initialSize);
static Settings & settings()
Base class for many of the effects in Audacity.
virtual EffectType GetType() const =0
Type determines how it behaves.
void ModifySettings(Function &&function)
Do a correct read-modify-write of settings.
virtual const EffectSettings & Get()=0
virtual void Flush()=0
Make the last Set changes "persistent" in underlying storage.
Interface for transferring values from a panel of effect controls.
EffectSettingsAccess & mAccess
void SetName(const TranslatableString &name)
CallbackReturn Publish(const EffectSettingChanged &message)
Send a message to connected callbacks.
static VST3ParametersWindow * Setup(wxWindow &parent, Steinberg::Vst::IEditController &editController, Steinberg::Vst::IComponentHandler &componentHandler)
Creates VST3ParametersWindow inside parent.
bool UpdateUI() override
Update appearance of the panel for changes in settings.
VST3UIValidator(wxWindow *parent, VST3Wrapper &wrapper, EffectBase &effect, EffectSettingsAccess &access, bool useNativeUI)
bool IsGraphicalUI() override
~VST3UIValidator() override
Steinberg::IPtr< Steinberg::IPlugFrame > mPlugFrame
Steinberg::IPtr< Steinberg::IPlugView > mPlugView
NumericTextCtrl * mDuration
VST3ParametersWindow * mPlainUI
void OnIdle(wxIdleEvent &)
bool ValidateUI() override
Get settings data from the panel; may make error dialogs and return false.
bool TryLoadNativeUI(wxWindow *parent)
void BeginParameterEdit(EffectSettingsAccess &access)
Steinberg::IPtr< Steinberg::Vst::IEditController > mEditController
Steinberg::IPtr< Steinberg::Vst::IComponentHandler > mComponentHandler
void FetchSettings(EffectSettings &)
Fetch state from settings object, may change internal runtime data.
std::function< void(Steinberg::Vst::ParamID, Steinberg::Vst::ParamValue)> ParamChangedHandler
bool IsActive() const noexcept
void StoreSettings(EffectSettings &) const
Saves current state inside settings object, clears all runtime data.
Steinberg::Vst::ProcessSetup mSetup
void FlushParameters(EffectSettings &settings, bool *hasChanges=nullptr)
Dispatches window resize events from VST PlugView to the wxWindow.
Wrapper for GtkSocket object, which provides X window mapping via XEmbed protocol.
Externalized state of a plug-in.
EffectSettingsExtra extra
Options & AutoPos(bool enable)