Esempio n. 1
0
        public void StartCapture()
        {
            if (_captureWorker != null)
            {
                return;
            }

            if (_version == -1)
            {
                _version = _mainWindow.VersioningProvider.Api.Tags.Length;
            }
            _commitSha = null;

            //_db = _mainWindow.VersioningProvider.GetDatabaseForVersion(_version);
            _db = _mainWindow.VersioningProvider.GetDatabaseFromLocalFiles();

            try
            {
                ClearCapture(true);

                _captureWorker = new MachinaCaptureWorker(this, _mainWindow.CaptureMode, _mainWindow.CaptureFlags);
                _captureThread = new Thread(_captureWorker.Run);

                _captureThread.Start();

                UpdateInfoLabel();
                ChangeTitle(_currentXmlFile);

                _wasCapturedMs = _mainWindow.DontUsePacketTimestamp.IsChecked;
            }
            catch (Exception e)
            {
                new ExtendedErrorView("Failed to initialize MachinaCaptureWorker. Try switching your capture mode.",
                                      e.ToString(), "Error").ShowDialog();
                _captureWorker = null;
                _captureThread = null;
            }
        }
Esempio n. 2
0
        public void StopCapture()
        {
            if (_captureWorker == null)
            {
                return;
            }

            try
            {
                _captureWorker.Stop();
                _captureThread.Join();
                _captureWorker = null;

                UpdateInfoLabel();
                ChangeTitle(_currentXmlFile);
            }
            catch (Exception e)
            {
                new ExtendedErrorView("Failed to shut down MachinaCaptureWorker. Try switching your capture mode.",
                                      e.ToString(), "Error").ShowDialog();
                _captureWorker = null;
                _captureThread = null;
            }
        }