aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Montellese <sascha.montellese@gmail.com>2013-05-21 11:24:15 -0700
committerSascha Montellese <sascha.montellese@gmail.com>2013-05-21 11:24:15 -0700
commit89cb1f65b4f6614e992dec5b1c3b647a424ce28b (patch)
treede4c592f1f0708ad5cee8cbe36c30fc983e376be
parentb85a1afc46a48448c0b9cf3a1c2a3129f0ebff1f (diff)
parent9cb2cdcfd058dc61da74ee20adf9032e86f1a46c (diff)
Merge pull request #2763 from Montellese/settings_definition_cleanup
settings: cleanup of the XML definition syntax
-rw-r--r--system/settings/darwin.xml19
-rw-r--r--system/settings/settings.xml1047
-rw-r--r--xbmc/settings/Setting.cpp111
-rw-r--r--xbmc/settings/SettingAddon.cpp18
4 files changed, 607 insertions, 588 deletions
diff --git a/system/settings/darwin.xml b/system/settings/darwin.xml
index 5d7e9d9898..796df34119 100644
--- a/system/settings/darwin.xml
+++ b/system/settings/darwin.xml
@@ -37,11 +37,9 @@
<setting id="input.appleremotealwayson" type="boolean" label="13602" help="">
<level>4</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="input.appleremotemode" operator="!is">0</dependency> <!-- APPLE_REMOTE_DISABLED -->
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="input.appleremotemode" operator="!is">0</dependency> <!-- APPLE_REMOTE_DISABLED -->
+ </dependencies>
</setting>
<setting id="input.appleremotesequencetime" type="integer" label="13603" help="">
<level>1</level>
@@ -50,12 +48,13 @@
<minimum label="351">50</minimum>
<step>50</step>
<maximum>1000</maximum>
- <formatlabel>14046</formatlabel>
- <dependencies>
- <dependency type="enable" id="input.appleremotemode">2</dependency> <!-- APPLE_REMOTE_UNIVERSAL -->
- </dependencies>
</constraints>
- <control type="spinner" format="string"/>
+ <dependencies>
+ <dependency type="enable" id="input.appleremotemode">2</dependency> <!-- APPLE_REMOTE_UNIVERSAL -->
+ </dependencies>
+ <control type="spinner" format="string">
+ <formatlabel>14046</formatlabel>
+ </control>
</setting>
</group>
</category>
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index a53a61067c..22c2072859 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -6,15 +6,15 @@
<setting id="lookandfeel.skin" type="addon" label="166" help="">
<level>0</level>
<default>skin.confluence</default>
- <addontype>xbmc.gui.skin</addontype>
+ <constraints>
+ <addontype>xbmc.gui.skin</addontype>
+ </constraints>
</setting>
<setting id="lookandfeel.skinsettings" type="action" label="21417" help="">
<level>0</level>
- <control type="button" format="action">
- <dependencies>
- <dependency type="enable" on="property" name="AddonHasSettings" setting="lookandfeel.skin" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="AddonHasSettings" setting="lookandfeel.skin" />
+ </dependencies>
</setting>
<setting id="lookandfeel.skintheme" type="string" label="15111" help="">
<level>1</level>
@@ -47,9 +47,10 @@
<minimum>-20</minimum>
<step>2</step>
<maximum>20</maximum>
- <formatlabel>14047</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14047</formatlabel>
+ </control>
</setting>
<setting id="lookandfeel.startupwindow" type="integer" label="512" help="">
<level>0</level>
@@ -76,12 +77,13 @@
<setting id="lookandfeel.rssedit" type="string" label="21450" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="button" format="action">
- <dependencies>
- <dependency type="enable" setting="lookandfeel.enablerssfeeds">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="lookandfeel.enablerssfeeds">true</dependency>
+ </dependencies>
+ <control type="button" format="action" />
</setting>
</group>
</category>
@@ -101,11 +103,10 @@
<constraints>
<options>regions</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="update" setting="locale.language" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="update" setting="locale.language" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="locale.charset" type="string" label="14091" help="">
<level>1</level>
@@ -113,11 +114,10 @@
<constraints>
<options>charsets</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="update" setting="locale.language" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="update" setting="locale.language" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
</group>
<group id="2">
@@ -135,11 +135,10 @@
<constraints>
<options>timezones</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="update" setting="locale.timezonecountry" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="update" setting="locale.timezonecountry" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
</group>
<group id="4">
@@ -178,30 +177,26 @@
<setting id="filelists.allowfiledeletion" type="boolean" label="14071" help="">
<level>1</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <or>
- <condition on="property" operator="!is" name="ProfileHasFilesLocked" />
- <condition on="property" name="IsMasterUser" />
- </or>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <or>
+ <condition on="property" operator="!is" name="ProfileHasFilesLocked" />
+ <condition on="property" name="IsMasterUser" />
+ </or>
+ </dependency>
+ </dependencies>
</setting>
<setting id="filelists.showaddsourcebuttons" type="boolean" label="21382" help="">
<level>1</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <or>
- <condition on="property" name="ProfileCanWriteSources" />
- <condition on="property" name="IsMasterUser" />
- </or>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <or>
+ <condition on="property" name="ProfileCanWriteSources" />
+ <condition on="property" name="IsMasterUser" />
+ </or>
+ </dependency>
+ </dependencies>
</setting>
<setting id="filelists.showhidden" type="boolean" label="21330" help="">
<level>1</level>
@@ -214,32 +209,30 @@
<setting id="screensaver.mode" type="addon" label="356" help="">
<level>0</level>
<default>screensaver.xbmc.builtin.dim</default>
- <addontype>xbmc.ui.screensaver</addontype>
- <allowempty>true</allowempty>
+ <constraints>
+ <addontype>xbmc.ui.screensaver</addontype>
+ <allowempty>true</allowempty>
+ </constraints>
<updates>
<update type="change" />
</updates>
</setting>
<setting id="screensaver.settings" type="action" label="21417" help="">
<level>0</level>
- <control type="button" format="action">
- <dependencies>
- <dependency type="enable">
- <and>
- <condition on="setting" setting="screensaver.mode" operator="!is"></condition>
- <condition on="property" name="AddonHasSettings" setting="screensaver.mode" />
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition on="setting" setting="screensaver.mode" operator="!is"></condition>
+ <condition on="property" name="AddonHasSettings" setting="screensaver.mode" />
+ </and>
+ </dependency>
+ </dependencies>
</setting>
<setting id="screensaver.preview" type="action" label="1000" help="">
<level>0</level>
- <control>
- <dependencies>
- <dependency type="enable" setting="screensaver.mode" operator="!is"></dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="screensaver.mode" operator="!is"></dependency>
+ </dependencies>
</setting>
<setting id="screensaver.time" type="integer" label="355" help="">
<level>0</level>
@@ -248,12 +241,12 @@
<minimum>1</minimum>
<step>1</step>
<maximum>60</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
+ <dependencies>
+ <dependency type="enable" setting="screensaver.mode" operator="!is"></dependency>
+ </dependencies>
<control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="screensaver.mode" operator="!is"></dependency>
- </dependencies>
+ <formatlabel>14044</formatlabel>
</control>
</setting>
</group>
@@ -261,25 +254,21 @@
<setting id="screensaver.usemusicvisinstead" type="boolean" label="13392" help="">
<level>1</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="screensaver.mode" operator="!is"></dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="screensaver.mode" operator="!is"></dependency>
+ </dependencies>
</setting>
<setting id="screensaver.usedimonpause" type="boolean" label="22014" help="">
<level>1</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="screensaver.mode" operator="!is">screensaver.xbmc.builtin.dim</condition>
- <condition setting="screensaver.mode" operator="!is"></condition>
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="screensaver.mode" operator="!is">screensaver.xbmc.builtin.dim</condition>
+ <condition setting="screensaver.mode" operator="!is"></condition>
+ </and>
+ </dependency>
+ </dependencies>
</setting>
</group>
</category>
@@ -376,9 +365,10 @@
<minimum>0</minimum>
<step>10</step>
<maximum>100</maximum>
- <formatlabel>14047</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14047</formatlabel>
+ </control>
</setting>
<setting id="videoplayer.usevdpau" type="boolean" label="13425" help="">
<visible>HAVE_LIBVDPAU</visible>
@@ -438,11 +428,10 @@
<constraints>
<options>refreshchangedelays</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="videoplayer.adjustrefreshrate" operator="!is">0</dependency> <!-- ADJUST_REFRESHRATE_OFF -->
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.adjustrefreshrate" operator="!is">0</dependency> <!-- ADJUST_REFRESHRATE_OFF -->
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="videoplayer.usedisplayasclock" type="boolean" label="13510" help="">
<level>2</level>
@@ -458,11 +447,10 @@
<option label="13503">2</option> <!-- SYNC_RESAMPLE -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="videoplayer.usedisplayasclock" operator="is">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="videoplayer.usedisplayasclock" operator="is">true</dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="videoplayer.maxspeedadjust" type="number" label="13504" help="">
<level>4</level>
@@ -472,16 +460,15 @@
<step>0.1</step>
<maximum>10.0</maximum>
</constraints>
- <control type="spinner" format="number">
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="videoplayer.usedisplayasclock" operator="is">true</condition>
- <condition setting="videoplayer.synctype" operator="is">2</condition> <!-- SYNC_RESAMPLE -->
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usedisplayasclock" operator="is">true</condition>
+ <condition setting="videoplayer.synctype" operator="is">2</condition> <!-- SYNC_RESAMPLE -->
+ </and>
+ </dependency>
+ </dependencies>
+ <control type="spinner" format="number" />
</setting>
<setting id="videoplayer.resamplequality" type="integer" label="13505" help="">
<level>4</level>
@@ -494,16 +481,15 @@
<option label="13509">3</option> <!-- RESAMPLE_REALLYHIGH -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="videoplayer.usedisplayasclock" operator="is">true</condition>
- <condition setting="videoplayer.synctype" operator="is">2</condition> <!-- SYNC_RESAMPLE -->
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="videoplayer.usedisplayasclock" operator="is">true</condition>
+ <condition setting="videoplayer.synctype" operator="is">2</condition> <!-- SYNC_RESAMPLE -->
+ </and>
+ </dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="videoplayer.errorinaspect" type="integer" label="22021" help="">
<level>2</level>
@@ -512,9 +498,10 @@
<minimum label="231">0</minimum>
<step>1</step>
<maximum>20</maximum>
- <formatlabel>14047</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14047</formatlabel>
+ </control>
</setting>
<setting id="videoplayer.stretch43" type="integer" label="173" help="">
<level>1</level>
@@ -622,11 +609,10 @@
<step>2</step>
<maximum>74</maximum>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="update" setting="subtitles.font" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="update" setting="subtitles.font" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="subtitles.style" type="integer" label="736" help="">
<level>1</level>
@@ -639,11 +625,10 @@
<option label="741">3</option> <!-- FONT_STYLE_BOLD | FONT_STYLE_ITALICS -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" on="property" name="IsUsingTTFSubtitles" setting="subtitles.font" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="IsUsingTTFSubtitles" setting="subtitles.font" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="subtitles.color" type="integer" label="737" help="">
<level>1</level>
@@ -660,11 +645,10 @@
<option label="767">7</option> <!-- Grey -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" on="property" name="IsUsingTTFSubtitles" setting="subtitles.font" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="IsUsingTTFSubtitles" setting="subtitles.font" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="subtitles.charset" type="string" label="735" help="">
<level>1</level>
@@ -672,11 +656,10 @@
<constraints>
<options>charsets</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" on="property" name="IsUsingTTFSubtitles" setting="subtitles.font" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="IsUsingTTFSubtitles" setting="subtitles.font" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="subtitles.overrideassfonts" type="boolean" label="21368" help="">
<level>1</level>
@@ -687,15 +670,16 @@
<setting id="subtitles.custompath" type="path" label="21366" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>657</heading>
<constraints>
+ <allowempty>true</allowempty>
<writable>false</writable>
<sources>
<source>videos</source>
</sources>
</constraints>
- <control type="button" format="path" />
+ <control type="button" format="path">
+ <heading>657</heading>
+ </control>
</setting>
<setting id="subtitles.align" type="integer" label="21460" help="">
<level>1</level>
@@ -741,17 +725,23 @@
<setting id="scrapers.moviesdefault" type="addon" label="21413" help="">
<level>4</level>
<default>metadata.themoviedb.org</default>
- <addontype>xbmc.metadata.scraper.movies</addontype>
+ <constraints>
+ <addontype>xbmc.metadata.scraper.movies</addontype>
+ </constraints>
</setting>
<setting id="scrapers.tvshowsdefault" type="addon" label="21414" help="">
<level>4</level>
<default>metadata.tvdb.com</default>
- <addontype>xbmc.metadata.scraper.tvshows</addontype>
+ <constraints>
+ <addontype>xbmc.metadata.scraper.tvshows</addontype>
+ </constraints>
</setting>
<setting id="scrapers.musicvideosdefault" type="addon" label="21415" help="">
<level>4</level>
<default>metadata.musicvideos.theaudiodb.com</default>
- <addontype>xbmc.metadata.scraper.musicvideos</addontype>
+ <constraints>
+ <addontype>xbmc.metadata.scraper.musicvideos</addontype>
+ </constraints>
<updates>
<update type="change" />
</updates>
@@ -784,19 +774,15 @@
<group id="3">
<setting id="pvrmanager.channelmanager" type="action" label="19199" help="">
<level>1</level>
- <control>
- <dependencies>
- <dependency type="enable" setting="pvrmanager.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="pvrmanager.enabled">true</dependency>
+ </dependencies>
</setting>
<setting id="pvrmanager.channelscan" type="action" label="19117" help="">
<level>1</level>
- <control>
- <dependencies>
- <dependency type="enable" setting="pvrmanager.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="pvrmanager.enabled">true</dependency>
+ </dependencies>
</setting>
<setting id="pvrmanager.resetdb" type="action" label="19185" help="">
<level>2</level>
@@ -830,29 +816,29 @@
<minimum>1</minimum>
<step>1</step>
<maximum>10</maximum>
- <formatlabel>14045</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14045</formatlabel>
+ </control>
</setting>
</group>
<group id="2">
<setting id="pvrmenu.iconpath" type="path" label="19018" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>657</heading>
<constraints>
+ <allowempty>true</allowempty>
<writable>false</writable>
</constraints>
- <control type="button" format="path" />
+ <control type="button" format="path">
+ <heading>657</heading>
+ </control>
</setting>
<setting id="pvrmenu.searchicons" type="action" label="19167" help="">
<level>1</level>
- <control>
- <dependencies>
- <dependency type="enable" setting="pvrmanager.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="pvrmanager.enabled">true</dependency>
+ </dependencies>
</setting>
</group>
</category>
@@ -876,9 +862,10 @@
<minimum>1</minimum>
<step>1</step>
<maximum>14</maximum>
- <formatlabel>17999</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>17999</formatlabel>
+ </control>
</setting>
</group>
<group id="2">
@@ -889,9 +876,10 @@
<minimum>15</minimum>
<step>15</step>
<maximum>2880</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
<setting id="epg.preventupdateswhileplayingtv" type="boolean" label="19230" help="">
<level>1</level>
@@ -940,9 +928,10 @@
<minimum>1</minimum>
<step>1</step>
<maximum>60</maximum>
- <formatlabel>14045</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14045</formatlabel>
+ </control>
</setting>
<setting id="pvrplayback.confirmchannelswitch" type="boolean" label="19281" help="">
<level>1</level>
@@ -955,9 +944,10 @@
<minimum>0</minimum>
<step>250</step>
<maximum>10000</maximum>
- <formatlabel>14046</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14046</formatlabel>
+ </control>
</setting>
</group>
</category>
@@ -970,9 +960,10 @@
<minimum>1</minimum>
<step>1</step>
<maximum>720</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
<setting id="pvrrecord.defaultpriority" type="integer" label="19173" help="">
<level>1</level>
@@ -991,9 +982,10 @@
<minimum>1</minimum>
<step>1</step>
<maximum>365</maximum>
- <formatlabel>17999</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>17999</formatlabel>
+ </control>
</setting>
<setting id="pvrrecord.marginstart" type="integer" label="19175" help="">
<level>1</level>
@@ -1002,9 +994,10 @@
<minimum>0</minimum>
<step>1</step>
<maximum>60</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
<setting id="pvrrecord.marginend" type="integer" label="19176" help="">
<level>1</level>
@@ -1013,9 +1006,10 @@
<minimum>0</minimum>
<step>1</step>
<maximum>60</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
</group>
<group id="2">
@@ -1040,14 +1034,17 @@
<minimum label="351">0</minimum>
<step>5</step>
<maximum>360</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
<setting id="pvrpowermanagement.setwakeupcmd" type="string" label="19245" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
<control type="edit" format="string" />
</setting>
<setting id="pvrpowermanagement.prewakeup" type="integer" label="19246" help="">
@@ -1057,9 +1054,10 @@
<minimum label="351">0</minimum>
<step>1</step>
<maximum>60</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
</group>
<group id="3">
@@ -1086,12 +1084,13 @@
<setting id="pvrparental.pin" type="string" label="19261" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="edit" format="integer" attributes="hidden,new" delayed="false">
- <dependencies>
- <dependency type="enable" setting="pvrparental.enabled">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="pvrparental.enabled">true</dependency>
+ </dependencies>
+ <control type="edit" format="integer" attributes="hidden,new" delayed="false" />
</setting>
<setting id="pvrparental.duration" type="integer" label="19260" help="">
<level>1</level>
@@ -1100,12 +1099,12 @@
<minimum>5</minimum>
<step>5</step>
<maximum>1200</maximum>
- <formatlabel>14045</formatlabel>
</constraints>
+ <dependencies>
+ <dependency type="enable" setting="pvrparental.enabled">true</dependency>
+ </dependencies>
<control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="pvrparental.enabled">true</dependency>
- </dependencies>
+ <formatlabel>14045</formatlabel>
</control>
</setting>
</group>
@@ -1138,12 +1137,16 @@
<setting id="musiclibrary.albumsscraper" type="addon" label="20193" help="">
<level>1</level>
<default>metadata.album.universal</default>
- <addontype>xbmc.metadata.scraper.albums</addontype>
+ <constraints>
+ <addontype>xbmc.metadata.scraper.albums</addontype>
+ </constraints>
</setting>
<setting id="musiclibrary.artistsscraper" type="addon" label="20194" help="">
<level>1</level>
<default>metadata.artists.universal</default>
- <addontype>xbmc.metadata.scraper.artists</addontype>
+ <constraints>
+ <addontype>xbmc.metadata.scraper.artists</addontype>
+ </constraints>
</setting>
<setting id="musiclibrary.updateonstartup" type="boolean" label="22000" help="">
<level>1</level>
@@ -1197,9 +1200,10 @@
<minimum>77</minimum>
<step>1</step>
<maximum>101</maximum>
- <formatlabel>14050</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14050</formatlabel>
+ </control>
</setting>
<setting id="musicplayer.replaygainnogainpreamp" type="integer" label="642" help="">
<level>2</level>
@@ -1208,9 +1212,10 @@
<minimum>77</minimum>
<step>1</step>
<maximum>101</maximum>
- <formatlabel>14050</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14050</formatlabel>
+ </control>
</setting>
<setting id="musicplayer.replaygainavoidclipping" type="boolean" label="643" help="">
<level>2</level>
@@ -1225,30 +1230,31 @@
<minimum label="351">0</minimum>
<step>1</step>
<maximum>15</maximum>
- <formatlabel>14045</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14045</formatlabel>
+ </control>
</setting>
<setting id="musicplayer.crossfadealbumtracks" type="boolean" label="13400" help="">
<level>1</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="musicplayer.crossfade" operator="!is">0</condition>
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="musicplayer.crossfade" operator="!is">0</condition>
+ </and>
+ </dependency>
+ </dependencies>
</setting>
</group>
<group id="4">
<setting id="musicplayer.visualisation" type="addon" label="250" help="">
<level>0</level>
<default>visualization.glspectrum</default>
- <addontype>xbmc.player.musicviz</addontype>
- <allowempty>true</allowempty>
+ <constraints>
+ <addontype>xbmc.player.musicviz</addontype>
+ <allowempty>true</allowempty>
+ </constraints>
</setting>
</group>
</category>
@@ -1261,42 +1267,56 @@
<setting id="musicfiles.trackformat" type="string" label="13307" help="">
<level>2</level>
<default>[%N. ]%A - %T</default>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="musicfiles.trackformatright" type="string" label="13387" help="">
<level>2</level>
<default>%D</default>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="musicfiles.nowplayingtrackformat" type="string" label="13307" help="">
<level>4</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="musicfiles.nowplayingtrackformatright" type="string" label="13387" help="">
<level>4</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="musicfiles.librarytrackformat" type="string" label="13307" help="">
<level>4</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="musicfiles.librarytrackformatright" type="string" label="13387" help="">
<level>4</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="musicfiles.findremotethumbs" type="boolean" label="14059" help="">
<level>0</level>
@@ -1323,15 +1343,19 @@
<setting id="audiocds.recordingpath" type="path" label="20000" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>657</heading>
- <control type="button" format="path" />
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <control type="button" format="path">
+ <heading>657</heading>
+ </control>
</setting>
<setting id="audiocds.trackpathformat" type="string" label="13307" help="">
<level>2</level>
<default>%A/%A - %B/[%N. ][%A - ]%T</default>
- <heading>16016</heading>
- <control type="edit" format="string" />
+ <control type="edit" format="string">
+ <heading>16016</heading>
+ </control>
</setting>
<setting id="audiocds.encoder" type="integer" label="621" help="">
<level>2</level>
@@ -1352,16 +1376,15 @@
<option label="603">3</option> <!-- CDDARIP_QUALITY_EXTREME -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="audiocds.encoder" operator="!is">2</condition> <!-- CDDARIP_ENCODER_WAV -->
- <condition setting="audiocds.encoder" operator="!is">3</condition> <!-- CDDARIP_ENCODER_FLAC -->
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="audiocds.encoder" operator="!is">2</condition> <!-- CDDARIP_ENCODER_WAV -->
+ <condition setting="audiocds.encoder" operator="!is">3</condition> <!-- CDDARIP_ENCODER_FLAC -->
+ </and>
+ </dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="audiocds.bitrate" type="integer" label="623" help="">
<level>2</level>
@@ -1370,18 +1393,18 @@
<minimum>128</minimum>
<step>32</step>
<maximum>320</maximum>
- <formatlabel>14048</formatlabel>
</constraints>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="audiocds.encoder" operator="!is">2</condition> <!-- CDDARIP_ENCODER_WAV -->
+ <condition setting="audiocds.encoder" operator="!is">3</condition> <!-- CDDARIP_ENCODER_FLAC -->
+ <condition setting="audiocds.quality" operator="is">0</condition> <!-- CDDARIP_QUALITY_CBR -->
+ </and>
+ </dependency>
+ </dependencies>
<control type="spinner" format="string">
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="audiocds.encoder" operator="!is">2</condition> <!-- CDDARIP_ENCODER_WAV -->
- <condition setting="audiocds.encoder" operator="!is">3</condition> <!-- CDDARIP_ENCODER_FLAC -->
- <condition setting="audiocds.quality" operator="is">0</condition> <!-- CDDARIP_QUALITY_CBR -->
- </and>
- </dependency>
- </dependencies>
+ <formatlabel>14048</formatlabel>
</control>
</setting>
<setting id="audiocds.compressionlevel" type="integer" label="665" help="">
@@ -1392,11 +1415,10 @@
<step>1</step>
<maximum>8</maximum>
</constraints>
- <control type="spinner" format="integer">
- <dependencies>
- <dependency type="enable" setting="audiocds.encoder">3</dependency> <!-- CDDARIP_ENCODER_FLAC -->
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="audiocds.encoder">3</dependency> <!-- CDDARIP_ENCODER_FLAC -->
+ </dependencies>
+ <control type="spinner" format="integer" />
</setting>
<setting id="audiocds.ejectonrip" type="boolean" label="14099" help="">
<level>1</level>
@@ -1414,11 +1436,9 @@
<setting id="karaoke.autopopupselector" type="boolean" label="22037" help="">
<level>2</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ </dependencies>
</setting>
</group>
<group id="2">
@@ -1428,11 +1448,10 @@
<constraints>
<options>fonts</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="karaoke.fontheight" type="integer" label="22031" help="">
<level>2</level>
@@ -1442,12 +1461,11 @@
<step>2</step>
<maximum>74</maximum>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- <dependency type="update" setting="karaoke.font" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ <dependency type="update" setting="karaoke.font" />
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="karaoke.fontcolors" type="integer" label="22032" help="">
<level>2</level>
@@ -1460,11 +1478,10 @@
<option label="22043">3</option> <!-- black/white -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="karaoke.charset" type="string" label="22033" help="">
<level>2</level>
@@ -1472,29 +1489,24 @@
<constraints>
<options>charsets</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
</group>
<group id="3">
<setting id="karaoke.export" type="action" label="22038" help="">
<level>2</level>
- <control>
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ </dependencies>
</setting>
<setting id="karaoke.importcsv" type="action" label="22036" help="">
<level>2</level>
- <control>
- <dependencies>
- <dependency type="enable" setting="karaoke.enabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="karaoke.enabled">true</dependency>
+ </dependencies>
</setting>
</group>
</category>
@@ -1511,7 +1523,9 @@
<setting id="mymusic.defaultlibview" type="string" label="0" help="">
<level>4</level>
<default></default>
- <allowempty>true</allowempty>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
</setting>
</group>
</category>
@@ -1555,9 +1569,10 @@
<minimum>1</minimum>
<step>1</step>
<maximum>100</maximum>
- <formatlabel>14045</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14045</formatlabel>
+ </control>
</setting>
<setting id="slideshow.displayeffects" type="boolean" label="12379" help="">
<level>0</level>
@@ -1581,16 +1596,16 @@
<setting id="weather.addon" type="addon" label="24029" help="">
<level>0</level>
<default>weather.wunderground</default>
- <addontype>xbmc.python.weather</addontype>
- <allowempty>true</allowempty>
+ <constraints>
+ <addontype>xbmc.python.weather</addontype>
+ <allowempty>true</allowempty>
+ </constraints>
</setting>
<setting id="weather.addonsettings" type="action" label="21417" help="">
<level>0</level>
- <control type="button" format="action">
- <dependencies>
- <dependency type="enable" on="property" name="AddonHasSettings" setting="weather.addon" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="AddonHasSettings" setting="weather.addon" />
+ </dependencies>
</setting>
</group>
</category>
@@ -1614,11 +1629,9 @@
<setting id="services.upnpannounce" type="boolean" label="20188" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="services.upnpserver">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.upnpserver">true</dependency>
+ </dependencies>
</setting>
<setting id="services.upnprenderer" type="boolean" label="21881" help="">
<level>1</level>
@@ -1650,27 +1663,31 @@
<setting id="services.webserverusername" type="string" label="1048" help="">
<level>2</level>
<default>xbmc</default>
- <allowempty>true</allowempty>
- <control type="edit" format="string">
- <dependencies>
- <dependency type="enable" setting="services.webserver">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="services.webserver">true</dependency>
+ </dependencies>
+ <control type="edit" format="string" />
</setting>
<setting id="services.webserverpassword" type="string" label="733" help="">
<level>2</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="edit" format="string" attributes="hidden">
- <dependencies>
- <dependency type="enable" setting="services.webserver">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="services.webserver">true</dependency>
+ </dependencies>
+ <control type="edit" format="string" attributes="hidden" />
</setting>
<setting id="services.webskin" type="addon" label="199" help="">
<level>1</level>
<default>webinterface.default</default>
- <addontype>xbmc.gui.webinterface</addontype>
+ <constraints>
+ <addontype>xbmc.gui.webinterface</addontype>
+ </constraints>
</setting>
</group>
</category>
@@ -1695,11 +1712,10 @@
<step>1</step>
<maximum>65535</maximum>
</constraints>
- <control type="edit" format="integer">
- <dependencies>
- <dependency type="enable" setting="services.esenabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.esenabled">true</dependency>
+ </dependencies>
+ <control type="edit" format="integer" />
</setting>
<setting id="services.esportrange" type="integer" label="793" help="">
<visible>HAS_EVENT_SERVER</visible>
@@ -1710,11 +1726,10 @@
<step>1</step>
<maximum>100</maximum>
</constraints>
- <control type="spinner" format="integer">
- <dependencies>
- <dependency type="enable" setting="services.esenabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.esenabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="integer" />
</setting>
<setting id="services.esmaxclients" type="integer" label="797" help="">
<visible>HAS_EVENT_SERVER</visible>
@@ -1725,20 +1740,17 @@
<step>1</step>
<maximum>100</maximum>
</constraints>
- <control type="spinner" format="integer">
- <dependencies>
- <dependency type="enable" setting="services.esenabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.esenabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="integer" />
</setting>
<setting id="services.esallinterfaces" type="boolean" label="794" help="">
<level>1</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="services.esenabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.esenabled">true</dependency>
+ </dependencies>
</setting>
<setting id="services.esinitialdelay" type="integer" label="795" help="">
<visible>HAS_EVENT_SERVER</visible>
@@ -1749,11 +1761,10 @@
<step>5</step>
<maximum>10000</maximum>
</constraints>
- <control type="spinner" format="integer">
- <dependencies>
- <dependency type="enable" setting="services.esenabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.esenabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="integer" />
</setting>
<setting id="services.escontinuousdelay" type="integer" label="796" help="">
<visible>HAS_EVENT_SERVER</visible>
@@ -1764,11 +1775,10 @@
<step>5</step>
<maximum>10000</maximum>
</constraints>
- <control type="spinner" format="integer">
- <dependencies>
- <dependency type="enable" setting="services.esenabled">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.esenabled">true</dependency>
+ </dependencies>
+ <control type="spinner" format="integer" />
</setting>
</group>
</category>
@@ -1791,21 +1801,20 @@
<setting id="services.useairplaypassword" type="boolean" label="1272" help="">
<level>1</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="services.airplay">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="services.airplay">true</dependency>
+ </dependencies>
</setting>
<setting id="services.airplaypassword" type="string" label="733" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="edit" format="string" attributes="hidden">
- <dependencies>
- <dependency type="enable" setting="services.useairplaypassword">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="services.useairplaypassword">true</dependency>
+ </dependencies>
+ <control type="edit" format="string" attributes="hidden" />
</setting>
</group>
</category>
@@ -1841,12 +1850,11 @@
<constraints>
<options>resolutions</options>
</constraints>
- <control type="spinner" format="string" delayed="true">
- <dependencies>
- <dependency type="enable" setting="videoscreen.screen" operator="!is">-1</dependency> <!-- DM_WINDOWED -->
- <dependency type="update" setting="videoscreen.screen" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="videoscreen.screen" operator="!is">-1</dependency> <!-- DM_WINDOWED -->
+ <dependency type="update" setting="videoscreen.screen" />
+ </dependencies>
+ <control type="spinner" format="string" delayed="true" />
</setting>
<setting id="videoscreen.screenmode" type="string" label="243" help="">
<visible>IsStandAlone</visible>
@@ -1858,31 +1866,26 @@
<updates>
<update type="change" />
</updates>
- <control type="spinner" format="string" delayed="true">
- <dependencies>
- <dependency type="enable" setting="videoscreen.screen" operator="!is">-1</dependency> <!-- DM_WINDOWED -->
- <dependency type="update" setting="videoscreen.screen" />
- <dependency type="update" setting="videoscreen.resolution" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="videoscreen.screen" operator="!is">-1</dependency> <!-- DM_WINDOWED -->
+ <dependency type="update" setting="videoscreen.screen" />
+ <dependency type="update" setting="videoscreen.resolution" />
+ </dependencies>
+ <control type="spinner" format="string" delayed="true" />
</setting>
<setting id="videoscreen.fakefullscreen" type="boolean" label="14083" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="videoscreen.screen" operator="!is">-1</dependency> <!-- DM_WINDOWED -->
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="videoscreen.screen" operator="!is">-1</dependency> <!-- DM_WINDOWED -->
+ </dependencies>
</setting>
<setting id="videoscreen.blankdisplays" type="boolean" label="13130" help="">
<level>1</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable" on="property" name="IsFullscreen" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="IsFullscreen" />
+ </dependencies>
</setting>
</group>
<group id="2">
@@ -1959,76 +1962,64 @@
<setting id="audiooutput.ac3passthrough" type="boolean" label="364" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <or>
- <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
- <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
- </or>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <or>
+ <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
+ <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
+ </or>
+ </dependency>
+ </dependencies>
</setting>
<setting id="audiooutput.dtspassthrough" type="boolean" label="254" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <or>
- <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
- <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
- </or>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <or>
+ <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
+ <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
+ </or>
+ </dependency>
+ </dependencies>
</setting>
<setting id="audiooutput.passthroughaac" type="boolean" label="299" help="">
<level>2</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <or>
- <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
- <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
- </or>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <or>
+ <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
+ <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
+ </or>
+ </dependency>
+ </dependencies>
</setting>
<setting id="audiooutput.multichannellpcm" type="boolean" label="348" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="audiooutput.mode">2</dependency> <!-- AUDIO_HDMI -->
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="audiooutput.mode">2</dependency> <!-- AUDIO_HDMI -->
+ </dependencies>
</setting>
<setting id="audiooutput.truehdpassthrough" type="boolean" label="349" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable" setting="audiooutput.mode">2</dependency> <!-- AUDIO_HDMI -->
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="audiooutput.mode">2</dependency> <!-- AUDIO_HDMI -->
+ </dependencies>
</setting>
<setting id="audiooutput.dtshdpassthrough" type="boolean" label="347" help="">
<level>2</level>
<default>true</default>
- <control>
- <dependencies>
- <dependency type="enable">
- <and>
- <condition setting="audiooutput.dtspassthrough">true</condition>
- <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
- </and>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <and>
+ <condition setting="audiooutput.dtspassthrough">true</condition>
+ <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
+ </and>
+ </dependency>
+ </dependencies>
</setting>
</group>
<group id="2">
@@ -2046,16 +2037,15 @@
<constraints>
<options>audiodevicespassthrough</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable">
- <or>
- <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
- <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
- </or>
- </dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable">
+ <or>
+ <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
+ <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
+ </or>
+ </dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
</group>
<group id="3">
@@ -2077,11 +2067,9 @@
<group id="1">
<setting id="input.peripherals" type="action" label="35000" help="">
<level>1</level>
- <control>
- <dependencies>
- <dependency type="enable" on="property" name="HasPeripherals" />
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="HasPeripherals" />
+ </dependencies>
</setting>
</group>
<group id="2">
@@ -2118,21 +2106,21 @@
<option label="1185">4</option> <!-- PROXY_SOCKS5_REMOTE -->
</options>
</constraints>
- <control type="spinner" format="string">
- <dependencies>
- <dependency type="enable" setting="network.usehttpproxy">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="network.usehttpproxy">true</dependency>
+ </dependencies>
+ <control type="spinner" format="string" />
</setting>
<setting id="network.httpproxyserver" type="string" label="706" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="edit" format="string">
- <dependencies>
- <dependency type="enable" setting="network.usehttpproxy">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="network.usehttpproxy">true</dependency>
+ </dependencies>
+ <control type="edit" format="string" />
</setting>
<setting id="network.httpproxyport" type="integer" label="730" help="">
<level>1</level>
@@ -2142,31 +2130,32 @@
<step>1</step>
<maximum>65535</maximum>
</constraints>
- <control type="edit" format="integer">
- <dependencies>
- <dependency type="enable" setting="network.usehttpproxy">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="network.usehttpproxy">true</dependency>
+ </dependencies>
+ <control type="edit" format="integer" />
</setting>
<setting id="network.httpproxyusername" type="string" label="1048" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="edit" format="string">
- <dependencies>
- <dependency type="enable" setting="network.usehttpproxy">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="network.usehttpproxy">true</dependency>
+ </dependencies>
+ <control type="edit" format="string" />
</setting>
<setting id="network.httpproxypassword" type="string" label="733" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <control type="edit" format="string" attributes="hidden">
- <dependencies>
- <dependency type="enable" setting="network.usehttpproxy">true</dependency>
- </dependencies>
- </control>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <dependencies>
+ <dependency type="enable" setting="network.usehttpproxy">true</dependency>
+ </dependencies>
+ <control type="edit" format="string" attributes="hidden" />
</setting>
</group>
<group id="2">
@@ -2177,9 +2166,10 @@
<minimum label="351">0</minimum>
<step>512</step>
<maximum>102400</maximum>
- <formatlabel>14048</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14048</formatlabel>
+ </control>
</setting>
</group>
</category>
@@ -2192,9 +2182,10 @@
<minimum label="351">0</minimum>
<step>5</step>
<maximum>120</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
<setting id="powermanagement.shutdowntime" type="integer" label="357" help="">
<level>2</level>
@@ -2203,9 +2194,10 @@
<minimum label="351">0</minimum>
<step>5</step>
<maximum>120</maximum>
- <formatlabel>14044</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14044</formatlabel>
+ </control>
</setting>
<setting id="powermanagement.shutdownstate" type="integer" label="13008" help="">
<level>2</level>
@@ -2231,18 +2223,19 @@
</setting>
<setting id="debug.setextraloglevel" type="action" label="666" help="">
<level>1</level>
- <control type="button" format="action">
- <dependencies>
- <dependency type="enable" setting="debug.showloginfo">true</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" setting="debug.showloginfo">true</dependency>
+ </dependencies>
</setting>
<setting id="debug.screenshotpath" type="path" label="20004" help="">
<level>1</level>
<default></default>
- <allowempty>true</allowempty>
- <heading>657</heading>
- <control type="button" format="path" />
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
+ <control type="button" format="path">
+ <heading>657</heading>
+ </control>
</setting>
</group>
</category>
@@ -2257,11 +2250,9 @@
<setting id="masterlock.startuplock" type="boolean" label="20076" help="">
<level>2</level>
<default>false</default>
- <control>
- <dependencies>
- <dependency type="enable" on="property" name="ProfileLockMode" operator="!is">0</dependency>
- </dependencies>
- </control>
+ <dependencies>
+ <dependency type="enable" on="property" name="ProfileLockMode" operator="!is">0</dependency>
+ </dependencies>
</setting>
<setting id="masterlock.maxretries" type="integer" label="12364" help="">
<level>4</level>
@@ -2285,9 +2276,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>4096</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
</group>
<group id="2">
@@ -2298,9 +2290,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>16384</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
<setting id="cachevideo.lan" type="integer" label="14027" help="">
<level>4</level>
@@ -2309,9 +2302,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>16384</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
<setting id="cachevideo.internet" type="integer" label="14028" help="">
<level>4</level>
@@ -2320,9 +2314,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>16384</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
</group>
<group id="3">
@@ -2333,9 +2328,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>4096</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
<setting id="cacheaudio.lan" type="integer" label="14031" help="">
<level>4</level>
@@ -2344,9 +2340,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>4096</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
<setting id="cacheaudio.internet" type="integer" label="14032" help="">
<level>4</level>
@@ -2355,9 +2352,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>4096</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
</group>
<group id="4">
@@ -2368,9 +2366,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>16384</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
<setting id="cachedvd.lan" type="integer" label="14060" help="">
<level>4</level>
@@ -2379,9 +2378,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>16384</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
</group>
<group id="5">
@@ -2392,9 +2392,10 @@
<minimum label="351">0</minimum>
<step>256</step>
<maximum>16384</maximum>
- <formatlabel>14049</formatlabel>
</constraints>
- <control type="spinner" format="string" />
+ <control type="spinner" format="string">
+ <formatlabel>14049</formatlabel>
+ </control>
</setting>
</group>
</category>
@@ -2403,7 +2404,9 @@
<setting id="system.playlistspath" type="path" label="20006" help="">
<level>4</level>
<default></default>
- <allowempty>true</allowempty>
+ <constraints>
+ <allowempty>true</allowempty>
+ </constraints>
</setting>
</group>
</category>
diff --git a/xbmc/settings/Setting.cpp b/xbmc/settings/Setting.cpp
index dc8bb65169..41b026155b 100644
--- a/xbmc/settings/Setting.cpp
+++ b/xbmc/settings/Setting.cpp
@@ -31,11 +31,17 @@
#define XML_ELM_DEFAULT "default"
#define XML_ELM_VALUE "value"
-#define XML_ELM_CONSTRAINTS "constraints"
-#define XML_ELM_OPTIONS "options"
-#define XML_ELM_MINIMUM "minimum"
-#define XML_ELM_STEP "step"
-#define XML_ELM_MAXIMUM "maximum"
+#define XML_ELM_CONTROL "control"
+#define XML_ELM_CONSTRAINTS "constraints"
+#define XML_ELM_OPTIONS "options"
+#define XML_ELM_OPTION "option"
+#define XML_ELM_MINIMUM "minimum"
+#define XML_ELM_STEP "step"
+#define XML_ELM_MAXIMUM "maximum"
+#define XML_ELM_DEPENDENCIES "dependencies"
+#define XML_ELM_DEPENDENCY "dependency"
+#define XML_ELM_UPDATES "updates"
+#define XML_ELM_UPDATE "update"
CSetting::CSetting(const std::string &id, CSettingsManager *settingsManager /* = NULL */)
: ISetting(id, settingsManager),
@@ -81,7 +87,23 @@ bool CSetting::Deserialize(const TiXmlNode *node, bool update /* = false */)
if (m_level < (int)SettingLevelBasic || m_level > (int)SettingLevelInternal)
m_level = SettingLevelStandard;
- const TiXmlElement *control = node->FirstChildElement("control");
+ const TiXmlNode *dependencies = node->FirstChild(XML_ELM_DEPENDENCIES);
+ if (dependencies != NULL)
+ {
+ const TiXmlNode *dependencyNode = dependencies->FirstChild(XML_ELM_DEPENDENCY);
+ while (dependencyNode != NULL)
+ {
+ CSettingDependency dependency(m_settingsManager);
+ if (dependency.Deserialize(dependencyNode))
+ m_dependencies.push_back(dependency);
+ else
+ CLog::Log(LOGWARNING, "CSetting: error reading <dependency> tag of \"%s\"", m_id.c_str());
+
+ dependencyNode = dependencyNode->NextSibling(XML_ELM_DEPENDENCY);
+ }
+ }
+
+ const TiXmlElement *control = node->FirstChildElement(XML_ELM_CONTROL);
if (control != NULL)
{
if (!m_control.Deserialize(control, update) ||
@@ -90,28 +112,12 @@ bool CSetting::Deserialize(const TiXmlNode *node, bool update /* = false */)
CLog::Log(LOGERROR, "CSetting: error reading <control> tag of \"%s\"", m_id.c_str());
return false;
}
-
- const TiXmlNode *dependencies = control->FirstChild("dependencies");
- if (dependencies != NULL)
- {
- const TiXmlNode *dependencyNode = dependencies->FirstChild("dependency");
- while (dependencyNode != NULL)
- {
- CSettingDependency dependency(m_settingsManager);
- if (dependency.Deserialize(dependencyNode))
- m_dependencies.push_back(dependency);
- else
- CLog::Log(LOGWARNING, "CSetting: error reading <dependency> tag of \"%s\"", m_id.c_str());
-
- dependencyNode = dependencyNode->NextSibling("dependency");
- }
- }
}
- const TiXmlNode *updates = node->FirstChild("updates");
+ const TiXmlNode *updates = node->FirstChild(XML_ELM_UPDATES);
if (updates != NULL)
{
- const TiXmlElement *updateElem = updates->FirstChildElement("update");
+ const TiXmlElement *updateElem = updates->FirstChildElement(XML_ELM_UPDATE);
while (updateElem != NULL)
{
CSettingUpdate update;
@@ -123,7 +129,7 @@ bool CSetting::Deserialize(const TiXmlNode *node, bool update /* = false */)
else
CLog::Log(LOGWARNING, "CSetting: error reading <update> tag of \"%s\"", m_id.c_str());
- updateElem = updateElem->NextSiblingElement("update");
+ updateElem = updateElem->NextSiblingElement(XML_ELM_UPDATE);
}
}
@@ -409,6 +415,13 @@ bool CSettingInt::Deserialize(const TiXmlNode *node, bool update /* = false */)
return false;
}
+ if (m_control.GetFormat() == SettingControlFormatString)
+ {
+ const TiXmlNode *control = node->FirstChild(XML_ELM_CONTROL);
+ if (control != NULL)
+ XMLUtils::GetInt(control, "formatlabel", m_format);
+ }
+
const TiXmlNode *constraints = node->FirstChild(XML_ELM_CONSTRAINTS);
if (constraints != NULL)
{
@@ -421,7 +434,7 @@ bool CSettingInt::Deserialize(const TiXmlNode *node, bool update /* = false */)
else
{
m_options.clear();
- const TiXmlElement *optionElement = options->FirstChildElement("option");
+ const TiXmlElement *optionElement = options->FirstChildElement(XML_ELM_OPTION);
while (optionElement != NULL)
{
std::pair<int, int> entry;
@@ -431,7 +444,7 @@ bool CSettingInt::Deserialize(const TiXmlNode *node, bool update /* = false */)
m_options.push_back(entry);
}
- optionElement = optionElement->NextSiblingElement("option");
+ optionElement = optionElement->NextSiblingElement(XML_ELM_OPTION);
}
}
}
@@ -449,16 +462,11 @@ bool CSettingInt::Deserialize(const TiXmlNode *node, bool update /* = false */)
// get maximum
XMLUtils::GetInt(constraints, XML_ELM_MAXIMUM, m_max);
- if (m_control.GetFormat() == SettingControlFormatString)
+ if (m_control.GetFormat() == SettingControlFormatString && m_labelMin < 0)
{
- XMLUtils::GetInt(constraints, "formatlabel", m_format);
-
- if (m_labelMin < 0)
- {
- CStdString strFormat;
- if (XMLUtils::GetString(constraints, "format", strFormat) && !strFormat.empty())
- m_strFormat = strFormat;
- }
+ CStdString strFormat;
+ if (XMLUtils::GetString(constraints, "format", strFormat) && !strFormat.empty())
+ m_strFormat = strFormat;
}
}
@@ -792,25 +800,20 @@ bool CSettingString::Deserialize(const TiXmlNode *node, bool update /* = false *
CLog::Log(LOGERROR, "CSettingString: invalid <control> of \"%s\"", m_id.c_str());
return false;
}
-
- // get allowempty (needs to be parsed before parsing the default value)
- XMLUtils::GetBoolean(node, "allowempty", m_allowEmpty);
- // get heading
- XMLUtils::GetInt(node, "heading", m_heading);
-
- // get the default value
- CStdString value;
- if (XMLUtils::GetString(node, XML_ELM_DEFAULT, value))
- m_value = m_default = value;
- else if (!update && !m_allowEmpty)
+
+ const TiXmlNode *control = node->FirstChild(XML_ELM_CONTROL);
+ if (control != NULL)
{
- CLog::Log(LOGERROR, "CSettingString: error reading the default value of \"%s\"", m_id.c_str());
- return false;
+ // get heading
+ XMLUtils::GetInt(control, "heading", m_heading);
}
const TiXmlNode *constraints = node->FirstChild(XML_ELM_CONSTRAINTS);
if (constraints != NULL)
{
+ // get allowempty (needs to be parsed before parsing the default value)
+ XMLUtils::GetBoolean(constraints, "allowempty", m_allowEmpty);
+
// get the entries
const TiXmlNode *options = constraints->FirstChild(XML_ELM_OPTIONS);
if (options != NULL && options->FirstChild() != NULL &&
@@ -818,6 +821,16 @@ bool CSettingString::Deserialize(const TiXmlNode *node, bool update /* = false *
m_optionsFiller = options->FirstChild()->ValueStr();
}
+ // get the default value
+ CStdString value;
+ if (XMLUtils::GetString(node, XML_ELM_DEFAULT, value))
+ m_value = m_default = value;
+ else if (!update && !m_allowEmpty)
+ {
+ CLog::Log(LOGERROR, "CSettingString: error reading the default value of \"%s\"", m_id.c_str());
+ return false;
+ }
+
return true;
}
diff --git a/xbmc/settings/SettingAddon.cpp b/xbmc/settings/SettingAddon.cpp
index bcf6dd38d6..4a60657350 100644
--- a/xbmc/settings/SettingAddon.cpp
+++ b/xbmc/settings/SettingAddon.cpp
@@ -68,15 +68,19 @@ bool CSettingAddon::Deserialize(const TiXmlNode *node, bool update /* = false */
CLog::Log(LOGERROR, "CSettingAddon: error reading the default value of \"%s\"", m_id.c_str());
return false;
}
-
- // get the addon type
+
+ bool ok = false;
CStdString strAddonType;
- bool ok = XMLUtils::GetString(node, "addontype", strAddonType);
- if (ok)
+ const TiXmlNode *constraints = node->FirstChild("constraints");
+ if (constraints != NULL)
{
- m_addonType = ADDON::TranslateType(strAddonType);
- if (m_addonType == ADDON::ADDON_UNKNOWN)
- ok = false;
+ // get the addon type
+ if (XMLUtils::GetString(constraints, "addontype", strAddonType))
+ {
+ m_addonType = ADDON::TranslateType(strAddonType);
+ if (m_addonType != ADDON::ADDON_UNKNOWN)
+ ok = true;
+ }
}
if (!ok && !update)