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_