| using System.Runtime.InteropServices; | |
| using UnityEngine.InputSystem.Utilities; | |
| namespace UnityEngine.InputSystem.LowLevel | |
| { | |
| /// <summary> | |
| /// Event that causes the state of an <see cref="InputDevice"/> to be reset (see <see cref="InputSystem.ResetDevice"/>). | |
| /// </summary> | |
| /// <seealso cref="InputSystem.ResetDevice"/> | |
| [] | |
| public struct DeviceResetEvent : IInputEventTypeInfo | |
| { | |
| public const int Type = 0x44525354; // DRST | |
| /// <summary> | |
| /// Common event data. | |
| /// </summary> | |
| [] | |
| public InputEvent baseEvent; | |
| /// <summary> | |
| /// Whether to also reset <see cref="Layouts.InputControlAttribute.dontReset"/> controls. | |
| /// </summary> | |
| [] | |
| public bool hardReset; | |
| public FourCC typeStatic => Type; | |
| public static DeviceResetEvent Create(int deviceId, bool hardReset = false, double time = -1) | |
| { | |
| var inputEvent = | |
| new DeviceResetEvent {baseEvent = new InputEvent(Type, InputEvent.kBaseEventSize, deviceId, time)}; | |
| inputEvent.hardReset = hardReset; | |
| return inputEvent; | |
| } | |
| } | |
| } | |