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 ApplicationController(string baseDirectory)
        {
            _logger            = new SmithersLogger(baseDirectory);
            _captureController = new CaptureController(baseDirectory, _logger);
            _uploadManager     = new UploadManager();

            //Read credential into settings
            try
            {
                _loadCredentials(baseDirectory);
            }
            catch (InvalidDataException e)
            {
                _logger.info("Bad Credentials format: " + e.Message);
                return;
            }
        }