private void SwitchInputToClient(Guid client) { if (client == Guid.Empty) { SwitchLocalInput(); return; } foreach (var c in clientMan.AllClients) { if (c.ClientGuid == client) { if (!LocalInput && currentInputClient != null && currentInputClient.Connected) { currentInputClient.SendMessage(InputshareLib.Net.Messages.MessageType.ClientOutOfFocus); } LocalInput = false; currentInputClient = c; c.SendMessage(InputshareLib.Net.Messages.MessageType.ClientInFocus); if (ReleaseInputsOnClientSwitch) { outManager.ReleaseAllKeys(); } inputMan.BlockUserInput(true); SetConsoleText("Current client: " + c.ClientName); InputClientSwitched?.Invoke(this, null); return; } } //inputMan.RemoveClientHotkey(client); ISLogger.Write("Could not switch input to client... client not found"); }
private void InputController_InputClientSwitched(object sender, ISServerSocket newClient) { ddController.HandleClientSwitch(oldInputClient, newClient); oldInputClient = newClient; outMan.ResetKeyStates(); InputClientSwitched?.Invoke(this, new ISClientInfoModel(newClient, clientMan)); }
internal ISServerModel() { serverInstance = new ISServer(); serverInstance.Started += ServerInstance_Started; serverInstance.Stopped += ServerInstance_Stopped; serverInstance.ClientConnected += (object o, ISClientInfoModel c) => ClientConnected?.Invoke(c); serverInstance.ClientDisconnected += (object o, ISClientInfoModel c) => ClientDisconnected?.Invoke(c); serverInstance.InputClientSwitched += (object o, ISClientInfoModel c) => InputClientSwitched?.Invoke(c); }
private void SetInputExternal(ISServerSocket client) { if (!CurrentInputClient.IsLocalhost && CurrentInputClient.IsConnected) { CurrentInputClient.NotifyActiveClient(false); } inputMan.SetInputBlocked(true); CurrentInputClient = client; client.NotifyActiveClient(true); InputClientSwitched?.Invoke(this, client); }
private void SetInputLocal() { if (!CurrentInputClient.IsLocalhost && CurrentInputClient.IsConnected) { CurrentInputClient.NotifyActiveClient(false); } inputMan.SetInputBlocked(false); CurrentInputClient = ISServerSocket.Localhost; //TODO - reset key states? InputClientSwitched?.Invoke(this, ISServerSocket.Localhost); }
private void SwitchLocalInput() { LocalInput = true; if (!curMonitor.Running) { curMonitor.Start(); } if (currentInputClient != null && currentInputClient.Connected) { currentInputClient.SendMessage(InputshareLib.Net.Messages.MessageType.ClientOutOfFocus); } currentInputClient = null; if (ReleaseInputsOnClientSwitch) { outManager.ReleaseAllKeys(); } inputMan.BlockUserInput(false); SetConsoleText("Current client: localhost"); InputClientSwitched?.Invoke(this, null); }