break AnalogBind out of Config.cs into its own file
This commit is contained in:
parent
2182b6b35d
commit
04a5db6214
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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>>();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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))
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue