xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

bsd_bell.c (2543B)


      1 /*
      2  * Copyright 1992 by Rich Murphey <Rich@Rice.edu>
      3  * Copyright 1993 by David Dawes <dawes@xfree86.org>
      4  *
      5  * Permission to use, copy, modify, distribute, and sell this software and its
      6  * documentation for any purpose is hereby granted without fee, provided that
      7  * the above copyright notice appear in all copies and that both that
      8  * copyright notice and this permission notice appear in supporting
      9  * documentation, and that the names of Rich Murphey and David Dawes
     10  * not be used in advertising or publicity pertaining to distribution of
     11  * the software without specific, written prior permission.  Rich Murphey and
     12  * David Dawes make no representations about the suitability of this
     13  * software for any purpose.  It is provided "as is" without express or
     14  * implied warranty.
     15  *
     16  * RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO
     17  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
     18  * FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR
     19  * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
     20  * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
     21  * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
     22  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     23  *
     24  */
     25 
     26 #ifdef HAVE_XORG_CONFIG_H
     27 #include <xorg-config.h>
     28 #endif
     29 
     30 #if defined (SYSCONS_SUPPORT)
     31 #include <sys/kbio.h>
     32 #endif
     33 
     34 #include <termios.h>
     35 
     36 #include "xf86.h"
     37 #include "xf86Priv.h"
     38 #include "xf86_OSlib.h"
     39 
     40 void
     41 xf86OSRingBell(int loudness, int pitch, int duration)
     42 {
     43 #ifdef WSCONS_SUPPORT
     44     struct wskbd_bell_data wsb;
     45 #endif
     46 
     47     if (loudness && pitch) {
     48 #ifdef PCCONS_SUPPORT
     49         int data[2];
     50 #endif
     51 
     52         switch (xf86Info.consType) {
     53 
     54 #ifdef PCCONS_SUPPORT
     55         case PCCONS:
     56             data[0] = pitch;
     57             data[1] = (duration * loudness) / 50;
     58             ioctl(xf86Info.consoleFd, CONSOLE_X_BELL, data);
     59             break;
     60 #endif
     61 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
     62         case SYSCONS:
     63         case PCVT:
     64             ioctl(xf86Info.consoleFd, KDMKTONE,
     65                   ((1193190 / pitch) & 0xffff) |
     66                   (((unsigned long) duration * loudness / 50) << 16));
     67             break;
     68 #endif
     69 #if defined (WSCONS_SUPPORT)
     70         case WSCONS:
     71             wsb.which = WSKBD_BELL_DOALL;
     72             wsb.pitch = pitch;
     73             wsb.period = duration;
     74             wsb.volume = loudness;
     75             ioctl(xf86Info.consoleFd, WSKBDIO_COMPLEXBELL, &wsb);
     76             break;
     77 #endif
     78         }
     79     }
     80 }