private void CameraResolutionComboBox_SelectedIndexChanged(object sender, EventArgs e) { // const int VIDEOWIDTH = 1024; // Depends on video device caps // const int VIDEOHEIGHT = 480; // Depends on video device caps // const int VIDEOWIDTH = 1280; // Depends on video device caps // const int VIDEOHEIGHT = 720; // Depends on video device caps // const int VIDEOBITSPERPIXEL = 24; // BitsPerPixel values determined by device Sardauscan.Hardware.DSCameraProxy.Resolution res = (Sardauscan.Hardware.DSCameraProxy.Resolution) this.CameraResolutionComboBox.SelectedItem; DSCameraInfo camInfo = (DSCameraInfo)this.CameraComboBox.SelectedItem; DisposeCamera(); if (res != null && camInfo != null) { try { Camera = new DSCameraProxy(camInfo, res, null /*PreviewPanel*/); Settings.Get <Settings>().Write(Settings.LAST_USED, Settings.CAMERA_RESOLUTION, res.ToString()); Settings.Get <Settings>().Write(Settings.LAST_USED, Settings.CAMERA_DEVICE, camInfo.UniqueId); Proxy = Camera; this.PreviewControl.Proxy = Proxy; } catch { } } }
public void DisposeCamera() { Settings.UnRegisterInstance(Camera); if (Camera != null) Camera.Dispose(); Camera = null; }
public void DisposeCamera() { Settings.UnRegisterInstance(Camera); if (Camera != null) { Camera.Dispose(); } Camera = null; }
void SaveProxyConfig() { if (Proxy != null) { DSCameraProxy cam = (DSCameraProxy)Proxy; using (StreamWriter sw = File.CreateText(ConfigPath)) { using (XmlWriter writer = XmlWriter.Create(sw)) { writer.WriteStartDocument(); writer.WriteStartElement("Config"); writer.WriteStartAttribute("Type"); writer.WriteValue(cam.GetType().ToString()); writer.WriteEndAttribute(); writer.WriteStartAttribute("HardwareId"); writer.WriteValue(cam.HardwareId); writer.WriteEndAttribute(); List <DirectShowLib.CameraControlProperty> list = Enum.GetValues(typeof(DirectShowLib.CameraControlProperty)).Cast <DirectShowLib.CameraControlProperty>().ToList(); foreach (DirectShowLib.CameraControlProperty prop in list) { DSCameraProxy.ControlPropertyInfo info = cam.GetControlPropertyInfo(prop, true); if (info != null) { writer.WriteStartElement("Prop"); writer.WriteStartAttribute("Name"); writer.WriteValue(prop.ToString()); writer.WriteEndAttribute(); writer.WriteStartAttribute("Value"); writer.WriteValue(info.Value); writer.WriteEndAttribute(); writer.WriteEndElement(); } } writer.WriteEndDocument(); } } //TODO // SAVE TO Program.HardwareConfigPath\[PROXYTYPE].HARDWARE.XML } }
void LoadProxyConfig() { if (Proxy != null) { try { DSCameraProxy cam = (DSCameraProxy)Proxy; XmlDocument doc = new XmlDocument(); doc.Load(ConfigPath); XmlNode node = doc.SelectSingleNode("Config"); if (node != null) { if (node.Attributes["Type"] != null) { string typestr = node.Attributes["Type"].Value; if (Proxy.GetType() != Type.GetType(typestr)) { return; } if (Proxy.HardwareId != node.Attributes["HardwareId"].Value) { return; } XmlNodeList proplist = node.SelectNodes("Prop"); foreach (XmlNode popNode in proplist) { DirectShowLib.CameraControlProperty prop = (DirectShowLib.CameraControlProperty)Enum.Parse(typeof(DirectShowLib.CameraControlProperty), popNode.Attributes["Name"].Value); cam.SetControlProperty(prop, Int32.Parse(popNode.Attributes["Value"].Value)); } } } } catch { } } }
private void CameraResolutionComboBox_SelectedIndexChanged(object sender, EventArgs e) { // const int VIDEOWIDTH = 1024; // Depends on video device caps // const int VIDEOHEIGHT = 480; // Depends on video device caps // const int VIDEOWIDTH = 1280; // Depends on video device caps // const int VIDEOHEIGHT = 720; // Depends on video device caps // const int VIDEOBITSPERPIXEL = 24; // BitsPerPixel values determined by device Sardauscan.Hardware.DSCameraProxy.Resolution res = (Sardauscan.Hardware.DSCameraProxy.Resolution)this.CameraResolutionComboBox.SelectedItem; DSCameraInfo camInfo = (DSCameraInfo)this.CameraComboBox.SelectedItem; DisposeCamera(); if (res != null && camInfo != null) { try { Camera = new DSCameraProxy(camInfo, res, null/*PreviewPanel*/); Settings.Get<Settings>().Write(Settings.LAST_USED, Settings.CAMERA_RESOLUTION, res.ToString()); Settings.Get<Settings>().Write(Settings.LAST_USED, Settings.CAMERA_DEVICE, camInfo.UniqueId); Proxy = Camera; this.PreviewControl.Proxy = Proxy ; } catch { } } }