public unsafe void ReportInputDeviceRemoved(int deviceId) { var removeEvent = DeviceRemoveEvent.Create(deviceId); var removeEventPtr = UnsafeUtility.AddressOf(ref removeEvent); QueueEvent(new IntPtr(removeEventPtr)); }
public void Events_EventBuffer_CanBeReset() { var gamepad = InputSystem.AddDevice <Gamepad>(); unsafe { using (var buffer = new InputEventBuffer()) { buffer.AppendEvent(DeviceConfigurationEvent.Create(gamepad.id, 123).ToEventPtr()); buffer.AppendEvent(DeviceConfigurationEvent.Create(gamepad.id, 234).ToEventPtr()); var events = buffer.ToArray(); Assert.That(events, Has.Length.EqualTo(2)); Assert.That(events[0].type, Is.EqualTo(new FourCC(DeviceConfigurationEvent.Type))); Assert.That(events[1].type, Is.EqualTo(new FourCC(DeviceConfigurationEvent.Type))); buffer.Reset(); Assert.That(buffer.eventCount, Is.Zero); buffer.AppendEvent(DeviceRemoveEvent.Create(gamepad.id, 432).ToEventPtr()); events = buffer.ToArray(); Assert.That(events.Length, Is.EqualTo(1)); Assert.That(events[0].type, Is.EqualTo(new FourCC(DeviceRemoveEvent.Type))); } } }