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
-