public void AreEqualDiffType() { var gains = new AVCaptureWhiteBalanceGains(2.3f, 3f, 90f); var str = new NSString("Foo"); Assert.False(gains.Equals((object)str)); }
public void AreEqualFalseTest() { var gains1 = new AVCaptureWhiteBalanceGains(2.3f, 3f, 90f); var gains2 = new AVCaptureWhiteBalanceGains(gains1.RedGain * 2, gains1.GreenGain * 2, gains1.BlueGain * 2); Assert.False(gains1 == gains2, "gains1 == gains2"); Assert.False(gains1.Equals(gains2), "gains1.Equals (gains2)"); Assert.True(gains1 != gains2, "gains1 != gains2"); }
public void ConstructorTest() { float red = 2.3f; float green = 30.90f; float blue = 30.90f; var gains = new AVCaptureWhiteBalanceGains(red, green, blue); Assert.AreEqual(red, gains.RedGain, "Wrong RedGain value."); Assert.AreEqual(green, gains.GreenGain, "Wrong GreenGain value."); Assert.AreEqual(blue, gains.BlueGain, "Wrong BlueGain value."); }
public void AreEqualTrueTest() { float red = 2.3f; float green = 30.90f; float blue = 30.90f; var gains1 = new AVCaptureWhiteBalanceGains(red, green, blue); var gains2 = new AVCaptureWhiteBalanceGains(red, green, blue); Assert.True(gains1 == gains2, "gains1 == gains2"); Assert.True(gains1.Equals(gains2), "gains1.Equals (gains2)"); Assert.False(gains1 != gains2, "gains1 != gains2"); }
AVCaptureWhiteBalanceGains NomralizeGains(AVCaptureWhiteBalanceGains gains) { gains.RedGain = Math.Max(1, gains.RedGain); gains.BlueGain = Math.Max(1, gains.BlueGain); gains.GreenGain = Math.Max(1, gains.GreenGain); float maxGain = ThisApp.CaptureDevice.MaxWhiteBalanceGain; gains.RedGain = Math.Min(maxGain, gains.RedGain); gains.BlueGain = Math.Min(maxGain, gains.BlueGain); gains.GreenGain = Math.Min(maxGain, gains.GreenGain); return(gains); }
/* * Setting up camera setting for EOSpec: * Focus: 0.3 locked : Empirically chosen for set distance to current version of EOSpec * ISO : Avg between max and min ISO of device * Exposure : Empirically set to 1/10 * RGB gain: R and G normalized using max Gain values, * however Blue is normalized using min Gain value due to it saturating more than green and red channels (my phone: 1.858154 , 1 , 1) */ void ConfigureCameraForDevice(AVCaptureDevice device) { var error = new NSError(); if (device.IsFocusModeSupported(AVCaptureFocusMode.ContinuousAutoFocus)) { device.LockForConfiguration(out error); device.FocusMode = AVCaptureFocusMode.Locked; device.SetFocusModeLocked((float)0.3, null); Console.WriteLine("devidce device.FocusMode: " + device.FocusMode); device.UnlockForConfiguration(); } if (device.IsExposureModeSupported(AVCaptureExposureMode.ContinuousAutoExposure)) { device.LockForConfiguration(out error); device.ExposureMode = AVCaptureExposureMode.Custom; var iso = (device.ActiveFormat.MaxISO + device.ActiveFormat.MinISO) / 2; CMTime exposureTime = new CMTime(1, 10); device.LockExposure(exposureTime, iso, null); Console.WriteLine("deviceexposure: " + device.ExposureDuration + " = " + exposureTime + " iso: " + iso); device.UnlockForConfiguration(); //Setting RGB gains using WhiteBalance device.LockForConfiguration(out error); AVCaptureWhiteBalanceGains gains = device.DeviceWhiteBalanceGains; //normalizign Gains gains.RedGain = Math.Max(1, gains.RedGain); gains.GreenGain = Math.Max(1, gains.GreenGain); gains.BlueGain = Math.Min(1, gains.BlueGain); float maxGain = device.MaxWhiteBalanceGain; gains.RedGain = Math.Min(maxGain, gains.RedGain); gains.GreenGain = Math.Min(maxGain, gains.GreenGain); gains.BlueGain = Math.Min(maxGain, gains.BlueGain); Console.WriteLine("devidce device.WhiteBalanceMode gains RGB: " + gains.RedGain + " " + gains.GreenGain + " " + gains.BlueGain); device.SetWhiteBalanceModeLockedWithDeviceWhiteBalanceGains(gains, null); device.UnlockForConfiguration(); } }
AVCaptureWhiteBalanceGains NomralizeGains (AVCaptureWhiteBalanceGains gains) { gains.RedGain = Math.Max (1, gains.RedGain); gains.BlueGain = Math.Max (1, gains.BlueGain); gains.GreenGain = Math.Max (1, gains.GreenGain); float maxGain = ThisApp.CaptureDevice.MaxWhiteBalanceGain; gains.RedGain = Math.Min (maxGain, gains.RedGain); gains.BlueGain = Math.Min (maxGain, gains.BlueGain); gains.GreenGain = Math.Min (maxGain, gains.GreenGain); return gains; }
void SetWhiteBalanceGains (AVCaptureWhiteBalanceGains gains) { NSError error = null; if (VideoDevice.LockForConfiguration (out error)) { AVCaptureWhiteBalanceGains newGains = NormalizeGains (gains); // Conversion can yield out-of-bound values, cap to limits VideoDevice.SetWhiteBalanceModeLockedWithDeviceWhiteBalanceGains (newGains, null); VideoDevice.UnlockForConfiguration (); } else { Console.WriteLine ($"Could not lock device for configuration: {error}"); } }
AVCaptureWhiteBalanceGains Settings(AVCaptureWhiteBalanceGains statusDev) { statusDev.RedGain = Math.Max(1, statusDev.RedGain); statusDev.BlueGain = Math.Max(1, statusDev.BlueGain); statusDev.GreenGain = Math.Max(1, statusDev.GreenGain); }