You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MicroDexed/audio_timer.cpp

43 lines
631 B

#include <Audio.h>
#include "config.h"
#include "audio_timer.h"
void AudioTimer::update(void)
{
audio_block_t *in;
in = receiveReadOnly(0);
if (in)
release(in);
tick++;
if (tick >= _steps)
{
if (step_function != NULL)
(*step_function)();
tick = 0;
}
}
uint32_t AudioTimer::get_tick(void)
{
return (tick);
}
void AudioTimer::set_bpm(uint8_t b)
{
bpm = b;
}
void AudioTimer::function(uint8_t stepping, void(*func)())
{
steps = stepping;
if (func != NULL)
{
step_function = func;
_steps = beat * float(bpm) * 4.0 / float(stepping) + 0.5;
}
else
step_function = NULL;
}