summaryrefslogtreecommitdiff
path: root/avstream/avscamera/sys/SensorSimulation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'avstream/avscamera/sys/SensorSimulation.cpp')
-rw-r--r--avstream/avscamera/sys/SensorSimulation.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/avstream/avscamera/sys/SensorSimulation.cpp b/avstream/avscamera/sys/SensorSimulation.cpp
index 6ecd9007..e60372c1 100644
--- a/avstream/avscamera/sys/SensorSimulation.cpp
+++ b/avstream/avscamera/sys/SensorSimulation.cpp
@@ -331,6 +331,15 @@ Return Value:
}
m_TorchMode.Flags = KSCAMERA_EXTENDEDPROP_VIDEOTORCH_OFF;
m_TorchMode = 50UL;
+ m_IRTorch.Flags = KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALWAYS_ON;
+ m_IRTorch.Capability =
+ KSCAMERA_EXTENDEDPROP_IRTORCHMODE_OFF |
+ KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALWAYS_ON |
+ KSCAMERA_EXTENDEDPROP_IRTORCHMODE_ALTERNATING_FRAME_ILLUMINATION;
+ m_IRTorch = 100UL;
+ m_IRTorch.Min() = 20;
+ m_IRTorch.Max() = 100;
+ m_IRTorch.Step() = 5;
m_OptimizationHint.Flags = KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO;
@@ -471,6 +480,14 @@ Return Value:
m_PowerLineFreq.Value = POWERLINEFREQ_DEFAULT;
m_PowerLineFreq.Flags = KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL;
+ // Set up our relative panel.
+ m_RelativePanel.Capability =
+ KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON |
+ KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF |
+ KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_DYNAMIC;
+ m_RelativePanel.Flags = KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF;
+ m_RelativePanel = (ULONG)AcpiPldPanelUnknown;
+
m_IsoResult = STATUS_SUCCESS;
m_EvCompResult = STATUS_SUCCESS;
m_WhiteBalanceResult= STATUS_SUCCESS;
@@ -1791,6 +1808,40 @@ SetOpticalImageStabilization(
return STATUS_SUCCESS;
}
+// Get KSPROPERTY_CAMERACONTROL_EXTENDED_RELATIVEPANEL.
+NTSTATUS
+CSensorSimulation::
+GetRelativePanel(
+ _Inout_ CExtendedProperty *pProperty
+)
+{
+ PAGED_CODE();
+ KScopedMutex lock(m_SensorMutex);
+
+ *pProperty = m_RelativePanel;
+ pProperty->Flags = m_RelativePanel.Flags;
+ pProperty->Capability = KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON |
+ KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF |
+ KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_DYNAMIC;
+
+ return STATUS_SUCCESS;
+}
+
+// Set KSPROPERTY_CAMERACONTROL_EXTENDED_RELATIVEPANEL.
+NTSTATUS
+CSensorSimulation::
+SetRelativePanel(
+ _In_ CExtendedProperty *pProperty
+)
+{
+ PAGED_CODE();
+ KScopedMutex lock(m_SensorMutex);
+
+ m_RelativePanel = *pProperty;
+ m_RelativePanel.Flags = pProperty->Flags;
+ return STATUS_SUCCESS;
+}
+
// Get KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOTEMPORALDENOISING.
NTSTATUS
CSensorSimulation::
@@ -3024,6 +3075,37 @@ SetTorchMode(
return STATUS_SUCCESS;
}
+// Get KSPROPERTY_CAMERACONTROL_EXTENDED_IRTORCHMODE
+NTSTATUS
+CSensorSimulation::
+GetIRTorch(
+ _Inout_ CExtendedVidProcSetting *pTorch
+)
+{
+ PAGED_CODE();
+ KScopedMutex lock(m_SensorMutex);
+
+ *pTorch = m_IRTorch;
+ return STATUS_SUCCESS;
+}
+
+// Set KSPROPERTY_CAMERACONTROL_EXTENDED_IRTORCHMODE
+NTSTATUS
+CSensorSimulation::
+SetIRTorch(
+ _In_ CExtendedVidProcSetting *pTorch
+)
+{
+ PAGED_CODE();
+ KScopedMutex lock(m_SensorMutex);
+
+ // Only overwrite the IR Torch Flags and value.
+ m_IRTorch.Flags = pTorch->Flags;
+ m_IRTorch = pTorch->GetULONG();
+
+ return STATUS_SUCCESS;
+}
+
// Get KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE
NTSTATUS
CSensorSimulation::