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