orbbec_sdk/device/
device_property.rs

1//! Device properties
2use crate::sys::enums::OBPropertyID;
3
4/// Property value
5#[derive(Debug, PartialEq)]
6pub enum PropertyValue<'a> {
7    Bool(&'a mut bool),
8    Int(&'a mut i32),
9    Float(&'a mut f32),
10}
11
12/// Device property
13#[derive(Debug, Clone, Copy, PartialEq)]
14pub enum DeviceProperty {
15    /// LDP switch
16    LDP(bool),
17    /// Laser switch
18    Laser(bool),
19    /// Laser pulse width
20    LaserPulseWidth(i32),
21    /// Laser current (unit: mA)
22    LaserCurrent(f32),
23    /// IR flood switch
24    Flood(bool),
25    /// IR flood level
26    FloodLevel(i32),
27    /// Enable/disable temperature compensation
28    TemperatureCompensation(bool),
29    /// Depth mirror
30    DepthMirror(bool),
31    /// Depth flip
32    DepthFlip(bool),
33    /// Depth Postfilter
34    DepthPostfilter(bool),
35    /// Depth Holefilter
36    DepthHolefilter(bool),
37    /// IR mirror
38    IRMirror(bool),
39    /// IR flip
40    IRFlip(bool),
41    /// Minimum depth threshold
42    MinDepth(i32),
43    /// Maximum depth threshold
44    MaxDepth(i32),
45    /// Software filter switch
46    DepthNoiseRemovalFilter(bool),
47    /// LDP status
48    LDPStatus(bool),
49    /// Maxdiff for depth noise removal filter
50    DepthNoiseRemovalFilterMaxDiff(i32),
51    /// MaxSpeckleSize for depth noise removal filter
52    DepthNoiseRemovalFilterMaxSpeckleSize(i32),
53    /// Hardware d2c is on
54    DepthAlignHardware(bool),
55    /// Timestamp adjustment
56    TimestampOffset(i32),
57    /// Hardware distortion switch Rectify
58    HardwareDistortionSwitch(bool),
59    /// Fan mode switch
60    FanWorkMode(i32),
61    /// Multi-resolution D2C mode
62    DepthAlignHardwareMode(i32),
63    /// Anti-collusion activation status
64    AntiCollusionActivationStatus(bool),
65    /// Depth precision level
66    DepthPrecisionLevel(i32),
67    /// TOF filter range configuration
68    TofFilterRange(i32),
69    /// Laser mode
70    LaserMode(i32),
71    /// brt2r-rectify function switch
72    Rectify2(bool),
73    /// Color mirror
74    ColorMirror(bool),
75    /// Color flip
76    ColorFlip(bool),
77    /// Indicator switch
78    IndicatorLight(bool),
79    /// Disparity to depth switch
80    DisparityToDepth(bool),
81    /// BRT function switch
82    BRT(bool),
83    /// Watchdog function switch
84    Watchdog(bool),
85    /// External signal trigger restart function switch
86    ExternalSignalReset(bool),
87    /// Heartbeat monitoring function switch
88    Heartbeat(bool),
89    /// Depth cropping mode device
90    DepthCroppingMode(i32),
91    /// D2C preprocessing switch
92    D2CPreprocess(bool),
93    /// Enable/disable GPM function
94    GPM(bool),
95    /// Custom RGB cropping switch
96    RGBCustomCrop(bool),
97    /// Device operating mode (power consumption)
98    DeviceWorkMode(i32),
99    /// Device communication type
100    DeviceCommunicationType(i32),
101    /// Switch infrared imaging mode
102    SwitchIRMode(i32),
103    /// Laser power level
104    LaserPowerLevelControl(i32),
105    /// LDP's measure distance
106    LDPMeasureDistance(i32),
107    /// Reset device time to zero
108    TimerResetSignal(bool),
109    /// Enable send reset device time signal to other device
110    TimerResetTriggerOutEnable(bool),
111    /// Delay to reset device time
112    TimerResetDelayUs(i32),
113    /// Signal to capture image
114    CaptureImageSignal(bool),
115    /// Right IR sensor mirror state
116    IRRightMirror(bool),
117    /// Number frame to capture once a 'OB_PROP_CAPTURE_IMAGE_SIGNAL_BOOL' effect
118    CaptureImageFrameNumber(i32),
119    /// Right IR sensor flip state
120    IRRightFlip(bool),
121    /// Color sensor rotation
122    ColorRotate(i32),
123    /// IR/Left-IR sensor rotation
124    IRRotate(i32),
125    /// Right IR sensor rotation
126    IRRightRotate(i32),
127    /// Depth sensor rotation
128    DepthRotate(i32),
129    /// Get hardware laser power actual level
130    LaserPowerActualLevel(i32),
131    /// USB's power state
132    USBPowerState(i32),
133    /// DC's power state
134    DCPowerState(i32),
135    /// Device development mode switch
136    DeviceDevelopmentMode(i32),
137    /// Multi-DeviceSync synchronized signal trigger out is enable state
138    SyncSignalTriggerOut(bool),
139    /// Restore factory settings and factory parameters
140    RestoreFactorySettings(bool),
141    /// Enter recovery mode when boot the device
142    BootIntoRecoveryMode(bool),
143    /// Query whether the current device is running in recovery mode
144    DeviceInRecoveryMode(bool),
145    /// Capture interval mode
146    CaptureIntervalMode(i32),
147    /// Capture time interval
148    CaptureImageTimeInterval(i32),
149    /// Capture number interval
150    CaptureImageNumberInterval(i32),
151    /// Timer reset enable
152    TimerResetEnable(bool),
153    /// Enable or disable the device to retry USB2.0 re-identification
154    DeviceUSB2RepeatIdentify(bool),
155    /// Reboot device delay mode
156    DeviceRebootDelay(i32),
157    /// Query the status of laser overcurrent protection
158    LaserOvercurrentProtectionStatus(bool),
159    /// Query the status of laser pulse width protection
160    LaserPulseWidthProtectionStatus(bool),
161    /// Laser always on
162    LaserAlwaysOn(bool),
163    /// Laser on/off alternate mode
164    LaserOnOffPattern(i32),
165    /// Depth unit flexible adjustment
166    DepthUnitFlexibleAdjustment(f32),
167    /// Laser control
168    LaserControl(i32),
169    /// IR brightness
170    IRBrightness(i32),
171    /// Slave/secondary device synchronization status
172    SlaveDeviceSyncStatus(bool),
173    /// Color AE max exposure
174    ColorAEMaxExposure(i32),
175    /// Max exposure time of IR auto exposure
176    IRAEMaxExposure(i32),
177    /// Disparity search range mode
178    DispSearchRangeMode(i32),
179    /// Laser high temperature protection
180    LaserHighTemperatureProtect(bool),
181    /// Low exposure laser control
182    LowExposureLaserControl(bool),
183    /// Check pps sync in signal
184    CheckPPSSyncInSignal(bool),
185    /// Disparity search range offset
186    DispSearchOffset(i32),
187    /// Repower device
188    DeviceRepower(bool),
189    /// Frame interleave config index
190    FrameInterleaveConfigIndex(i32),
191    /// Frame interleave enable
192    FrameInterleaveEnable(bool),
193    /// Laser pattern sync with delay
194    FrameInterleaveLaserPatternSyncDelay(i32),
195    /// Get the health check result from device
196    OnChipCalibrationHealthCheck(f32),
197    /// Enable or disable on-chip calibration
198    OnChipCalibrationEnable(bool),
199    /// Hardware noise remove filter switch
200    HWNoiseRemoveFilterEnable(bool),
201    /// Hardware noise remove filter threshold
202    HWNoiseRemoveFilterThreshold(f32),
203    /// Soft trigger auto capture enable
204    DeviceAutoCaptureEnable(bool),
205    /// Soft trigger auto capture interval time
206    DeviceAutoCaptureIntervalTime(i32),
207    /// PTP time synchronization enable
208    DevicePTPClockSyncEnable(bool),
209    /// Depth with confidence stream enable
210    DepthWithConfidenceStreamEnable(bool),
211    /// Enable or disable confidence stream filter
212    ConfidenceStreamFilter(bool),
213    /// Confidence stream filter threshold
214    ConfidenceStreamFilterThreshold(i32),
215    /// Confidence stream mirror enable
216    ConfidenceMirror(bool),
217    /// Confidence stream flip enable
218    ConfidenceFlip(bool),
219    /// Confidence stream rotate
220    ConfidenceRotate(i32),
221    /// Color camera auto exposure
222    ColorAutoExposure(bool),
223    /// Color camera exposure adjustment
224    ColorExposure(i32),
225    /// Color camera gain adjustment
226    ColorGain(i32),
227    /// Color camera automatic white balance
228    ColorAutoWhiteBalance(bool),
229    /// Color camera white balance adjustment
230    ColorWhiteBalance(i32),
231    /// Color camera brightness adjustment
232    ColorBrightness(i32),
233    /// Color camera sharpness adjustment
234    ColorSharpness(i32),
235    /// Color camera shutter adjustment
236    ColorShutter(i32),
237    /// Color camera saturation adjustment
238    ColorSaturation(i32),
239    /// Color camera contrast adjustment
240    ColorContrast(i32),
241    /// Color camera gamma adjustment
242    ColorGamma(i32),
243    /// Color camera image rotation
244    ColorRoll(i32),
245    /// Color camera auto exposure priority
246    ColorAutoExposurePriority(i32),
247    /// Color camera brightness compensation
248    ColorBacklightCompensation(i32),
249    /// Color camera color tint
250    ColorHue(i32),
251    /// Color Camera Power Line Frequency
252    ColorPowerLineFrequency(i32),
253    /// Automatic exposure of depth camera
254    DepthAutoExposure(bool),
255    /// Depth camera exposure adjustment
256    DepthExposure(i32),
257    /// Depth camera gain adjustment
258    DepthGain(i32),
259    /// Infrared camera auto exposure
260    IRAutoExposure(bool),
261    /// Infrared camera exposure adjustment
262    IRExposure(i32),
263    /// Infrared camera gain adjustment
264    IRGain(i32),
265    /// Select Infrared camera data source channel
266    IRChannelDataSource(i32),
267    /// Depth effect dedistortion
268    DepthRMFilter(bool),
269    /// Color camera maximal gain
270    ColorMaximalGain(i32),
271    /// Color camera shutter gain
272    ColorMaximalShutter(i32),
273    /// Enable/disable IR short exposure function
274    IRShortExposure(bool),
275    /// Color camera HDR
276    ColorHDR(bool),
277    /// IR long exposure mode switch
278    IRLongExposure(bool),
279    /// Setting and getting the USB device frame skipping mode status
280    SkipFrame(bool),
281    /// Depth HDR merge
282    HDRMerge(bool),
283    /// Color camera FOCUS
284    ColorFocus(i32),
285    /// IR rectify status
286    IRRectify(bool),
287    /// Depth camera priority
288    DepthAutoExposurePriority(i32),
289    /// Software disparity to depth
290    SDKDisparityToDepth(bool),
291    /// Depth data unpacking function switch
292    SDKDepthFrameUnpack(bool),
293    /// IR data unpacking function switch
294    SDKIRFrameUnpack(bool),
295    /// Accel data conversion function switch
296    SDKAccelFrameTransformed(bool),
297    /// Gyro data conversion function switch
298    SDKGyroFrameTransformed(bool),
299    /// Left IR frame data unpacking function switch
300    SDKIRLeftFrameUnpack(bool),
301    /// Right IR frame data unpacking function switch
302    SDKIRRightFrameUnpack(bool),
303    /// Read the current network bandwidth type of the network device
304    NetworkBandwidthType(i32),
305    /// Switch device performance mode
306    DevicePerformanceMode(i32),
307    /// Calibration JSON file read from device
308    RawDataCameraCalibJsonFile(i32),
309    /// Confidence degree
310    DebugESGMConfidence(f32),
311}
312
313impl<'a> DeviceProperty {
314    /// Decompose to (property_id, property_value)
315    pub(crate) fn decompose(&'a mut self) -> (OBPropertyID, PropertyValue<'a>) {
316        match self {
317            DeviceProperty::LDP(value) => (OBPropertyID::LDPBool, PropertyValue::Bool(value)),
318            DeviceProperty::Laser(value) => (OBPropertyID::LaserBool, PropertyValue::Bool(value)),
319            DeviceProperty::LaserPulseWidth(value) => {
320                (OBPropertyID::LaserPulseWidthInt, PropertyValue::Int(value))
321            }
322            DeviceProperty::LaserCurrent(value) => {
323                (OBPropertyID::LaserCurrentFloat, PropertyValue::Float(value))
324            }
325            DeviceProperty::Flood(value) => (OBPropertyID::FloodBool, PropertyValue::Bool(value)),
326            DeviceProperty::FloodLevel(value) => {
327                (OBPropertyID::FloodLevelInt, PropertyValue::Int(value))
328            }
329            DeviceProperty::TemperatureCompensation(value) => (
330                OBPropertyID::TemperatureCompensationBool,
331                PropertyValue::Bool(value),
332            ),
333            DeviceProperty::DepthMirror(value) => {
334                (OBPropertyID::DepthMirrorBool, PropertyValue::Bool(value))
335            }
336            DeviceProperty::DepthFlip(value) => {
337                (OBPropertyID::DepthFlipBool, PropertyValue::Bool(value))
338            }
339            DeviceProperty::DepthPostfilter(value) => (
340                OBPropertyID::DepthPostfilterBool,
341                PropertyValue::Bool(value),
342            ),
343            DeviceProperty::DepthHolefilter(value) => (
344                OBPropertyID::DepthHolefilterBool,
345                PropertyValue::Bool(value),
346            ),
347            DeviceProperty::IRMirror(value) => {
348                (OBPropertyID::IRMirrorBool, PropertyValue::Bool(value))
349            }
350            DeviceProperty::IRFlip(value) => (OBPropertyID::IRFlipBool, PropertyValue::Bool(value)),
351            DeviceProperty::MinDepth(value) => {
352                (OBPropertyID::MinDepthInt, PropertyValue::Int(value))
353            }
354            DeviceProperty::MaxDepth(value) => {
355                (OBPropertyID::MaxDepthInt, PropertyValue::Int(value))
356            }
357            DeviceProperty::DepthNoiseRemovalFilter(value) => (
358                OBPropertyID::DepthNoiseRemovalFilterBool,
359                PropertyValue::Bool(value),
360            ),
361            DeviceProperty::LDPStatus(value) => {
362                (OBPropertyID::LDPStatusBool, PropertyValue::Bool(value))
363            }
364            DeviceProperty::DepthNoiseRemovalFilterMaxDiff(value) => (
365                OBPropertyID::DepthNoiseRemovalFilterMaxDiffInt,
366                PropertyValue::Int(value),
367            ),
368            DeviceProperty::DepthNoiseRemovalFilterMaxSpeckleSize(value) => (
369                OBPropertyID::DepthNoiseRemovalFilterMaxSpeckleSizeInt,
370                PropertyValue::Int(value),
371            ),
372            DeviceProperty::DepthAlignHardware(value) => (
373                OBPropertyID::DepthAlignHardwareBool,
374                PropertyValue::Bool(value),
375            ),
376            DeviceProperty::TimestampOffset(value) => {
377                (OBPropertyID::TimestampOffsetInt, PropertyValue::Int(value))
378            }
379            DeviceProperty::HardwareDistortionSwitch(value) => (
380                OBPropertyID::HardwareDistortionSwitchBool,
381                PropertyValue::Bool(value),
382            ),
383            DeviceProperty::FanWorkMode(value) => {
384                (OBPropertyID::FanWorkModeInt, PropertyValue::Int(value))
385            }
386            DeviceProperty::DepthAlignHardwareMode(value) => (
387                OBPropertyID::DepthAlignHardwareModeInt,
388                PropertyValue::Int(value),
389            ),
390            DeviceProperty::AntiCollusionActivationStatus(value) => (
391                OBPropertyID::AntiCollusionActivationStatusBool,
392                PropertyValue::Bool(value),
393            ),
394            DeviceProperty::DepthPrecisionLevel(value) => (
395                OBPropertyID::DepthPrecisionLevelInt,
396                PropertyValue::Int(value),
397            ),
398            DeviceProperty::TofFilterRange(value) => {
399                (OBPropertyID::TofFilterRangeInt, PropertyValue::Int(value))
400            }
401            DeviceProperty::LaserMode(value) => {
402                (OBPropertyID::LaserModeInt, PropertyValue::Int(value))
403            }
404            DeviceProperty::Rectify2(value) => {
405                (OBPropertyID::Rectify2Bool, PropertyValue::Bool(value))
406            }
407            DeviceProperty::ColorMirror(value) => {
408                (OBPropertyID::ColorMirrorBool, PropertyValue::Bool(value))
409            }
410            DeviceProperty::ColorFlip(value) => {
411                (OBPropertyID::ColorFlipBool, PropertyValue::Bool(value))
412            }
413            DeviceProperty::IndicatorLight(value) => {
414                (OBPropertyID::IndicatorLightBool, PropertyValue::Bool(value))
415            }
416            DeviceProperty::DisparityToDepth(value) => (
417                OBPropertyID::DisparityToDepthBool,
418                PropertyValue::Bool(value),
419            ),
420            DeviceProperty::BRT(value) => (OBPropertyID::BRTBool, PropertyValue::Bool(value)),
421            DeviceProperty::Watchdog(value) => {
422                (OBPropertyID::WatchdogBool, PropertyValue::Bool(value))
423            }
424            DeviceProperty::ExternalSignalReset(value) => (
425                OBPropertyID::ExternalSignalResetBool,
426                PropertyValue::Bool(value),
427            ),
428            DeviceProperty::Heartbeat(value) => {
429                (OBPropertyID::HeartbeatBool, PropertyValue::Bool(value))
430            }
431            DeviceProperty::DepthCroppingMode(value) => (
432                OBPropertyID::DepthCroppingModeInt,
433                PropertyValue::Int(value),
434            ),
435            DeviceProperty::D2CPreprocess(value) => {
436                (OBPropertyID::D2CPreprocessBool, PropertyValue::Bool(value))
437            }
438            DeviceProperty::GPM(value) => (OBPropertyID::GPMBool, PropertyValue::Bool(value)),
439            DeviceProperty::RGBCustomCrop(value) => {
440                (OBPropertyID::RGBCustomCropBool, PropertyValue::Bool(value))
441            }
442            DeviceProperty::DeviceWorkMode(value) => {
443                (OBPropertyID::DeviceWorkModeInt, PropertyValue::Int(value))
444            }
445            DeviceProperty::DeviceCommunicationType(value) => (
446                OBPropertyID::DeviceCommunicationTypeInt,
447                PropertyValue::Int(value),
448            ),
449            DeviceProperty::SwitchIRMode(value) => {
450                (OBPropertyID::SwitchIRModeInt, PropertyValue::Int(value))
451            }
452            DeviceProperty::LaserPowerLevelControl(value) => (
453                OBPropertyID::LaserPowerLevelControlInt,
454                PropertyValue::Int(value),
455            ),
456            DeviceProperty::LDPMeasureDistance(value) => (
457                OBPropertyID::LDPMeasureDistanceInt,
458                PropertyValue::Int(value),
459            ),
460            DeviceProperty::TimerResetSignal(value) => (
461                OBPropertyID::TimerResetSignalBool,
462                PropertyValue::Bool(value),
463            ),
464            DeviceProperty::TimerResetTriggerOutEnable(value) => (
465                OBPropertyID::TimerResetTriggerOutEnableBool,
466                PropertyValue::Bool(value),
467            ),
468            DeviceProperty::TimerResetDelayUs(value) => (
469                OBPropertyID::TimerResetDelayUsInt,
470                PropertyValue::Int(value),
471            ),
472            DeviceProperty::CaptureImageSignal(value) => (
473                OBPropertyID::CaptureImageSignalBool,
474                PropertyValue::Bool(value),
475            ),
476            DeviceProperty::IRRightMirror(value) => {
477                (OBPropertyID::IRRightMirrorBool, PropertyValue::Bool(value))
478            }
479            DeviceProperty::CaptureImageFrameNumber(value) => (
480                OBPropertyID::CaptureImageFrameNumberInt,
481                PropertyValue::Int(value),
482            ),
483            DeviceProperty::IRRightFlip(value) => {
484                (OBPropertyID::IRRightFlipBool, PropertyValue::Bool(value))
485            }
486            DeviceProperty::ColorRotate(value) => {
487                (OBPropertyID::ColorRotateInt, PropertyValue::Int(value))
488            }
489            DeviceProperty::IRRotate(value) => {
490                (OBPropertyID::IRRotateInt, PropertyValue::Int(value))
491            }
492            DeviceProperty::IRRightRotate(value) => {
493                (OBPropertyID::IRRightRotateInt, PropertyValue::Int(value))
494            }
495            DeviceProperty::DepthRotate(value) => {
496                (OBPropertyID::DepthRotateInt, PropertyValue::Int(value))
497            }
498            DeviceProperty::LaserPowerActualLevel(value) => (
499                OBPropertyID::LaserPowerActualLevelInt,
500                PropertyValue::Int(value),
501            ),
502            DeviceProperty::USBPowerState(value) => {
503                (OBPropertyID::USBPowerStateInt, PropertyValue::Int(value))
504            }
505            DeviceProperty::DCPowerState(value) => {
506                (OBPropertyID::DCPowerStateInt, PropertyValue::Int(value))
507            }
508            DeviceProperty::DeviceDevelopmentMode(value) => (
509                OBPropertyID::DeviceDevelopmentModeInt,
510                PropertyValue::Int(value),
511            ),
512            DeviceProperty::SyncSignalTriggerOut(value) => (
513                OBPropertyID::SyncSignalTriggerOutBool,
514                PropertyValue::Bool(value),
515            ),
516            DeviceProperty::RestoreFactorySettings(value) => (
517                OBPropertyID::RestoreFactorySettingsBool,
518                PropertyValue::Bool(value),
519            ),
520            DeviceProperty::BootIntoRecoveryMode(value) => (
521                OBPropertyID::BootIntoRecoveryModeBool,
522                PropertyValue::Bool(value),
523            ),
524            DeviceProperty::DeviceInRecoveryMode(value) => (
525                OBPropertyID::DeviceInRecoveryModeBool,
526                PropertyValue::Bool(value),
527            ),
528            DeviceProperty::CaptureIntervalMode(value) => (
529                OBPropertyID::CaptureIntervalModeInt,
530                PropertyValue::Int(value),
531            ),
532            DeviceProperty::CaptureImageTimeInterval(value) => (
533                OBPropertyID::CaptureImageTimeIntervalInt,
534                PropertyValue::Int(value),
535            ),
536            DeviceProperty::CaptureImageNumberInterval(value) => (
537                OBPropertyID::CaptureImageNumberIntervalInt,
538                PropertyValue::Int(value),
539            ),
540            DeviceProperty::TimerResetEnable(value) => (
541                OBPropertyID::TimerResetEnableBool,
542                PropertyValue::Bool(value),
543            ),
544            DeviceProperty::DeviceUSB2RepeatIdentify(value) => (
545                OBPropertyID::DeviceUSB2RepeatIdentifyBool,
546                PropertyValue::Bool(value),
547            ),
548            DeviceProperty::DeviceRebootDelay(value) => (
549                OBPropertyID::DeviceRebootDelayInt,
550                PropertyValue::Int(value),
551            ),
552            DeviceProperty::LaserOvercurrentProtectionStatus(value) => (
553                OBPropertyID::LaserOvercurrentProtectionStatusBool,
554                PropertyValue::Bool(value),
555            ),
556            DeviceProperty::LaserPulseWidthProtectionStatus(value) => (
557                OBPropertyID::LaserPulseWidthProtectionStatusBool,
558                PropertyValue::Bool(value),
559            ),
560            DeviceProperty::LaserAlwaysOn(value) => {
561                (OBPropertyID::LaserAlwaysOnBool, PropertyValue::Bool(value))
562            }
563            DeviceProperty::LaserOnOffPattern(value) => (
564                OBPropertyID::LaserOnOffPatternInt,
565                PropertyValue::Int(value),
566            ),
567            DeviceProperty::DepthUnitFlexibleAdjustment(value) => (
568                OBPropertyID::DepthUnitFlexibleAdjustmentFloat,
569                PropertyValue::Float(value),
570            ),
571            DeviceProperty::LaserControl(value) => {
572                (OBPropertyID::LaserControlInt, PropertyValue::Int(value))
573            }
574            DeviceProperty::IRBrightness(value) => {
575                (OBPropertyID::IRBrightnessInt, PropertyValue::Int(value))
576            }
577            DeviceProperty::SlaveDeviceSyncStatus(value) => (
578                OBPropertyID::SlaveDeviceSyncStatusBool,
579                PropertyValue::Bool(value),
580            ),
581            DeviceProperty::ColorAEMaxExposure(value) => (
582                OBPropertyID::ColorAEMaxExposureInt,
583                PropertyValue::Int(value),
584            ),
585            DeviceProperty::IRAEMaxExposure(value) => {
586                (OBPropertyID::IRAEMaxExposureInt, PropertyValue::Int(value))
587            }
588            DeviceProperty::DispSearchRangeMode(value) => (
589                OBPropertyID::DispSearchRangeModeInt,
590                PropertyValue::Int(value),
591            ),
592            DeviceProperty::LaserHighTemperatureProtect(value) => (
593                OBPropertyID::LaserHighTemperatureProtectBool,
594                PropertyValue::Bool(value),
595            ),
596            DeviceProperty::LowExposureLaserControl(value) => (
597                OBPropertyID::LowExposureLaserControlBool,
598                PropertyValue::Bool(value),
599            ),
600            DeviceProperty::CheckPPSSyncInSignal(value) => (
601                OBPropertyID::CheckPPSSyncInSignalBool,
602                PropertyValue::Bool(value),
603            ),
604            DeviceProperty::DispSearchOffset(value) => {
605                (OBPropertyID::DispSearchOffsetInt, PropertyValue::Int(value))
606            }
607            DeviceProperty::DeviceRepower(value) => {
608                (OBPropertyID::DeviceRepowerBool, PropertyValue::Bool(value))
609            }
610            DeviceProperty::FrameInterleaveConfigIndex(value) => (
611                OBPropertyID::FrameInterleaveConfigIndexInt,
612                PropertyValue::Int(value),
613            ),
614            DeviceProperty::FrameInterleaveEnable(value) => (
615                OBPropertyID::FrameInterleaveEnableBool,
616                PropertyValue::Bool(value),
617            ),
618            DeviceProperty::FrameInterleaveLaserPatternSyncDelay(value) => (
619                OBPropertyID::FrameInterleaveLaserPatternSyncDelayInt,
620                PropertyValue::Int(value),
621            ),
622            DeviceProperty::OnChipCalibrationHealthCheck(value) => (
623                OBPropertyID::OnChipCalibrationHealthCheckFloat,
624                PropertyValue::Float(value),
625            ),
626            DeviceProperty::OnChipCalibrationEnable(value) => (
627                OBPropertyID::OnChipCalibrationEnableBool,
628                PropertyValue::Bool(value),
629            ),
630            DeviceProperty::HWNoiseRemoveFilterEnable(value) => (
631                OBPropertyID::HWNoiseRemoveFilterEnableBool,
632                PropertyValue::Bool(value),
633            ),
634            DeviceProperty::HWNoiseRemoveFilterThreshold(value) => (
635                OBPropertyID::HWNoiseRemoveFilterThresholdFloat,
636                PropertyValue::Float(value),
637            ),
638            DeviceProperty::DeviceAutoCaptureEnable(value) => (
639                OBPropertyID::DeviceAutoCaptureEnableBool,
640                PropertyValue::Bool(value),
641            ),
642            DeviceProperty::DeviceAutoCaptureIntervalTime(value) => (
643                OBPropertyID::DeviceAutoCaptureIntervalTimeInt,
644                PropertyValue::Int(value),
645            ),
646            DeviceProperty::DevicePTPClockSyncEnable(value) => (
647                OBPropertyID::DevicePTPClockSyncEnableBool,
648                PropertyValue::Bool(value),
649            ),
650            DeviceProperty::DepthWithConfidenceStreamEnable(value) => (
651                OBPropertyID::DepthWithConfidenceStreamEnableBool,
652                PropertyValue::Bool(value),
653            ),
654            DeviceProperty::ConfidenceStreamFilter(value) => (
655                OBPropertyID::ConfidenceStreamFilterBool,
656                PropertyValue::Bool(value),
657            ),
658            DeviceProperty::ConfidenceStreamFilterThreshold(value) => (
659                OBPropertyID::ConfidenceStreamFilterThresholdInt,
660                PropertyValue::Int(value),
661            ),
662            DeviceProperty::ConfidenceMirror(value) => (
663                OBPropertyID::ConfidenceMirrorBool,
664                PropertyValue::Bool(value),
665            ),
666            DeviceProperty::ConfidenceFlip(value) => {
667                (OBPropertyID::ConfidenceFlipBool, PropertyValue::Bool(value))
668            }
669            DeviceProperty::ConfidenceRotate(value) => {
670                (OBPropertyID::ConfidenceRotateInt, PropertyValue::Int(value))
671            }
672            DeviceProperty::ColorAutoExposure(value) => (
673                OBPropertyID::ColorAutoExposureBool,
674                PropertyValue::Bool(value),
675            ),
676            DeviceProperty::ColorExposure(value) => {
677                (OBPropertyID::ColorExposureInt, PropertyValue::Int(value))
678            }
679            DeviceProperty::ColorGain(value) => {
680                (OBPropertyID::ColorGainInt, PropertyValue::Int(value))
681            }
682            DeviceProperty::ColorAutoWhiteBalance(value) => (
683                OBPropertyID::ColorAutoWhiteBalanceBool,
684                PropertyValue::Bool(value),
685            ),
686            DeviceProperty::ColorWhiteBalance(value) => (
687                OBPropertyID::ColorWhiteBalanceInt,
688                PropertyValue::Int(value),
689            ),
690            DeviceProperty::ColorBrightness(value) => {
691                (OBPropertyID::ColorBrightnessInt, PropertyValue::Int(value))
692            }
693            DeviceProperty::ColorSharpness(value) => {
694                (OBPropertyID::ColorSharpnessInt, PropertyValue::Int(value))
695            }
696            DeviceProperty::ColorShutter(value) => {
697                (OBPropertyID::ColorShutterInt, PropertyValue::Int(value))
698            }
699            DeviceProperty::ColorSaturation(value) => {
700                (OBPropertyID::ColorSaturationInt, PropertyValue::Int(value))
701            }
702            DeviceProperty::ColorContrast(value) => {
703                (OBPropertyID::ColorContrastInt, PropertyValue::Int(value))
704            }
705            DeviceProperty::ColorGamma(value) => {
706                (OBPropertyID::ColorGammaInt, PropertyValue::Int(value))
707            }
708            DeviceProperty::ColorRoll(value) => {
709                (OBPropertyID::ColorRollInt, PropertyValue::Int(value))
710            }
711            DeviceProperty::ColorAutoExposurePriority(value) => (
712                OBPropertyID::ColorAutoExposurePriorityInt,
713                PropertyValue::Int(value),
714            ),
715            DeviceProperty::ColorBacklightCompensation(value) => (
716                OBPropertyID::ColorBacklightCompensationInt,
717                PropertyValue::Int(value),
718            ),
719            DeviceProperty::ColorHue(value) => {
720                (OBPropertyID::ColorHueInt, PropertyValue::Int(value))
721            }
722            DeviceProperty::ColorPowerLineFrequency(value) => (
723                OBPropertyID::ColorPowerLineFrequencyInt,
724                PropertyValue::Int(value),
725            ),
726            DeviceProperty::DepthAutoExposure(value) => (
727                OBPropertyID::DepthAutoExposureBool,
728                PropertyValue::Bool(value),
729            ),
730            DeviceProperty::DepthExposure(value) => {
731                (OBPropertyID::DepthExposureInt, PropertyValue::Int(value))
732            }
733            DeviceProperty::DepthGain(value) => {
734                (OBPropertyID::DepthGainInt, PropertyValue::Int(value))
735            }
736            DeviceProperty::IRAutoExposure(value) => {
737                (OBPropertyID::IRAutoExposureBool, PropertyValue::Bool(value))
738            }
739            DeviceProperty::IRExposure(value) => {
740                (OBPropertyID::IRExposureInt, PropertyValue::Int(value))
741            }
742            DeviceProperty::IRGain(value) => (OBPropertyID::IRGainInt, PropertyValue::Int(value)),
743            DeviceProperty::IRChannelDataSource(value) => (
744                OBPropertyID::IRChannelDataSourceInt,
745                PropertyValue::Int(value),
746            ),
747            DeviceProperty::DepthRMFilter(value) => {
748                (OBPropertyID::DepthRMFilterBool, PropertyValue::Bool(value))
749            }
750            DeviceProperty::ColorMaximalGain(value) => {
751                (OBPropertyID::ColorMaximalGainInt, PropertyValue::Int(value))
752            }
753            DeviceProperty::ColorMaximalShutter(value) => (
754                OBPropertyID::ColorMaximalShutterInt,
755                PropertyValue::Int(value),
756            ),
757            DeviceProperty::IRShortExposure(value) => (
758                OBPropertyID::IRShortExposureBool,
759                PropertyValue::Bool(value),
760            ),
761            DeviceProperty::ColorHDR(value) => {
762                (OBPropertyID::ColorHDRBool, PropertyValue::Bool(value))
763            }
764            DeviceProperty::IRLongExposure(value) => {
765                (OBPropertyID::IRLongExposureBool, PropertyValue::Bool(value))
766            }
767            DeviceProperty::SkipFrame(value) => {
768                (OBPropertyID::SkipFrameBool, PropertyValue::Bool(value))
769            }
770            DeviceProperty::HDRMerge(value) => {
771                (OBPropertyID::HDRMergeBool, PropertyValue::Bool(value))
772            }
773            DeviceProperty::ColorFocus(value) => {
774                (OBPropertyID::ColorFocusInt, PropertyValue::Int(value))
775            }
776            DeviceProperty::IRRectify(value) => {
777                (OBPropertyID::IRRectifyBool, PropertyValue::Bool(value))
778            }
779            DeviceProperty::DepthAutoExposurePriority(value) => (
780                OBPropertyID::DepthAutoExposurePriorityInt,
781                PropertyValue::Int(value),
782            ),
783            DeviceProperty::SDKDisparityToDepth(value) => (
784                OBPropertyID::SDKDisparityToDepthBool,
785                PropertyValue::Bool(value),
786            ),
787            DeviceProperty::SDKDepthFrameUnpack(value) => (
788                OBPropertyID::SDKDepthFrameUnpackBool,
789                PropertyValue::Bool(value),
790            ),
791            DeviceProperty::SDKIRFrameUnpack(value) => (
792                OBPropertyID::SDKIRFrameUnpackBool,
793                PropertyValue::Bool(value),
794            ),
795            DeviceProperty::SDKAccelFrameTransformed(value) => (
796                OBPropertyID::SDKAccelFrameTransformedBool,
797                PropertyValue::Bool(value),
798            ),
799            DeviceProperty::SDKGyroFrameTransformed(value) => (
800                OBPropertyID::SDKGyroFrameTransformedBool,
801                PropertyValue::Bool(value),
802            ),
803            DeviceProperty::SDKIRLeftFrameUnpack(value) => (
804                OBPropertyID::SDKIRLeftFrameUnpackBool,
805                PropertyValue::Bool(value),
806            ),
807            DeviceProperty::SDKIRRightFrameUnpack(value) => (
808                OBPropertyID::SDKIRRightFrameUnpackBool,
809                PropertyValue::Bool(value),
810            ),
811            DeviceProperty::NetworkBandwidthType(value) => (
812                OBPropertyID::NetworkBandwidthTypeInt,
813                PropertyValue::Int(value),
814            ),
815            DeviceProperty::DevicePerformanceMode(value) => (
816                OBPropertyID::DevicePerformanceModeInt,
817                PropertyValue::Int(value),
818            ),
819            DeviceProperty::RawDataCameraCalibJsonFile(value) => (
820                OBPropertyID::RawDataCameraCalibJsonFile,
821                PropertyValue::Int(value),
822            ),
823            DeviceProperty::DebugESGMConfidence(value) => (
824                OBPropertyID::DebugESGMConfidenceFloat,
825                PropertyValue::Float(value),
826            ),
827        }
828    }
829}