|
|
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.