startRecording method

Implementation

Future<CockpitRecordingSession> startRecording(
  CockpitRecordingRequest request,
) async {
  if (_recordingStarting ||
      _performanceStarting ||
      _activePerformanceSession != null ||
      performanceCollector.isRunning) {
    throw StateError(
      'Screen recording cannot overlap a performance capture.',
    );
  }
  _recordingStarting = true;
  try {
    final session = await nativeRecording.startRecording(request: request);
    _activeRecordingSession = session.state == CockpitRecordingState.recording
        ? session
        : null;
    return session;
  } finally {
    _recordingStarting = false;
  }
}