|
|
1.1 root 1: /*++ BUILD Version: 0002 // Increment this if a change has global effects
2:
3:
4: Copyright (c) 1993 Microsoft Corporation
5:
6: Module Name:
7:
8: sound.h
9:
10: Abstract:
11:
12: This include file defines constants and types for
13: the Microsoft midi synthesiser kernel-mode driver
14:
15: Author:
16:
17: Robin Speed (RobinSp) 20-Oct-92
18:
19: Revision History:
20:
21: --*/
22:
23:
24: //
25: // Other header files needed to build this driver
26: //
27:
28: #include <soundlib.h>
29: #include "hardware.h"
30:
31: #define DRIVER_VERSION 0x0100
32:
33:
34: //
35: // Magic markers
36: //
37:
38: #define GDI_KEY (*(ULONG *)"GDI ")
39:
40:
41:
42: extern SOUND_DEVICE_INIT DeviceInit[NumberOfDevices];
43:
44:
45: typedef struct {
46: WAVE_DD_VOLUME Volume[NumberOfDevices];
47: } SOUND_CONFIG_DATA, *PSOUND_CONFIG_DATA;
48:
49:
50: //
51: // driver global data structure shared by each device object
52: // Note that we have one global spin lock used for all access
53: // to both the global data and the local data structures.
54: //
55:
56: typedef struct _GLOBAL_DEVICE_INFO {
57:
58: // static items not requiring use of the spin lock
59:
60: ULONG Key;
61: INTERFACE_TYPE BusType;
62: ULONG BusNumber;
63:
64: //
65: // Device access
66: //
67:
68: KMUTEX MidiMutex;
69:
70: ULONG MemType;
71: PDEVICE_OBJECT DeviceObject[ // pointer to input device objects
72: NumberOfDevices];
73: PDRIVER_OBJECT DriverObject; // The actual driver instance
74:
75: UCHAR DeviceInUse;
76:
77: SOUND_HARDWARE Hw; // Hardware specific stuff
78:
79: //
80: // Registry path saving
81: //
82:
83: PWSTR RegistryPathName;
84: } GLOBAL_DEVICE_INFO, *PGLOBAL_DEVICE_INFO;
85:
86:
87: //
88: // config.c Configuration routines
89: //
90:
91: NTSTATUS
92: SoundReadConfiguration(
93: IN PWSTR ValueName,
94: IN ULONG ValueType,
95: IN PVOID ValueData,
96: IN ULONG ValueLength,
97: IN PVOID Context,
98: IN PVOID EntryContext
99: );
100:
101: NTSTATUS
102: SoundGetSynthConfig(
103: IN OUT PGLOBAL_DEVICE_INFO pGDI
104: );
105:
106: VOID
107: SoundSaveVolume(
108: PGLOBAL_DEVICE_INFO pGDI
109: );
110:
111:
112: SOUND_DISPATCH_ROUTINE SoundMidiDispatch;
113:
114:
115: //
116: // mididisp.c
117: //
118:
119:
120: VOID
121: SoundMidiQuiet(
122: IN UCHAR DeviceIndex,
123: IN PSOUND_HARDWARE pHw
124: );
125:
126: NTSTATUS
127: SoundSynthPortValid(
128: IN OUT PGLOBAL_DEVICE_INFO pGDI
129: );
130:
131: BOOL
132: SoundMidiIsOpl3(
133: IN PSOUND_HARDWARE pHw
134: );
135:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.