parse method

void parse(
  1. List<int> bytes,
  2. int timestamp
)

Feeds bytes to the splitter, stamping any message they complete with timestamp.

Implementation

void parse(List<int> bytes, int timestamp) {
  for (final byte in bytes) {
    final b = byte & 0xFF;

    // Rule 1: System Real-Time, before anything else can touch state.
    if (b >= 0xF8) {
      if (b != 0xF9 && b != 0xFD) {
        onMessage(Uint8List.fromList(<int>[b]), timestamp);
      }
      continue;
    }

    if (b >= 0x80) {
      _handleStatus(b, timestamp);
    } else {
      _handleData(b, timestamp);
    }
  }
}