break AnalogBind out of Config.cs into its own file

This commit is contained in:
adelikat 2020-01-21 09:21:12 -06:00
parent 2182b6b35d
commit 04a5db6214
7 changed files with 37 additions and 33 deletions

View File

@ -35,7 +35,7 @@ namespace BizHawk.Client.Common
private readonly WorkingDictionary<string, bool> _buttons = new WorkingDictionary<string, bool>();
private readonly WorkingDictionary<string, float> _floatButtons = new WorkingDictionary<string, float>();
private readonly Dictionary<string, ControllerDefinition.FloatRange> _floatRanges = new WorkingDictionary<string, ControllerDefinition.FloatRange>();
private readonly Dictionary<string, Config.AnalogBind> _floatBinds = new Dictionary<string, Config.AnalogBind>();
private readonly Dictionary<string, AnalogBind> _floatBinds = new Dictionary<string, AnalogBind>();
private ControllerDefinition _type;
@ -209,7 +209,7 @@ namespace BizHawk.Client.Common
}
}
public void BindFloat(string button, Config.AnalogBind bind)
public void BindFloat(string button, AnalogBind bind)
{
_floatBinds[button] = bind;
}

View File

@ -0,0 +1,21 @@
namespace BizHawk.Client.Common
{
public struct AnalogBind
{
/// <summary>the physical stick that we're bound to</summary>
public string Value;
/// <summary>sensitivity and flip</summary>
public float Mult;
/// <summary>portion of axis to ignore</summary>
public float Deadzone;
public AnalogBind(string value, float mult, float deadzone)
{
Value = value;
Mult = mult;
Deadzone = deadzone;
}
}
}

View File

@ -382,24 +382,7 @@ namespace BizHawk.Client.Common
public int Analog_LargeChange = 10;
public int Analog_SmallChange = 1;
public struct AnalogBind
{
/// <summary>the physical stick that we're bound to</summary>
public string Value;
/// <summary>sensitivity and flip</summary>
public float Mult;
/// <summary>portion of axis to ignore</summary>
public float Deadzone;
public AnalogBind(string value, float mult, float deadzone)
{
Value = value;
Mult = mult;
Deadzone = deadzone;
}
}
// [ControllerType][ButtonName] => Physical Bind
public Dictionary<string, Dictionary<string, string>> AllTrollers = new Dictionary<string, Dictionary<string, string>>();
@ -428,6 +411,6 @@ namespace BizHawk.Client.Common
{
public Dictionary<string, Dictionary<string, string>> AllTrollers = new Dictionary<string, Dictionary<string, string>>();
public Dictionary<string, Dictionary<string, string>> AllTrollersAutoFire = new Dictionary<string, Dictionary<string, string>>();
public Dictionary<string, Dictionary<string, Config.AnalogBind>> AllTrollersAnalog = new Dictionary<string, Dictionary<string, Config.AnalogBind>>();
public Dictionary<string, Dictionary<string, AnalogBind>> AllTrollersAnalog = new Dictionary<string, Dictionary<string, AnalogBind>>();
}
}

View File

