1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[cfg(feature = "Media_Devices_Core")]
3 pub mod Core;
4 #[link(name = "windows")]
5 extern "system" {}
6 pub type AdvancedPhotoCaptureSettings = *mut ::core::ffi::c_void;
7 pub type AdvancedPhotoControl = *mut ::core::ffi::c_void;
8 #[repr(transparent)]
9 pub struct AdvancedPhotoMode(pub i32);
10 impl AdvancedPhotoMode {
11     pub const Auto: Self = Self(0i32);
12     pub const Standard: Self = Self(1i32);
13     pub const Hdr: Self = Self(2i32);
14     pub const LowLight: Self = Self(3i32);
15 }
16 impl ::core::marker::Copy for AdvancedPhotoMode {}
17 impl ::core::clone::Clone for AdvancedPhotoMode {
clone(&self) -> Self18     fn clone(&self) -> Self {
19         *self
20     }
21 }
22 pub type AudioDeviceController = *mut ::core::ffi::c_void;
23 pub type AudioDeviceModule = *mut ::core::ffi::c_void;
24 pub type AudioDeviceModuleNotificationEventArgs = *mut ::core::ffi::c_void;
25 pub type AudioDeviceModulesManager = *mut ::core::ffi::c_void;
26 #[repr(transparent)]
27 pub struct AudioDeviceRole(pub i32);
28 impl AudioDeviceRole {
29     pub const Default: Self = Self(0i32);
30     pub const Communications: Self = Self(1i32);
31 }
32 impl ::core::marker::Copy for AudioDeviceRole {}
33 impl ::core::clone::Clone for AudioDeviceRole {
clone(&self) -> Self34     fn clone(&self) -> Self {
35         *self
36     }
37 }
38 #[repr(transparent)]
39 pub struct AutoFocusRange(pub i32);
40 impl AutoFocusRange {
41     pub const FullRange: Self = Self(0i32);
42     pub const Macro: Self = Self(1i32);
43     pub const Normal: Self = Self(2i32);
44 }
45 impl ::core::marker::Copy for AutoFocusRange {}
46 impl ::core::clone::Clone for AutoFocusRange {
clone(&self) -> Self47     fn clone(&self) -> Self {
48         *self
49     }
50 }
51 pub type CallControl = *mut ::core::ffi::c_void;
52 pub type CallControlEventHandler = *mut ::core::ffi::c_void;
53 pub type CameraOcclusionInfo = *mut ::core::ffi::c_void;
54 #[repr(transparent)]
55 pub struct CameraOcclusionKind(pub i32);
56 impl CameraOcclusionKind {
57     pub const Lid: Self = Self(0i32);
58     pub const CameraHardware: Self = Self(1i32);
59 }
60 impl ::core::marker::Copy for CameraOcclusionKind {}
61 impl ::core::clone::Clone for CameraOcclusionKind {
clone(&self) -> Self62     fn clone(&self) -> Self {
63         *self
64     }
65 }
66 pub type CameraOcclusionState = *mut ::core::ffi::c_void;
67 pub type CameraOcclusionStateChangedEventArgs = *mut ::core::ffi::c_void;
68 #[repr(transparent)]
69 pub struct CameraStreamState(pub i32);
70 impl CameraStreamState {
71     pub const NotStreaming: Self = Self(0i32);
72     pub const Streaming: Self = Self(1i32);
73     pub const BlockedForPrivacy: Self = Self(2i32);
74     pub const Shutdown: Self = Self(3i32);
75 }
76 impl ::core::marker::Copy for CameraStreamState {}
77 impl ::core::clone::Clone for CameraStreamState {
clone(&self) -> Self78     fn clone(&self) -> Self {
79         *self
80     }
81 }
82 #[repr(transparent)]
83 pub struct CaptureSceneMode(pub i32);
84 impl CaptureSceneMode {
85     pub const Auto: Self = Self(0i32);
86     pub const Manual: Self = Self(1i32);
87     pub const Macro: Self = Self(2i32);
88     pub const Portrait: Self = Self(3i32);
89     pub const Sport: Self = Self(4i32);
90     pub const Snow: Self = Self(5i32);
91     pub const Night: Self = Self(6i32);
92     pub const Beach: Self = Self(7i32);
93     pub const Sunset: Self = Self(8i32);
94     pub const Candlelight: Self = Self(9i32);
95     pub const Landscape: Self = Self(10i32);
96     pub const NightPortrait: Self = Self(11i32);
97     pub const Backlit: Self = Self(12i32);
98 }
99 impl ::core::marker::Copy for CaptureSceneMode {}
100 impl ::core::clone::Clone for CaptureSceneMode {
clone(&self) -> Self101     fn clone(&self) -> Self {
102         *self
103     }
104 }
105 #[repr(transparent)]
106 pub struct CaptureUse(pub i32);
107 impl CaptureUse {
108     pub const None: Self = Self(0i32);
109     pub const Photo: Self = Self(1i32);
110     pub const Video: Self = Self(2i32);
111 }
112 impl ::core::marker::Copy for CaptureUse {}
113 impl ::core::clone::Clone for CaptureUse {
clone(&self) -> Self114     fn clone(&self) -> Self {
115         *self
116     }
117 }
118 #[repr(transparent)]
119 pub struct ColorTemperaturePreset(pub i32);
120 impl ColorTemperaturePreset {
121     pub const Auto: Self = Self(0i32);
122     pub const Manual: Self = Self(1i32);
123     pub const Cloudy: Self = Self(2i32);
124     pub const Daylight: Self = Self(3i32);
125     pub const Flash: Self = Self(4i32);
126     pub const Fluorescent: Self = Self(5i32);
127     pub const Tungsten: Self = Self(6i32);
128     pub const Candlelight: Self = Self(7i32);
129 }
130 impl ::core::marker::Copy for ColorTemperaturePreset {}
131 impl ::core::clone::Clone for ColorTemperaturePreset {
clone(&self) -> Self132     fn clone(&self) -> Self {
133         *self
134     }
135 }
136 pub type DefaultAudioCaptureDeviceChangedEventArgs = *mut ::core::ffi::c_void;
137 pub type DefaultAudioRenderDeviceChangedEventArgs = *mut ::core::ffi::c_void;
138 pub type DialRequestedEventArgs = *mut ::core::ffi::c_void;
139 pub type DialRequestedEventHandler = *mut ::core::ffi::c_void;
140 pub type DigitalWindowBounds = *mut ::core::ffi::c_void;
141 pub type DigitalWindowCapability = *mut ::core::ffi::c_void;
142 pub type DigitalWindowControl = *mut ::core::ffi::c_void;
143 #[repr(transparent)]
144 pub struct DigitalWindowMode(pub i32);
145 impl DigitalWindowMode {
146     pub const Off: Self = Self(0i32);
147     pub const On: Self = Self(1i32);
148     pub const Auto: Self = Self(2i32);
149 }
150 impl ::core::marker::Copy for DigitalWindowMode {}
151 impl ::core::clone::Clone for DigitalWindowMode {
clone(&self) -> Self152     fn clone(&self) -> Self {
153         *self
154     }
155 }
156 pub type ExposureCompensationControl = *mut ::core::ffi::c_void;
157 pub type ExposureControl = *mut ::core::ffi::c_void;
158 pub type ExposurePriorityVideoControl = *mut ::core::ffi::c_void;
159 pub type FlashControl = *mut ::core::ffi::c_void;
160 pub type FocusControl = *mut ::core::ffi::c_void;
161 #[repr(transparent)]
162 pub struct FocusMode(pub i32);
163 impl FocusMode {
164     pub const Auto: Self = Self(0i32);
165     pub const Single: Self = Self(1i32);
166     pub const Continuous: Self = Self(2i32);
167     pub const Manual: Self = Self(3i32);
168 }
169 impl ::core::marker::Copy for FocusMode {}
170 impl ::core::clone::Clone for FocusMode {
clone(&self) -> Self171     fn clone(&self) -> Self {
172         *self
173     }
174 }
175 #[repr(transparent)]
176 pub struct FocusPreset(pub i32);
177 impl FocusPreset {
178     pub const Auto: Self = Self(0i32);
179     pub const Manual: Self = Self(1i32);
180     pub const AutoMacro: Self = Self(2i32);
181     pub const AutoNormal: Self = Self(3i32);
182     pub const AutoInfinity: Self = Self(4i32);
183     pub const AutoHyperfocal: Self = Self(5i32);
184 }
185 impl ::core::marker::Copy for FocusPreset {}
186 impl ::core::clone::Clone for FocusPreset {
clone(&self) -> Self187     fn clone(&self) -> Self {
188         *self
189     }
190 }
191 pub type FocusSettings = *mut ::core::ffi::c_void;
192 pub type HdrVideoControl = *mut ::core::ffi::c_void;
193 #[repr(transparent)]
194 pub struct HdrVideoMode(pub i32);
195 impl HdrVideoMode {
196     pub const Off: Self = Self(0i32);
197     pub const On: Self = Self(1i32);
198     pub const Auto: Self = Self(2i32);
199 }
200 impl ::core::marker::Copy for HdrVideoMode {}
201 impl ::core::clone::Clone for HdrVideoMode {
clone(&self) -> Self202     fn clone(&self) -> Self {
203         *self
204     }
205 }
206 pub type IDefaultAudioDeviceChangedEventArgs = *mut ::core::ffi::c_void;
207 pub type IMediaDeviceController = *mut ::core::ffi::c_void;
208 pub type InfraredTorchControl = *mut ::core::ffi::c_void;
209 #[repr(transparent)]
210 pub struct InfraredTorchMode(pub i32);
211 impl InfraredTorchMode {
212     pub const Off: Self = Self(0i32);
213     pub const On: Self = Self(1i32);
214     pub const AlternatingFrameIllumination: Self = Self(2i32);
215 }
216 impl ::core::marker::Copy for InfraredTorchMode {}
217 impl ::core::clone::Clone for InfraredTorchMode {
clone(&self) -> Self218     fn clone(&self) -> Self {
219         *self
220     }
221 }
222 pub type IsoSpeedControl = *mut ::core::ffi::c_void;
223 #[repr(transparent)]
224 pub struct IsoSpeedPreset(pub i32);
225 impl IsoSpeedPreset {
226     pub const Auto: Self = Self(0i32);
227     pub const Iso50: Self = Self(1i32);
228     pub const Iso80: Self = Self(2i32);
229     pub const Iso100: Self = Self(3i32);
230     pub const Iso200: Self = Self(4i32);
231     pub const Iso400: Self = Self(5i32);
232     pub const Iso800: Self = Self(6i32);
233     pub const Iso1600: Self = Self(7i32);
234     pub const Iso3200: Self = Self(8i32);
235     pub const Iso6400: Self = Self(9i32);
236     pub const Iso12800: Self = Self(10i32);
237     pub const Iso25600: Self = Self(11i32);
238 }
239 impl ::core::marker::Copy for IsoSpeedPreset {}
240 impl ::core::clone::Clone for IsoSpeedPreset {
clone(&self) -> Self241     fn clone(&self) -> Self {
242         *self
243     }
244 }
245 pub type KeypadPressedEventArgs = *mut ::core::ffi::c_void;
246 pub type KeypadPressedEventHandler = *mut ::core::ffi::c_void;
247 pub type LowLagPhotoControl = *mut ::core::ffi::c_void;
248 pub type LowLagPhotoSequenceControl = *mut ::core::ffi::c_void;
249 #[repr(transparent)]
250 pub struct ManualFocusDistance(pub i32);
251 impl ManualFocusDistance {
252     pub const Infinity: Self = Self(0i32);
253     pub const Hyperfocal: Self = Self(1i32);
254     pub const Nearest: Self = Self(2i32);
255 }
256 impl ::core::marker::Copy for ManualFocusDistance {}
257 impl ::core::clone::Clone for ManualFocusDistance {
clone(&self) -> Self258     fn clone(&self) -> Self {
259         *self
260     }
261 }
262 #[repr(transparent)]
263 pub struct MediaCaptureFocusState(pub i32);
264 impl MediaCaptureFocusState {
265     pub const Uninitialized: Self = Self(0i32);
266     pub const Lost: Self = Self(1i32);
267     pub const Searching: Self = Self(2i32);
268     pub const Focused: Self = Self(3i32);
269     pub const Failed: Self = Self(4i32);
270 }
271 impl ::core::marker::Copy for MediaCaptureFocusState {}
272 impl ::core::clone::Clone for MediaCaptureFocusState {
clone(&self) -> Self273     fn clone(&self) -> Self {
274         *self
275     }
276 }
277 #[repr(transparent)]
278 pub struct MediaCaptureOptimization(pub i32);
279 impl MediaCaptureOptimization {
280     pub const Default: Self = Self(0i32);
281     pub const Quality: Self = Self(1i32);
282     pub const Latency: Self = Self(2i32);
283     pub const Power: Self = Self(3i32);
284     pub const LatencyThenQuality: Self = Self(4i32);
285     pub const LatencyThenPower: Self = Self(5i32);
286     pub const PowerAndQuality: Self = Self(6i32);
287 }
288 impl ::core::marker::Copy for MediaCaptureOptimization {}
289 impl ::core::clone::Clone for MediaCaptureOptimization {
clone(&self) -> Self290     fn clone(&self) -> Self {
291         *self
292     }
293 }
294 #[repr(transparent)]
295 pub struct MediaCapturePauseBehavior(pub i32);
296 impl MediaCapturePauseBehavior {
297     pub const RetainHardwareResources: Self = Self(0i32);
298     pub const ReleaseHardwareResources: Self = Self(1i32);
299 }
300 impl ::core::marker::Copy for MediaCapturePauseBehavior {}
301 impl ::core::clone::Clone for MediaCapturePauseBehavior {
clone(&self) -> Self302     fn clone(&self) -> Self {
303         *self
304     }
305 }
306 pub type MediaDeviceControl = *mut ::core::ffi::c_void;
307 pub type MediaDeviceControlCapabilities = *mut ::core::ffi::c_void;
308 pub type ModuleCommandResult = *mut ::core::ffi::c_void;
309 pub type OpticalImageStabilizationControl = *mut ::core::ffi::c_void;
310 #[repr(transparent)]
311 pub struct OpticalImageStabilizationMode(pub i32);
312 impl OpticalImageStabilizationMode {
313     pub const Off: Self = Self(0i32);
314     pub const On: Self = Self(1i32);
315     pub const Auto: Self = Self(2i32);
316 }
317 impl ::core::marker::Copy for OpticalImageStabilizationMode {}
318 impl ::core::clone::Clone for OpticalImageStabilizationMode {
clone(&self) -> Self319     fn clone(&self) -> Self {
320         *self
321     }
322 }
323 pub type PanelBasedOptimizationControl = *mut ::core::ffi::c_void;
324 pub type PhotoConfirmationControl = *mut ::core::ffi::c_void;
325 pub type RedialRequestedEventArgs = *mut ::core::ffi::c_void;
326 pub type RedialRequestedEventHandler = *mut ::core::ffi::c_void;
327 pub type RegionOfInterest = *mut ::core::ffi::c_void;
328 #[repr(transparent)]
329 pub struct RegionOfInterestType(pub i32);
330 impl RegionOfInterestType {
331     pub const Unknown: Self = Self(0i32);
332     pub const Face: Self = Self(1i32);
333 }
334 impl ::core::marker::Copy for RegionOfInterestType {}
335 impl ::core::clone::Clone for RegionOfInterestType {
clone(&self) -> Self336     fn clone(&self) -> Self {
337         *self
338     }
339 }
340 pub type RegionsOfInterestControl = *mut ::core::ffi::c_void;
341 pub type SceneModeControl = *mut ::core::ffi::c_void;
342 #[repr(transparent)]
343 pub struct SendCommandStatus(pub i32);
344 impl SendCommandStatus {
345     pub const Success: Self = Self(0i32);
346     pub const DeviceNotAvailable: Self = Self(1i32);
347 }
348 impl ::core::marker::Copy for SendCommandStatus {}
349 impl ::core::clone::Clone for SendCommandStatus {
clone(&self) -> Self350     fn clone(&self) -> Self {
351         *self
352     }
353 }
354 #[repr(transparent)]
355 pub struct TelephonyKey(pub i32);
356 impl TelephonyKey {
357     pub const D0: Self = Self(0i32);
358     pub const D1: Self = Self(1i32);
359     pub const D2: Self = Self(2i32);
360     pub const D3: Self = Self(3i32);
361     pub const D4: Self = Self(4i32);
362     pub const D5: Self = Self(5i32);
363     pub const D6: Self = Self(6i32);
364     pub const D7: Self = Self(7i32);
365     pub const D8: Self = Self(8i32);
366     pub const D9: Self = Self(9i32);
367     pub const Star: Self = Self(10i32);
368     pub const Pound: Self = Self(11i32);
369     pub const A: Self = Self(12i32);
370     pub const B: Self = Self(13i32);
371     pub const C: Self = Self(14i32);
372     pub const D: Self = Self(15i32);
373 }
374 impl ::core::marker::Copy for TelephonyKey {}
375 impl ::core::clone::Clone for TelephonyKey {
clone(&self) -> Self376     fn clone(&self) -> Self {
377         *self
378     }
379 }
380 pub type TorchControl = *mut ::core::ffi::c_void;
381 pub type VideoDeviceController = *mut ::core::ffi::c_void;
382 pub type VideoDeviceControllerGetDevicePropertyResult = *mut ::core::ffi::c_void;
383 #[repr(transparent)]
384 pub struct VideoDeviceControllerGetDevicePropertyStatus(pub i32);
385 impl VideoDeviceControllerGetDevicePropertyStatus {
386     pub const Success: Self = Self(0i32);
387     pub const UnknownFailure: Self = Self(1i32);
388     pub const BufferTooSmall: Self = Self(2i32);
389     pub const NotSupported: Self = Self(3i32);
390     pub const DeviceNotAvailable: Self = Self(4i32);
391     pub const MaxPropertyValueSizeTooSmall: Self = Self(5i32);
392     pub const MaxPropertyValueSizeRequired: Self = Self(6i32);
393 }
394 impl ::core::marker::Copy for VideoDeviceControllerGetDevicePropertyStatus {}
395 impl ::core::clone::Clone for VideoDeviceControllerGetDevicePropertyStatus {
clone(&self) -> Self396     fn clone(&self) -> Self {
397         *self
398     }
399 }
400 #[repr(transparent)]
401 pub struct VideoDeviceControllerSetDevicePropertyStatus(pub i32);
402 impl VideoDeviceControllerSetDevicePropertyStatus {
403     pub const Success: Self = Self(0i32);
404     pub const UnknownFailure: Self = Self(1i32);
405     pub const NotSupported: Self = Self(2i32);
406     pub const InvalidValue: Self = Self(3i32);
407     pub const DeviceNotAvailable: Self = Self(4i32);
408     pub const NotInControl: Self = Self(5i32);
409 }
410 impl ::core::marker::Copy for VideoDeviceControllerSetDevicePropertyStatus {}
411 impl ::core::clone::Clone for VideoDeviceControllerSetDevicePropertyStatus {
clone(&self) -> Self412     fn clone(&self) -> Self {
413         *self
414     }
415 }
416 pub type VideoTemporalDenoisingControl = *mut ::core::ffi::c_void;
417 #[repr(transparent)]
418 pub struct VideoTemporalDenoisingMode(pub i32);
419 impl VideoTemporalDenoisingMode {
420     pub const Off: Self = Self(0i32);
421     pub const On: Self = Self(1i32);
422     pub const Auto: Self = Self(2i32);
423 }
424 impl ::core::marker::Copy for VideoTemporalDenoisingMode {}
425 impl ::core::clone::Clone for VideoTemporalDenoisingMode {
clone(&self) -> Self426     fn clone(&self) -> Self {
427         *self
428     }
429 }
430 pub type WhiteBalanceControl = *mut ::core::ffi::c_void;
431 pub type ZoomControl = *mut ::core::ffi::c_void;
432 pub type ZoomSettings = *mut ::core::ffi::c_void;
433 #[repr(transparent)]
434 pub struct ZoomTransitionMode(pub i32);
435 impl ZoomTransitionMode {
436     pub const Auto: Self = Self(0i32);
437     pub const Direct: Self = Self(1i32);
438     pub const Smooth: Self = Self(2i32);
439 }
440 impl ::core::marker::Copy for ZoomTransitionMode {}
441 impl ::core::clone::Clone for ZoomTransitionMode {
clone(&self) -> Self442     fn clone(&self) -> Self {
443         *self
444     }
445 }
446