summaryrefslogtreecommitdiffstats
path: root/src/waveform/guitick.h
blob: 29d4bed6e02ad89051017d50cc0c3275124dfd44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <QObject>

#include "control/controlobject.h"
#include "util/duration.h"
#include "util/memory.h"
#include "util/performancetimer.h"

// A helper class that manages the "guiTickTime" COs, that drive updates of the
// GUI from the VsyncThread at the user's configured FPS (possibly downsampled).
class GuiTick {
  public:
    GuiTick();
    void process();

  private:
    std::unique_ptr<ControlObject> m_pCOGuiTickTime;
    std::unique_ptr<ControlObject> m_pCOGuiTick50ms;
    PerformanceTimer m_cpuTimer;
    mixxx::Duration m_lastUpdateTime;
    mixxx::Duration m_cpuTimeLastTick;
};