mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-22 22:25:38 +00:00
Added info popups when adding and removing input devices.
This commit is contained in:
parent
93950cf4de
commit
3669d2320c
|
@ -112,7 +112,7 @@ void InputManager::init()
|
||||||
numJoysticks--;
|
numJoysticks--;
|
||||||
|
|
||||||
for (int i = 0; i < numJoysticks; i++)
|
for (int i = 0; i < numJoysticks; i++)
|
||||||
addControllerByDeviceIndex(i);
|
addControllerByDeviceIndex(nullptr, i);
|
||||||
|
|
||||||
SDL_USER_CECBUTTONDOWN = SDL_RegisterEvents(2);
|
SDL_USER_CECBUTTONDOWN = SDL_RegisterEvents(2);
|
||||||
SDL_USER_CECBUTTONUP = SDL_USER_CECBUTTONDOWN + 1;
|
SDL_USER_CECBUTTONUP = SDL_USER_CECBUTTONDOWN + 1;
|
||||||
|
@ -482,11 +482,11 @@ bool InputManager::parseEvent(const SDL_Event& event, Window* window)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SDL_CONTROLLERDEVICEADDED: {
|
case SDL_CONTROLLERDEVICEADDED: {
|
||||||
addControllerByDeviceIndex(event.cdevice.which);
|
addControllerByDeviceIndex(window, event.cdevice.which);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case SDL_CONTROLLERDEVICEREMOVED: {
|
case SDL_CONTROLLERDEVICEREMOVED: {
|
||||||
removeControllerByJoystickID(event.cdevice.which);
|
removeControllerByJoystickID(window, event.cdevice.which);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -621,7 +621,7 @@ void InputManager::loadDefaultControllerConfig(SDL_JoystickID deviceIndex)
|
||||||
// clang-format on
|
// clang-format on
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputManager::addControllerByDeviceIndex(int deviceIndex)
|
void InputManager::addControllerByDeviceIndex(Window* window, int deviceIndex)
|
||||||
{
|
{
|
||||||
// Open joystick and add it to our list.
|
// Open joystick and add it to our list.
|
||||||
SDL_GameController* controller = SDL_GameControllerOpen(deviceIndex);
|
SDL_GameController* controller = SDL_GameControllerOpen(deviceIndex);
|
||||||
|
@ -652,6 +652,14 @@ void InputManager::addControllerByDeviceIndex(int deviceIndex)
|
||||||
<< ", instance ID: " << joyID << ", device index: " << deviceIndex << ")";
|
<< ", instance ID: " << joyID << ", device index: " << deviceIndex << ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (window != nullptr) {
|
||||||
|
window->queueInfoPopup(
|
||||||
|
"ADDED INPUT DEVICE '" +
|
||||||
|
Utils::String::toUpper(std::string(SDL_GameControllerName(mControllers[joyID]))) +
|
||||||
|
"'",
|
||||||
|
4000);
|
||||||
|
}
|
||||||
|
|
||||||
int numAxes = SDL_JoystickNumAxes(joy);
|
int numAxes = SDL_JoystickNumAxes(joy);
|
||||||
int numButtons = SDL_JoystickNumButtons(joy);
|
int numButtons = SDL_JoystickNumButtons(joy);
|
||||||
|
|
||||||
|
@ -662,7 +670,7 @@ void InputManager::addControllerByDeviceIndex(int deviceIndex)
|
||||||
mPrevButtonValues[std::make_pair(joyID, button)] = -1;
|
mPrevButtonValues[std::make_pair(joyID, button)] = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputManager::removeControllerByJoystickID(SDL_JoystickID joyID)
|
void InputManager::removeControllerByJoystickID(Window* window, SDL_JoystickID joyID)
|
||||||
{
|
{
|
||||||
assert(joyID != -1);
|
assert(joyID != -1);
|
||||||
|
|
||||||
|
@ -673,6 +681,14 @@ void InputManager::removeControllerByJoystickID(SDL_JoystickID joyID)
|
||||||
LOG(LogInfo) << "Removed controller \"" << SDL_GameControllerName(mControllers[joyID])
|
LOG(LogInfo) << "Removed controller \"" << SDL_GameControllerName(mControllers[joyID])
|
||||||
<< "\" (GUID: " << guid << ", instance ID: " << joyID << ")";
|
<< "\" (GUID: " << guid << ", instance ID: " << joyID << ")";
|
||||||
|
|
||||||
|
if (window != nullptr) {
|
||||||
|
window->queueInfoPopup(
|
||||||
|
"REMOVED INPUT DEVICE '" +
|
||||||
|
Utils::String::toUpper(std::string(SDL_GameControllerName(mControllers[joyID]))) +
|
||||||
|
"'",
|
||||||
|
4000);
|
||||||
|
}
|
||||||
|
|
||||||
// Delete mPrevAxisValues for the device.
|
// Delete mPrevAxisValues for the device.
|
||||||
int axisEntries = static_cast<int>(mPrevAxisValues.size());
|
int axisEntries = static_cast<int>(mPrevAxisValues.size());
|
||||||
for (int i = 0; i < axisEntries; i++) {
|
for (int i = 0; i < axisEntries; i++) {
|
||||||
|
|
|
@ -61,8 +61,8 @@ private:
|
||||||
void loadDefaultKBConfig();
|
void loadDefaultKBConfig();
|
||||||
void loadDefaultControllerConfig(SDL_JoystickID deviceIndex);
|
void loadDefaultControllerConfig(SDL_JoystickID deviceIndex);
|
||||||
|
|
||||||
void addControllerByDeviceIndex(int deviceIndex);
|
void addControllerByDeviceIndex(Window* window, int deviceIndex);
|
||||||
void removeControllerByJoystickID(SDL_JoystickID joyID);
|
void removeControllerByJoystickID(Window* window, SDL_JoystickID joyID);
|
||||||
|
|
||||||
static InputManager* sInstance;
|
static InputManager* sInstance;
|
||||||
static const int DEADZONE_TRIGGERS = 18000;
|
static const int DEADZONE_TRIGGERS = 18000;
|
||||||
|
|
Loading…
Reference in a new issue