Example #1
0
        private void DisconnectFromCamera()
        {
            if (videoObject != null)
            {
                videoObject.Disconnect();
                videoObject = null;
            }

            UpdateCameraState(false);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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;
 }
Example #7
0
 public Video(string progId)
 {
     m_ProgId = progId;
     m_ASCOMVideo = ASCOMClient.Instance.CreateVideo(m_ProgId);
 }
Example #8
0
 public void Dispose()
 {
     if (m_ASCOMVideo != null)
     {
         m_ASCOMVideo.Connected = false;
         ASCOMClient.Instance.ReleaseDevice(m_ASCOMVideo);
         m_ASCOMVideo = null;
     }
 }
Example #9
0
 public ThreadIsolatedVideoWrapper(string progId)
 {
     IsolatedAction(() => m_delegate = new VideoWrapper(new Video(progId)));
 }