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
24
25namespace audio_tools {
26
32 public:
34 AudioTimer() = default;
43 virtual ~AudioTimer() = default;
44
45 bool begin(repeating_timer_callback_t callback_f, uint32_t time,
46 TimeUnit unit = MS) {
47 // stop timer if it is already active
48 if (is_active) end();
49 // start timer
50 is_active = p_timer->begin(callback_f, time, unit);
51 return is_active;
52 }
53 bool end() {
54 is_active = false;
55 return p_timer->end();
56 };
57
59
61
62 virtual void setTimer(int timer) { p_timer->setTimer(timer); }
63
65 p_timer->setTimerFunction(function);
66 }
67
68 void setIsSave(bool is_save) { p_timer->setIsSave(is_save); }
69
71 operator bool() { return is_active; }
72
75
80
81 protected:
82 void* object = nullptr;
83 bool is_active = false;
84 AudioTimerDriver timer; // platform specific timer
86};
87
88// Support for legacy name
90
91} // namespace audio_tools
92
93#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:31
AudioTimer(AudioTimerDriverBase &timer)
Construct a new Timer Alarm Repeating object by passing your object which has been customized with so...
Definition AudioTimer.h:40
AudioTimerDriver timer
Definition AudioTimer.h:84
bool is_active
Definition AudioTimer.h:83
virtual void setTimer(int timer)
Definition AudioTimer.h:62
virtual ~AudioTimer()=default
virtual void setTimerFunction(TimerFunction function=DirectTimerCallback)
Definition AudioTimer.h:64
AudioTimerDriverBase * p_timer
Definition AudioTimer.h:85
void setIsSave(bool is_save)
Definition AudioTimer.h:68
AudioTimerDriverBase * driver()
Provides access to the driver.
Definition AudioTimer.h:74
void * callbackParameter()
Definition AudioTimer.h:60
void setDriver(AudioTimerDriverBase &timer)
Allows to set a different driver.
Definition AudioTimer.h:77
void setCallbackParameter(void *obj)
Definition AudioTimer.h:58
bool begin(repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS)
Definition AudioTimer.h:45
AudioTimer()=default
Default constructor.
bool end()
Definition AudioTimer.h:53
TimeUnit
Time Units.
Definition AudioTypes.h:49
@ MS
Definition AudioTypes.h:49
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition LMSEchoCancellationStream.h:6
TimerFunction
Definition AudioTimerBase.h:16
@ DirectTimerCallback
Definition AudioTimerBase.h:17
void(* repeating_timer_callback_t)(void *obj)
Definition AudioTimerAVR.h:7