Add stubs for IContextMenuTarget

This commit is contained in:
Robbert van der Helm
2021-01-06 18:58:51 +01:00
parent 5e1f75c20f
commit ead1008597
4 changed files with 86 additions and 0 deletions
+1
View File
@@ -137,6 +137,7 @@ vst3_plugin_sources = [
'src/common/plugins.cpp',
'src/common/utils.cpp',
'src/plugin/bridges/vst3.cpp',
'src/plugin/bridges/vst3-impls/context-menu-target.cpp',
'src/plugin/bridges/vst3-impls/plugin-factory.cpp',
'src/plugin/bridges/vst3-impls/plug-view-proxy.cpp',
'src/plugin/bridges/vst3-impls/plugin-proxy.cpp',
+1
View File
@@ -26,6 +26,7 @@
#include "vst3/component-handler-proxy.h"
#include "vst3/connection-point-proxy.h"
#include "vst3/context-menu-proxy.h"
#include "vst3/context-menu-target.h"
#include "vst3/host-context-proxy.h"
#include "vst3/plug-frame-proxy.h"
#include "vst3/plug-view-proxy.h"
@@ -0,0 +1,41 @@
// yabridge: a Wine VST bridge
// Copyright (C) 2020-2021 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/>.
#include "context-menu-target.h"
YaContextMenuTargetImpl::YaContextMenuTargetImpl(
Vst3PluginBridge& bridge,
native_size_t owner_instance_id,
native_size_t context_menu_id,
int32 tag)
: YaContextMenuTarget(owner_instance_id, context_menu_id, tag),
bridge(bridge) {}
tresult PLUGIN_API
YaContextMenuTargetImpl::queryInterface(const Steinberg::TUID _iid,
void** obj) {
const tresult result = YaContextMenuTarget::queryInterface(_iid, obj);
bridge.logger.log_query_interface("In IContextMenuTarget::queryInterface()",
result, Steinberg::FUID::fromTUID(_iid));
return result;
}
tresult PLUGIN_API YaContextMenuTargetImpl::executeMenuItem(int32 tag) {
// TODO: Implement
bridge.logger.log("TODO: IContextMenuTarget::executeMenuItem()");
return Steinberg::kNotImplemented;
}
@@ -0,0 +1,43 @@
// yabridge: a Wine VST bridge
// Copyright (C) 2020-2021 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 "../vst3.h"
class YaContextMenuTargetImpl : public YaContextMenuTarget {
public:
/**
* @override
*/
YaContextMenuTargetImpl(Vst3PluginBridge& bridge,
native_size_t owner_instance_id,
native_size_t context_menu_id,
int32 tag);
/**
* We'll override the query interface to log queries for interfaces we do
* not (yet) support.
*/
tresult PLUGIN_API queryInterface(const Steinberg::TUID _iid,
void** obj) override;
// From `IContextMenuTarget`
tresult PLUGIN_API executeMenuItem(int32 tag) override;
private:
Vst3PluginBridge& bridge;
};