public T FindEmulator <T>(DeviceTypes deviceType, Emulators emulator) where T : IEmulator { return(emulators .Where(e => e.Emulator == emulator) .Where(e => e.SupportedDeviceTypes.Contains(deviceType)) .OfType <T>() .First()); }
public IMessageHandler CreateHandler(HttpContext context, CloseFunction closeFunction, SenderFunction sendFunction) { string emulatorName = PathRegex.Match(context.Request.Path.Value).Groups[1].Value; Emulators emulatorType = Enum.Parse <Emulators>(emulatorName); var emulator = emulatorService.FindEmulator <IDs4Emulator>(DeviceTypes.SonyDualShock4, emulatorType); var device = emulator.CreateDs4Device(); DeviceDisconnectedEventHandler disconnectedEvent = (sender, args) => closeFunction(); device.Closed += disconnectedEvent; var ip = context.Request.HttpContext.Connection.RemoteIpAddress?.ToString(); emulatedControllersService.Add(new NetworkDeviceInfo { Device = device, IPAddress = ip, DeviceType = DeviceTypes.SonyDualShock4, Emulator = emulator.Emulator, }); return(new Ds4InputRequestHandler(closeFunction, sendFunction, device, emulatedControllersService, disconnectedEvent)); }
public async Task ConnectAsync(Emulators emulator) { await base.ConnectAsync($"{DeviceTypes.MicrosoftXbox360.ToString()}/{emulator.ToString()}"); }
public static void Log(Emulators.CDKeyServerClientEmulator Emulator,MessageType MsgType, string Message) { Log(ClientEmulatorLogMessage.NewMessage( ClientEmulatorType.CDKeyServerClient, Emulator.InstanceId, MsgType, Message )); }
public void CancelEdit() { SelectedEmulator = Emulators.FirstOrDefault(emulator => emulator.Id == SelectedEmulatorGuid); TimeoutText = Timeout.ToString(); }