Skip site navigation (1)Skip section navigation (2)
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>