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

john_doe at users.sourceforge.net john_doe at users.sourceforge.net
Fri Apr 25 13:02:38 CEST 2008


Revision: 31716
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31716&view=rev
Author:   john_doe
Date:     2008-04-25 04:02:37 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
(Poissbly) fixed sound glitches due to a non-implemented decoding variant.

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

Modified: scummvm/trunk/engines/made/sound.cpp
===================================================================
--- scummvm/trunk/engines/made/sound.cpp	2008-04-25 10:43:47 UTC (rev 31715)
+++ scummvm/trunk/engines/made/sound.cpp	2008-04-25 11:02:37 UTC (rev 31716)
@@ -34,7 +34,7 @@
 
 	int16 prevSample = 0, workSample = 0;
 	byte soundBuffer[1025];
-	byte soundBuffer3[1024];
+	byte deltaSoundBuffer[1024];
 	int16 soundBuffer2[16];
 	byte deltaType, type;
 	uint16 workChunkSize, byteCount, bitCount;
@@ -106,17 +106,24 @@
 
 		}
 
-		if (deltaType == 1) {
-			for (i = 0; i < chunkSize - 1; i += 2) {
-				l = i / 2;
-				soundBuffer3[i] = soundBuffer[l];
-				soundBuffer3[i + 1] = (soundBuffer[l + 1] + soundBuffer[l]) / 2;
+		if (deltaType > 0) {
+			if (deltaType == 1) {
+				for (i = 0; i < chunkSize - 1; i += 2) {
+					l = i / 2;
+					deltaSoundBuffer[i] = soundBuffer[l];
+					deltaSoundBuffer[i + 1] = (soundBuffer[l] + soundBuffer[l + 1]) / 2;
+				}
+			} else if (deltaType == 2) {
+				for (i = 0; i < chunkSize - 1; i += 4) {
+					l = i / 4;
+					deltaSoundBuffer[i] = soundBuffer[l];
+					deltaSoundBuffer[i + 2] = (soundBuffer[l] + soundBuffer[l + 1]) / 2;
+					deltaSoundBuffer[i + 1] = (deltaSoundBuffer[i + 2] + soundBuffer[l]) / 2;
+					deltaSoundBuffer[i + 3] = (deltaSoundBuffer[i + 2] + soundBuffer[l + 1]) / 2;
+				}
 			}
-			for (i = 0; i < chunkSize; i++) {
-				soundBuffer[i] = soundBuffer3[i];
-			}
-		} else if (deltaType == 2) {
-			debug(2, "****************************************");
+			for (i = 0; i < chunkSize; i++)
+				soundBuffer[i] = deltaSoundBuffer[i];
 		}
 
 		prevSample = workSample;


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