Implement IEditController::createView()

Even though `Vst3PlugViewProxyImpl` is still only stubs,
`IEditController` is now fully implemented.
This commit is contained in:
Robbert van der Helm
2020-12-19 21:06:46 +01:00
parent ae057a0acf
commit b7047a5281
2 changed files with 18 additions and 7 deletions
+2 -1
View File
@@ -19,7 +19,8 @@ incomplete list of things that still have to be done before this can be used:
- `IHostApplication::createComponent()`
- `IConnectionPoint::notify()`, and support for indirectly connecting
components through message passing proxies
- Finish implementing `IEditController{,2}`
- `IPlugView`
- `IEditController2`
- All other mandatory interfaces
- All other optional interfaces
- Fully implemented: see [this
+16 -6
View File
@@ -16,6 +16,8 @@
#include "plugin-proxy.h"
#include "plug-view-proxy.h"
Vst3PluginProxyImpl::Vst3PluginProxyImpl(Vst3PluginBridge& bridge,
Vst3PluginProxy::ConstructArgs&& args)
: Vst3PluginProxy(std::move(args)), bridge(bridge) {
@@ -355,27 +357,35 @@ tresult PLUGIN_API Vst3PluginProxyImpl::setComponentHandler(
Steinberg::IPlugView* PLUGIN_API
Vst3PluginProxyImpl::createView(Steinberg::FIDString name) {
// TODO: Implement
bridge.logger.log("TODO IEditController::createView()");
return nullptr;
CreateViewResponse response =
bridge.send_message(YaEditController::CreateView{
.instance_id = instance_id(), .name = name});
if (response.plug_view_args) {
// The host should manage this. Returning raw pointers feels scary.
return new Vst3PlugViewProxyImpl(bridge,
std::move(*response.plug_view_args));
} else {
return nullptr;
}
}
tresult PLUGIN_API
Vst3PluginProxyImpl::setKnobMode(Steinberg::Vst::KnobMode mode) {
// TODO: Implement
bridge.logger.log("TODO IEditController2::setKnobMode()");
bridge.logger.log("TODO: IEditController2::setKnobMode()");
return Steinberg::kNotImplemented;
}
tresult PLUGIN_API Vst3PluginProxyImpl::openHelp(TBool onlyCheck) {
// TODO: Implement
bridge.logger.log("TODO IEditController2::openHelp()");
bridge.logger.log("TODO: IEditController2::openHelp()");
return Steinberg::kNotImplemented;
}
tresult PLUGIN_API Vst3PluginProxyImpl::openAboutBox(TBool onlyCheck) {
// TODO: Implement
bridge.logger.log("TODO IEditController2::openAboutBox()");
bridge.logger.log("TODO: IEditController2::openAboutBox()");
return Steinberg::kNotImplemented;
}