mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-26 23:55:40 +00:00
HostInterface: Share settings between SDL and Qt frontends
This commit is contained in:
parent
2c3a0a6af9
commit
b3db3a1cc0
|
@ -462,7 +462,7 @@ void HostInterface::SetUserDirectory()
|
|||
}
|
||||
}
|
||||
|
||||
std::string HostInterface::GetUserDirectoryRelativePath(const char* format, ...)
|
||||
std::string HostInterface::GetUserDirectoryRelativePath(const char* format, ...) const
|
||||
{
|
||||
std::va_list ap;
|
||||
va_start(ap, format);
|
||||
|
@ -480,6 +480,11 @@ std::string HostInterface::GetUserDirectoryRelativePath(const char* format, ...)
|
|||
}
|
||||
}
|
||||
|
||||
std::string HostInterface::GetSettingsFileName() const
|
||||
{
|
||||
return GetUserDirectoryRelativePath("settings.ini");
|
||||
}
|
||||
|
||||
void HostInterface::RunFrame()
|
||||
{
|
||||
m_frame_timer.Reset();
|
||||
|
|
|
@ -65,7 +65,7 @@ public:
|
|||
const std::string& GetUserDirectory() const { return m_user_directory; }
|
||||
|
||||
/// Returns a path relative to the user directory.
|
||||
std::string GetUserDirectoryRelativePath(const char* format, ...);
|
||||
std::string GetUserDirectoryRelativePath(const char* format, ...) const;
|
||||
|
||||
protected:
|
||||
using ThrottleClock = std::chrono::steady_clock;
|
||||
|
@ -90,6 +90,9 @@ protected:
|
|||
|
||||
void SetUserDirectory();
|
||||
|
||||
/// Returns the path of the settings file.
|
||||
std::string GetSettingsFileName() const;
|
||||
|
||||
void RunFrame();
|
||||
|
||||
/// Throttles the system, i.e. sleeps until it's time to execute the next frame.
|
||||
|
|
|
@ -22,7 +22,7 @@ Log_SetChannel(QtHostInterface);
|
|||
#endif
|
||||
|
||||
QtHostInterface::QtHostInterface(QObject* parent)
|
||||
: QObject(parent), m_qsettings("duckstation-qt.ini", QSettings::IniFormat)
|
||||
: QObject(parent), HostInterface(), m_qsettings(QString::fromStdString(GetSettingsFileName()), QSettings::IniFormat)
|
||||
{
|
||||
checkSettings();
|
||||
createGameList();
|
||||
|
|
|
@ -25,7 +25,7 @@ Log_SetChannel(SDLHostInterface);
|
|||
#include <mmsystem.h>
|
||||
#endif
|
||||
|
||||
SDLHostInterface::SDLHostInterface() : m_settings_filename("settings.ini")
|
||||
SDLHostInterface::SDLHostInterface()
|
||||
{
|
||||
// Increase timer/sleep resolution since we use it for throttling.
|
||||
#ifdef WIN32
|
||||
|
@ -152,7 +152,7 @@ void SDLHostInterface::CreateAudioStream()
|
|||
|
||||
void SDLHostInterface::SaveSettings()
|
||||
{
|
||||
SDLSettingsInterface si(m_settings_filename.c_str());
|
||||
SDLSettingsInterface si(GetSettingsFileName().c_str());
|
||||
m_settings.Save(si);
|
||||
}
|
||||
|
||||
|
@ -238,7 +238,7 @@ std::unique_ptr<SDLHostInterface> SDLHostInterface::Create(const char* filename
|
|||
std::unique_ptr<SDLHostInterface> intf = std::make_unique<SDLHostInterface>();
|
||||
|
||||
// Settings need to be loaded prior to creating the window for OpenGL bits.
|
||||
SDLSettingsInterface si(intf->m_settings_filename.c_str());
|
||||
SDLSettingsInterface si(intf->GetSettingsFileName().c_str());
|
||||
intf->m_settings.Load(si);
|
||||
|
||||
if (!intf->CreateSDLWindow())
|
||||
|
|
|
@ -128,8 +128,6 @@ private:
|
|||
SDL_Window* m_window = nullptr;
|
||||
std::unique_ptr<HostDisplayTexture> m_app_icon_texture;
|
||||
|
||||
std::string m_settings_filename;
|
||||
|
||||
KeyboardControllerActionMap m_keyboard_button_mapping;
|
||||
|
||||
std::map<int, ControllerData> m_sdl_controllers;
|
||||
|
|
Loading…
Reference in a new issue