private void DisconnectFromCamera() { if (videoObject != null) { videoObject.Disconnect(); videoObject = null; } UpdateCameraState(false); }
private void ConnectToCamera() { var chooser = new ASCOM.Utilities.Chooser(); chooser.DeviceType = VIDEO_DEVICE_TYPE; string progId = chooser.Choose(VIDEO_DRIVER_NAME); if (!string.IsNullOrEmpty(progId)) { videoObject = VideoWrapper.CreateVideoWrapper(progId); try { Cursor = Cursors.WaitCursor; videoObject.Connected = true; if (videoObject.Connected) { if (videoObject.SupporstFreeStyleGain) { videoObject.SetFreeRangeGainIntervals(Settings.Default.FreeRangeGainIntervals); } imageWidth = videoObject.Width; imageHeight = videoObject.Height; pictureBox.Image = new Bitmap(imageWidth, imageHeight); ResizeVideoFrameTo(imageWidth, imageHeight); } } finally { Cursor = Cursors.Default; } pictureBox.Width = videoObject.Width; pictureBox.Height = videoObject.Height; UpdateCameraState(true); } }
private void TryConnectASCOMVideo(CallType callType = CallType.Async, CallbackAction callback = null, Control callbackUIControl = null) { IsolatedAction(() => { try { if (m_ConnectedVideo != null && m_ConnectedVideo.ProgId != Settings.Default.ASCOMProgIdVideo) { ASCOMClient.Instance.DisconnectVideo(m_ConnectedVideo); m_ConnectedVideo = null; } if (m_ConnectedVideo == null && !string.IsNullOrEmpty(Settings.Default.ASCOMProgIdVideo)) { m_ConnectedVideo = ASCOMClient.Instance.CreateVideo(Settings.Default.ASCOMProgIdVideo); } if (m_ConnectedVideo != null) { if (!m_ConnectedVideo.Connected) { OnVideoConnecting(); m_ConnectedVideo.Connected = true; OnVideoConnected(); } else OnVideoConnected(); VideoState state = m_ConnectedVideo.GetCurrentState(); OnVideoState(state); return state; } return null; } catch (Exception ex) { OnVideoErrored(); Trace.WriteLine(ex.GetFullStackTrace()); return ex; } }, callType, callback, callbackUIControl); }
private void DisconnectASCOMVideoCamera(CallType callType = CallType.Async, CallbackAction callback = null, Control callbackUIControl = null) { IsolatedAction(() => { try { if (m_ConnectedVideo != null) { ASCOMClient.Instance.DisconnectVideo(m_ConnectedVideo); m_ConnectedVideo = null; } } catch (Exception ex) { OnVideoErrored(); Trace.WriteLine(ex.GetFullStackTrace()); return ex; } OnVideoDisconnected(); return null; }, callType, callback, callbackUIControl); }
public void DisconnectVideo(IVideoWrapper video) { try { if (TraceSwitchASCOMClient.TraceVerbose) Trace.WriteLine(string.Format("OccuRec: ASCOMClient::DisconnectVideo('{0}')", video.UniqueId)); if (video.Connected) video.Connected = false; } catch (Exception ex) { if (TraceSwitchASCOMClient.TraceError) Trace.WriteLine(ex); } ReleaseDevice(video); }
internal void SetVideoObject(IVideoWrapper wrapper) { videoObject = wrapper; }
public Video(string progId) { m_ProgId = progId; m_ASCOMVideo = ASCOMClient.Instance.CreateVideo(m_ProgId); }
public void Dispose() { if (m_ASCOMVideo != null) { m_ASCOMVideo.Connected = false; ASCOMClient.Instance.ReleaseDevice(m_ASCOMVideo); m_ASCOMVideo = null; } }
public ThreadIsolatedVideoWrapper(string progId) { IsolatedAction(() => m_delegate = new VideoWrapper(new Video(progId))); }