Mercurial > repos > simple16
comparison src/audio.h @ 24:4c9dbfa30a66
Implemented audio
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 31 Mar 2016 00:07:37 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
23:a085f17b79e9 | 24:4c9dbfa30a66 |
---|---|
1 #ifndef AUDIO_H_ | |
2 #define AUDIO_H_ | |
3 | |
4 #define NUM_CHANNELS 4 | |
5 | |
6 typedef struct { | |
7 int16_t *writebuffer; | |
8 int16_t *playbuffer; | |
9 | |
10 uint64_t buffer_fraction; | |
11 uint64_t buffer_inc; | |
12 uint32_t buffer_pos; | |
13 uint32_t buffer_size; | |
14 | |
15 uint32_t cycles; | |
16 uint32_t clock_inc; | |
17 | |
18 uint16_t timer_load[NUM_CHANNELS]; | |
19 uint16_t timer_cur[NUM_CHANNELS]; | |
20 int16_t value[NUM_CHANNELS]; | |
21 uint8_t volume[NUM_CHANNELS]; | |
22 | |
23 int16_t buffer[]; | |
24 } audio; | |
25 | |
26 audio *alloc_audio(uint32_t master_clock, uint32_t clock_div, int sample_rate, int buffer_size); | |
27 void audio_run(audio *context, uint32_t target); | |
28 void audio_write_freq(audio *context, int channel, uint16_t value); | |
29 void audio_write_vol(audio *context, int pair, uint16_t value); | |
30 | |
31 #endif //AUDIO_H_ |