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

1087 lines
29 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using BizHawk.Emulation.Common;
using BizHawk.Emulation.Cores.Nintendo.NES;
using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
namespace BizHawk.Client.EmuHawk
{
[Schema("NES")]
public class NesSchema : IVirtualPadSchema
{
public IEnumerable<PadSchema> GetPadSchemas(IEmulator core)
{
if (core is NES)
{
var nes = (NES)core;
var ss = nes.GetSyncSettings();
var isFds = nes.IsFDS;
if (ss.Controls.Famicom)
{
yield return StandardController(1);
yield return Famicom2ndController();
switch (ss.Controls.FamicomExpPort)
{
default:
case "UnpluggedFam":
break;
case "Zapper":
yield return Zapper(3);
break;
case "ArkanoidFam":
yield return ArkanoidPaddle(3);
break;
case "Famicom4P":
yield return StandardController(3);
yield return StandardController(4);
break;
case "FamilyBasicKeyboard":
yield return FamicomFamilyKeyboard(3);
break;
case "OekaKids":
yield return OekaKidsTablet(3);
break;
}
}
else
{
var currentControlerNo = 1;
switch (ss.Controls.NesLeftPort)
{
default:
case "UnpluggedNES":
break;
case "ControllerNES":
yield return StandardController(1);
currentControlerNo++;
break;
case "Zapper":
yield return Zapper(1);
currentControlerNo++;
break;
case "ArkanoidNES":
yield return ArkanoidPaddle(1);
currentControlerNo++;
break;
case "FourScore":
yield return StandardController(1);
yield return StandardController(2);
currentControlerNo += 2;
break;
case "PowerPad":
yield return PowerPad(1);
currentControlerNo++;
break;
case "ControllerSNES":
throw new Exception("TODO");
}
switch (ss.Controls.NesRightPort)
{
default:
case "UnpluggedNES":
break;
case "ControllerNES":
yield return StandardController(currentControlerNo);
break;
case "Zapper":
yield return Zapper(currentControlerNo);
break;
case "ArkanoidNES":
yield return ArkanoidPaddle(currentControlerNo);
break;
case "FourScore":
yield return StandardController(currentControlerNo);
yield return StandardController(currentControlerNo + 1);
currentControlerNo += 2;
break;
case "PowerPad":
yield return PowerPad(currentControlerNo);
break;
case "ControllerSNES":
throw new Exception("TODO");
}
if (currentControlerNo == 0)
{
yield return null;
}
}
if (isFds)
{
yield return FdsConsoleButtons(core.ControllerDefinition.BoolButtons.Count(b => b.StartsWith("FDS Insert ")));
}
else
{
yield return NesConsoleButtons();
}
}
else
// Quicknes Can support none, one or two controllers.
{
var ss = ((QuickNES)core).GetSyncSettings();
if (ss.LeftPortConnected == true && ss.RightPortConnected == true)
{
// Set both controllers
yield return StandardController(1);
yield return StandardController(2);
}
else if (ss.LeftPortConnected == true && ss.RightPortConnected == false)
{
yield return StandardController(1);
}
else if (ss.LeftPortConnected == false && ss.RightPortConnected == true)
{
yield return StandardController(1);
}
yield return NesConsoleButtons();
}
}
private static PadSchema NesConsoleButtons()
{
return new PadSchema
{
DisplayName = "Console",
IsConsole = true,
DefaultSize = new Size(150, 50),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "Reset",
DisplayName = "Reset",
Location = new Point(10, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "Power",
DisplayName = "Power",
Location = new Point(58, 15),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
private static PadSchema FdsConsoleButtons(int diskSize)
{
var buttons = new List<PadSchema.ButtonSchema>
{
new PadSchema.ButtonSchema
{
Name = "Reset",
DisplayName = "Reset",
Location = new Point(10, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "Power",
DisplayName = "Power",
Location = new Point(58, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "FDS Eject",
DisplayName = "Eject",
Location = new Point(108, 15),
Type = PadSchema.PadInputType.Boolean
}
};
for (var i = 0; i < diskSize; i++)
{
buttons.Add(new PadSchema.ButtonSchema
{
Name = "FDS Insert " + i,
DisplayName = "Insert " + i,
Location = new Point(10 + (i * 58), 50),
Type = PadSchema.PadInputType.Boolean
});
}
var width = 20 + (diskSize * 58);
if (width < 160)
{
width = 160;
}
return new PadSchema
{
DisplayName = "Console",
IsConsole = true,
DefaultSize = new Size(width, 100),
Buttons = buttons
};
}
private static PadSchema StandardController(int controller)
{
return new PadSchema
{
DisplayName = "Player " + controller,
IsConsole = false,
DefaultSize = new Size(174, 74),
MaxSize = new Size(174, 74),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Up",
DisplayName = "",
Icon = Properties.Resources.BlueUp,
Location = new Point(23, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Down",
DisplayName = "",
Icon = Properties.Resources.BlueDown,
Location = new Point(23, 36),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Left",
DisplayName = "",
Icon = Properties.Resources.Back,
Location = new Point(2, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Right",
DisplayName = "",
Icon = Properties.Resources.Forward,
Location = new Point(44, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " B",
DisplayName = "B",
Location = new Point(124, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " A",
DisplayName = "A",
Location = new Point(147, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Select",
DisplayName = "s",
Location = new Point(72, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Start",
DisplayName = "S",
Location = new Point(93, 24),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
private static PadSchema Famicom2ndController()
{
var controller = 2;
return new PadSchema
{
DisplayName = "Player 2",
IsConsole = false,
DefaultSize = new Size(174, 74),
MaxSize = new Size(174, 74),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Up",
DisplayName = "",
Icon = Properties.Resources.BlueUp,
Location = new Point(23, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Down",
DisplayName = "",
Icon = Properties.Resources.BlueDown,
Location = new Point(23, 36),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Left",
DisplayName = "",
Icon = Properties.Resources.Back,
Location = new Point(2, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Right",
DisplayName = "",
Icon = Properties.Resources.Forward,
Location = new Point(44, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " B",
DisplayName = "B",
Location = new Point(124, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " A",
DisplayName = "A",
Location = new Point(147, 24),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Microphone",
DisplayName = "Mic",
Location = new Point(72, 24),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
private static PadSchema Zapper(int controller)
{
return new PadSchema
{
DisplayName = "Zapper",
IsConsole = false,
DefaultSize = new Size(356, 290),
MaxSize = new Size(356, 290),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Zapper X",
Location = new Point(14, 17),
Type = PadSchema.PadInputType.TargetedPair,
TargetSize = new Size(256, 240),
SecondaryNames = new[]
{
"P" + controller + " Zapper Y",
}
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Fire",
DisplayName = "Fire",
Location = new Point(284, 17),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
private static PadSchema ArkanoidPaddle(int controller)
{
return new PadSchema
{
DisplayName = "Arkanoid Paddle",
IsConsole = false,
DefaultSize = new Size(380, 110),
MaxSize = new Size(380, 110),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Paddle",
DisplayName = "Arkanoid Paddle",
Location = new Point(14, 17),
Type = PadSchema.PadInputType.FloatSingle,
TargetSize = new Size(380, 69),
MaxValue = 160
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Fire",
DisplayName = "Fire",
Location = new Point(14, 85),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
private static PadSchema PowerPad(int controller)
{
return new PadSchema
{
DisplayName = "Power Pad",
IsConsole = false,
DefaultSize = new Size(154, 114),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP1",
DisplayName = "1 ",
Location = new Point(14, 17),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP2",
DisplayName = "2 ",
Location = new Point(45, 17),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP3",
DisplayName = "3 ",
Location = new Point(76, 17),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP4",
DisplayName = "4 ",
Location = new Point(107, 17),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP5",
DisplayName = "5 ",
Location = new Point(14, 48),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP6",
DisplayName = "6 ",
Location = new Point(45, 48),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP7",
DisplayName = "7 ",
Location = new Point(76, 48),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP8",
DisplayName = "8 ",
Location = new Point(107, 48),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP9",
DisplayName = "9 ",
Location = new Point(14, 79),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP10",
DisplayName = "10",
Location = new Point(45, 79),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP11",
DisplayName = "11",
Location = new Point(76, 79),
Type = PadSchema.PadInputType.Boolean,
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " PP12",
DisplayName = "12",
Location = new Point(107, 79),
Type = PadSchema.PadInputType.Boolean,
}
}
};
}
private static PadSchema OekaKidsTablet(int controller)
{
return new PadSchema
{
DisplayName = "Tablet",
IsConsole = false,
DefaultSize = new Size(356, 290),
MaxSize = new Size(356, 290),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Pen X",
Location = new Point(14, 17),
Type = PadSchema.PadInputType.TargetedPair,
TargetSize = new Size(256, 240),
SecondaryNames = new[]
{
"P" + controller + " Pen Y",
}
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Click",
DisplayName = "Click",
Location = new Point(284, 17),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Touch",
DisplayName = "Touch",
Location = new Point(284, 48),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
private static PadSchema FamicomFamilyKeyboard(int controller)
{
return new PadSchema
{
DisplayName = "Family Basic Keyboard",
IsConsole = false,
DefaultSize = new Size(560, 180),
Buttons = new[]
{
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F1",
DisplayName = " F1 ",
Location = new Point(23, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F2",
DisplayName = " F2 ",
Location = new Point(76, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F3",
DisplayName = " F3 ",
Location = new Point(129, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F4",
DisplayName = " F4 ",
Location = new Point(182, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F5",
DisplayName = " F5 ",
Location = new Point(235, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F6",
DisplayName = " F6 ",
Location = new Point(288, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F7",
DisplayName = " F7 ",
Location = new Point(341, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F8",
DisplayName = " F8 ",
Location = new Point(394, 15),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 1",
DisplayName = "1",
Location = new Point(36, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 2",
DisplayName = "2",
Location = new Point(60, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 3",
DisplayName = "3",
Location = new Point(84, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 4",
DisplayName = "4",
Location = new Point(108, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 5",
DisplayName = "5",
Location = new Point(132, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 6",
DisplayName = "6",
Location = new Point(156, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 7",
DisplayName = "7",
Location = new Point(180, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 8",
DisplayName = "8",
Location = new Point(204, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 9",
DisplayName = "9",
Location = new Point(228, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " 0",
DisplayName = "0",
Location = new Point(252, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Minus",
DisplayName = "-",
Location = new Point(276, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Caret",
DisplayName = "^",
Location = new Point(296, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Yen",
DisplayName = "¥",
Location = new Point(320, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Stop",
DisplayName = "STOP",
Location = new Point(344, 38),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Escape",
DisplayName = "ESC",
Location = new Point(15, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Q",
DisplayName = "Q",
Location = new Point(54, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " W",
DisplayName = "W",
Location = new Point(80, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " E",
DisplayName = "E",
Location = new Point(108, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " R",
DisplayName = "R",
Location = new Point(132, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " T",
DisplayName = "T",
Location = new Point(158, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Y",
DisplayName = "Y",
Location = new Point(182, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " U",
DisplayName = "U",
Location = new Point(206, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " I",
DisplayName = "I",
Location = new Point(232, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " O",
DisplayName = "O",
Location = new Point(252, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " P",
DisplayName = "P",
Location = new Point(278, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " At",
DisplayName = "@",
Location = new Point(302, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Left Bracket",
DisplayName = "[",
Location = new Point(330, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Return",
DisplayName = "RETURN",
Location = new Point(350, 61),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Control",
DisplayName = "CTR",
Location = new Point(30, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " A",
DisplayName = "A",
Location = new Point(70, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " S",
DisplayName = "S",
Location = new Point(94, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " D",
DisplayName = "D",
Location = new Point(118, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " F",
DisplayName = "F",
Location = new Point(144, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " G",
DisplayName = "G",
Location = new Point(168, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " H",
DisplayName = "H",
Location = new Point(194, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " J",
DisplayName = "J",
Location = new Point(220, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " K",
DisplayName = "K",
Location = new Point(242, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " L",
DisplayName = "L",
Location = new Point(266, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Semicolon",
DisplayName = ";",
Location = new Point(290, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Colon",
DisplayName = ":",
Location = new Point(311, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Right Bracket",
DisplayName = "]",
Location = new Point(332, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " カナ",
DisplayName = "カナ",
Location = new Point(352, 84),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Left Shift",
DisplayName = "SHIFT",
Location = new Point(10, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Z",
DisplayName = "Z",
Location = new Point(58, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " X",
DisplayName = "X",
Location = new Point(82, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " C",
DisplayName = "C",
Location = new Point(106, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " V",
DisplayName = "V",
Location = new Point(130, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " B",
DisplayName = "B",
Location = new Point(154, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " N",
DisplayName = "N",
Location = new Point(178, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " M",
DisplayName = "M",
Location = new Point(203, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Comma",
DisplayName = ",",
Location = new Point(229, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Period",
DisplayName = ".",
Location = new Point(249, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Slash",
DisplayName = "/",
Location = new Point(270, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Underscore",
DisplayName = "_",
Location = new Point(292, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Right Shift",
DisplayName = "SHIFT",
Location = new Point(316, 107),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Graph",
DisplayName = "GRPH",
Location = new Point(82, 130),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Space",
DisplayName = " SPACE ",
Location = new Point(130, 130),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Clear/Home",
DisplayName = " CLR\nHOME",
Location = new Point(420, 46),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Insert",
DisplayName = "\nINS",
Location = new Point(470, 46),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Delete",
DisplayName = "\nDEL",
Location = new Point(506, 46),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Up",
DisplayName = " ↑ ",
Location = new Point(468, 86),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Down",
DisplayName = " ↓ ",
Location = new Point(468, 134),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Left",
DisplayName = " ← ",
Location = new Point(446, 110),
Type = PadSchema.PadInputType.Boolean
},
new PadSchema.ButtonSchema
{
Name = "P" + controller + " Right",
DisplayName = " ➝ ",
Location = new Point(488, 110),
Type = PadSchema.PadInputType.Boolean
}
}
};
}
}
}