diff --git a/distrho/src/jackbridge/NativeBridge.hpp b/distrho/src/jackbridge/NativeBridge.hpp index 00599a0b..c3bdee15 100644 --- a/distrho/src/jackbridge/NativeBridge.hpp +++ b/distrho/src/jackbridge/NativeBridge.hpp @@ -25,14 +25,14 @@ using DISTRHO_NAMESPACE::HeapRingBuffer; struct NativeBridge { // Current status information - uint bufferSize = 0; - uint sampleRate = 0; + uint bufferSize; + uint sampleRate; // Port caching information - uint numAudioIns = 0; - uint numAudioOuts = 0; - uint numMidiIns = 0; - uint numMidiOuts = 0; + uint numAudioIns; + uint numAudioOuts; + uint numMidiIns; + uint numMidiOuts; // JACK callbacks JackProcessCallback jackProcessCallback = nullptr; @@ -50,8 +50,8 @@ struct NativeBridge { kPortMaskOutputMIDI = kPortMaskOutput|kPortMaskMIDI, }; #if DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS > 0 - float* audioBuffers[DISTRHO_PLUGIN_NUM_INPUTS + DISTRHO_PLUGIN_NUM_OUTPUTS] = {}; - float* audioBufferStorage = nullptr; + float* audioBuffers[DISTRHO_PLUGIN_NUM_INPUTS + DISTRHO_PLUGIN_NUM_OUTPUTS]; + float* audioBufferStorage; #endif #if DISTRHO_PLUGIN_WANT_MIDI_INPUT static constexpr const uint32_t kMaxMIDIInputMessageSize = 3; @@ -63,6 +63,27 @@ struct NativeBridge { HeapRingBuffer midiOutBuffer; #endif + NativeBridge() + : bufferSize(0), + sampleRate(0), + numAudioIns(0), + numAudioOuts(0), + numMidiIns(0), + numMidiOuts(0), + jackProcessCallback(nullptr), + bufferSizeCallback(nullptr), + jackProcessArg(nullptr), + jackBufferSizeArg(nullptr), + #if DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS > 0 + audioBuffers(), + audioBufferStorage(nullptr) + #endif + { + #if DISTRHO_PLUGIN_NUM_INPUTS+DISTRHO_PLUGIN_NUM_OUTPUTS > 0 + std::memset(audioBuffers, 0, sizeof(audioBuffers)); + #endif + } + virtual ~NativeBridge() {} virtual bool open(const char* const clientName) = 0; virtual bool close() = 0; diff --git a/distrho/src/jackbridge/SDL2Bridge.hpp b/distrho/src/jackbridge/SDL2Bridge.hpp index 84bcf5d5..88cfd64e 100644 --- a/distrho/src/jackbridge/SDL2Bridge.hpp +++ b/distrho/src/jackbridge/SDL2Bridge.hpp @@ -26,12 +26,22 @@ #endif struct SDL2Bridge : NativeBridge { -#if DISTRHO_PLUGIN_NUM_INPUTS > 0 - SDL_AudioDeviceID captureDeviceId = 0; -#endif -#if DISTRHO_PLUGIN_NUM_OUTPUTS > 0 - SDL_AudioDeviceID playbackDeviceId = 0; -#endif + #if DISTRHO_PLUGIN_NUM_INPUTS > 0 + SDL_AudioDeviceID captureDeviceId; + #endif + #if DISTRHO_PLUGIN_NUM_OUTPUTS > 0 + SDL_AudioDeviceID playbackDeviceId; + #endif + + SDL2Bridge() + : NativeBridge() + #if DISTRHO_PLUGIN_NUM_INPUTS > 0 + , captureDeviceId(0) + #endif + #if DISTRHO_PLUGIN_NUM_OUTPUTS > 0 + , playbackDeviceId(0) + #endif + {} bool open(const char* const clientName) override {