AVCamManual.AVCamManualCameraViewController.ConfigureManualHUD C# (CSharp) Метод

ConfigureManualHUD() приватный Метод

private ConfigureManualHUD ( ) : void
Результат void
		void ConfigureManualHUD ()
		{
			// Manual focus controls
			focusModes = new AVCaptureFocusMode [] { AVCaptureFocusMode.ContinuousAutoFocus, AVCaptureFocusMode.Locked };

			FocusModeControl.Enabled = VideoDevice != null;
			FocusModeControl.SelectedSegment = Array.IndexOf (focusModes, VideoDevice.FocusMode);
			foreach (var mode in focusModes)
				FocusModeControl.SetEnabled (VideoDevice.IsFocusModeSupported (mode), Array.IndexOf (focusModes, mode));

			LensPositionSlider.MinValue = 0;
			LensPositionSlider.MaxValue = 1;
			LensPositionSlider.Value = VideoDevice.LensPosition;
			LensPositionSlider.Enabled = (VideoDevice != null && VideoDevice.FocusMode == AVCaptureFocusMode.Locked && VideoDevice.IsFocusModeSupported (AVCaptureFocusMode.Locked));

			// Manual exposure controls
			exposureModes = new AVCaptureExposureMode [] {
				AVCaptureExposureMode.AutoExpose,
				AVCaptureExposureMode.Locked,
				AVCaptureExposureMode.Custom
			};

			ExposureModeControl.Enabled = VideoDevice != null;
			ExposureModeControl.SelectedSegment = Array.IndexOf (exposureModes, VideoDevice.ExposureMode);
			foreach (var mode in exposureModes)
				ExposureModeControl.SetEnabled (VideoDevice.IsExposureModeSupported (mode), Array.IndexOf (exposureModes, mode));

			// Use 0-1 as the slider range and do a non-linear mapping from the slider value to the actual device exposure duration
			ExposureDurationSlider.MinValue = 0;
			ExposureDurationSlider.MaxValue = 1;
			double exposureDurationSeconds = VideoDevice.ExposureDuration.Seconds;
			double minExposureDurationSeconds = Math.Max (VideoDevice.ActiveFormat.MinExposureDuration.Seconds, ExposureMinDuration);
			double maxExposureDurationSeconds = VideoDevice.ActiveFormat.MaxExposureDuration.Seconds;
			// Map from duration to non-linear UI range 0-1
			double p = (exposureDurationSeconds - minExposureDurationSeconds) / (maxExposureDurationSeconds - minExposureDurationSeconds); // Scale to 0-1
			ExposureDurationSlider.Value = (float)Math.Pow (p, 1 / ExposureDurationPower); // Apply inverse power
			ExposureDurationSlider.Enabled = (VideoDevice != null && VideoDevice.ExposureMode == AVCaptureExposureMode.Custom);

			ISOSlider.MinValue = VideoDevice.ActiveFormat.MinISO;
			ISOSlider.MaxValue = VideoDevice.ActiveFormat.MaxISO;
			ISOSlider.Value = VideoDevice.ISO;
			ISOSlider.Enabled = (VideoDevice.ExposureMode == AVCaptureExposureMode.Custom);

			ExposureTargetBiasSlider.MinValue = VideoDevice.MinExposureTargetBias;
			ExposureTargetBiasSlider.MaxValue = VideoDevice.MaxExposureTargetBias;
			ExposureTargetBiasSlider.Value = VideoDevice.ExposureTargetBias;
			ExposureTargetBiasSlider.Enabled = (VideoDevice != null);

			ExposureTargetOffsetSlider.MinValue = VideoDevice.MinExposureTargetBias;
			ExposureTargetOffsetSlider.MaxValue = VideoDevice.MaxExposureTargetBias;
			ExposureTargetOffsetSlider.Value = VideoDevice.ExposureTargetOffset;
			ExposureTargetOffsetSlider.Enabled = false;

			// Manual white balance controls
			whiteBalanceModes = new AVCaptureWhiteBalanceMode [] {
				AVCaptureWhiteBalanceMode.ContinuousAutoWhiteBalance,
				AVCaptureWhiteBalanceMode.Locked
			};

			WhiteBalanceModeControl.Enabled = (VideoDevice != null);
			WhiteBalanceModeControl.SelectedSegment = Array.IndexOf (whiteBalanceModes, VideoDevice.WhiteBalanceMode);
			foreach (var mode in whiteBalanceModes)
				WhiteBalanceModeControl.SetEnabled (VideoDevice.IsWhiteBalanceModeSupported (mode), Array.IndexOf (whiteBalanceModes, mode));

			AVCaptureWhiteBalanceGains whiteBalanceGains = VideoDevice.DeviceWhiteBalanceGains;
			AVCaptureWhiteBalanceTemperatureAndTintValues whiteBalanceTemperatureAndTint = VideoDevice.GetTemperatureAndTintValues (whiteBalanceGains);

			TemperatureSlider.MinValue = 3000;
			TemperatureSlider.MaxValue = 8000;
			TemperatureSlider.Value = whiteBalanceTemperatureAndTint.Temperature;
			TemperatureSlider.Enabled = (VideoDevice != null && VideoDevice.WhiteBalanceMode == AVCaptureWhiteBalanceMode.Locked);

			TintSlider.MinValue = -150;
			TintSlider.MaxValue = 150;
			TintSlider.Value = whiteBalanceTemperatureAndTint.Tint;
			TintSlider.Enabled = (VideoDevice != null && VideoDevice.WhiteBalanceMode == AVCaptureWhiteBalanceMode.Locked);

			LensStabilizationControl.Enabled = (VideoDevice != null);
			LensStabilizationControl.SelectedSegment = 0;
			LensStabilizationControl.SetEnabled (photoOutput.IsLensStabilizationDuringBracketedCaptureSupported, 1);

			RawControl.Enabled = (VideoDevice != null);
			RawControl.SelectedSegment = 0;
		}