0001
0002 #ifndef _ULTRASOUND_H_
0003 #define _ULTRASOUND_H_
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 #define _GUS_NUMVOICES 0x00
0055 #define _GUS_VOICESAMPLE 0x01
0056 #define _GUS_VOICEON 0x02
0057 #define _GUS_VOICEOFF 0x03
0058 #define _GUS_VOICEMODE 0x04
0059 #define _GUS_VOICEBALA 0x05
0060 #define _GUS_VOICEFREQ 0x06
0061 #define _GUS_VOICEVOL 0x07
0062 #define _GUS_RAMPRANGE 0x08
0063 #define _GUS_RAMPRATE 0x09
0064 #define _GUS_RAMPMODE 0x0a
0065 #define _GUS_RAMPON 0x0b
0066 #define _GUS_RAMPOFF 0x0c
0067 #define _GUS_VOICEFADE 0x0d
0068 #define _GUS_VOLUME_SCALE 0x0e
0069 #define _GUS_VOICEVOL2 0x0f
0070 #define _GUS_VOICE_POS 0x10
0071
0072
0073
0074
0075
0076 #define _GUS_CMD(chn, voice, cmd, p1, p2) \
0077 {_SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_PRIVATE;\
0078 _seqbuf[_seqbufptr+1] = (chn); _seqbuf[_seqbufptr+2] = cmd;\
0079 _seqbuf[_seqbufptr+3] = voice;\
0080 *(unsigned short*)&_seqbuf[_seqbufptr+4] = p1;\
0081 *(unsigned short*)&_seqbuf[_seqbufptr+6] = p2;\
0082 _SEQ_ADVBUF(8);}
0083
0084 #define GUS_NUMVOICES(chn, p1) _GUS_CMD(chn, 0, _GUS_NUMVOICES, (p1), 0)
0085 #define GUS_VOICESAMPLE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0)
0086 #define GUS_VOICEON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0)
0087 #define GUS_VOICEOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEOFF, 0, 0)
0088 #define GUS_VOICEFADE(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEFADE, 0, 0)
0089 #define GUS_VOICEMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0)
0090 #define GUS_VOICEBALA(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0)
0091 #define GUS_VOICEFREQ(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICEFREQ, \
0092 (p) & 0xffff, ((p) >> 16) & 0xffff)
0093 #define GUS_VOICEVOL(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0)
0094 #define GUS_VOICEVOL2(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0)
0095 #define GUS_RAMPRANGE(chn, voice, low, high) _GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high))
0096 #define GUS_RAMPRATE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2))
0097 #define GUS_RAMPMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0)
0098 #define GUS_RAMPON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0)
0099 #define GUS_RAMPOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_RAMPOFF, 0, 0)
0100 #define GUS_VOLUME_SCALE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2))
0101 #define GUS_VOICE_POS(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICE_POS, \
0102 (p) & 0xffff, ((p) >> 16) & 0xffff)
0103
0104 #endif