mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-15 21:15:51 +02:00
💥 Redo all higher order template functions
This does what we did for a few functions in the last few commits for every function. We now use either the `std::invocable` concept or our own `invocable_returning` concept wherever possible to make sure we pass function types to these template functions, since constraint errors are a lot more readable than template deduction errors. And instead of having to specify the return type as a template argument, we now just use `std::invoke_result_t<F>` instead. The VST3 message handling functions are still using the good old `typename F` since those are overloaded polymorphic functions. This was also a good moment to modify `AdHocSocketHandler::send()` to allow functions returning void (this got rid of an old fixme where we had to return some dummy value from a function instead of just not returning anything).
This commit is contained in:
@@ -219,7 +219,7 @@ Vst3PluginBridge::Vst3PluginBridge()
|
||||
// loop or else it will likely segfault at some point
|
||||
return plugin_proxies.at(request.owner_instance_id)
|
||||
.get()
|
||||
.last_created_plug_view->run_gui_task<tresult>([&]() {
|
||||
.last_created_plug_view->run_gui_task([&]() -> tresult {
|
||||
return plugin_proxies.at(request.owner_instance_id)
|
||||
.get()
|
||||
.context_menus.at(request.context_menu_id)
|
||||
@@ -285,7 +285,7 @@ Vst3PluginBridge::Vst3PluginBridge()
|
||||
|
||||
// REAPER requires this to be run from its provided event
|
||||
// loop or else it will likely segfault at some point
|
||||
return plug_view->run_gui_task<tresult>([&]() {
|
||||
return plug_view->run_gui_task([&]() -> tresult {
|
||||
return plug_view->plug_frame->resizeView(
|
||||
plug_view, &request.new_size);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user