| @@ -7,13 +7,18 @@ | |||||
| using namespace rack; | using namespace rack; | ||||
| static bool initialized = false; | |||||
| void audioInit() { | void audioInit() { | ||||
| if (initialized) | |||||
| return; | |||||
| PaError err = Pa_Initialize(); | PaError err = Pa_Initialize(); | ||||
| if (err) { | if (err) { | ||||
| fprintf(stderr, "Failed to initialize PortAudio: %s\n", Pa_GetErrorText(err)); | fprintf(stderr, "Failed to initialize PortAudio: %s\n", Pa_GetErrorText(err)); | ||||
| return; | return; | ||||
| } | } | ||||
| initialized = true; | |||||
| } | } | ||||
| @@ -80,6 +85,7 @@ AudioInterface::AudioInterface() { | |||||
| params.resize(NUM_PARAMS); | params.resize(NUM_PARAMS); | ||||
| inputs.resize(NUM_INPUTS); | inputs.resize(NUM_INPUTS); | ||||
| outputs.resize(NUM_OUTPUTS); | outputs.resize(NUM_OUTPUTS); | ||||
| audioInit(); | |||||
| } | } | ||||
| AudioInterface::~AudioInterface() { | AudioInterface::~AudioInterface() { | ||||
| @@ -7,13 +7,18 @@ | |||||
| using namespace rack; | using namespace rack; | ||||
| static bool initialized = false; | |||||
| void midiInit() { | void midiInit() { | ||||
| if (initialized) | |||||
| return; | |||||
| PmError err = Pm_Initialize(); | PmError err = Pm_Initialize(); | ||||
| if (err) { | if (err) { | ||||
| printf("Failed to initialize PortMidi: %s\n", Pm_GetErrorText(err)); | printf("Failed to initialize PortMidi: %s\n", Pm_GetErrorText(err)); | ||||
| return; | return; | ||||
| } | } | ||||
| initialized = true; | |||||
| } | } | ||||
| @@ -56,6 +61,7 @@ MidiInterface::MidiInterface() { | |||||
| params.resize(NUM_PARAMS); | params.resize(NUM_PARAMS); | ||||
| inputs.resize(NUM_INPUTS); | inputs.resize(NUM_INPUTS); | ||||
| outputs.resize(NUM_OUTPUTS); | outputs.resize(NUM_OUTPUTS); | ||||
| midiInit(); | |||||
| } | } | ||||
| MidiInterface::~MidiInterface() { | MidiInterface::~MidiInterface() { | ||||
| @@ -12,8 +12,5 @@ struct CorePlugin : Plugin { | |||||
| Plugin *init() { | Plugin *init() { | ||||
| audioInit(); | |||||
| midiInit(); | |||||
| return new CorePlugin(); | return new CorePlugin(); | ||||
| } | } | ||||
| @@ -3,9 +3,6 @@ | |||||
| using namespace rack; | using namespace rack; | ||||
| void audioInit(); | |||||
| void midiInit(); | |||||
| //////////////////// | //////////////////// | ||||
| // module widgets | // module widgets | ||||
| //////////////////// | //////////////////// | ||||