comparison psg.h @ 1692:5dacaef602a7 segacd

Merge from default
author Michael Pavone <pavone@retrodev.com>
date Sat, 05 Jan 2019 00:58:08 -0800
parents 6ce36c3f250b
children 4c322abd9fa5
comparison
equal deleted inserted replaced
1504:95b3a1a8b26c 1692:5dacaef602a7
6 #ifndef PSG_CONTEXT_H_ 6 #ifndef PSG_CONTEXT_H_
7 #define PSG_CONTEXT_H_ 7 #define PSG_CONTEXT_H_
8 8
9 #include <stdint.h> 9 #include <stdint.h>
10 #include "serialize.h" 10 #include "serialize.h"
11 #include "render.h"
11 12
12 typedef struct { 13 typedef struct {
13 int16_t *audio_buffer; 14 audio_source *audio;
14 int16_t *back_buffer;
15 uint64_t buffer_fraction;
16 uint64_t buffer_inc;
17 uint32_t buffer_pos;
18 uint32_t clock_inc; 15 uint32_t clock_inc;
19 uint32_t cycles; 16 uint32_t cycles;
20 uint32_t sample_rate;
21 uint32_t samples_frame;
22 int32_t lowpass_alpha;
23 uint16_t lsfr; 17 uint16_t lsfr;
24 uint16_t counter_load[4]; 18 uint16_t counter_load[4];
25 uint16_t counters[4]; 19 uint16_t counters[4];
26 int16_t accum;
27 int16_t last_sample;
28 uint8_t volume[4]; 20 uint8_t volume[4];
29 uint8_t output_state[4]; 21 uint8_t output_state[4];
30 uint8_t noise_out; 22 uint8_t noise_out;
31 uint8_t noise_use_tone; 23 uint8_t noise_use_tone;
32 uint8_t noise_type; 24 uint8_t noise_type;
33 uint8_t latch; 25 uint8_t latch;
34 } psg_context; 26 } psg_context;
35 27
36 28
37 void psg_init(psg_context * context, uint32_t sample_rate, uint32_t master_clock, uint32_t clock_div, uint32_t samples_frame, uint32_t lowpass_cutoff); 29 void psg_init(psg_context * context, uint32_t master_clock, uint32_t clock_div);
38 void psg_free(psg_context *context); 30 void psg_free(psg_context *context);
39 void psg_adjust_master_clock(psg_context * context, uint32_t master_clock); 31 void psg_adjust_master_clock(psg_context * context, uint32_t master_clock);
40 void psg_write(psg_context * context, uint8_t value); 32 void psg_write(psg_context * context, uint8_t value);
41 void psg_run(psg_context * context, uint32_t cycles); 33 void psg_run(psg_context * context, uint32_t cycles);
42 void psg_serialize(psg_context *context, serialize_buffer *buf); 34 void psg_serialize(psg_context *context, serialize_buffer *buf);