ControllerInterface: Make the ID assigning code common

This makes the device ID assigning code common to all backends, by
moving it to AddDevice() instead of copy-pasting or replicating
the logic in the backends.

Also, to prepare for hotplugging, instead of relying on a name usage
count, the new ID assigning system always starts from ID 0 and tries
to assign the first ID that is not used.
This commit is contained in:
Léo Lam
2016-07-14 10:25:52 +02:00
parent 89a03174cc
commit 788e19f54d
25 changed files with 41 additions and 112 deletions

View File

@ -14,8 +14,8 @@ namespace ciface
{
namespace OSX
{
Joystick::Joystick(IOHIDDeviceRef device, std::string name, int index)
: m_device(device), m_device_name(name), m_index(index), m_ff_device(nullptr)
Joystick::Joystick(IOHIDDeviceRef device, std::string name)
: m_device(device), m_device_name(name), m_ff_device(nullptr)
{
// Buttons
NSDictionary* buttonDict = @{
@ -93,11 +93,6 @@ std::string Joystick::GetSource() const
return "Input";
}
int Joystick::GetId() const
{
return m_index;
}
ControlState Joystick::Button::GetState() const
{
IOHIDValueRef value;