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