diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index 3fada8a8f8..1f989d704e 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -919,7 +919,7 @@ namespace BizHawk.Client.EmuHawk if (form.ApplyNewSoundDevice) { Sound.Dispose(); - Sound = new Sound(Handle); + Sound = new Sound(Handle, Config.SoundOutputMethod, Config.SoundDevice); Sound.StartSound(); } else diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 41e2f930e8..26db071523 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -413,7 +413,7 @@ namespace BizHawk.Client.EmuHawk InputManager.AutofireStickyXorAdapter.SetOnOffPatternFromConfig(Config.AutofireOn, Config.AutofireOff); try { - GlobalWin.Sound = new Sound(Handle); + GlobalWin.Sound = new Sound(Handle, Config.SoundOutputMethod, Config.SoundDevice); } catch { @@ -426,7 +426,7 @@ namespace BizHawk.Client.EmuHawk MessageBox.Show(message, "Initialization Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Config.SoundOutputMethod = ESoundOutputMethod.Dummy; - GlobalWin.Sound = new Sound(Handle); + GlobalWin.Sound = new Sound(Handle, Config.SoundOutputMethod, Config.SoundDevice); } Sound.StartSound(); diff --git a/src/BizHawk.Client.EmuHawk/Sound/Sound.cs b/src/BizHawk.Client.EmuHawk/Sound/Sound.cs index abe36cb7c3..a87ec6cc96 100644 --- a/src/BizHawk.Client.EmuHawk/Sound/Sound.cs +++ b/src/BizHawk.Client.EmuHawk/Sound/Sound.cs @@ -27,7 +27,7 @@ namespace BizHawk.Client.EmuHawk public int ConfigBufferSizeMs => GlobalWin.Config.SoundBufferSizeMs; - public Sound(IntPtr mainWindowHandle) + public Sound(IntPtr mainWindowHandle, ESoundOutputMethod soundOutputMethod, string soundDevice) { BlockAlign = BytesPerSample * ChannelCount; @@ -36,15 +36,15 @@ namespace BizHawk.Client.EmuHawk // if DirectSound or XAudio is chosen, use OpenAL, otherwise comply with the user's choice _outputDevice = GlobalWin.Config.SoundOutputMethod == ESoundOutputMethod.Dummy ? (ISoundOutput) new DummySoundOutput(this) - : new OpenALSoundOutput(this, GlobalWin.Config.SoundDevice); + : new OpenALSoundOutput(this, soundDevice); } else { - _outputDevice = GlobalWin.Config.SoundOutputMethod switch + _outputDevice = soundOutputMethod switch { - ESoundOutputMethod.DirectSound => new DirectSoundSoundOutput(this, mainWindowHandle, GlobalWin.Config.SoundDevice), - ESoundOutputMethod.XAudio2 => new XAudio2SoundOutput(this, GlobalWin.Config.SoundDevice), - ESoundOutputMethod.OpenAL => new OpenALSoundOutput(this, GlobalWin.Config.SoundDevice), + ESoundOutputMethod.DirectSound => new DirectSoundSoundOutput(this, mainWindowHandle, soundDevice), + ESoundOutputMethod.XAudio2 => new XAudio2SoundOutput(this, soundDevice), + ESoundOutputMethod.OpenAL => new OpenALSoundOutput(this, soundDevice), _ => new DummySoundOutput(this) }; }