/// <summary> /// Send mouse data to ampm over OSC. /// </summary> /// <param name="e"></param> protected override void OnMouseMove(MouseEventArgs e) { Point p = e.GetPosition(this); Ampm.UdpEvent("mouse", new { x = p.X, y = p.Y }); base.OnMouseMove(e); }
public App() { Ampm.Dispatcher = Dispatcher; Startup += App_Startup; // Send heartbeats every frame. CompositionTarget.Rendering += (sender, e) => Ampm.Heart(); // Log crashes. DispatcherUnhandledException += (sender, e) => { Ampm.Error(e.Exception.Message + Environment.NewLine + e.Exception.StackTrace); Application.Current.MainWindow.Close(); }; AppDomain.CurrentDomain.UnhandledException += (sender, e) => { Exception exception = e.ExceptionObject as Exception; Ampm.Error(exception == null ? e.ToString() : exception.Message + Environment.NewLine + exception.StackTrace); Application.Current.MainWindow.Close(); }; }
private void Event_Click(object sender, RoutedEventArgs e) { Ampm.LogEvent("app event", "clicked", "button", 2); }
private void Log_Click(object sender, RoutedEventArgs e) { Ampm.Info("informational!"); Ampm.Warning("warning!"); Ampm.Error("error!"); }
// Parse the configuration argument. async void App_Startup(object sender, StartupEventArgs e) { AppState.Instance.Config = await Ampm.GetConfig(); }