@ -49,7 +49,7 @@ namespace BizHawk.Client.Common
RewireInputChain();
}
private static Controller BindToDefinition(ControllerDefinition def, IDictionary<string, Dictionary<string, string>> allBinds, IDictionary<string, Dictionary<string, Config.AnalogBind>> analogBinds)
private static Controller BindToDefinition(ControllerDefinition def, IDictionary<string, Dictionary<string, string>> allBinds, IDictionary<string, Dictionary<string, AnalogBind>> analogBinds)
{
var ret = new Controller(def);
if (allBinds.TryGetValue(def.Name, out var binds))

View File

@ -50,7 +50,7 @@ namespace BizHawk.Client.EmuHawk
ControllerImages.Add("Apple IIe Keyboard", Properties.Resources.AppleIIKeyboard);
ControllerImages.Add("VirtualBoy Controller", Properties.Resources.VBoyController);
ControllerImages.Add("NeoGeo Portable Controller", Properties.Resources.NGPController);
ControllerImages.Add("MAME Controller", Properties.Resources.ArcadeController);
ControllerImages.Add("MAME Controller", Properties.Resources.ArcadeController);
}
protected override void OnActivated(EventArgs e)
@ -84,7 +84,7 @@ namespace BizHawk.Client.EmuHawk
return cp;
}
private static Control CreateAnalogPanel(Dictionary<string, Config.AnalogBind> settings, List<string> buttons, Size size)
private static Control CreateAnalogPanel(Dictionary<string, AnalogBind> settings, List<string> buttons, Size size)
{
return new AnalogBindPanel(settings, buttons) { Dock = DockStyle.Fill, AutoScroll = true };
}
@ -225,11 +225,11 @@ namespace BizHawk.Client.EmuHawk
private void LoadPanels(
IDictionary<string, Dictionary<string, string>> normal,
IDictionary<string, Dictionary<string, string>> autofire,
IDictionary<string, Dictionary<string, Config.AnalogBind>> analog)
IDictionary<string, Dictionary<string, AnalogBind>> analog)
{
LoadToPanel(NormalControlsTab, _emulator.ControllerDefinition.Name, _emulator.ControllerDefinition.BoolButtons, _emulator.ControllerDefinition.CategoryLabels, normal, "", CreateNormalPanel);
LoadToPanel(AutofireControlsTab, _emulator.ControllerDefinition.Name, _emulator.ControllerDefinition.BoolButtons, _emulator.ControllerDefinition.CategoryLabels, autofire, "", CreateNormalPanel);
LoadToPanel(AnalogControlsTab, _emulator.ControllerDefinition.Name, _emulator.ControllerDefinition.FloatControls, _emulator.ControllerDefinition.CategoryLabels, analog, new Config.AnalogBind("", 1.0f, 0.1f), CreateAnalogPanel);
LoadToPanel(AnalogControlsTab, _emulator.ControllerDefinition.Name, _emulator.ControllerDefinition.FloatControls, _emulator.ControllerDefinition.CategoryLabels, analog, new AnalogBind("", 1.0f, 0.1f), CreateAnalogPanel);
if (AnalogControlsTab.Controls.Count == 0)
{
@ -434,7 +434,7 @@ namespace BizHawk.Client.EmuHawk
var cd = ConfigService.Load<ControlDefaults>(Config.ControlDefaultPath);
cd.AllTrollers[_emulator.ControllerDefinition.Name] = new Dictionary<string, string>();
cd.AllTrollersAutoFire[_emulator.ControllerDefinition.Name] = new Dictionary<string, string>();
cd.AllTrollersAnalog[_emulator.ControllerDefinition.Name] = new Dictionary<string, Config.AnalogBind>();
cd.AllTrollersAnalog[_emulator.ControllerDefinition.Name] = new Dictionary<string, AnalogBind>();
SaveToDefaults(cd);

View File

@ -12,7 +12,7 @@ namespace BizHawk.Client.EmuHawk
InitializeComponent();
}
public AnalogBindControl(string buttonName, Config.AnalogBind bind)
public AnalogBindControl(string buttonName, AnalogBind bind)
: this()
{
_bind = bind;
@ -26,9 +26,9 @@ namespace BizHawk.Client.EmuHawk
}
public string ButtonName { get; }
public Config.AnalogBind Bind => _bind;
public AnalogBind Bind => _bind;
private Config.AnalogBind _bind;
private AnalogBind _bind;
private bool _listening;
private void Timer1_Tick(object sender, EventArgs e)

View File

@ -8,9 +8,9 @@ namespace BizHawk.Client.EmuHawk
{
public class AnalogBindPanel : UserControl
{
private readonly Dictionary<string, Config.AnalogBind> _realConfigObject;
private readonly Dictionary<string, AnalogBind> _realConfigObject;
public AnalogBindPanel(Dictionary<string, Config.AnalogBind> realConfigObject, List<string> realConfigButtons = null)
public AnalogBindPanel(Dictionary<string, AnalogBind> realConfigObject, List<string> realConfigButtons = null)
{
_realConfigObject = realConfigObject;
LoadSettings(realConfigButtons ?? (IEnumerable<string>)realConfigObject.Keys);
@ -39,7 +39,7 @@ namespace BizHawk.Client.EmuHawk
/// save to config
/// </summary>
/// <param name="saveConfigObject">if non-null, save to possibly different config object than originally initialized from</param>
public void Save(Dictionary<string, Config.AnalogBind> saveConfigObject = null)
public void Save(Dictionary<string, AnalogBind> saveConfigObject = null)
{
var saveTo = saveConfigObject ?? _realConfigObject;
foreach (Control c in Controls)