mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 00:17:25 +02:00
Add InputManager::getSubdeviceNames
This commit is contained in:
parent
dc8d0bf31c
commit
ba0dbeac80
3 changed files with 12 additions and 1 deletions
|
@ -21,6 +21,9 @@ public:
|
||||||
virtual void pluginFocusOutEvent() = 0;
|
virtual void pluginFocusOutEvent() = 0;
|
||||||
virtual void pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) = 0;
|
virtual void pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) = 0;
|
||||||
|
|
||||||
|
// Some input plugins are comprised of multiple subdevices (SDL2, for instance).
|
||||||
|
// If an input plugin is only a single device, it will only return it's primary name.
|
||||||
|
virtual QStringList getSubdeviceNames() { return { getName() }; };
|
||||||
virtual bool isHandController() const = 0;
|
virtual bool isHandController() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -65,8 +65,10 @@ void SDL2Manager::init() {
|
||||||
_openJoysticks[id] = joystick;
|
_openJoysticks[id] = joystick;
|
||||||
auto userInputMapper = DependencyManager::get<controller::UserInputMapper>();
|
auto userInputMapper = DependencyManager::get<controller::UserInputMapper>();
|
||||||
userInputMapper->registerDevice(joystick);
|
userInputMapper->registerDevice(joystick);
|
||||||
|
auto name = SDL_GameControllerName(controller);
|
||||||
|
_subdeviceNames << name;
|
||||||
emit joystickAdded(joystick.get());
|
emit joystickAdded(joystick.get());
|
||||||
emit subdeviceConnected(getName(), SDL_GameControllerName(controller));
|
emit subdeviceConnected(getName(), name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -78,6 +80,10 @@ void SDL2Manager::init() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QStringList SDL2Manager::getSubdeviceNames() {
|
||||||
|
return _subdeviceNames;
|
||||||
|
}
|
||||||
|
|
||||||
void SDL2Manager::deinit() {
|
void SDL2Manager::deinit() {
|
||||||
_openJoysticks.clear();
|
_openJoysticks.clear();
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ public:
|
||||||
bool isSupported() const override;
|
bool isSupported() const override;
|
||||||
const QString& getName() const override { return NAME; }
|
const QString& getName() const override { return NAME; }
|
||||||
|
|
||||||
|
QStringList getSubdeviceNames() override;
|
||||||
bool isHandController() const override { return false; }
|
bool isHandController() const override { return false; }
|
||||||
|
|
||||||
void init() override;
|
void init() override;
|
||||||
|
@ -79,6 +80,7 @@ private:
|
||||||
QMap<SDL_JoystickID, Joystick::Pointer> _openJoysticks;
|
QMap<SDL_JoystickID, Joystick::Pointer> _openJoysticks;
|
||||||
bool _isInitialized { false } ;
|
bool _isInitialized { false } ;
|
||||||
static const QString NAME;
|
static const QString NAME;
|
||||||
|
QStringList _subdeviceNames;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // hifi__SDL2Manager_h
|
#endif // hifi__SDL2Manager_h
|
||||||
|
|
Loading…
Reference in a new issue