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.
11 #include "settings/lib/ISettingsValueSerializer.h"
12 #include "utils/Variant.h"
17 class CSettingCategory
;
19 class CSettingSection
;
21 class CSettingsValueFlatJsonSerializer
: public ISettingsValueSerializer
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
;
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;