Subversion Repositories pentevo

Rev

Rev 1099 | Rev 1147 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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