public void Serialize() { InputRemoting.Message message1 = new InputRemoting.Message { participantId = 1, type = InputRemoting.MessageType.NewEvents, data = new byte[] { 1, 2, 3, 4, 5 }, }; var bytes = MessageSerializer.Serialize(ref message1); Assert.That(bytes, Is.Not.Null); Assert.That(bytes, Has.Length.GreaterThan(0)); MessageSerializer.Deserialize(bytes, out var message2); Assert.That(message2.participantId, Is.EqualTo(message1.participantId)); Assert.That(message2.type, Is.EqualTo(message1.type)); Assert.That(message2.data, Is.EqualTo(message1.data)); }
public static unsafe void Process(InputRemoting.Message msg, int deviceId, FourCC type) { fixed(byte *dataPtr = msg.data) { var dataEndPtr = new IntPtr(dataPtr + msg.data.Length); var eventCount = 0; var eventPtr = new InputEventPtr((InputEvent *)dataPtr); while (eventPtr.data.ToInt64() < dataEndPtr.ToInt64()) { eventPtr.deviceId = deviceId; InputSystem.QueueEvent(eventPtr); ++eventCount; eventPtr = eventPtr.Next(); } InputSystem.Update(); } }