In that case, it might make sense to move joystick input into the platform/input module (like evdev) and use it from here instead of SDL directly. This way, we can do platform-specific implementation of Joystick support (e.g. evdev could support joysticks in its way, Maemo could use SDL's Joystick support, other platforms could use other things, etc..).