You absolutely do need SDL, it's full of knowledge by humans from trial and error over years of using input devices in the real world.