xbmc
Settings.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "settings/ISubSettings.h"
12 #include "settings/SettingControl.h"
13 #include "settings/SettingCreator.h"
14 #include "settings/SettingsBase.h"
15 
16 #include <string>
17 
18 class CSettingList;
19 class TiXmlNode;
20 
28  , private ISubSettings
29 {
30 public:
31  static constexpr auto SETTING_LOOKANDFEEL_SKIN = "lookandfeel.skin";
32  static constexpr auto SETTING_LOOKANDFEEL_SKINSETTINGS = "lookandfeel.skinsettings";
33  static constexpr auto SETTING_LOOKANDFEEL_SKINTHEME = "lookandfeel.skintheme";
34  static constexpr auto SETTING_LOOKANDFEEL_SKINCOLORS = "lookandfeel.skincolors";
35  static constexpr auto SETTING_LOOKANDFEEL_FONT = "lookandfeel.font";
36  static constexpr auto SETTING_LOOKANDFEEL_SKINZOOM = "lookandfeel.skinzoom";
37  static constexpr auto SETTING_LOOKANDFEEL_STARTUPACTION = "lookandfeel.startupaction";
38  static constexpr auto SETTING_LOOKANDFEEL_STARTUPWINDOW = "lookandfeel.startupwindow";
39  static constexpr auto SETTING_LOOKANDFEEL_SOUNDSKIN = "lookandfeel.soundskin";
40  static constexpr auto SETTING_LOOKANDFEEL_ENABLERSSFEEDS = "lookandfeel.enablerssfeeds";
41  static constexpr auto SETTING_LOOKANDFEEL_RSSEDIT = "lookandfeel.rssedit";
42  static constexpr auto SETTING_LOOKANDFEEL_STEREOSTRENGTH = "lookandfeel.stereostrength";
43  static constexpr auto SETTING_LOCALE_LANGUAGE = "locale.language";
44  static constexpr auto SETTING_LOCALE_COUNTRY = "locale.country";
45  static constexpr auto SETTING_LOCALE_CHARSET = "locale.charset";
46  static constexpr auto SETTING_LOCALE_KEYBOARDLAYOUTS = "locale.keyboardlayouts";
47  static constexpr auto SETTING_LOCALE_ACTIVEKEYBOARDLAYOUT = "locale.activekeyboardlayout";
48  static constexpr auto SETTING_LOCALE_TIMEZONECOUNTRY = "locale.timezonecountry";
49  static constexpr auto SETTING_LOCALE_TIMEZONE = "locale.timezone";
50  static constexpr auto SETTING_LOCALE_SHORTDATEFORMAT = "locale.shortdateformat";
51  static constexpr auto SETTING_LOCALE_LONGDATEFORMAT = "locale.longdateformat";
52  static constexpr auto SETTING_LOCALE_TIMEFORMAT = "locale.timeformat";
53  static constexpr auto SETTING_LOCALE_USE24HOURCLOCK = "locale.use24hourclock";
54  static constexpr auto SETTING_LOCALE_TEMPERATUREUNIT = "locale.temperatureunit";
55  static constexpr auto SETTING_LOCALE_SPEEDUNIT = "locale.speedunit";
56  static constexpr auto SETTING_FILELISTS_SHOWPARENTDIRITEMS = "filelists.showparentdiritems";
57  static constexpr auto SETTING_FILELISTS_SHOWEXTENSIONS = "filelists.showextensions";
58  static constexpr auto SETTING_FILELISTS_IGNORETHEWHENSORTING = "filelists.ignorethewhensorting";
59  static constexpr auto SETTING_FILELISTS_ALLOWFILEDELETION = "filelists.allowfiledeletion";
60  static constexpr auto SETTING_FILELISTS_SHOWADDSOURCEBUTTONS = "filelists.showaddsourcebuttons";
61  static constexpr auto SETTING_FILELISTS_SHOWHIDDEN = "filelists.showhidden";
62  static constexpr auto SETTING_SCREENSAVER_MODE = "screensaver.mode";
63  static constexpr auto SETTING_SCREENSAVER_SETTINGS = "screensaver.settings";
64  static constexpr auto SETTING_SCREENSAVER_PREVIEW = "screensaver.preview";
65  static constexpr auto SETTING_SCREENSAVER_TIME = "screensaver.time";
66  static constexpr auto SETTING_SCREENSAVER_USEMUSICVISINSTEAD = "screensaver.usemusicvisinstead";
67  static constexpr auto SETTING_SCREENSAVER_USEDIMONPAUSE = "screensaver.usedimonpause";
68  static constexpr auto SETTING_WINDOW_WIDTH = "window.width";
69  static constexpr auto SETTING_WINDOW_HEIGHT = "window.height";
70  static constexpr auto SETTING_VIDEOLIBRARY_SHOWUNWATCHEDPLOTS = "videolibrary.showunwatchedplots";
71  static constexpr auto SETTING_VIDEOLIBRARY_ACTORTHUMBS = "videolibrary.actorthumbs";
72  static constexpr auto SETTING_MYVIDEOS_FLATTEN = "myvideos.flatten";
73  static constexpr auto SETTING_VIDEOLIBRARY_FLATTENTVSHOWS = "videolibrary.flattentvshows";
74  static constexpr auto SETTING_VIDEOLIBRARY_TVSHOWSSELECTFIRSTUNWATCHEDITEM =
75  "videolibrary.tvshowsselectfirstunwatcheditem";
76  static constexpr auto SETTING_VIDEOLIBRARY_TVSHOWSINCLUDEALLSEASONSANDSPECIALS =
77  "videolibrary.tvshowsincludeallseasonsandspecials";
78  static constexpr auto SETTING_VIDEOLIBRARY_SHOWALLITEMS = "videolibrary.showallitems";
79  static constexpr auto SETTING_VIDEOLIBRARY_GROUPMOVIESETS = "videolibrary.groupmoviesets";
80  static constexpr auto SETTING_VIDEOLIBRARY_GROUPSINGLEITEMSETS =
81  "videolibrary.groupsingleitemsets";
82  static constexpr auto SETTING_VIDEOLIBRARY_UPDATEONSTARTUP = "videolibrary.updateonstartup";
83  static constexpr auto SETTING_VIDEOLIBRARY_BACKGROUNDUPDATE = "videolibrary.backgroundupdate";
84  static constexpr auto SETTING_VIDEOLIBRARY_CLEANUP = "videolibrary.cleanup";
85  static constexpr auto SETTING_VIDEOLIBRARY_EXPORT = "videolibrary.export";
86  static constexpr auto SETTING_VIDEOLIBRARY_IMPORT = "videolibrary.import";
87  static constexpr auto SETTING_VIDEOLIBRARY_SHOWEMPTYTVSHOWS = "videolibrary.showemptytvshows";
88  static constexpr auto SETTING_VIDEOLIBRARY_MOVIESETSFOLDER = "videolibrary.moviesetsfolder";
89  static constexpr auto SETTING_VIDEOLIBRARY_ARTWORK_LEVEL = "videolibrary.artworklevel";
90  static constexpr auto SETTING_VIDEOLIBRARY_MOVIEART_WHITELIST = "videolibrary.movieartwhitelist";
91  static constexpr auto SETTING_VIDEOLIBRARY_TVSHOWART_WHITELIST =
92  "videolibrary.tvshowartwhitelist";
93  static constexpr auto SETTING_VIDEOLIBRARY_EPISODEART_WHITELIST =
94  "videolibrary.episodeartwhitelist";
95  static constexpr auto SETTING_VIDEOLIBRARY_MUSICVIDEOART_WHITELIST =
96  "videolibrary.musicvideoartwhitelist";
97  static constexpr auto SETTING_VIDEOLIBRARY_ARTSETTINGS_UPDATED =
98  "videolibrary.artsettingsupdated";
99  static constexpr auto SETTING_VIDEOLIBRARY_SHOWPERFORMERS =
100  "videolibrary.musicvideosallperformers";
101  static constexpr auto SETTING_LOCALE_AUDIOLANGUAGE = "locale.audiolanguage";
102  static constexpr auto SETTING_VIDEOPLAYER_PREFERDEFAULTFLAG = "videoplayer.preferdefaultflag";
103  static constexpr auto SETTING_VIDEOPLAYER_AUTOPLAYNEXTITEM = "videoplayer.autoplaynextitem";
104  static constexpr auto SETTING_VIDEOPLAYER_SEEKSTEPS = "videoplayer.seeksteps";
105  static constexpr auto SETTING_VIDEOPLAYER_SEEKDELAY = "videoplayer.seekdelay";
106  static constexpr auto SETTING_VIDEOPLAYER_ADJUSTREFRESHRATE = "videoplayer.adjustrefreshrate";
107  static constexpr auto SETTING_VIDEOPLAYER_USEDISPLAYASCLOCK = "videoplayer.usedisplayasclock";
108  static constexpr auto SETTING_VIDEOPLAYER_ERRORINASPECT = "videoplayer.errorinaspect";
109  static constexpr auto SETTING_VIDEOPLAYER_STRETCH43 = "videoplayer.stretch43";
110  static constexpr auto SETTING_VIDEOPLAYER_TELETEXTENABLED = "videoplayer.teletextenabled";
111  static constexpr auto SETTING_VIDEOPLAYER_TELETEXTSCALE = "videoplayer.teletextscale";
112  static constexpr auto SETTING_VIDEOPLAYER_STEREOSCOPICPLAYBACKMODE =
113  "videoplayer.stereoscopicplaybackmode";
114  static constexpr auto SETTING_VIDEOPLAYER_QUITSTEREOMODEONSTOP =
115  "videoplayer.quitstereomodeonstop";
116  static constexpr auto SETTING_VIDEOPLAYER_RENDERMETHOD = "videoplayer.rendermethod";
117  static constexpr auto SETTING_VIDEOPLAYER_HQSCALERS = "videoplayer.hqscalers";
118  static constexpr auto SETTING_VIDEOPLAYER_USEMEDIACODEC = "videoplayer.usemediacodec";
119  static constexpr auto SETTING_VIDEOPLAYER_USEMEDIACODECSURFACE =
120  "videoplayer.usemediacodecsurface";
121  static constexpr auto SETTING_VIDEOPLAYER_USEVDPAU = "videoplayer.usevdpau";
122  static constexpr auto SETTING_VIDEOPLAYER_USEVDPAUMIXER = "videoplayer.usevdpaumixer";
123  static constexpr auto SETTING_VIDEOPLAYER_USEVDPAUMPEG2 = "videoplayer.usevdpaumpeg2";
124  static constexpr auto SETTING_VIDEOPLAYER_USEVDPAUMPEG4 = "videoplayer.usevdpaumpeg4";
125  static constexpr auto SETTING_VIDEOPLAYER_USEVDPAUVC1 = "videoplayer.usevdpauvc1";
126  static constexpr auto SETTING_VIDEOPLAYER_USEDXVA2 = "videoplayer.usedxva2";
127  static constexpr auto SETTING_VIDEOPLAYER_USEVTB = "videoplayer.usevtb";
128  static constexpr auto SETTING_VIDEOPLAYER_USEPRIMEDECODER = "videoplayer.useprimedecoder";
129  static constexpr auto SETTING_VIDEOPLAYER_USESTAGEFRIGHT = "videoplayer.usestagefright";
130  static constexpr auto SETTING_VIDEOPLAYER_LIMITGUIUPDATE = "videoplayer.limitguiupdate";
131  static constexpr auto SETTING_VIDEOPLAYER_SUPPORTMVC = "videoplayer.supportmvc";
132  static constexpr auto SETTING_MYVIDEOS_SELECTACTION = "myvideos.selectaction";
133  static constexpr auto SETTING_MYVIDEOS_USETAGS = "myvideos.usetags";
134  static constexpr auto SETTING_MYVIDEOS_EXTRACTFLAGS = "myvideos.extractflags";
135  static constexpr auto SETTING_MYVIDEOS_EXTRACTCHAPTERTHUMBS = "myvideos.extractchapterthumbs";
136  static constexpr auto SETTING_MYVIDEOS_REPLACELABELS = "myvideos.replacelabels";
137  static constexpr auto SETTING_MYVIDEOS_EXTRACTTHUMB = "myvideos.extractthumb";
138  static constexpr auto SETTING_MYVIDEOS_STACKVIDEOS = "myvideos.stackvideos";
139  static constexpr auto SETTING_LOCALE_SUBTITLELANGUAGE = "locale.subtitlelanguage";
140  static constexpr auto SETTING_SUBTITLES_PARSECAPTIONS = "subtitles.parsecaptions";
141  static constexpr auto SETTING_SUBTITLES_CAPTIONSALIGN = "subtitles.captionsalign";
142  static constexpr auto SETTING_SUBTITLES_ALIGN = "subtitles.align";
143  static constexpr auto SETTING_SUBTITLES_STEREOSCOPICDEPTH = "subtitles.stereoscopicdepth";
144  static constexpr auto SETTING_SUBTITLES_FONTNAME = "subtitles.fontname";
145  static constexpr auto SETTING_SUBTITLES_FONTSIZE = "subtitles.fontsize";
146  static constexpr auto SETTING_SUBTITLES_STYLE = "subtitles.style";
147  static constexpr auto SETTING_SUBTITLES_COLOR = "subtitles.colorpick";
148  static constexpr auto SETTING_SUBTITLES_BORDERSIZE = "subtitles.bordersize";
149  static constexpr auto SETTING_SUBTITLES_BORDERCOLOR = "subtitles.bordercolorpick";
150  static constexpr auto SETTING_SUBTITLES_OPACITY = "subtitles.opacity";
151  static constexpr auto SETTING_SUBTITLES_BLUR = "subtitles.blur";
152  static constexpr auto SETTING_SUBTITLES_BACKGROUNDTYPE = "subtitles.backgroundtype";
153  static constexpr auto SETTING_SUBTITLES_SHADOWCOLOR = "subtitles.shadowcolor";
154  static constexpr auto SETTING_SUBTITLES_SHADOWOPACITY = "subtitles.shadowopacity";
155  static constexpr auto SETTING_SUBTITLES_SHADOWSIZE = "subtitles.shadowsize";
156  static constexpr auto SETTING_SUBTITLES_BGCOLOR = "subtitles.bgcolorpick";
157  static constexpr auto SETTING_SUBTITLES_BGOPACITY = "subtitles.bgopacity";
158  static constexpr auto SETTING_SUBTITLES_MARGINVERTICAL = "subtitles.marginvertical";
159  static constexpr auto SETTING_SUBTITLES_CHARSET = "subtitles.charset";
160  static constexpr auto SETTING_SUBTITLES_OVERRIDEFONTS = "subtitles.overridefonts";
161  static constexpr auto SETTING_SUBTITLES_OVERRIDESTYLES = "subtitles.overridestyles";
162  static constexpr auto SETTING_SUBTITLES_LANGUAGES = "subtitles.languages";
163  static constexpr auto SETTING_SUBTITLES_STORAGEMODE = "subtitles.storagemode";
164  static constexpr auto SETTING_SUBTITLES_CUSTOMPATH = "subtitles.custompath";
165  static constexpr auto SETTING_SUBTITLES_PAUSEONSEARCH = "subtitles.pauseonsearch";
166  static constexpr auto SETTING_SUBTITLES_DOWNLOADFIRST = "subtitles.downloadfirst";
167  static constexpr auto SETTING_SUBTITLES_TV = "subtitles.tv";
168  static constexpr auto SETTING_SUBTITLES_MOVIE = "subtitles.movie";
169  static constexpr auto SETTING_DVDS_AUTORUN = "dvds.autorun";
170  static constexpr auto SETTING_DVDS_PLAYERREGION = "dvds.playerregion";
171  static constexpr auto SETTING_DVDS_AUTOMENU = "dvds.automenu";
172  static constexpr auto SETTING_DISC_PLAYBACK = "disc.playback";
173  static constexpr auto SETTING_BLURAY_PLAYERREGION = "bluray.playerregion";
174  static constexpr auto SETTING_ACCESSIBILITY_AUDIOVISUAL = "accessibility.audiovisual";
175  static constexpr auto SETTING_ACCESSIBILITY_AUDIOHEARING = "accessibility.audiohearing";
176  static constexpr auto SETTING_ACCESSIBILITY_SUBHEARING = "accessibility.subhearing";
177  static constexpr auto SETTING_SCRAPERS_MOVIESDEFAULT = "scrapers.moviesdefault";
178  static constexpr auto SETTING_SCRAPERS_TVSHOWSDEFAULT = "scrapers.tvshowsdefault";
179  static constexpr auto SETTING_SCRAPERS_MUSICVIDEOSDEFAULT = "scrapers.musicvideosdefault";
180  static constexpr auto SETTING_PVRMANAGER_PRESELECTPLAYINGCHANNEL =
181  "pvrmanager.preselectplayingchannel";
182  static constexpr auto SETTING_PVRMANAGER_SYNCCHANNELGROUPS = "pvrmanager.syncchannelgroups";
183  static constexpr auto SETTING_PVRMANAGER_BACKENDCHANNELORDER = "pvrmanager.backendchannelorder";
184  static constexpr auto SETTING_PVRMANAGER_USEBACKENDCHANNELNUMBERS =
185  "pvrmanager.usebackendchannelnumbers";
186  static constexpr auto SETTING_PVRMANAGER_USEBACKENDCHANNELNUMBERSALWAYS =
187  "pvrmanager.usebackendchannelnumbersalways";
188  static constexpr auto SETTING_PVRMANAGER_STARTGROUPCHANNELNUMBERSFROMONE =
189  "pvrmanager.startgroupchannelnumbersfromone";
190  static constexpr auto SETTING_PVRMANAGER_CLIENTPRIORITIES = "pvrmanager.clientpriorities";
191  static constexpr auto SETTING_PVRMANAGER_CHANNELMANAGER = "pvrmanager.channelmanager";
192  static constexpr auto SETTING_PVRMANAGER_GROUPMANAGER = "pvrmanager.groupmanager";
193  static constexpr auto SETTING_PVRMANAGER_CHANNELSCAN = "pvrmanager.channelscan";
194  static constexpr auto SETTING_PVRMANAGER_RESETDB = "pvrmanager.resetdb";
195  static constexpr auto SETTING_PVRMANAGER_ADDONS = "pvrmanager.addons";
196  static constexpr auto SETTING_PVRMENU_DISPLAYCHANNELINFO = "pvrmenu.displaychannelinfo";
197  static constexpr auto SETTING_PVRMENU_CLOSECHANNELOSDONSWITCH = "pvrmenu.closechannelosdonswitch";
198  static constexpr auto SETTING_PVRMENU_ICONPATH = "pvrmenu.iconpath";
199  static constexpr auto SETTING_PVRMENU_SEARCHICONS = "pvrmenu.searchicons";
200  static constexpr auto SETTING_EPG_PAST_DAYSTODISPLAY = "epg.pastdaystodisplay";
201  static constexpr auto SETTING_EPG_FUTURE_DAYSTODISPLAY = "epg.futuredaystodisplay";
202  static constexpr auto SETTING_EPG_SELECTACTION = "epg.selectaction";
203  static constexpr auto SETTING_EPG_HIDENOINFOAVAILABLE = "epg.hidenoinfoavailable";
204  static constexpr auto SETTING_EPG_EPGUPDATE = "epg.epgupdate";
205  static constexpr auto SETTING_EPG_PREVENTUPDATESWHILEPLAYINGTV =
206  "epg.preventupdateswhileplayingtv";
207  static constexpr auto SETTING_EPG_RESETEPG = "epg.resetepg";
208  static constexpr auto SETTING_PVRPLAYBACK_SWITCHTOFULLSCREENCHANNELTYPES =
209  "pvrplayback.switchtofullscreenchanneltypes";
210  static constexpr auto SETTING_PVRPLAYBACK_SIGNALQUALITY = "pvrplayback.signalquality";
211  static constexpr auto SETTING_PVRPLAYBACK_CONFIRMCHANNELSWITCH =
212  "pvrplayback.confirmchannelswitch";
213  static constexpr auto SETTING_PVRPLAYBACK_CHANNELENTRYTIMEOUT = "pvrplayback.channelentrytimeout";
214  static constexpr auto SETTING_PVRPLAYBACK_DELAYMARKLASTWATCHED =
215  "pvrplayback.delaymarklastwatched";
216  static constexpr auto SETTING_PVRPLAYBACK_FPS = "pvrplayback.fps";
217  static constexpr auto SETTING_PVRRECORD_INSTANTRECORDACTION = "pvrrecord.instantrecordaction";
218  static constexpr auto SETTING_PVRRECORD_INSTANTRECORDTIME = "pvrrecord.instantrecordtime";
219  static constexpr auto SETTING_PVRRECORD_MARGINSTART = "pvrrecord.marginstart";
220  static constexpr auto SETTING_PVRRECORD_MARGINEND = "pvrrecord.marginend";
221  static constexpr auto SETTING_PVRRECORD_TIMERNOTIFICATIONS = "pvrrecord.timernotifications";
222  static constexpr auto SETTING_PVRRECORD_GROUPRECORDINGS = "pvrrecord.grouprecordings";
223  static constexpr auto SETTING_PVRREMINDERS_AUTOCLOSEDELAY = "pvrreminders.autoclosedelay";
224  static constexpr auto SETTING_PVRREMINDERS_AUTORECORD = "pvrreminders.autorecord";
225  static constexpr auto SETTING_PVRREMINDERS_AUTOSWITCH = "pvrreminders.autoswitch";
226  static constexpr auto SETTING_PVRPOWERMANAGEMENT_ENABLED = "pvrpowermanagement.enabled";
227  static constexpr auto SETTING_PVRPOWERMANAGEMENT_BACKENDIDLETIME =
228  "pvrpowermanagement.backendidletime";
229  static constexpr auto SETTING_PVRPOWERMANAGEMENT_SETWAKEUPCMD = "pvrpowermanagement.setwakeupcmd";
230  static constexpr auto SETTING_PVRPOWERMANAGEMENT_PREWAKEUP = "pvrpowermanagement.prewakeup";
231  static constexpr auto SETTING_PVRPOWERMANAGEMENT_DAILYWAKEUP = "pvrpowermanagement.dailywakeup";
232  static constexpr auto SETTING_PVRPOWERMANAGEMENT_DAILYWAKEUPTIME =
233  "pvrpowermanagement.dailywakeuptime";
234  static constexpr auto SETTING_PVRPARENTAL_ENABLED = "pvrparental.enabled";
235  static constexpr auto SETTING_PVRPARENTAL_PIN = "pvrparental.pin";
236  static constexpr auto SETTING_PVRPARENTAL_DURATION = "pvrparental.duration";
237  static constexpr auto SETTING_PVRCLIENT_MENUHOOK = "pvrclient.menuhook";
238  static constexpr auto SETTING_PVRTIMERS_HIDEDISABLEDTIMERS = "pvrtimers.hidedisabledtimers";
239  static constexpr auto SETTING_MUSICLIBRARY_SHOWCOMPILATIONARTISTS =
240  "musiclibrary.showcompilationartists";
241  static constexpr auto SETTING_MUSICLIBRARY_SHOWDISCS = "musiclibrary.showdiscs";
242  static constexpr auto SETTING_MUSICLIBRARY_USEORIGINALDATE = "musiclibrary.useoriginaldate";
243  static constexpr auto SETTING_MUSICLIBRARY_USEARTISTSORTNAME = "musiclibrary.useartistsortname";
244  static constexpr auto SETTING_MUSICLIBRARY_DOWNLOADINFO = "musiclibrary.downloadinfo";
245  static constexpr auto SETTING_MUSICLIBRARY_ARTISTSFOLDER = "musiclibrary.artistsfolder";
246  static constexpr auto SETTING_MUSICLIBRARY_PREFERONLINEALBUMART =
247  "musiclibrary.preferonlinealbumart";
248  static constexpr auto SETTING_MUSICLIBRARY_ARTWORKLEVEL = "musiclibrary.artworklevel";
249  static constexpr auto SETTING_MUSICLIBRARY_USEALLLOCALART = "musiclibrary.usealllocalart";
250  static constexpr auto SETTING_MUSICLIBRARY_USEALLREMOTEART = "musiclibrary.useallremoteart";
251  static constexpr auto SETTING_MUSICLIBRARY_ARTISTART_WHITELIST =
252  "musiclibrary.artistartwhitelist";
253  static constexpr auto SETTING_MUSICLIBRARY_ALBUMART_WHITELIST = "musiclibrary.albumartwhitelist";
254  static constexpr auto SETTING_MUSICLIBRARY_MUSICTHUMBS = "musiclibrary.musicthumbs";
255  static constexpr auto SETTING_MUSICLIBRARY_ARTSETTINGS_UPDATED = "musiclibrary.artsettings";
256  static constexpr auto SETTING_MUSICLIBRARY_ALBUMSSCRAPER = "musiclibrary.albumsscraper";
257  static constexpr auto SETTING_MUSICLIBRARY_ARTISTSSCRAPER = "musiclibrary.artistsscraper";
258  static constexpr auto SETTING_MUSICLIBRARY_OVERRIDETAGS = "musiclibrary.overridetags";
259  static constexpr auto SETTING_MUSICLIBRARY_SHOWALLITEMS = "musiclibrary.showallitems";
260  static constexpr auto SETTING_MUSICLIBRARY_UPDATEONSTARTUP = "musiclibrary.updateonstartup";
261  static constexpr auto SETTING_MUSICLIBRARY_BACKGROUNDUPDATE = "musiclibrary.backgroundupdate";
262  static constexpr auto SETTING_MUSICLIBRARY_CLEANUP = "musiclibrary.cleanup";
263  static constexpr auto SETTING_MUSICLIBRARY_EXPORT = "musiclibrary.export";
264  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_FILETYPE = "musiclibrary.exportfiletype";
265  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_FOLDER = "musiclibrary.exportfolder";
266  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_ITEMS = "musiclibrary.exportitems";
267  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_UNSCRAPED = "musiclibrary.exportunscraped";
268  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_OVERWRITE = "musiclibrary.exportoverwrite";
269  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_ARTWORK = "musiclibrary.exportartwork";
270  static constexpr auto SETTING_MUSICLIBRARY_EXPORT_SKIPNFO = "musiclibrary.exportskipnfo";
271  static constexpr auto SETTING_MUSICLIBRARY_IMPORT = "musiclibrary.import";
272  static constexpr auto SETTING_MUSICPLAYER_AUTOPLAYNEXTITEM = "musicplayer.autoplaynextitem";
273  static constexpr auto SETTING_MUSICPLAYER_QUEUEBYDEFAULT = "musicplayer.queuebydefault";
274  static constexpr auto SETTING_MUSICPLAYER_SEEKSTEPS = "musicplayer.seeksteps";
275  static constexpr auto SETTING_MUSICPLAYER_SEEKDELAY = "musicplayer.seekdelay";
276  static constexpr auto SETTING_MUSICPLAYER_REPLAYGAINTYPE = "musicplayer.replaygaintype";
277  static constexpr auto SETTING_MUSICPLAYER_REPLAYGAINPREAMP = "musicplayer.replaygainpreamp";
278  static constexpr auto SETTING_MUSICPLAYER_REPLAYGAINNOGAINPREAMP =
279  "musicplayer.replaygainnogainpreamp";
280  static constexpr auto SETTING_MUSICPLAYER_REPLAYGAINAVOIDCLIPPING =
281  "musicplayer.replaygainavoidclipping";
282  static constexpr auto SETTING_MUSICPLAYER_CROSSFADE = "musicplayer.crossfade";
283  static constexpr auto SETTING_MUSICPLAYER_CROSSFADEALBUMTRACKS =
284  "musicplayer.crossfadealbumtracks";
285  static constexpr auto SETTING_MUSICPLAYER_VISUALISATION = "musicplayer.visualisation";
286  static constexpr auto SETTING_MUSICFILES_SELECTACTION = "musicfiles.selectaction";
287  static constexpr auto SETTING_MUSICFILES_USETAGS = "musicfiles.usetags";
288  static constexpr auto SETTING_MUSICFILES_TRACKFORMAT = "musicfiles.trackformat";
289  static constexpr auto SETTING_MUSICFILES_NOWPLAYINGTRACKFORMAT =
290  "musicfiles.nowplayingtrackformat";
291  static constexpr auto SETTING_MUSICFILES_LIBRARYTRACKFORMAT = "musicfiles.librarytrackformat";
292  static constexpr auto SETTING_MUSICFILES_FINDREMOTETHUMBS = "musicfiles.findremotethumbs";
293  static constexpr auto SETTING_AUDIOCDS_AUTOACTION = "audiocds.autoaction";
294  static constexpr auto SETTING_AUDIOCDS_USECDDB = "audiocds.usecddb";
295  static constexpr auto SETTING_AUDIOCDS_RECORDINGPATH = "audiocds.recordingpath";
296  static constexpr auto SETTING_AUDIOCDS_TRACKPATHFORMAT = "audiocds.trackpathformat";
297  static constexpr auto SETTING_AUDIOCDS_ENCODER = "audiocds.encoder";
298  static constexpr auto SETTING_AUDIOCDS_SETTINGS = "audiocds.settings";
299  static constexpr auto SETTING_AUDIOCDS_EJECTONRIP = "audiocds.ejectonrip";
300  static constexpr auto SETTING_MYMUSIC_SONGTHUMBINVIS = "mymusic.songthumbinvis";
301  static constexpr auto SETTING_MYMUSIC_DEFAULTLIBVIEW = "mymusic.defaultlibview";
302  static constexpr auto SETTING_PICTURES_USETAGS = "pictures.usetags";
303  static constexpr auto SETTING_PICTURES_GENERATETHUMBS = "pictures.generatethumbs";
304  static constexpr auto SETTING_PICTURES_SHOWVIDEOS = "pictures.showvideos";
305  static constexpr auto SETTING_PICTURES_DISPLAYRESOLUTION = "pictures.displayresolution";
306  static constexpr auto SETTING_SLIDESHOW_STAYTIME = "slideshow.staytime";
307  static constexpr auto SETTING_SLIDESHOW_DISPLAYEFFECTS = "slideshow.displayeffects";
308  static constexpr auto SETTING_SLIDESHOW_SHUFFLE = "slideshow.shuffle";
309  static constexpr auto SETTING_SLIDESHOW_HIGHQUALITYDOWNSCALING =
310  "slideshow.highqualitydownscaling";
311  static constexpr auto SETTING_WEATHER_CURRENTLOCATION = "weather.currentlocation";
312  static constexpr auto SETTING_WEATHER_ADDON = "weather.addon";
313  static constexpr auto SETTING_WEATHER_ADDONSETTINGS = "weather.addonsettings";
314  static constexpr auto SETTING_SERVICES_DEVICENAME = "services.devicename";
315  static constexpr auto SETTING_SERVICES_DEVICEUUID = "services.deviceuuid";
316  static constexpr auto SETTING_SERVICES_UPNP = "services.upnp";
317  static constexpr auto SETTING_SERVICES_UPNPSERVER = "services.upnpserver";
318  static constexpr auto SETTING_SERVICES_UPNPANNOUNCE = "services.upnpannounce";
319  static constexpr auto SETTING_SERVICES_UPNPLOOKFOREXTERNALSUBTITLES =
320  "services.upnplookforexternalsubtitles";
321  static constexpr auto SETTING_SERVICES_UPNPCONTROLLER = "services.upnpcontroller";
322  static constexpr auto SETTING_SERVICES_UPNPRENDERER = "services.upnprenderer";
323  static constexpr auto SETTING_SERVICES_WEBSERVER = "services.webserver";
324  static constexpr auto SETTING_SERVICES_WEBSERVERPORT = "services.webserverport";
325  static constexpr auto SETTING_SERVICES_WEBSERVERAUTHENTICATION =
326  "services.webserverauthentication";
327  static constexpr auto SETTING_SERVICES_WEBSERVERUSERNAME = "services.webserverusername";
328  static constexpr auto SETTING_SERVICES_WEBSERVERPASSWORD = "services.webserverpassword";
329  static constexpr auto SETTING_SERVICES_WEBSERVERSSL = "services.webserverssl";
330  static constexpr auto SETTING_SERVICES_WEBSKIN = "services.webskin";
331  static constexpr auto SETTING_SERVICES_ESENABLED = "services.esenabled";
332  static constexpr auto SETTING_SERVICES_ESPORT = "services.esport";
333  static constexpr auto SETTING_SERVICES_ESPORTRANGE = "services.esportrange";
334  static constexpr auto SETTING_SERVICES_ESMAXCLIENTS = "services.esmaxclients";
335  static constexpr auto SETTING_SERVICES_ESALLINTERFACES = "services.esallinterfaces";
336  static constexpr auto SETTING_SERVICES_ESINITIALDELAY = "services.esinitialdelay";
337  static constexpr auto SETTING_SERVICES_ESCONTINUOUSDELAY = "services.escontinuousdelay";
338  static constexpr auto SETTING_SERVICES_ZEROCONF = "services.zeroconf";
339  static constexpr auto SETTING_SERVICES_AIRPLAY = "services.airplay";
340  static constexpr auto SETTING_SERVICES_AIRPLAYVOLUMECONTROL = "services.airplayvolumecontrol";
341  static constexpr auto SETTING_SERVICES_USEAIRPLAYPASSWORD = "services.useairplaypassword";
342  static constexpr auto SETTING_SERVICES_AIRPLAYPASSWORD = "services.airplaypassword";
343  static constexpr auto SETTING_SERVICES_AIRPLAYVIDEOSUPPORT = "services.airplayvideosupport";
344  static constexpr auto SETTING_SMB_WINSSERVER = "smb.winsserver";
345  static constexpr auto SETTING_SMB_WORKGROUP = "smb.workgroup";
346  static constexpr auto SETTING_SMB_MINPROTOCOL = "smb.minprotocol";
347  static constexpr auto SETTING_SMB_MAXPROTOCOL = "smb.maxprotocol";
348  static constexpr auto SETTING_SMB_LEGACYSECURITY = "smb.legacysecurity";
349  static constexpr auto SETTING_SERVICES_WSDISCOVERY = "services.wsdiscovery";
350  static constexpr auto SETTING_VIDEOSCREEN_MONITOR = "videoscreen.monitor";
351  static constexpr auto SETTING_VIDEOSCREEN_SCREEN = "videoscreen.screen";
352  static constexpr auto SETTING_VIDEOSCREEN_WHITELIST = "videoscreen.whitelist";
353  static constexpr auto SETTING_VIDEOSCREEN_RESOLUTION = "videoscreen.resolution";
354  static constexpr auto SETTING_VIDEOSCREEN_SCREENMODE = "videoscreen.screenmode";
355  static constexpr auto SETTING_VIDEOSCREEN_FAKEFULLSCREEN = "videoscreen.fakefullscreen";
356  static constexpr auto SETTING_VIDEOSCREEN_BLANKDISPLAYS = "videoscreen.blankdisplays";
357  static constexpr auto SETTING_VIDEOSCREEN_STEREOSCOPICMODE = "videoscreen.stereoscopicmode";
358  static constexpr auto SETTING_VIDEOSCREEN_PREFEREDSTEREOSCOPICMODE =
359  "videoscreen.preferedstereoscopicmode";
360  static constexpr auto SETTING_VIDEOSCREEN_NOOFBUFFERS = "videoscreen.noofbuffers";
361  static constexpr auto SETTING_VIDEOSCREEN_3DLUT = "videoscreen.cms3dlut";
362  static constexpr auto SETTING_VIDEOSCREEN_DISPLAYPROFILE = "videoscreen.displayprofile";
363  static constexpr auto SETTING_VIDEOSCREEN_GUICALIBRATION = "videoscreen.guicalibration";
364  static constexpr auto SETTING_VIDEOSCREEN_TESTPATTERN = "videoscreen.testpattern";
365  static constexpr auto SETTING_VIDEOSCREEN_LIMITEDRANGE = "videoscreen.limitedrange";
366  static constexpr auto SETTING_VIDEOSCREEN_FRAMEPACKING = "videoscreen.framepacking";
367  static constexpr auto SETTING_VIDEOSCREEN_10BITSURFACES = "videoscreen.10bitsurfaces";
368  static constexpr auto SETTING_VIDEOSCREEN_GUISDRPEAKLUMINANCE = "videoscreen.guisdrpeakluminance";
369  static constexpr auto SETTING_AUDIOOUTPUT_AUDIODEVICE = "audiooutput.audiodevice";
370  static constexpr auto SETTING_AUDIOOUTPUT_CHANNELS = "audiooutput.channels";
371  static constexpr auto SETTING_AUDIOOUTPUT_CONFIG = "audiooutput.config";
372  static constexpr auto SETTING_AUDIOOUTPUT_SAMPLERATE = "audiooutput.samplerate";
373  static constexpr auto SETTING_AUDIOOUTPUT_STEREOUPMIX = "audiooutput.stereoupmix";
374  static constexpr auto SETTING_AUDIOOUTPUT_MAINTAINORIGINALVOLUME =
375  "audiooutput.maintainoriginalvolume";
376  static constexpr auto SETTING_AUDIOOUTPUT_PROCESSQUALITY = "audiooutput.processquality";
377  static constexpr auto SETTING_AUDIOOUTPUT_ATEMPOTHRESHOLD = "audiooutput.atempothreshold";
378  static constexpr auto SETTING_AUDIOOUTPUT_STREAMSILENCE = "audiooutput.streamsilence";
379  static constexpr auto SETTING_AUDIOOUTPUT_STREAMNOISE = "audiooutput.streamnoise";
380  static constexpr auto SETTING_AUDIOOUTPUT_GUISOUNDMODE = "audiooutput.guisoundmode";
381  static constexpr auto SETTING_AUDIOOUTPUT_GUISOUNDVOLUME = "audiooutput.guisoundvolume";
382  static constexpr auto SETTING_AUDIOOUTPUT_PASSTHROUGH = "audiooutput.passthrough";
383  static constexpr auto SETTING_AUDIOOUTPUT_PASSTHROUGHDEVICE = "audiooutput.passthroughdevice";
384  static constexpr auto SETTING_AUDIOOUTPUT_AC3PASSTHROUGH = "audiooutput.ac3passthrough";
385  static constexpr auto SETTING_AUDIOOUTPUT_AC3TRANSCODE = "audiooutput.ac3transcode";
386  static constexpr auto SETTING_AUDIOOUTPUT_EAC3PASSTHROUGH = "audiooutput.eac3passthrough";
387  static constexpr auto SETTING_AUDIOOUTPUT_DTSPASSTHROUGH = "audiooutput.dtspassthrough";
388  static constexpr auto SETTING_AUDIOOUTPUT_TRUEHDPASSTHROUGH = "audiooutput.truehdpassthrough";
389  static constexpr auto SETTING_AUDIOOUTPUT_DTSHDPASSTHROUGH = "audiooutput.dtshdpassthrough";
390  static constexpr auto SETTING_AUDIOOUTPUT_DTSHDCOREFALLBACK = "audiooutput.dtshdcorefallback";
391  static constexpr auto SETTING_AUDIOOUTPUT_VOLUMESTEPS = "audiooutput.volumesteps";
392  static constexpr auto SETTING_INPUT_PERIPHERALS = "input.peripherals";
393  static constexpr auto SETTING_INPUT_PERIPHERALLIBRARIES = "input.peripherallibraries";
394  static constexpr auto SETTING_INPUT_ENABLEMOUSE = "input.enablemouse";
395  static constexpr auto SETTING_INPUT_ASKNEWCONTROLLERS = "input.asknewcontrollers";
396  static constexpr auto SETTING_INPUT_CONTROLLERCONFIG = "input.controllerconfig";
397  static constexpr auto SETTING_INPUT_RUMBLENOTIFY = "input.rumblenotify";
398  static constexpr auto SETTING_INPUT_TESTRUMBLE = "input.testrumble";
399  static constexpr auto SETTING_INPUT_CONTROLLERPOWEROFF = "input.controllerpoweroff";
400  static constexpr auto SETTING_INPUT_APPLEREMOTEMODE = "input.appleremotemode";
401  static constexpr auto SETTING_INPUT_APPLEREMOTEALWAYSON = "input.appleremotealwayson";
402  static constexpr auto SETTING_INPUT_APPLEREMOTESEQUENCETIME = "input.appleremotesequencetime";
403  static constexpr auto SETTING_INPUT_SIRIREMOTEIDLETIMERENABLED = "input.siriremoteidletimerenabled";
404  static constexpr auto SETTING_INPUT_SIRIREMOTEIDLETIME = "input.siriremoteidletime";
405  static constexpr auto SETTING_INPUT_SIRIREMOTEHORIZONTALSENSITIVITY =
406  "input.siriremotehorizontalsensitivity";
407  static constexpr auto SETTING_INPUT_SIRIREMOTEVERTICALSENSITIVITY =
408  "input.siriremoteverticalsensitivity";
409  static constexpr auto SETTING_INPUT_TVOSUSEKODIKEYBOARD = "input.tvosusekodikeyboard";
410  static constexpr auto SETTING_NETWORK_USEHTTPPROXY = "network.usehttpproxy";
411  static constexpr auto SETTING_NETWORK_HTTPPROXYTYPE = "network.httpproxytype";
412  static constexpr auto SETTING_NETWORK_HTTPPROXYSERVER = "network.httpproxyserver";
413  static constexpr auto SETTING_NETWORK_HTTPPROXYPORT = "network.httpproxyport";
414  static constexpr auto SETTING_NETWORK_HTTPPROXYUSERNAME = "network.httpproxyusername";
415  static constexpr auto SETTING_NETWORK_HTTPPROXYPASSWORD = "network.httpproxypassword";
416  static constexpr auto SETTING_NETWORK_BANDWIDTH = "network.bandwidth";
417  static constexpr auto SETTING_POWERMANAGEMENT_DISPLAYSOFF = "powermanagement.displaysoff";
418  static constexpr auto SETTING_POWERMANAGEMENT_SHUTDOWNTIME = "powermanagement.shutdowntime";
419  static constexpr auto SETTING_POWERMANAGEMENT_SHUTDOWNSTATE = "powermanagement.shutdownstate";
420  static constexpr auto SETTING_POWERMANAGEMENT_WAKEONACCESS = "powermanagement.wakeonaccess";
421  static constexpr auto SETTING_POWERMANAGEMENT_WAITFORNETWORK = "powermanagement.waitfornetwork";
422  static constexpr auto SETTING_DEBUG_SHOWLOGINFO = "debug.showloginfo";
423  static constexpr auto SETTING_DEBUG_EXTRALOGGING = "debug.extralogging";
424  static constexpr auto SETTING_DEBUG_SETEXTRALOGLEVEL = "debug.setextraloglevel";
425  static constexpr auto SETTING_DEBUG_SCREENSHOTPATH = "debug.screenshotpath";
426  static constexpr auto SETTING_DEBUG_SHARE_LOG = "debug.sharelog";
427  static constexpr auto SETTING_EVENTLOG_ENABLED = "eventlog.enabled";
428  static constexpr auto SETTING_EVENTLOG_ENABLED_NOTIFICATIONS = "eventlog.enablednotifications";
429  static constexpr auto SETTING_EVENTLOG_SHOW = "eventlog.show";
430  static constexpr auto SETTING_MASTERLOCK_LOCKCODE = "masterlock.lockcode";
431  static constexpr auto SETTING_MASTERLOCK_STARTUPLOCK = "masterlock.startuplock";
432  static constexpr auto SETTING_MASTERLOCK_MAXRETRIES = "masterlock.maxretries";
433  static constexpr auto SETTING_CACHE_HARDDISK = "cache.harddisk";
434  static constexpr auto SETTING_CACHEVIDEO_DVDROM = "cachevideo.dvdrom";
435  static constexpr auto SETTING_CACHEVIDEO_LAN = "cachevideo.lan";
436  static constexpr auto SETTING_CACHEVIDEO_INTERNET = "cachevideo.internet";
437  static constexpr auto SETTING_CACHEAUDIO_DVDROM = "cacheaudio.dvdrom";
438  static constexpr auto SETTING_CACHEAUDIO_LAN = "cacheaudio.lan";
439  static constexpr auto SETTING_CACHEAUDIO_INTERNET = "cacheaudio.internet";
440  static constexpr auto SETTING_CACHEDVD_DVDROM = "cachedvd.dvdrom";
441  static constexpr auto SETTING_CACHEDVD_LAN = "cachedvd.lan";
442  static constexpr auto SETTING_CACHEUNKNOWN_INTERNET = "cacheunknown.internet";
443  static constexpr auto SETTING_SYSTEM_PLAYLISTSPATH = "system.playlistspath";
444  static constexpr auto SETTING_ADDONS_AUTOUPDATES = "general.addonupdates";
445  static constexpr auto SETTING_ADDONS_NOTIFICATIONS = "general.addonnotifications";
446  static constexpr auto SETTING_ADDONS_SHOW_RUNNING = "addons.showrunning";
447  static constexpr auto SETTING_ADDONS_ALLOW_UNKNOWN_SOURCES = "addons.unknownsources";
448  static constexpr auto SETTING_ADDONS_UPDATEMODE = "addons.updatemode";
449  static constexpr auto SETTING_ADDONS_MANAGE_DEPENDENCIES = "addons.managedependencies";
450  static constexpr auto SETTING_ADDONS_REMOVE_ORPHANED_DEPENDENCIES =
451  "addons.removeorphaneddependencies";
452  static constexpr auto SETTING_GENERAL_ADDONFOREIGNFILTER = "general.addonforeignfilter";
453  static constexpr auto SETTING_GENERAL_ADDONBROKENFILTER = "general.addonbrokenfilter";
454  static constexpr auto SETTING_SOURCE_VIDEOS = "source.videos";
455  static constexpr auto SETTING_SOURCE_MUSIC = "source.music";
456  static constexpr auto SETTING_SOURCE_PICTURES = "source.pictures";
457 
458  // values for SETTING_VIDEOLIBRARY_SHOWUNWATCHEDPLOTS
459  static const int VIDEOLIBRARY_PLOTS_SHOW_UNWATCHED_MOVIES = 0;
460  static const int VIDEOLIBRARY_PLOTS_SHOW_UNWATCHED_TVSHOWEPISODES = 1;
461  static const int VIDEOLIBRARY_THUMB_SHOW_UNWATCHED_EPISODE = 2;
462  // values for SETTING_VIDEOLIBRARY_ARTWORK_LEVEL
463  static const int VIDEOLIBRARY_ARTWORK_LEVEL_ALL = 0;
464  static const int VIDEOLIBRARY_ARTWORK_LEVEL_BASIC = 1;
465  static const int VIDEOLIBRARY_ARTWORK_LEVEL_CUSTOM = 2;
466  static const int VIDEOLIBRARY_ARTWORK_LEVEL_NONE = 3;
467 
468  // values for SETTING_MUSICLIBRARY_ARTWORKLEVEL
469  static const int MUSICLIBRARY_ARTWORK_LEVEL_ALL = 0;
470  static const int MUSICLIBRARY_ARTWORK_LEVEL_BASIC = 1;
471  static const int MUSICLIBRARY_ARTWORK_LEVEL_CUSTOM = 2;
472  static const int MUSICLIBRARY_ARTWORK_LEVEL_NONE = 3;
473 
480  CSettings() = default;
481  ~CSettings() override = default;
482 
483  CSettingsManager* GetSettingsManager() const { return m_settingsManager; }
484 
485  // specialization of CSettingsBase
486  bool Initialize() override;
487 
493  void RegisterSubSettings(ISubSettings* subSettings);
499  void UnregisterSubSettings(ISubSettings* subSettings);
500 
501  // implementations of CSettingsBase
502  bool Load() override;
503  bool Save() override;
504 
511  bool Load(const std::string &file);
518  bool Load(const TiXmlElement* root);
526  bool LoadHidden(const TiXmlElement *root) { return CSettingsBase::LoadHiddenValuesFromXml(root); }
527 
534  bool Save(const std::string &file);
541  bool Save(TiXmlNode* root) const override;
542 
551  bool LoadSetting(const TiXmlNode *node, const std::string &settingId);
552 
553  // overwrite (not override) from CSettingsBase
554  bool GetBool(const std::string& id) const;
555 
563  void Clear() override;
564 
565 protected:
566  // specializations of CSettingsBase
567  void InitializeSettingTypes() override;
568  void InitializeControls() override;
569  void InitializeOptionFillers() override;
570  void UninitializeOptionFillers() override;
571  void InitializeConditions() override;
572  void UninitializeConditions() override;
573  void InitializeVisibility() override;
574  void InitializeDefaults() override;
575  void InitializeISettingsHandlers() override;
576  void UninitializeISettingsHandlers() override;
577  void InitializeISubSettings() override;
578  void UninitializeISubSettings() override;
579  void InitializeISettingCallbacks() override;
580  void UninitializeISettingCallbacks() override;
581 
582  // implementation of CSettingsBase
583  bool InitializeDefinitions() override;
584 
585 private:
586  CSettings(const CSettings&) = delete;
587  CSettings const& operator=(CSettings const&) = delete;
588 
589  bool Load(const TiXmlElement* root, bool& updated);
590 
591  // implementation of ISubSettings
592  bool Load(const TiXmlNode* settings) override;
593 
594  bool Initialize(const std::string &file);
595  bool Reset();
596 
597  std::set<ISubSettings*> m_subSettings;
598 };
List setting implementation.
Definition: Setting.h:168
Wrapper around CSettingsManager responsible for properly setting up the settings manager and register...
Definition: Settings.h:27
Definition: SettingControl.h:30
void RegisterSubSettings(ISubSettings *subSettings)
Registers the given ISubSettings implementation.
Definition: Settings.cpp:487
void UnregisterSubSettings(ISubSettings *subSettings)
Unregisters the given ISubSettings implementation.
Definition: Settings.cpp:496
Definition: SettingCreator.h:13
void Clear() override
Clears the complete settings.
Definition: Settings.cpp:590
CSettings()=default
Creates a new settings wrapper around a new settings manager.
bool LoadHiddenValuesFromXml(const TiXmlElement *root)
Loads hidden setting values from the given XML element.
Definition: SettingsBase.cpp:89
bool Save() override
Saves the setting values.
Definition: Settings.cpp:540
bool Load() override
Loads the setting values.
Definition: Settings.cpp:505
Definition: settings.py:1
Basic wrapper around CSettingsManager providing the framework for properly setting up the settings ma...
Definition: SettingsBase.h:31
Settings manager responsible for initializing, loading and handling all settings. ...
Definition: SettingsManager.h:41
static constexpr auto SETTING_LOOKANDFEEL_SKIN
Definition: Settings.h:31
bool LoadSetting(const TiXmlNode *node, const std::string &settingId)
Loads the setting being represented by the given XML node with the given identifier.
Definition: Settings.cpp:576
bool Initialize() override
Definition: Settings.cpp:456
bool LoadHidden(const TiXmlElement *root)
Loads setting values from the given XML element.
Definition: Settings.h:526
Interface defining methods to load additional setting values from an XML file being loaded by the set...
Definition: ISubSettings.h:18