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