47 SCORE_SERIALIZE_FRIENDS
48 friend class vst3::CreateVSTControl;
51 PROCESS_METADATA_IMPL(
Model)
56 template <
typename Impl>
57 Model(Impl& vis, QObject* parent)
58 : ProcessModel{vis, parent}
65 QString effect()
const noexcept override;
66 QString prettyName()
const noexcept override;
67 bool hasExternalUI()
const noexcept;
73 ossia::hash_map<Steinberg::Vst::ParamID, ControlInlet*> controls;
76 void removeControl(Steinberg::Vst::ParamID fxnum);
78 void addControlFromEditor(Steinberg::Vst::ParamID
id);
79 void on_addControl(
const Steinberg::Vst::ParameterInfo& v);
80 void on_addControl_impl(
ControlInlet* inl,
const Steinberg::Vst::ParameterInfo*);
81 void initControl(
ControlInlet* inl,
const Steinberg::Vst::ParameterInfo*);
83 void reloadControls();
84 Steinberg::tresult restartComponent(int32_t flags);
89 void loadProgram(
int index);
97 std::vector<Process::Preset> builtinPresets()
const noexcept override;
102 void mapAllControls(
int numParams);
105 std::optional<Steinberg::Vst::ParameterInfo> programChangeParameter()
const;
107 void addProgramChangeControl();
108 QByteArray readProcessorState()
const;
109 QByteArray readControllerState()
const;
115 QByteArray m_savedProcessorState;
116 QByteArray m_savedControllerState;
118 ossia::hash_map<Steinberg::Vst::ParamID, int32_t> m_paramToIndex;