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 9ecb12e8a844775bb79a534fc7b6639b6aa4fc9f
parent 21e626f262dede1ea098187e6156367950182dc2
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Fri, 21 Feb 2025 21:15:12 +0100

add ability to export as .nl2 file type / export without names for .syx/.mid except if we do drag & drop

Diffstat:
Msource/nord/n2x/n2xJucePlugin/CMakeLists.txt | 1+
Msource/nord/n2x/n2xJucePlugin/n2xEditor.cpp | 7+++++++
Msource/nord/n2x/n2xJucePlugin/n2xEditor.h | 2++
Asource/nord/n2x/n2xJucePlugin/n2xFileType.cpp | 6++++++
Asource/nord/n2x/n2xJucePlugin/n2xFileType.h | 11+++++++++++
Msource/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp | 20++++++++++++--------
6 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/source/nord/n2x/n2xJucePlugin/CMakeLists.txt b/source/nord/n2x/n2xJucePlugin/CMakeLists.txt @@ -6,6 +6,7 @@ set(SOURCES n2xArp.cpp n2xArp.h n2xController.cpp n2xController.h n2xEditor.cpp n2xEditor.h + n2xFileType.cpp n2xFileType.h n2xFocusedParameter.cpp n2xFocusedParameter.h n2xMasterVolume.cpp n2xMasterVolume.h n2xOctLed.cpp n2xOctLed.h diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp b/source/nord/n2x/n2xJucePlugin/n2xEditor.cpp @@ -2,6 +2,7 @@ #include "n2xArp.h" #include "n2xController.h" +#include "n2xFileType.h" #include "n2xFocusedParameter.h" #include "n2xLcd.h" #include "n2xLfo.h" @@ -198,6 +199,12 @@ namespace n2xJucePlugin m_vmMap->setEnabled(modifiers.isShiftDown()); } + void Editor::createExportFileTypeMenu(juce::PopupMenu& _menu, const std::function<void(pluginLib::FileType)>& _func) const + { + _menu.addItem(".nl2", [this, _func]{_func(fileType::g_nl2);}); + jucePluginEditorLib::Editor::createExportFileTypeMenu(_menu, _func); + } + void Editor::mouseEnter(const juce::MouseEvent& _ev) { m_focusedParameter->onMouseEnter(_ev); diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.h b/source/nord/n2x/n2xJucePlugin/n2xEditor.h @@ -75,6 +75,8 @@ namespace n2xJucePlugin void modifierKeysChanged(const juce::ModifierKeys& modifiers) override; + void createExportFileTypeMenu(juce::PopupMenu& _menu, const std::function<void(pluginLib::FileType)>& _func) const override; + private: void mouseEnter(const juce::MouseEvent& _ev) override; void onBtSave() const; diff --git a/source/nord/n2x/n2xJucePlugin/n2xFileType.cpp b/source/nord/n2x/n2xJucePlugin/n2xFileType.cpp @@ -0,0 +1,6 @@ +#include "n2xFileType.h" + +namespace n2xJucePlugin::fileType +{ + const pluginLib::FileType g_nl2 = pluginLib::FileType("nl2"); +} diff --git a/source/nord/n2x/n2xJucePlugin/n2xFileType.h b/source/nord/n2x/n2xJucePlugin/n2xFileType.h @@ -0,0 +1,11 @@ +#pragma once + +#include "jucePluginLib/filetype.h" + +namespace n2xJucePlugin +{ + namespace fileType + { + extern const pluginLib::FileType g_nl2; + } +} diff --git a/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp b/source/nord/n2x/n2xJucePlugin/n2xPatchManager.cpp @@ -2,6 +2,7 @@ #include "n2xController.h" #include "n2xEditor.h" +#include "n2xFileType.h" #include "juce_cryptography/hashing/juce_MD5.h" @@ -101,16 +102,19 @@ namespace n2xJucePlugin d[n2x::SysexIndex::IdxMsgType] = static_cast<uint8_t>(_patch->bank); d[n2x::SysexIndex::IdxMsgSpec] = static_cast<uint8_t>(_patch->program); - auto name = _patch->getName(); + if (_fileType == fileType::g_nl2 || _exportType != pluginLib::ExportType::File) + { + auto name = _patch->getName(); - if(name.size() > n2x::g_nameLength) - name = name.substr(0, n2x::g_nameLength); - while(name.size() < n2x::g_nameLength) - name.push_back(' '); + if(name.size() > n2x::g_nameLength) + name = name.substr(0, n2x::g_nameLength); + while(name.size() < n2x::g_nameLength) + name.push_back(' '); - d.pop_back(); - d.insert(d.end(), name.begin(), name.end()); - d.push_back(0xf7); + d.pop_back(); + d.insert(d.end(), name.begin(), name.end()); + d.push_back(0xf7); + } return d; }