Mercurial > audlegacy
comparison Plugins/Input/console/Classic_Emu.h @ 493:c04dff121e1d trunk
[svn] hostile merge, phase 2: reimport based on new plugin code
author | nenolod |
---|---|
date | Tue, 24 Jan 2006 20:19:01 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
492:ccb68bad47b2 | 493:c04dff121e1d |
---|---|
1 | |
2 // Classic game music emulator interface base class for emulators which use Blip_Buffer | |
3 // for sound output. | |
4 | |
5 // Game_Music_Emu 0.3.0 | |
6 | |
7 #ifndef CLASSIC_EMU_H | |
8 #define CLASSIC_EMU_H | |
9 | |
10 #include "Music_Emu.h" | |
11 class Blip_Buffer; | |
12 class blip_eq_t; | |
13 typedef long blip_time_t; | |
14 | |
15 class Classic_Emu : public Music_Emu { | |
16 public: | |
17 Classic_Emu(); | |
18 ~Classic_Emu(); | |
19 blargg_err_t set_sample_rate( long sample_rate ); | |
20 void set_buffer( Multi_Buffer* ); | |
21 void mute_voices( int ); | |
22 void play( long, sample_t* ); | |
23 void start_track( int track ); | |
24 void set_equalizer( equalizer_t const& ); | |
25 public: | |
26 // deprecated | |
27 blargg_err_t init( long rate ) { return set_sample_rate( rate ); } | |
28 protected: | |
29 virtual blargg_err_t setup_buffer( long clock_rate ); | |
30 virtual void set_voice( int index, Blip_Buffer* center, | |
31 Blip_Buffer* left, Blip_Buffer* right ) = 0; | |
32 virtual blip_time_t run( int msec, bool* added_stereo ); | |
33 virtual blip_time_t run_clocks( blip_time_t, bool* added_stereo ); | |
34 virtual void update_eq( blip_eq_t const& ) = 0; | |
35 private: | |
36 Multi_Buffer* buf; | |
37 Multi_Buffer* stereo_buffer; | |
38 long clock_rate; | |
39 }; | |
40 | |
41 inline void Classic_Emu::set_buffer( Multi_Buffer* new_buf ) | |
42 { | |
43 assert( !buf && new_buf ); | |
44 buf = new_buf; | |
45 } | |
46 | |
47 #endif | |
48 |