Exemple #1
0
        public override void OnKeyEvent(Keys key)
        {
            double now = Win32.GetTime() / 1000;

            if (FlowTimer.Settings.Mark.IsPressed(key))
            {
                switch (timerStatus)
                {
                case TimerStatus.POWER_ON:
                    powerOnTime = now;
                    setTimerStatus(TimerStatus.RACE_CALIBRATION);
                    Console.WriteLine(powerOnTime);
                    break;

                case TimerStatus.RACE_CALIBRATION:
                    Console.WriteLine(now);
                    new CalibrationInput(now).Show();
                    break;

                case TimerStatus.WAITING:
                    //start timer
                    setTimerStatus(TimerStatus.TIMER_RUNNING);
                    break;

                case TimerStatus.TIMER_RUNNING:
                    //do nothing
                    break;
                }
            }
        }
        public double TimerCallbackFn(double start)
        {
            OnDataChange();
            double ret = Math.Min(Math.Max((Win32.GetTime() - start) / 1000.0, 0.001), CurrentOffset);

            if (ret == CurrentOffset)
            {
                ret = 0.0;
            }
            return(ret);
        }
        public void Submit()
        {
            GetVariableInfo(out Info);
            double now    = Win32.GetTime();
            double offset = (Info.Frame / Info.FPS * 1000.0f) - (now - FlowTimer.TimerStart) + Info.Offset + Adjusted;

            FlowTimer.UpdatePCM(new double[] { offset }, Info.Interval, Info.NumBeeps, false);
            FlowTimer.AudioContext.QueueAudio(FlowTimer.PCM);
            ButtonSubmit.Enabled = false;
            CurrentOffset        = Info.Frame / Info.FPS + (Info.Offset + Adjusted) / 1000.0f;
            Submitted            = true;
            EnableControls(false);
            FlowTimer.MainForm.TextBoxFrame.Enabled = false;
        }
Exemple #4
0
        public static void StartTimer()
        {
            AudioContext.ClearQueuedAudio();

            IsTimerRunning = true;
            TimerStart     = Win32.GetTime();
            CurrentTab.OnTimerStart();

            if (!MainForm.ButtonStart.Enabled)
            {
                AudioContext.ClearQueuedAudio();
                return;
            }

            VariableOffset.OnDataChange();

            EnableControls(false);
            LockedTab = MainForm.TabControl.SelectedTab;

            TimerUpdateThread.AbortIfAlive();
            TimerUpdateThread = new Thread(TimerUpdateCallback);
            TimerUpdateThread.Start();
            CurrentTab.OnVisualTimerStart();
        }
Exemple #5
0
 public double TimerCallbackFn(double start)
 {
     return(Math.Max(5 - (Win32.GetTime() - start / 1000.0), 0.0));
 }
Exemple #6
0
        public FixedOffsetTimer(TabPage tab, params Control[] copyControls) : base(tab, (start) => Math.Max((FlowTimer.MaxOffset - (Win32.GetTime() - start)) / 1000.0, 0.0), copyControls)
        {
            ButtonAdd        = FlowTimer.MainForm.ButtonAdd;
            ButtonLoadTimers = FlowTimer.MainForm.ButtonLoadTimers;
            ButtonSaveTimers = FlowTimer.MainForm.ButtonSaveTimers;

            Timers = new List <Timer>();
        }