/// <summary> /// Will skip to start of next block based on /// zero terminators /// </summary> public void SkipToNext(Events.UnknownEventInfo unknownEventInfo) { short lookingForTerminator = _bytesLeft; do { _bytesLeft = lookingForTerminator; byte[] buffer = new byte[_bytesLeft]; if (ReadAll(_input, buffer, 0, _bytesLeft) != _bytesLeft) { throw new EndOfStreamException(); } unknownEventInfo.Add(buffer); _bytesLeft = 0; lookingForTerminator = ReadBytesLeft(); } while (lookingForTerminator != 0); }
private void ProcessEvent(long eventType) { Events.EventInfo eventInfo; switch (eventType) { case Events.ApplicationInfo.Type: eventInfo = new Events.ApplicationInfo(); break; case Events.DeviceInfo.Type: eventInfo = new Events.DeviceInfo(); break; case Events.FontInfo.Type: eventInfo = new Events.FontInfo(); break; case Events.IdleInfo.Type: eventInfo = new Events.IdleInfo(); break; case Events.KeyInfo.Type: eventInfo = new Events.KeyInfo(); break; case Events.ResourceInfo.Type: eventInfo = new Events.ResourceInfo(); break; case Events.ApplicationParametersInfo.Type: eventInfo = new Events.ApplicationParametersInfo(); break; case Events.DisplayInfo.Type: eventInfo = new Events.DisplayInfo(); break; default: eventInfo = new Events.UnknownEventInfo(eventType); break; } eventInfo.Read(_reader); PostEvent(eventInfo); }