On 09/ 5/13 02:44 PM, James Cloos wrote:
But I cannot replicate that in any other X11 client, including a simple:

#include <stdlib.h>
#include <X11/Xlib.h>

int main (int argc, char *argv[])
{
   int vol = 100;
   char *disp = NULL;
   Display *display;

   if (argc > 1)
     vol = atoi(argv[1]);

   if (display = XOpenDisplay(NULL)
     XBell(display, vol);
}

You need an XSync() after the XBell() so that actually gets sent to the server
and not just buffered, then immediately discarded on program exit.

I did find two places in the server src where linux' KDMKTONE ioctl is
called.  hw/dmx/input/lnx-keyboard.c uses:

  ioctl(priv->fd, KDMKTONE, ((1193190 / pitch) & 0xffff)|(duration << 16));

whereas hw/xfree86/os-support/linux/lnx_bell.c uses:

  ioctl(xf86Info.consoleFd, KDMKTONE, ((1193190 / pitch) & 0xffff)|((duration * 
loudness / 50) << 16));

might the wm hit the first and everything else the latter?

Nope - those go into two different servers.   The first is only if you're
running Xdmx, the second is if you're running Xorg.


--
        -Alan Coopersmith-              [email protected]
         Oracle Solaris Engineering - http://blogs.oracle.com/alanc
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to