arduino-audio-tools
Loading...
Searching...
No Matches
AudioTimer.h
1#pragma once
7#include "AudioToolsConfig.h"
8#if defined(USE_TIMER)
9#include "AudioTools/CoreAudio/AudioTimer/AudioTimerAVR.h"
10#include "AudioTools/CoreAudio/AudioTimer/AudioTimerBase.h"
11#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
12#include "AudioTools/CoreAudio/AudioTimer/AudioTimerESP32.h"
13#endif
14#include "AudioTools/CoreAudio/AudioTimer/AudioTimerESP32Legacy.h"
15#include "AudioTools/CoreAudio/AudioTimer/AudioTimerESP8266.h"
16#include "AudioTools/CoreAudio/AudioTimer/AudioTimerMBED.h"
17#include "AudioTools/CoreAudio/AudioTimer/AudioTimerRP2040.h"
18#include "AudioTools/CoreAudio/AudioTimer/AudioTimerRenesas.h"
19#include "AudioTools/CoreAudio/AudioTimer/AudioTimerSTM32.h"
20#include "AudioTools/CoreAudio/AudioTimer/AudioTimerDesktop.h"
21#include "AudioTools/CoreAudio/AudioLogger.h"
22
23namespace audio_tools {
24
30 public:
41 virtual ~TimerAlarmRepeating() = default;
42
43 bool begin(repeating_timer_callback_t callback_f, uint32_t time,
44 TimeUnit unit = MS) {
45 // stop timer if it is already active
46 if (is_active) end();
47 // start timer
48 is_active = p_timer->begin(callback_f, time, unit);
49 return is_active;
50 }
51 bool end() {
52 is_active = false;
53 return p_timer->end();
54 };
55
56 void setCallbackParameter(void* obj) { p_timer->setCallbackParameter(obj); }
57
58 void* callbackParameter() { return p_timer->callbackParameter(); }
59
60 virtual void setTimer(int timer) { p_timer->setTimer(timer); }
61
62 virtual void setTimerFunction(TimerFunction function = DirectTimerCallback) {
63 p_timer->setTimerFunction(function);
64 }
65
66 void setIsSave(bool is_save) { p_timer->setIsSave(is_save); }
67
69 operator bool() { return is_active; }
70
73
76 p_timer = &timer;
77 }
78
79 protected:
80 void* object = nullptr;
81 bool is_active = false;
82 TimerAlarmRepeatingDriver timer; // platform specific timer
83 TimerAlarmRepeatingDriverBase* p_timer = &timer;
84};
85
86} // namespace audio_tools
87
88#endif
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating.
Definition AudioTimerAVR.h:19
Definition AudioTimerBase.h:22
virtual void setIsSave(bool is_save)
Not used.
Definition AudioTimerBase.h:37
Common Interface definition for TimerAlarmRepeating.
Definition AudioTimer.h:29
void setDriver(TimerAlarmRepeatingDriverBase &timer)
Allows to set a different driver.
Definition AudioTimer.h:75
TimerAlarmRepeating(TimerAlarmRepeatingDriverBase &timer)
Construct a new Timer Alarm Repeating object by passing your object which has been customized with so...
Definition AudioTimer.h:38
TimerAlarmRepeatingDriverBase * driver()
Provides access to the driver.
Definition AudioTimer.h:72
TimerAlarmRepeating()=default
Default constructor.
TimeUnit
Time Units.
Definition AudioTypes.h:46
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10