2015-08-16 23:52:03 +02:00
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <avr/io.h>
|
|
|
|
#include <util/delay.h>
|
|
|
|
|
2016-04-16 05:38:21 +02: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-13 06:25:31 +01:00
|
|
|
void play_sample(uint8_t * s, uint16_t l, bool r);
|
2015-08-29 17:54:38 +02:00
|
|
|
void play_note(double freq, int vol);
|
|
|
|
void stop_note(double freq);
|
2015-08-31 18:39:53 +02:00
|
|
|
void stop_all_notes();
|
2016-01-11 22:53:33 +01:00
|
|
|
void init_notes();
|
2016-04-16 05:38:21 +02:00
|
|
|
void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat);
|