@@ -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 | ||||
//////////////////// | //////////////////// | ||||