Ejemplo n.º 1
0
		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);
			}
		}
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }