mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Search for the group host when using plugin groups
This commit is contained in:
@@ -50,9 +50,10 @@ PluginBridge& get_bridge_instance(const AEffect& plugin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PluginBridge::PluginBridge(audioMasterCallback host_callback)
|
PluginBridge::PluginBridge(audioMasterCallback host_callback)
|
||||||
: vst_plugin_path(find_vst_plugin()),
|
: config(Configuration::load_for(get_this_file_location())),
|
||||||
|
vst_plugin_path(find_vst_plugin()),
|
||||||
vst_plugin_arch(find_vst_architecture(vst_plugin_path)),
|
vst_plugin_arch(find_vst_architecture(vst_plugin_path)),
|
||||||
vst_host_path(find_vst_host(vst_plugin_arch)),
|
vst_host_path(find_vst_host(vst_plugin_arch, config.group.has_value())),
|
||||||
// All the fields should be zero initialized because
|
// All the fields should be zero initialized because
|
||||||
// `Vst2PluginInstance::vstAudioMasterCallback` from Bitwig's plugin
|
// `Vst2PluginInstance::vstAudioMasterCallback` from Bitwig's plugin
|
||||||
// bridge will crash otherwise
|
// bridge will crash otherwise
|
||||||
@@ -68,7 +69,6 @@ PluginBridge::PluginBridge(audioMasterCallback host_callback)
|
|||||||
host_callback_function(host_callback),
|
host_callback_function(host_callback),
|
||||||
logger(Logger::create_from_environment(
|
logger(Logger::create_from_environment(
|
||||||
create_logger_prefix(socket_endpoint.path()))),
|
create_logger_prefix(socket_endpoint.path()))),
|
||||||
config(Configuration::load_for(get_this_file_location())),
|
|
||||||
wine_version(get_wine_version()),
|
wine_version(get_wine_version()),
|
||||||
wine_stdout(io_context),
|
wine_stdout(io_context),
|
||||||
wine_stderr(io_context) {
|
wine_stderr(io_context) {
|
||||||
|
|||||||
@@ -74,6 +74,14 @@ class PluginBridge {
|
|||||||
float get_parameter(AEffect* plugin, int index);
|
float get_parameter(AEffect* plugin, int index);
|
||||||
void set_parameter(AEffect* plugin, int index, float value);
|
void set_parameter(AEffect* plugin, int index, float value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The configuration for this instance of yabridge. Set based on the values
|
||||||
|
* from a `yabridge.toml`, if it exists.
|
||||||
|
*
|
||||||
|
* @see Configuration::load_for
|
||||||
|
*/
|
||||||
|
Configuration config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The path to the .dll being loaded in the Wine VST host.
|
* The path to the .dll being loaded in the Wine VST host.
|
||||||
*/
|
*/
|
||||||
@@ -198,14 +206,6 @@ class PluginBridge {
|
|||||||
*/
|
*/
|
||||||
Logger logger;
|
Logger logger;
|
||||||
|
|
||||||
/**
|
|
||||||
* The configuration for this instance of yabridge. Set based on the values
|
|
||||||
* from a `yabridge.toml`, if it exists.
|
|
||||||
*
|
|
||||||
* @see Configuration::load_for
|
|
||||||
*/
|
|
||||||
Configuration config;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The version of Wine currently in use. Used in the debug output on plugin
|
* The version of Wine currently in use. Used in the debug output on plugin
|
||||||
* startup.
|
* startup.
|
||||||
|
|||||||
@@ -111,11 +111,12 @@ PluginArchitecture find_vst_architecture(fs::path plugin_path) {
|
|||||||
throw std::runtime_error(error_msg.str());
|
throw std::runtime_error(error_msg.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
fs::path find_vst_host(PluginArchitecture plugin_arch) {
|
fs::path find_vst_host(PluginArchitecture plugin_arch, bool use_plugin_groups) {
|
||||||
// TODO: Take plugin group settings into account
|
auto host_name = use_plugin_groups ? yabridge_group_host_name
|
||||||
auto host_name = yabridge_individual_host_name;
|
: yabridge_individual_host_name;
|
||||||
if (plugin_arch == PluginArchitecture::vst_32) {
|
if (plugin_arch == PluginArchitecture::vst_32) {
|
||||||
host_name = yabridge_individual_host_name_32bit;
|
host_name = use_plugin_groups ? yabridge_group_host_name_32bit
|
||||||
|
: yabridge_individual_host_name_32bit;
|
||||||
}
|
}
|
||||||
|
|
||||||
fs::path host_path =
|
fs::path host_path =
|
||||||
|
|||||||
+4
-1
@@ -80,11 +80,14 @@ PluginArchitecture find_vst_architecture(boost::filesystem::path);
|
|||||||
*
|
*
|
||||||
* @param plugin_arch The architecture of the plugin, either 64-bit or 32-bit.
|
* @param plugin_arch The architecture of the plugin, either 64-bit or 32-bit.
|
||||||
* Used to determine which host application to use, if available.
|
* Used to determine which host application to use, if available.
|
||||||
|
* @param use_plugin_groups Whether the plugin is using plugin groups and we
|
||||||
|
* should be looking for the group host instead of the individual plugin host.
|
||||||
*
|
*
|
||||||
* @return The a path to the VST host, if found.
|
* @return The a path to the VST host, if found.
|
||||||
* @throw std::runtime_error If the Wine VST host could not be found.
|
* @throw std::runtime_error If the Wine VST host could not be found.
|
||||||
*/
|
*/
|
||||||
boost::filesystem::path find_vst_host(PluginArchitecture plugin_arch);
|
boost::filesystem::path find_vst_host(PluginArchitecture plugin_arch,
|
||||||
|
bool use_plugin_groups);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find the VST plugin .dll file that corresponds to this copy of
|
* Find the VST plugin .dll file that corresponds to this copy of
|
||||||
|
|||||||
Reference in New Issue
Block a user