#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.Setup(float{}, std::shared_ptr{})} -> 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::shared_ptr{})} -> std::same_as; {proc.getNMIDICtrlOutputs()} -> std::same_as; requires std::same_as; };