commit bc40253226726b7f4994425fc296186e8db3b5fb
parent fffacff3c4515280663597485f5422e264891398
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Tue, 30 Jul 2024 17:00:33 +0200
move controller into namespace
Diffstat:
4 files changed, 133 insertions(+), 126 deletions(-)
diff --git a/source/nord/n2x/n2xJucePlugin/n2xController.cpp b/source/nord/n2x/n2xJucePlugin/n2xController.cpp
@@ -19,130 +19,133 @@ namespace
"multidump"
};
- static_assert(std::size(g_midiPacketNames) == static_cast<size_t>(Controller::MidiPacketType::Count));
+ static_assert(std::size(g_midiPacketNames) == static_cast<size_t>(n2xJucePlugin::Controller::MidiPacketType::Count));
- const char* midiPacketName(Controller::MidiPacketType _type)
+ const char* midiPacketName(n2xJucePlugin::Controller::MidiPacketType _type)
{
return g_midiPacketNames[static_cast<uint32_t>(_type)];
}
}
-Controller::Controller(AudioPluginAudioProcessor& _p) : pluginLib::Controller(_p, loadParameterDescriptions())
+namespace n2xJucePlugin
{
- registerParams(_p);
+ Controller::Controller(AudioPluginAudioProcessor& _p) : pluginLib::Controller(_p, loadParameterDescriptions())
+ {
+ registerParams(_p);
- requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 0); // single edit buffers A-D
- requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 1);
- requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 2);
- requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 3);
+ requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 0); // single edit buffers A-D
+ requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 1);
+ requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 2);
+ requestDump(n2x::SysexByte::SingleRequestBankEditBuffer, 3);
- requestDump(n2x::SysexByte::MultiRequestBankEditBuffer, 0); // performance edit buffer
-}
+ requestDump(n2x::SysexByte::MultiRequestBankEditBuffer, 0); // performance edit buffer
+ }
-Controller::~Controller() = default;
+ Controller::~Controller() = default;
-const char* findEmbeddedResource(const std::string& _filename, uint32_t& _size)
-{
- for(size_t i=0; i<BinaryData::namedResourceListSize; ++i)
+ const char* findEmbeddedResource(const std::string& _filename, uint32_t& _size)
{
- if (BinaryData::originalFilenames[i] != _filename)
- continue;
-
- int size = 0;
- const auto res = BinaryData::getNamedResource(BinaryData::namedResourceList[i], size);
- _size = static_cast<uint32_t>(size);
- return res;
+ for(size_t i=0; i<BinaryData::namedResourceListSize; ++i)
+ {
+ if (BinaryData::originalFilenames[i] != _filename)
+ continue;
+
+ int size = 0;
+ const auto res = BinaryData::getNamedResource(BinaryData::namedResourceList[i], size);
+ _size = static_cast<uint32_t>(size);
+ return res;
+ }
+ return nullptr;
}
- return nullptr;
-}
-std::string Controller::loadParameterDescriptions()
-{
- const auto name = "parameterDescriptions_n2x.json";
- const auto path = synthLib::getModulePath() + name;
-
- const std::ifstream f(path.c_str(), std::ios::in);
- if(f.is_open())
- {
- std::stringstream buf;
- buf << f.rdbuf();
- return buf.str();
- }
-
- uint32_t size;
- const auto res = findEmbeddedResource(name, size);
- if(res)
- return {res, size};
- return {};
-}
-
-bool Controller::parseSysexMessage(const pluginLib::SysEx& _msg, synthLib::MidiEventSource)
-{
- if(_msg.size() == n2x::g_singleDumpSize)
+ std::string Controller::loadParameterDescriptions()
{
- return parseSingleDump(_msg);
+ const auto name = "parameterDescriptions_n2x.json";
+ const auto path = synthLib::getModulePath() + name;
+
+ const std::ifstream f(path.c_str(), std::ios::in);
+ if(f.is_open())
+ {
+ std::stringstream buf;
+ buf << f.rdbuf();
+ return buf.str();
+ }
+
+ uint32_t size;
+ const auto res = findEmbeddedResource(name, size);
+ if(res)
+ return {res, size};
+ return {};
}
- if(_msg.size() == n2x::g_multiDumpSize)
+
+ bool Controller::parseSysexMessage(const pluginLib::SysEx& _msg, synthLib::MidiEventSource)
{
- return parseMultiDump(_msg);
+ if(_msg.size() == n2x::g_singleDumpSize)
+ {
+ return parseSingleDump(_msg);
+ }
+ if(_msg.size() == n2x::g_multiDumpSize)
+ {
+ return parseMultiDump(_msg);
+ }
+ return false;
}
- return false;
-}
-bool Controller::parseSingleDump(const pluginLib::SysEx& _msg)
-{
- pluginLib::MidiPacket::Data data;
- pluginLib::MidiPacket::ParamValues params;
+ bool Controller::parseSingleDump(const pluginLib::SysEx& _msg)
+ {
+ pluginLib::MidiPacket::Data data;
+ pluginLib::MidiPacket::ParamValues params;
- if(!parseMidiPacket(midiPacketName(MidiPacketType::SingleDump), data, params, _msg))
- return false;
+ if(!parseMidiPacket(midiPacketName(MidiPacketType::SingleDump), data, params, _msg))
+ return false;
- const auto bank = data[pluginLib::MidiDataType::Bank];
- const auto program = data[pluginLib::MidiDataType::Program];
+ const auto bank = data[pluginLib::MidiDataType::Bank];
+ const auto program = data[pluginLib::MidiDataType::Program];
- if(bank == n2x::SysexByte::SingleDumpBankEditBuffer && program < getPartCount())
- {
- applyPatchParameters(params, program);
- return true;
- }
+ if(bank == n2x::SysexByte::SingleDumpBankEditBuffer && program < getPartCount())
+ {
+ applyPatchParameters(params, program);
+ return true;
+ }
- assert(false && "receiving a single for a non-edit-buffer is unexpected");
- return false;
-}
+ assert(false && "receiving a single for a non-edit-buffer is unexpected");
+ return false;
+ }
-bool Controller::parseMultiDump(const pluginLib::SysEx& _msg)
-{
- return false;
-}
+ bool Controller::parseMultiDump(const pluginLib::SysEx& _msg)
+ {
+ return false;
+ }
-bool Controller::parseControllerMessage(const synthLib::SMidiEvent&)
-{
- // TODO
- return false;
-}
+ bool Controller::parseControllerMessage(const synthLib::SMidiEvent&)
+ {
+ // TODO
+ return false;
+ }
-void Controller::sendParameterChange(const pluginLib::Parameter& _parameter, const uint8_t _value)
-{
- const auto& controllerMap = getParameterDescriptions().getControllerMap();
+ void Controller::sendParameterChange(const pluginLib::Parameter& _parameter, const uint8_t _value)
+ {
+ const auto& controllerMap = getParameterDescriptions().getControllerMap();
- const auto& ccs = controllerMap.getControlChanges(synthLib::M_CONTROLCHANGE, _parameter.getParameterIndex());
- if(ccs.empty())
- return;
- sendMidiEvent(synthLib::M_CONTROLCHANGE, ccs.front(), _value);
-}
+ const auto& ccs = controllerMap.getControlChanges(synthLib::M_CONTROLCHANGE, _parameter.getParameterIndex());
+ if(ccs.empty())
+ return;
+ sendMidiEvent(synthLib::M_CONTROLCHANGE, ccs.front(), _value);
+ }
-bool Controller::sendSysEx(MidiPacketType _packet, const std::map<pluginLib::MidiDataType, uint8_t>& _params) const
-{
- return pluginLib::Controller::sendSysEx(midiPacketName(_packet), _params);
-}
+ bool Controller::sendSysEx(MidiPacketType _packet, const std::map<pluginLib::MidiDataType, uint8_t>& _params) const
+ {
+ return pluginLib::Controller::sendSysEx(midiPacketName(_packet), _params);
+ }
-void Controller::requestDump(const uint8_t _bank, const uint8_t _patch) const
-{
- std::map<pluginLib::MidiDataType, uint8_t> params;
+ void Controller::requestDump(const uint8_t _bank, const uint8_t _patch) const
+ {
+ std::map<pluginLib::MidiDataType, uint8_t> params;
- params[pluginLib::MidiDataType::DeviceId] = n2x::SysexByte::DefaultDeviceId;
- params[pluginLib::MidiDataType::Bank] = static_cast<uint8_t>(_bank);
- params[pluginLib::MidiDataType::Program] = _patch;
+ params[pluginLib::MidiDataType::DeviceId] = n2x::SysexByte::DefaultDeviceId;
+ params[pluginLib::MidiDataType::Bank] = static_cast<uint8_t>(_bank);
+ params[pluginLib::MidiDataType::Program] = _patch;
- sendSysEx(MidiPacketType::RequestDump, params);
-}
+ sendSysEx(MidiPacketType::RequestDump, params);
+ }
+}
+\ No newline at end of file
diff --git a/source/nord/n2x/n2xJucePlugin/n2xController.h b/source/nord/n2x/n2xJucePlugin/n2xController.h
@@ -4,40 +4,43 @@
class AudioPluginAudioProcessor;
-class Controller : public pluginLib::Controller
+namespace n2xJucePlugin
{
-public:
- enum class MidiPacketType
+ class Controller : public pluginLib::Controller
{
- RequestDump,
- SingleDump,
- MultiDump,
+ public:
+ enum class MidiPacketType
+ {
+ RequestDump,
+ SingleDump,
+ MultiDump,
- Count
- };
+ Count
+ };
- Controller(AudioPluginAudioProcessor&);
- ~Controller() override;
+ Controller(AudioPluginAudioProcessor&);
+ ~Controller() override;
-private:
- static std::string loadParameterDescriptions();
+ private:
+ static std::string loadParameterDescriptions();
- void onStateLoaded() override
- {
- }
+ void onStateLoaded() override
+ {
+ }
- uint8_t getPartCount() override
- {
- return 4;
- }
+ uint8_t getPartCount() override
+ {
+ return 4;
+ }
- bool parseSysexMessage(const pluginLib::SysEx&, synthLib::MidiEventSource) override;
- bool parseSingleDump(const pluginLib::SysEx& _msg);
- bool parseMultiDump(const pluginLib::SysEx& _msg);
- bool parseControllerMessage(const synthLib::SMidiEvent&) override;
+ bool parseSysexMessage(const pluginLib::SysEx&, synthLib::MidiEventSource) override;
+ bool parseSingleDump(const pluginLib::SysEx& _msg);
+ bool parseMultiDump(const pluginLib::SysEx& _msg);
+ bool parseControllerMessage(const synthLib::SMidiEvent&) override;
- void sendParameterChange(const pluginLib::Parameter& _parameter, uint8_t _value) override;
- bool sendSysEx(MidiPacketType _packet, const std::map<pluginLib::MidiDataType, uint8_t>& _params) const;
+ void sendParameterChange(const pluginLib::Parameter& _parameter, uint8_t _value) override;
+ bool sendSysEx(MidiPacketType _packet, const std::map<pluginLib::MidiDataType, uint8_t>& _params) const;
- void requestDump(uint8_t _bank, uint8_t _patch) const;
-};
+ void requestDump(uint8_t _bank, uint8_t _patch) const;
+ };
+}
+\ No newline at end of file
diff --git a/source/nord/n2x/n2xJucePlugin/n2xEditor.h b/source/nord/n2x/n2xJucePlugin/n2xEditor.h
@@ -2,8 +2,6 @@
#include "jucePluginEditorLib/pluginEditor.h"
-class Controller;
-
namespace jucePluginEditorLib
{
class FocusedParameter;
@@ -18,6 +16,7 @@ namespace pluginLib
namespace n2xJucePlugin
{
class PatchManager;
+ class Controller;
class Editor final : public jucePluginEditorLib::Editor
{
diff --git a/source/nord/n2x/n2xJucePlugin/n2xPluginProcessor.cpp b/source/nord/n2x/n2xJucePlugin/n2xPluginProcessor.cpp
@@ -56,7 +56,7 @@ synthLib::Device* AudioPluginAudioProcessor::createDevice()
pluginLib::Controller* AudioPluginAudioProcessor::createController()
{
- return new Controller(*this);
+ return new n2xJucePlugin::Controller(*this);
}
juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()