The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/i386/include/ultrasound.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #ifndef _ULTRASOUND_H_
    2 #define _ULTRASOUND_H_
    3 /*
    4  * Copyright by Hannu Savolainen 1993
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  *
   27  */
   28 
   29 /*
   30  *      ultrasound.h - Macros for programming the Gravis Ultrasound
   31  *                      These macros are extremely device dependent
   32  *                      and not portable.
   33  */
   34 
   35 /*
   36  *      Private events for Gravis Ultrasound (GUS)
   37  *
   38  *      Format:
   39  *              byte 0          - SEQ_PRIVATE (0xfe)
   40  *              byte 1          - Synthesizer device number (0-N)
   41  *              byte 2          - Command (see below)
   42  *              byte 3          - Voice number (0-31)
   43  *              bytes 4 and 5   - parameter P1 (unsigned short)
   44  *              bytes 6 and 7   - parameter P2 (unsigned short)
   45  *
   46  *      Commands:
   47  *              Each command affects one voice defined in byte 3.
   48  *              Unused parameters (P1 and/or P2 *MUST* be initialized to zero).
   49  *              _GUS_NUMVOICES  - Sets max. number of concurrent voices (P1=14-31, default 16)
   50  *              _GUS_VOICESAMPLE- ************ OBSOLETE *************
   51  *              _GUS_VOICEON    - Starts voice (P1=voice mode)
   52  *              _GUS_VOICEOFF   - Stops voice (no parameters)
   53  *              _GUS_VOICEFADE  - Stops the voice smoothly.
   54  *              _GUS_VOICEMODE  - Alters the voice mode, don't start or stop voice (P1=voice mode)
   55  *              _GUS_VOICEBALA  - Sets voice balance (P1, 0=left, 7=middle and 15=right, default 7)
   56  *              _GUS_VOICEFREQ  - Sets voice (sample) playback frequency (P1=Hz)
   57  *              _GUS_VOICEVOL   - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off)
   58  *              _GUS_VOICEVOL2  - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off)
   59  *                                (Like GUS_VOICEVOL but doesn't change the hw
   60  *                                volume. It just updates volume in the voice table).
   61  *
   62  *              _GUS_RAMPRANGE  - Sets limits for volume ramping (P1=low volume, P2=high volume)
   63  *              _GUS_RAMPRATE   - Sets the speed for volume ramping (P1=scale, P2=rate)
   64  *              _GUS_RAMPMODE   - Sets the volume ramping mode (P1=ramping mode)
   65  *              _GUS_RAMPON     - Starts volume ramping (no parameters)
   66  *              _GUS_RAMPOFF    - Stops volume ramping (no parameters)
   67  *              _GUS_VOLUME_SCALE - Changes the volume calculation constants
   68  *                                for all voices.
   69  */
   70 
   71 #define _GUS_NUMVOICES          0x00
   72 #define _GUS_VOICESAMPLE        0x01    /* OBSOLETE */
   73 #define _GUS_VOICEON            0x02
   74 #define _GUS_VOICEOFF           0x03
   75 #define _GUS_VOICEMODE          0x04
   76 #define _GUS_VOICEBALA          0x05
   77 #define _GUS_VOICEFREQ          0x06
   78 #define _GUS_VOICEVOL           0x07
   79 #define _GUS_RAMPRANGE          0x08
   80 #define _GUS_RAMPRATE           0x09
   81 #define _GUS_RAMPMODE           0x0a
   82 #define _GUS_RAMPON             0x0b
   83 #define _GUS_RAMPOFF            0x0c
   84 #define _GUS_VOICEFADE          0x0d
   85 #define _GUS_VOLUME_SCALE       0x0e
   86 #define _GUS_VOICEVOL2          0x0f
   87 #define _GUS_VOICE_POS          0x10
   88 
   89 /*
   90  *      GUS API macros
   91  */
   92 
   93 #define _GUS_CMD(chn, voice, cmd, p1, p2) \
   94                                         {_SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_PRIVATE;\
   95                                         _seqbuf[_seqbufptr+1] = (chn); _seqbuf[_seqbufptr+2] = cmd;\
   96                                         _seqbuf[_seqbufptr+3] = voice;\
   97                                         *(unsigned short*)&_seqbuf[_seqbufptr+4] = p1;\
   98                                         *(unsigned short*)&_seqbuf[_seqbufptr+6] = p2;\
   99                                         _SEQ_ADVBUF(8);}
  100 
  101 #define GUS_NUMVOICES(chn, p1)                  _GUS_CMD(chn, 0, _GUS_NUMVOICES, (p1), 0)
  102 #define GUS_VOICESAMPLE(chn, voice, p1)         _GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0) /* OBSOLETE */
  103 #define GUS_VOICEON(chn, voice, p1)             _GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0)
  104 #define GUS_VOICEOFF(chn, voice)                _GUS_CMD(chn, voice, _GUS_VOICEOFF, 0, 0)
  105 #define GUS_VOICEFADE(chn, voice)               _GUS_CMD(chn, voice, _GUS_VOICEFADE, 0, 0)
  106 #define GUS_VOICEMODE(chn, voice, p1)           _GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0)
  107 #define GUS_VOICEBALA(chn, voice, p1)           _GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0)
  108 #define GUS_VOICEFREQ(chn, voice, p)            _GUS_CMD(chn, voice, _GUS_VOICEFREQ, \
  109                                                         (p) & 0xffff, ((p) >> 16) & 0xffff)
  110 #define GUS_VOICEVOL(chn, voice, p1)            _GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0)
  111 #define GUS_VOICEVOL2(chn, voice, p1)           _GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0)
  112 #define GUS_RAMPRANGE(chn, voice, low, high)    _GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high))
  113 #define GUS_RAMPRATE(chn, voice, p1, p2)        _GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2))
  114 #define GUS_RAMPMODE(chn, voice, p1)            _GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0)
  115 #define GUS_RAMPON(chn, voice, p1)              _GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0)
  116 #define GUS_RAMPOFF(chn, voice)                 _GUS_CMD(chn, voice, _GUS_RAMPOFF, 0, 0)
  117 #define GUS_VOLUME_SCALE(chn, voice, p1, p2)    _GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2))
  118 #define GUS_VOICE_POS(chn, voice, p)            _GUS_CMD(chn, voice, _GUS_VOICE_POS, \
  119                                                         (p) & 0xffff, ((p) >> 16) & 0xffff)
  120 
  121 #endif

Cache object: e2a795a41fad6282f51da1f4298d7e40


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.