startRecording method

Future<CockpitRecordingSession> startRecording({
  1. required CockpitRecordingRequest request,
})

Implementation

Future<CockpitRecordingSession> startRecording({
  required CockpitRecordingRequest request,
}) async {
  final payload = await _channel
      .invokeMethod<Object?>('startRecording', <String, Object?>{
        'purpose': request.purpose.name,
        'name': request.name,
        'mode': request.mode.jsonValue,
        'layer': request.layer?.jsonValue,
        'allowFallback': request.allowFallback,
        'attachToStep': request.attachToStep,
        'relativePath': cockpitRecordingRelativePathFor(request),
      });
  if (payload is! Map<Object?, Object?>) {
    throw StateError('Start recording returned an invalid payload.');
  }

  final state = payload['state'] == null
      ? CockpitRecordingState.recording
      : CockpitRecordingState.fromJson(payload['state']);
  return CockpitRecordingSession(request: request, state: state);
}