diff --git a/BizHawk.Client.ApiHawk/Classes/ClientApi.cs b/BizHawk.Client.ApiHawk/Classes/ClientApi.cs index 005bbec2bd..ca1f146955 100644 --- a/BizHawk.Client.ApiHawk/Classes/ClientApi.cs +++ b/BizHawk.Client.ApiHawk/Classes/ClientApi.cs @@ -359,7 +359,7 @@ namespace BizHawk.Client.ApiHawk { if (joypad.Inputs == 0) { - AutoFireStickyXorAdapter joypadAdapter = Global.AutofireStickyXORAdapter; + AutoFireStickyXorAdapter joypadAdapter = Global.InputManager.AutofireStickyXorAdapter; joypadAdapter.ClearStickies(); } else @@ -368,7 +368,7 @@ namespace BizHawk.Client.ApiHawk { if (joypad.Inputs.HasFlag(button)) { - AutoFireStickyXorAdapter joypadAdapter = Global.AutofireStickyXORAdapter; + AutoFireStickyXorAdapter joypadAdapter = Global.InputManager.AutofireStickyXorAdapter; joypadAdapter.SetSticky( RunningSystem == SystemInfo.GB ? $"{JoypadConverter.ConvertBack(button, RunningSystem)}" @@ -408,7 +408,7 @@ namespace BizHawk.Client.ApiHawk /// private static void GetAllInputs() { - var joypadAdapter = Global.AutofireStickyXORAdapter; + var joypadAdapter = Global.InputManager.AutofireStickyXorAdapter; var pressedButtons = joypadAdapter.Definition.BoolButtons .Where(b => joypadAdapter.IsPressed(b)); diff --git a/BizHawk.Client.Common/Api/Classes/JoypadApi.cs b/BizHawk.Client.Common/Api/Classes/JoypadApi.cs index 11d5beeb77..79dce1ff00 100644 --- a/BizHawk.Client.Common/Api/Classes/JoypadApi.cs +++ b/BizHawk.Client.Common/Api/Classes/JoypadApi.cs @@ -18,12 +18,12 @@ namespace BizHawk.Client.Common public IDictionary Get(int? controller = null) { - return Global.AutofireStickyXORAdapter.ToDictionary(controller); + return Global.InputManager.AutofireStickyXorAdapter.ToDictionary(controller); } public IDictionary GetImmediate(int? controller = null) { - return Global.ActiveController.ToDictionary(controller); + return Global.InputManager.ActiveController.ToDictionary(controller); } public void SetFromMnemonicStr(string inputLogEntry) @@ -38,13 +38,13 @@ namespace BizHawk.Client.Common LogCallback($"invalid mnemonic string: {inputLogEntry}"); return; } - foreach (var button in lg.Definition.BoolButtons) Global.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button)); - foreach (var floatButton in lg.Definition.FloatControls) Global.ButtonOverrideAdapter.SetFloat(floatButton, lg.GetFloat(floatButton)); + foreach (var button in lg.Definition.BoolButtons) Global.InputManager.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button)); + foreach (var floatButton in lg.Definition.FloatControls) Global.InputManager.ButtonOverrideAdapter.SetFloat(floatButton, lg.GetFloat(floatButton)); } public void Set(Dictionary buttons, int? controller = null) { - foreach (var button in Global.ActiveController.Definition.BoolButtons) + foreach (var button in Global.InputManager.ActiveController.Definition.BoolButtons) { Set(button, buttons.TryGetValue(button, out var state) ? state : (bool?) null, controller); } @@ -55,9 +55,9 @@ namespace BizHawk.Client.Common try { var buttonToSet = controller == null ? button : $"P{controller} {button}"; - if (state == null) Global.ButtonOverrideAdapter.UnSet(buttonToSet); - else Global.ButtonOverrideAdapter.SetButton(buttonToSet, state.Value); - Global.ActiveController.Overrides(Global.ButtonOverrideAdapter); + if (state == null) Global.InputManager.ButtonOverrideAdapter.UnSet(buttonToSet); + else Global.InputManager.ButtonOverrideAdapter.SetButton(buttonToSet, state.Value); + Global.InputManager.ActiveController.Overrides(Global.InputManager.ButtonOverrideAdapter); } catch { @@ -74,7 +74,7 @@ namespace BizHawk.Client.Common { try { - Global.StickyXORAdapter.SetFloat(controller == null ? control : $"P{controller} {control}", value); + Global.InputManager.StickyXorAdapter.SetFloat(controller == null ? control : $"P{controller} {control}", value); } catch { diff --git a/BizHawk.Client.Common/Global.cs b/BizHawk.Client.Common/Global.cs index 449a714291..20e696b987 100644 --- a/BizHawk.Client.Common/Global.cs +++ b/BizHawk.Client.Common/Global.cs @@ -26,50 +26,6 @@ namespace BizHawk.Client.Common public static InputManager InputManager { get; } = new InputManager(); - // the movie will be spliced in between these if it is present - public static CopyControllerAdapter MovieInputSourceAdapter { get; } = new CopyControllerAdapter(); - public static CopyControllerAdapter MovieOutputHardpoint { get; } = new CopyControllerAdapter(); - public static MultitrackRewiringControllerAdapter MultitrackRewiringAdapter { get; } = new MultitrackRewiringControllerAdapter(); - - // don't take my word for it, since the final word is actually in RewireInputChain, but here is a guide... - // user -> Input -> ActiveController -> UDLR -> StickyXORPlayerInputAdapter -> TurboAdapter(TBD) -> Lua(?TBD?) -> .. - // .. -> MultitrackRewiringControllerAdapter -> MovieInputSourceAdapter -> (MovieSession) -> MovieOutputAdapter -> ControllerOutput(1) -> Game - // (1)->Input Display - - // the original source controller, bound to the user, sort of the "input" port for the chain, i think - public static Controller ActiveController { get; set; } - - // rapid fire version on the user controller, has its own key bindings and is OR'ed against ActiveController - public static AutofireController AutoFireController { get; set; } - - // the "output" port for the controller chain. - public static CopyControllerAdapter ControllerOutput { get; } = new CopyControllerAdapter(); - - public static UdlrControllerAdapter UD_LR_ControllerAdapter { get; } = new UdlrControllerAdapter(); - - public static AutoFireStickyXorAdapter AutofireStickyXORAdapter { get; } = new AutoFireStickyXorAdapter(); - - /// - /// provides an opportunity to mutate the player's input in an autohold style - /// - public static StickyXorAdapter StickyXORAdapter { get; } = new StickyXorAdapter(); - - /// - /// Used to AND to another controller, used for JoypadApi.Set - /// - public static OverrideAdapter ButtonOverrideAdapter { get; } = new OverrideAdapter(); - - /// - /// fire off one-frame logical button clicks here. useful for things like ti-83 virtual pad and reset buttons - /// - public static ClickyVirtualPadController ClickyVirtualPadController { get; } = new ClickyVirtualPadController(); - - public static Controller ClientControls { get; set; } - - // Input state for game controller inputs are coalesced here - // This relies on a client specific implementation! - public static SimpleController ControllerInputCoalescer { get; set; } - public static Dictionary UserBag { get; set; } = new Dictionary(); } } diff --git a/BizHawk.Client.Common/inputAdapters/InputManager.cs b/BizHawk.Client.Common/inputAdapters/InputManager.cs index 9cdf7e8ceb..f052b9e153 100644 --- a/BizHawk.Client.Common/inputAdapters/InputManager.cs +++ b/BizHawk.Client.Common/inputAdapters/InputManager.cs @@ -5,33 +5,77 @@ using BizHawk.Client.Common.InputAdapterExtensions; namespace BizHawk.Client.Common { + + // don't take my word for it, but here is a guide... + // user -> Input -> ActiveController -> UDLR -> StickyXORPlayerInputAdapter -> TurboAdapter(TBD) -> Lua(?TBD?) -> .. + // .. -> MultitrackRewiringControllerAdapter -> MovieInputSourceAdapter -> (MovieSession) -> MovieOutputAdapter -> ControllerOutput(1) -> Game + // (1)->Input Display public class InputManager { + // the movie will be spliced in between these if it is present + public CopyControllerAdapter MovieInputSourceAdapter { get; } = new CopyControllerAdapter(); + public CopyControllerAdapter MovieOutputHardpoint { get; } = new CopyControllerAdapter(); + public MultitrackRewiringControllerAdapter MultitrackRewiringAdapter { get; } = new MultitrackRewiringControllerAdapter(); + + // the original source controller, bound to the user, sort of the "input" port for the chain, i think + public Controller ActiveController { get; set; } // TODO: private setter, add a method that takes both controllers in + + // rapid fire version on the user controller, has its own key bindings and is OR'ed against ActiveController + public AutofireController AutoFireController { get; set; } // TODO: private setter, add a method that takes both controllers in + + // the "output" port for the controller chain. + public CopyControllerAdapter ControllerOutput { get; } = new CopyControllerAdapter(); + + public UdlrControllerAdapter UdLRControllerAdapter { get; } = new UdlrControllerAdapter(); + + public AutoFireStickyXorAdapter AutofireStickyXorAdapter { get; } = new AutoFireStickyXorAdapter(); + + /// + /// provides an opportunity to mutate the player's input in an autohold style + /// + public StickyXorAdapter StickyXorAdapter { get; } = new StickyXorAdapter(); + + /// + /// Used to AND to another controller, used for JoypadApi.Set + /// + public OverrideAdapter ButtonOverrideAdapter { get; } = new OverrideAdapter(); + + /// + /// fire off one-frame logical button clicks here. useful for things like ti-83 virtual pad and reset buttons + /// + public ClickyVirtualPadController ClickyVirtualPadController { get; } = new ClickyVirtualPadController(); + + // Input state for game controller inputs are coalesced here + // This relies on a client specific implementation! + public SimpleController ControllerInputCoalescer { get; set; } + + public Controller ClientControls { get; set; } + public void RewireInputChain() { - Global.ControllerInputCoalescer.Clear(); - Global.ControllerInputCoalescer.Definition = Global.ActiveController.Definition; + ControllerInputCoalescer.Clear(); + ControllerInputCoalescer.Definition = ActiveController.Definition; - Global.UD_LR_ControllerAdapter.Source = Global.ActiveController.Or(Global.AutoFireController); + UdLRControllerAdapter.Source = ActiveController.Or(AutoFireController); - Global.StickyXORAdapter.Source = Global.UD_LR_ControllerAdapter; - Global.AutofireStickyXORAdapter.Source = Global.StickyXORAdapter; + StickyXorAdapter.Source = UdLRControllerAdapter; + AutofireStickyXorAdapter.Source = StickyXorAdapter; - Global.MultitrackRewiringAdapter.Source = Global.AutofireStickyXORAdapter; - Global.MovieInputSourceAdapter.Source = Global.MultitrackRewiringAdapter; - Global.ControllerOutput.Source = Global.MovieOutputHardpoint; + MultitrackRewiringAdapter.Source = AutofireStickyXorAdapter; + MovieInputSourceAdapter.Source = MultitrackRewiringAdapter; + ControllerOutput.Source = MovieOutputHardpoint; - Global.MovieSession.MovieControllerAdapter.Definition = Global.MovieInputSourceAdapter.Definition; + Global.MovieSession.MovieControllerAdapter.Definition = MovieInputSourceAdapter.Definition; // connect the movie session before MovieOutputHardpoint if it is doing anything // otherwise connect the MovieInputSourceAdapter to it, effectively bypassing the movie session if (Global.MovieSession != null) { - Global.MovieOutputHardpoint.Source = Global.MovieSession.MovieControllerAdapter; + MovieOutputHardpoint.Source = Global.MovieSession.MovieControllerAdapter; } else { - Global.MovieOutputHardpoint.Source = Global.MovieInputSourceAdapter; + MovieOutputHardpoint.Source = MovieInputSourceAdapter; } } @@ -39,13 +83,13 @@ namespace BizHawk.Client.Common { var def = emulator.ControllerDefinition; - Global.ActiveController = BindToDefinition(def, config.AllTrollers, config.AllTrollersAnalog); - Global.AutoFireController = BindToDefinitionAF(def, emulator, config.AllTrollersAutoFire); + ActiveController = BindToDefinition(def, config.AllTrollers, config.AllTrollersAnalog); + AutoFireController = BindToDefinitionAF(def, emulator, config.AllTrollersAutoFire); // allow propagating controls that are in the current controller definition but not in the prebaked one // these two lines shouldn't be required anymore under the new system? - Global.ActiveController.ForceType(new ControllerDefinition(def)); - Global.ClickyVirtualPadController.Definition = new ControllerDefinition(def); + ActiveController.ForceType(new ControllerDefinition(def)); + ClickyVirtualPadController.Definition = new ControllerDefinition(def); RewireInputChain(); } diff --git a/BizHawk.Client.Common/movie/MovieSession.cs b/BizHawk.Client.Common/movie/MovieSession.cs index b00a1b9015..cf536fbffb 100644 --- a/BizHawk.Client.Common/movie/MovieSession.cs +++ b/BizHawk.Client.Common/movie/MovieSession.cs @@ -147,7 +147,7 @@ namespace BizHawk.Client.Common MovieControllerAdapter.LatchFromSource(input); if (MultiTrack.IsActive) { - Global.MultitrackRewiringAdapter.Source = MovieControllerAdapter; + Global.InputManager.MultitrackRewiringAdapter.Source = MovieControllerAdapter; } } @@ -237,7 +237,7 @@ namespace BizHawk.Client.Common { if (!Movie.IsActive()) { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); } else if (Movie.IsFinished()) { @@ -248,7 +248,7 @@ namespace BizHawk.Client.Common } else { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); } } else if (Movie.IsPlaying()) @@ -264,20 +264,20 @@ namespace BizHawk.Client.Common // Movie may go into finished mode as a result from latching if (!Movie.IsFinished()) { - if (Global.ClientControls.IsPressed("Scrub Input")) + if (Global.InputManager.ClientControls.IsPressed("Scrub Input")) { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); ClearFrame(); } else if (Global.Config.MoviePlaybackPokeMode) { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); var lg = Movie.LogGeneratorInstance(); - lg.SetSource(Global.MovieOutputHardpoint); + lg.SetSource(Global.InputManager.MovieOutputHardpoint); if (!lg.IsEmpty) { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); - Movie.PokeFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); + Movie.PokeFrame(Global.Emulator.Frame, Global.InputManager.MovieOutputHardpoint); } else { @@ -305,17 +305,17 @@ namespace BizHawk.Client.Common { if (MultiTrack.IsActive) { - LatchMultitrackPlayerInput(Global.MultitrackRewiringAdapter); + LatchMultitrackPlayerInput(Global.InputManager.MultitrackRewiringAdapter); } else { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); } } // the movie session makes sure that the correct input has been read and merged to its MovieControllerAdapter; // this has been wired to Global.MovieOutputHardpoint in RewireInputChain - Movie.RecordFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint); + Movie.RecordFrame(Global.Emulator.Frame, Global.InputManager.MovieOutputHardpoint); } public void HandleMovieAfterFrameLoop() @@ -368,7 +368,7 @@ namespace BizHawk.Client.Common } else if (Movie.IsFinished()) { - LatchInputFromPlayer(Global.MovieInputSourceAdapter); + LatchInputFromPlayer(Global.InputManager.MovieInputSourceAdapter); } } else diff --git a/BizHawk.Client.Common/movie/bk2/Bk2ControllerAdapter.cs b/BizHawk.Client.Common/movie/bk2/Bk2ControllerAdapter.cs index 576d75b0bf..0e30d6401b 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2ControllerAdapter.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2ControllerAdapter.cs @@ -153,7 +153,7 @@ namespace BizHawk.Client.Common { foreach (var button in Definition.BoolButtons) { - _myBoolButtons[button] = Global.AutofireStickyXORAdapter.IsSticky(button); + _myBoolButtons[button] = Global.InputManager.AutofireStickyXorAdapter.IsSticky(button); } // float controls don't have sticky logic, so latch default value diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs index 578682f4f2..373506723f 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs @@ -289,7 +289,7 @@ namespace BizHawk.Client.Common protected void WriteRawInputLog(TextWriter writer) { var lg = new Bk2LogEntryGenerator(LogKey); - lg.SetSource(Global.MovieOutputHardpoint); + lg.SetSource(Global.InputManager.MovieOutputHardpoint); writer.WriteLine(lg.GenerateLogKey()); diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs index ccf640deb4..4b3cb988b8 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.Editing.cs @@ -396,7 +396,7 @@ namespace BizHawk.Client.Common Global.MovieSession.MovieControllerAdapter.LatchSticky(); var lg = LogGeneratorInstance(); - lg.SetSource(Global.MovieOutputHardpoint); // account for autohold. needs autohold pattern to be already recorded in the current frame + lg.SetSource(Global.InputManager.MovieOutputHardpoint); // account for autohold. needs autohold pattern to be already recorded in the current frame for (int i = 0; i < numFrames; i++) { diff --git a/BizHawk.Client.EmuHawk/Api/Libraries/InputApi.cs b/BizHawk.Client.EmuHawk/Api/Libraries/InputApi.cs index 35bcb60185..3af7d35317 100644 --- a/BizHawk.Client.EmuHawk/Api/Libraries/InputApi.cs +++ b/BizHawk.Client.EmuHawk/Api/Libraries/InputApi.cs @@ -11,7 +11,7 @@ namespace BizHawk.Client.EmuHawk public Dictionary Get() { var buttons = new Dictionary(); - foreach (var kvp in Global.ControllerInputCoalescer.BoolButtons().Where(kvp => kvp.Value)) buttons[kvp.Key] = true; + foreach (var kvp in Global.InputManager.ControllerInputCoalescer.BoolButtons().Where(kvp => kvp.Value)) buttons[kvp.Key] = true; return buttons; } diff --git a/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs b/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs index a9786af00e..662eda0cfe 100644 --- a/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs +++ b/BizHawk.Client.EmuHawk/DisplayManager/OSDManager.cs @@ -197,7 +197,7 @@ namespace BizHawk.Client.EmuHawk public string InputStrImmediate() { var lg = Global.MovieSession.LogGeneratorInstance(); - lg.SetSource(Global.AutofireStickyXORAdapter); + lg.SetSource(Global.InputManager.AutofireStickyXorAdapter); return lg.GenerateInputDisplay(); } @@ -226,7 +226,7 @@ namespace BizHawk.Client.EmuHawk var lg = Global.MovieSession.LogGeneratorInstance(); - lg.SetSource(Global.AutofireStickyXORAdapter.Or(m)); + lg.SetSource(Global.InputManager.AutofireStickyXorAdapter.Or(m)); return lg.GenerateInputDisplay(); } @@ -246,7 +246,7 @@ namespace BizHawk.Client.EmuHawk : Global.MovieSession.MovieControllerInstance(); var lg = Global.MovieSession.LogGeneratorInstance(); - lg.SetSource(Global.AutofireStickyXORAdapter.And(m)); + lg.SetSource(Global.InputManager.AutofireStickyXorAdapter.And(m)); return lg.GenerateInputDisplay(); } @@ -323,7 +323,7 @@ namespace BizHawk.Client.EmuHawk // basically we're tinting whatever is pressed because it's sticky specially // in order to achieve this we want to avoid drawing anything pink that isn't actually held down right now // so we make an AND adapter and combine it using immediate & sticky - var autoString = MakeStringFor(Global.StickyXORAdapter.Source.Xor(Global.AutofireStickyXORAdapter).And(Global.AutofireStickyXORAdapter)); + var autoString = MakeStringFor(Global.InputManager.StickyXorAdapter.Source.Xor(Global.InputManager.AutofireStickyXorAdapter).And(Global.InputManager.AutofireStickyXorAdapter)); g.DrawString(autoString, MessageFont, autoColor, point.X, point.Y); //recolor everything that's changed from the previous input @@ -358,16 +358,16 @@ namespace BizHawk.Client.EmuHawk DrawOsdMessage(g, rerecordCount, FixedMessagesColor, point.X, point.Y); } - if (Global.ClientControls["Autohold"] || Global.ClientControls["Autofire"]) + if (Global.InputManager.ClientControls["Autohold"] || Global.InputManager.ClientControls["Autofire"]) { var sb = new StringBuilder("Held: "); - foreach (string sticky in Global.StickyXORAdapter.CurrentStickies) + foreach (string sticky in Global.InputManager.StickyXorAdapter.CurrentStickies) { sb.Append(sticky).Append(' '); } - foreach (string autoSticky in Global.AutofireStickyXORAdapter.CurrentStickies) + foreach (string autoSticky in Global.InputManager.AutofireStickyXorAdapter.CurrentStickies) { sb .Append("Auto-") diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 2845aba85a..1b111942c9 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1011,7 +1011,7 @@ namespace BizHawk.Client.EmuHawk private void AutofireMenuItem_Click(object sender, EventArgs e) { - using var form = new AutofireConfig(Config, AutoFireController, AutofireStickyXORAdapter); + using var form = new AutofireConfig(Config, InputManager.AutoFireController, InputManager.AutofireStickyXorAdapter); var result = form.ShowDialog(); AddOnScreenMessage(result.IsOk() ? "Autofire settings saved" @@ -1658,7 +1658,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click("FDS Eject"); + InputManager.ClickyVirtualPadController.Click("FDS Eject"); AddOnScreenMessage("FDS disk ejected."); } } @@ -1670,7 +1670,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click("Insert Coin P1"); + InputManager.ClickyVirtualPadController.Click("Insert Coin P1"); AddOnScreenMessage("P1 Coin Inserted"); } } @@ -1683,7 +1683,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click("Insert Coin P2"); + InputManager.ClickyVirtualPadController.Click("Insert Coin P2"); AddOnScreenMessage("P2 Coin Inserted"); } } @@ -1696,7 +1696,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click("Service Switch"); + InputManager.ClickyVirtualPadController.Click("Service Switch"); AddOnScreenMessage("Service Switch Pressed"); } } diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index cc115643cf..5421c32efd 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -206,7 +206,7 @@ namespace BizHawk.Client.EmuHawk MessageCallback = AddOnScreenMessage }; - Global.ControllerInputCoalescer = new ControllerInputCoalescer(); + Global.InputManager.ControllerInputCoalescer = new ControllerInputCoalescer(); Global.FirmwareManager = new FirmwareManager(); MovieSession = new MovieSession { @@ -325,9 +325,9 @@ namespace BizHawk.Client.EmuHawk Input.Initialize(this); InitControls(); - Global.ActiveController = new Controller(NullController.Instance.Definition); - Global.AutoFireController = _autofireNullControls; - Global.AutofireStickyXORAdapter.SetOnOffPatternFromConfig(); + Global.InputManager.ActiveController = new Controller(NullController.Instance.Definition); + Global.InputManager.AutoFireController = _autofireNullControls; + Global.InputManager.AutofireStickyXorAdapter.SetOnOffPatternFromConfig(); try { GlobalWin.Sound = new Sound(Handle); @@ -563,28 +563,28 @@ namespace BizHawk.Client.EmuHawk // handle events and dispatch as a hotkey action, or a hotkey button, or an input button ProcessInput(); - ClientControls.LatchFromPhysical(_hotkeyCoalescer); + InputManager.ClientControls.LatchFromPhysical(_hotkeyCoalescer); - Global.ActiveController.LatchFromPhysical(Global.ControllerInputCoalescer); + Global.InputManager.ActiveController.LatchFromPhysical(Global.InputManager.ControllerInputCoalescer); - Global.ActiveController.ApplyAxisConstraints( + Global.InputManager.ActiveController.ApplyAxisConstraints( (Emulator is N64 && Config.N64UseCircularAnalogConstraint) ? "Natural Circle" : null); - Global.ActiveController.OR_FromLogical(ClickyVirtualPadController); - AutoFireController.LatchFromPhysical(Global.ControllerInputCoalescer); + Global.InputManager.ActiveController.OR_FromLogical(InputManager.ClickyVirtualPadController); + InputManager.AutoFireController.LatchFromPhysical(Global.InputManager.ControllerInputCoalescer); - if (ClientControls["Autohold"]) + if (InputManager.ClientControls["Autohold"]) { - Global.StickyXORAdapter.MassToggleStickyState(Global.ActiveController.PressedButtons); - Global.AutofireStickyXORAdapter.MassToggleStickyState(AutoFireController.PressedButtons); + Global.InputManager.StickyXorAdapter.MassToggleStickyState(Global.InputManager.ActiveController.PressedButtons); + Global.InputManager.AutofireStickyXorAdapter.MassToggleStickyState(InputManager.AutoFireController.PressedButtons); } - else if (ClientControls["Autofire"]) + else if (InputManager.ClientControls["Autofire"]) { - Global.AutofireStickyXORAdapter.MassToggleStickyState(Global.ActiveController.PressedButtons); + Global.InputManager.AutofireStickyXorAdapter.MassToggleStickyState(Global.InputManager.ActiveController.PressedButtons); } // autohold/autofire must not be affected by the following inputs - Global.ActiveController.Overrides(Global.ButtonOverrideAdapter); + Global.InputManager.ActiveController.Overrides(Global.InputManager.ButtonOverrideAdapter); if (Tools.Has() && !SuppressLua) { @@ -734,7 +734,7 @@ namespace BizHawk.Client.EmuHawk public bool IsSeeking => PauseOnFrame.HasValue; private bool IsTurboSeeking => PauseOnFrame.HasValue && Config.TurboSeek; - public bool IsTurboing => ClientControls["Turbo"] || IsTurboSeeking; + public bool IsTurboing => InputManager.ClientControls["Turbo"] || IsTurboSeeking; #endregion @@ -747,8 +747,8 @@ namespace BizHawk.Client.EmuHawk public void ClearHolds() { - Global.StickyXORAdapter.ClearStickies(); - Global.AutofireStickyXORAdapter.ClearStickies(); + Global.InputManager.StickyXorAdapter.ClearStickies(); + Global.InputManager.AutofireStickyXorAdapter.ClearStickies(); if (Tools.Has()) { @@ -844,14 +844,10 @@ namespace BizHawk.Client.EmuHawk private Sound Sound => GlobalWin.Sound; private CheatCollection CheatList => Global.CheatList; - private AutofireController AutoFireController => Global.AutoFireController; - private AutoFireStickyXorAdapter AutofireStickyXORAdapter => Global.AutofireStickyXORAdapter; - private ClickyVirtualPadController ClickyVirtualPadController => Global.ClickyVirtualPadController; private Rewinder Rewinder { get; } private FirmwareManager FirmwareManager => Global.FirmwareManager; - private Controller ClientControls => Global.ClientControls; protected override void OnActivated(EventArgs e) { @@ -867,7 +863,7 @@ namespace BizHawk.Client.EmuHawk private void ProcessInput() { - var conInput = (ControllerInputCoalescer)Global.ControllerInputCoalescer; + var conInput = (ControllerInputCoalescer)Global.InputManager.ControllerInputCoalescer; for (; ; ) { @@ -884,7 +880,7 @@ namespace BizHawk.Client.EmuHawk // TODO - wonder what happens if we pop up something interactive as a response to one of these hotkeys? may need to purge further processing // look for hotkey bindings for this key - var triggers = ClientControls.SearchBindings(ie.LogicalButton.ToString()); + var triggers = InputManager.ClientControls.SearchBindings(ie.LogicalButton.ToString()); if (triggers.Count == 0) { // Maybe it is a system alt-key which hasn't been overridden @@ -933,7 +929,7 @@ namespace BizHawk.Client.EmuHawk break; case 1: // Input overrides Hotkeys conInput.Receive(ie); - if (!Global.ActiveController.HasBinding(ie.LogicalButton.ToString())) + if (!Global.InputManager.ActiveController.HasBinding(ie.LogicalButton.ToString())) { handled = false; if (ie.EventType == Input.InputEventType.Press) @@ -1174,7 +1170,7 @@ namespace BizHawk.Client.EmuHawk // prohibit this operation if the current controls include LMouse if (allowSuppress) { - if (Global.ActiveController.HasBinding("WMouse L")) + if (Global.InputManager.ActiveController.HasBinding("WMouse L")) { return; } @@ -1977,7 +1973,7 @@ namespace BizHawk.Client.EmuHawk controls.BindMulti(b.DisplayName, b.Bindings); } - Global.ClientControls = controls; + Global.InputManager.ClientControls = controls; _autofireNullControls = new AutofireController(NullController.Instance.Definition, Emulator); } @@ -2051,8 +2047,8 @@ namespace BizHawk.Client.EmuHawk // skips outputting the audio. There's also a third way which is when no throttle // method is selected, but the clock throttle determines that by itself and // everything appears normal here. - var rewind = Rewinder.RewindActive && (ClientControls["Rewind"] || PressRewind); - var fastForward = ClientControls["Fast Forward"] || FastForward; + var rewind = Rewinder.RewindActive && (InputManager.ClientControls["Rewind"] || PressRewind); + var fastForward = InputManager.ClientControls["Fast Forward"] || FastForward; var turbo = IsTurboing; int speedPercent = fastForward ? Config.SpeedPercentAlternate : Config.SpeedPercent; @@ -2415,7 +2411,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click("Reset"); + InputManager.ClickyVirtualPadController.Click("Reset"); AddOnScreenMessage("Reset button pressed."); } } @@ -2428,7 +2424,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click("Power"); + InputManager.ClickyVirtualPadController.Click("Power"); AddOnScreenMessage("Power button pressed."); } } @@ -2710,7 +2706,7 @@ namespace BizHawk.Client.EmuHawk { if (MovieSession.Movie.Mode != MovieMode.Play) { - ClickyVirtualPadController.Click(button); + InputManager.ClickyVirtualPadController.Click(button); AddOnScreenMessage(msg); } } @@ -2842,7 +2838,7 @@ namespace BizHawk.Client.EmuHawk runFrame = true; } - if (ClientControls["Frame Advance"] || PressFrameAdvance || HoldFrameAdvance) + if (InputManager.ClientControls["Frame Advance"] || PressFrameAdvance || HoldFrameAdvance) { _runloopFrameAdvance = true; @@ -2887,7 +2883,7 @@ namespace BizHawk.Client.EmuHawk if (runFrame || force) { - var isFastForwarding = ClientControls["Fast Forward"] || IsTurboing || InvisibleEmulation; + var isFastForwarding = InputManager.ClientControls["Fast Forward"] || IsTurboing || InvisibleEmulation; var isFastForwardingOrRewinding = isFastForwarding || isRewinding || _unthrottled; if (isFastForwardingOrRewinding != _lastFastForwardingOrRewinding) @@ -2903,8 +2899,8 @@ namespace BizHawk.Client.EmuHawk CheatList.Pulse(); // zero 03-may-2014 - moved this before call to UpdateToolsBefore(), since it seems to clear the state which a lua event.framestart is going to want to alter - ClickyVirtualPadController.FrameTick(); - Global.ButtonOverrideAdapter.FrameTick(); + InputManager.ClickyVirtualPadController.FrameTick(); + Global.InputManager.ButtonOverrideAdapter.FrameTick(); if (Tools.Has() && !SuppressLua) { @@ -2967,7 +2963,7 @@ namespace BizHawk.Client.EmuHawk } bool render = !InvisibleEmulation && (!_throttle.skipNextFrame || (_currAviWriter?.UsesVideo ?? false)); - bool newFrame = Emulator.FrameAdvance(Global.ControllerOutput, render, renderSound); + bool newFrame = Emulator.FrameAdvance(Global.InputManager.ControllerOutput, render, renderSound); MovieSession.HandleMovieAfterFrameLoop(); @@ -2985,10 +2981,10 @@ namespace BizHawk.Client.EmuHawk if (IsLagFrame && Config.AutofireLagFrames) { - AutoFireController.IncrementStarts(); + InputManager.AutoFireController.IncrementStarts(); } - Global.AutofireStickyXORAdapter.IncrementLoops(IsLagFrame); + Global.InputManager.AutofireStickyXorAdapter.IncrementLoops(IsLagFrame); PressFrameAdvance = false; @@ -3045,7 +3041,7 @@ namespace BizHawk.Client.EmuHawk } } - if (ClientControls["Rewind"] || PressRewind) + if (InputManager.ClientControls["Rewind"] || PressRewind) { UpdateToolsAfter(); } @@ -3816,9 +3812,9 @@ namespace BizHawk.Client.EmuHawk Rewinder.Initialize(); - Global.StickyXORAdapter.ClearStickies(); - Global.StickyXORAdapter.ClearStickyFloats(); - Global.AutofireStickyXORAdapter.ClearStickies(); + Global.InputManager.StickyXorAdapter.ClearStickies(); + Global.InputManager.StickyXorAdapter.ClearStickyFloats(); + Global.InputManager.AutofireStickyXorAdapter.ClearStickies(); RewireSound(); Tools.UpdateCheatRelatedTools(null, null); @@ -3940,8 +3936,8 @@ namespace BizHawk.Client.EmuHawk Emulator.Dispose(); Emulator = new NullEmulator(); ClientApi.UpdateEmulatorAndVP(Emulator); - Global.ActiveController = new Controller(NullController.Instance.Definition); - Global.AutoFireController = _autofireNullControls; + Global.InputManager.ActiveController = new Controller(NullController.Instance.Definition); + Global.InputManager.AutoFireController = _autofireNullControls; RewireSound(); RebootStatusBarIcon.Visible = false; GameIsClosing = false; @@ -3956,7 +3952,6 @@ namespace BizHawk.Client.EmuHawk if (Tools.AskSave()) { CloseGame(clearSram); - var coreComm = CreateCoreComm(); Emulator = new NullEmulator(); Global.Game = GameInfo.NullInstance; @@ -4068,7 +4063,7 @@ namespace BizHawk.Client.EmuHawk Tools.UpdateToolsBefore(fromLua); UpdateToolsAfter(fromLua); UpdateToolsLoadstate(); - AutoFireController.ClearStarts(); + InputManager.AutoFireController.ClearStarts(); if (!IsRewindSlave && MovieSession.Movie.IsActive()) { @@ -4413,7 +4408,7 @@ namespace BizHawk.Client.EmuHawk if (IsRewindSlave) { - if (ClientControls["Rewind"] || PressRewind) + if (InputManager.ClientControls["Rewind"] || PressRewind) { if (_frameRewindTimestamp == 0) { @@ -4461,7 +4456,7 @@ namespace BizHawk.Client.EmuHawk return isRewinding; } - if (Rewinder.RewindActive && (ClientControls["Rewind"] || PressRewind)) + if (Rewinder.RewindActive && (InputManager.ClientControls["Rewind"] || PressRewind)) { if (EmulatorPaused) { diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index a5309f9c9a..f8a02a3988 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -785,7 +785,7 @@ namespace BizHawk.Client.EmuHawk foreach (var button in lg.Definition.BoolButtons) { // TODO: make an input adapter specifically for the bot? - Global.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button)); + Global.InputManager.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button)); } } else @@ -923,7 +923,7 @@ namespace BizHawk.Client.EmuHawk double probability = _cachedControlProbabilities[button]; bool pressed = !(rand.Next(100) < probability); - Global.ClickyVirtualPadController.SetBool(button, pressed); + Global.InputManager.ClickyVirtualPadController.SetBool(button, pressed); } _currentBotAttempt.Log.Add(_logGenerator.GenerateLogEntry()); @@ -977,7 +977,7 @@ namespace BizHawk.Client.EmuHawk MessageLabel.Text = "Running..."; _cachedControlProbabilities = ControlProbabilities; _logGenerator = Global.MovieSession.LogGeneratorInstance(); - _logGenerator.SetSource(Global.ClickyVirtualPadController); + _logGenerator.SetSource(Global.InputManager.ClickyVirtualPadController); } private string CanStart() diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index 91569ff2c7..e8eb0e6fa2 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -469,7 +469,7 @@ namespace BizHawk.Client.EmuHawk } AutoPatternBool p = BoolPatterns[index]; - Global.AutofireStickyXORAdapter.SetSticky(button, isOn.Value, p); + Global.InputManager.AutofireStickyXorAdapter.SetSticky(button, isOn.Value, p); } else { @@ -489,7 +489,7 @@ namespace BizHawk.Client.EmuHawk } AutoPatternFloat p = FloatPatterns[index]; - Global.AutofireStickyXORAdapter.SetFloat(button, value, p); + Global.InputManager.AutofireStickyXorAdapter.SetFloat(button, value, p); } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 6ada6b56f4..aeeaf0c2be 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -811,7 +811,7 @@ namespace BizHawk.Client.EmuHawk { foreach (var column in TasView.VisibleColumns) { - if (Global.StickyXORAdapter.IsSticky(column.Name)) + if (Global.InputManager.StickyXorAdapter.IsSticky(column.Name)) { column.Emphasis = true; } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudioClipboard.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudioClipboard.cs index bfbb8f90eb..ade1e81fd2 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudioClipboard.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudioClipboard.cs @@ -32,12 +32,12 @@ namespace BizHawk.Client.EmuHawk foreach (var button in lg.Definition.BoolButtons) { - Global.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button)); + Global.InputManager.ButtonOverrideAdapter.SetButton(button, lg.IsPressed(button)); } foreach (var floatButton in lg.Definition.FloatControls) { - Global.ButtonOverrideAdapter.SetFloat(floatButton, lg.GetFloat(floatButton)); + Global.InputManager.ButtonOverrideAdapter.SetFloat(floatButton, lg.GetFloat(floatButton)); } return lg; diff --git a/BizHawk.Client.EmuHawk/tools/TI83/TI83KeyPad.cs b/BizHawk.Client.EmuHawk/tools/TI83/TI83KeyPad.cs index 0e002270f2..832454b9d1 100644 --- a/BizHawk.Client.EmuHawk/tools/TI83/TI83KeyPad.cs +++ b/BizHawk.Client.EmuHawk/tools/TI83/TI83KeyPad.cs @@ -20,6 +20,8 @@ namespace BizHawk.Client.EmuHawk [ConfigPersist] public bool TI83ToolTips { get; set; } = true; + private ClickyVirtualPadController ClickyVirtualPadController => Global.InputManager.ClickyVirtualPadController; + private void TI83KeyPad_Load(object sender, EventArgs e) { if (TI83ToolTips) @@ -147,252 +149,252 @@ namespace BizHawk.Client.EmuHawk private void EnterButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("ENTER"); + ClickyVirtualPadController.Click("ENTER"); } private void DashButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("DASH"); + ClickyVirtualPadController.Click("DASH"); } private void OneButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("1"); + ClickyVirtualPadController.Click("1"); } private void TwoButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("2"); + ClickyVirtualPadController.Click("2"); } private void ThreeButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("3"); + ClickyVirtualPadController.Click("3"); } private void FourButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("4"); + ClickyVirtualPadController.Click("4"); } private void FiveButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("5"); + ClickyVirtualPadController.Click("5"); } private void SixButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("6"); + ClickyVirtualPadController.Click("6"); } private void SevenButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("7"); + ClickyVirtualPadController.Click("7"); } private void EightButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("8"); + ClickyVirtualPadController.Click("8"); } private void NineButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("9"); + ClickyVirtualPadController.Click("9"); } private void OnButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("ON"); + ClickyVirtualPadController.Click("ON"); } private void StoButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("STO"); + ClickyVirtualPadController.Click("STO"); } private void PlusButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("PLUS"); + ClickyVirtualPadController.Click("PLUS"); } private void LnButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("LN"); + ClickyVirtualPadController.Click("LN"); } private void MinusButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("MINUS"); + ClickyVirtualPadController.Click("MINUS"); } private void LogButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("LOG"); + ClickyVirtualPadController.Click("LOG"); } private void MultiplyButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("MULTIPLY"); + ClickyVirtualPadController.Click("MULTIPLY"); } private void SquaredButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("SQUARED"); + ClickyVirtualPadController.Click("SQUARED"); } private void CommaButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("COMMA"); + ClickyVirtualPadController.Click("COMMA"); } private void ParaOpenButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("PARAOPEN"); + ClickyVirtualPadController.Click("PARAOPEN"); } private void ParaCloseButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("PARACLOSE"); + ClickyVirtualPadController.Click("PARACLOSE"); } private void DivideButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("DIVIDE"); + ClickyVirtualPadController.Click("DIVIDE"); } private void Neg1Button_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("NEG1"); + ClickyVirtualPadController.Click("NEG1"); } private void SinButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("SIN"); + ClickyVirtualPadController.Click("SIN"); } private void CosButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("COS"); + ClickyVirtualPadController.Click("COS"); } private void TanButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("TAN"); + ClickyVirtualPadController.Click("TAN"); } private void ExpButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("EXP"); + ClickyVirtualPadController.Click("EXP"); } private void MathButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("MATH"); + ClickyVirtualPadController.Click("MATH"); } private void MaxtrixButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("MATRIX"); + ClickyVirtualPadController.Click("MATRIX"); } private void PrgmButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("PRGM"); + ClickyVirtualPadController.Click("PRGM"); } private void VarsButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("VARS"); + ClickyVirtualPadController.Click("VARS"); } private void ClearButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("CLEAR"); + ClickyVirtualPadController.Click("CLEAR"); } private void AlphaButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("ALPHA"); + ClickyVirtualPadController.Click("ALPHA"); } private void XButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("X"); + ClickyVirtualPadController.Click("X"); } private void StatButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("STAT"); + ClickyVirtualPadController.Click("STAT"); } private void SecondButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("2ND"); + ClickyVirtualPadController.Click("2ND"); } private void ModeButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("MODE"); + ClickyVirtualPadController.Click("MODE"); } private void DelButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("DEL"); + ClickyVirtualPadController.Click("DEL"); } private void LeftButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("LEFT"); + ClickyVirtualPadController.Click("LEFT"); } private void DownButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("DOWN"); + ClickyVirtualPadController.Click("DOWN"); } private void RightButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("RIGHT"); + ClickyVirtualPadController.Click("RIGHT"); } private void UpButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("UP"); + ClickyVirtualPadController.Click("UP"); } private void YButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("Y"); + ClickyVirtualPadController.Click("Y"); } private void WindowButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("WINDOW"); + ClickyVirtualPadController.Click("WINDOW"); } private void ZoomButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("ZOOM"); + ClickyVirtualPadController.Click("ZOOM"); } private void TraceButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("TRACE"); + ClickyVirtualPadController.Click("TRACE"); } private void GraphButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("GRAPH"); + ClickyVirtualPadController.Click("GRAPH"); } private void PeriodButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("DOT"); + ClickyVirtualPadController.Click("DOT"); } private void ZeroButton_Click(object sender, EventArgs e) { - Global.ClickyVirtualPadController.Click("0"); + ClickyVirtualPadController.Click("0"); } #endregion diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs index e5fbd896fd..28a7491090 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs @@ -34,7 +34,7 @@ namespace BizHawk.Client.EmuHawk public void UpdateValues() { - if (AnalogTrackBar.Value != (int)Global.StickyXORAdapter.GetFloat(Name)) + if (AnalogTrackBar.Value != (int)Global.InputManager.StickyXorAdapter.GetFloat(Name)) { RefreshWidgets(); } @@ -42,7 +42,7 @@ namespace BizHawk.Client.EmuHawk public void Clear() { - Global.StickyXORAdapter.Unset(Name); + Global.InputManager.StickyXorAdapter.Unset(Name); IsSet = false; } @@ -217,7 +217,7 @@ namespace BizHawk.Client.EmuHawk if (!_programmaticallyChangingValue) { CurrentValue = AnalogTrackBar.Value; - Global.StickyXORAdapter.SetFloat(Name, AnalogTrackBar.Value); + Global.InputManager.StickyXorAdapter.SetFloat(Name, AnalogTrackBar.Value); } } @@ -226,7 +226,7 @@ namespace BizHawk.Client.EmuHawk if (!_isSet) { _programmaticallyChangingValue = true; - AnalogTrackBar.Value = (int)Global.StickyXORAdapter.GetFloat(Name); + AnalogTrackBar.Value = (int)Global.InputManager.StickyXorAdapter.GetFloat(Name); ValueLabel.Text = AnalogTrackBar.Value.ToString(); _programmaticallyChangingValue = false; } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs index f5a91a5311..d91c21365e 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs @@ -78,10 +78,10 @@ namespace BizHawk.Client.EmuHawk manualR.Value = 0; manualTheta.Value = 0; //see HOOMOO - Global.AutofireStickyXORAdapter.SetSticky(AnalogStick.XName, false); - Global.StickyXORAdapter.Unset(AnalogStick.XName); - Global.AutofireStickyXORAdapter.SetSticky(AnalogStick.YName, false); - Global.StickyXORAdapter.Unset(AnalogStick.YName); + Global.InputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.XName, false); + Global.InputManager.StickyXorAdapter.Unset(AnalogStick.XName); + Global.InputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.YName, false); + Global.InputManager.StickyXorAdapter.Unset(AnalogStick.YName); AnalogStick.HasValue = false; } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs index 216b902f25..ee952d79cc 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs @@ -32,8 +32,8 @@ namespace BizHawk.Client.EmuHawk RightClicked = false; Checked = false; //HOOMOO - Global.AutofireStickyXORAdapter.SetSticky(Name, false); - Global.StickyXORAdapter.SetSticky(Name, false); + Global.InputManager.AutofireStickyXorAdapter.SetSticky(Name, false); + Global.InputManager.StickyXorAdapter.SetSticky(Name, false); } } @@ -136,7 +136,7 @@ namespace BizHawk.Client.EmuHawk { if (RightClicked) { - Global.AutofireStickyXORAdapter.SetSticky(Name, Checked); + Global.InputManager.AutofireStickyXorAdapter.SetSticky(Name, Checked); if (Checked == false) { @@ -145,7 +145,7 @@ namespace BizHawk.Client.EmuHawk } else { - Global.StickyXORAdapter.SetSticky(Name, Checked); + Global.InputManager.StickyXorAdapter.SetSticky(Name, Checked); if (Checked == false) { diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadDiscManager.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadDiscManager.cs index 198f94c7b9..4fd6a234de 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadDiscManager.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadDiscManager.cs @@ -140,11 +140,11 @@ namespace BizHawk.Client.EmuHawk { #if false // not a valid way to fight unselection, it results in craptons of ping-ponging logic and eventual malfunction if (lvDiscs.SelectedIndices.Count == 0) lvDiscs.SelectedIndices.Add(0); - Global.StickyXORAdapter.SetFloat(_discSelectName, lvDiscs.SelectedIndices[0]); + Global.InputManager.StickyXORAdapter.SetFloat(_discSelectName, lvDiscs.SelectedIndices[0]); #endif //emergency measure: if no selection, set no disc - Global.StickyXORAdapter.SetFloat(_discSelectName, lvDiscs.SelectedIndices.Count == 0 ? 0 : lvDiscs.SelectedIndices[0]); + Global.InputManager.StickyXorAdapter.SetFloat(_discSelectName, lvDiscs.SelectedIndices.Count == 0 ? 0 : lvDiscs.SelectedIndices[0]); } private void btnClose_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs index a9832512ac..2302813156 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs @@ -41,8 +41,8 @@ namespace BizHawk.Client.EmuHawk public void Clear() { - Global.StickyXORAdapter.Unset(XName); - Global.StickyXORAdapter.Unset(YName); + Global.InputManager.StickyXorAdapter.Unset(XName); + Global.InputManager.StickyXorAdapter.Unset(YName); _overrideX = null; _overrideY = null; _isSet = false; @@ -164,7 +164,7 @@ namespace BizHawk.Client.EmuHawk public int X { - get => _overrideX ?? (int)(Global.StickyXORAdapter.GetFloat(XName) / MultiplierX); + get => _overrideX ?? (int)(Global.InputManager.StickyXorAdapter.GetFloat(XName) / MultiplierX); set { if (value < 0) @@ -181,13 +181,13 @@ namespace BizHawk.Client.EmuHawk XNumeric.Value = XNumeric.Maximum; } - Global.StickyXORAdapter.SetFloat(XName, (int)((float)XNumeric.Value * MultiplierX)); + Global.InputManager.StickyXorAdapter.SetFloat(XName, (int)((float)XNumeric.Value * MultiplierX)); _isSet = true; } } public int Y { - get => _overrideY ?? (int)(Global.StickyXORAdapter.GetFloat(YName) / MultiplierY); + get => _overrideY ?? (int)(Global.InputManager.StickyXorAdapter.GetFloat(YName) / MultiplierY); set { if (value < 0) @@ -203,7 +203,7 @@ namespace BizHawk.Client.EmuHawk YNumeric.Value = YNumeric.Maximum; } - Global.StickyXORAdapter.SetFloat(YName, (int)((float)YNumeric.Value * MultiplierY)); + Global.InputManager.StickyXorAdapter.SetFloat(YName, (int)((float)YNumeric.Value * MultiplierY)); _isSet = true; } } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogStickPanel.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogStickPanel.cs index 252b0e2f85..86f0477a5f 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogStickPanel.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogStickPanel.cs @@ -164,8 +164,8 @@ namespace BizHawk.Client.EmuHawk private void SetAnalog() { - Global.StickyXORAdapter.SetFloat(XName, HasValue ? X : (int?)null); - Global.StickyXORAdapter.SetFloat(YName, HasValue ? Y : (int?)null); + Global.InputManager.StickyXorAdapter.SetFloat(XName, HasValue ? X : (int?)null); + Global.InputManager.StickyXorAdapter.SetFloat(YName, HasValue ? Y : (int?)null); Refresh(); }