private static PadSchema GenerateSchemaForPort(PceControllerType type, int controller) { switch (type) { default: MessageBox.Show($"{type} is not supported yet"); return null; case PceControllerType.Unplugged: return null; case PceControllerType.GamePad: return StandardController(controller); } }
public PceControllerDeck( PceControllerType controller1, PceControllerType controller2, PceControllerType controller3, PceControllerType controller4, PceControllerType controller5) { _port1 = (IPort)Activator.CreateInstance(Implementors[(int)controller1], 1); _port2 = (IPort)Activator.CreateInstance(Implementors[(int)controller2], 2); _port3 = (IPort)Activator.CreateInstance(Implementors[(int)controller3], 3); _port4 = (IPort)Activator.CreateInstance(Implementors[(int)controller4], 4); _port5 = (IPort)Activator.CreateInstance(Implementors[(int)controller5], 5); Definition = new("PC Engine Controller") { BoolButtons = _port1.Definition.BoolButtons .Concat(_port2.Definition.BoolButtons) .Concat(_port3.Definition.BoolButtons) .Concat(_port4.Definition.BoolButtons) .Concat(_port5.Definition.BoolButtons) .ToList() }; foreach (var kvp in _port1.Definition.Axes) { Definition.Axes.Add(kvp); } foreach (var kvp in _port2.Definition.Axes) { Definition.Axes.Add(kvp); } foreach (var kvp in _port3.Definition.Axes) { Definition.Axes.Add(kvp); } foreach (var kvp in _port4.Definition.Axes) { Definition.Axes.Add(kvp); } foreach (var kvp in _port5.Definition.Axes) { Definition.Axes.Add(kvp); } Definition.MakeImmutable(); }
public PceControllerDeck( PceControllerType controller1, PceControllerType controller2, PceControllerType controller3, PceControllerType controller4, PceControllerType controller5) { _port1 = (IPort)Activator.CreateInstance(Implementors[(int)controller1], 1); _port2 = (IPort)Activator.CreateInstance(Implementors[(int)controller2], 2); _port3 = (IPort)Activator.CreateInstance(Implementors[(int)controller3], 3); _port4 = (IPort)Activator.CreateInstance(Implementors[(int)controller4], 4); _port5 = (IPort)Activator.CreateInstance(Implementors[(int)controller5], 5); Definition = new ControllerDefinition { Name = "PC Engine Controller", BoolButtons = _port1.Definition.BoolButtons .Concat(_port2.Definition.BoolButtons) .Concat(_port3.Definition.BoolButtons) .Concat(_port4.Definition.BoolButtons) .Concat(_port5.Definition.BoolButtons) .ToList() }; Definition.AxisControls.AddRange(_port1.Definition.AxisControls); Definition.AxisControls.AddRange(_port2.Definition.AxisControls); Definition.AxisControls.AddRange(_port3.Definition.AxisControls); Definition.AxisControls.AddRange(_port4.Definition.AxisControls); Definition.AxisControls.AddRange(_port5.Definition.AxisControls); Definition.AxisRanges.AddRange(_port1.Definition.AxisRanges); Definition.AxisRanges.AddRange(_port2.Definition.AxisRanges); Definition.AxisRanges.AddRange(_port3.Definition.AxisRanges); Definition.AxisRanges.AddRange(_port4.Definition.AxisRanges); Definition.AxisRanges.AddRange(_port5.Definition.AxisRanges); }