124 lines
2.5 KiB
C
124 lines
2.5 KiB
C
/*
|
|
* Copyright (c) 1992-1994 Microsoft Corporation
|
|
*/
|
|
|
|
/*
|
|
* definition of interface functions to the adlib midi device type.
|
|
*
|
|
* These functions are called from midi.c when the kernel driver
|
|
* has decreed that this is an adlib-compatible device.
|
|
*
|
|
* Geraint Davies, Dec 92
|
|
*/
|
|
|
|
|
|
/*
|
|
* Adlib_NoteOn - This turns a note on. (Including drums, with
|
|
* a patch # of the drum Note + 128)
|
|
*
|
|
* inputs
|
|
* BYTE bPatch - MIDI patch number
|
|
* BYTE bNote - MIDI note number
|
|
* BYTE bChannel - MIDI channel #
|
|
* BYTE bVelocity - Velocity #
|
|
* short iBend - current pitch bend from -32768, to 32767
|
|
* returns
|
|
* none
|
|
*/
|
|
VOID NEAR PASCAL Adlib_NoteOn (BYTE bPatch,
|
|
BYTE bNote, BYTE bChannel, BYTE bVelocity,
|
|
short iBend);
|
|
|
|
|
|
|
|
/* Adlib_NoteOff - This turns a note off. (Including drums,
|
|
* with a patch # of the drum note + 128)
|
|
*
|
|
* inputs
|
|
* BYTE bPatch - MIDI patch #
|
|
* BYTE bNote - MIDI note number
|
|
* BYTE bChannel - MIDI channel #
|
|
* returns
|
|
* none
|
|
*/
|
|
VOID FAR PASCAL Adlib_NoteOff (BYTE bPatch,
|
|
BYTE bNote, BYTE bChannel);
|
|
|
|
|
|
/* Adlib_AllNotesOff - turn off all notes
|
|
*
|
|
* inputs - none
|
|
* returns - none
|
|
*/
|
|
VOID Adlib_AllNotesOff(void);
|
|
|
|
|
|
|
|
/* Adlib_NewVolume - This should be called if a volume level
|
|
* has changed. This will adjust the levels of all the playing
|
|
* voices.
|
|
*
|
|
* inputs
|
|
* WORD wLeft - left attenuation (1.5 db units)
|
|
* WORD wRight - right attenuation (ignore if mono)
|
|
* returns
|
|
* none
|
|
*/
|
|
VOID FAR PASCAL Adlib_NewVolume (WORD wLeft, WORD wRight);
|
|
|
|
|
|
|
|
/* Adlib_ChannelVolume - set the volume level for an individual channel.
|
|
*
|
|
* inputs
|
|
* BYTE bChannel - channel number to change
|
|
* WORD wAtten - attenuation in 1.5 db units
|
|
*
|
|
* returns
|
|
* none
|
|
*/
|
|
VOID FAR PASCAL Adlib_ChannelVolume(BYTE bChannel, WORD wAtten);
|
|
|
|
|
|
|
|
/* Adlib_SetPan - set the left-right pan position.
|
|
*
|
|
* inputs
|
|
* BYTE bChannel - channel number to alter
|
|
* BYTE bPan - 0 for left, 127 for right or somewhere in the middle.
|
|
*
|
|
* returns - none
|
|
*/
|
|
VOID FAR PASCAL Adlib_SetPan(BYTE bChannel, BYTE bPan);
|
|
|
|
|
|
|
|
/* Adlib_PitchBend - This pitch bends a channel.
|
|
*
|
|
* inputs
|
|
* BYTE bChannel - channel
|
|
* short iBend - Values from -32768 to 32767, being
|
|
* -2 to +2 half steps
|
|
* returns
|
|
* none
|
|
*/
|
|
VOID NEAR PASCAL Adlib_PitchBend (BYTE bChannel, short iBend);
|
|
|
|
|
|
|
|
/* Adlib_BoardInit - initialise board and load patches as necessary.
|
|
*
|
|
* inputs - none
|
|
* returns - 0 for success or the error code
|
|
*/
|
|
WORD Adlib_BoardInit(void);
|
|
|
|
|
|
/*
|
|
* Adlib_BoardReset - silence the board and set all voices off.
|
|
*/
|
|
VOID Adlib_BoardReset(void);
|
|
|
|
|
|
|