gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

commit 501d7bf36b2ba725957b16d76cc35239ffb666d6
parent f962aa02d86de81f2ad84a772b24727c2148d64c
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Wed, 30 Oct 2024 23:10:00 +0100

forward Skin class to plugin editor instead of using json filename and folder separately

Diffstat:
Msource/jucePluginEditorLib/pluginEditor.cpp | 14++++++++++----
Msource/jucePluginEditorLib/pluginEditor.h | 7+++++--
Msource/jucePluginEditorLib/skin.h | 4++--
Msource/mqJucePlugin/PluginEditorState.cpp | 2+-
Msource/mqJucePlugin/mqEditor.cpp | 7+++----
Msource/mqJucePlugin/mqEditor.h | 2+-
Msource/nord/n2x/n2xJucePlugin/n2xEditor.cpp | 6+++---
Msource/nord/n2x/n2xJucePlugin/n2xEditor.h | 2+-
Msource/nord/n2x/n2xJucePlugin/n2xPluginEditorState.cpp | 2+-
Msource/virusJucePlugin/VirusEditor.cpp | 6+++---
Msource/virusJucePlugin/VirusEditor.h | 2+-
Msource/virusJucePlugin/VirusEditorState.cpp | 2+-
Msource/xtJucePlugin/PluginEditorState.cpp | 2+-
Msource/xtJucePlugin/xtEditor.cpp | 7+++----
Msource/xtJucePlugin/xtEditor.h | 2+-
15 files changed, 37 insertions(+), 30 deletions(-)

