Add all the boilerplate for the Vst3PluginBridge

And now that I also have an idea of what the communication model will
look like, this can server as a base for instantiating plugins.
This commit is contained in:
Robbert van der Helm
2020-12-02 22:41:06 +01:00
parent 6e5aa1c1c6
commit ff2807c939
9 changed files with 303 additions and 11 deletions
+9
View File
@@ -29,6 +29,9 @@
* sockets, and the call to `connect()` will then accept any incoming
* connections.
*
* TODO: I have no idea what the best approach here is yet, so this is very much
* subject to change
*
* @tparam Thread The thread implementation to use. On the Linux side this
* should be `std::jthread` and on the Wine side this should be `Win32Thread`.
*/
@@ -62,4 +65,10 @@ class Vst3Sockets : public Sockets {
// Manually close all sockets so we break out of any blocking operations
// that may still be active
}
// TODO: I still don't know if recursive callbacks are a thing in VST3. If
// not, then we should probably have two `AdHocSocketHandler`s per
// plugin instance (one for each direction, as with `dispatcher()` and
// `audioMaster()` in VST2). Using fewer probably also works, but we
// wouldn't want to have to spawn new sockets during audio processing.
};
+3
View File
@@ -32,6 +32,9 @@
*/
std::optional<std::string> opcode_to_string(bool is_dispatch, int opcode);
/**
* Provides VST2 specific logging functionality for debugging plugins.
*/
class Vst2Logger : public Logger {
public:
// The following functions are for logging specific events, they are only
+27
View File
@@ -0,0 +1,27 @@
// yabridge: a Wine VST bridge
// Copyright (C) 2020 Robbert van der Helm
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
#pragma once
#include "common.h"
/**
* Provides VST3-specific logging functionality for debugging plugins.
*/
class Vst3Logger : public Logger {
public:
// TODO: Logging interface for VST3 plugins
};