diff --git a/src/duckstation-sdl/CMakeLists.txt b/src/duckstation-sdl/CMakeLists.txt
index 8f9caf7c9..cc101b8d9 100644
--- a/src/duckstation-sdl/CMakeLists.txt
+++ b/src/duckstation-sdl/CMakeLists.txt
@@ -6,12 +6,10 @@ add_executable(duckstation-sdl
opengl_host_display.h
sdl_host_interface.cpp
sdl_host_interface.h
- sdl_settings_interface.cpp
- sdl_settings_interface.h
)
target_include_directories(duckstation-sdl PRIVATE ${SDL2_INCLUDE_DIRS})
-target_link_libraries(duckstation-sdl PRIVATE core common imgui nativefiledialog glad simpleini frontend-common ${SDL2_LIBRARIES})
+target_link_libraries(duckstation-sdl PRIVATE core common imgui nativefiledialog glad frontend-common ${SDL2_LIBRARIES})
if(WIN32)
target_sources(duckstation-sdl PRIVATE
diff --git a/src/duckstation-sdl/duckstation-sdl.vcxproj b/src/duckstation-sdl/duckstation-sdl.vcxproj
index 8048f331a..4d8c25285 100644
--- a/src/duckstation-sdl/duckstation-sdl.vcxproj
+++ b/src/duckstation-sdl/duckstation-sdl.vcxproj
@@ -57,14 +57,12 @@
-
-
diff --git a/src/duckstation-sdl/duckstation-sdl.vcxproj.filters b/src/duckstation-sdl/duckstation-sdl.vcxproj.filters
index 7c6071779..7f3f2db71 100644
--- a/src/duckstation-sdl/duckstation-sdl.vcxproj.filters
+++ b/src/duckstation-sdl/duckstation-sdl.vcxproj.filters
@@ -5,14 +5,12 @@
-
-
diff --git a/src/duckstation-sdl/sdl_host_interface.cpp b/src/duckstation-sdl/sdl_host_interface.cpp
index 82d2cb376..fa2fc9fb4 100644
--- a/src/duckstation-sdl/sdl_host_interface.cpp
+++ b/src/duckstation-sdl/sdl_host_interface.cpp
@@ -9,11 +9,11 @@
#include "core/system.h"
#include "frontend-common/icon.h"
#include "frontend-common/imgui_styles.h"
+#include "frontend-common/ini_settings_interface.h"
#include "frontend-common/sdl_audio_stream.h"
#include "frontend-common/sdl_controller_interface.h"
#include "imgui_impl_sdl.h"
#include "opengl_host_display.h"
-#include "sdl_settings_interface.h"
#include
#include
#include
@@ -268,7 +268,7 @@ void SDLHostInterface::RunLater(std::function callback)
void SDLHostInterface::SaveSettings()
{
- SDLSettingsInterface si(GetSettingsFileName().c_str());
+ INISettingsInterface si(GetSettingsFileName().c_str());
m_settings_copy.Save(si);
}
@@ -296,7 +296,7 @@ std::unique_ptr SDLHostInterface::Create()
std::unique_ptr intf = std::make_unique();
// Settings need to be loaded prior to creating the window for OpenGL bits.
- SDLSettingsInterface si(intf->GetSettingsFileName().c_str());
+ INISettingsInterface si(intf->GetSettingsFileName().c_str());
intf->m_settings_copy.Load(si);
intf->m_settings = intf->m_settings_copy;
intf->m_fullscreen = intf->m_settings_copy.display_fullscreen;
diff --git a/src/frontend-common/CMakeLists.txt b/src/frontend-common/CMakeLists.txt
index 6ad3eb2fb..a66952745 100644
--- a/src/frontend-common/CMakeLists.txt
+++ b/src/frontend-common/CMakeLists.txt
@@ -5,6 +5,8 @@ add_library(frontend-common
icon.h
imgui_styles.cpp
imgui_styles.h
+ ini_settings_interface.cpp
+ ini_settings_interface.h
)
if(SDL2_FOUND)
@@ -21,5 +23,5 @@ if(SDL2_FOUND)
target_link_libraries(frontend-common PRIVATE ${SDL2_LIBRARIES})
endif()
-target_link_libraries(frontend-common PRIVATE core common imgui)
+target_link_libraries(frontend-common PRIVATE core common imgui simpleini)
diff --git a/src/frontend-common/frontend-common.vcxproj b/src/frontend-common/frontend-common.vcxproj
index c8adcaf33..60d2b0caf 100644
--- a/src/frontend-common/frontend-common.vcxproj
+++ b/src/frontend-common/frontend-common.vcxproj
@@ -44,11 +44,21 @@
{6a4208ed-e3dc-41e1-81cd-f61025fc285a}
+
+ {3773f4cc-614e-4028-8595-22e08ca649e3}
+
+
+ {ee054e08-3799-4a59-a422-18259c105ffd}
+
+
+ {868b98c8-65a1-494b-8346-250a73a48c0a}
+
+
@@ -57,6 +67,7 @@
+
@@ -205,7 +216,7 @@
WITH_SDL2=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
true
ProgramDatabase
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
true
stdcpp17
true
@@ -232,7 +243,7 @@
WITH_SDL2=1;_ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions)
true
ProgramDatabase
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
Default
false
true
@@ -262,7 +273,7 @@
WITH_SDL2=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
true
ProgramDatabase
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
true
stdcpp17
true
@@ -289,7 +300,7 @@
WITH_SDL2=1;_ITERATOR_DEBUG_LEVEL=1;WIN32;_DEBUGFAST;_DEBUG;_LIB;%(PreprocessorDefinitions)
true
ProgramDatabase
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
Default
false
true
@@ -320,7 +331,7 @@
true
WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
true
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
true
stdcpp17
false
@@ -349,7 +360,7 @@
true
WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
true
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
true
true
stdcpp17
@@ -380,7 +391,7 @@
true
WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
true
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
true
stdcpp17
false
@@ -409,7 +420,7 @@
true
WITH_SDL2=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
true
- $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\msvc\include\SDL;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\simpleini\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
true
true
stdcpp17
diff --git a/src/frontend-common/frontend-common.vcxproj.filters b/src/frontend-common/frontend-common.vcxproj.filters
index 1ed7f95cf..4d94c6622 100644
--- a/src/frontend-common/frontend-common.vcxproj.filters
+++ b/src/frontend-common/frontend-common.vcxproj.filters
@@ -7,6 +7,7 @@
+
@@ -15,6 +16,7 @@
+
diff --git a/src/duckstation-sdl/sdl_settings_interface.cpp b/src/frontend-common/ini_settings_interface.cpp
similarity index 72%
rename from src/duckstation-sdl/sdl_settings_interface.cpp
rename to src/frontend-common/ini_settings_interface.cpp
index 11841a275..0ca5488cf 100644
--- a/src/duckstation-sdl/sdl_settings_interface.cpp
+++ b/src/frontend-common/ini_settings_interface.cpp
@@ -1,16 +1,16 @@
-#include "sdl_settings_interface.h"
+#include "ini_settings_interface.h"
#include "common/log.h"
#include
-Log_SetChannel(SDLSettingsInterface);
+Log_SetChannel(INISettingsInterface);
-SDLSettingsInterface::SDLSettingsInterface(const char* filename) : m_filename(filename), m_ini(true, true)
+INISettingsInterface::INISettingsInterface(const char* filename) : m_filename(filename), m_ini(true, true)
{
SI_Error err = m_ini.LoadFile(filename);
if (err != SI_OK)
Log_WarningPrintf("Settings could not be loaded from '%s', defaults will be used.", filename);
}
-SDLSettingsInterface::~SDLSettingsInterface()
+INISettingsInterface::~INISettingsInterface()
{
if (m_dirty)
{
@@ -20,63 +20,63 @@ SDLSettingsInterface::~SDLSettingsInterface()
}
}
-void SDLSettingsInterface::Clear()
+void INISettingsInterface::Clear()
{
m_ini.Reset();
}
-int SDLSettingsInterface::GetIntValue(const char* section, const char* key, int default_value /*= 0*/)
+int INISettingsInterface::GetIntValue(const char* section, const char* key, int default_value /*= 0*/)
{
return static_cast(m_ini.GetLongValue(section, key, default_value));
}
-float SDLSettingsInterface::GetFloatValue(const char* section, const char* key, float default_value /*= 0.0f*/)
+float INISettingsInterface::GetFloatValue(const char* section, const char* key, float default_value /*= 0.0f*/)
{
return static_cast(m_ini.GetDoubleValue(section, key, default_value));
}
-bool SDLSettingsInterface::GetBoolValue(const char* section, const char* key, bool default_value /*= false*/)
+bool INISettingsInterface::GetBoolValue(const char* section, const char* key, bool default_value /*= false*/)
{
return m_ini.GetBoolValue(section, key, default_value);
}
-std::string SDLSettingsInterface::GetStringValue(const char* section, const char* key,
+std::string INISettingsInterface::GetStringValue(const char* section, const char* key,
const char* default_value /*= ""*/)
{
return m_ini.GetValue(section, key, default_value);
}
-void SDLSettingsInterface::SetIntValue(const char* section, const char* key, int value)
+void INISettingsInterface::SetIntValue(const char* section, const char* key, int value)
{
m_dirty = true;
m_ini.SetLongValue(section, key, static_cast(value), nullptr, false, true);
}
-void SDLSettingsInterface::SetFloatValue(const char* section, const char* key, float value)
+void INISettingsInterface::SetFloatValue(const char* section, const char* key, float value)
{
m_dirty = true;
m_ini.SetDoubleValue(section, key, static_cast(value), nullptr, true);
}
-void SDLSettingsInterface::SetBoolValue(const char* section, const char* key, bool value)
+void INISettingsInterface::SetBoolValue(const char* section, const char* key, bool value)
{
m_dirty = true;
m_ini.SetBoolValue(section, key, value, nullptr, true);
}
-void SDLSettingsInterface::SetStringValue(const char* section, const char* key, const char* value)
+void INISettingsInterface::SetStringValue(const char* section, const char* key, const char* value)
{
m_dirty = true;
m_ini.SetValue(section, key, value, nullptr, true);
}
-void SDLSettingsInterface::DeleteValue(const char* section, const char* key)
+void INISettingsInterface::DeleteValue(const char* section, const char* key)
{
m_dirty = true;
m_ini.Delete(section, key);
}
-std::vector SDLSettingsInterface::GetStringList(const char* section, const char* key)
+std::vector INISettingsInterface::GetStringList(const char* section, const char* key)
{
std::list entries;
if (!m_ini.GetAllValues(section, key, entries))
@@ -89,7 +89,7 @@ std::vector SDLSettingsInterface::GetStringList(const char* section
return ret;
}
-void SDLSettingsInterface::SetStringList(const char* section, const char* key,
+void INISettingsInterface::SetStringList(const char* section, const char* key,
const std::vector& items)
{
m_dirty = true;
@@ -99,13 +99,13 @@ void SDLSettingsInterface::SetStringList(const char* section, const char* key,
m_ini.SetValue(section, key, std::string(sv).c_str(), nullptr, false);
}
-bool SDLSettingsInterface::RemoveFromStringList(const char* section, const char* key, const char* item)
+bool INISettingsInterface::RemoveFromStringList(const char* section, const char* key, const char* item)
{
m_dirty = true;
return m_ini.DeleteValue(section, key, item, true);
}
-bool SDLSettingsInterface::AddToStringList(const char* section, const char* key, const char* item)
+bool INISettingsInterface::AddToStringList(const char* section, const char* key, const char* item)
{
std::list entries;
if (m_ini.GetAllValues(section, key, entries) &&
diff --git a/src/duckstation-sdl/sdl_settings_interface.h b/src/frontend-common/ini_settings_interface.h
similarity index 91%
rename from src/duckstation-sdl/sdl_settings_interface.h
rename to src/frontend-common/ini_settings_interface.h
index d0c7d684c..b9d8c4c81 100644
--- a/src/duckstation-sdl/sdl_settings_interface.h
+++ b/src/frontend-common/ini_settings_interface.h
@@ -3,11 +3,11 @@
#include "SimpleIni.h"
-class SDLSettingsInterface : public SettingsInterface
+class INISettingsInterface : public SettingsInterface
{
public:
- SDLSettingsInterface(const char* filename);
- ~SDLSettingsInterface();
+ INISettingsInterface(const char* filename);
+ ~INISettingsInterface();
void Clear() override;