[Scummvm-cvs-logs] CVS: scummvm/sound audiostream.cpp,1.58,1.59
Pawel Kolodziejski
aquadran at users.sourceforge.net
Mon Apr 26 13:49:05 CEST 2004
Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9772
Modified Files:
audiostream.cpp
Log Message:
synced code free space with buffer changes
Index: audiostream.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/audiostream.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- audiostream.cpp 25 Apr 2004 18:43:37 -0000 1.58
+++ audiostream.cpp 26 Apr 2004 20:48:09 -0000 1.59
@@ -198,8 +198,10 @@
byte *_end;
bool _finalized;
const int _rate;
+ uint32 _freeSpace;
inline bool eosIntern() const { return _end == _pos; };
+ void updateFreeSpace();
public:
AppendableMemoryStream(int rate, uint bufferSize);
~AppendableMemoryStream() { free(_bufferStart); }
@@ -217,6 +219,16 @@
uint32 getFreeSpace();
};
+template<bool stereo, bool is16Bit, bool isUnsigned>
+void AppendableMemoryStream<stereo, is16Bit, isUnsigned>::updateFreeSpace() {
+ if (_pos <= _end) {
+ uint32 free_from_end = _bufferEnd - _end;
+ uint32 free_to_pos = _pos - _bufferStart;
+ _freeSpace = free_from_end + free_to_pos;
+ } else {
+ _freeSpace = _pos - _end;
+ }
+}
template<bool stereo, bool is16Bit, bool isUnsigned>
AppendableMemoryStream<stereo, is16Bit, isUnsigned>::AppendableMemoryStream(int rate, uint bufferSize)
@@ -231,6 +243,8 @@
_bufferStart = (byte *)malloc(bufferSize);
_pos = _end = _bufferStart;
_bufferEnd = _bufferStart + bufferSize;
+
+ updateFreeSpace();
}
template<bool stereo, bool is16Bit, bool isUnsigned>
@@ -244,6 +258,8 @@
int16 val = READSAMPLE(is16Bit, isUnsigned, _pos);
_pos += (is16Bit ? 2 : 1);
+ updateFreeSpace();
+
return val;
}
@@ -263,6 +279,9 @@
samples++;
}
}
+
+ updateFreeSpace();
+
return samples;
}
@@ -297,21 +316,12 @@
memcpy(_end, data, len);
_end += len;
}
+ updateFreeSpace();
}
template<bool stereo, bool is16Bit, bool isUnsigned>
uint32 AppendableMemoryStream<stereo, is16Bit, isUnsigned>::getFreeSpace() {
- uint32 free;
-
- if (_pos <= _end) {
- uint32 free_from_end = _bufferEnd - _end;
- uint32 free_to_pos = _pos - _bufferStart;
- free = free_from_end + free_to_pos;
- } else {
- free = _pos - _end;
- }
-
- return free;
+ return _freeSpace;
}
#pragma mark -
More information about the Scummvm-git-logs
mailing list