public ControlPropertyInfo GetControlPropertyInfo(CameraControlProperty prop, bool getCurrentValue) { IAMCameraControl icc = VidControl as IAMCameraControl; if (icc != null) { ControlPropertyInfo ret = new ControlPropertyInfo(); if (0 == icc.GetRange(prop, out ret.Min, out ret.Max, out ret.Delta, out ret.Default, out ret.Flags)) { if (!getCurrentValue) { return(ret); } if (0 == icc.Get(prop, out ret.Value, out ret.ValueFlags)) { return(ret); } } } return(null); }
public void SetControlProperty(CameraControlProperty prop, int value) { IAMCameraControl icc = VidControl as IAMCameraControl; if (icc != null) { ControlPropertyInfo info = GetControlPropertyInfo(prop, false); if (info != null) { if (int.MaxValue == value) { icc.Set(prop, 0, CameraControlFlags.Auto); } else { if (info.IsInRange(value)) { icc.Set(prop, value, CameraControlFlags.Manual); } } } Settings.Get <Settings>().Write(Settings.CAMERA, prop.ToString(), value); } }