diff --git a/source/jucePluginEditorLib/pluginEditor.cpp b/source/jucePluginEditorLib/pluginEditor.cpp index 8e698549..52967ede 100644 --- a/source/jucePluginEditorLib/pluginEditor.cpp +++ b/source/jucePluginEditorLib/pluginEditor.cpp @@ -564,7 +564,7 @@ namespace jucePluginEditorLib return res; const auto modulePath = synthLib::getModulePath(); - const auto publicDataPath = pluginLib::Tools::getPublicDataFolder(m_processor.getProperties().name); + const auto publicDataPath = pluginLib::Tools::getPublicDataFolder(m_processor.getProperties().vendor, m_processor.getProperties().name); const auto folder = synthLib::validatePath(m_skinFolder.find(modulePath) == 0 || m_skinFolder.find(publicDataPath) == 0 ? m_skinFolder : modulePath + m_skinFolder); // try to load from disk first diff --git a/source/jucePluginEditorLib/pluginEditorState.cpp b/source/jucePluginEditorLib/pluginEditorState.cpp index 9d2d60a3..67d8dcff 100644 --- a/source/jucePluginEditorLib/pluginEditorState.cpp +++ b/source/jucePluginEditorLib/pluginEditorState.cpp @@ -83,7 +83,7 @@ void PluginEditorState::getPerInstanceConfig(std::vector& _data) std::string PluginEditorState::getSkinFolder() const { - return synthLib::validatePath(pluginLib::Tools::getPublicDataFolder(m_processor.getProperties().name) + "skins/"); + return synthLib::validatePath(pluginLib::Tools::getPublicDataFolder(m_processor.getProperties().vendor, m_processor.getProperties().name) + "skins/"); } void PluginEditorState::loadSkin(const Skin& _skin) diff --git a/source/jucePluginLib/processor.cpp b/source/jucePluginLib/processor.cpp index 9bff9341..1cea8d0f 100644 --- a/source/jucePluginLib/processor.cpp +++ b/source/jucePluginLib/processor.cpp @@ -340,7 +340,7 @@ namespace pluginLib std::string Processor::getPublicRomFolder() const { - return Tools::getPublicDataFolder(getProperties().name) + "roms/"; + return Tools::getPublicDataFolder(getProperties().vendor, getProperties().name) + "roms/"; } void Processor::destroyController() diff --git a/source/jucePluginLib/processor.h b/source/jucePluginLib/processor.h index ca6da771..68211241 100644 --- a/source/jucePluginLib/processor.h +++ b/source/jucePluginLib/processor.h @@ -37,6 +37,7 @@ namespace pluginLib struct Properties { const std::string name; + const std::string vendor; const bool isSynth; const bool wantsMidiInput; const bool producesMidiOut; diff --git a/source/jucePluginLib/tools.cpp b/source/jucePluginLib/tools.cpp index a76c0ed6..6efbcff5 100644 --- a/source/jucePluginLib/tools.cpp +++ b/source/jucePluginLib/tools.cpp @@ -21,8 +21,8 @@ namespace pluginLib return host.contains("juce_vst3_helper") || host.contains("juce_lv2_helper"); } - std::string Tools::getPublicDataFolder(const std::string& _productName) + std::string Tools::getPublicDataFolder(const std::string& _vendorName, const std::string& _productName) { - return synthLib::validatePath(synthLib::getSpecialFolderPath(synthLib::SpecialFolderType::UserDocuments) + _productName + '/'); + return synthLib::validatePath(synthLib::getSpecialFolderPath(synthLib::SpecialFolderType::UserDocuments) + _vendorName + '/' + _productName + '/'); } } diff --git a/source/jucePluginLib/tools.h b/source/jucePluginLib/tools.h index c7613c7d..7c1bd074 100644 --- a/source/jucePluginLib/tools.h +++ b/source/jucePluginLib/tools.h @@ -9,6 +9,6 @@ namespace pluginLib public: static bool isHeadless(); - static std::string getPublicDataFolder(const std::string& _productName); + static std::string getPublicDataFolder(const std::string& _vendorName, const std::string& _productName); }; } diff --git a/source/mqJucePlugin/PluginProcessor.cpp b/source/mqJucePlugin/PluginProcessor.cpp index 0f4c2328..de2a44c9 100644 --- a/source/mqJucePlugin/PluginProcessor.cpp +++ b/source/mqJucePlugin/PluginProcessor.cpp @@ -44,7 +44,7 @@ namespace mqJucePlugin .withOutput("Out 2", juce::AudioChannelSet::stereo(), true) .withOutput("Out 3", juce::AudioChannelSet::stereo(), true) #endif - , getOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()}) + , getOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_Manufacturer, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()}) { getController(); const auto latencyBlocks = getConfig().getIntValue("latencyBlocks", static_cast(getPlugin().getLatencyBlocks())); diff --git a/source/nord/n2x/n2xJucePlugin/n2xPluginProcessor.cpp b/source/nord/n2x/n2xJucePlugin/n2xPluginProcessor.cpp index c2fdb981..910c289b 100644 --- a/source/nord/n2x/n2xJucePlugin/n2xPluginProcessor.cpp +++ b/source/nord/n2x/n2xJucePlugin/n2xPluginProcessor.cpp @@ -43,7 +43,7 @@ namespace n2xJucePlugin Processor(BusesProperties() .withOutput("Out AB", juce::AudioChannelSet::stereo(), true) .withOutput("Out CD", juce::AudioChannelSet::stereo(), true) - , getOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()}) + , getOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_Manufacturer, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()}) { getController(); const auto latencyBlocks = getConfig().getIntValue("latencyBlocks", static_cast(getPlugin().getLatencyBlocks())); diff --git a/source/osTIrusJucePlugin/OsTIrusProcessor.cpp b/source/osTIrusJucePlugin/OsTIrusProcessor.cpp index 1dafb75b..eec6dedc 100644 --- a/source/osTIrusJucePlugin/OsTIrusProcessor.cpp +++ b/source/osTIrusJucePlugin/OsTIrusProcessor.cpp @@ -40,7 +40,7 @@ OsTIrusProcessor::OsTIrusProcessor() : .withOutput("USB 2", juce::AudioChannelSet::stereo(), true) .withOutput("USB 3", juce::AudioChannelSet::stereo(), true) #endif - , ::getConfigOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()} + , ::getConfigOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_Manufacturer, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()} , virusLib::DeviceModel::TI2) { postConstruct(virusLib::ROMLoader::findROMs(virusLib::DeviceModel::TI2, virusLib::DeviceModel::Snow)); diff --git a/source/osirusJucePlugin/OsirusProcessor.cpp b/source/osirusJucePlugin/OsirusProcessor.cpp index 675fe5a7..eb01cba8 100644 --- a/source/osirusJucePlugin/OsirusProcessor.cpp +++ b/source/osirusJucePlugin/OsirusProcessor.cpp @@ -37,7 +37,7 @@ OsirusProcessor::OsirusProcessor() : .withOutput("Out 2", juce::AudioChannelSet::stereo(), true) .withOutput("Out 3", juce::AudioChannelSet::stereo(), true) #endif - , ::getConfigOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()} + , ::getConfigOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_Manufacturer, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()} , virusLib::DeviceModel::ABC) { postConstruct(virusLib::ROMLoader::findROMs(virusLib::DeviceModel::ABC)); diff --git a/source/xtJucePlugin/PluginProcessor.cpp b/source/xtJucePlugin/PluginProcessor.cpp index f02ff1c6..25e8de09 100644 --- a/source/xtJucePlugin/PluginProcessor.cpp +++ b/source/xtJucePlugin/PluginProcessor.cpp @@ -43,7 +43,7 @@ namespace xtJucePlugin #if JucePlugin_IsSynth .withOutput("Out 2", juce::AudioChannelSet::stereo(), true) #endif - , getOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()}) + , getOptions(), pluginLib::Processor::Properties{JucePlugin_Name, JucePlugin_Manufacturer, JucePlugin_IsSynth, JucePlugin_WantsMidiInput, JucePlugin_ProducesMidiOutput, JucePlugin_IsMidiEffect, JucePlugin_Lv2Uri, getBinaryData()}) { getController(); const auto latencyBlocks = getConfig().getIntValue("latencyBlocks", static_cast(getPlugin().getLatencyBlocks()));