using System.Runtime.InteropServices; using UnityEngine.InputSystem.Utilities; namespace UnityEngine.InputSystem.LowLevel { /// /// Notifies about the removal of an input device. /// /// /// Device that got removed is the one identified by /// of . /// [StructLayout(LayoutKind.Explicit, Size = InputEvent.kBaseEventSize)] public struct DeviceRemoveEvent : IInputEventTypeInfo { public const int Type = 0x4452454D; /// /// Common event data. /// [FieldOffset(0)] public InputEvent baseEvent; public FourCC typeStatic => Type; public unsafe InputEventPtr ToEventPtr() { fixed(DeviceRemoveEvent * ptr = &this) { return new InputEventPtr((InputEvent*)ptr); } } public static DeviceRemoveEvent Create(int deviceId, double time = -1) { var inputEvent = new DeviceRemoveEvent {baseEvent = new InputEvent(Type, InputEvent.kBaseEventSize, deviceId, time)}; return inputEvent; } } }