public Event ReadEvent() { if (this.pDevice == IntPtr.Zero) { return(null); } SteamControllerLib.Event libEvent; if (!SteamControllerLib.ReadEvent(this.pDevice, out libEvent)) { return(null); } switch ((Event.EventTypeEnum)libEvent.eventType) { case Event.EventTypeEnum.Update: return(new UpdateEvent(ref libEvent)); case Event.EventTypeEnum.Connection: return(new ConnectionEvent(ref libEvent)); case Event.EventTypeEnum.Battery: return(new BatteryEvent(ref libEvent)); } return(null); }