getVouchers static method

List<MobiVoucher> getVouchers(
  1. MobiData data
)

Implementation

static List<MobiVoucher> getVouchers(MobiData data) {
  final offset = data.mobiHeader!.drmOffset!;
  final count = data.mobiHeader!.drmCount!;
  final size = data.mobiHeader!.drmSize!;

  if (offset == mobiNotSet || count == 0) {
    return [];
  }

  final rec = data.mobiPdbRecord!;
  if (offset + size > rec.size!) {
    return [];
  }
  final buffer = MobiBuffer(rec.data!, offset);
  List<MobiVoucher> drms =
      List.generate(data.mobiHeader!.drmCount!, (int i) => MobiVoucher());
  for (int i = 0; i < count; i++) {
    drms[i].verification = buffer.getInt32();
    drms[i].size = buffer.getInt32();
    drms[i].type = buffer.getInt32();
    drms[i].checksum = buffer.getInt32();
    buffer.seek(3);
    drms[i].cookie = buffer.getStringAsByte(cookieSize);
  }
  return drms;
}