decode method
Decodes bytes, returning the keys that completed. Incomplete trailing
sequences are retained for the next call.
Implementation
List<KeyEvent> decode(List<int> bytes) {
_pending.addAll(bytes);
final events = <KeyEvent>[];
while (_pending.isNotEmpty) {
final consumed = _decodeOne(events);
if (consumed == 0) break; // need more bytes
_pending.removeRange(0, consumed);
}
return events;
}