From 5816a2ae5d10c962a006029398999e96e6bb15ee Mon Sep 17 00:00:00 2001 From: Wong Cho Ching Date: Sun, 26 Jan 2014 13:29:52 +0800 Subject: [PATCH] Fixed OpulenZ segfault bug when it is dropped on another instrument. --- plugins/opl2/opl2instrument.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/opl2/opl2instrument.cpp b/plugins/opl2/opl2instrument.cpp index 2288e0d32..9b7f188a5 100644 --- a/plugins/opl2/opl2instrument.cpp +++ b/plugins/opl2/opl2instrument.cpp @@ -148,6 +148,13 @@ opl2instrument::opl2instrument( InstrumentTrack * _instrument_track ) : emulatorMutex.lock(); theEmulator = new CTemuopl(engine::mixer()->processingSampleRate(), true, false); theEmulator->init(); + + //Initialize voice values + for(int i=0; i<9; ++i) { + voiceNote[i] = OPL2_VOICE_FREE; + voiceLRU[i] = i; + } + // Enable waveform selection theEmulator->write(0x01,0x20); emulatorMutex.unlock(); @@ -162,11 +169,6 @@ opl2instrument::opl2instrument( InstrumentTrack * _instrument_track ) : pitchbend = 0; tuneEqual(69, 440); - for(int i=1; i<9; ++i) { - voiceNote[i] = OPL2_VOICE_FREE; - voiceLRU[i] = i; - } - connect( engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( reloadEmulator() ) ); // Connect knobs