arduino-audio-tools
Loading...
Searching...
No Matches
AudioTimer.h
Go to the documentation of this file.
1#pragma once
7#include "AudioToolsConfig.h"
8#if defined(USE_TIMER)
11#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
13#endif
22
23namespace audio_tools {
24
30 public:
41 virtual ~TimerAlarmRepeating() = default;
42
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
57
59
60 virtual void setTimer(int timer) { p_timer->setTimer(timer); }
61
65
67
69 operator bool() { return is_active; }
70
73
78
79 protected:
80 void* object = nullptr;
81 bool is_active = false;
82 TimerAlarmRepeatingDriver timer; // platform specific 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 bool end()
Definition AudioTimerBase.h:28
virtual void setTimer(int timer)
Definition AudioTimerBase.h:34
virtual void setTimerFunction(TimerFunction function=DirectTimerCallback)
Definition AudioTimerBase.h:35
virtual void setIsSave(bool is_save)
Not used.
Definition AudioTimerBase.h:37
virtual bool begin(repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS)=0
void * callbackParameter()
Definition AudioTimerBase.h:32
void setCallbackParameter(void *obj)
Definition AudioTimerBase.h:30
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
virtual ~TimerAlarmRepeating()=default
bool is_active
Definition AudioTimer.h:81
virtual void setTimer(int timer)
Definition AudioTimer.h:60
TimerAlarmRepeatingDriverBase * driver()
Provides access to the driver.
Definition AudioTimer.h:72
virtual void setTimerFunction(TimerFunction function=DirectTimerCallback)
Definition AudioTimer.h:62
void setIsSave(bool is_save)
Definition AudioTimer.h:66
TimerAlarmRepeatingDriver timer
Definition AudioTimer.h:82
void * callbackParameter()
Definition AudioTimer.h:58
void setCallbackParameter(void *obj)
Definition AudioTimer.h:56
bool begin(repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS)
Definition AudioTimer.h:43
TimerAlarmRepeating()=default
Default constructor.
TimerAlarmRepeatingDriverBase * p_timer
Definition AudioTimer.h:83
bool end()
Definition AudioTimer.h:51
TimeUnit
Time Units.
Definition AudioTypes.h:48
@ MS
Definition AudioTypes.h:48
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
TimerFunction
Definition AudioTimerBase.h:16
@ DirectTimerCallback
Definition AudioTimerBase.h:17
void(* repeating_timer_callback_t)(void *obj)
Definition AudioTimerAVR.h:7
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition AudioTypes.h:512