[HID] SDL Input fixes
This commit is contained in:
parent
4079a7bb8a
commit
5bd89b4306
|
@ -53,33 +53,33 @@ std::vector<std::unique_ptr<hid::InputDriver>> CreateInputDrivers(
|
|||
drivers.emplace_back(xe::hid::nop::Create(window));
|
||||
} else if (cvars::hid.compare("sdl") == 0) {
|
||||
auto driver = xe::hid::sdl::Create(window);
|
||||
if (XSUCCEEDED(driver->Setup())) {
|
||||
if (XSUCCEEDED(driver->Setup(drivers))) {
|
||||
drivers.emplace_back(std::move(driver));
|
||||
}
|
||||
#if XE_PLATFORM_WIN32
|
||||
} else if (cvars::hid.compare("winkey") == 0) {
|
||||
auto driver = xe::hid::winkey::Create(window);
|
||||
if (XSUCCEEDED(driver->Setup())) {
|
||||
if (XSUCCEEDED(driver->Setup(drivers))) {
|
||||
drivers.emplace_back(std::move(driver));
|
||||
}
|
||||
} else if (cvars::hid.compare("xinput") == 0) {
|
||||
auto driver = xe::hid::xinput::Create(window);
|
||||
if (XSUCCEEDED(driver->Setup())) {
|
||||
if (XSUCCEEDED(driver->Setup(drivers))) {
|
||||
drivers.emplace_back(std::move(driver));
|
||||
}
|
||||
#endif // XE_PLATFORM_WIN32
|
||||
} else {
|
||||
auto sdl_driver = xe::hid::sdl::Create(window);
|
||||
if (sdl_driver && XSUCCEEDED(sdl_driver->Setup())) {
|
||||
if (sdl_driver && XSUCCEEDED(sdl_driver->Setup(drivers))) {
|
||||
drivers.emplace_back(std::move(sdl_driver));
|
||||
}
|
||||
#if XE_PLATFORM_WIN32
|
||||
auto xinput_driver = xe::hid::xinput::Create(window);
|
||||
if (xinput_driver && XSUCCEEDED(xinput_driver->Setup())) {
|
||||
if (xinput_driver && XSUCCEEDED(xinput_driver->Setup(drivers))) {
|
||||
drivers.emplace_back(std::move(xinput_driver));
|
||||
}
|
||||
auto winkey_driver = xe::hid::winkey::Create(window);
|
||||
if (winkey_driver && XSUCCEEDED(winkey_driver->Setup())) {
|
||||
if (winkey_driver && XSUCCEEDED(winkey_driver->Setup(drivers))) {
|
||||
drivers.emplace_back(std::move(winkey_driver));
|
||||
}
|
||||
#endif // XE_PLATFORM_WIN32
|
||||
|
|
|
@ -58,7 +58,7 @@ SDLInputDriver::~SDLInputDriver() {
|
|||
}
|
||||
}
|
||||
|
||||
X_STATUS SDLInputDriver::Setup() {
|
||||
X_STATUS SDLInputDriver::Setup(std::vector<std::unique_ptr<hid::InputDriver>>& drivers) {
|
||||
if (!TestSDLVersion()) {
|
||||
return X_STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
@ -102,6 +102,7 @@ X_STATUS SDLInputDriver::Setup() {
|
|||
}
|
||||
switch (type) {
|
||||
case SDL_CONTROLLERDEVICEADDED:
|
||||
case SDL_JOYDEVICEADDED:
|
||||
driver->OnControllerDeviceAdded(event);
|
||||
break;
|
||||
case SDL_CONTROLLERDEVICEREMOVED:
|
||||
|
|
|
@ -32,7 +32,8 @@ class SDLInputDriver : public InputDriver {
|
|||
explicit SDLInputDriver(xe::ui::Window* window);
|
||||
~SDLInputDriver() override;
|
||||
|
||||
X_STATUS Setup() override;
|
||||
X_STATUS Setup(
|
||||
std::vector<std::unique_ptr<hid::InputDriver>>& drivers) override;
|
||||
|
||||
X_RESULT GetCapabilities(uint32_t user_index, uint32_t flags,
|
||||
X_INPUT_CAPABILITIES* out_caps) override;
|
||||
|
|
Loading…
Reference in New Issue