LMMS
Loading...
Searching...
No Matches
Vgm_Emu_Impl.h
Go to the documentation of this file.
1// Low-level parts of Vgm_Emu
2
3// Game_Music_Emu https://bitbucket.org/mpyne/game-music-emu/
4#ifndef VGM_EMU_IMPL_H
5#define VGM_EMU_IMPL_H
6
7#include "Dual_Resampler.h"
8#include "Classic_Emu.h"
9#include "Ym2413_Emu.h"
10#include "Ym2612_Emu.h"
11#include "Sms_Apu.h"
12
13template<class Emu>
14class Ym_Emu : public Emu {
15protected:
17 short* out;
18 enum { disabled_time = -1 };
19public:
21 void enable( bool b ) { last_time = b ? 0 : disabled_time; }
22 bool enabled() const { return last_time != disabled_time; }
23 void begin_frame( short* p );
24 int run_until( int time );
25};
26
27class Vgm_Emu_Impl : public Classic_Emu, private Dual_Resampler {
28public:
30protected:
31 enum { stereo = 2 };
32
33 typedef int vgm_time_t;
34
35 enum { fm_time_bits = 12 };
36 typedef int fm_time_t;
40
41 enum { blip_time_bits = 12 };
44
45 byte const* data;
46 byte const* loop_begin;
47 byte const* data_end;
48 void update_fm_rates( long* ym2413_rate, long* ym2612_rate ) const;
49
51 byte const* pos;
53 int play_frame( blip_time_t blip_time, int sample_count, sample_t* buf );
54
55 byte const* pcm_data;
56 byte const* pcm_pos;
58 int dac_disabled; // -1 if disabled
59 void write_pcm( vgm_time_t, int amp );
60
63
67
68 friend class Vgm_Emu;
69};
70
71#endif
blip_long blip_time_t
Definition Blip_Buffer.h:17
#define NULL
Definition CarlaBridgeFormat.cpp:30
Definition Blip_Buffer.h:23
Definition Blip_Buffer.h:191
Multi_Buffer * buf
Definition Classic_Emu.h:37
Classic_Emu()
Definition Classic_Emu.cpp:21
Dual_Resampler()
Definition Dual_Resampler.cpp:23
Definition Sms_Apu.h:9
Definition Vgm_Emu_Impl.h:27
int blip_time_factor
Definition Vgm_Emu_Impl.h:42
int dac_amp
Definition Vgm_Emu_Impl.h:57
Blip_Synth< blip_med_quality, 1 > dac_synth
Definition Vgm_Emu_Impl.h:66
Ym_Emu< Ym2413_Emu > ym2413
Definition Vgm_Emu_Impl.h:62
int vgm_time_t
Definition Vgm_Emu_Impl.h:33
void update_fm_rates(long *ym2413_rate, long *ym2612_rate) const
Definition Vgm_Emu_Impl.cpp:272
byte const * pos
Definition Vgm_Emu_Impl.h:51
int fm_time_t
Definition Vgm_Emu_Impl.h:36
@ blip_time_bits
Definition Vgm_Emu_Impl.h:41
vgm_time_t vgm_time
Definition Vgm_Emu_Impl.h:50
long fm_time_offset
Definition Vgm_Emu_Impl.h:37
blip_time_t run_commands(vgm_time_t)
Definition Vgm_Emu_Impl.cpp:115
@ fm_time_bits
Definition Vgm_Emu_Impl.h:35
void write_pcm(vgm_time_t, int amp)
Definition Vgm_Emu_Impl.cpp:103
byte const * pcm_data
Definition Vgm_Emu_Impl.h:55
Ym_Emu< Ym2612_Emu > ym2612
Definition Vgm_Emu_Impl.h:61
int dac_disabled
Definition Vgm_Emu_Impl.h:58
blip_time_t to_blip_time(vgm_time_t) const
Definition Vgm_Emu_Impl.cpp:98
Blip_Buffer blip_buf
Definition Vgm_Emu_Impl.h:64
friend class Vgm_Emu
Definition Vgm_Emu_Impl.h:68
fm_time_t to_fm_time(vgm_time_t) const
Definition Vgm_Emu_Impl.cpp:93
@ stereo
Definition Vgm_Emu_Impl.h:31
byte const * data
Definition Vgm_Emu_Impl.h:45
byte const * loop_begin
Definition Vgm_Emu_Impl.h:46
byte const * data_end
Definition Vgm_Emu_Impl.h:47
int fm_time_factor
Definition Vgm_Emu_Impl.h:38
int play_frame(blip_time_t blip_time, int sample_count, sample_t *buf)
Definition Vgm_Emu_Impl.cpp:237
Classic_Emu::sample_t sample_t
Definition Vgm_Emu_Impl.h:29
byte const * pcm_pos
Definition Vgm_Emu_Impl.h:56
Sms_Apu psg
Definition Vgm_Emu_Impl.h:65
Definition Vgm_Emu_Impl.h:14
short * out
Definition Vgm_Emu_Impl.h:17
@ disabled_time
Definition Vgm_Emu_Impl.h:18
bool enabled() const
Definition Vgm_Emu_Impl.h:22
void enable(bool b)
Definition Vgm_Emu_Impl.h:21
int run_until(int time)
Definition Vgm_Emu_Impl.cpp:78
int last_time
Definition Vgm_Emu_Impl.h:16
Ym_Emu()
Definition Vgm_Emu_Impl.h:20
void begin_frame(short *p)
Definition Vgm_Emu_Impl.cpp:70
short sample_t
Definition Music_Emu.h:27
uch * p
Definition crypt.c:594
b
Definition crypt.c:628