1 #ifndef SN76496_H
2 #define SN76496_H
3 
4 #include <stdint.h>
5 
6 #ifdef __cplusplus
7 #define SN76496_H_BEGIN_ extern "C" {
8 #define SN76496_H_END_ }
9 #else
10 #define SN76496_H_BEGIN_
11 #define SN76496_H_END_
12 #endif
13 
14 SN76496_H_BEGIN_
15 
16 #define MAX_76496 4
17 
18 struct SN76496interface
19 {
20     int num;    /* total number of 76496 in the machine */
21     int baseclock;
22     int volume[MAX_76496];
23 };
24 
25 int SN76496_sh_start();
26 void SN76496_0_w(int offset,int data);
27 void SN76496_1_w(int offset,int data);
28 void SN76496_2_w(int offset,int data);
29 void SN76496_3_w(int offset,int data);
30 void SN76496_dump(int chip, uint8_t buf[16]);
31 void SN76496_restore(int chip, uint8_t buf[16]);
32 void SN76496_set_clock(int chip,int _clock);
33 int SN76496_init(int chip, int clock, int sample_rate, int sample_bits);
34 void SN76496Write(int chip, int data);
35 void SN76496Update_8_2(int chip,void *buffer, int length);
36 void SN76496Update_16_2(int chip,void *buffer, int length);
37 
38 SN76496_H_END_
39 
40 #endif
41