encode method

Uint8List encode()

Encodes the CAF file to a Uint8List.

Implementation

Uint8List encode() {
  final Uint8List encodedFileHeader = fileHeader.encode();
  final List<Uint8List> encodedChunks =
      chunks.map((Chunk chunk) => chunk.encode()).toList();

  int totalLength = encodedFileHeader.length;
  for (final Uint8List encodedChunk in encodedChunks) {
    totalLength += encodedChunk.length;
  }

  final Uint8List data = Uint8List(totalLength);

  int offset = 0;
  data.setRange(offset, offset + encodedFileHeader.length, encodedFileHeader);
  offset += encodedFileHeader.length;

  for (final Uint8List encodedChunk in encodedChunks) {
    data.setRange(offset, offset + encodedChunk.length, encodedChunk);
    offset += encodedChunk.length;
  }

  return data;
}