arduino-audio-tools
AudioTimer.h
1 #pragma once
7 #include "AudioConfig.h"
8 #if defined(USE_TIMER)
9 #include "AudioTimer/AudioTimerAVR.h"
10 #include "AudioTimer/AudioTimerBase.h"
11 #include "AudioTimer/AudioTimerESP32.h"
12 #include "AudioTimer/AudioTimerESP8266.h"
13 #include "AudioTimer/AudioTimerMBED.h"
14 #include "AudioTimer/AudioTimerRP2040.h"
15 #include "AudioTimer/AudioTimerRenesas.h"
16 #include "AudioTimer/AudioTimerSTM32.h"
17 #include "AudioTools/AudioLogger.h"
18 
19 namespace audio_tools {
20 
26  public:
28  TimerAlarmRepeating() = default;
35  p_timer = &timer;
36  };
37  virtual ~TimerAlarmRepeating() = default;
38 
39  bool begin(repeating_timer_callback_t callback_f, uint32_t time,
40  TimeUnit unit = MS) {
41  is_active = p_timer->begin(callback_f, time, unit);
42  return is_active;
43  }
44  bool end() {
45  is_active = false;
46  return p_timer->end();
47  };
48 
49  void setCallbackParameter(void* obj) { p_timer->setCallbackParameter(obj); }
50 
51  void* callbackParameter() { return p_timer->callbackParameter(); }
52 
53  virtual void setTimer(int timer) { p_timer->setTimer(timer); }
54 
55  virtual void setTimerFunction(TimerFunction function = DirectTimerCallback) {
56  p_timer->setTimerFunction(function);
57  }
58 
59  void setIsSave(bool is_save) { p_timer->setIsSave(is_save); }
60 
62  operator bool() { return is_active; }
63 
65  TimerAlarmRepeatingDriverBase* driver() { return p_timer; }
66 
67  protected:
68  void* object = nullptr;
69  bool is_active = false;
70  TimerAlarmRepeatingDriver timer; // platform specific timer
71  TimerAlarmRepeatingDriverBase* p_timer = &timer;
72 };
73 
74 } // namespace audio_tools
75 
76 #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:25
TimerAlarmRepeatingDriverBase * driver()
Provides access to the driver.
Definition: AudioTimer.h:65
TimerAlarmRepeating(TimerAlarmRepeatingDriverBase &timer)
Construct a new Timer Alarm Repeating object by passing your object which has been customized with so...
Definition: AudioTimer.h:34
TimerAlarmRepeating()=default
Default constructor.
TimeUnit
Time Units.
Definition: AudioTypes.h:43
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition: AnalogAudio.h:10