public void StartCapture(object sender, EventArgs ea)
        {
            // Instead of using a predefined capture program, we add shots on the fly
            if (this.CaptureMode == CaptureMode.Stream || this.CaptureMode == CaptureMode.Sweeping)
            {
                ShotDefinition videoShot = new DS4VideoShotDefintion();

                _session.AddShot(videoShot);
            }
            else
            {
                _session.AddShot(ShotDefinition.DEFAULT);
            }

            _sessionManager.PrepareForNextShot();

            if (this.CaptureMode == CaptureMode.Sweeping)
            {
                _logger.info("Sweeping Start...");
                try
                {
                    _sessionManager.SweepingStart();
                }
                catch (Exception e)
                {
                    _logger.info("Unexpected exception: " + e.Message);
                    throw e;
                }
            }
            else
            {
                _sessionManager.CaptureShot(this.CaptureMode);
            }
        }