diff --git a/source/jucePluginEditorLib/pluginEditor.cpp b/source/jucePluginEditorLib/pluginEditor.cpp @@ -1,6 +1,7 @@ #include "pluginEditor.h" #include "pluginProcessor.h" +#include "skin.h" #include "jucePluginLib/clipboard.h" #include "jucePluginLib/parameterbinding.h" @@ -14,11 +15,11 @@ namespace jucePluginEditorLib { - Editor::Editor(Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder) + Editor::Editor(Processor& _processor, pluginLib::ParameterBinding& _binding, Skin _skin) : genericUI::Editor(static_cast<EditorInterface&>(*this)) , m_processor(_processor) , m_binding(_binding) - , m_skinFolder(std::move(_skinFolder)) + , m_skin(std::move(_skin)) , m_overlays(*this, _binding) { showDisclaimer(); @@ -30,6 +31,11 @@ namespace jucePluginEditorLib file.deleteFile(); } + void Editor::create() + { + genericUI::Editor::create(m_skin.jsonFilename); + } + const char* Editor::findResourceByFilename(const std::string& _filename, uint32_t& _size) const { const auto res = m_processor.findResource(_filename); @@ -544,7 +550,7 @@ namespace jucePluginEditorLib const char* Editor::getResourceByFilename(const std::string& _name, uint32_t& _dataSize) { - if(!m_skinFolder.empty()) + if(!m_skin.folder.empty()) { auto readFromCache = [this, &_name, &_dataSize]() { @@ -565,7 +571,7 @@ namespace jucePluginEditorLib const auto modulePath = synthLib::getModulePath(); 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); + const auto folder = synthLib::validatePath(m_skin.folder.find(modulePath) == 0 || m_skin.folder.find(publicDataPath) == 0 ? m_skin.folder : modulePath + m_skin.folder); // try to load from disk first FILE* hFile = fopen((folder + _name).c_str(), "rb"); diff --git a/source/jucePluginEditorLib/pluginEditor.h b/source/jucePluginEditorLib/pluginEditor.h @@ -2,6 +2,7 @@ #include "imagePool.h" #include "parameterOverlays.h" +#include "skin.h" #include "types.h" #include "juceUiLib/editor.h" @@ -37,13 +38,15 @@ namespace jucePluginEditorLib public: pluginLib::Event<Editor*, juce::MouseEvent*> onOpenMenu; - Editor(Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder); + Editor(Processor& _processor, pluginLib::ParameterBinding& _binding, Skin _skin); ~Editor() override; Editor(const Editor&) = delete; Editor(Editor&&) = delete; Editor& operator = (const Editor&) = delete; Editor& operator = (Editor&&) = delete; + + void create(); const char* findResourceByFilename(const std::string& _filename, uint32_t& _size) const; @@ -107,7 +110,7 @@ namespace jucePluginEditorLib Processor& m_processor; pluginLib::ParameterBinding& m_binding; - const std::string m_skinFolder; + const Skin m_skin; std::map<std::string, std::vector<char>> m_fileCache; diff --git a/source/jucePluginEditorLib/skin.h b/source/jucePluginEditorLib/skin.h @@ -6,9 +6,9 @@ namespace jucePluginEditorLib { struct Skin { - std::string displayName; + std::string displayName; // == folder name on disk if not embedded into binary std::string jsonFilename; - std::string folder; + std::string folder; // empty if skin is embedded into binary bool operator == (const Skin& _other) const { diff --git a/source/mqJucePlugin/PluginEditorState.cpp b/source/mqJucePlugin/PluginEditorState.cpp @@ -68,6 +68,6 @@ namespace mqJucePlugin jucePluginEditorLib::Editor* PluginEditorState::createEditor(const jucePluginEditorLib::Skin& _skin) { - return new mqJucePlugin::Editor(m_processor, m_parameterBinding, _skin.folder, _skin.jsonFilename); + return new mqJucePlugin::Editor(m_processor, m_parameterBinding, _skin); } } \ No newline at end of file diff --git a/source/mqJucePlugin/mqEditor.cpp b/source/mqJucePlugin/mqEditor.cpp @@ -1,6 +1,5 @@ #include "mqEditor.h" -#include "BinaryData.h" #include "PluginProcessor.h" #include "mqController.h" @@ -17,11 +16,11 @@ namespace mqJucePlugin { static constexpr uint32_t PlayModeListenerId = 1; - Editor::Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder, const std::string& _jsonFilename) - : jucePluginEditorLib::Editor(_processor, _binding, std::move(_skinFolder)) + Editor::Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin) + : jucePluginEditorLib::Editor(_processor, _binding, _skin) , m_controller(dynamic_cast<Controller&>(_processor.getController())) { - create(_jsonFilename); + create(); m_frontPanel.reset(new FrontPanel(*this, m_controller)); diff --git a/source/mqJucePlugin/mqEditor.h b/source/mqJucePlugin/mqEditor.h @@ -23,7 +23,7 @@ namespace mqJucePlugin class Editor final : public jucePluginEditorLib::Editor { public: - Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder, const std::string& _jsonFilename); + Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin); ~Editor() override; Editor(Editor&&) = delete; diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp b/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp @@ -24,12 +24,12 @@ namespace n2xJucePlugin { - Editor::Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder, const std::string& _jsonFilename) - : jucePluginEditorLib::Editor(_processor, _binding, std::move(_skinFolder)) + Editor::Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin) + : jucePluginEditorLib::Editor(_processor, _binding, _skin) , m_controller(dynamic_cast<Controller&>(_processor.getController())) , m_parameterBinding(_binding) { - create(_jsonFilename); + create(); addMouseListener(this, true); { diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.h b/source/nord/n2x/n2xJucePlugin/n2xEditor.h @@ -33,7 +33,7 @@ namespace n2xJucePlugin class Editor final : public jucePluginEditorLib::Editor { public: - Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder, const std::string& _jsonFilename); + Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin); ~Editor() override; Editor(Editor&&) = delete; diff --git a/source/nord/n2x/n2xJucePlugin/n2xPluginEditorState.cpp b/source/nord/n2x/n2xJucePlugin/n2xPluginEditorState.cpp @@ -42,6 +42,6 @@ namespace n2xJucePlugin jucePluginEditorLib::Editor* PluginEditorState::createEditor(const jucePluginEditorLib::Skin& _skin) { - return new n2xJucePlugin::Editor(m_processor, m_parameterBinding, _skin.folder, _skin.jsonFilename); + return new n2xJucePlugin::Editor(m_processor, m_parameterBinding, _skin); } } diff --git a/source/virusJucePlugin/VirusEditor.cpp b/source/virusJucePlugin/VirusEditor.cpp @@ -16,13 +16,13 @@ namespace genericVirusUI { - VirusEditor::VirusEditor(pluginLib::ParameterBinding& _binding, virus::VirusProcessor& _processorRef, const std::string& _jsonFilename, std::string _skinFolder) : - Editor(_processorRef, _binding, std::move(_skinFolder)), + VirusEditor::VirusEditor(pluginLib::ParameterBinding& _binding, virus::VirusProcessor& _processorRef, const jucePluginEditorLib::Skin& _skin) : + Editor(_processorRef, _binding, _skin), m_processor(_processorRef), m_parameterBinding(_binding), m_romChangedListener(_processorRef.evRomChanged) { - create(_jsonFilename); + create(); m_parts.reset(new Parts(*this)); m_leds.reset(new Leds(*this, _processorRef)); diff --git a/source/virusJucePlugin/VirusEditor.h b/source/virusJucePlugin/VirusEditor.h @@ -48,7 +48,7 @@ namespace genericVirusUI Arrangement }; - VirusEditor(pluginLib::ParameterBinding& _binding, virus::VirusProcessor& _processorRef, const std::string& _jsonFilename, std::string _skinFolder); + VirusEditor(pluginLib::ParameterBinding& _binding, virus::VirusProcessor& _processorRef, const jucePluginEditorLib::Skin& _skin); ~VirusEditor() override; void setPart(size_t _part); diff --git a/source/virusJucePlugin/VirusEditorState.cpp b/source/virusJucePlugin/VirusEditorState.cpp @@ -16,7 +16,7 @@ namespace virus jucePluginEditorLib::Editor* VirusEditorState::createEditor(const jucePluginEditorLib::Skin& _skin) { - return new genericVirusUI::VirusEditor(m_parameterBinding, static_cast<VirusProcessor&>(m_processor), _skin.jsonFilename, _skin.folder); + return new genericVirusUI::VirusEditor(m_parameterBinding, static_cast<VirusProcessor&>(m_processor), _skin); } void VirusEditorState::initContextMenu(juce::PopupMenu& _menu) diff --git a/source/xtJucePlugin/PluginEditorState.cpp b/source/xtJucePlugin/PluginEditorState.cpp @@ -65,6 +65,6 @@ namespace xtJucePlugin jucePluginEditorLib::Editor* PluginEditorState::createEditor(const jucePluginEditorLib::Skin& _skin) { - return new xtJucePlugin::Editor(m_processor, m_parameterBinding, _skin.folder, _skin.jsonFilename); + return new xtJucePlugin::Editor(m_processor, m_parameterBinding, _skin); } } \ No newline at end of file diff --git a/source/xtJucePlugin/xtEditor.cpp b/source/xtJucePlugin/xtEditor.cpp @@ -1,6 +1,5 @@ #include "xtEditor.h" -#include "BinaryData.h" #include "PluginProcessor.h" #include "xtArp.h" @@ -17,13 +16,13 @@ namespace xtJucePlugin { - Editor::Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder, const std::string& _jsonFilename) - : jucePluginEditorLib::Editor(_processor, _binding, std::move(_skinFolder)) + Editor::Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin) + : jucePluginEditorLib::Editor(_processor, _binding, _skin) , m_controller(dynamic_cast<Controller&>(_processor.getController())) , m_parameterBinding(_binding) , m_playModeChangeListener(m_controller.onPlayModeChanged) { - create(_jsonFilename); + create(); m_focusedParameter.reset(new FocusedParameter(m_controller, _binding, *this)); diff --git a/source/xtJucePlugin/xtEditor.h b/source/xtJucePlugin/xtEditor.h @@ -31,7 +31,7 @@ namespace xtJucePlugin class Editor final : public jucePluginEditorLib::Editor { public: - Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, std::string _skinFolder, const std::string& _jsonFilename); + Editor(jucePluginEditorLib::Processor& _processor, pluginLib::ParameterBinding& _binding, const jucePluginEditorLib::Skin& _skin); ~Editor() override; Editor(Editor&&) = delete;