[Scummvm-cvs-logs] CVS: scummvm/sound resample.cpp,1.6,1.7 rate.h,1.15,1.16

Max Horn fingolfin at users.sourceforge.net
Mon Aug 4 17:30:10 CEST 2003


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1:/tmp/cvs-serv22657

Modified Files:
	resample.cpp rate.h 
Log Message:
get rid of calls to the obsolete AudioInputStream::size method

Index: resample.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/resample.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- resample.cpp	28 Jul 2003 18:00:59 -0000	1.6
+++ resample.cpp	5 Aug 2003 00:29:37 -0000	1.7
@@ -313,16 +313,15 @@
 		st_fail("resample: Can not handle this sample rate change. Nx not positive: %d", Nx);
 		return (ST_EOF);
 	}
-	
-	// Nx is the number of bytes we'd like to read, but of course that is limited
-	// by the number of bytes actually available...
-	if (Nx > (long)input.size())
-		Nx = (long)input.size();
-	fprintf(stderr,"Nx %d\n",Nx);
 
-	// Read in Nx bytes
-	for (i = r->Xread; i < Nx + r->Xread ; i++)
+	// Read in up to Nx bytes
+	for (i = r->Xread; i < Nx + r->Xread && !input.eos(); i++) {
 		r->X[i] = (Float)input.read();
+	}
+	Nx = i - r->Xread;	// Compute how many samples we actually read
+
+	fprintf(stderr,"Nx %d\n",Nx);
+
 
 	last = Nx + r->Xread;	// 'last' is the idx after the last valid byte in X (i.e. number of bytes are in buffer X right now)
 	
@@ -409,20 +408,19 @@
  */
 int st_resample_drain(eff_t effp, st_sample_t *obuf, st_size_t *osamp, st_volume_t vol) {
 	resample_t r = (resample_t) effp->priv;
-	long isamp_res, osamp_res;
+	long osamp_res;
 	st_sample_t *Obuf;
 	int rc;
 
 	/*fprintf(stderr,"Xoff %d, Xt %d  <--- DRAIN\n",r->Xoff, r->Xt);*/
 
 	/* stuff end with Xoff zeros */
-	isamp_res = r->Xoff;
+	ZeroInputStream zero(r->Xoff);
 	osamp_res = *osamp;
 	Obuf = obuf;
-	while (isamp_res > 0 && osamp_res > 0) {
+	while (!zero.eos() && osamp_res > 0) {
 		st_sample_t Osamp;
 		Osamp = osamp_res;
-		ZeroInputStream zero(isamp_res);
 		rc = st_resample_flow(effp, zero, Obuf, (st_size_t *) & Osamp, vol);
 		if (rc)
 			return rc;
@@ -430,12 +428,11 @@
 		    isamp_res,osamp_res,Isamp,Osamp);*/
 		Obuf += Osamp;
 		osamp_res -= Osamp;
-		isamp_res = zero.size();
 	}
 	*osamp -= osamp_res;
 	fprintf(stderr,"DRAIN osamp %d\n", *osamp);
-	if (isamp_res)
-		st_warn("drain overran obuf by %d\n", isamp_res);
+	if (!zero.eos())
+		st_warn("drain overran obuf\n");
 	fflush(stderr);
 	return (ST_SUCCESS);
 }
@@ -738,6 +735,17 @@
 #pragma mark -
 
 
+class ResampleRateConverter : public RateConverter {
+protected:
+	eff_struct effp;
+public:
+	ResampleRateConverter(st_rate_t inrate, st_rate_t outrate, int quality);
+	~ResampleRateConverter();
+	virtual int flow(AudioInputStream &input, st_sample_t *obuf, st_size_t osamp, st_volume_t vol);
+	virtual int drain(st_sample_t *obuf, st_size_t osamp, st_volume_t vol);
+};
+
+
 ResampleRateConverter::ResampleRateConverter(st_rate_t inrate, st_rate_t outrate, int quality) {
 	// FIXME: quality is for now a nasty hack.
 	// Valid values are 0,1,2,3 (everything else is treated like 0 for now)
@@ -755,11 +763,11 @@
 	st_resample_stop(&effp);
 }
 
-int ResampleRateConverter::flow(AudioInputStream &input, st_sample_t *obuf, st_size_t *osamp, st_volume_t vol) {
-	return st_resample_flow(&effp, input, obuf, osamp, vol);
+int ResampleRateConverter::flow(AudioInputStream &input, st_sample_t *obuf, st_size_t osamp, st_volume_t vol) {
+	return st_resample_flow(&effp, input, obuf, &osamp, vol);
 }
 
-int ResampleRateConverter::drain(st_sample_t *obuf, st_size_t *osamp, st_volume_t vol) {
-	return st_resample_drain(&effp, obuf, osamp, vol);
+int ResampleRateConverter::drain(st_sample_t *obuf, st_size_t osamp, st_volume_t vol) {
+	return st_resample_drain(&effp, obuf, &osamp, vol);
 }
 

Index: rate.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/rate.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- rate.h	2 Aug 2003 19:09:52 -0000	1.15
+++ rate.h	5 Aug 2003 00:29:37 -0000	1.16
@@ -72,18 +72,6 @@
 	virtual int drain(st_sample_t *obuf, st_size_t osamp, st_volume_t vol) = 0;
 };
 
-/*
-class ResampleRateConverter : public RateConverter {
-protected:
-	eff_struct effp;
-public:
-	ResampleRateConverter(st_rate_t inrate, st_rate_t outrate, int quality);
-	~ResampleRateConverter();
-	virtual int flow(AudioInputStream &input, st_sample_t *obuf, st_size_t osamp, st_volume_t vol);
-	virtual int drain(st_sample_t *obuf, st_size_t osamp, st_volume_t vol);
-};
-*/
-
 RateConverter *makeRateConverter(st_rate_t inrate, st_rate_t outrate, bool stereo, bool reverseStereo = false);
 
 #endif





More information about the Scummvm-git-logs mailing list