Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1099 | galstaff | 1 | // From https://github.com/tslabs/zx-evo/blob/master/pentevo/unreal/Unreal/sound/dev_moonsound.h |
2 | |||
3 | #pragma once |
||
4 | |||
5 | #ifndef _SOUND_DEV_MOONSOUND_H |
||
6 | #define _SOUND_DEV_MOONSOUND_H |
||
7 | |||
8 | #include "../sysdefs.h" |
||
9 | |||
10 | struct ZXMMoonSound_priv; |
||
11 | |||
12 | class ZXMMoonSound : public SNDRENDER |
||
13 | { |
||
14 | public: |
||
15 | ZXMMoonSound(); |
||
16 | |||
17 | int load_rom(char *path); |
||
18 | |||
19 | void reset(); |
||
20 | bool write( u8 port, u8 val ); |
||
21 | bool read( u8 port, u8 &val ); |
||
22 | |||
23 | // set of functions that fills buffer in emulation progress |
||
24 | void set_timings(unsigned system_clock_rate, unsigned chip_clock_rate, unsigned sample_rate); |
||
25 | void start_frame() { SNDRENDER::start_frame(); } |
||
26 | void start_frame(bufptr_t dst); |
||
27 | unsigned end_frame(unsigned clk_ticks); |
||
28 | void flush(unsigned chiptick); |
||
29 | |||
30 | private: |
||
31 | ZXMMoonSound_priv *d; |
||
32 | |||
33 | unsigned chip_clock_rate; |
||
34 | unsigned system_clock_rate; |
||
35 | u64 passed_chip_ticks; |
||
36 | u64 passed_clk_ticks; |
||
37 | |||
38 | unsigned t; |
||
39 | }; |
||
40 | |||
41 | extern ZXMMoonSound zxmmoonsound; |
||
42 | |||
43 | #endif /* _SOUND_DEV_MOONSOUND_H */ |