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
+19
View File
@@ -858,6 +858,25 @@ void Vst3Bridge::handle_win32_events() {
}
}
void Vst3Bridge::register_context_menu(Vst3ContextMenuProxy& context_menu) {
std::lock_guard lock(object_instances[context_menu.owner_instance_id()]
.registered_context_menus_mutex);
object_instances[context_menu.owner_instance_id()]
.registered_context_menus.emplace(
context_menu.context_menu_id(),
std::ref<Vst3ContextMenuProxy>(context_menu));
}
void Vst3Bridge::unregister_context_menu(size_t object_instance_id,
size_t context_menu_id) {
std::lock_guard lock(
object_instances[object_instance_id].registered_context_menus_mutex);
object_instances[object_instance_id].registered_context_menus.erase(
context_menu_id);
}
size_t Vst3Bridge::generate_instance_id() {
return current_instance_id.fetch_add(1);
}