Date: Tue, 26 Mar 1996 08:48:13 -0500 (EST) From: rhh@ct.picker.com (Randall Hopper) To: haver@harding.et.tudelft.nl (Bert Haverkamp) Cc: speak-freely@fourmilab.ch, freebsd-multimedia@freebsd.org, linux-sound@vger.rutgers.edu Subject: Re: Speak Freely v6.0 on VoxWare/FreeBSD/Linux (was speak-freely-digest V1 #16) Message-ID: <199603261348.IAA28365@elmer.picker.com> In-Reply-To: <199603261329.OAA04254@rumil.et.tudelft.nl> from "Bert Haverkamp" at Mar 26, 96 02:29:34 pm
next in thread | previous in thread | raw e-mail | index | archive | help
>The first patch you suggested works fine. the problem with sfspeaker
>have disappeared.
Glad to hear it!
>>2) As I recall, the other problem I had was caused by the first hack.
>> soundbyte.c:soundflush's read() was blocking. Commented that out and
>> wasn't any the worse for it. Seemed to work fine.
>
>This second patch I don't really understand. What part do I need to
>comment out? I'm not an experienced C-programmer, and my confusion is
>doubled by the fact that I found two declarations for soundflush() in
>soundbyte.c I tried to exclude the read command in the first
>soundflush, but without result. I tried a few other things, but I kept
>the same error.
>I added soundbyte.c, maybe it can refresh your memory:)
>The problem I now have are with sfmike:
>> sfmike echo.fourmilab.ch
>Space bar switches talk/pause, Esc or "q" to quit
>Talk: soundflush: Interrupted system call
>Talk: soundflush: Interrupted system call
>Talk: soundflush: Interrupted system call
>Talk: soundflush: Interrupted system call
Yep. Same symptom that caused me to make the second hack. The second
soundflush is for SGI's, so the first soundflush is the one to modify.
I think the patch I made was to comment out the soundflush code that kicks
in for Voxware/FreeBSD/Linux.
...
> Sound interface for Speak Freely for Unix
>/* SOUNDFLUSH -- Flush any queued sound. */
>
>void soundflush()
>{
> char sb[BUFL];
>#ifndef sun
> int c;
>#endif
>
>#ifndef sun
#ifdef RHH_REMOVED_THIS_STUFF
> while (TRUE) {
> c = read(audiof, sb, BUFL < abuf_size ? BUFL : abuf_size);
> if (c < 0 && errno == EAGAIN)
> c = 0;
> if (c < 0)
> perror("soundflush");
> if (c <= 0)
> break;
> }
#endif
>#else
...
Hope this helps!
Randall Hopper
rhh@ct.picker.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603261348.IAA28365>
