|
|
1.1 root 1: /*
2: * Copyright (c) 1992 Microsoft Corporation
3: */
4:
5: /*
6: * declaration of interface functions to the OPL3 midi device type.
7: *
8: * These functions are called from midi.c when the kernel driver
9: * has decreed that this is an opl3-compatible device.
10: *
11: * Geraint Davies, Dec 92
12: */
13:
14:
15: /*
16: * Opl3_NoteOn - This turns a note on. (Including drums, with
17: * a patch # of the drum Note + 128)
18: *
19: * inputs
20: * BYTE bPatch - MIDI patch number
21: * BYTE bNote - MIDI note number
22: * BYTE bChannel - MIDI channel #
23: * BYTE bVelocity - Velocity #
24: * short iBend - current pitch bend from -32768, to 32767
25: * returns
26: * none
27: */
28: VOID NEAR PASCAL Opl3_NoteOn (BYTE bPatch,
29: BYTE bNote, BYTE bChannel, BYTE bVelocity,
30: short iBend);
31:
32:
33:
34: /* Opl3_NoteOff - This turns a note off. (Including drums,
35: * with a patch # of the drum note + 128)
36: *
37: * inputs
38: * BYTE bPatch - MIDI patch #
39: * BYTE bNote - MIDI note number
40: * BYTE bChannel - MIDI channel #
41: * returns
42: * none
43: */
44: VOID FAR PASCAL Opl3_NoteOff (BYTE bPatch,
45: BYTE bNote, BYTE bChannel);
46:
47: /* Opl3_AllNotesOff - turn off all notes
48: *
49: * inputs - none
50: * returns - none
51: */
52: VOID Opl3_AllNotesOff(void);
53:
54:
55: /* Opl3_NewVolume - This should be called if a volume level
56: * has changed. This will adjust the levels of all the playing
57: * voices.
58: *
59: * inputs
60: * WORD wLeft - left attenuation (1.5 db units)
61: * WORD wRight - right attenuation (ignore if mono)
62: * returns
63: * none
64: */
65: VOID FAR PASCAL Opl3_NewVolume (WORD wLeft, WORD wRight);
66:
67:
68:
69: /* Opl3_ChannelVolume - set the volume level for an individual channel.
70: *
71: * inputs
72: * BYTE bChannel - channel number to change
73: * WORD wAtten - attenuation in 1.5 db units
74: *
75: * returns
76: * none
77: */
78: VOID FAR PASCAL Opl3_ChannelVolume(BYTE bChannel, WORD wAtten);
79:
80:
81:
82: /* Opl3_SetPan - set the left-right pan position.
83: *
84: * inputs
85: * BYTE bChannel - channel number to alter
86: * BYTE bPan - 0 for left, 127 for right or somewhere in the middle.
87: *
88: * returns - none
89: */
90: VOID FAR PASCAL Opl3_SetPan(BYTE bChannel, BYTE bPan);
91:
92:
93:
94: /* Opl3_PitchBend - This pitch bends a channel.
95: *
96: * inputs
97: * BYTE bChannel - channel
98: * short iBend - Values from -32768 to 32767, being
99: * -2 to +2 half steps
100: * returns
101: * none
102: */
103: VOID NEAR PASCAL Opl3_PitchBend (BYTE bChannel, short iBend);
104:
105:
106:
107: /* Opl3_BoardInit - initialise board and load patches as necessary.
108: *
109: * inputs - none
110: * returns - 0 for success or the error code
111: */
112: WORD Opl3_BoardInit(void);
113:
114:
115: /*
116: * Opl3_BoardReset - silence the board and set all voices off.
117: */
118: VOID Opl3_BoardReset(void);
119:
120:
121:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.