public int GetAxisSignDuration(IInputGenerator inputGenerator, string name) { if (buffer[inputGenerator.Id][name].Count == 0) { return(0); } List <InputData> kbuffer = buffer[inputGenerator.Id][name]; int signDuration = 1; float originalAxisVal = kbuffer[0].AxisValue; if (originalAxisVal == 0.0) { //return zero if axis not active at the moment return(0); } for (int i = 1; i < kbuffer.Count; i++) { /* if the result of the multiplication is less than equal to zero, then the axis value at * this index has a different sign (or is zero) either way stop the iteration*/ if (kbuffer[i].AxisValue * originalAxisVal <= 0.0f) { return(signDuration); } signDuration++; } return(signDuration); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: Click"); var elementId = req.Params.ElementId; var result = new Result(); try { var geometry = objectList.Get(elementId)?.Geometry; #if WATCH Log.Debug($"geometry X:{geometry.X}, Y:{geometry.Y}, Width:{geometry.Width}, Height:{geometry.Height}"); #endif result.Value = inputGen.Click(geometry.CenterX, geometry.CenterY); } catch (TimeoutException te) { Log.Debug(te.ToString()); result.Status = 44; result.Value = false; } catch (Exception e) { Log.Debug(e.ToString()); result.Value = false; } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: Drag"); var elementId = req.Params.ElementId; var xSpeed = req.Params.XSpeed; var ySpeed = req.Params.YSpeed; var result = new Result(); try { var geometry = objectList.Get(elementId)?.Geometry; var x = geometry.CenterX; var y = geometry.CenterY; result.Value = inputGen.Drag(x, y, x + xSpeed, y + ySpeed); } catch (TimeoutException te) { Log.Debug(te.ToString()); result.Status = 44; result.Value = false; } catch (Exception e) { Log.Debug(e.ToString()); result.Value = false; } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { var xSpeed = req.Params.XSpeed; var ySpeed = req.Params.YSpeed; var x = Utils.GetScreeenWidth() / 2; var y = 970;//Utils.GetScreenHeight() / 2; var result = new Result(); try { result.Value = inputGen.Drag(x, y, x + xSpeed, y + ySpeed); } catch (TimeoutException te) { Log.Debug(te.ToString()); result.Status = 44; result.Value = false; } catch (Exception e) { Log.Debug(e.ToString()); result.Value = false; } return(result); }
public bool CompareAxisMultipleBuffered(IInputGenerator inputGenerator, string name, int targetCount, Func <float, bool> predicate, bool consumeIfDown, int maxBuffer) { int count = 0; List <int> toConsume = new List <int>(); List <InputData> inputData = buffer[inputGenerator.Id][name]; for (int i = 0; i < maxBuffer && i < inputData.Count; i++) { InputData input = inputData[i]; if (predicate(inputData[i].AxisValue) && inputData[i].Down) { count++; if (consumeIfDown) { toConsume.Add(i); } if (count >= targetCount) { foreach (int j in toConsume) { inputData[j].Down = false; } return(true); } } } return(false); }
void InitializeBuffer(IInputGenerator inputGenerator) { foreach (InputAction inputAction in ReInput.mapping.Actions) { string name = inputAction.name; buffer[inputGenerator.Id][name] = new List <InputData>(); } }
//USE THESE AFTER AWAKE IN START OR AFTER public void AddInputGenerator(IInputGenerator inputGenerator) { buffer.Add(inputGenerator.Id, new Dictionary <string, List <InputData> >()); inputGenerators.Add(inputGenerator); InitializeBuffer(inputGenerator); if (inputGenerators.Count == 1) { playerOneInputGenerator = (PlayerInputGenerator)inputGenerators[0]; } }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: GetDisplayed"); var elementId = req.Params.ElementId; var result = new Result(); var element = objectList.Get(elementId); result.Value = (element != null) ? true : false; return(result); }
public MainWindow( IMouseHookSaveToFile mouseHookSaveToFile, IInputGenerator inputGenerator, IEyes eyes, IBoardLogger boardLogger) { this.inputGenerator = inputGenerator; this.eyes = eyes; this.mouseHookSaveToFile = mouseHookSaveToFile; InitializeComponent(); boardLogger.SetOutput(textbox); }
public bool CompareAxisBuffered(IInputGenerator inputGenerator, string axis, Func <float, bool> predicate, int maxBuffer) { List <InputData> inputData = buffer[inputGenerator.Id][axis]; for (int i = 0; i < maxBuffer && i < inputData.Count; i++) { if (predicate(inputData[i].AxisValue)) { return(true); } } return(false); }
public void InputAxis(IInputGenerator inputGenerator, string axis, float value) { List <InputData> kbuffer = buffer[inputGenerator.Id][axis]; bool held = value != 0.0f && (kbuffer.Count > 0 && Mathf.Abs(kbuffer[0].AxisValue) > 0); //if axis direction changed this frame bool down = value != 0.0f && (kbuffer.Count == 0 || ((kbuffer[0].AxisValue == 0.0f && value != 0.0f) || (kbuffer[0].AxisValue * value < 0.0f))); //not implemented yet; bool up = false; InputData id = new InputData(value, held, down, up); buffer[inputGenerator.Id][axis] = UpdateList(buffer[inputGenerator.Id][axis], id); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: GetLocation"); var elementId = req.Params.ElementId; var result = new Result(); var geometry = objectList.Get(elementId)?.Geometry; if (geometry != null) { result.Value = new Result.Location(geometry.X, geometry.Y); } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: GetText"); var elementId = req.Params.ElementId; var result = new Result(); var value = objectList.Get(elementId)?.Text; if (value != null) { result.Value = value; } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: SetAttribute"); var elementId = req.Params.ElementId; var propertyName = req.Params.Attribute; var newValue = req.Params.Value; var result = new Result(); var ret = objectList.Get(elementId)?.SetPropertyValue(propertyName, newValue); if (ret == true) { result.Value = ret; } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: SetText"); var elementId = req.Params.ElementId; var newValue = req.Params.Text; var replace = req.Params.Replace; var result = new Result(); if (string.IsNullOrEmpty(elementId)) { var focused = objectList.GetFocusedElementIds(); foreach (var id in focused) { if (objectList.Get(id)?.HasProperty("Text") == true) { elementId = id; } } Log.Debug("Find last focused element to set text : " + elementId); } if (string.IsNullOrEmpty(elementId)) { Log.Debug("There is no element to set Text"); return(result); } var oldValue = objectList.Get(elementId)?.GetPropertyValue("Text"); if (!replace) { newValue = oldValue + newValue; } var ret = objectList.Get(elementId)?.SetPropertyValue("Text", newValue); if (ret == true) { result.Value = ret; } return(result); }
public bool GetButtonDownBuffered(IInputGenerator inputGenerator, string name, bool consumeIfDown, int maxBuffer) { List <InputData> inputData = buffer[inputGenerator.Id][name]; for (int i = 0; i < maxBuffer && i < inputData.Count; i++) { InputData input = inputData[i]; if (input.Down) { if (consumeIfDown) { input.Down = false; } return(true); } } return(false); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: GetSize"); var elementId = req.Params.ElementId; var result = new Result(); var geometry = objectList.Get(elementId)?.Geometry; if (geometry != null) { result.Value = new Result.Size(geometry.Width, geometry.Height); } else { result.Value = new Result.Size(); } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: TouchMove"); var elementId = req.Params.ElementId; var xDown = req.Params.XDown; var yDown = req.Params.YDown; var xUp = req.Params.XUp; var yUp = req.Params.YUp; var steps = req.Params.Steps; var result = new Result(); try { if (!String.IsNullOrEmpty(elementId)) { var geometry = objectList.Get(elementId).Geometry; result.Value = inputGen.TouchMove(geometry.CenterX, geometry.CenterY, xUp, yUp, steps); } else if ((xDown > 0) && (yDown > 0) && (xUp > 0) && (yUp > 0)) { result.Value = inputGen.TouchMove(xDown, yDown, xUp, yUp, steps); } else { Log.Debug("Invalid values"); } } catch (TimeoutException te) { Log.Debug(te.ToString()); result.Status = 44; result.Value = false; } catch (Exception e) { Log.Debug(e.ToString()); result.Value = false; } return(result); }
public bool GetButtonDownMultipleBuffered(IInputGenerator inputGenerator, string name, int targetCount, int maxBuffer) { int count = 0; List <InputData> inputData = buffer[inputGenerator.Id][name]; for (int i = 0; i < maxBuffer && i < inputData.Count; i++) { InputData input = inputData[i]; if (input.Down) { count++; if (count >= targetCount) { return(true); } } } return(false); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: TouchDown"); var elementId = req.Params.ElementId; int x = req.Params.X; int y = req.Params.Y; var result = new Result(); try { if (!String.IsNullOrEmpty(elementId)) { var geometry = objectList.Get(elementId)?.Geometry; result.Value = inputGen.TouchDown(geometry.CenterX, geometry.CenterY); } else if ((x > 0) && (y > 0)) { result.Value = inputGen.TouchDown(x, y); } else { Log.Debug("Invalid values"); } } catch (TimeoutException te) { Log.Debug(te.ToString()); result.Status = 44; result.Value = false; } catch (Exception e) { Log.Debug(e.ToString()); result.Value = false; } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { var strategy = req.Params.Strategy; var elementId = req.Params.ElementId; Log.Debug("Run: Find with " + strategy); var result = new Result(); List <Result.Element> list = new List <Result.Element>(); if (strategy == "automationId") { var obj = objectList.Get(elementId); if (obj != null) { list.Add(new Result.Element(elementId)); } } else if (strategy == "focused") { var ids = objectList.GetFocusedElementIds(); foreach (var id in ids) { list.Add(new Result.Element(id)); } } else { var ids = objectList.GetIdsByName(elementId); foreach (var id in ids) { list.Add(new Result.Element(id)); } } result.Value = list; return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { Log.Debug("Run: GetAttribute"); var elementId = req.Params.ElementId; var propertyName = req.Params.Attribute; var result = new Result(); var value = objectList.Get(elementId)?.GetPropertyValue(propertyName); if (value != null) { result.Value = value.ToString(); Log.Debug(elementId + " element have " + propertyName + " property."); } else { Log.Debug(elementId + " element does not have " + propertyName + " property."); } return(result); }
public Result Run(Request req, IObjectList objectList, IInputGenerator inputGen) { var key = req.Params.Key; var result = new Result(); try { result.Value = inputGen.PressKey(key); } catch (TimeoutException te) { Log.Debug(te.ToString()); result.Status = 44; result.Value = false; } catch (Exception e) { Log.Debug(e.ToString()); result.Value = false; } return(result); }
public bool GetButtonUp(IInputGenerator inputGenerator, string name, int frameDelta) { return(buffer[inputGenerator.Id][name].Count > 0 ? buffer[inputGenerator.Id][name][frameDelta].Up : false); }
public bool CompareAxisBuffered(IInputGenerator inputGenerator, string axis, Func <float, bool> predicate) { return(CompareAxisBuffered(inputGenerator, axis, predicate, bufferSize)); }
public Hands(IInputGenerator inputGenerator, IScreenCapturer screenCapturer) { this.inputGenerator = inputGenerator; this.screenCapturer = screenCapturer; }
public float GetAxis(IInputGenerator inputGenerator, string name) { return(GetAxis(inputGenerator, name, 0)); }
public float GetAxis(IInputGenerator inputGenerator, string name, int frameDelta) { return(buffer[inputGenerator.Id][name].Count > 0 ? buffer[inputGenerator.Id][name][frameDelta].AxisValue : 0.0f); }
public float GetAxisNoSnap(IInputGenerator inputGenerator, string name) { return(GetAxisSignDuration(inputGenerator, name) < 2 ? 0.0f : GetAxis(inputGenerator, name)); }
public virtual void Start() { inputGenerator = new PlayerInputGenerator(playerId); InputBuffer.Instance.AddInputGenerator(inputGenerator); }