New, better gamepad event callback api