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

@ -60,11 +60,10 @@ private:
public:
void UpdateInput() override;
Keyboard(IOHIDDeviceRef device, std::string name, int index, void* window);
Keyboard(IOHIDDeviceRef device, std::string name, void* window);
std::string GetName() const override;
std::string GetSource() const override;
int GetId() const override;
private:
struct
@ -74,7 +73,6 @@ private:
const IOHIDDeviceRef m_device;
const std::string m_device_name;
int m_index;
uint32_t m_windowid;
unsigned char m_mousebuttons[3];
};