public void Exit()
        {
            switch (_currentMode)
            {
            case ApplicationMode.Live:
                _recordService.Stop();
                break;

            case ApplicationMode.Play:
                _playbackService.Stop();
                break;

            case ApplicationMode.Waiting:
                Logger.Info("All modes already stopped");
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            _restServer.Stop();
            _streamingServer.Stop();

            _playbackService.FrameAvailable -= _streamingServer.Send;
            _recordService.FrameAvailable   -= _streamingServer.Send;

            Logger.Info("Application exited");
        }