Merge branch 'joybutton-ordering-osx' of git://github.com/ryanfields/SFML into fix/joystick

This commit is contained in:
Marco Antognini 2013-01-21 10:03:40 +01:00
commit 13eb867686

View File

@ -30,6 +30,14 @@
#include <SFML/Window/OSX/HIDInputManager.hpp> #include <SFML/Window/OSX/HIDInputManager.hpp>
#include <SFML/Window/OSX/HIDJoystickManager.hpp> #include <SFML/Window/OSX/HIDJoystickManager.hpp>
// Translation unit namespace
namespace {
////////////////////////////////////////////////////////////
bool JoystickButtonSortPredicate(IOHIDElementRef b1, IOHIDElementRef b2)
{
return IOHIDElementGetUsage(b1) < IOHIDElementGetUsage(b2);
}
}
namespace sf namespace sf
{ {
@ -218,6 +226,10 @@ bool JoystickImpl::open(unsigned int index)
} }
} }
// Ensure that the buttons will be indexed in the same order as their
// HID Usage (assigned by manufacturer and/or a driver).
std::sort(m_buttons.begin(), m_buttons.end(), JoystickButtonSortPredicate);
// Note : Joy::AxisPovX/Y are not supported (yet). // Note : Joy::AxisPovX/Y are not supported (yet).
// Maybe kIOHIDElementTypeInput_Axis is the corresponding type but I can't test. // Maybe kIOHIDElementTypeInput_Axis is the corresponding type but I can't test.