2015-08-16 14:52:03 -07:00
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <avr/io.h>
|
|
|
|
#include <util/delay.h>
|
|
|
|
|
2016-04-15 20:38:21 -07:00
|
|
|
typedef union {
|
|
|
|
uint8_t raw;
|
|
|
|
struct {
|
|
|
|
bool enable :1;
|
|
|
|
uint8_t level :7;
|
|
|
|
};
|
|
|
|
} audio_config_t;
|
|
|
|
|
|
|
|
void audio_toggle(void);
|
|
|
|
void audio_on(void);
|
|
|
|
void audio_off(void);
|
|
|
|
|
2016-01-12 21:25:31 -08:00
|
|
|
void play_sample(uint8_t * s, uint16_t l, bool r);
|
2015-08-29 08:54:38 -07:00
|
|
|
void play_note(double freq, int vol);
|
|
|
|
void stop_note(double freq);
|
2015-08-31 09:39:53 -07:00
|
|
|
void stop_all_notes();
|
2016-01-11 13:53:33 -08:00
|
|
|
void init_notes();
|
2016-04-15 20:38:21 -07:00
|
|
|
void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat);
|