[Scummvm-cvs-logs] SF.net SVN: scummvm: [28669] scummvm/trunk/engines/agi/sound.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Aug 19 22:31:15 CEST 2007


Revision: 28669
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28669&view=rev
Author:   fingolfin
Date:     2007-08-19 13:31:15 -0700 (Sun, 19 Aug 2007)

Log Message:
-----------
Fixed warning about global symbol 'chn' being shadowed by local declaration 'chn' (note: naming a global var 'chn' is probably a bad idea. And using a class would be far better anyway ;)

Modified Paths:
--------------
    scummvm/trunk/engines/agi/sound.cpp

Modified: scummvm/trunk/engines/agi/sound.cpp
===================================================================
--- scummvm/trunk/engines/agi/sound.cpp	2007-08-19 19:07:31 UTC (rev 28668)
+++ scummvm/trunk/engines/agi/sound.cpp	2007-08-19 20:31:15 UTC (rev 28669)
@@ -351,24 +351,23 @@
 
 	switch (type) {
 	case AGI_SOUND_SAMPLE: {
-		IIgsChannelInfo &chn = IIgsChannel;
 		IIgsSample *sampleRes = (IIgsSample *) _vm->_game.sounds[playingSound];
-		const IIgsWaveInfo &waveInfo = chn.ins.oscList(0).waves[0];
+		const IIgsWaveInfo &waveInfo = IIgsChannel.ins.oscList(0).waves[0];
 		const IIgsSampleHeader &header = sampleRes->getHeader();
 
-		chn.ins     = header.instrument;
-		chn.sample  = sampleRes->getSample() + waveInfo.addr;
-		chn.pos     = intToFrac(0);
-		chn.posAdd  = intToFrac(0);
-		chn.note    = intToFrac(header.pitch) + doubleToFrac(waveInfo.relPitch/256.0);
-		chn.startEnvVol = intToFrac(0);
-		chn.chanVol = intToFrac(header.volume);
-		chn.envVol  = chn.startEnvVol;
-		chn.vol     = doubleToFrac(fracToDouble(chn.envVol) * fracToDouble(chn.chanVol) / 127.0);
-		chn.envSeg  = intToFrac(0);
-		chn.loop    = (waveInfo.mode == OSC_MODE_LOOP);
-		chn.size    = waveInfo.size - waveInfo.addr;
-		chn.end     = false;
+		IIgsChannel.ins     = header.instrument;
+		IIgsChannel.sample  = sampleRes->getSample() + waveInfo.addr;
+		IIgsChannel.pos     = intToFrac(0);
+		IIgsChannel.posAdd  = intToFrac(0);
+		IIgsChannel.note    = intToFrac(header.pitch) + doubleToFrac(waveInfo.relPitch/256.0);
+		IIgsChannel.startEnvVol = intToFrac(0);
+		IIgsChannel.chanVol = intToFrac(header.volume);
+		IIgsChannel.envVol  = IIgsChannel.startEnvVol;
+		IIgsChannel.vol     = doubleToFrac(fracToDouble(IIgsChannel.envVol) * fracToDouble(IIgsChannel.chanVol) / 127.0);
+		IIgsChannel.envSeg  = intToFrac(0);
+		IIgsChannel.loop    = (waveInfo.mode == OSC_MODE_LOOP);
+		IIgsChannel.size    = waveInfo.size - waveInfo.addr;
+		IIgsChannel.end     = false;
 		break;
 	}
 #if 0
@@ -675,68 +674,67 @@
 
 	// Handle Apple IIGS sound mixing here
 	if (_vm->_soundemu == SOUND_EMU_APPLE2GS && playing && playingSound != -1) {
-		IIgsChannelInfo &chn = IIgsChannel;
-		IIgsWaveInfo &waveInfo = chn.ins.oscList(0).waves[0];
+		//IIgsWaveInfo &waveInfo = IIgsChannel.ins.oscList(0).waves[0];
 
-		//uint period = noteToPeriod(fracToInt(chn.note + FRAC_HALF));
-		//chn.posAdd = ((frac_t) (118600 * 4 / period)) << (FRAC_BITS - 8);
+		//uint period = noteToPeriod(fracToInt(IIgsChannel.note + FRAC_HALF));
+		//IIgsChannel.posAdd = ((frac_t) (118600 * 4 / period)) << (FRAC_BITS - 8);
 
 		// Hertz (number of vibrations a second) = 6.875 x 2 ^ ( ( 3 + MIDI_Pitch ) / 12 )
 		// From http://www.musicmasterworks.com/WhereMathMeetsMusic.html
-		//double hertz = 6.875 * pow(SEMITONE, 3 + fracToDouble(chn.note));
-		//double hertz = 8.175798915644 * pow(SEMITONE, fracToDouble(chn.note));
+		//double hertz = 6.875 * pow(SEMITONE, 3 + fracToDouble(IIgsChannel.note));
+		//double hertz = 8.175798915644 * pow(SEMITONE, fracToDouble(IIgsChannel.note));
 		// double step = getRate() / hertz;
-		// chn.posAdd = doubleToFrac(step);
+		// IIgsChannel.posAdd = doubleToFrac(step);
 		
 		// Frequency multiplier was 1076.0 based on tests made with MESS 0.117.
 		// Tests made with KEGS32 averaged the multiplier to around 1045.
 		// So this is a guess but maybe it's 1046.5... i.e. C6's frequency?
-		double hertz = C6_FREQ * pow(SEMITONE, fracToDouble(chn.note));
-		chn.posAdd = doubleToFrac(hertz / getRate());
-		chn.vol = doubleToFrac(fracToDouble(chn.envVol) * fracToDouble(chn.chanVol) / 127.0);
-		double tempVol = fracToDouble(chn.vol)/127.0;
+		double hertz = C6_FREQ * pow(SEMITONE, fracToDouble(IIgsChannel.note));
+		IIgsChannel.posAdd = doubleToFrac(hertz / getRate());
+		IIgsChannel.vol = doubleToFrac(fracToDouble(IIgsChannel.envVol) * fracToDouble(IIgsChannel.chanVol) / 127.0);
+		double tempVol = fracToDouble(IIgsChannel.vol)/127.0;
 
 		for (i = 0; i < IIGS_BUFFER_SIZE; i++) {
-			b = chn.sample[fracToInt(chn.pos)];
+			b = IIgsChannel.sample[fracToInt(IIgsChannel.pos)];
 			// DOESN'T DO MIXING YET! ONLY ONE SAMPLE PER PLAYING!
 			sndBuffer[i] = (int16) (b * tempVol);
-			chn.pos += chn.posAdd;
+			IIgsChannel.pos += IIgsChannel.posAdd;
 
-			if (chn.pos >= intToFrac(chn.size)) {
-				if (chn.loop) {
-					chn.pos %= intToFrac(chn.size);
+			if (IIgsChannel.pos >= intToFrac(IIgsChannel.size)) {
+				if (IIgsChannel.loop) {
+					IIgsChannel.pos %= intToFrac(IIgsChannel.size);
 					// Probably we should loop the envelope too
-					chn.envSeg = 0;
-					chn.envVol = chn.startEnvVol;
+					IIgsChannel.envSeg = 0;
+					IIgsChannel.envVol = IIgsChannel.startEnvVol;
 				} else {
-					chn.pos = chn.chanVol = 0;
-					chn.end = true;
+					IIgsChannel.pos = IIgsChannel.chanVol = 0;
+					IIgsChannel.end = true;
 					break;
 				}
 			}
 		}
 
-		if (chn.envSeg <= chn.ins.relseg) {
-			IIgsEnvelopeSegment &seg = chn.ins.env.seg[chn.envSeg];
+		if (IIgsChannel.envSeg <= IIgsChannel.ins.relseg) {
+			IIgsEnvelopeSegment &seg = IIgsChannel.ins.env.seg[IIgsChannel.envSeg];
 			double bufSecLen = IIGS_BUFFER_SIZE / (double) getRate();
 			double ticksPerSec = 100; // 1000 is way too much
 			double bufTickLen  = bufSecLen / (1.0/ticksPerSec);
 			frac_t envVolDelta = doubleToFrac((seg.inc/256.0)*bufTickLen);
-			if (intToFrac(seg.bp) >= chn.envVol) {
-				chn.envVol += envVolDelta;
-				if (chn.envVol >= intToFrac(seg.bp)) {
-					chn.envVol = intToFrac(seg.bp);
-					chn.envSeg += 1;
+			if (intToFrac(seg.bp) >= IIgsChannel.envVol) {
+				IIgsChannel.envVol += envVolDelta;
+				if (IIgsChannel.envVol >= intToFrac(seg.bp)) {
+					IIgsChannel.envVol = intToFrac(seg.bp);
+					IIgsChannel.envSeg += 1;
 				}
 			} else {
-				chn.envVol -= envVolDelta;
-				if (chn.envVol <= intToFrac(seg.bp)) {
-					chn.envVol = intToFrac(seg.bp);
-					chn.envSeg += 1;
+				IIgsChannel.envVol -= envVolDelta;
+				if (IIgsChannel.envVol <= intToFrac(seg.bp)) {
+					IIgsChannel.envVol = intToFrac(seg.bp);
+					IIgsChannel.envSeg += 1;
 				}
 			}
 		}
-		//chn.envSeg += doubleToFrac(1/100.0);
+		//IIgsChannel.envSeg += doubleToFrac(1/100.0);
 		return IIGS_BUFFER_SIZE;
 	} /* else ... */
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list