summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2022-02-26 00:19:38 -0600
committeriwubcode <iwubcode@users.noreply.github.com>2022-06-27 18:20:52 -0500
commit254246b814124f0f1dff5e1aebd9672c0d1bd492 (patch)
treeaed28905acb212070b6ae93f65959aa11b0ef51f /Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp
parentf92beb611f5e7effc9d1b8a90fbd4004233945ff (diff)
VideoCommon: add logic to read a GraphicsMod from configuration
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp
new file mode 100644
index 0000000000..3fa75eceba
--- /dev/null
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.cpp
@@ -0,0 +1,48 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "VideoCommon/GraphicsModSystem/Config/GraphicsModFeature.h"
+
+#include "Common/Logging/Log.h"
+
+bool GraphicsModFeatureConfig::DeserializeFromConfig(const picojson::object& obj)
+{
+ if (auto group_iter = obj.find("group"); group_iter != obj.end())
+ {
+ if (!group_iter->second.is<std::string>())
+ {
+ ERROR_LOG_FMT(
+ VIDEO,
+ "Failed to load mod configuration file, specified feature's group is not a string");
+ return false;
+ }
+ m_group = group_iter->second.get<std::string>();
+ }
+
+ if (auto action_iter = obj.find("action"); action_iter != obj.end())
+ {
+ if (!action_iter->second.is<std::string>())
+ {
+ ERROR_LOG_FMT(
+ VIDEO,
+ "Failed to load mod configuration file, specified feature's action is not a string");
+ return false;
+ }
+ m_action = action_iter->second.get<std::string>();
+ }
+
+ if (auto action_data_iter = obj.find("action_data"); action_data_iter != obj.end())
+ {
+ m_action_data = action_data_iter->second;
+ }
+
+ return true;
+}
+
+void GraphicsModFeatureConfig::SerializeToProfile(picojson::object*) const
+{
+}
+
+void GraphicsModFeatureConfig::DeserializeFromProfile(const picojson::object&)
+{
+}