#pragma once #include #include #include #include "WString.h" #include "../src/memllib/interface/InterfaceBase.hpp" #include "../src/memllib/interface/MIDIInOut.hpp" #include "../src/memllib/audio/AudioDriver.hpp" template concept MEMLNautMode = requires(T proc) { {proc.getHelpTitle()} -> std::same_as; // {proc.getNParams()} -> std::same_as; // {proc.setVoiceSpace(size_t{})} -> std::same_as; {proc.setupMIDI(std::shared_ptr{})} -> std::same_as; {proc.addViews()} -> std::same_as; {proc.setupAudio(float{})} -> std::same_as; {proc.loop()} -> std::same_as; // {proc.getVoiceSpaceList()} -> std::same_as>; {proc.process(stereosample_t{})} -> std::same_as; {proc.analyse(stereosample_t{})} -> std::same_as; {proc.processAnalysisParams()} -> std::same_as; // {proc.getNMIDICtrlOutputs()} -> std::same_as; {proc.setupInterface()} -> std::same_as; requires std::same_as; };