Add initial, untested native controller support.
Clamp pulse duration.
Add utility method for button state.
Add missing include.