From 998768b9f7ab9ef31f3d8c9ff013ffd5066d26f2 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Mon, 28 Dec 2015 15:33:03 +1100 Subject: [PATCH] Fix crashing when using OpenAL backend (Thanks Vladcosmonaut) --- ClassicalSharp/Audio/AudioPlayer.Sounds.cs | 9 +++++++-- ClassicalSharp/SharpWave.dll | Bin 77824 -> 81920 bytes 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ClassicalSharp/Audio/AudioPlayer.Sounds.cs b/ClassicalSharp/Audio/AudioPlayer.Sounds.cs index ec61300e4..147815e4d 100644 --- a/ClassicalSharp/Audio/AudioPlayer.Sounds.cs +++ b/ClassicalSharp/Audio/AudioPlayer.Sounds.cs @@ -61,12 +61,15 @@ namespace ClassicalSharp.Audio { PlayCurrentSound( stereoOutputs ); } + IAudioOutput firstSoundOut; void PlayCurrentSound( IAudioOutput[] outputs ) { for( int i = 0; i < monoOutputs.Length; i++ ) { IAudioOutput output = outputs[i]; if( output == null ) { output = GetPlatformOut(); - output.Create( 1 ); + output.Create( 1, firstSoundOut ); + if( firstSoundOut == null ) + firstSoundOut = output; outputs[i] = output; } @@ -80,6 +83,8 @@ namespace ClassicalSharp.Audio { void DisposeSound() { DisposeOutputs( ref monoOutputs ); DisposeOutputs( ref stereoOutputs ); + if( firstSoundOut != null ) + firstSoundOut.Dispose(); } void DisposeOutputs( ref IAudioOutput[] outputs ) { @@ -97,7 +102,7 @@ namespace ClassicalSharp.Audio { } for( int i = 0; i < outputs.Length; i++ ) { - if( outputs[i] == null ) continue; + if( outputs[i] == null || outputs[i] == firstSoundOut ) continue; outputs[i].Dispose(); } outputs = null; diff --git a/ClassicalSharp/SharpWave.dll b/ClassicalSharp/SharpWave.dll index b532f149c56b339a9b91040b6ca9173c554c87bc..c567e2cee1c9ba12e30d46d68650cdd62f170cd2 100644 GIT binary patch delta 14285 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 vNl}?D3X1?Y1(mI9t@