summaryrefslogtreecommitdiff
path: root/audio/spiralsynth/patches
diff options
context:
space:
mode:
authorben <ben>2005-04-24 03:29:11 +0000
committerben <ben>2005-04-24 03:29:11 +0000
commit8fbea6e0cf35ae7ed39bfba077e9a68b70b7492e (patch)
treea2c5ab2180dbeffa0dc7a0421a45e54ec52ca5c9 /audio/spiralsynth/patches
parent0d377c622e1a78797798c6ed02fd1f838b2b8b68 (diff)
downloadpkgsrc-8fbea6e0cf35ae7ed39bfba077e9a68b70b7492e.tar.gz
The problem is that SpiralSynth opens the MIDI device path before
calling SetDeviceName. The call trace goes something like this: Synth.C main() ==> Synth *synth=new Synth; ==> Synth::Synth() ==> MidiDevice::Get()->SetDeviceName(SpiralInfo::MIDIFILE); SpiralSound/Midi.h MidiDevice::Get() ==> m_Singleton=new MidiDevice; ==> MidiDevice::MidiDevice() ==> MidiDevice::Open() ==> MidiDevice::SetDeviceName patches/patch-ao works around this problem by closing the prematurely opened private variable representing the MIDI device, and setting it to NULL. MidiDevice methods check for NULL and re-initialize the private variable, this time opening the MIDI device path after SetDeviceName.
Diffstat (limited to 'audio/spiralsynth/patches')
-rw-r--r--audio/spiralsynth/patches/patch-ao12
1 files changed, 12 insertions, 0 deletions
diff --git a/audio/spiralsynth/patches/patch-ao b/audio/spiralsynth/patches/patch-ao
new file mode 100644
index 00000000000..b11ec53c73f
--- /dev/null
+++ b/audio/spiralsynth/patches/patch-ao
@@ -0,0 +1,12 @@
+$NetBSD: patch-ao,v 1.1 2005/04/24 03:29:11 ben Exp $
+
+--- Synth.C.orig 2002-06-11 15:09:42.000000000 -0700
++++ Synth.C
+@@ -82,6 +82,7 @@ m_OutGUI(OSSOutput::Get())
+ LoadPatch(1);
+
+ MidiDevice::Get()->SetDeviceName(SpiralInfo::MIDIFILE);
++ MidiDevice::Get()->PackUpAndGoHome();
+ }
+
+ Synth::~Synth()