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