示例#1
0
        /// <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);
        }
示例#2
0
        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();
            };
        }
示例#3
0
 private void Event_Click(object sender, RoutedEventArgs e)
 {
     Ampm.LogEvent("app event", "clicked", "button", 2);
 }
示例#4
0
 private void Log_Click(object sender, RoutedEventArgs e)
 {
     Ampm.Info("informational!");
     Ampm.Warning("warning!");
     Ampm.Error("error!");
 }
示例#5
0
 // Parse the configuration argument.
 async void App_Startup(object sender, StartupEventArgs e)
 {
     AppState.Instance.Config = await Ampm.GetConfig();
 }