public DebugTabletReport(ITabletReport tabletReport) : base(tabletReport) { this.ReportID = tabletReport.ReportID; this.Position = tabletReport.Position; this.Pressure = tabletReport.Pressure; this.PenButtons = tabletReport.PenButtons; }
private static void HandlePenBinding(DigitizerIdentifier identifier, ITabletReport report) { if (TipBinding != null) { float pressurePercent = (float)report.Pressure / identifier.MaxPressure * 100f; if (pressurePercent > TipActivationPressure && !TipState) { TipBinding.Press(); } else if (pressurePercent <= TipActivationPressure && TipState) { TipBinding.Release(); } TipState = pressurePercent > TipActivationPressure; } for (var penButton = 0; penButton < report.PenButtons.Length; penButton++) { if (PenButtonBindings.TryGetValue(penButton, out var binding) && binding != null) { if (report.PenButtons[penButton] && !PenButtonStates[penButton]) { binding.Press(); } else if (!report.PenButtons[penButton] && PenButtonStates[penButton]) { binding.Release(); } } PenButtonStates[penButton] = report.PenButtons[penButton]; } }
private void HandlePenBinding(ITabletReport report) { if (TipBinding != null && TipActivationPressure != 0) { float pressurePercent = (float)report.Pressure / TabletProperties.MaxPressure * 100f; if (pressurePercent >= TipActivationPressure && !TipState) { TipBinding.Press(); } else if (pressurePercent < TipActivationPressure && TipState) { TipBinding.Release(); } TipState = pressurePercent >= TipActivationPressure; } for (var penButton = 0; penButton < report.PenButtons.Length; penButton++) { if (PenButtonBindings.TryGetValue(penButton, out var binding) && binding != null) { if (report.PenButtons[penButton] && !PenButtonStates[penButton]) { binding.Press(); } else if (!report.PenButtons[penButton] && PenButtonStates[penButton]) { binding.Release(); } } PenButtonStates[penButton] = report.PenButtons[penButton]; } }
public SyntheticTabletReport(ITabletReport report) { this.Raw = report.Raw; this.ReportID = report.ReportID; this.Position = report.Position; this.Pressure = report.Pressure; this.PenButtons = report.PenButtons; }
private static IEnumerable <string> GetStringFormat(ITabletReport tabletReport) { yield return($"ReportID:{tabletReport.ReportID}"); yield return($"Position:[{tabletReport.Position.X},{tabletReport.Position.Y}]"); yield return($"Pressure:{tabletReport.Pressure}"); yield return($"PenButtons:[{string.Join(" ", tabletReport.PenButtons)}]"); }
private static void HandleTabletReport(PenSpecifications pen, ITabletReport report) { float pressurePercent = (float)report.Pressure / (float)pen.MaxPressure * 100f; if (report is IEraserReport eraserReport && eraserReport.Eraser) { bool threshold = pressurePercent > EraserActivationPressure; InvokeBinding(report, EraserBinding, EraserState, threshold); EraserState = threshold; }
private static void HandleTabletReport(DigitizerIdentifier identifier, ITabletReport report) { float pressurePercent = (float)report.Pressure / (float)identifier.MaxPressure * 100f; if (report is IEraserReport eraserReport && eraserReport.Eraser) { bool threshold = pressurePercent > EraserActivationPressure; InvokeBinding(report, EraserBinding, EraserState, threshold); EraserState = threshold; }
private void handleTabletReport(ITabletReport tabletReport) { int buttonCount = tabletReport.PenButtons.Length; var buttons = new ButtonInputEntry <TabletPenButton> [buttonCount]; for (int i = 0; i < buttonCount; i++) { buttons[i] = new ButtonInputEntry <TabletPenButton>((TabletPenButton)i, tabletReport.PenButtons[i]); } enqueueInput(new TabletPenButtonInput(buttons)); }
private static void HandleTabletReport(DigitizerIdentifier identifier, ITabletReport report) { if (TipBinding != null) { float pressurePercent = (float)report.Pressure / (float)identifier.MaxPressure * 100f; InvokeBinding(report, TipBinding, TipState, pressurePercent > TipActivationPressure); TipState = pressurePercent > TipActivationPressure; } HandleBindingCollection(report, PenButtonStates, report.PenButtons, PenButtonBindings); }
public void Position(ITabletReport report) { if (report.ReportID <= TabletProperties.ActiveReportID) { return; } var difference = DateTime.Now - _lastReceived; if (difference > ResetTime && _lastReceived != DateTime.MinValue) { _lastReport = null; _lastPosition = null; } if (_lastReport != null) { var pos = new Point(report.Position.X - _lastReport.Position.X, report.Position.Y - _lastReport.Position.Y); // Normalize (ratio of 1) pos.X /= TabletProperties.MaxX; pos.Y /= TabletProperties.MaxY; // Scale to tablet dimensions (mm) pos.X *= TabletProperties.Width; pos.Y *= TabletProperties.Height; // Sensitivity setting pos.X *= XSensitivity; pos.Y *= YSensitivity; // Translate by cursor position pos += GetCursorPosition(); // Filter foreach (var filter in Filters) { pos = filter.Filter(pos); } CursorHandler.SetCursorPosition(pos); _lastPosition = pos; } _lastReport = report; _lastReceived = DateTime.Now; }
public static string StringFormat(this IDeviceReport report, bool raw) { if (raw) { return(BitConverter.ToString(report.Raw).Replace('-', ' ')); } else { return(report switch { IAuxReport auxReport => $"AuxButtons:[{String.Join(" ", auxReport.AuxButtons)}]", ITabletReport tabletReport => $"ReportID:{tabletReport.ReportID}, " + $"Position:[{tabletReport.Position.X},{tabletReport.Position.Y}], " + $"Pressure:{tabletReport.Pressure}, " + $"PenButtons:[{String.Join(" ", tabletReport.PenButtons)}]", _ => $"Raw: {BitConverter.ToString(report.Raw).Replace('-', ' ')}" });
private void HandleTabletReport(TabletReference tablet, PenSpecifications pen, ITabletReport report) { float pressurePercent = (float)report.Pressure / (float)pen.MaxPressure * 100f; if (report is IEraserReport eraserReport && eraserReport.Eraser) { Eraser?.Invoke(tablet, report, pressurePercent); }
public abstract void Position(ITabletReport report);
public override void UpdateState(ITabletReport report) { SyntheticReport = new SyntheticTabletReport(report); Core.Add(report.Position); }