setIntExtended method

void setIntExtended(
  1. int value,
  2. int numOfBytes, {
  3. Endian endianness = Endian.little,
})

Insert the required bytes starting from offset

Implementation

void setIntExtended(int value, int numOfBytes,
    {Endian endianness = Endian.little}) {
  if (Statics.isWebInt) {
    var subList = Int64(value).toBytes().sublist(0, numOfBytes);
    if (endianness == Endian.little) {
      byteList.setRange(offset, offset + numOfBytes, subList);
    } else {
      byteList.setRange(offset, offset + numOfBytes, subList.reversed);
    }
  } else {
    var byteListTmp = Uint8List(8);
    var byteArrayTmp = _getByteData(byteListTmp);
    if (numOfBytes == 3) {
      byteArrayTmp.setInt64(0, value, endianness);
    } else if (numOfBytes == 5) {
      byteArrayTmp.setInt64(0, value, endianness);
    } else if (numOfBytes == 7) {
      byteArrayTmp.setInt64(0, value, endianness);
    } else {
      throw Exception('Unsupported num of bytes: $numOfBytes');
    }
    if (endianness == Endian.little) {
      byteList.setRange(offset, offset + numOfBytes, byteListTmp);
    } else {
      byteList.setRange(
          offset, offset + numOfBytes, byteListTmp, 8 - numOfBytes);
    }
  }
}