arduino-audio-tools
Loading...
Searching...
No Matches
AudioTimerDriverLinux Class Reference

Repeating software timer driver for Desktop using std::thread. More...

#include <CodecOpusOgg.h>

Inheritance diagram for AudioTimerDriverLinux:
AudioTimerDriverBase AudioTimerDriverBase

Public Member Functions

 AudioTimerDriverLinux ()=default
 AudioTimerDriverLinux ()=default
 ~AudioTimerDriverLinux ()
 ~AudioTimerDriverLinux ()
bool begin (repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS) override
bool begin (repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS) override
void * callbackParameter ()
void * callbackParameter ()
bool end () override
bool end () override
void setCallbackParameter (void *obj)
void setCallbackParameter (void *obj)
virtual void setIsSave (bool is_save)
 Not used.
virtual void setIsSave (bool is_save)
 Not used.
virtual void setTimer (int timer)
virtual void setTimer (int timer)
virtual void setTimerFunction (TimerFunction function=DirectTimerCallback)
virtual void setTimerFunction (TimerFunction function=DirectTimerCallback)

Protected Member Functions

void runLoop ()
void runLoop ()
const char * toString (TimeUnit unit)
const char * toString (TimeUnit unit)

Static Protected Member Functions

static uint64_t toMicroseconds (uint32_t value, TimeUnit unit)
static uint64_t toMicroseconds (uint32_t value, TimeUnit unit)

Protected Attributes

repeating_timer_callback_t callback = nullptr
void * object = nullptr
uint64_t period_us = 0
std::atomic< bool > running {false}
std::thread worker

Detailed Description

Repeating software timer driver for Desktop using std::thread.

Provides a lightweight implementation of AudioTimerDriverBase that spawns a dedicated thread and invokes the supplied callback at a fixed interval using sleep_until for drift minimization.

Characteristics:

  • Supports US / MS / SEC periods (converted to microseconds)
  • Safe re-start (calling begin() again stops the previous thread)
  • Thread joins cleanly on end() and in destructor
  • Ignores timer function mode (all modes map to same behavior on Desktop)
Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ AudioTimerDriverLinux() [1/2]

AudioTimerDriverLinux ( )
default

◆ ~AudioTimerDriverLinux() [1/2]

~AudioTimerDriverLinux ( )
inline

◆ AudioTimerDriverLinux() [2/2]

AudioTimerDriverLinux ( )
default

◆ ~AudioTimerDriverLinux() [2/2]

~AudioTimerDriverLinux ( )
inline

Member Function Documentation

◆ begin() [1/2]

bool begin ( repeating_timer_callback_t callback_f,
uint32_t time,
TimeUnit unit = MS )
inlineoverridevirtual

Implements AudioTimerDriverBase.

◆ begin() [2/2]

bool begin ( repeating_timer_callback_t callback_f,
uint32_t time,
TimeUnit unit = MS )
inlineoverridevirtual

Implements AudioTimerDriverBase.

◆ callbackParameter() [1/2]

void * callbackParameter ( )
inlineinherited

◆ callbackParameter() [2/2]

void * callbackParameter ( )
inlineinherited

◆ end() [1/2]

bool end ( )
inlineoverridevirtual

Reimplemented from AudioTimerDriverBase.

◆ end() [2/2]

bool end ( )
inlineoverridevirtual

Reimplemented from AudioTimerDriverBase.

◆ runLoop() [1/2]

void runLoop ( )
inlineprotected

◆ runLoop() [2/2]

void runLoop ( )
inlineprotected

◆ setCallbackParameter() [1/2]

void setCallbackParameter ( void * obj)
inlineinherited

◆ setCallbackParameter() [2/2]

void setCallbackParameter ( void * obj)
inlineinherited

◆ setIsSave() [1/2]

◆ setIsSave() [2/2]

◆ setTimer() [1/2]

◆ setTimer() [2/2]

◆ setTimerFunction() [1/2]

◆ setTimerFunction() [2/2]

◆ toMicroseconds() [1/2]

uint64_t toMicroseconds ( uint32_t value,
TimeUnit unit )
inlinestaticprotected

◆ toMicroseconds() [2/2]

uint64_t toMicroseconds ( uint32_t value,
TimeUnit unit )
inlinestaticprotected

◆ toString() [1/2]

const char * toString ( TimeUnit unit)
inlineprotectedinherited

◆ toString() [2/2]

const char * toString ( TimeUnit unit)
inlineprotectedinherited

Member Data Documentation

◆ callback

repeating_timer_callback_t callback = nullptr
protected

◆ object

void * object = nullptr
protectedinherited

◆ period_us

uint64_t period_us = 0
protected

◆ running

std::atomic< bool > running {false}
protected

◆ worker

std::thread worker
protected

The documentation for this class was generated from the following files: