save method

Future<void> save(
  1. String path
)

Implementation

Future<void> save(String path) async {
  final tarEncoder = TarEncoder();
  OutputStream stream = OutputStream();
  tarEncoder.start(stream);

  final basicInfoData = basicInfo.writeToBuffer();
  tarEncoder.add(ArchiveFile(
      TarKey.playbackBasicInfo, basicInfoData.length, basicInfoData));

  if (log != null) {
    tarEncoder.add(ArchiveFile(TarKey.log, log!.length, log));
  }

  for (int i = 0; i < matchErrors.length; i++) {
    final error = matchErrors[i];
    final mp = error.matchPosition.toMatchPosition();
    final mpData = mp.writeToBuffer();
    tarEncoder.add(ArchiveFile(
        '${TarKey.matchPositionPrefix}$i', mpData.length, mpData));
    tarEncoder.add(ArchiveFile('${TarKey.recorderImgPrefix}$i',
        error.imageOfRecorder.length, error.imageOfRecorder));
    tarEncoder.add(ArchiveFile('${TarKey.playerImgPrefix}$i',
        error.imageOfPlayer.length, error.imageOfPlayer));
  }

  tarEncoder.finish();

  final file = File(path);
  await file.writeAsBytes(stream.getBytes());
}