parseFrame method

  1. @override
Chapter? parseFrame(
  1. RawFrame rawFrame
)
override

Implementation

@override
Chapter? parseFrame(RawFrame rawFrame) {
  final frameContent = rawFrame.frameContent;
  final elementId = frameContent.readString(checkEncoding: false);

  final int startTimeMilliseconds = frameContent.readInt();
  final int endTimeMilliseconds = frameContent.readInt();
  /*final int startByteOffset =*/ frameContent.readInt();
  /*final int endByteOffset =*/ frameContent.readInt();

  String? chapterName;
  String? chapterDescription;
  if (frameContent.remainingBytes > 0) {
    final subFrame1 = rawFrame.parseSubFrame();
    final subFrame2 = rawFrame.parseSubFrame();

    if (subFrame1 != null && subFrame1 is TextInformation) { // TIT2 or TIT3
      chapterName = subFrame1.frameName == 'TIT2' ? subFrame1.value : null;
      chapterDescription = subFrame1.frameName == 'TIT3' ? subFrame1.value : null;
    }
    if (subFrame2 != null && subFrame2 is TextInformation) { // TIT2 or TIT3
      chapterName = subFrame2.frameName == 'TIT2' ? subFrame2.value : chapterName;
      chapterDescription = subFrame2.frameName == 'TIT3' ? subFrame2.value : chapterDescription;
    }
  }

  return Chapter(elementId: elementId, title: chapterName ?? elementId, description: chapterDescription,
      startTimeMilliseconds: startTimeMilliseconds, endTimeMilliseconds: endTimeMilliseconds);
}