|
|
1.1 ! root 1: /*++ BUILD Version: 0001 // Increment this if a change has global effects ! 2: ! 3: ! 4: Copyright (c) 1992 Microsoft Corporation ! 5: ! 6: Module Name: ! 7: ! 8: midi.h ! 9: ! 10: Abstract: ! 11: ! 12: This include file defines common structures for midi drivers ! 13: ! 14: Author: ! 15: ! 16: Robin Speed (RobinSp) 17-Oct-92 ! 17: ! 18: Revision History: ! 19: ! 20: --*/ ! 21: ! 22: // ! 23: // Hardware interface routine type for Midi processing ! 24: // ! 25: ! 26: ! 27: struct _MIDI_INFO; ! 28: typedef BOOLEAN MIDI_INTERFACE_ROUTINE(struct _MIDI_INFO *); ! 29: typedef MIDI_INTERFACE_ROUTINE *PMIDI_INTERFACE_ROUTINE; ! 30: ! 31: ! 32: typedef struct _MIDI_INFO { ! 33: ULONG Key; // Debugging ! 34: ! 35: #define MIDI_INFO_KEY (*(ULONG *)"Midi") ! 36: ! 37: KSPIN_LOCK DeviceSpinLock; // spin lock for synchrnonizing with ! 38: // Dpc routine ! 39: #if DBG ! 40: BOOLEAN LockHeld; // Get spin locks right ! 41: #endif ! 42: ! 43: LARGE_INTEGER RefTime; // Time in 100ns units when started ! 44: LIST_ENTRY QueueHead; // queue of input buffers ! 45: PVOID HwContext; ! 46: PMIDI_INTERFACE_ROUTINE ! 47: HwStartMidiIn, // Start device ! 48: HwStopMidiIn; // stop device ! 49: BOOLEAN (* HwMidiRead)( // Read a byte - returns TRUE if ! 50: // got one. ! 51: struct _MIDI_INFO *, PUCHAR); ! 52: VOID (* HwMidiOut)( // Output bytes to the device ! 53: struct _MIDI_INFO *, PUCHAR, int); ! 54: BOOLEAN fMidiInStarted; // Midi input active ! 55: UCHAR InputPosition; // Number of bytes in buffer ! 56: UCHAR InputBytes; // Number of bytes available ! 57: UCHAR MidiInputByte[64]; // Input byte(s) rececived - and ! 58: // do a little buffering ! 59: } MIDI_INFO, *PMIDI_INFO; ! 60: ! 61: VOID SoundInitMidiIn( ! 62: IN OUT PMIDI_INFO pMidi, ! 63: IN PVOID HwContext ! 64: );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.