BizHawk/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/C64Schema.cs

121 lines
3.3 KiB
C#

using System.Collections.Generic;
using System.Drawing;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.EmuHawk
{
[Schema("C64")]
// ReSharper disable once UnusedMember.Global
public class C64Schema : IVirtualPadSchema
{
public IEnumerable<PadSchema> GetPadSchemas(IEmulator core)
{
yield return StandardController(1);
yield return StandardController(2);
yield return Keyboard();
}
private static PadSchema StandardController(int controller)
{
return new PadSchema
{
DisplayName = $"Player {controller}",
Size = new Size(174, 74),
Buttons = new[]
{
ButtonSchema.Up(23, 15, controller),
ButtonSchema.Down(23, 36, controller),
ButtonSchema.Left(2, 24, controller),
ButtonSchema.Right(44, 24, controller),
new ButtonSchema(124, 24, controller, "Button") { DisplayName = "B" }
}
};
}
private static PadSchema Keyboard()
{
return new PadSchema
{
DisplayName = "Keyboard",
Size = new Size(500, 150),
Buttons = new[]
{
Key(16, 18, "Left Arrow", "←"),
Key(46, 18, "1"),
Key(70, 18, "2"),
Key(94, 18, "3"),
Key(118, 18, "4"),
Key(142, 18, "5"),
Key(166, 18, "6"),
Key(190, 18, "7"),
Key(214, 18, "8"),
Key(238, 18, "9"),
Key(262, 18, "0"),
Key(286, 18, "Plus", "+"),
Key(310, 18, "Minus", "-"),
Key(330, 18, "Pound", "£"),
Key(354, 18, "Key Clear/Home", "C/H"),
Key(392, 18, "Key Insert/Delete", "I/D"),
Key(450, 18, "F1", "F 1"),
Key(450, 42, "F3", "F 3"),
Key(450, 66, "F5", "F 5"),
Key(450, 90, "F7", "F 7"),
Key(16, 42, "Control", "CTRL"),
Key(62, 42, "Q"),
Key(88, 42, "W"),
Key(116, 42, "E"),
Key(140, 42, "R"),
Key(166, 42, "T"),
Key(190, 42, "Y"),
Key(214, 42, "U"),
Key(240, 42, "I"),
Key(260, 42, "O"),
Key(286, 42, "P"),
Key(310, 42, "At", "@"),
Key(338, 42, "Asterisk", "*"),
Key(360, 42, "Up Arrow", "↑"),
Key(390, 42, "Restore", "RST"),
Key(12, 66, "Run/Stop", "R/S"),
Key(50, 66, "Lck"),
Key(86, 66, "A"),
Key(110, 66, "S"),
Key(134, 66, "D"),
Key(160, 66, "F"),
Key(184, 66, "G"),
Key(210, 66, "H"),
Key(236, 66, "J"),
Key(258, 66, "K"),
Key(282, 66, "L"),
Key(306, 66, "Colon", ":"),
Key(326, 66, "Semicolon", ";"),
Key(346, 66, "Equal", "="),
Key(370, 66, "Return"),
Key(8, 90, "Commodore", "C64"),
Key(44, 90, "Left Shift", "Shift"),
Key(82, 90, "Z"),
Key(106, 90, "X"),
Key(130, 90, "C"),
Key(154, 90, "V"),
Key(178, 90, "B"),
Key(202, 90, "N"),
Key(226, 90, "M"),
Key(252, 90, "Comma", ","),
Key(272, 90, "Period", "."),
Key(292, 90, "Slash", "/"),
Key(314, 90, "Right Shift", "Shift"),
Key(352, 90, "Cursor Up/Down", "Csr U"),
Key(396, 90, "Cursor Left/Right", "Csr L"),
Key(120, 114, "Space", " Space ")
}
};
}
private static ButtonSchema Key(int x, int y, string name, string displayName = null)
=> new ButtonSchema(x, y, "Key " + name)
{
DisplayName = displayName ?? name
};
}
}