LMMS
Loading...
Searching...
No Matches
Ay_Emu.h
Go to the documentation of this file.
1// Sinclair Spectrum AY music file emulator
2
3// Game_Music_Emu https://bitbucket.org/mpyne/game-music-emu/
4#ifndef AY_EMU_H
5#define AY_EMU_H
6
7#include "Classic_Emu.h"
8#include "Ay_Apu.h"
9#include "Ay_Cpu.h"
10
11class Ay_Emu : private Ay_Cpu, public Classic_Emu {
12 typedef Ay_Cpu cpu;
13public:
14 // AY file header
15 enum { header_size = 0x14 };
16 struct header_t
17 {
18 byte tag [8];
19 byte vers;
20 byte player;
21 byte unused [2];
22 byte author [2];
23 byte comment [2];
26 byte track_info [2];
27 };
28
29 static gme_type_t static_type() { return gme_ay_type; }
30public:
31 Ay_Emu();
32 ~Ay_Emu();
33 struct file_t {
35 byte const* end;
36 byte const* tracks;
37 };
38protected:
39 blargg_err_t track_info_( track_info_t*, int track ) const;
40 blargg_err_t load_mem_( byte const*, long );
41 blargg_err_t start_track_( int );
42 blargg_err_t run_clocks( blip_time_t&, int );
43 void set_tempo_( double );
45 void update_eq( blip_eq_t const& );
46private:
48
58
59 // large items
60 struct {
61 byte padding1 [0x100];
62 byte ram [0x10000 + 0x100];
63 } mem;
65 friend void ay_cpu_out( Ay_Cpu*, cpu_time_t, unsigned addr, int data );
66 void cpu_out_misc( cpu_time_t, unsigned addr, int data );
67};
68
69#endif
blargg_long cpu_time_t
Definition Ay_Cpu.h:9
BLARGG_EXPORT gme_type_t const gme_ay_type
blip_long blip_time_t
Definition Blip_Buffer.h:17
Definition Ay_Apu.h:10
Ay_Cpu()
Definition Ay_Cpu.cpp:59
Ay_Apu apu
Definition Ay_Emu.h:64
blargg_err_t start_track_(int)
Definition Ay_Emu.cpp:160
Ay_Cpu cpu
Definition Ay_Emu.h:12
void update_eq(blip_eq_t const &)
Definition Ay_Emu.cpp:140
int beeper_delta
Definition Ay_Emu.h:52
cpu_time_t next_play
Definition Ay_Emu.h:50
cpu_time_t play_period
Definition Ay_Emu.h:49
bool cpc_mode
Definition Ay_Emu.h:57
file_t file
Definition Ay_Emu.h:47
blargg_err_t run_clocks(blip_time_t &, int)
Definition Ay_Emu.cpp:363
void set_tempo_(double)
Definition Ay_Emu.cpp:155
void cpu_out_misc(cpu_time_t, unsigned addr, int data)
Definition Ay_Emu.cpp:277
friend void ay_cpu_out(Ay_Cpu *, cpu_time_t, unsigned addr, int data)
Definition Ay_Emu.cpp:330
Blip_Buffer * beeper_output
Definition Ay_Emu.h:51
int last_beeper
Definition Ay_Emu.h:53
blargg_err_t track_info_(track_info_t *, int track) const
Definition Ay_Emu.cpp:90
int cpc_latch
Definition Ay_Emu.h:55
~Ay_Emu()
Definition Ay_Emu.cpp:44
blargg_err_t load_mem_(byte const *, long)
Definition Ay_Emu.cpp:124
byte padding1[0x100]
Definition Ay_Emu.h:61
byte ram[0x10000+0x100]
Definition Ay_Emu.h:62
int apu_addr
Definition Ay_Emu.h:54
struct Ay_Emu::@276122237341222273224073004110172121151211364027 mem
@ header_size
Definition Ay_Emu.h:15
static gme_type_t static_type()
Definition Ay_Emu.h:29
bool spectrum_mode
Definition Ay_Emu.h:56
void set_voice(int, Blip_Buffer *, Blip_Buffer *, Blip_Buffer *)
Definition Ay_Emu.cpp:145
Ay_Emu()
Definition Ay_Emu.cpp:27
Definition Blip_Buffer.h:23
Classic_Emu()
Definition Classic_Emu.cpp:21
Definition Blip_Buffer.h:239
const struct gme_type_t_ * gme_type_t
Definition gme.h:161
JSAMPIMAGE data
Definition jpeglib.h:945
Definition Ay_Emu.h:33
byte const * end
Definition Ay_Emu.h:35
byte const * tracks
Definition Ay_Emu.h:36
header_t const * header
Definition Ay_Emu.h:34
Definition Ay_Emu.h:17
byte track_info[2]
Definition Ay_Emu.h:26
byte unused[2]
Definition Ay_Emu.h:21
byte player
Definition Ay_Emu.h:20
byte author[2]
Definition Ay_Emu.h:22
byte max_track
Definition Ay_Emu.h:24
byte comment[2]
Definition Ay_Emu.h:23
byte tag[8]
Definition Ay_Emu.h:18
byte vers
Definition Ay_Emu.h:19
byte first_track
Definition Ay_Emu.h:25
Definition Gme_File.h:28