mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 05:45:45 -04:00
HostInterface: Fix crash on startup with controller connected
This commit is contained in:
@ -59,22 +59,6 @@ bool QtHostInterface::initializeOnThread()
|
||||
if (m_controller_interface)
|
||||
m_controller_interface->PollEvents();
|
||||
|
||||
// no need to lock here because the main thread is waiting for us
|
||||
m_qsettings = std::make_unique<QSettings>(QString::fromStdString(GetSettingsFileName()), QSettings::IniFormat);
|
||||
QtSettingsInterface si(m_qsettings.get());
|
||||
|
||||
// check settings validity
|
||||
const QSettings::Status settings_status = m_qsettings->status();
|
||||
if (settings_status != QSettings::NoError)
|
||||
{
|
||||
m_qsettings->clear();
|
||||
SetDefaultSettings(si);
|
||||
}
|
||||
|
||||
// load in settings
|
||||
CheckSettings(si);
|
||||
m_settings.Load(si);
|
||||
|
||||
// bind buttons/axises
|
||||
updateInputMap();
|
||||
return true;
|
||||
@ -417,6 +401,25 @@ void QtHostInterface::OnSystemStateSaved(bool global, s32 slot)
|
||||
emit stateSaved(QString::fromStdString(m_system->GetRunningCode()), global, slot);
|
||||
}
|
||||
|
||||
void QtHostInterface::LoadSettings()
|
||||
{
|
||||
// no need to lock here because the main thread is waiting for us
|
||||
m_qsettings = std::make_unique<QSettings>(QString::fromStdString(GetSettingsFileName()), QSettings::IniFormat);
|
||||
QtSettingsInterface si(m_qsettings.get());
|
||||
|
||||
// check settings validity
|
||||
const QSettings::Status settings_status = m_qsettings->status();
|
||||
if (settings_status != QSettings::NoError)
|
||||
{
|
||||
m_qsettings->clear();
|
||||
SetDefaultSettings(si);
|
||||
}
|
||||
|
||||
// load in settings
|
||||
CheckSettings(si);
|
||||
m_settings.Load(si);
|
||||
}
|
||||
|
||||
void QtHostInterface::SetDefaultSettings(SettingsInterface& si)
|
||||
{
|
||||
CommonHostInterface::SetDefaultSettings(si);
|
||||
|
@ -133,6 +133,7 @@ protected:
|
||||
void OnRunningGameChanged() override;
|
||||
void OnSystemStateSaved(bool global, s32 slot) override;
|
||||
|
||||
void LoadSettings() override;
|
||||
void SetDefaultSettings(SettingsInterface& si) override;
|
||||
void UpdateInputMap() override;
|
||||
|
||||
|
Reference in New Issue
Block a user