1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)] 2 #[cfg(feature = "Win32_Media_Audio")] 3 pub mod Audio; 4 #[cfg(feature = "Win32_Media_DeviceManager")] 5 pub mod DeviceManager; 6 #[cfg(feature = "Win32_Media_DirectShow")] 7 pub mod DirectShow; 8 #[cfg(feature = "Win32_Media_DxMediaObjects")] 9 pub mod DxMediaObjects; 10 #[cfg(feature = "Win32_Media_KernelStreaming")] 11 pub mod KernelStreaming; 12 #[cfg(feature = "Win32_Media_LibrarySharingServices")] 13 pub mod LibrarySharingServices; 14 #[cfg(feature = "Win32_Media_MediaFoundation")] 15 pub mod MediaFoundation; 16 #[cfg(feature = "Win32_Media_MediaPlayer")] 17 pub mod MediaPlayer; 18 #[cfg(feature = "Win32_Media_Multimedia")] 19 pub mod Multimedia; 20 #[cfg(feature = "Win32_Media_PictureAcquisition")] 21 pub mod PictureAcquisition; 22 #[cfg(feature = "Win32_Media_Speech")] 23 pub mod Speech; 24 #[cfg(feature = "Win32_Media_Streaming")] 25 pub mod Streaming; 26 #[cfg(feature = "Win32_Media_WindowsMediaFormat")] 27 pub mod WindowsMediaFormat; 28 #[link(name = "windows")] 29 extern "system" { timeBeginPeriod(uperiod: u32) -> u3230 pub fn timeBeginPeriod(uperiod: u32) -> u32; timeEndPeriod(uperiod: u32) -> u3231 pub fn timeEndPeriod(uperiod: u32) -> u32; timeGetDevCaps(ptc: *mut TIMECAPS, cbtc: u32) -> u3232 pub fn timeGetDevCaps(ptc: *mut TIMECAPS, cbtc: u32) -> u32; timeGetSystemTime(pmmt: *mut MMTIME, cbmmt: u32) -> u3233 pub fn timeGetSystemTime(pmmt: *mut MMTIME, cbmmt: u32) -> u32; timeGetTime() -> u3234 pub fn timeGetTime() -> u32; timeKillEvent(utimerid: u32) -> u3235 pub fn timeKillEvent(utimerid: u32) -> u32; timeSetEvent(udelay: u32, uresolution: u32, fptc: ::core::option::Option<LPTIMECALLBACK>, dwuser: usize, fuevent: u32) -> u3236 pub fn timeSetEvent(udelay: u32, uresolution: u32, fptc: ::core::option::Option<LPTIMECALLBACK>, dwuser: usize, fuevent: u32) -> u32; 37 } 38 pub type HTASK = isize; 39 pub type IReferenceClock = *mut ::core::ffi::c_void; 40 pub type IReferenceClock2 = *mut ::core::ffi::c_void; 41 pub type IReferenceClockTimerControl = *mut ::core::ffi::c_void; 42 pub const JOYERR_BASE: u32 = 160u32; 43 #[cfg(feature = "Win32_Media_Multimedia")] 44 pub type LPDRVCALLBACK = unsafe extern "system" fn(hdrvr: Multimedia::HDRVR, umsg: u32, dwuser: usize, dw1: usize, dw2: usize); 45 pub type LPTIMECALLBACK = unsafe extern "system" fn(utimerid: u32, umsg: u32, dwuser: usize, dw1: usize, dw2: usize); 46 pub const MAXERRORLENGTH: u32 = 256u32; 47 pub const MAXPNAMELEN: u32 = 32u32; 48 pub const MCIERR_BASE: u32 = 256u32; 49 pub const MCI_CD_OFFSET: u32 = 1088u32; 50 pub const MCI_SEQ_OFFSET: u32 = 1216u32; 51 pub const MCI_STRING_OFFSET: u32 = 512u32; 52 pub const MCI_VD_OFFSET: u32 = 1024u32; 53 pub const MCI_WAVE_OFFSET: u32 = 1152u32; 54 pub const MIDIERR_BASE: u32 = 64u32; 55 pub const MIXERR_BASE: u32 = 1024u32; 56 pub const MMSYSERR_ALLOCATED: u32 = 4u32; 57 pub const MMSYSERR_BADDB: u32 = 14u32; 58 pub const MMSYSERR_BADDEVICEID: u32 = 2u32; 59 pub const MMSYSERR_BADERRNUM: u32 = 9u32; 60 pub const MMSYSERR_BASE: u32 = 0u32; 61 pub const MMSYSERR_DELETEERROR: u32 = 18u32; 62 pub const MMSYSERR_ERROR: u32 = 1u32; 63 pub const MMSYSERR_HANDLEBUSY: u32 = 12u32; 64 pub const MMSYSERR_INVALFLAG: u32 = 10u32; 65 pub const MMSYSERR_INVALHANDLE: u32 = 5u32; 66 pub const MMSYSERR_INVALIDALIAS: u32 = 13u32; 67 pub const MMSYSERR_INVALPARAM: u32 = 11u32; 68 pub const MMSYSERR_KEYNOTFOUND: u32 = 15u32; 69 pub const MMSYSERR_LASTERROR: u32 = 21u32; 70 pub const MMSYSERR_MOREDATA: u32 = 21u32; 71 pub const MMSYSERR_NODRIVER: u32 = 6u32; 72 pub const MMSYSERR_NODRIVERCB: u32 = 20u32; 73 pub const MMSYSERR_NOERROR: u32 = 0u32; 74 pub const MMSYSERR_NOMEM: u32 = 7u32; 75 pub const MMSYSERR_NOTENABLED: u32 = 3u32; 76 pub const MMSYSERR_NOTSUPPORTED: u32 = 8u32; 77 pub const MMSYSERR_READERROR: u32 = 16u32; 78 pub const MMSYSERR_VALNOTFOUND: u32 = 19u32; 79 pub const MMSYSERR_WRITEERROR: u32 = 17u32; 80 #[repr(C, packed(1))] 81 pub struct MMTIME { 82 pub wType: u32, 83 pub u: MMTIME_0, 84 } 85 impl ::core::marker::Copy for MMTIME {} 86 impl ::core::clone::Clone for MMTIME { clone(&self) -> Self87 fn clone(&self) -> Self { 88 *self 89 } 90 } 91 #[repr(C, packed(1))] 92 pub union MMTIME_0 { 93 pub ms: u32, 94 pub sample: u32, 95 pub cb: u32, 96 pub ticks: u32, 97 pub smpte: MMTIME_0_1, 98 pub midi: MMTIME_0_0, 99 } 100 impl ::core::marker::Copy for MMTIME_0 {} 101 impl ::core::clone::Clone for MMTIME_0 { clone(&self) -> Self102 fn clone(&self) -> Self { 103 *self 104 } 105 } 106 #[repr(C, packed(1))] 107 pub struct MMTIME_0_0 { 108 pub songptrpos: u32, 109 } 110 impl ::core::marker::Copy for MMTIME_0_0 {} 111 impl ::core::clone::Clone for MMTIME_0_0 { clone(&self) -> Self112 fn clone(&self) -> Self { 113 *self 114 } 115 } 116 #[repr(C)] 117 pub struct MMTIME_0_1 { 118 pub hour: u8, 119 pub min: u8, 120 pub sec: u8, 121 pub frame: u8, 122 pub fps: u8, 123 pub dummy: u8, 124 pub pad: [u8; 2], 125 } 126 impl ::core::marker::Copy for MMTIME_0_1 {} 127 impl ::core::clone::Clone for MMTIME_0_1 { clone(&self) -> Self128 fn clone(&self) -> Self { 129 *self 130 } 131 } 132 pub const MM_ADLIB: u32 = 9u32; 133 pub const MM_DRVM_CLOSE: u32 = 977u32; 134 pub const MM_DRVM_DATA: u32 = 978u32; 135 pub const MM_DRVM_ERROR: u32 = 979u32; 136 pub const MM_DRVM_OPEN: u32 = 976u32; 137 pub const MM_JOY1BUTTONDOWN: u32 = 949u32; 138 pub const MM_JOY1BUTTONUP: u32 = 951u32; 139 pub const MM_JOY1MOVE: u32 = 928u32; 140 pub const MM_JOY1ZMOVE: u32 = 930u32; 141 pub const MM_JOY2BUTTONDOWN: u32 = 950u32; 142 pub const MM_JOY2BUTTONUP: u32 = 952u32; 143 pub const MM_JOY2MOVE: u32 = 929u32; 144 pub const MM_JOY2ZMOVE: u32 = 931u32; 145 pub const MM_MCINOTIFY: u32 = 953u32; 146 pub const MM_MCISIGNAL: u32 = 971u32; 147 pub const MM_MICROSOFT: u32 = 1u32; 148 pub const MM_MIDI_MAPPER: u32 = 1u32; 149 pub const MM_MIM_CLOSE: u32 = 962u32; 150 pub const MM_MIM_DATA: u32 = 963u32; 151 pub const MM_MIM_ERROR: u32 = 965u32; 152 pub const MM_MIM_LONGDATA: u32 = 964u32; 153 pub const MM_MIM_LONGERROR: u32 = 966u32; 154 pub const MM_MIM_MOREDATA: u32 = 972u32; 155 pub const MM_MIM_OPEN: u32 = 961u32; 156 pub const MM_MIXM_CONTROL_CHANGE: u32 = 977u32; 157 pub const MM_MIXM_LINE_CHANGE: u32 = 976u32; 158 pub const MM_MOM_CLOSE: u32 = 968u32; 159 pub const MM_MOM_DONE: u32 = 969u32; 160 pub const MM_MOM_OPEN: u32 = 967u32; 161 pub const MM_MOM_POSITIONCB: u32 = 970u32; 162 pub const MM_MPU401_MIDIIN: u32 = 11u32; 163 pub const MM_MPU401_MIDIOUT: u32 = 10u32; 164 pub const MM_PC_JOYSTICK: u32 = 12u32; 165 pub const MM_SNDBLST_MIDIIN: u32 = 4u32; 166 pub const MM_SNDBLST_MIDIOUT: u32 = 3u32; 167 pub const MM_SNDBLST_SYNTH: u32 = 5u32; 168 pub const MM_SNDBLST_WAVEIN: u32 = 7u32; 169 pub const MM_SNDBLST_WAVEOUT: u32 = 6u32; 170 pub const MM_STREAM_CLOSE: u32 = 981u32; 171 pub const MM_STREAM_DONE: u32 = 982u32; 172 pub const MM_STREAM_ERROR: u32 = 983u32; 173 pub const MM_STREAM_OPEN: u32 = 980u32; 174 pub const MM_WAVE_MAPPER: u32 = 2u32; 175 pub const MM_WIM_CLOSE: u32 = 959u32; 176 pub const MM_WIM_DATA: u32 = 960u32; 177 pub const MM_WIM_OPEN: u32 = 958u32; 178 pub const MM_WOM_CLOSE: u32 = 956u32; 179 pub const MM_WOM_DONE: u32 = 957u32; 180 pub const MM_WOM_OPEN: u32 = 955u32; 181 #[repr(C)] 182 pub struct TIMECAPS { 183 pub wPeriodMin: u32, 184 pub wPeriodMax: u32, 185 } 186 impl ::core::marker::Copy for TIMECAPS {} 187 impl ::core::clone::Clone for TIMECAPS { clone(&self) -> Self188 fn clone(&self) -> Self { 189 *self 190 } 191 } 192 #[repr(C)] 193 pub union TIMECODE { 194 pub Anonymous: TIMECODE_0, 195 pub qw: u64, 196 } 197 impl ::core::marker::Copy for TIMECODE {} 198 impl ::core::clone::Clone for TIMECODE { clone(&self) -> Self199 fn clone(&self) -> Self { 200 *self 201 } 202 } 203 #[repr(C)] 204 pub struct TIMECODE_0 { 205 pub wFrameRate: u16, 206 pub wFrameFract: u16, 207 pub dwFrames: u32, 208 } 209 impl ::core::marker::Copy for TIMECODE_0 {} 210 impl ::core::clone::Clone for TIMECODE_0 { clone(&self) -> Self211 fn clone(&self) -> Self { 212 *self 213 } 214 } 215 #[repr(C)] 216 pub struct TIMECODE_SAMPLE { 217 pub qwTick: i64, 218 pub timecode: TIMECODE, 219 pub dwUser: u32, 220 pub dwFlags: TIMECODE_SAMPLE_FLAGS, 221 } 222 impl ::core::marker::Copy for TIMECODE_SAMPLE {} 223 impl ::core::clone::Clone for TIMECODE_SAMPLE { clone(&self) -> Self224 fn clone(&self) -> Self { 225 *self 226 } 227 } 228 pub type TIMECODE_SAMPLE_FLAGS = u32; 229 pub const ED_DEVCAP_TIMECODE_READ: TIMECODE_SAMPLE_FLAGS = 4121u32; 230 pub const ED_DEVCAP_ATN_READ: TIMECODE_SAMPLE_FLAGS = 5047u32; 231 pub const ED_DEVCAP_RTC_READ: TIMECODE_SAMPLE_FLAGS = 5050u32; 232 pub const TIMERR_BASE: u32 = 96u32; 233 pub const TIMERR_NOCANDO: u32 = 97u32; 234 pub const TIMERR_NOERROR: u32 = 0u32; 235 pub const TIMERR_STRUCT: u32 = 129u32; 236 pub const TIME_BYTES: u32 = 4u32; 237 pub const TIME_CALLBACK_EVENT_PULSE: u32 = 32u32; 238 pub const TIME_CALLBACK_EVENT_SET: u32 = 16u32; 239 pub const TIME_CALLBACK_FUNCTION: u32 = 0u32; 240 pub const TIME_KILL_SYNCHRONOUS: u32 = 256u32; 241 pub const TIME_MIDI: u32 = 16u32; 242 pub const TIME_MS: u32 = 1u32; 243 pub const TIME_ONESHOT: u32 = 0u32; 244 pub const TIME_PERIODIC: u32 = 1u32; 245 pub const TIME_SAMPLES: u32 = 2u32; 246 pub const TIME_SMPTE: u32 = 8u32; 247 pub const TIME_TICKS: u32 = 32u32; 248 pub const WAVERR_BASE: u32 = 32u32; 249