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, bool> _buttons = new WorkingDictionary<string, bool>();
private readonly WorkingDictionary<string, float> _floatButtons = new WorkingDictionary<string, float>(); 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, 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; 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; _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_LargeChange = 10;
public int Analog_SmallChange = 1; 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 // [ControllerType][ButtonName] => Physical Bind
public Dictionary<string, Dictionary<string, string>> AllTrollers = new Dictionary<string, Dictionary<string, string>>(); 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>> 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, 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(); 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); var ret = new Controller(def);
if (allBinds.TryGetValue(def.Name, out var binds)) if (allBinds.TryGetValue(def.Name, out var binds))

View File

@ -84,7 +84,7 @@ namespace BizHawk.Client.EmuHawk
return cp; 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 }; return new AnalogBindPanel(settings, buttons) { Dock = DockStyle.Fill, AutoScroll = true };
} }
@ -225,11 +225,11 @@ namespace BizHawk.Client.EmuHawk
private void LoadPanels( private void LoadPanels(
IDictionary<string, Dictionary<string, string>> normal, IDictionary<string, Dictionary<string, string>> normal,
IDictionary<string, Dictionary<string, string>> autofire, 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(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(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) if (AnalogControlsTab.Controls.Count == 0)
{ {
@ -434,7 +434,7 @@ namespace BizHawk.Client.EmuHawk
var cd = ConfigService.Load<ControlDefaults>(Config.ControlDefaultPath); var cd = ConfigService.Load<ControlDefaults>(Config.ControlDefaultPath);
cd.AllTrollers[_emulator.ControllerDefinition.Name] = new Dictionary<string, string>(); cd.AllTrollers[_emulator.ControllerDefinition.Name] = new Dictionary<string, string>();
cd.AllTrollersAutoFire[_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); SaveToDefaults(cd);

View File

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

View File

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