Rename architecture related functions and structs

This commit is contained in:
Robbert van der Helm
2020-11-30 21:29:57 +01:00
parent 7fc7a51a46
commit 47baef3107
7 changed files with 26 additions and 27 deletions
+3 -3
View File
@@ -5,7 +5,7 @@
namespace fs = boost::filesystem; namespace fs = boost::filesystem;
PluginArchitecture find_vst_architecture(fs::path plugin_path) { LibArchitecture find_dll_architecture(fs::path plugin_path) {
std::ifstream file(plugin_path, std::ifstream::binary | std::ifstream::in); std::ifstream file(plugin_path, std::ifstream::binary | std::ifstream::in);
// The linker will place the offset where the PE signature is placed at the // The linker will place the offset where the PE signature is placed at the
@@ -34,11 +34,11 @@ PluginArchitecture find_vst_architecture(fs::path plugin_path) {
// https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#machine-types // https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#machine-types
switch (machine_type) { switch (machine_type) {
case 0x014c: // IMAGE_FILE_MACHINE_I386 case 0x014c: // IMAGE_FILE_MACHINE_I386
return PluginArchitecture::vst_32; return LibArchitecture::dll_32;
break; break;
case 0x8664: // IMAGE_FILE_MACHINE_AMD64 case 0x8664: // IMAGE_FILE_MACHINE_AMD64
case 0x0000: // IMAGE_FILE_MACHINE_UNKNOWN case 0x0000: // IMAGE_FILE_MACHINE_UNKNOWN
return PluginArchitecture::vst_64; return LibArchitecture::dll_64;
break; break;
} }
+6 -7
View File
@@ -24,21 +24,20 @@
// Utilities and tags for plugin types and architectures // Utilities and tags for plugin types and architectures
/** /**
* A tag to differentiate between 32 and 64-bit plugins, used to determine which * A tag to differentiate between 32 and 64-bit `.dll` files, used to determine
* host application to use. * which host application to use.
*/ */
enum class PluginArchitecture { vst_32, vst_64 }; enum class LibArchitecture { dll_32, dll_64 };
/** /**
* Determine the architecture of a VST plugin (or rather, a .dll file) based on * Determine the architecture of a `.dll` file based on the file header.
* it's header values.
* *
* See https://docs.microsoft.com/en-us/windows/win32/debug/pe-format for more * See https://docs.microsoft.com/en-us/windows/win32/debug/pe-format for more
* information on the PE32 format. * information on the PE32 format.
* *
* @param plugin_path The path to the .dll file we're going to check. * @param path The path to the .dll file we're going to check.
* *
* @return The detected architecture. * @return The detected architecture.
* @throw std::runtime_error If the file is not a .dll file. * @throw std::runtime_error If the file is not a .dll file.
*/ */
PluginArchitecture find_vst_architecture(boost::filesystem::path); LibArchitecture find_dll_architecture(boost::filesystem::path);
+1 -1
View File
@@ -656,7 +656,7 @@ void Vst2PluginBridge::log_init_message() {
} else { } else {
init_msg << "individually"; init_msg << "individually";
} }
if (vst_host->architecture() == PluginArchitecture::vst_32) { if (vst_host->architecture() == LibArchitecture::dll_32) {
init_msg << ", 32-bit"; init_msg << ", 32-bit";
} else { } else {
init_msg << ", 64-bit"; init_msg << ", 64-bit";
+4 -4
View File
@@ -89,7 +89,7 @@ IndividualHost::IndividualHost(boost::asio::io_context& io_context,
fs::path plugin_path, fs::path plugin_path,
const Sockets& sockets) const Sockets& sockets)
: HostProcess(io_context, logger), : HostProcess(io_context, logger),
plugin_arch(find_vst_architecture(plugin_path)), plugin_arch(find_dll_architecture(plugin_path)),
host_path(find_vst_host(plugin_arch, false)), host_path(find_vst_host(plugin_arch, false)),
host(launch_host(host_path, host(launch_host(host_path,
#ifdef WITH_WINEDBG #ifdef WITH_WINEDBG
@@ -114,7 +114,7 @@ IndividualHost::IndividualHost(boost::asio::io_context& io_context,
#endif #endif
} }
PluginArchitecture IndividualHost::architecture() { LibArchitecture IndividualHost::architecture() {
return plugin_arch; return plugin_arch;
} }
@@ -137,7 +137,7 @@ GroupHost::GroupHost(boost::asio::io_context& io_context,
Sockets& sockets, Sockets& sockets,
std::string group_name) std::string group_name)
: HostProcess(io_context, logger), : HostProcess(io_context, logger),
plugin_arch(find_vst_architecture(plugin_path)), plugin_arch(find_dll_architecture(plugin_path)),
host_path(find_vst_host(plugin_arch, true)), host_path(find_vst_host(plugin_arch, true)),
sockets(sockets) { sockets(sockets) {
#ifdef WITH_WINEDBG #ifdef WITH_WINEDBG
@@ -233,7 +233,7 @@ GroupHost::GroupHost(boost::asio::io_context& io_context,
} }
} }
PluginArchitecture GroupHost::architecture() { LibArchitecture GroupHost::architecture() {
return plugin_arch; return plugin_arch;
} }
+5 -5
View File
@@ -44,7 +44,7 @@ class HostProcess {
* Return the architecture of the plugin we are loading, i.e. whether it is * Return the architecture of the plugin we are loading, i.e. whether it is
* 32-bit or 64-bit. * 32-bit or 64-bit.
*/ */
virtual PluginArchitecture architecture() = 0; virtual LibArchitecture architecture() = 0;
/** /**
* Return the full path to the host application in use. The host application * Return the full path to the host application in use. The host application
@@ -130,13 +130,13 @@ class IndividualHost : public HostProcess {
boost::filesystem::path plugin_path, boost::filesystem::path plugin_path,
const Sockets& sockets); const Sockets& sockets);
PluginArchitecture architecture() override; LibArchitecture architecture() override;
boost::filesystem::path path() override; boost::filesystem::path path() override;
bool running() override; bool running() override;
void terminate() override; void terminate() override;
private: private:
PluginArchitecture plugin_arch; LibArchitecture plugin_arch;
boost::filesystem::path host_path; boost::filesystem::path host_path;
boost::process::child host; boost::process::child host;
}; };
@@ -173,13 +173,13 @@ class GroupHost : public HostProcess {
Sockets& socket_endpoint, Sockets& socket_endpoint,
std::string group_name); std::string group_name);
PluginArchitecture architecture() override; LibArchitecture architecture() override;
boost::filesystem::path path() override; boost::filesystem::path path() override;
bool running() override; bool running() override;
void terminate() override; void terminate() override;
private: private:
PluginArchitecture plugin_arch; LibArchitecture plugin_arch;
boost::filesystem::path host_path; boost::filesystem::path host_path;
/** /**
+5 -5
View File
@@ -54,10 +54,10 @@ std::optional<fs::path> find_wineprefix() {
return dosdevices_dir->parent_path(); return dosdevices_dir->parent_path();
} }
fs::path find_vst_host(PluginArchitecture plugin_arch, bool use_plugin_groups) { fs::path find_vst_host(LibArchitecture plugin_arch, bool use_plugin_groups) {
auto host_name = use_plugin_groups ? yabridge_group_host_name auto host_name = use_plugin_groups ? yabridge_group_host_name
: yabridge_individual_host_name; : yabridge_individual_host_name;
if (plugin_arch == PluginArchitecture::vst_32) { if (plugin_arch == LibArchitecture::dll_32) {
host_name = use_plugin_groups ? yabridge_group_host_name_32bit host_name = use_plugin_groups ? yabridge_group_host_name_32bit
: yabridge_individual_host_name_32bit; : yabridge_individual_host_name_32bit;
} }
@@ -110,17 +110,17 @@ fs::path find_vst_plugin() {
boost::filesystem::path generate_group_endpoint( boost::filesystem::path generate_group_endpoint(
const std::string& group_name, const std::string& group_name,
const boost::filesystem::path& wine_prefix, const boost::filesystem::path& wine_prefix,
const PluginArchitecture architecture) { const LibArchitecture architecture) {
std::ostringstream socket_name; std::ostringstream socket_name;
socket_name << "yabridge-group-" << group_name << "-" socket_name << "yabridge-group-" << group_name << "-"
<< std::to_string( << std::to_string(
std::hash<std::string>{}(wine_prefix.string())) std::hash<std::string>{}(wine_prefix.string()))
<< "-"; << "-";
switch (architecture) { switch (architecture) {
case PluginArchitecture::vst_32: case LibArchitecture::dll_32:
socket_name << "x32"; socket_name << "x32";
break; break;
case PluginArchitecture::vst_64: case LibArchitecture::dll_64:
socket_name << "x64"; socket_name << "x64";
break; break;
} }
+2 -2
View File
@@ -71,7 +71,7 @@ std::string create_logger_prefix(
* @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(LibArchitecture plugin_arch,
bool use_plugin_groups); bool use_plugin_groups);
/** /**
@@ -125,7 +125,7 @@ std::optional<boost::filesystem::path> find_wineprefix();
boost::filesystem::path generate_group_endpoint( boost::filesystem::path generate_group_endpoint(
const std::string& group_name, const std::string& group_name,
const boost::filesystem::path& wine_prefix, const boost::filesystem::path& wine_prefix,
const PluginArchitecture architecture); const LibArchitecture architecture);
/** /**
* Return the search path as defined in `$PATH`, with `~/.local/share/yabridge` * Return the search path as defined in `$PATH`, with `~/.local/share/yabridge`