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