Krotos Modules 3
Loading...
Searching...
No Matches
ThreadedTimer.h
Go to the documentation of this file.
1#pragma once
2namespace krotos
3{
4 class ThreadedTimer : public juce::Timer, public juce::Thread, public juce::Thread::Listener
5 {
6 public:
7 ThreadedTimer() : Thread("ThreadedTimer") { Thread::addListener(dynamic_cast<Thread::Listener*>(this)); };
8
9 ~ThreadedTimer() { stopThread(1000); };
10
11 // Thread execute callback
12 void run() override
13 {
14 jassert(onThreadCallback); // you need to set a thread callback
16 }
17
18 // Thread exit callback
19 void exitSignalSent() override { stopThread(1000); }
20
21 void timerCallback() override
22 {
23 if (!isThreadRunning())
24 {
25 startThread();
26 }
27
29 {
31 }
32 };
33
34 std::function<void()> onTimerCallback;
35 std::function<void()> onThreadCallback;
36
37 private:
38 };
39} // namespace krotos
Definition ThreadedTimer.h:5
std::function< void()> onTimerCallback
Definition ThreadedTimer.h:34
~ThreadedTimer()
Definition ThreadedTimer.h:9
void timerCallback() override
Definition ThreadedTimer.h:21
void run() override
Definition ThreadedTimer.h:12
std::function< void()> onThreadCallback
Definition ThreadedTimer.h:35
void exitSignalSent() override
Definition ThreadedTimer.h:19
ThreadedTimer()
Definition ThreadedTimer.h:7
Definition AirAbsorptionFilter.cpp:2