public CaptureController(string baseDirectory, SmithersLogger logger)
        {
            _baseDirectory = baseDirectory;
            _logger        = logger;

            try
            {
                _reader = new FrameReader(_pool, logger);
            }
            catch (Smithers.Reading.FrameData.ScannerNotFoundException e)
            {
                _logger.info("Failed to initizale camera" + e.Message);
                throw e;
            }
            StartNewSession();
            _sessionManager  = new SmithersDS4.Sessions.SessionManager <DS4Session, DS4Meta, Shot <ShotDefinition, DS4SavedItem>, ShotDefinition, DS4SavedItem>(_session);
            this.CaptureMode = CaptureMode.Sweeping;

            _sessionManager.AttachToReader(_reader);
            //_reader.FrameArrived += _sessionManager.FrameArrived;
            _reader.FrameArrived += _frameRateReporter.FrameArrived;
            //_reader.StartCapture += StartCapture;

            try
            {
                _reader.StartAsync();
            }
            catch (Smithers.Reading.FrameData.ScannerNotFoundException e)
            {
                _logger.info(e.Message);
            }
        }
        public CaptureController(string baseDirectory, SmithersLogger logger)
        {
            _baseDirectory = baseDirectory;
            _logger = logger;

            try
            {
                _reader = new FrameReader(_pool, logger);
            }
            catch (Smithers.Reading.FrameData.ScannerNotFoundException e)
            {
                _logger.info("Failed to initizale camera" + e.Message);
                throw e;
            }
            StartNewSession();
            _sessionManager = new SmithersDS4.Sessions.SessionManager<DS4Session, DS4Meta, Shot<ShotDefinition, DS4SavedItem>, ShotDefinition, DS4SavedItem>(_session);
            this.CaptureMode = CaptureMode.Sweeping;

            _sessionManager.AttachToReader(_reader);
            //_reader.FrameArrived += _sessionManager.FrameArrived;
            _reader.FrameArrived += _frameRateReporter.FrameArrived;
            //_reader.StartCapture += StartCapture;

            try
            {
                _reader.StartAsync();
            }
            catch (Smithers.Reading.FrameData.ScannerNotFoundException e)
            {
                _logger.info(e.Message);
            }
        }