Exemple #1
0
        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");
        }
Exemple #2
0
 private void InputController_InputClientSwitched(object sender, ISServerSocket newClient)
 {
     ddController.HandleClientSwitch(oldInputClient, newClient);
     oldInputClient = newClient;
     outMan.ResetKeyStates();
     InputClientSwitched?.Invoke(this, new ISClientInfoModel(newClient, clientMan));
 }
Exemple #3
0
 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);
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }