public void Start() { _restServer.Start(); // start streaming server _streamingServer.Start(); _playbackService.FrameAvailable += _streamingServer.Send; _recordService.FrameAvailable += _streamingServer.Send; foreach (var restRouter in _restRouters) { restRouter.OnGetSessionCalled += HandleOnGetSessionCalled; restRouter.OnPlayCalled += HandleOnPlayCalled; restRouter.OnPausePlaybackCalled += HandleOnPausePlaybackCalled; restRouter.OnStopPlaybackCalled += HandleOnStopPlaybackCalled; restRouter.OnJumpPlaybackCalled += HandleOnJumpPlaybackCalled; restRouter.OnRecordSessionCalled += HandleOnRecordSessionCalled; restRouter.OnStopRecordCalled += HandleOnStopRecordCalled; } switch (_startMode) { case "record": StartRecord(); break; case "playback": // nothing to to without session to play break; } }