Ejemplo n.º 1
0
 public XboxInputRequestHandler(CloseFunction closeFunction, SenderFunction senderFunction, XboxDevice device, EmulatedControllersService emulatedControllersService, DeviceDisconnectedEventHandler disconnectedEventHandler) : base(closeFunction, senderFunction)
 {
     this.device = device;
     this.emulatedControllersService = emulatedControllersService;
     this.disconnectedEventHandler   = disconnectedEventHandler;
     device.FeedbackEvent           += FeedbackEvent;
 }
Ejemplo n.º 2
0
        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));
        }