| @@ -8,6 +8,10 @@ | |||||
| #include <condition_variable> | #include <condition_variable> | ||||
| namespace rack { | |||||
| namespace core { | |||||
| template <int AUDIO_OUTPUTS, int AUDIO_INPUTS> | template <int AUDIO_OUTPUTS, int AUDIO_INPUTS> | ||||
| struct AudioInterfacePort : audio::Port { | struct AudioInterfacePort : audio::Port { | ||||
| std::mutex engineMutex; | std::mutex engineMutex; | ||||
| @@ -350,3 +354,7 @@ struct AudioInterface16Widget : ModuleWidget { | |||||
| Model *modelAudioInterface = createModel<AudioInterface<8, 8>, AudioInterface8Widget>("AudioInterface"); | Model *modelAudioInterface = createModel<AudioInterface<8, 8>, AudioInterface8Widget>("AudioInterface"); | ||||
| Model *modelAudioInterface16 = createModel<AudioInterface<16, 16>, AudioInterface16Widget>("AudioInterface16"); | Model *modelAudioInterface16 = createModel<AudioInterface<16, 16>, AudioInterface16Widget>("AudioInterface16"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -2,6 +2,10 @@ | |||||
| #include <app.hpp> | #include <app.hpp> | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct BlankPanel : Widget { | struct BlankPanel : Widget { | ||||
| Widget *panelBorder; | Widget *panelBorder; | ||||
| @@ -150,3 +154,7 @@ struct BlankWidget : ModuleWidget { | |||||
| Model *modelBlank = createModel<Module, BlankWidget>("Blank"); | Model *modelBlank = createModel<Module, BlankWidget>("Blank"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct CCMidiOutput : midi::Output { | struct CCMidiOutput : midi::Output { | ||||
| int lastValues[128]; | int lastValues[128]; | ||||
| @@ -147,3 +151,7 @@ struct CV_CCWidget : ModuleWidget { | |||||
| Model *modelCV_CC = createModel<CV_CC, CV_CCWidget>("CV-CC"); | Model *modelCV_CC = createModel<CV_CC, CV_CCWidget>("CV-CC"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct GateMidiOutput : midi::Output { | struct GateMidiOutput : midi::Output { | ||||
| int vels[128]; | int vels[128]; | ||||
| bool lastGates[128]; | bool lastGates[128]; | ||||
| @@ -213,3 +217,7 @@ struct CV_GateWidget : ModuleWidget { | |||||
| Model *modelCV_Gate = createModel<CV_Gate, CV_GateWidget>("CV-Gate"); | Model *modelCV_Gate = createModel<CV_Gate, CV_GateWidget>("CV-Gate"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct MidiOutput : dsp::MidiGenerator<PORT_MAX_CHANNELS>, midi::Output { | struct MidiOutput : dsp::MidiGenerator<PORT_MAX_CHANNELS>, midi::Output { | ||||
| void onMessage(midi::Message message) override { | void onMessage(midi::Message message) override { | ||||
| midi::Output::sendMessage(message); | midi::Output::sendMessage(message); | ||||
| @@ -170,3 +174,7 @@ struct CV_MIDIWidget : ModuleWidget { | |||||
| Model *modelCV_MIDI = createModel<CV_MIDI, CV_MIDIWidget>("CV-MIDI"); | Model *modelCV_MIDI = createModel<CV_MIDI, CV_MIDIWidget>("CV-MIDI"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct MIDI_CC : Module { | struct MIDI_CC : Module { | ||||
| enum ParamIds { | enum ParamIds { | ||||
| NUM_PARAMS | NUM_PARAMS | ||||
| @@ -181,3 +185,7 @@ struct MIDI_CCWidget : ModuleWidget { | |||||
| // Use legacy slug for compatibility | // Use legacy slug for compatibility | ||||
| Model *modelMIDI_CC = createModel<MIDI_CC, MIDI_CCWidget>("MIDICCToCVInterface"); | Model *modelMIDI_CC = createModel<MIDI_CC, MIDI_CCWidget>("MIDICCToCVInterface"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -2,6 +2,10 @@ | |||||
| #include <algorithm> | #include <algorithm> | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct MIDI_CV : Module { | struct MIDI_CV : Module { | ||||
| enum ParamIds { | enum ParamIds { | ||||
| NUM_PARAMS | NUM_PARAMS | ||||
| @@ -575,3 +579,7 @@ struct MIDI_CVWidget : ModuleWidget { | |||||
| // Use legacy slug for compatibility | // Use legacy slug for compatibility | ||||
| Model *modelMIDI_CV = createModel<MIDI_CV, MIDI_CVWidget>("MIDIToCVInterface"); | Model *modelMIDI_CV = createModel<MIDI_CV, MIDI_CVWidget>("MIDIToCVInterface"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct MIDI_Gate : Module { | struct MIDI_Gate : Module { | ||||
| enum ParamIds { | enum ParamIds { | ||||
| NUM_PARAMS | NUM_PARAMS | ||||
| @@ -220,3 +224,7 @@ struct MIDI_GateWidget : ModuleWidget { | |||||
| // Use legacy slug for compatibility | // Use legacy slug for compatibility | ||||
| Model *modelMIDI_Gate = createModel<MIDI_Gate, MIDI_GateWidget>("MIDITriggerToCVInterface"); | Model *modelMIDI_Gate = createModel<MIDI_Gate, MIDI_GateWidget>("MIDITriggerToCVInterface"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| static const int MAX_CHANNELS = 128; | static const int MAX_CHANNELS = 128; | ||||
| @@ -453,3 +457,7 @@ struct MIDI_MapWidget : ModuleWidget { | |||||
| Model *modelMIDI_Map = createModel<MIDI_Map, MIDI_MapWidget>("MIDI-Map"); | Model *modelMIDI_Map = createModel<MIDI_Map, MIDI_MapWidget>("MIDI-Map"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| struct NotesWidget : ModuleWidget { | struct NotesWidget : ModuleWidget { | ||||
| TextField *textField; | TextField *textField; | ||||
| @@ -40,3 +44,7 @@ struct NotesWidget : ModuleWidget { | |||||
| Model *modelNotes = createModel<Module, NotesWidget>("Notes"); | Model *modelNotes = createModel<Module, NotesWidget>("Notes"); | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,6 +1,10 @@ | |||||
| #include "plugin.hpp" | #include "plugin.hpp" | ||||
| namespace rack { | |||||
| namespace core { | |||||
| void init(rack::Plugin *p) { | void init(rack::Plugin *p) { | ||||
| p->addModel(modelAudioInterface); | p->addModel(modelAudioInterface); | ||||
| p->addModel(modelAudioInterface16); | p->addModel(modelAudioInterface16); | ||||
| @@ -14,3 +18,7 @@ void init(rack::Plugin *p) { | |||||
| p->addModel(modelBlank); | p->addModel(modelBlank); | ||||
| p->addModel(modelNotes); | p->addModel(modelNotes); | ||||
| } | } | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -1,7 +1,8 @@ | |||||
| #include <rack.hpp> | #include <rack.hpp> | ||||
| using namespace rack; | |||||
| namespace rack { | |||||
| namespace core { | |||||
| extern Model *modelAudioInterface; | extern Model *modelAudioInterface; | ||||
| @@ -197,3 +198,7 @@ struct NoteChoice : LedDisplayChoice { | |||||
| } | } | ||||
| } | } | ||||
| }; | }; | ||||
| } // namespace core | |||||
| } // namespace rack | |||||
| @@ -33,6 +33,11 @@ | |||||
| namespace rack { | namespace rack { | ||||
| namespace core { | |||||
| void init(rack::plugin::Plugin *plugin); | |||||
| } // namespace core | |||||
| namespace plugin { | namespace plugin { | ||||
| @@ -133,7 +138,7 @@ static Plugin *loadPlugin(std::string path) { | |||||
| // Call init callback | // Call init callback | ||||
| InitCallback initCallback; | InitCallback initCallback; | ||||
| if (path == "") { | if (path == "") { | ||||
| initCallback = ::init; | |||||
| initCallback = core::init; | |||||
| } | } | ||||
| else { | else { | ||||
| initCallback = loadLibrary(plugin); | initCallback = loadLibrary(plugin); | ||||