45 lines
1.4 KiB
Text
45 lines
1.4 KiB
Text
|
--- wslib/audio_voxware.c.orig Fri Mar 31 23:14:40 2000
|
||
|
+++ wslib/audio_voxware.c Wed May 24 11:08:24 2000
|
||
|
@@ -403,6 +403,7 @@
|
||
|
long blkFrames; /* number of frames in current audio block */
|
||
|
int blockSize = 8192; /* Size of an audio block buffer in frames */
|
||
|
int i;
|
||
|
+ u_int8_t fakebuffer[2] = {0, 0};
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
fprintf(stderr, " >> writing data\n");
|
||
|
@@ -413,7 +414,11 @@
|
||
|
SErrorCode = SERR_NOMEMORY;
|
||
|
return -1;
|
||
|
}
|
||
|
-
|
||
|
+
|
||
|
+ /* Following line is a simple workarround for buggy pcm driver, which seens need at least to write()
|
||
|
+ calls for sound to be actually played */
|
||
|
+ write(audiofd, fakebuffer, 2);
|
||
|
+
|
||
|
curFrame = 0;
|
||
|
while (curFrame < afInfo->FrameCount) {
|
||
|
if ((blkFrames = (afInfo->FrameCount - curFrame)) > blockSize) {
|
||
|
@@ -503,6 +508,7 @@
|
||
|
long blkFrames; /* number of frames in current audio block */
|
||
|
int blockSize = 4096; /* Size of an audio block buffer in frames */
|
||
|
int i;
|
||
|
+ u_int16_t fakebuffer[2] = {0, 0};
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
fprintf(stderr, " >> writing data\n");
|
||
|
@@ -513,7 +519,11 @@
|
||
|
SErrorCode = SERR_NOMEMORY;
|
||
|
return -1;
|
||
|
}
|
||
|
-
|
||
|
+
|
||
|
+ /* Following line is a simple workarround for buggy pcm driver, which seens need at least to write()
|
||
|
+ calls for sound to be actually played */
|
||
|
+ write(audiofd, fakebuffer, 4);
|
||
|
+
|
||
|
curFrame = 0;
|
||
|
while (curFrame < afInfo->FrameCount) {
|
||
|
if ((blkFrames = (afInfo->FrameCount - curFrame)) > blockSize) {
|