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
23
24namespace audio_tools {
25
31 public:
33 AudioTimer() = default;
42 virtual ~AudioTimer() = default;
43
45 TimeUnit unit = MS) {
46 // stop timer if it is already active
47 if (is_active) end();
48 // start timer
49 is_active = p_timer->begin(callback_f, time, unit);
50 return is_active;
51 }
52 bool end() {
53 is_active = false;
54 return p_timer->end();
55 };
56
58
60
61 virtual void setTimer(int timer) { p_timer->setTimer(timer); }
62
66
68
70 operator bool() { return is_active; }
71
74
79
80 protected:
81 void* object = nullptr;
82 bool is_active = false;
83 AudioTimerDriver timer; // platform specific timer
85};
86
87// Support for legacy name
89
90} // namespace audio_tools
91
92#endif
Repeating Timer functions for repeated execution: Plaease use the typedef AudioTimer.
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 AudioTimer.
Definition AudioTimer.h:30
AudioTimer(AudioTimerDriverBase &timer)
Construct a new Timer Alarm Repeating object by passing your object which has been customized with so...
Definition AudioTimer.h:39
AudioTimerDriver timer
Definition AudioTimer.h:83
bool is_active
Definition AudioTimer.h:82
virtual void setTimer(int timer)
Definition AudioTimer.h:61
virtual ~AudioTimer()=default
virtual void setTimerFunction(TimerFunction function=DirectTimerCallback)
Definition AudioTimer.h:63
AudioTimerDriverBase * p_timer
Definition AudioTimer.h:84
void setIsSave(bool is_save)
Definition AudioTimer.h:67
AudioTimerDriverBase * driver()
Provides access to the driver.
Definition AudioTimer.h:73
void * callbackParameter()
Definition AudioTimer.h:59
void setDriver(AudioTimerDriverBase &timer)
Allows to set a different driver.
Definition AudioTimer.h:76
void setCallbackParameter(void *obj)
Definition AudioTimer.h:57
bool begin(repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS)
Definition AudioTimer.h:44
AudioTimer()=default
Default constructor.
bool end()
Definition AudioTimer.h:52
TimeUnit
Time Units.
Definition AudioTypes.h:44
@ MS
Definition AudioTypes.h:44
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:508