Mercurial > audlegacy-plugins
diff src/console/Dual_Resampler.h @ 316:fb513e10174e trunk
[svn] - merge libconsole-blargg into mainline libconsole:
+ obsoletes plugins-ugly:sapplug
author | nenolod |
---|---|
date | Thu, 30 Nov 2006 19:54:33 -0800 |
parents | 3da1b8942b8b |
children | 986f098da058 |
line wrap: on
line diff
--- a/src/console/Dual_Resampler.h Wed Nov 29 14:42:11 2006 -0800 +++ b/src/console/Dual_Resampler.h Thu Nov 30 19:54:33 2006 -0800 @@ -1,8 +1,6 @@ - // Combination of Fir_Resampler and Blip_Buffer mixing. Used by Sega FM emulators. -// Game_Music_Emu 0.3.0 - +// Game_Music_Emu 0.5.1 #ifndef DUAL_RESAMPLER_H #define DUAL_RESAMPLER_H @@ -14,24 +12,28 @@ Dual_Resampler(); virtual ~Dual_Resampler(); - typedef short sample_t; + typedef short dsample_t; double setup( double oversample, double rolloff, double gain ); - blargg_err_t resize( int pairs ); + blargg_err_t reset( int max_pairs ); + void resize( int pairs_per_frame ); void clear(); - void play( long count, sample_t* out, Blip_Buffer& ); + void dual_play( long count, dsample_t* out, Blip_Buffer& ); protected: - virtual int play_frame( blip_time_t, int pcm_count, sample_t* pcm_out ) = 0; + virtual int play_frame( blip_time_t, int pcm_count, dsample_t* pcm_out ) = 0; private: - blargg_vector<sample_t> sample_buf; + blargg_vector<dsample_t> sample_buf; + int sample_buf_size; int oversamples_per_frame; int buf_pos; + int resampler_size; + Fir_Resampler<12> resampler; - void mix_samples( Blip_Buffer&, sample_t* ); - void play_frame_( Blip_Buffer&, sample_t* ); + void mix_samples( Blip_Buffer&, dsample_t* ); + void play_frame_( Blip_Buffer&, dsample_t* ); }; inline double Dual_Resampler::setup( double oversample, double rolloff, double gain ) @@ -41,9 +43,8 @@ inline void Dual_Resampler::clear() { - buf_pos = sample_buf.size(); + buf_pos = sample_buf_size; resampler.clear(); } #endif -