[Scummvm-cvs-logs] CVS: scummvm/scumm player_v2.h,2.7,2.8 player_v2.cpp,2.16,2.17
Max Horn
fingolfin at users.sourceforge.net
Tue Aug 5 10:53:04 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv26653
Modified Files:
player_v2.h player_v2.cpp
Log Message:
added support for output sample rates > 32767 (still limited to a max of 65535, but all we care about are 44100 and 48000 anyway)
Index: player_v2.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/player_v2.h,v
retrieving revision 2.7
retrieving revision 2.8
diff -u -d -r2.7 -r2.8
--- player_v2.h 5 Jul 2003 15:19:11 -0000 2.7
+++ player_v2.h 5 Aug 2003 17:52:47 -0000 2.8
@@ -92,9 +92,9 @@
bool _pcjr;
int _header_len;
- int _sample_rate;
- int _next_tick;
- int _tick_len;
+ uint32 _sample_rate;
+ uint32 _next_tick;
+ uint32 _tick_len;
unsigned int _update_step;
unsigned int _decay;
unsigned int _level;
@@ -129,13 +129,13 @@
void chainNextSound();
static void premix_proc(void *param, int16 *buf, uint len);
- void do_mix (int16 *buf, int len);
+ void do_mix (int16 *buf, uint len);
- void lowPassFilter(int16 *data, int len);
+ void lowPassFilter(int16 *data, uint len);
void squareGenerator(int channel, int freq, int vol,
- int noiseFeedback, int16 *sample, int len);
- void generateSpkSamples(int16 *data, int len);
- void generatePCjrSamples(int16 *data, int len);
+ int noiseFeedback, int16 *sample, uint len);
+ void generateSpkSamples(int16 *data, uint len);
+ void generatePCjrSamples(int16 *data, uint len);
};
Index: player_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/player_v2.cpp,v
retrieving revision 2.16
retrieving revision 2.17
diff -u -d -r2.16 -r2.17
--- player_v2.cpp 27 Jun 2003 00:10:17 -0000 2.16
+++ player_v2.cpp 5 Aug 2003 17:52:47 -0000 2.17
@@ -801,15 +801,14 @@
}
}
-void Player_V2::do_mix (int16 *data, int len) {
+void Player_V2::do_mix (int16 *data, uint len) {
mutex_up();
- int step;
+ uint step;
do {
step = len;
if (step > (_next_tick >> FIXP_SHIFT))
step = (_next_tick >> FIXP_SHIFT);
-
if (_pcjr)
generatePCjrSamples(data, step);
else
@@ -833,8 +832,8 @@
mutex_down();
}
-void Player_V2::lowPassFilter(int16 *sample, int len) {
- for (int i = 0; i < len; i++) {
+void Player_V2::lowPassFilter(int16 *sample, uint len) {
+ for (uint i = 0; i < len; i++) {
_level = (_level * _decay
+ (unsigned int)sample[i] * (0x10000-_decay)) >> 16;
sample[i] = _level;
@@ -842,12 +841,12 @@
}
void Player_V2::squareGenerator(int channel, int freq, int vol,
- int noiseFeedback, int16 *sample, int len) {
+ int noiseFeedback, int16 *sample, uint len) {
int period = _update_step * freq;
if (period == 0)
period = _update_step;
- for (int i = 0; i < len; i++) {
+ for (uint i = 0; i < len; i++) {
unsigned int duration = 0;
if (_timer_output & (1 << channel))
@@ -883,7 +882,7 @@
}
}
-void Player_V2::generateSpkSamples(int16 *data, int len) {
+void Player_V2::generateSpkSamples(int16 *data, uint len) {
int winning_channel = -1;
for (int i = 0; i < 4; i++) {
if (winning_channel == -1
@@ -904,7 +903,7 @@
lowPassFilter(data, len);
}
-void Player_V2::generatePCjrSamples(int16 *data, int len) {
+void Player_V2::generatePCjrSamples(int16 *data, uint len) {
int i, j;
int freq, vol;
More information about the Scummvm-git-logs
mailing list