private static PadSchema GenerateSchemaForPort(SaturnusControllerDeck.Device device, int controllerNum) { switch (device) { default: case SaturnusControllerDeck.Device.None: return(null); case SaturnusControllerDeck.Device.Gamepad: return(StandardController(controllerNum)); case SaturnusControllerDeck.Device.ThreeDeePad: return(ThreeDeeController(controllerNum)); case SaturnusControllerDeck.Device.Mouse: return(Mouse(controllerNum)); case SaturnusControllerDeck.Device.Wheel: return(Wheel(controllerNum)); case SaturnusControllerDeck.Device.Mission: return(MissionControl(controllerNum)); case SaturnusControllerDeck.Device.DualMission: return(DualMissionControl(controllerNum)); case SaturnusControllerDeck.Device.Keyboard: MessageBox.Show("This peripheral is not supported yet"); return(null); } }
public IEnumerable <PadSchema> GetPadSchemas(IEmulator core) { var ss = ((Saturnus)core).GetSyncSettings(); int totalPorts = (ss.Port1Multitap ? 6 : 1) + (ss.Port2Multitap ? 6 : 1); var padSchemas = new SaturnusControllerDeck.Device[] { ss.Port1, ss.Port2, ss.Port3, ss.Port4, ss.Port5, ss.Port6, ss.Port7, ss.Port8, ss.Port9, ss.Port10, ss.Port11, ss.Port12 }.Take(totalPorts) .Where(p => p != SaturnusControllerDeck.Device.None) .Select((p, i) => GenerateSchemaForPort(p, i + 1)) .Where(s => s != null) .Concat(new[] { ConsoleButtons() }); return(padSchemas); }