public void SetTabletSize(TabletState tablet) { var tabletAreaEditor = absoluteModeEditor.tabletAreaEditor; if (tablet != null && tablet.Digitizer != null) { tabletAreaEditor.ViewModel.Background = new RectangleF[] { new RectangleF(0, 0, tablet.Digitizer.Width, tablet.Digitizer.Height) }; var settings = App.Settings; if (settings != null && settings.TabletWidth == 0 && settings.TabletHeight == 0) { settings.TabletWidth = tablet.Digitizer.Width; settings.TabletHeight = tablet.Digitizer.Height; settings.TabletX = tablet.Digitizer.Width / 2; settings.TabletY = tablet.Digitizer.Height / 2; } } else { tabletAreaEditor.ViewModel.Background = null; } }
public InputState(MouseState mouse = null, KeyboardState keyboard = null, TouchState touch = null, JoystickState joystick = null, MidiState midi = null, TabletState tablet = null) { Mouse = mouse ?? new MouseState(); Keyboard = keyboard ?? new KeyboardState(); Touch = touch ?? new TouchState(); Joystick = joystick ?? new JoystickState(); Midi = midi ?? new MidiState(); Tablet = tablet ?? new TabletState(); }
private void SetTablet(object sender, TabletState tablet) { Application.Instance.AsyncInvoke(() => { this.Title = tablet != null ? $"Tablet Visualizer - {tablet.TabletProperties.Name}" : "Tablet Visualizer"; tabletNameLabel.Text = tablet?.TabletProperties?.Name ?? "No tablet detected."; display.SetTablet(tablet); }); }
public Area Convert(TabletState tablet, double top, double left, double bottom, double right) { double conversionFactor = GetConversionFactor(tablet); var width = (right - left) / conversionFactor; var height = (bottom - top) / conversionFactor; var offsetX = (width / 2) + (left / conversionFactor); var offsetY = (height / 2) + (top / conversionFactor); return(new Area((float)width, (float)height, new Vector2((float)offsetX, (float)offsetY), 0f)); }
public Area Convert(TabletState tablet, double w, double h, double x, double y) { double conversionFactor = XP_PEN_AREA_CONSTANT; var width = w / conversionFactor; var height = h / conversionFactor; var offsetX = (width / 2) + (x / conversionFactor); var offsetY = (height / 2) + (y / conversionFactor); return(new Area((float)width, (float)height, new Vector2((float)offsetX, (float)offsetY), 0f)); }
public Area Convert(TabletState tablet, double up, double left, double down, double right) { var digitizer = tablet.Digitizer; var width = (right - left) * digitizer.Width; var height = (down - up) * digitizer.Height; var offsetX = (width / 2) + (left * digitizer.Width); var offsetY = (height / 2) + (up * digitizer.Height); return(new Area((float)width, (float)height, new Vector2((float)offsetX, (float)offsetY), 0f)); }
// // Received state pipe message // private void PipeState_MessageReceived(object sender, NamedPipeClient.NamedPipeEventArgs e) { GCHandle gcHandle; TabletState readState; // Convert bytes to TabletState if (e.Message.Length == stateBytes.Length) { gcHandle = GCHandle.Alloc(e.Message.Data, GCHandleType.Pinned); readState = (TabletState)Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof(TabletState)); gcHandle.Free(); tabletState = readState; } }
// Use this for initialization void Start() { // バッテリーフルチャージ BatteryFull(); // タブレット画面をオフ tabletScreen.gameObject.SetActive(false); // タブレットの状態を終了状態に tabletState = TabletState.ShutDown; // タブレットを非表示に gameObject.SetActive(false); }
public static void HandleBinding(TabletState tablet, IDeviceReport report) { if (tablet == null) { return; } if (report is ITabletReport tabletReport && tablet.Digitizer.ActiveReportID.IsInRange(tabletReport.ReportID)) { HandlePenBinding(tablet.Digitizer, tabletReport); } if (report is IAuxReport auxReport) { HandleAuxBinding(auxReport); } }
/// <summary> /// タブレットの状態を切り替える /// </summary> public void ChangeStete() { // タブレットが起動していない状態なら if (tabletState == TabletState.ShutDown) { // タブレットの状態を起動中に tabletState = TabletState.Starting; StartUpTablet(); } else { // タブレットの状態を終了に tabletState = TabletState.ShutDown; ShutDwonTablet(); } }
public static void HandleBinding(TabletState tablet, IDeviceReport report) { if (tablet == null) { return; } var pen = tablet.Properties.Specifications.Pen; if (report is ITabletReport tabletReport && pen.ActiveReportID.IsInRange(tabletReport.ReportID)) { HandleTabletReport(pen, tabletReport); } if (report is IAuxReport auxReport) { HandleAuxiliaryReport(auxReport); } }
private void SelectConverterForTablet(TabletState tablet) { tabletState = tablet; var vendorId = tabletState?.Digitizer?.VendorID; if (vendorId != null) { var vendor = (DeviceVendor)vendorId; converterList.Select(t => t.Vendor.HasFlag(vendor)); applyButton.Enabled = true; } else { // Deselect if no tablet is detected converterList.SelectedIndex = -1; } }
public void SetTablet(TabletState tablet) => this.tablet = tablet;
private void HandleTabletChanged(object sender, TabletState tablet) { tabletVisualizer.SetTablet(tablet); this.Title = $"Tablet Debugger" + (tablet != null ? $" - {tablet.TabletProperties.Name}" : string.Empty); }
protected double GetConversionFactor(TabletState tablet) { var digitizer = tablet.Properties.Specifications.Digitizer; return(digitizer.MaxX / digitizer.Width); }
public void UpdateTitle(TabletState tablet) { this.Title = $"OpenTabletDriver v{App.Version} - {tablet?.Properties?.Name ?? "No tablet detected"}"; }
protected double GetConversionFactor(TabletState tablet) { var digitizer = tablet.Digitizer; return(digitizer.MaxX / digitizer.Width); }