No sounds other than console beep; what's wrong? (solved?)

Aidan Kehoe kehoea at parhasard.net
Sat Jan 5 14:38:25 EST 2008


 Ar an cúigiú lá de mí Eanair, scríobh robert delius royar: 

 > Mon, 31 Dec 2007 (14:08 -0500 UTC) robert delius royar wrote:
 > 
 > >  I do not know which CVS first exhibited this problem, but it first
 > >  showed up when I recompiled XEmacs 21.5.28b after upgrading to Mac OS
 > >  X 10.5.1. The newest changelog in the tree is dated 2007-12-21, but
 > >  version.sh is no longer being updated in CVS.
 > >
 > >  I have included installation info at the end of this message.
 > >
 > >  I can no longer get XEmacs to play sounds through my (working)
 > >  Enlighten Sound Daemon (v 2.38). I have verified that ESD is working
 > >  on the system (launched at startup and plays through 127.0.0.1:16001). 
 > >  I verified this by playing
 > >  /usr/local/share/xemacs/xemacs-packages/etc/sounds/boing.wav with
 > >  esdplay; I also verified that sound-extension-list is ".wav" and that
 > >  load-default-sounds reports "Loading sounds..." and "Loading
 > >  sounds...done".
 > >
 > >  However, no sounds play in XEmacs other than the system beep.  And
 > >  device-sound-enabled-p returns nil.
 > 
 > I found the line (110) in XEmacs src/esd.c that was the root of the problem:
 >   sock = esd_play_stream(flags, speed, NULL, ESD_NAME);
 > The function in esdlib is prototyped as int esd_play_stream( esd_format_t
 > format, int rate, const char *host, const char *name ); Passing the value
 > NULL for the host worked until I recompiled XEmacs for Leopard. esd
 > expects a host name or an octet string (with optional port/socketname
 > appended). But the code in esdlib is supposed to accept !host as a signal
 > to use localhost.
 > 
 > However, it doesnot to work because of the new scheme for setting DISPLAY
 > in OS X.

What is this new scheme? Is the value for DISPLAY constant under it? It
seems to me that the most portable way to solve this issue in XEmacs is to
temporarily override it when calling esd_play_stream. 

 > If I change the call from XEmacs so that the NULL is replaced by "localhost", 
 > the sound plays.  If I change the code in esdlib.c so that esd_play_stream 
 > checks for host==NULL and calls esd_open_sound("localhost") instead of 
 > esd_open_sound(NULL), then the sounds will also work.  Either "fix" gets the 
 > sounds back.
 > 
 > I have not tried the third alternative of setting the environment variable 
 > ESPEAKER to "localhost".  It might also work; however, on the previous OS 
 > (10.4), setting ESPEAKER caused hangups in XEmacs.  On 10.3, it was the only 
 > way to get esd to play.
 > 
 > I just wanted to followup in case anyone else using OS X 10.5 found a similar 
 > problem with sounds.
 > 
 > BTW: Is anyone working on a way to use CoreAudio from within
 > XEmacs--similar to the way Windows sound is treated?

Not to my knowledge, no. 

-- 
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?



More information about the XEmacs-Beta mailing list