Skip to content

Commit 160f1ea

Browse files
committed
Qt: Fix vibration motor binding not showing some devices
1 parent c3ce0ee commit 160f1ea

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

src/duckstation-qt/qthost.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2218,7 +2218,7 @@ void InputDeviceListModel::enumerateDevices()
22182218
}
22192219

22202220
QMetaObject::invokeMethod(this, "resetLists", Qt::QueuedConnection, Q_ARG(const DeviceList&, new_devices),
2221-
Q_ARG(const QStringList&, m_vibration_motors));
2221+
Q_ARG(const QStringList&, new_motors));
22222222
}
22232223

22242224
void InputDeviceListModel::resetLists(const DeviceList& devices, const QStringList& motors)

src/util/input_manager.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2167,30 +2167,32 @@ void InputManager::UpdateInputSourceState(const SettingsInterface& si, std::uniq
21672167
InputSourceType type, std::unique_ptr<InputSource> (*factory_function)())
21682168
{
21692169
const bool enabled = IsInputSourceEnabled(si, type);
2170+
std::unique_ptr<InputSource>& source = s_input_sources[static_cast<u32>(type)];
21702171
if (enabled)
21712172
{
2172-
if (s_input_sources[static_cast<u32>(type)])
2173+
if (source)
21732174
{
2174-
s_input_sources[static_cast<u32>(type)]->UpdateSettings(si, settings_lock);
2175+
source->UpdateSettings(si, settings_lock);
21752176
}
21762177
else
21772178
{
2178-
std::unique_ptr<InputSource> source(factory_function());
2179-
if (!source->Initialize(si, settings_lock))
2179+
source = factory_function();
2180+
if (!source || !source->Initialize(si, settings_lock))
21802181
{
21812182
ERROR_LOG("Source '{}' failed to initialize.", InputSourceToString(type));
2183+
if (source)
2184+
source->Shutdown();
2185+
source.reset();
21822186
return;
21832187
}
2184-
2185-
s_input_sources[static_cast<u32>(type)] = std::move(source);
21862188
}
21872189
}
21882190
else
21892191
{
2190-
if (s_input_sources[static_cast<u32>(type)])
2192+
if (source)
21912193
{
2192-
s_input_sources[static_cast<u32>(type)]->Shutdown();
2193-
s_input_sources[static_cast<u32>(type)].reset();
2194+
source->Shutdown();
2195+
source.reset();
21942196
}
21952197
}
21962198
}

0 commit comments

Comments
 (0)