summaryrefslogtreecommitdiff
path: root/qt/qte232-for-qpe150.patch
blob: 3acb3d1e7ac328e1fd2136d9402fc7ed9fdc86cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
--- src/kernel/qsoundqss_qws.cpp.orig	Wed Jan 30 12:49:24 2002
+++ src/kernel/qsoundqss_qws.cpp	Wed Jan 30 12:47:41 2002
@@ -142,6 +142,19 @@ public:
 	return wavedata_remaining < 0 || !max;
     }
 private:
+    int getOneSample() 
+    {
+	int sample;
+	if ( chunkdata.wBitsPerSample == 8 ) {
+	    sample = (data[out++] - 128) * 128;
+	    wavedata_remaining--;
+	} else {
+	    sample = ((short*)data)[out/2];
+	    out += 2;
+	    wavedata_remaining -= 2;
+	}
+	return sample;
+    }
     void getSample(int& l, int& r)
     {
 	l = r = 0;
@@ -152,38 +165,22 @@ private:
 		if ( out >= max ) {
 		    max = dev->readBlock((char*)data,
 			(uint)QMIN(sound_buffer_size,wavedata_remaining));
-		    wavedata_remaining -= max;
 		    out = 0;
 		    if ( max <= 0 ) {
 			max = 0;
 			return;
 		    }
 		}
-		if ( chunkdata.wBitsPerSample == 8 ) {
-		    l = (data[out++] - 128) * 128;
-		} else {
-		    l = ((short*)data)[out/2];
-		    out += 2;
-		}
+		l = getOneSample();
 		if ( sound_stereo ) {
 		    if ( chunkdata.channels == 1 ) {
 			r = l;
 		    } else {
-			if ( chunkdata.wBitsPerSample == 8 ) {
-			    r = (data[out++] - 128) * 128;
-			} else {
-			    r = ((short*)data)[out/2];
-			    out += 2;
-			}
+			r = getOneSample();
 		    }
 		} else {
 		    if ( chunkdata.channels == 2 ) {
-			if ( chunkdata.wBitsPerSample == 8 ) {
-			    r = (data[out++] - 128) * 128;
-			} else {
-			    r = ((short*)data)[out/2];
-			    out += 2;
-			}
+			r = getOneSample();
 			l = l + r;
 		    }
 		}