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.h

30 lines
673 B

#ifndef _AUDIO_TIMER_H_
#define _AUDIO_TIMER_H_
class AudioTimer : public AudioStream
{
public:
AudioTimer(void):
AudioStream(1, inputQueueArray)
{
tick = 0;
bpm = 60;
steps = 4;
step_function = NULL;
}
virtual uint32_t get_tick(void);
virtual void set_bpm(uint8_t b);
virtual void function(uint8_t stepping, void(*func)());
virtual void update(void);
private:
audio_block_t *inputQueueArray[1];
uint8_t bpm;
uint8_t steps;
uint16_t _steps;
void (*step_function)();
volatile uint32_t tick;
const float beat = AUDIO_SAMPLE_RATE_EXACT / float(AUDIO_BLOCK_SAMPLES) / 60.0;
};
#endif