diff --git a/src/common/serialization/vst3/context-menu-target.cpp b/src/common/serialization/vst3/context-menu-target.cpp index ab62509f..44bc83d2 100644 --- a/src/common/serialization/vst3/context-menu-target.cpp +++ b/src/common/serialization/vst3/context-menu-target.cpp @@ -18,11 +18,8 @@ YaContextMenuTarget::ConstructArgs::ConstructArgs( native_size_t owner_instance_id, - native_size_t context_menu_id, - int32 tag) - : owner_instance_id(owner_instance_id), - context_menu_id(context_menu_id), - tag(tag) {} + native_size_t context_menu_id) + : owner_instance_id(owner_instance_id), context_menu_id(context_menu_id) {} YaContextMenuTarget::YaContextMenuTarget(const ConstructArgs&& args) : arguments(std::move(args)){FUNKNOWN_CTOR} diff --git a/src/common/serialization/vst3/context-menu-target.h b/src/common/serialization/vst3/context-menu-target.h index 579f4ba5..a637f0ba 100644 --- a/src/common/serialization/vst3/context-menu-target.h +++ b/src/common/serialization/vst3/context-menu-target.h @@ -47,21 +47,17 @@ class YaContextMenuTarget : public Steinberg::Vst::IContextMenuTarget { * context menu belongs to. * @param context_menu_id The unique ID of the context menu requested by * `owwner_instance_id`. - * @param tag The tag of the menu item this target belongs to. */ ConstructArgs(native_size_t owner_instance_id, - native_size_t context_menu_id, - int32 tag); + native_size_t context_menu_id); native_size_t owner_instance_id; native_size_t context_menu_id; - int32 tag; template void serialize(S& s) { s.value8b(owner_instance_id); s.value8b(context_menu_id); - s.value4b(tag); } }; @@ -75,6 +71,27 @@ class YaContextMenuTarget : public Steinberg::Vst::IContextMenuTarget { DECLARE_FUNKNOWN_METHODS + /* + * Message to pass through a call to + * `IContextMenuTarget::executeMenuItem(tag)` to the proxied object provided + * by the plugin. + */ + struct ExecuteMenuItem { + using Response = UniversalTResult; + + native_size_t owner_instance_id; + native_size_t context_menu_id; + + int32 tag; + + template + void serialize(S& s) { + s.value8b(owner_instance_id); + s.value8b(context_menu_id); + s.value4b(tag); + } + }; + virtual tresult PLUGIN_API executeMenuItem(int32 tag) override = 0; protected: