Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
realtime_updater.h
1// SPDX-FileCopyrightText: © 2024 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5#include <QList>
6#include <QMutex>
7#include <QObject>
8#include <QTimer>
9
15class RealtimeUpdater : public QObject
16{
17 Q_OBJECT
18public:
19 static RealtimeUpdater &instance ()
20 {
21 static RealtimeUpdater instance;
22 return instance;
23 }
24
25 ~RealtimeUpdater () override;
26
27 void registerObject (QObject * obj);
28
29 void deregisterObject (QObject * obj);
30
31private:
32 RealtimeUpdater (QObject * parent = nullptr);
33
34 void processUpdates ();
35
36 QTimer timer_;
37 QList<QObject *> objects_;
38 QMutex mutex_;
39};