Track registered context menus

So we can refer to them when the host executes a menu item later.
This commit is contained in:
Robbert van der Helm
2021-01-06 23:08:39 +01:00
parent 5dffba4584
commit 75284cea0b
3 changed files with 52 additions and 1 deletions
@@ -21,7 +21,9 @@
Vst3ContextMenuProxyImpl::Vst3ContextMenuProxyImpl(
Vst3Bridge& bridge,
Vst3ContextMenuProxy::ConstructArgs&& args)
: Vst3ContextMenuProxy(std::move(args)), bridge(bridge) {}
: Vst3ContextMenuProxy(std::move(args)), bridge(bridge) {
bridge.register_context_menu(*this);
}
Vst3ContextMenuProxyImpl::~Vst3ContextMenuProxyImpl() {
// Also drop the context menu smart pointer on plugin side when this gets
@@ -29,6 +31,7 @@ Vst3ContextMenuProxyImpl::~Vst3ContextMenuProxyImpl() {
bridge.send_message(
Vst3ContextMenuProxy::Destruct{.owner_instance_id = owner_instance_id(),
.context_menu_id = context_menu_id()});
bridge.unregister_context_menu(owner_instance_id(), context_menu_id());
}
tresult PLUGIN_API