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