vid_us_data_writer.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import 'dart:typed_data';
  2. ///Not used for now.
  3. class VidUsDataWriter {
  4. final BytesBuilder _builder = BytesBuilder();
  5. Uint8List get data => _builder.toBytes();
  6. void writeString(String value) {
  7. var data = value.codeUnits;
  8. var length = data.length * 2;
  9. writeInt(length);
  10. for (var codeUnit in data) {
  11. _builder.addByte(codeUnit & 0xff);
  12. _builder.addByte((codeUnit >> 8) & 0xff);
  13. }
  14. }
  15. void writeInt(int value) {
  16. var data = Uint8List(4);
  17. data.buffer.asByteData().setInt32(0, value, Endian.little);
  18. _builder.add(data);
  19. }
  20. void writeInt16(int value) {
  21. var data = Uint8List(2);
  22. data.buffer.asByteData().setInt16(0, value, Endian.little);
  23. _builder.add(data);
  24. }
  25. void writeInt64(int value) {
  26. var data = Uint8List(8);
  27. data.buffer.asByteData().setInt64(0, value, Endian.little);
  28. _builder.add(data);
  29. }
  30. void writeFloat(double value) {
  31. var data = Uint8List(4);
  32. data.buffer.asByteData().setFloat32(0, value, Endian.little);
  33. _builder.add(data);
  34. }
  35. void writeDouble(double value) {
  36. var data = Uint8List(8);
  37. data.buffer.asByteData().setFloat64(0, value, Endian.little);
  38. _builder.add(data);
  39. }
  40. void writeBool(bool value) {
  41. _builder.addByte(value ? 1 : 0);
  42. }
  43. void writeByte(int value) {
  44. _builder.addByte(value);
  45. }
  46. void writeBytes(Uint8List value) {
  47. writeInt(value.length);
  48. _builder.add(value);
  49. }
  50. void writeLongs(Int64List value) {
  51. _builder.add(value.buffer.asUint8List());
  52. }
  53. }