Add more todos for VST3 handling

This commit is contained in:
Robbert van der Helm
2020-12-05 02:34:47 +01:00
parent 27892d9e40
commit 930ebbf7d1
2 changed files with 30 additions and 7 deletions
+23 -7
View File
@@ -16,10 +16,10 @@
#include <public.sdk/source/main/pluginfactory.h>
#include <public.sdk/source/main/linuxmain.cpp>
#include "bridges/vst3.h"
#include <public.sdk/source/main/linuxmain.cpp>
using Steinberg::gPluginFactory;
// Because VST3 plugins consist of completely independent components that have
@@ -70,11 +70,27 @@ bool DeinitModule() {
* classes, and then recreate it here.
*/
SMTG_EXPORT_SYMBOL Steinberg::IPluginFactory* PLUGIN_API GetPluginFactory() {
// TODO: Check the VST3::Hosting module loading source to see if
// gPluginFactory is used directly by the host or not.
// TODO: We can do all of our allocations and things indie of
// `Vst3PluginBridge`, so this function should call some function on
// Vst3Bridge that does the initialization
// The host should have called `InitModule()` first
assert(bridge);
// TODO: Instead of using gPluginFactory we'll use a field in
// `Vst3PluginBridge`
// TODO: First thing we should do is query the factory on the Wine side and
// preset a copy of it to the host. The important bits there are that
// we use the same interface version as the one presented the plugin.
// TODO: We have two options for the implementation:
// 1. We can query the interface version, and then have three
// different implementations for the interface version.
// 2. We can implement version 3, but copy the iid from the plugin so
// it always uses the correct version.
// TODO: Remove, this is just for type checking
if (false) {
boost::asio::local::stream_protocol::socket* socket;
YaPluginFactory* object;
write_object(*socket, *object);
}
if (!gPluginFactory) {
// TODO: Here we want to:
// 1) Load the plugin on the Wine host
+7
View File
@@ -42,6 +42,13 @@ Vst3Bridge::Vst3Bridge(MainContext& main_context,
}
void Vst3Bridge::run() {
// TODO: Remove, this is just for type checking
if (false) {
boost::asio::local::stream_protocol::socket* socket;
YaPluginFactory* object;
write_object(*socket, *object);
}
// TODO: Handle events
// sockets.host_vst_control.receive_messages(
// std::nullopt, [&](ControlRequest request) -> ControlResponse {