forked from sin365/AxibugEmuOnline
192 lines
10 KiB
C#
192 lines
10 KiB
C#
using AxibugEmuOnline.Client.InputDevices;
|
|
using AxibugProtobuf;
|
|
using System;
|
|
|
|
namespace AxibugEmuOnline.Client.Settings
|
|
{
|
|
[Flags]
|
|
public enum EssgeeSingleKey : ushort
|
|
{
|
|
NONE = 0,
|
|
UP = 1,
|
|
DOWN = 1 << 1,
|
|
LEFT = 1 << 2,
|
|
RIGHT = 1 << 3,
|
|
BTN_1 = 1 << 4,
|
|
BTN_2 = 1 << 5,
|
|
BTN_3 = 1 << 6,
|
|
BTN_4 = 1 << 7,
|
|
OPTION_1 = 1 << 8,
|
|
OPTION_2 = 1 << 9,
|
|
}
|
|
|
|
public abstract class EssgeeKeyBinding : EmuCoreBinder<EssgeeSingleKey>
|
|
{
|
|
public override void Bind(Keyboard_D device, ControllerBinder controller)
|
|
{
|
|
switch (controller.ControllerIndex)
|
|
{
|
|
case 0:
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Return, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.RightShift, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.W, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.S, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.A, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.D, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.J, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.K, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.U, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.I, 0);
|
|
break;
|
|
case 1:
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Keypad0, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.Delete, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.UpArrow, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.DownArrow, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftArrow, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.RightArrow, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.Keypad1, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.Keypad2, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.Keypad3, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.Keypad4, 0);
|
|
break;
|
|
}
|
|
}
|
|
public override void Bind(PSVController_D device, ControllerBinder controller)
|
|
{
|
|
switch (controller.ControllerIndex)
|
|
{
|
|
case 0:
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Start, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.Select, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.Up, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.Down, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.Left, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.Right, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.Cross, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.Circle, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.Square, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.Triangle, 0);
|
|
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.LeftStick.Up, 1);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.LeftStick.Down, 1);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftStick.Left, 1);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.LeftStick.Right, 1);
|
|
break;
|
|
}
|
|
}
|
|
public override void Bind(DualShockController_D device, ControllerBinder controller)
|
|
{
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Options, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.Share, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.Up, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.Down, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.Left, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.Right, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.Cross, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.Circle, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.Square, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.Triangle, 0);
|
|
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.LeftStick.Up, 1);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.LeftStick.Down, 1);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftStick.Left, 1);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.LeftStick.Right, 1);
|
|
}
|
|
public override void Bind(GamePad_D device, ControllerBinder controller)
|
|
{
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Start, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.Select, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.Up, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.Down, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.Left, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.Right, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.South, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.East, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.West, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.North, 0);
|
|
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.LeftStick.Up, 1);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.LeftStick.Down, 1);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftStick.Left, 1);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.LeftStick.Right, 1);
|
|
}
|
|
public override void Bind(XboxController_D device, ControllerBinder controller)
|
|
{
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Menu, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.View, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.Up, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.Down, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.Left, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.Right, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.A, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.B, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.X, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.Y, 0);
|
|
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.LeftStick.Up, 1);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.LeftStick.Down, 1);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftStick.Left, 1);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.LeftStick.Right, 1);
|
|
}
|
|
public override void Bind(ScreenGamepad_D device, ControllerBinder controller)
|
|
{
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.OPTION_1, 0);
|
|
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.OPTION_2, 0);
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.UP, 0);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.DOWN, 0);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.LEFT, 0);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.RIGHT, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_1, device.BTN_A, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_2, device.BTN_B, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_3, device.BTN_C, 0);
|
|
controller.SetBinding(EssgeeSingleKey.BTN_4, device.BTN_D, 0);
|
|
|
|
controller.SetBinding(EssgeeSingleKey.UP, device.JOYSTICK.Up, 1);
|
|
controller.SetBinding(EssgeeSingleKey.DOWN, device.JOYSTICK.Down, 1);
|
|
controller.SetBinding(EssgeeSingleKey.LEFT, device.JOYSTICK.Left, 1);
|
|
controller.SetBinding(EssgeeSingleKey.RIGHT, device.JOYSTICK.Right, 1);
|
|
}
|
|
}
|
|
|
|
public class MasterSystemKeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.MasterSystem;
|
|
public override int ControllerCount => 2;
|
|
}
|
|
|
|
public class SG1000KeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.Sg1000;
|
|
public override int ControllerCount => 2;
|
|
}
|
|
|
|
public class ColecoVisionKeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.ColecoVision;
|
|
public override int ControllerCount => 2;
|
|
}
|
|
|
|
public class GameBoyColorKeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.GameBoyColor;
|
|
public override int ControllerCount => 1;
|
|
}
|
|
public class GameBoyKeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.GameBoy;
|
|
public override int ControllerCount => 1;
|
|
}
|
|
|
|
public class GameGearKeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.GameGear;
|
|
public override int ControllerCount => 2;
|
|
}
|
|
|
|
public class SC3000KeyBinding : EssgeeKeyBinding
|
|
{
|
|
public override RomPlatformType Platform => RomPlatformType.Sc3000;
|
|
public override int ControllerCount => 2;
|
|
}
|
|
} |