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:
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;
}