From 32f571144e1abd274cded4206e6192f7dfd5807d Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Mon, 30 Nov 2020 19:21:13 +1000 Subject: [PATCH] Encapsulate GlobalWin.Config access in Input --- src/BizHawk.Client.EmuHawk/Input/Input.cs | 26 ++++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/Input/Input.cs b/src/BizHawk.Client.EmuHawk/Input/Input.cs index aa0a5e01f2..ab539a7d2c 100644 --- a/src/BizHawk.Client.EmuHawk/Input/Input.cs +++ b/src/BizHawk.Client.EmuHawk/Input/Input.cs @@ -106,22 +106,28 @@ namespace BizHawk.Client.EmuHawk Alt = 262144 } - private static readonly Lazy _instance = new Lazy(() => new Input()); + private static readonly Lazy _instance = new Lazy(() => new Input(() => GlobalWin.Config)); public static Input Instance => _instance.Value; private readonly Thread _updateThread; - public readonly HostInputAdapter Adapter = GlobalWin.Config.HostInputMethod switch - { - EHostInputMethod.OpenTK => new OpenTKInputAdapter(), - EHostInputMethod.DirectInput => new DirectInputAdapter(), - _ => throw new Exception() - }; + public readonly HostInputAdapter Adapter; - private Input() + private readonly Func _getConfigCallback; + + private Input(Func getConfigCallback) { - Adapter.UpdateConfig(GlobalWin.Config); + _getConfigCallback = getConfigCallback; + + var config = _getConfigCallback(); + Adapter = config.HostInputMethod switch + { + EHostInputMethod.OpenTK => new OpenTKInputAdapter(), + EHostInputMethod.DirectInput => new DirectInputAdapter(), + _ => throw new Exception() + }; + Adapter.UpdateConfig(config); _updateThread = new Thread(UpdateThreadProc) { IsBackground = true, @@ -377,7 +383,7 @@ namespace BizHawk.Client.EmuHawk }; while (true) { - Adapter.UpdateConfig(GlobalWin.Config); + Adapter.UpdateConfig(_getConfigCallback()); var keyEvents = Adapter.ProcessHostKeyboards(); Adapter.PreprocessHostGamepads();