Subversion Repositories pentevo

Rev

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 */