protected override void OnMessageReceived(string message) { RawInput raw = InputMessageParser.ParseMessage(message); if (raw == null) { return; } var optionalButton = InputMessageParser.ParseButton(raw); if (optionalButton is AllInputButtons button) { Debug.Log($"Received input {button.ToString()}"); InputSender.Send(button); } else { var formattedMessage = $"{raw.controllerCommand} {raw.controllerValue}"; if (settings.LogDebugInfo) { Debug.Log($"Received message {formattedMessage}"); } Events.Instance.Raise(new InputUpdate(formattedMessage)); } }
public void Initialize(Process process) { //Console.WriteLine("|-- PreLoader: Setting process..."); //Process[] mediviaProcess = Process.GetProcessesByName("Medivia_OGL"); //process = mediviaProcess[0]; if (process == null) { Console.WriteLine("null"); } ClientImpl.Process = process; InputSender inputSender = InputSenderImpl.Instance; Console.WriteLine("|-- QueueManager: Creating queue manager thread ... "); Console.WriteLine("|-- PreLoader: Setting process... [done]"); Client client = ClientImpl.Instance; Game game = GameImpl.Instance; Bot bot = BotImpl.Instance; Player player = PlayerImpl.Instance; Console.WriteLine("|-- PreLoader: Everyting done ..."); //InputQueueManager queueManager = InputQueueManager.Instance; //Thread queueThread = new Thread(new ThreadStart(queueManager.Initialize)); //queueThread.Start(); //while (!queueThread.IsAlive) ; //Console.WriteLine("|-- QueueManager: Creating queue manager thread ... [done]"); }
void Awake() { vehicle = transform.parent.GetComponent <PlayerVehicle>(); reload(); maximumLaunchForce = minimumLaunchForce * 2f; inputSender = transform.parent.GetComponent <InputSender>(); }
void Awake() { vehicle = transform.parent.GetComponent <PlayerVehicleOwner>(); networkView = vehicle.GetNetworkView(); maximumLaunchForce = minimumLaunchForce * 2f; inputSender = transform.parent.GetComponent <InputSender>(); projectileCamera.gameObject.SetActive(false); }
void Update() { _focusList = focusList.ToArray(); _currentFocus = currentFocus; if (focusList.Count > 0) { InputSender.SendInput(new GameObject[] { focusList.Last() }, sendInput); } }
//[DllImport("user32.dll")] //static extern IntPtr GetForegroundWindow(); //[DllImport("user32.dll")] //static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr p2); //[DllImport("user32.dll")] //static extern bool GetGUIThreadInfo(uint idThread, ref GUITHREADINFO lpgui); //[DllImport("user32.dll")] //static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); //struct GUITHREADINFO //{ // public int cbSize; // public int flags; // public IntPtr hwndActive; // public IntPtr hwndFocus; // public IntPtr hwndCapture; // public IntPtr hwndMenuOwner; // public IntPtr hwndMoveSize; // public IntPtr hwndCaret; // public RECT rcCaret; //} //[StructLayout(LayoutKind.Sequential)] //struct RECT //{ // public int left, top, right, bottom; //} //internal static IntPtr GetActiveWindowControl() //{ // IntPtr activeWin = GetForegroundWindow(); // if (activeWin == IntPtr.Zero) // { // return IntPtr.Zero; // } // uint threadId = GetWindowThreadProcessId(activeWin, IntPtr.Zero); // GUITHREADINFO guiThreadInfo = new GUITHREADINFO(); // guiThreadInfo.cbSize = Marshal.SizeOf(guiThreadInfo); // GetGUIThreadInfo(threadId, ref guiThreadInfo); // if (guiThreadInfo.hwndFocus == IntPtr.Zero) // { // return activeWin; // Example: console // } // else // { // return guiThreadInfo.hwndFocus; // } //} internal static void PressBackspace() { InputSender.Input[] inputs = new InputSender.Input[2]; // Key down inputs[0].type = InputSender.InputType.Keyboard; inputs[0].ki.wVk = (ushort)0x08; // Key up inputs[1].type = InputSender.InputType.Keyboard; inputs[1].ki.wVk = (ushort)0x08; inputs[1].ki.dwFlags = InputSender.KeyboardEventFlags.KeyUp; InputSender.SendInput(inputs); }
void Start() { if (renderStreaming.runOnAwake) { return; } renderStreaming.Run( hardwareEncoder: RenderStreamingSettings.EnableHWCodec, signaling: RenderStreamingSettings.Signaling); inputSender = GetComponent <InputSender>(); inputSender.OnStartedChannel += OnStartedChannel; }
internal static void InputChar(char c) { ushort ch = (ushort)c; InputSender.Input[] inputs = new InputSender.Input[2]; // Key down inputs[0].type = InputSender.InputType.Keyboard; inputs[0].ki.wScan = ch; inputs[0].ki.dwFlags = InputSender.KeyboardEventFlags.Unicode; // Key up inputs[1].type = InputSender.InputType.Keyboard; inputs[1].ki.wScan = ch; inputs[1].ki.dwFlags = InputSender.KeyboardEventFlags.Unicode | InputSender.KeyboardEventFlags.KeyUp; InputSender.SendInput(inputs); }
private void RelaxThread() { while (_playing) { if (_playing) { for (int i = 0; i < BMParser.Instance.HitObjects.Count; i++) { InputSender.ReleaseKeys(); while (OsuManager.Instance.CurrentAudioTime < BMParser.Instance.HitObjects[i].getStartTime()) { Thread.Sleep(1); } if (BMParser.Instance.HitObjects[i].isSlider()) { InputSender.Press(); while (OsuManager.Instance.CurrentAudioTime < BMParser.Instance.HitObjects[i].getEndTime()) { Thread.Sleep(1); } } else if (BMParser.Instance.HitObjects[i].isSpinner()) { InputSender.Press(); while (OsuManager.Instance.CurrentAudioTime < BMParser.Instance.HitObjects[i].getEndTime()) { Thread.Sleep(1); } } else { InputSender.FourKeyClick(); } } } else { break; } } }
public static void SetInputRange(this InputSender sender, RawImage image) { // correct pointer position Vector3[] corners = new Vector3[4]; image.rectTransform.GetWorldCorners(corners); Camera camera = image.canvas.worldCamera; var corner0 = RectTransformUtility.WorldToScreenPoint(camera, corners[0]); var corner2 = RectTransformUtility.WorldToScreenPoint(camera, corners[2]); var region = new Rect( corner0.x, corner0.y, corner2.x - corner0.x, corner2.y - corner0.y ); var size = new Vector2Int(image.texture.width, image.texture.height); sender.SetInputRange(region, size); }
internal static void InputString(string str) { char[] chars = str.ToCharArray(); InputSender.Input[] inputs = new InputSender.Input[chars.Length * 2]; for (int i = 0; i < chars.Length; i++) { ushort ch = (ushort)chars[i]; // Key down inputs[i * 2].type = InputSender.InputType.Keyboard; inputs[i * 2].ki.wScan = ch; inputs[i * 2].ki.dwFlags = InputSender.KeyboardEventFlags.Unicode; // Key up inputs[i * 2 + 1].type = InputSender.InputType.Keyboard; inputs[i * 2 + 1].ki.wScan = ch; inputs[i * 2 + 1].ki.dwFlags = InputSender.KeyboardEventFlags.Unicode | InputSender.KeyboardEventFlags.KeyUp; } InputSender.SendInput(inputs); //System.Windows.Forms.SendKeys.Send(str); //const uint WM_IME_STARTCOMPOSITION = 0x010D; //const uint WM_IME_COMPOSITION = 0x010F; //const uint WM_IME_ENDCOMPOSITION = 0x010E; //const uint WM_IME_NOTIFY = 0x0282; //IntPtr active = GetActiveWindowControl(); //if (active != IntPtr.Zero) //{ // for (int i = 0; i < chars.Length; i++) // { // ushort ch = (ushort)chars[i]; // SendMessage(active, WM_IME_STARTCOMPOSITION, (IntPtr)0, (IntPtr)0); // //SendMessage(active, WM_IME_COMPOSITION, (IntPtr)(uint)ch, (IntPtr)0x0800); // SendMessage(active, WM_IME_COMPOSITION, (IntPtr)0xA7DA, (IntPtr)0x0800); // SendMessage(active, WM_IME_NOTIFY, (IntPtr)0x010D, (IntPtr)0); // SendMessage(active, WM_IME_ENDCOMPOSITION, (IntPtr)0, (IntPtr)0); // SendMessage(active, WM_IME_NOTIFY, (IntPtr)0x010E, (IntPtr)0); // } //} }
public InputSenderTests() { _sender = new InputSender(new FakeServices()); _pushData = ToArraySegment("Alpha"); _pullBuffer = ToArraySegment(1024); }
void Awake() { vehicle = transform.parent.GetComponent<PlayerVehicleOwner>(); networkView = vehicle.GetNetworkView(); maximumLaunchForce = minimumLaunchForce * 2f; inputSender = transform.parent.GetComponent<InputSender>(); projectileCamera.gameObject.SetActive(false); }
void Awake() { vehicle = transform.parent.GetComponent<PlayerVehicle>(); reload(); maximumLaunchForce = minimumLaunchForce * 2f; inputSender = transform.parent.GetComponent<InputSender>(); }
private CallContext CreateCallContext() { _inputStream = new InputStream(() => { var sender = new InputSender(_context.Services); _messageBody.Subscribe(sender.Push); return(sender); }); _outputStream = new OutputStream(OnWrite, OnFlush); _duplexStream = new DuplexStream(_inputStream, _outputStream); var remoteIpAddress = "127.0.0.1"; var remotePort = "0"; var localIpAddress = "127.0.0.1"; var localPort = "80"; var isLocal = false; if (_context.Socket != null) { var remoteEndPoint = _context.Socket.RemoteEndPoint as IPEndPoint; if (remoteEndPoint != null) { remoteIpAddress = remoteEndPoint.Address.ToString(); remotePort = remoteEndPoint.Port.ToString(CultureInfo.InvariantCulture); } var localEndPoint = _context.Socket.LocalEndPoint as IPEndPoint; if (localEndPoint != null) { localIpAddress = localEndPoint.Address.ToString(); localPort = localEndPoint.Port.ToString(CultureInfo.InvariantCulture); } if (remoteEndPoint != null && localEndPoint != null) { isLocal = Equals(remoteEndPoint.Address, localEndPoint.Address); } } var callContext = new CallContext(); var request = (IHttpRequestFeature)callContext; var response = (IHttpResponseFeature)callContext; //var lifetime = (IHttpRequestLifetimeFeature)callContext; request.Protocol = _httpVersion; request.Scheme = "http"; request.Method = _method; request.Path = _path; request.PathBase = ""; request.QueryString = _queryString; request.Headers = _requestHeaders; request.Body = _inputStream; response.Headers = _responseHeaders; response.Body = _outputStream; //var env = new Dictionary<string, object>(); //env["owin.Version"] = "1.0"; //env["owin.RequestProtocol"] = _httpVersion; //env["owin.RequestScheme"] = "http"; //env["owin.RequestMethod"] = _method; //env["owin.RequestPath"] = _path; //env["owin.RequestPathBase"] = ""; //env["owin.RequestQueryString"] = _queryString; //env["owin.RequestHeaders"] = _requestHeaders; //env["owin.RequestBody"] = _inputStream; //env["owin.ResponseHeaders"] = _responseHeaders; //env["owin.ResponseBody"] = _outputStream; //env["owin.CallCancelled"] = _cts.Token; //env["opaque.Upgrade"] = (Action<IDictionary<string, object>, Func<IDictionary<string, object>, Task>>)Upgrade; //env["opaque.Stream"] = _duplexStream; //env["server.RemoteIpAddress"] = remoteIpAddress; //env["server.RemotePort"] = remotePort; //env["server.LocalIpAddress"] = localIpAddress; //env["server.LocalPort"] = localPort; //env["server.IsLocal"] = isLocal; return(callContext); }
public void SendButtonToController() { InputSender.Send(allInputButtons); }