1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {}
4 pub const CLSID_DirectMusic: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1667997456, data2: 3197, data3: 4561, data4: [149, 178, 0, 32, 175, 220, 116, 33] };
5 pub const CLSID_DirectMusicCollection: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1209005232, data2: 10418, data3: 4561, data4: [190, 247, 0, 192, 79, 191, 143, 239] };
6 pub const CLSID_DirectMusicSynth: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1489155280, data2: 18151, data3: 4561, data4: [137, 172, 0, 160, 201, 5, 65, 41] };
7 pub const CLSID_DirectMusicSynthSink: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2931916003, data2: 42260, data3: 4561, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
8 pub const CLSID_DirectSoundPrivate: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 296435392, data2: 9708, data3: 4561, data4: [164, 216, 0, 192, 79, 194, 138, 202] };
9 #[repr(C)]
10 pub struct CONNECTION {
11     pub usSource: u16,
12     pub usControl: u16,
13     pub usDestination: u16,
14     pub usTransform: u16,
15     pub lScale: i32,
16 }
17 impl ::core::marker::Copy for CONNECTION {}
18 impl ::core::clone::Clone for CONNECTION {
clone(&self) -> Self19     fn clone(&self) -> Self {
20         *self
21     }
22 }
23 #[repr(C)]
24 pub struct CONNECTIONLIST {
25     pub cbSize: u32,
26     pub cConnections: u32,
27 }
28 impl ::core::marker::Copy for CONNECTIONLIST {}
29 impl ::core::clone::Clone for CONNECTIONLIST {
clone(&self) -> Self30     fn clone(&self) -> Self {
31         *self
32     }
33 }
34 pub const CONN_DST_ATTENUATION: u32 = 1u32;
35 pub const CONN_DST_CENTER: u32 = 18u32;
36 pub const CONN_DST_CHORUS: u32 = 128u32;
37 pub const CONN_DST_EG1_ATTACKTIME: u32 = 518u32;
38 pub const CONN_DST_EG1_DECAYTIME: u32 = 519u32;
39 pub const CONN_DST_EG1_DELAYTIME: u32 = 523u32;
40 pub const CONN_DST_EG1_HOLDTIME: u32 = 524u32;
41 pub const CONN_DST_EG1_RELEASETIME: u32 = 521u32;
42 pub const CONN_DST_EG1_SHUTDOWNTIME: u32 = 525u32;
43 pub const CONN_DST_EG1_SUSTAINLEVEL: u32 = 522u32;
44 pub const CONN_DST_EG2_ATTACKTIME: u32 = 778u32;
45 pub const CONN_DST_EG2_DECAYTIME: u32 = 779u32;
46 pub const CONN_DST_EG2_DELAYTIME: u32 = 783u32;
47 pub const CONN_DST_EG2_HOLDTIME: u32 = 784u32;
48 pub const CONN_DST_EG2_RELEASETIME: u32 = 781u32;
49 pub const CONN_DST_EG2_SUSTAINLEVEL: u32 = 782u32;
50 pub const CONN_DST_FILTER_CUTOFF: u32 = 1280u32;
51 pub const CONN_DST_FILTER_Q: u32 = 1281u32;
52 pub const CONN_DST_GAIN: u32 = 1u32;
53 pub const CONN_DST_KEYNUMBER: u32 = 5u32;
54 pub const CONN_DST_LEFT: u32 = 16u32;
55 pub const CONN_DST_LEFTREAR: u32 = 19u32;
56 pub const CONN_DST_LFE_CHANNEL: u32 = 21u32;
57 pub const CONN_DST_LFO_FREQUENCY: u32 = 260u32;
58 pub const CONN_DST_LFO_STARTDELAY: u32 = 261u32;
59 pub const CONN_DST_NONE: u32 = 0u32;
60 pub const CONN_DST_PAN: u32 = 4u32;
61 pub const CONN_DST_PITCH: u32 = 3u32;
62 pub const CONN_DST_REVERB: u32 = 129u32;
63 pub const CONN_DST_RIGHT: u32 = 17u32;
64 pub const CONN_DST_RIGHTREAR: u32 = 20u32;
65 pub const CONN_DST_VIB_FREQUENCY: u32 = 276u32;
66 pub const CONN_DST_VIB_STARTDELAY: u32 = 277u32;
67 pub const CONN_SRC_CC1: u32 = 129u32;
68 pub const CONN_SRC_CC10: u32 = 138u32;
69 pub const CONN_SRC_CC11: u32 = 139u32;
70 pub const CONN_SRC_CC7: u32 = 135u32;
71 pub const CONN_SRC_CC91: u32 = 219u32;
72 pub const CONN_SRC_CC93: u32 = 221u32;
73 pub const CONN_SRC_CHANNELPRESSURE: u32 = 8u32;
74 pub const CONN_SRC_EG1: u32 = 4u32;
75 pub const CONN_SRC_EG2: u32 = 5u32;
76 pub const CONN_SRC_KEYNUMBER: u32 = 3u32;
77 pub const CONN_SRC_KEYONVELOCITY: u32 = 2u32;
78 pub const CONN_SRC_LFO: u32 = 1u32;
79 pub const CONN_SRC_MONOPRESSURE: u32 = 10u32;
80 pub const CONN_SRC_NONE: u32 = 0u32;
81 pub const CONN_SRC_PITCHWHEEL: u32 = 6u32;
82 pub const CONN_SRC_POLYPRESSURE: u32 = 7u32;
83 pub const CONN_SRC_VIBRATO: u32 = 9u32;
84 pub const CONN_TRN_CONCAVE: u32 = 1u32;
85 pub const CONN_TRN_CONVEX: u32 = 2u32;
86 pub const CONN_TRN_NONE: u32 = 0u32;
87 pub const CONN_TRN_SWITCH: u32 = 3u32;
88 pub const DAUD_CHAN10_VOICE_PRIORITY_OFFSET: u32 = 15u32;
89 pub const DAUD_CHAN11_VOICE_PRIORITY_OFFSET: u32 = 5u32;
90 pub const DAUD_CHAN12_VOICE_PRIORITY_OFFSET: u32 = 4u32;
91 pub const DAUD_CHAN13_VOICE_PRIORITY_OFFSET: u32 = 3u32;
92 pub const DAUD_CHAN14_VOICE_PRIORITY_OFFSET: u32 = 2u32;
93 pub const DAUD_CHAN15_VOICE_PRIORITY_OFFSET: u32 = 1u32;
94 pub const DAUD_CHAN16_VOICE_PRIORITY_OFFSET: u32 = 0u32;
95 pub const DAUD_CHAN1_VOICE_PRIORITY_OFFSET: u32 = 14u32;
96 pub const DAUD_CHAN2_VOICE_PRIORITY_OFFSET: u32 = 13u32;
97 pub const DAUD_CHAN3_VOICE_PRIORITY_OFFSET: u32 = 12u32;
98 pub const DAUD_CHAN4_VOICE_PRIORITY_OFFSET: u32 = 11u32;
99 pub const DAUD_CHAN5_VOICE_PRIORITY_OFFSET: u32 = 10u32;
100 pub const DAUD_CHAN6_VOICE_PRIORITY_OFFSET: u32 = 9u32;
101 pub const DAUD_CHAN7_VOICE_PRIORITY_OFFSET: u32 = 8u32;
102 pub const DAUD_CHAN8_VOICE_PRIORITY_OFFSET: u32 = 7u32;
103 pub const DAUD_CHAN9_VOICE_PRIORITY_OFFSET: u32 = 6u32;
104 pub const DAUD_CRITICAL_VOICE_PRIORITY: u32 = 4026531840u32;
105 pub const DAUD_HIGH_VOICE_PRIORITY: u32 = 3221225472u32;
106 pub const DAUD_LOW_VOICE_PRIORITY: u32 = 1073741824u32;
107 pub const DAUD_PERSIST_VOICE_PRIORITY: u32 = 268435456u32;
108 pub const DAUD_STANDARD_VOICE_PRIORITY: u32 = 2147483648u32;
109 pub type DIRECTSOUNDDEVICE_DATAFLOW = i32;
110 pub const DIRECTSOUNDDEVICE_DATAFLOW_RENDER: DIRECTSOUNDDEVICE_DATAFLOW = 0i32;
111 pub const DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE: DIRECTSOUNDDEVICE_DATAFLOW = 1i32;
112 pub type DIRECTSOUNDDEVICE_TYPE = i32;
113 pub const DIRECTSOUNDDEVICE_TYPE_EMULATED: DIRECTSOUNDDEVICE_TYPE = 0i32;
114 pub const DIRECTSOUNDDEVICE_TYPE_VXD: DIRECTSOUNDDEVICE_TYPE = 1i32;
115 pub const DIRECTSOUNDDEVICE_TYPE_WDM: DIRECTSOUNDDEVICE_TYPE = 2i32;
116 #[repr(C)]
117 pub struct DLSHEADER {
118     pub cInstruments: u32,
119 }
120 impl ::core::marker::Copy for DLSHEADER {}
121 impl ::core::clone::Clone for DLSHEADER {
clone(&self) -> Self122     fn clone(&self) -> Self {
123         *self
124     }
125 }
126 #[repr(C)]
127 pub struct DLSID {
128     pub ulData1: u32,
129     pub usData2: u16,
130     pub usData3: u16,
131     pub abData4: [u8; 8],
132 }
133 impl ::core::marker::Copy for DLSID {}
134 impl ::core::clone::Clone for DLSID {
clone(&self) -> Self135     fn clone(&self) -> Self {
136         *self
137     }
138 }
139 pub const DLSID_GMInHardware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259684, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
140 pub const DLSID_GSInHardware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259685, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
141 pub const DLSID_ManufacturersID: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2956857729, data2: 32917, data3: 4562, data4: [161, 239, 0, 96, 8, 51, 219, 216] };
142 pub const DLSID_ProductID: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2956857730, data2: 32917, data3: 4562, data4: [161, 239, 0, 96, 8, 51, 219, 216] };
143 pub const DLSID_SampleMemorySize: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259688, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
144 pub const DLSID_SamplePlaybackRate: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 714209043, data2: 42175, data3: 4562, data4: [187, 223, 0, 96, 8, 51, 219, 216] };
145 pub const DLSID_SupportsDLS1: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259687, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
146 pub const DLSID_SupportsDLS2: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 4047870437, data2: 18057, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
147 pub const DLSID_XGInHardware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259686, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
148 #[repr(C)]
149 pub struct DLSVERSION {
150     pub dwVersionMS: u32,
151     pub dwVersionLS: u32,
152 }
153 impl ::core::marker::Copy for DLSVERSION {}
154 impl ::core::clone::Clone for DLSVERSION {
clone(&self) -> Self155     fn clone(&self) -> Self {
156         *self
157     }
158 }
159 pub const DLS_CDL_ADD: u32 = 4u32;
160 pub const DLS_CDL_AND: u32 = 1u32;
161 pub const DLS_CDL_CONST: u32 = 16u32;
162 pub const DLS_CDL_DIVIDE: u32 = 7u32;
163 pub const DLS_CDL_EQ: u32 = 14u32;
164 pub const DLS_CDL_GE: u32 = 13u32;
165 pub const DLS_CDL_GT: u32 = 12u32;
166 pub const DLS_CDL_LE: u32 = 11u32;
167 pub const DLS_CDL_LOGICAL_AND: u32 = 8u32;
168 pub const DLS_CDL_LOGICAL_OR: u32 = 9u32;
169 pub const DLS_CDL_LT: u32 = 10u32;
170 pub const DLS_CDL_MULTIPLY: u32 = 6u32;
171 pub const DLS_CDL_NOT: u32 = 15u32;
172 pub const DLS_CDL_OR: u32 = 2u32;
173 pub const DLS_CDL_QUERY: u32 = 17u32;
174 pub const DLS_CDL_QUERYSUPPORTED: u32 = 18u32;
175 pub const DLS_CDL_SUBTRACT: u32 = 5u32;
176 pub const DLS_CDL_XOR: u32 = 3u32;
177 #[repr(C)]
178 pub struct DMUS_ARTICPARAMS {
179     pub LFO: DMUS_LFOPARAMS,
180     pub VolEG: DMUS_VEGPARAMS,
181     pub PitchEG: DMUS_PEGPARAMS,
182     pub Misc: DMUS_MSCPARAMS,
183 }
184 impl ::core::marker::Copy for DMUS_ARTICPARAMS {}
185 impl ::core::clone::Clone for DMUS_ARTICPARAMS {
clone(&self) -> Self186     fn clone(&self) -> Self {
187         *self
188     }
189 }
190 #[repr(C)]
191 pub struct DMUS_ARTICULATION {
192     pub ulArt1Idx: u32,
193     pub ulFirstExtCkIdx: u32,
194 }
195 impl ::core::marker::Copy for DMUS_ARTICULATION {}
196 impl ::core::clone::Clone for DMUS_ARTICULATION {
clone(&self) -> Self197     fn clone(&self) -> Self {
198         *self
199     }
200 }
201 #[repr(C)]
202 pub struct DMUS_ARTICULATION2 {
203     pub ulArtIdx: u32,
204     pub ulFirstExtCkIdx: u32,
205     pub ulNextArtIdx: u32,
206 }
207 impl ::core::marker::Copy for DMUS_ARTICULATION2 {}
208 impl ::core::clone::Clone for DMUS_ARTICULATION2 {
clone(&self) -> Self209     fn clone(&self) -> Self {
210         *self
211     }
212 }
213 #[repr(C)]
214 pub struct DMUS_BUFFERDESC {
215     pub dwSize: u32,
216     pub dwFlags: u32,
217     pub guidBufferFormat: ::windows_sys::core::GUID,
218     pub cbBuffer: u32,
219 }
220 impl ::core::marker::Copy for DMUS_BUFFERDESC {}
221 impl ::core::clone::Clone for DMUS_BUFFERDESC {
clone(&self) -> Self222     fn clone(&self) -> Self {
223         *self
224     }
225 }
226 pub const DMUS_CLOCKF_GLOBAL: u32 = 1u32;
227 #[repr(C)]
228 pub struct DMUS_CLOCKINFO7 {
229     pub dwSize: u32,
230     pub ctType: DMUS_CLOCKTYPE,
231     pub guidClock: ::windows_sys::core::GUID,
232     pub wszDescription: [u16; 128],
233 }
234 impl ::core::marker::Copy for DMUS_CLOCKINFO7 {}
235 impl ::core::clone::Clone for DMUS_CLOCKINFO7 {
clone(&self) -> Self236     fn clone(&self) -> Self {
237         *self
238     }
239 }
240 #[repr(C)]
241 pub struct DMUS_CLOCKINFO8 {
242     pub dwSize: u32,
243     pub ctType: DMUS_CLOCKTYPE,
244     pub guidClock: ::windows_sys::core::GUID,
245     pub wszDescription: [u16; 128],
246     pub dwFlags: u32,
247 }
248 impl ::core::marker::Copy for DMUS_CLOCKINFO8 {}
249 impl ::core::clone::Clone for DMUS_CLOCKINFO8 {
clone(&self) -> Self250     fn clone(&self) -> Self {
251         *self
252     }
253 }
254 pub type DMUS_CLOCKTYPE = i32;
255 pub const DMUS_CLOCK_SYSTEM: DMUS_CLOCKTYPE = 0i32;
256 pub const DMUS_CLOCK_WAVE: DMUS_CLOCKTYPE = 1i32;
257 #[repr(C)]
258 pub struct DMUS_COPYRIGHT {
259     pub cbSize: u32,
260     pub byCopyright: [u8; 4],
261 }
262 impl ::core::marker::Copy for DMUS_COPYRIGHT {}
263 impl ::core::clone::Clone for DMUS_COPYRIGHT {
clone(&self) -> Self264     fn clone(&self) -> Self {
265         *self
266     }
267 }
268 pub const DMUS_DEFAULT_SIZE_OFFSETTABLE: u32 = 1u32;
269 #[repr(C)]
270 pub struct DMUS_DOWNLOADINFO {
271     pub dwDLType: u32,
272     pub dwDLId: u32,
273     pub dwNumOffsetTableEntries: u32,
274     pub cbSize: u32,
275 }
276 impl ::core::marker::Copy for DMUS_DOWNLOADINFO {}
277 impl ::core::clone::Clone for DMUS_DOWNLOADINFO {
clone(&self) -> Self278     fn clone(&self) -> Self {
279         *self
280     }
281 }
282 pub const DMUS_DOWNLOADINFO_INSTRUMENT: u32 = 1u32;
283 pub const DMUS_DOWNLOADINFO_INSTRUMENT2: u32 = 3u32;
284 pub const DMUS_DOWNLOADINFO_ONESHOTWAVE: u32 = 6u32;
285 pub const DMUS_DOWNLOADINFO_STREAMINGWAVE: u32 = 5u32;
286 pub const DMUS_DOWNLOADINFO_WAVE: u32 = 2u32;
287 pub const DMUS_DOWNLOADINFO_WAVEARTICULATION: u32 = 4u32;
288 pub const DMUS_EFFECT_CHORUS: u32 = 2u32;
289 pub const DMUS_EFFECT_DELAY: u32 = 4u32;
290 pub const DMUS_EFFECT_NONE: u32 = 0u32;
291 pub const DMUS_EFFECT_REVERB: u32 = 1u32;
292 #[repr(C, packed(4))]
293 pub struct DMUS_EVENTHEADER {
294     pub cbEvent: u32,
295     pub dwChannelGroup: u32,
296     pub rtDelta: i64,
297     pub dwFlags: u32,
298 }
299 impl ::core::marker::Copy for DMUS_EVENTHEADER {}
300 impl ::core::clone::Clone for DMUS_EVENTHEADER {
clone(&self) -> Self301     fn clone(&self) -> Self {
302         *self
303     }
304 }
305 pub const DMUS_EVENT_STRUCTURED: u32 = 1u32;
306 #[repr(C)]
307 pub struct DMUS_EXTENSIONCHUNK {
308     pub cbSize: u32,
309     pub ulNextExtCkIdx: u32,
310     pub ExtCkID: u32,
311     pub byExtCk: [u8; 4],
312 }
313 impl ::core::marker::Copy for DMUS_EXTENSIONCHUNK {}
314 impl ::core::clone::Clone for DMUS_EXTENSIONCHUNK {
clone(&self) -> Self315     fn clone(&self) -> Self {
316         *self
317     }
318 }
319 #[repr(C)]
320 pub struct DMUS_INSTRUMENT {
321     pub ulPatch: u32,
322     pub ulFirstRegionIdx: u32,
323     pub ulGlobalArtIdx: u32,
324     pub ulFirstExtCkIdx: u32,
325     pub ulCopyrightIdx: u32,
326     pub ulFlags: u32,
327 }
328 impl ::core::marker::Copy for DMUS_INSTRUMENT {}
329 impl ::core::clone::Clone for DMUS_INSTRUMENT {
clone(&self) -> Self330     fn clone(&self) -> Self {
331         *self
332     }
333 }
334 pub const DMUS_INSTRUMENT_GM_INSTRUMENT: u32 = 1u32;
335 #[repr(C)]
336 pub struct DMUS_LFOPARAMS {
337     pub pcFrequency: i32,
338     pub tcDelay: i32,
339     pub gcVolumeScale: i32,
340     pub pcPitchScale: i32,
341     pub gcMWToVolume: i32,
342     pub pcMWToPitch: i32,
343 }
344 impl ::core::marker::Copy for DMUS_LFOPARAMS {}
345 impl ::core::clone::Clone for DMUS_LFOPARAMS {
clone(&self) -> Self346     fn clone(&self) -> Self {
347         *self
348     }
349 }
350 pub const DMUS_MAX_DESCRIPTION: u32 = 128u32;
351 pub const DMUS_MAX_DRIVER: u32 = 128u32;
352 pub const DMUS_MIN_DATA_SIZE: u32 = 4u32;
353 #[repr(C)]
354 pub struct DMUS_MSCPARAMS {
355     pub ptDefaultPan: i32,
356 }
357 impl ::core::marker::Copy for DMUS_MSCPARAMS {}
358 impl ::core::clone::Clone for DMUS_MSCPARAMS {
clone(&self) -> Self359     fn clone(&self) -> Self {
360         *self
361     }
362 }
363 #[repr(C)]
364 pub struct DMUS_NOTERANGE {
365     pub dwLowNote: u32,
366     pub dwHighNote: u32,
367 }
368 impl ::core::marker::Copy for DMUS_NOTERANGE {}
369 impl ::core::clone::Clone for DMUS_NOTERANGE {
clone(&self) -> Self370     fn clone(&self) -> Self {
371         *self
372     }
373 }
374 #[repr(C)]
375 pub struct DMUS_OFFSETTABLE {
376     pub ulOffsetTable: [u32; 1],
377 }
378 impl ::core::marker::Copy for DMUS_OFFSETTABLE {}
379 impl ::core::clone::Clone for DMUS_OFFSETTABLE {
clone(&self) -> Self380     fn clone(&self) -> Self {
381         *self
382     }
383 }
384 pub const DMUS_PC_AUDIOPATH: u32 = 1024u32;
385 pub const DMUS_PC_DIRECTSOUND: u32 = 128u32;
386 pub const DMUS_PC_DLS: u32 = 1u32;
387 pub const DMUS_PC_DLS2: u32 = 512u32;
388 pub const DMUS_PC_EXTERNAL: u32 = 2u32;
389 pub const DMUS_PC_GMINHARDWARE: u32 = 16u32;
390 pub const DMUS_PC_GSINHARDWARE: u32 = 32u32;
391 pub const DMUS_PC_INPUTCLASS: u32 = 0u32;
392 pub const DMUS_PC_MEMORYSIZEFIXED: u32 = 8u32;
393 pub const DMUS_PC_OUTPUTCLASS: u32 = 1u32;
394 pub const DMUS_PC_SHAREABLE: u32 = 256u32;
395 pub const DMUS_PC_SOFTWARESYNTH: u32 = 4u32;
396 pub const DMUS_PC_SYSTEMMEMORY: u32 = 2147483647u32;
397 pub const DMUS_PC_WAVE: u32 = 2048u32;
398 pub const DMUS_PC_XGINHARDWARE: u32 = 64u32;
399 #[repr(C)]
400 pub struct DMUS_PEGPARAMS {
401     pub tcAttack: i32,
402     pub tcDecay: i32,
403     pub ptSustain: i32,
404     pub tcRelease: i32,
405     pub tcVel2Attack: i32,
406     pub tcKey2Decay: i32,
407     pub pcRange: i32,
408 }
409 impl ::core::marker::Copy for DMUS_PEGPARAMS {}
410 impl ::core::clone::Clone for DMUS_PEGPARAMS {
clone(&self) -> Self411     fn clone(&self) -> Self {
412         *self
413     }
414 }
415 #[repr(C)]
416 pub struct DMUS_PORTCAPS {
417     pub dwSize: u32,
418     pub dwFlags: u32,
419     pub guidPort: ::windows_sys::core::GUID,
420     pub dwClass: u32,
421     pub dwType: u32,
422     pub dwMemorySize: u32,
423     pub dwMaxChannelGroups: u32,
424     pub dwMaxVoices: u32,
425     pub dwMaxAudioChannels: u32,
426     pub dwEffectFlags: u32,
427     pub wszDescription: [u16; 128],
428 }
429 impl ::core::marker::Copy for DMUS_PORTCAPS {}
430 impl ::core::clone::Clone for DMUS_PORTCAPS {
clone(&self) -> Self431     fn clone(&self) -> Self {
432         *self
433     }
434 }
435 #[repr(C)]
436 #[cfg(feature = "Win32_Foundation")]
437 pub struct DMUS_PORTPARAMS8 {
438     pub dwSize: u32,
439     pub dwValidParams: u32,
440     pub dwVoices: u32,
441     pub dwChannelGroups: u32,
442     pub dwAudioChannels: u32,
443     pub dwSampleRate: u32,
444     pub dwEffectFlags: u32,
445     pub fShare: super::super::super::Foundation::BOOL,
446     pub dwFeatures: u32,
447 }
448 #[cfg(feature = "Win32_Foundation")]
449 impl ::core::marker::Copy for DMUS_PORTPARAMS8 {}
450 #[cfg(feature = "Win32_Foundation")]
451 impl ::core::clone::Clone for DMUS_PORTPARAMS8 {
clone(&self) -> Self452     fn clone(&self) -> Self {
453         *self
454     }
455 }
456 pub const DMUS_PORTPARAMS_AUDIOCHANNELS: u32 = 4u32;
457 pub const DMUS_PORTPARAMS_CHANNELGROUPS: u32 = 2u32;
458 pub const DMUS_PORTPARAMS_EFFECTS: u32 = 32u32;
459 pub const DMUS_PORTPARAMS_FEATURES: u32 = 128u32;
460 pub const DMUS_PORTPARAMS_SAMPLERATE: u32 = 8u32;
461 pub const DMUS_PORTPARAMS_SHARE: u32 = 64u32;
462 pub const DMUS_PORTPARAMS_VOICES: u32 = 1u32;
463 pub const DMUS_PORT_FEATURE_AUDIOPATH: u32 = 1u32;
464 pub const DMUS_PORT_FEATURE_STREAMING: u32 = 2u32;
465 pub const DMUS_PORT_KERNEL_MODE: u32 = 2u32;
466 pub const DMUS_PORT_USER_MODE_SYNTH: u32 = 1u32;
467 pub const DMUS_PORT_WINMM_DRIVER: u32 = 0u32;
468 #[repr(C)]
469 pub struct DMUS_REGION {
470     pub RangeKey: RGNRANGE,
471     pub RangeVelocity: RGNRANGE,
472     pub fusOptions: u16,
473     pub usKeyGroup: u16,
474     pub ulRegionArtIdx: u32,
475     pub ulNextRegionIdx: u32,
476     pub ulFirstExtCkIdx: u32,
477     pub WaveLink: WAVELINK,
478     pub WSMP: _rwsmp,
479     pub WLOOP: [_rloop; 1],
480 }
481 impl ::core::marker::Copy for DMUS_REGION {}
482 impl ::core::clone::Clone for DMUS_REGION {
clone(&self) -> Self483     fn clone(&self) -> Self {
484         *self
485     }
486 }
487 #[repr(C)]
488 pub struct DMUS_SYNTHSTATS {
489     pub dwSize: u32,
490     pub dwValidStats: u32,
491     pub dwVoices: u32,
492     pub dwTotalCPU: u32,
493     pub dwCPUPerVoice: u32,
494     pub dwLostNotes: u32,
495     pub dwFreeMemory: u32,
496     pub lPeakVolume: i32,
497 }
498 impl ::core::marker::Copy for DMUS_SYNTHSTATS {}
499 impl ::core::clone::Clone for DMUS_SYNTHSTATS {
clone(&self) -> Self500     fn clone(&self) -> Self {
501         *self
502     }
503 }
504 #[repr(C)]
505 pub struct DMUS_SYNTHSTATS8 {
506     pub dwSize: u32,
507     pub dwValidStats: u32,
508     pub dwVoices: u32,
509     pub dwTotalCPU: u32,
510     pub dwCPUPerVoice: u32,
511     pub dwLostNotes: u32,
512     pub dwFreeMemory: u32,
513     pub lPeakVolume: i32,
514     pub dwSynthMemUse: u32,
515 }
516 impl ::core::marker::Copy for DMUS_SYNTHSTATS8 {}
517 impl ::core::clone::Clone for DMUS_SYNTHSTATS8 {
clone(&self) -> Self518     fn clone(&self) -> Self {
519         *self
520     }
521 }
522 pub const DMUS_SYNTHSTATS_CPU_PER_VOICE: u32 = 4u32;
523 pub const DMUS_SYNTHSTATS_FREE_MEMORY: u32 = 32u32;
524 pub const DMUS_SYNTHSTATS_LOST_NOTES: u32 = 8u32;
525 pub const DMUS_SYNTHSTATS_PEAK_VOLUME: u32 = 16u32;
526 pub const DMUS_SYNTHSTATS_SYSTEMMEMORY: u32 = 2147483647u32;
527 pub const DMUS_SYNTHSTATS_TOTAL_CPU: u32 = 2u32;
528 pub const DMUS_SYNTHSTATS_VOICES: u32 = 1u32;
529 #[repr(C)]
530 pub struct DMUS_VEGPARAMS {
531     pub tcAttack: i32,
532     pub tcDecay: i32,
533     pub ptSustain: i32,
534     pub tcRelease: i32,
535     pub tcVel2Attack: i32,
536     pub tcKey2Decay: i32,
537 }
538 impl ::core::marker::Copy for DMUS_VEGPARAMS {}
539 impl ::core::clone::Clone for DMUS_VEGPARAMS {
clone(&self) -> Self540     fn clone(&self) -> Self {
541         *self
542     }
543 }
544 #[repr(C)]
545 #[cfg(feature = "Win32_Foundation")]
546 pub struct DMUS_VOICE_STATE {
547     pub bExists: super::super::super::Foundation::BOOL,
548     pub spPosition: u64,
549 }
550 #[cfg(feature = "Win32_Foundation")]
551 impl ::core::marker::Copy for DMUS_VOICE_STATE {}
552 #[cfg(feature = "Win32_Foundation")]
553 impl ::core::clone::Clone for DMUS_VOICE_STATE {
clone(&self) -> Self554     fn clone(&self) -> Self {
555         *self
556     }
557 }
558 pub const DMUS_VOLUME_MAX: u32 = 2000u32;
559 pub const DMUS_VOLUME_MIN: i32 = -20000i32;
560 #[repr(C)]
561 pub struct DMUS_WAVE {
562     pub ulFirstExtCkIdx: u32,
563     pub ulCopyrightIdx: u32,
564     pub ulWaveDataIdx: u32,
565     pub WaveformatEx: super::WAVEFORMATEX,
566 }
567 impl ::core::marker::Copy for DMUS_WAVE {}
568 impl ::core::clone::Clone for DMUS_WAVE {
clone(&self) -> Self569     fn clone(&self) -> Self {
570         *self
571     }
572 }
573 #[repr(C)]
574 pub struct DMUS_WAVEARTDL {
575     pub ulDownloadIdIdx: u32,
576     pub ulBus: u32,
577     pub ulBuffers: u32,
578     pub ulMasterDLId: u32,
579     pub usOptions: u16,
580 }
581 impl ::core::marker::Copy for DMUS_WAVEARTDL {}
582 impl ::core::clone::Clone for DMUS_WAVEARTDL {
clone(&self) -> Self583     fn clone(&self) -> Self {
584         *self
585     }
586 }
587 #[repr(C)]
588 pub struct DMUS_WAVEDATA {
589     pub cbSize: u32,
590     pub byData: [u8; 4],
591 }
592 impl ::core::marker::Copy for DMUS_WAVEDATA {}
593 impl ::core::clone::Clone for DMUS_WAVEDATA {
clone(&self) -> Self594     fn clone(&self) -> Self {
595         *self
596     }
597 }
598 #[repr(C)]
599 pub struct DMUS_WAVEDL {
600     pub cbWaveData: u32,
601 }
602 impl ::core::marker::Copy for DMUS_WAVEDL {}
603 impl ::core::clone::Clone for DMUS_WAVEDL {
clone(&self) -> Self604     fn clone(&self) -> Self {
605         *self
606     }
607 }
608 #[repr(C)]
609 pub struct DMUS_WAVES_REVERB_PARAMS {
610     pub fInGain: f32,
611     pub fReverbMix: f32,
612     pub fReverbTime: f32,
613     pub fHighFreqRTRatio: f32,
614 }
615 impl ::core::marker::Copy for DMUS_WAVES_REVERB_PARAMS {}
616 impl ::core::clone::Clone for DMUS_WAVES_REVERB_PARAMS {
clone(&self) -> Self617     fn clone(&self) -> Self {
618         *self
619     }
620 }
621 pub const DSBUSID_BACK_CENTER: u32 = 8u32;
622 pub const DSBUSID_BACK_LEFT: u32 = 4u32;
623 pub const DSBUSID_BACK_RIGHT: u32 = 5u32;
624 pub const DSBUSID_CHORUS_SEND: u32 = 65u32;
625 pub const DSBUSID_DYNAMIC_0: u32 = 512u32;
626 pub const DSBUSID_FIRST_SPKR_LOC: u32 = 0u32;
627 pub const DSBUSID_FRONT_CENTER: u32 = 2u32;
628 pub const DSBUSID_FRONT_LEFT: u32 = 0u32;
629 pub const DSBUSID_FRONT_LEFT_OF_CENTER: u32 = 6u32;
630 pub const DSBUSID_FRONT_RIGHT: u32 = 1u32;
631 pub const DSBUSID_FRONT_RIGHT_OF_CENTER: u32 = 7u32;
632 pub const DSBUSID_LAST_SPKR_LOC: u32 = 17u32;
633 pub const DSBUSID_LEFT: u32 = 0u32;
634 pub const DSBUSID_LOW_FREQUENCY: u32 = 3u32;
635 pub const DSBUSID_NULL: u32 = 4294967295u32;
636 pub const DSBUSID_REVERB_SEND: u32 = 64u32;
637 pub const DSBUSID_RIGHT: u32 = 1u32;
638 pub const DSBUSID_SIDE_LEFT: u32 = 9u32;
639 pub const DSBUSID_SIDE_RIGHT: u32 = 10u32;
640 pub const DSBUSID_TOP_BACK_CENTER: u32 = 16u32;
641 pub const DSBUSID_TOP_BACK_LEFT: u32 = 15u32;
642 pub const DSBUSID_TOP_BACK_RIGHT: u32 = 17u32;
643 pub const DSBUSID_TOP_CENTER: u32 = 11u32;
644 pub const DSBUSID_TOP_FRONT_CENTER: u32 = 13u32;
645 pub const DSBUSID_TOP_FRONT_LEFT: u32 = 12u32;
646 pub const DSBUSID_TOP_FRONT_RIGHT: u32 = 14u32;
647 pub type DSPROPERTY_DIRECTSOUNDDEVICE = i32;
648 pub const DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A: DSPROPERTY_DIRECTSOUNDDEVICE = 1i32;
649 pub const DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1: DSPROPERTY_DIRECTSOUNDDEVICE = 2i32;
650 pub const DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1: DSPROPERTY_DIRECTSOUNDDEVICE = 3i32;
651 pub const DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W: DSPROPERTY_DIRECTSOUNDDEVICE = 4i32;
652 pub const DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A: DSPROPERTY_DIRECTSOUNDDEVICE = 5i32;
653 pub const DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W: DSPROPERTY_DIRECTSOUNDDEVICE = 6i32;
654 pub const DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A: DSPROPERTY_DIRECTSOUNDDEVICE = 7i32;
655 pub const DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W: DSPROPERTY_DIRECTSOUNDDEVICE = 8i32;
656 #[repr(C)]
657 #[cfg(feature = "Win32_Foundation")]
658 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA {
659     pub DeviceId: ::windows_sys::core::GUID,
660     pub DescriptionA: [super::super::super::Foundation::CHAR; 256],
661     pub DescriptionW: [u16; 256],
662     pub ModuleA: [super::super::super::Foundation::CHAR; 260],
663     pub ModuleW: [u16; 260],
664     pub Type: DIRECTSOUNDDEVICE_TYPE,
665     pub DataFlow: DIRECTSOUNDDEVICE_DATAFLOW,
666     pub WaveDeviceId: u32,
667     pub Devnode: u32,
668 }
669 #[cfg(feature = "Win32_Foundation")]
670 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA {}
671 #[cfg(feature = "Win32_Foundation")]
672 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA {
clone(&self) -> Self673     fn clone(&self) -> Self {
674         *self
675     }
676 }
677 #[repr(C)]
678 #[cfg(feature = "Win32_Foundation")]
679 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA {
680     pub Type: DIRECTSOUNDDEVICE_TYPE,
681     pub DataFlow: DIRECTSOUNDDEVICE_DATAFLOW,
682     pub DeviceId: ::windows_sys::core::GUID,
683     pub Description: super::super::super::Foundation::PSTR,
684     pub Module: super::super::super::Foundation::PSTR,
685     pub Interface: super::super::super::Foundation::PSTR,
686     pub WaveDeviceId: u32,
687 }
688 #[cfg(feature = "Win32_Foundation")]
689 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA {}
690 #[cfg(feature = "Win32_Foundation")]
691 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA {
clone(&self) -> Self692     fn clone(&self) -> Self {
693         *self
694     }
695 }
696 #[repr(C)]
697 #[cfg(feature = "Win32_Foundation")]
698 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA {
699     pub Type: DIRECTSOUNDDEVICE_TYPE,
700     pub DataFlow: DIRECTSOUNDDEVICE_DATAFLOW,
701     pub DeviceId: ::windows_sys::core::GUID,
702     pub Description: super::super::super::Foundation::PWSTR,
703     pub Module: super::super::super::Foundation::PWSTR,
704     pub Interface: super::super::super::Foundation::PWSTR,
705     pub WaveDeviceId: u32,
706 }
707 #[cfg(feature = "Win32_Foundation")]
708 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA {}
709 #[cfg(feature = "Win32_Foundation")]
710 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA {
clone(&self) -> Self711     fn clone(&self) -> Self {
712         *self
713     }
714 }
715 #[repr(C)]
716 #[cfg(feature = "Win32_Foundation")]
717 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA {
718     pub Callback: LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1,
719     pub Context: *mut ::core::ffi::c_void,
720 }
721 #[cfg(feature = "Win32_Foundation")]
722 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA {}
723 #[cfg(feature = "Win32_Foundation")]
724 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA {
clone(&self) -> Self725     fn clone(&self) -> Self {
726         *self
727     }
728 }
729 #[repr(C)]
730 #[cfg(feature = "Win32_Foundation")]
731 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA {
732     pub Callback: LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA,
733     pub Context: *mut ::core::ffi::c_void,
734 }
735 #[cfg(feature = "Win32_Foundation")]
736 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA {}
737 #[cfg(feature = "Win32_Foundation")]
738 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA {
clone(&self) -> Self739     fn clone(&self) -> Self {
740         *self
741     }
742 }
743 #[repr(C)]
744 #[cfg(feature = "Win32_Foundation")]
745 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA {
746     pub Callback: LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW,
747     pub Context: *mut ::core::ffi::c_void,
748 }
749 #[cfg(feature = "Win32_Foundation")]
750 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA {}
751 #[cfg(feature = "Win32_Foundation")]
752 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA {
clone(&self) -> Self753     fn clone(&self) -> Self {
754         *self
755     }
756 }
757 #[repr(C)]
758 #[cfg(feature = "Win32_Foundation")]
759 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA {
760     pub DeviceName: super::super::super::Foundation::PSTR,
761     pub DataFlow: DIRECTSOUNDDEVICE_DATAFLOW,
762     pub DeviceId: ::windows_sys::core::GUID,
763 }
764 #[cfg(feature = "Win32_Foundation")]
765 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA {}
766 #[cfg(feature = "Win32_Foundation")]
767 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA {
clone(&self) -> Self768     fn clone(&self) -> Self {
769         *self
770     }
771 }
772 #[repr(C)]
773 #[cfg(feature = "Win32_Foundation")]
774 pub struct DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA {
775     pub DeviceName: super::super::super::Foundation::PWSTR,
776     pub DataFlow: DIRECTSOUNDDEVICE_DATAFLOW,
777     pub DeviceId: ::windows_sys::core::GUID,
778 }
779 #[cfg(feature = "Win32_Foundation")]
780 impl ::core::marker::Copy for DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA {}
781 #[cfg(feature = "Win32_Foundation")]
782 impl ::core::clone::Clone for DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA {
clone(&self) -> Self783     fn clone(&self) -> Self {
784         *self
785     }
786 }
787 pub const DSPROPSETID_DirectSoundDevice: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2221035394, data2: 9708, data3: 4561, data4: [164, 216, 0, 192, 79, 194, 138, 202] };
788 pub const DV_AUDIOMODE: u32 = 3840u32;
789 pub const DV_AUDIOQU: u32 = 117440512u32;
790 pub const DV_AUDIOSMP: u32 = 939524096u32;
791 pub const DV_CAP_AUD12Bits: u32 = 1u32;
792 pub const DV_CAP_AUD16Bits: u32 = 0u32;
793 pub const DV_DVSD_NTSC_FRAMESIZE: i32 = 120000i32;
794 pub const DV_DVSD_PAL_FRAMESIZE: i32 = 144000i32;
795 pub const DV_HD: u32 = 1u32;
796 pub const DV_NTSC: u32 = 0u32;
797 pub const DV_NTSCPAL: u32 = 2097152u32;
798 pub const DV_PAL: u32 = 1u32;
799 pub const DV_SD: u32 = 0u32;
800 pub const DV_SL: u32 = 2u32;
801 pub const DV_SMCHN: u32 = 57344u32;
802 pub const DV_STYPE: u32 = 2031616u32;
803 pub const F_INSTRUMENT_DRUMS: u32 = 2147483648u32;
804 pub const F_RGN_OPTION_SELFNONEXCLUSIVE: u32 = 1u32;
805 pub const F_WAVELINK_MULTICHANNEL: u32 = 2u32;
806 pub const F_WAVELINK_PHASE_MASTER: u32 = 1u32;
807 pub const F_WSMP_NO_COMPRESSION: i32 = 2i32;
808 pub const F_WSMP_NO_TRUNCATION: i32 = 1i32;
809 pub const GUID_DMUS_PROP_DLS1: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259687, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
810 pub const GUID_DMUS_PROP_DLS2: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 4047870437, data2: 18057, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
811 pub const GUID_DMUS_PROP_Effects: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 3450394129, data2: 26698, data3: 4562, data4: [135, 30, 0, 96, 8, 147, 177, 189] };
812 pub const GUID_DMUS_PROP_GM_Hardware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259684, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
813 pub const GUID_DMUS_PROP_GS_Capable: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1687595938, data2: 25008, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
814 pub const GUID_DMUS_PROP_GS_Hardware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259685, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
815 pub const GUID_DMUS_PROP_INSTRUMENT2: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 2254426994, data2: 40807, data3: 4562, data4: [135, 42, 0, 96, 8, 147, 177, 189] };
816 pub const GUID_DMUS_PROP_LegacyCaps: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 3483880898, data2: 161, data3: 4562, data4: [170, 213, 0, 0, 248, 117, 172, 18] };
817 pub const GUID_DMUS_PROP_MemorySize: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259688, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
818 pub const GUID_DMUS_PROP_SampleMemorySize: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259688, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
819 pub const GUID_DMUS_PROP_SamplePlaybackRate: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 714209043, data2: 42175, data3: 4562, data4: [187, 223, 0, 96, 8, 51, 219, 216] };
820 pub const GUID_DMUS_PROP_SetSynthSink: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 171596709, data2: 14262, data3: 4562, data4: [185, 249, 0, 0, 248, 117, 172, 18] };
821 pub const GUID_DMUS_PROP_SinkUsesDSound: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 3189803095, data2: 35154, data3: 4562, data4: [186, 28, 0, 0, 248, 117, 172, 18] };
822 pub const GUID_DMUS_PROP_SynthSink_DSOUND: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 178878532, data2: 51319, data3: 4561, data4: [135, 12, 0, 96, 8, 147, 177, 189] };
823 pub const GUID_DMUS_PROP_SynthSink_WAVE: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 178878533, data2: 51319, data3: 4561, data4: [135, 12, 0, 96, 8, 147, 177, 189] };
824 pub const GUID_DMUS_PROP_Volume: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 4276071973, data2: 58478, data3: 4561, data4: [170, 206, 0, 0, 248, 117, 172, 18] };
825 pub const GUID_DMUS_PROP_WavesReverb: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 80434722, data2: 13029, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
826 pub const GUID_DMUS_PROP_WriteLatency: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 646582176, data2: 24818, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
827 pub const GUID_DMUS_PROP_WritePeriod: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 646582177, data2: 24818, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
828 pub const GUID_DMUS_PROP_XG_Capable: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1687595937, data2: 25008, data3: 4562, data4: [175, 166, 0, 170, 0, 36, 216, 182] };
829 pub const GUID_DMUS_PROP_XG_Hardware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 395259686, data2: 50020, data3: 4561, data4: [167, 96, 0, 0, 248, 117, 172, 18] };
830 pub type IDirectMusic = *mut ::core::ffi::c_void;
831 pub type IDirectMusic8 = *mut ::core::ffi::c_void;
832 pub type IDirectMusicBuffer = *mut ::core::ffi::c_void;
833 pub type IDirectMusicCollection = *mut ::core::ffi::c_void;
834 pub type IDirectMusicDownload = *mut ::core::ffi::c_void;
835 pub type IDirectMusicDownloadedInstrument = *mut ::core::ffi::c_void;
836 pub type IDirectMusicInstrument = *mut ::core::ffi::c_void;
837 pub type IDirectMusicPort = *mut ::core::ffi::c_void;
838 pub type IDirectMusicPortDownload = *mut ::core::ffi::c_void;
839 pub type IDirectMusicSynth = *mut ::core::ffi::c_void;
840 pub type IDirectMusicSynth8 = *mut ::core::ffi::c_void;
841 pub type IDirectMusicSynthSink = *mut ::core::ffi::c_void;
842 pub type IDirectMusicThru = *mut ::core::ffi::c_void;
843 #[repr(C)]
844 pub struct INSTHEADER {
845     pub cRegions: u32,
846     pub Locale: MIDILOCALE,
847 }
848 impl ::core::marker::Copy for INSTHEADER {}
849 impl ::core::clone::Clone for INSTHEADER {
clone(&self) -> Self850     fn clone(&self) -> Self {
851         *self
852     }
853 }
854 #[cfg(feature = "Win32_Foundation")]
855 pub type LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1 = unsafe extern "system" fn(param0: *mut DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA, param1: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
856 #[cfg(feature = "Win32_Foundation")]
857 pub type LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA = unsafe extern "system" fn(param0: *mut DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA, param1: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
858 #[cfg(feature = "Win32_Foundation")]
859 pub type LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW = unsafe extern "system" fn(param0: *mut DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA, param1: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
860 #[repr(C, packed(1))]
861 pub struct MDEVICECAPSEX {
862     pub cbSize: u32,
863     pub pCaps: *mut ::core::ffi::c_void,
864 }
865 impl ::core::marker::Copy for MDEVICECAPSEX {}
866 impl ::core::clone::Clone for MDEVICECAPSEX {
clone(&self) -> Self867     fn clone(&self) -> Self {
868         *self
869     }
870 }
871 #[repr(C)]
872 pub struct MIDILOCALE {
873     pub ulBank: u32,
874     pub ulInstrument: u32,
875 }
876 impl ::core::marker::Copy for MIDILOCALE {}
877 impl ::core::clone::Clone for MIDILOCALE {
clone(&self) -> Self878     fn clone(&self) -> Self {
879         *self
880     }
881 }
882 #[repr(C, packed(1))]
883 #[cfg(feature = "Win32_Media_Multimedia")]
884 pub struct MIDIOPENDESC {
885     pub hMidi: super::HMIDI,
886     pub dwCallback: usize,
887     pub dwInstance: usize,
888     pub dnDevNode: usize,
889     pub cIds: u32,
890     pub rgIds: [super::super::Multimedia::MIDIOPENSTRMID; 1],
891 }
892 #[cfg(feature = "Win32_Media_Multimedia")]
893 impl ::core::marker::Copy for MIDIOPENDESC {}
894 #[cfg(feature = "Win32_Media_Multimedia")]
895 impl ::core::clone::Clone for MIDIOPENDESC {
clone(&self) -> Self896     fn clone(&self) -> Self {
897         *self
898     }
899 }
900 #[repr(C)]
901 pub struct POOLCUE {
902     pub ulOffset: u32,
903 }
904 impl ::core::marker::Copy for POOLCUE {}
905 impl ::core::clone::Clone for POOLCUE {
clone(&self) -> Self906     fn clone(&self) -> Self {
907         *self
908     }
909 }
910 #[repr(C)]
911 pub struct POOLTABLE {
912     pub cbSize: u32,
913     pub cCues: u32,
914 }
915 impl ::core::marker::Copy for POOLTABLE {}
916 impl ::core::clone::Clone for POOLTABLE {
clone(&self) -> Self917     fn clone(&self) -> Self {
918         *self
919     }
920 }
921 pub const POOL_CUE_NULL: i32 = -1i32;
922 pub const REFRESH_F_LASTBUFFER: u32 = 1u32;
923 #[repr(C)]
924 pub struct RGNHEADER {
925     pub RangeKey: RGNRANGE,
926     pub RangeVelocity: RGNRANGE,
927     pub fusOptions: u16,
928     pub usKeyGroup: u16,
929 }
930 impl ::core::marker::Copy for RGNHEADER {}
931 impl ::core::clone::Clone for RGNHEADER {
clone(&self) -> Self932     fn clone(&self) -> Self {
933         *self
934     }
935 }
936 #[repr(C)]
937 pub struct RGNRANGE {
938     pub usLow: u16,
939     pub usHigh: u16,
940 }
941 impl ::core::marker::Copy for RGNRANGE {}
942 impl ::core::clone::Clone for RGNRANGE {
clone(&self) -> Self943     fn clone(&self) -> Self {
944         *self
945     }
946 }
947 pub const SIZE_DVINFO: u32 = 32u32;
948 #[repr(C)]
949 pub struct Tag_DVAudInfo {
950     pub bAudStyle: [u8; 2],
951     pub bAudQu: [u8; 2],
952     pub bNumAudPin: u8,
953     pub wAvgSamplesPerPinPerFrm: [u16; 2],
954     pub wBlkMode: u16,
955     pub wDIFMode: u16,
956     pub wBlkDiv: u16,
957 }
958 impl ::core::marker::Copy for Tag_DVAudInfo {}
959 impl ::core::clone::Clone for Tag_DVAudInfo {
clone(&self) -> Self960     fn clone(&self) -> Self {
961         *self
962     }
963 }
964 #[repr(C)]
965 pub struct WAVELINK {
966     pub fusOptions: u16,
967     pub usPhaseGroup: u16,
968     pub ulChannel: u32,
969     pub ulTableIndex: u32,
970 }
971 impl ::core::marker::Copy for WAVELINK {}
972 impl ::core::clone::Clone for WAVELINK {
clone(&self) -> Self973     fn clone(&self) -> Self {
974         *self
975     }
976 }
977 pub const WAVELINK_CHANNEL_LEFT: i32 = 1i32;
978 pub const WAVELINK_CHANNEL_RIGHT: i32 = 2i32;
979 pub const WLOOP_TYPE_FORWARD: u32 = 0u32;
980 pub const WLOOP_TYPE_RELEASE: u32 = 2u32;
981 #[repr(C)]
982 #[cfg(feature = "Win32_Foundation")]
983 pub struct _DMUS_PORTPARAMS {
984     pub dwSize: u32,
985     pub dwValidParams: u32,
986     pub dwVoices: u32,
987     pub dwChannelGroups: u32,
988     pub dwAudioChannels: u32,
989     pub dwSampleRate: u32,
990     pub dwEffectFlags: u32,
991     pub fShare: super::super::super::Foundation::BOOL,
992 }
993 #[cfg(feature = "Win32_Foundation")]
994 impl ::core::marker::Copy for _DMUS_PORTPARAMS {}
995 #[cfg(feature = "Win32_Foundation")]
996 impl ::core::clone::Clone for _DMUS_PORTPARAMS {
clone(&self) -> Self997     fn clone(&self) -> Self {
998         *self
999     }
1000 }
1001 #[repr(C)]
1002 pub struct _rloop {
1003     pub cbSize: u32,
1004     pub ulType: u32,
1005     pub ulStart: u32,
1006     pub ulLength: u32,
1007 }
1008 impl ::core::marker::Copy for _rloop {}
1009 impl ::core::clone::Clone for _rloop {
clone(&self) -> Self1010     fn clone(&self) -> Self {
1011         *self
1012     }
1013 }
1014 #[repr(C)]
1015 pub struct _rwsmp {
1016     pub cbSize: u32,
1017     pub usUnityNote: u16,
1018     pub sFineTune: i16,
1019     pub lAttenuation: i32,
1020     pub fulOptions: u32,
1021     pub cSampleLoops: u32,
1022 }
1023 impl ::core::marker::Copy for _rwsmp {}
1024 impl ::core::clone::Clone for _rwsmp {
clone(&self) -> Self1025     fn clone(&self) -> Self {
1026         *self
1027     }
1028 }
1029