[Windows] Fix driver version detection of AMD RDNA+ GPU on Windows 10
[xbmc.git] / xbmc / settings / SettingsValueFlatJsonSerializer.h
blob05214ab887800dd542cb847fd52c34385eae172a
1 /*
2 * Copyright (C) 2019 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "settings/lib/ISettingsValueSerializer.h"
12 #include "utils/Variant.h"
14 #include <memory>
16 class CSetting;
17 class CSettingCategory;
18 class CSettingGroup;
19 class CSettingSection;
21 class CSettingsValueFlatJsonSerializer : public ISettingsValueSerializer
23 public:
24 explicit CSettingsValueFlatJsonSerializer(bool compact = true);
25 ~CSettingsValueFlatJsonSerializer() = default;
27 void SetCompact(bool compact = true) { m_compact = compact; }
29 // implementation of ISettingsValueSerializer
30 std::string SerializeValues(const CSettingsManager* settingsManager) const override;
32 private:
33 void SerializeSection(CVariant& parent, const std::shared_ptr<CSettingSection>& section) const;
34 void SerializeCategory(CVariant& parent, const std::shared_ptr<CSettingCategory>& category) const;
35 void SerializeGroup(CVariant& parent, const std::shared_ptr<CSettingGroup>& group) const;
36 void SerializeSetting(CVariant& parent, const std::shared_ptr<CSetting>& setting) const;
37 CVariant SerializeSettingValue(const std::shared_ptr<CSetting>& setting) const;
39 bool m_compact;