aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/skin.confluence/720p/DialogAddonInfo.xml55
-rw-r--r--addons/skin.confluence/720p/DialogAddonSettings.xml65
-rw-r--r--addons/skin.confluence/720p/DialogContentSettings.xml55
-rw-r--r--addons/skin.confluence/720p/DialogGamepad.xml54
-rw-r--r--addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml54
-rw-r--r--addons/skin.confluence/720p/DialogKeyboard.xml53
-rw-r--r--addons/skin.confluence/720p/DialogMediaFilter.xml55
-rw-r--r--addons/skin.confluence/720p/DialogMediaSource.xml55
-rw-r--r--addons/skin.confluence/720p/DialogNetworkSetup.xml55
-rw-r--r--addons/skin.confluence/720p/DialogOK.xml54
-rw-r--r--addons/skin.confluence/720p/DialogPVRChannelManager.xml69
-rw-r--r--addons/skin.confluence/720p/DialogPVRGuideInfo.xml65
-rw-r--r--addons/skin.confluence/720p/DialogPVRGuideSearch.xml55
-rw-r--r--addons/skin.confluence/720p/DialogPVRRecordingInfo.xml65
-rw-r--r--addons/skin.confluence/720p/DialogPVRTimerSettings.xml55
-rw-r--r--addons/skin.confluence/720p/DialogPeripheralManager.xml65
-rw-r--r--addons/skin.confluence/720p/DialogPeripheralSettings.xml54
-rw-r--r--addons/skin.confluence/720p/DialogProgress.xml54
-rw-r--r--addons/skin.confluence/720p/DialogSongInfo.xml55
-rw-r--r--addons/skin.confluence/720p/DialogYesNo.xml54
-rw-r--r--addons/skin.confluence/720p/LockSettings.xml55
-rw-r--r--addons/skin.confluence/720p/ProfileSettings.xml55
-rw-r--r--addons/skin.confluence/720p/SmartPlaylistEditor.xml54
-rw-r--r--addons/skin.confluence/720p/SmartPlaylistRule.xml55
-rw-r--r--addons/skin.confluence/720p/includes.xml52
-rw-r--r--addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml54
-rw-r--r--addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml54
-rw-r--r--addons/skin.confluence/media/flagging/audio/pcm.pngbin0 -> 5258 bytes
-rw-r--r--addons/skin.confluence/media/flagging/audio/pcm_s16le.pngbin0 -> 5258 bytes
-rw-r--r--addons/skin.confluence/media/flagging/audio/pcm_s24le.pngbin0 -> 5258 bytes
-rw-r--r--addons/skin.confluence/sounds/sounds.xml4
-rw-r--r--docs/README.ubuntu18
-rw-r--r--tools/buildsteps/android/make-native-depends2
-rw-r--r--tools/buildsteps/android/prepare-xbmc3
-rw-r--r--tools/buildsteps/androidx86/make-native-depends2
-rw-r--r--tools/buildsteps/androidx86/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/atv2/make-native-depends2
-rwxr-xr-xtools/buildsteps/atv2/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/ios/make-native-depends2
-rwxr-xr-xtools/buildsteps/ios/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/linux32/make-native-depends2
-rwxr-xr-xtools/buildsteps/linux32/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/linux64/make-native-depends2
-rwxr-xr-xtools/buildsteps/linux64/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/osx32/make-native-depends2
-rwxr-xr-xtools/buildsteps/osx32/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/osx64/make-native-depends2
-rwxr-xr-xtools/buildsteps/osx64/prepare-xbmc3
-rwxr-xr-xtools/buildsteps/rbpi/make-native-depends2
-rwxr-xr-xtools/buildsteps/rbpi/prepare-xbmc3
-rw-r--r--tools/buildsteps/win32/run-tests.bat99
-rw-r--r--xbmc/Application.cpp2
-rw-r--r--xbmc/CueDocument.cpp1
-rw-r--r--xbmc/DllPaths_generated.h.in4
-rw-r--r--xbmc/DllPaths_generated_android.h.in22
-rw-r--r--xbmc/FileItem.cpp2
-rw-r--r--xbmc/URL.cpp6
-rw-r--r--xbmc/cdrip/CDDARipper.cpp2
-rw-r--r--xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp2
-rw-r--r--xbmc/cores/dvdplayer/DVDPlayer.cpp5
-rw-r--r--xbmc/cores/dvdplayer/DVDPlayerAudio.cpp14
-rw-r--r--xbmc/cores/dvdplayer/DVDPlayerAudio.h8
-rw-r--r--xbmc/cores/paplayer/CodecFactory.cpp5
-rw-r--r--xbmc/filesystem/CurlFile.cpp2
-rw-r--r--xbmc/filesystem/FileCache.cpp4
-rw-r--r--xbmc/filesystem/HTTPFile.cpp2
-rw-r--r--xbmc/filesystem/ISOFile.cpp4
-rw-r--r--xbmc/filesystem/RarFile.cpp2
-rw-r--r--xbmc/filesystem/ZipFile.cpp2
-rw-r--r--xbmc/filesystem/test/TestFile.cpp37
-rw-r--r--xbmc/filesystem/udf25.cpp2
-rw-r--r--xbmc/guilib/GUIFontTTF.cpp2
-rw-r--r--xbmc/guilib/JpegIO.cpp2
-rw-r--r--xbmc/input/ButtonTranslator.cpp3
-rw-r--r--xbmc/input/Key.h3
-rw-r--r--xbmc/interfaces/Builtins.cpp32
-rw-r--r--xbmc/interfaces/Builtins.h4
-rw-r--r--xbmc/music/MusicDatabase.cpp6
-rw-r--r--xbmc/music/MusicInfoLoader.cpp4
-rw-r--r--xbmc/music/MusicThumbLoader.cpp3
-rw-r--r--xbmc/music/infoscanner/MusicInfoScanner.cpp2
-rw-r--r--xbmc/music/tags/MusicInfoTagLoaderFactory.cpp10
-rw-r--r--xbmc/music/tags/MusicInfoTagLoaderFactory.h4
-rw-r--r--xbmc/music/tags/MusicInfoTagLoaderSPC.cpp156
-rw-r--r--xbmc/music/tags/MusicInfoTagLoaderSPC.h35
-rw-r--r--xbmc/music/tags/TagLibVFSStream.cpp2
-rw-r--r--xbmc/playlists/PlayListM3U.cpp6
-rw-r--r--xbmc/pvr/channels/PVRChannelGroup.cpp2
-rw-r--r--xbmc/settings/AdvancedSettings.cpp2
-rw-r--r--xbmc/test/TestBasicEnvironment.cpp5
-rw-r--r--xbmc/utils/ScraperUrl.cpp2
-rw-r--r--xbmc/utils/XBMCTinyXML.cpp2
-rw-r--r--xbmc/utils/test/TestArchive.cpp68
-rw-r--r--xbmc/utils/test/TestAsyncFileCopy.cpp4
-rw-r--r--xbmc/utils/test/TestCharsetConverter.cpp2
-rw-r--r--xbmc/utils/test/TestFileOperationJob.cpp14
-rw-r--r--xbmc/utils/test/TestFileUtils.cpp4
-rw-r--r--xbmc/utils/test/TestHTMLUtil.cpp2
-rw-r--r--xbmc/utils/test/TestLabelFormatter.cpp4
-rw-r--r--xbmc/utils/test/TestXBMCTinyXML.cpp2
-rw-r--r--xbmc/utils/test/Testfastmemcpy.cpp4
-rw-r--r--xbmc/video/VideoThumbLoader.cpp2
-rw-r--r--xbmc/view/GUIViewState.cpp4
-rw-r--r--xbmc/windows/GUIMediaWindow.cpp3
104 files changed, 603 insertions, 1616 deletions
diff --git a/addons/skin.confluence/720p/DialogAddonInfo.xml b/addons/skin.confluence/720p/DialogAddonInfo.xml
index fc13b34685..741a2e0728 100644
--- a/addons/skin.confluence/720p/DialogAddonInfo.xml
+++ b/addons/skin.confluence/720p/DialogAddonInfo.xml
@@ -12,52 +12,15 @@
<control type="group">
<include>VisibleFadeEffect</include>
<visible>!Window.isVisible(AddonSettings) + !Window.IsActive(TextViewer)</visible>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>920</width>
- <height>639</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>840</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>840</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[24003]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>830</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>3</onleft>
- <onright>3</onright>
- <onup>3</onup>
- <ondown>3</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="920" />
+ <param name="DialogBackgroundHeight" value="639" />
+ <param name="DialogHeaderWidth" value="840" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[24003]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="830" />
+ <param name="CloseButtonNav" value="3" />
+ </include>
<control type="image">
<left>30</left>
<top>70</top>
diff --git a/addons/skin.confluence/720p/DialogAddonSettings.xml b/addons/skin.confluence/720p/DialogAddonSettings.xml
index 0b734b05b5..f3bb63f4ea 100644
--- a/addons/skin.confluence/720p/DialogAddonSettings.xml
+++ b/addons/skin.confluence/720p/DialogAddonSettings.xml
@@ -8,62 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>600</height>
- <texture border="40">DialogBack.png</texture>
- <visible>![Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)]</visible>
- </control>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>600</height>
- <texture border="40">DialogBack2.png</texture>
- <visible>Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)</visible>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="20">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <label>-</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>3</onleft>
- <onright>3</onright>
- <onup>3</onup>
- <ondown>3</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="600" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="-" />
+ <param name="DialogHeaderId" value="20" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="3" />
+ </include>
<control type="grouplist" id="9">
<description>button area</description>
<left>45</left>
diff --git a/addons/skin.confluence/720p/DialogContentSettings.xml b/addons/skin.confluence/720p/DialogContentSettings.xml
index c19ad7ec11..a0b1959121 100644
--- a/addons/skin.confluence/720p/DialogContentSettings.xml
+++ b/addons/skin.confluence/720p/DialogContentSettings.xml
@@ -10,52 +10,15 @@
<controls>
<control type="group">
<animation effect="fade" start="100" end="0" time="150" condition="Window.IsActive(AddonSettings)">Conditional</animation>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>680</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="1">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[20333]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="680" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[20333]" />
+ <param name="DialogHeaderId" value="1" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label">
<description>Content Picker Header</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogGamepad.xml b/addons/skin.confluence/720p/DialogGamepad.xml
index 57eec3118d..17599fcc55 100644
--- a/addons/skin.confluence/720p/DialogGamepad.xml
+++ b/addons/skin.confluence/720p/DialogGamepad.xml
@@ -8,51 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>610</width>
- <height>230</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>530</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="1">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>530</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[13406]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>520</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="610" />
+ <param name="DialogBackgroundHeight" value="230" />
+ <param name="DialogHeaderWidth" value="530" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[13406]" />
+ <param name="DialogHeaderId" value="1" />
+ <param name="CloseButtonLeft" value="520" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label" id="2">
<description>dialog line 1</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml b/addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml
index 9356bb900c..b112293a09 100644
--- a/addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml
+++ b/addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml
@@ -8,51 +8,15 @@
</coordinates>
<controls>
<control type="group">
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>450</width>
- <height>170</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>370</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="1">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>370</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[31321]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>360</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="450" />
+ <param name="DialogBackgroundHeight" value="170" />
+ <param name="DialogHeaderWidth" value="370" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[31321]" />
+ <param name="DialogHeaderId" value="1" />
+ <param name="CloseButtonLeft" value="360" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label" id="401">
<description>Song Number Label</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogKeyboard.xml b/addons/skin.confluence/720p/DialogKeyboard.xml
index 04e7d874e9..860cffe694 100644
--- a/addons/skin.confluence/720p/DialogKeyboard.xml
+++ b/addons/skin.confluence/720p/DialogKeyboard.xml
@@ -11,50 +11,15 @@
<control type="group">
<include>VisibleFadeEffect</include>
<visible>!Window.IsVisible(numericinput)</visible>
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>860</width>
- <height>430</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>780</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="311">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>820</width>
- <height>30</height>
- <font>font13_title</font>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>770</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>3</onleft>
- <onright>3</onright>
- <onup>3</onup>
- <ondown>3</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="860" />
+ <param name="DialogBackgroundHeight" value="430" />
+ <param name="DialogHeaderWidth" value="780" />
+ <param name="DialogHeaderLabel" value="" />
+ <param name="DialogHeaderId" value="311" />
+ <param name="CloseButtonLeft" value="770" />
+ <param name="CloseButtonNav" value="3" />
+ </include>
<control type="image">
<left>50</left>
<top>60</top>
diff --git a/addons/skin.confluence/720p/DialogMediaFilter.xml b/addons/skin.confluence/720p/DialogMediaFilter.xml
index 7e803bce3c..9dd8b03e03 100644
--- a/addons/skin.confluence/720p/DialogMediaFilter.xml
+++ b/addons/skin.confluence/720p/DialogMediaFilter.xml
@@ -8,52 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>500</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <label>587</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="500" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[587]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="grouplist" id="5">
<description>control area</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogMediaSource.xml b/addons/skin.confluence/720p/DialogMediaSource.xml
index 93ff4e1d0d..ede609966f 100644
--- a/addons/skin.confluence/720p/DialogMediaSource.xml
+++ b/addons/skin.confluence/720p/DialogMediaSource.xml
@@ -8,52 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>500</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[13406]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="500" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[13406]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label">
<description>path label</description>
<left>20</left>
diff --git a/addons/skin.confluence/720p/DialogNetworkSetup.xml b/addons/skin.confluence/720p/DialogNetworkSetup.xml
index 69e6445fc5..0c0887ef87 100644
--- a/addons/skin.confluence/720p/DialogNetworkSetup.xml
+++ b/addons/skin.confluence/720p/DialogNetworkSetup.xml
@@ -8,52 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>440</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[1007]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="440" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[1007]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="spincontrolex" id="10">
<description>Protocol SpinControl</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogOK.xml b/addons/skin.confluence/720p/DialogOK.xml
index 6a23e3783f..556e44a8d6 100644
--- a/addons/skin.confluence/720p/DialogOK.xml
+++ b/addons/skin.confluence/720p/DialogOK.xml
@@ -8,51 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>610</width>
- <height>240</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>530</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="1">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>530</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[13406]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>520</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="610" />
+ <param name="DialogBackgroundHeight" value="240" />
+ <param name="DialogHeaderWidth" value="530" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[13406]" />
+ <param name="DialogHeaderId" value="1" />
+ <param name="CloseButtonLeft" value="520" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="textbox" id="9">
<description>text</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogPVRChannelManager.xml b/addons/skin.confluence/720p/DialogPVRChannelManager.xml
index e9f6034f69..3bdbf9f424 100644
--- a/addons/skin.confluence/720p/DialogPVRChannelManager.xml
+++ b/addons/skin.confluence/720p/DialogPVRChannelManager.xml
@@ -9,66 +9,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>1120</width>
- <height>570</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>1020</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>1020</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[19199] - $LOCALIZE[19023]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- <visible>IsEmpty(Window.Property(IsRadio))</visible>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>1020</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[19199] - $LOCALIZE[19024]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- <visible>!IsEmpty(Window.Property(IsRadio))</visible>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>1030</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="1120" />
+ <param name="DialogBackgroundHeight" value="570" />
+ <param name="DialogHeaderWidth" value="1020" />
+ <param name="DialogHeaderLabel" value="$VAR[PVRChannelMgrHeader]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="1030" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="group">
<left>20</left>
<top>70</top>
diff --git a/addons/skin.confluence/720p/DialogPVRGuideInfo.xml b/addons/skin.confluence/720p/DialogPVRGuideInfo.xml
index 2224cbf426..bca02a0e5d 100644
--- a/addons/skin.confluence/720p/DialogPVRGuideInfo.xml
+++ b/addons/skin.confluence/720p/DialogPVRGuideInfo.xml
@@ -10,62 +10,15 @@
<include>dialogeffect</include>
<controls>
<control type="group">
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>790</width>
- <height>660</height>
- <texture border="40">DialogBack2.png</texture>
- <visible>Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)</visible>
- </control>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>790</width>
- <height>660</height>
- <texture border="40">DialogBack.png</texture>
- <visible>![Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)]</visible>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>710</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>710</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[19047]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>700</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="790" />
+ <param name="DialogBackgroundHeight" value="660" />
+ <param name="DialogHeaderWidth" value="710" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[19047]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="700" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label">
<description>Title label</description>
<left>40</left>
diff --git a/addons/skin.confluence/720p/DialogPVRGuideSearch.xml b/addons/skin.confluence/720p/DialogPVRGuideSearch.xml
index 02bb14f4a9..4f7c647aa9 100644
--- a/addons/skin.confluence/720p/DialogPVRGuideSearch.xml
+++ b/addons/skin.confluence/720p/DialogPVRGuideSearch.xml
@@ -8,52 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>865</width>
- <height>605</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>785</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>785</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[19142]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>775</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>3</onleft>
- <onright>3</onright>
- <onup>3</onup>
- <ondown>3</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="865" />
+ <param name="DialogBackgroundHeight" value="605" />
+ <param name="DialogHeaderWidth" value="785" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[19142]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="775" />
+ <param name="CloseButtonNav" value="3" />
+ </include>
<control type="label">
<description>Search string</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogPVRRecordingInfo.xml b/addons/skin.confluence/720p/DialogPVRRecordingInfo.xml
index f17228b518..01578697c9 100644
--- a/addons/skin.confluence/720p/DialogPVRRecordingInfo.xml
+++ b/addons/skin.confluence/720p/DialogPVRRecordingInfo.xml
@@ -8,62 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>730</width>
- <height>660</height>
- <texture border="40">DialogBack2.png</texture>
- <visible>Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)</visible>
- </control>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>730</width>
- <height>660</height>
- <texture border="40">DialogBack.png</texture>
- <visible>![Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)]</visible>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>650</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>650</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[19053]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>640</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="730" />
+ <param name="DialogBackgroundHeight" value="660" />
+ <param name="DialogHeaderWidth" value="650" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[19053]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="640" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label">
<description>Title label</description>
<left>40</left>
diff --git a/addons/skin.confluence/720p/DialogPVRTimerSettings.xml b/addons/skin.confluence/720p/DialogPVRTimerSettings.xml
index 3898ca6826..ecee142b05 100644
--- a/addons/skin.confluence/720p/DialogPVRTimerSettings.xml
+++ b/addons/skin.confluence/720p/DialogPVRTimerSettings.xml
@@ -8,52 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>730</width>
- <height>660</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>650</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>650</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[19065]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>640</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="730" />
+ <param name="DialogBackgroundHeight" value="660" />
+ <param name="DialogHeaderWidth" value="650" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[19065]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="640" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="grouplist" id="5">
<description>control area</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogPeripheralManager.xml b/addons/skin.confluence/720p/DialogPeripheralManager.xml
index a2b7d5ac44..ddb9ed4a54 100644
--- a/addons/skin.confluence/720p/DialogPeripheralManager.xml
+++ b/addons/skin.confluence/720p/DialogPeripheralManager.xml
@@ -11,62 +11,15 @@
<control type="group">
<visible>!Window.IsVisible(PeripheralSettings)</visible>
<include>VisibleFadeEffect</include>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>610</width>
- <height>650</height>
- <texture border="40">DialogBack.png</texture>
- <visible>![Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)]</visible>
- </control>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>610</width>
- <height>650</height>
- <texture border="40">DialogBack2.png</texture>
- <visible>Window.IsVisible(FullscreenVideo) | Window.IsVisible(Visualisation)</visible>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>530</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="1">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>530</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[35000]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>520</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="610" />
+ <param name="DialogBackgroundHeight" value="650" />
+ <param name="DialogHeaderWidth" value="530" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[35000]" />
+ <param name="DialogHeaderId" value="1" />
+ <param name="CloseButtonLeft" value="520" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="list" id="20">
<left>20</left>
<top>65</top>
diff --git a/addons/skin.confluence/720p/DialogPeripheralSettings.xml b/addons/skin.confluence/720p/DialogPeripheralSettings.xml
index 9d5c41f039..8942ec7d33 100644
--- a/addons/skin.confluence/720p/DialogPeripheralSettings.xml
+++ b/addons/skin.confluence/720p/DialogPeripheralSettings.xml
@@ -8,51 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>700</width>
- <height>570</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>620</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>620</width>
- <height>30</height>
- <font>font13_title</font>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>610</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>5</onleft>
- <onright>5</onright>
- <onup>5</onup>
- <ondown>5</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="700" />
+ <param name="DialogBackgroundHeight" value="570" />
+ <param name="DialogHeaderWidth" value="620" />
+ <param name="DialogHeaderLabel" value="" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="610" />
+ <param name="CloseButtonNav" value="5" />
+ </include>
<control type="grouplist" id="5">
<animation effect="slide" start="0,0" end="5,0" time="0" condition="!Control.IsVisible(60)">Conditional</animation>
<description>control area</description>
diff --git a/addons/skin.confluence/720p/DialogProgress.xml b/addons/skin.confluence/720p/DialogProgress.xml
index 81d5c934d9..146df69f1c 100644
--- a/addons/skin.confluence/720p/DialogProgress.xml
+++ b/addons/skin.confluence/720p/DialogProgress.xml
@@ -8,21 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>610</width>
- <height>240</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>530</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="610" />
+ <param name="DialogBackgroundHeight" value="240" />
+ <param name="DialogHeaderWidth" value="530" />
+ <param name="DialogHeaderLabel" value="$INFO[Control.GetLabel(1)] $INFO[System.Progressbar,- ,%]" />
+ <param name="DialogHeaderId" value="0" />
+ <param name="CloseButtonLeft" value="520" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label" id="1">
<description>fake heading label</description>
<left>0</left>
@@ -32,36 +26,6 @@
<font>-</font>
<visible>false</visible>
</control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>530</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$INFO[Control.GetLabel(1)] $INFO[System.Progressbar,- ,%]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>520</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
<control type="textbox" id="9">
<description>text</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/DialogSongInfo.xml b/addons/skin.confluence/720p/DialogSongInfo.xml
index b8fe9385b4..a0c7802d15 100644
--- a/addons/skin.confluence/720p/DialogSongInfo.xml
+++ b/addons/skin.confluence/720p/DialogSongInfo.xml
@@ -11,52 +11,15 @@
<control type="group">
<include>VisibleFadeEffect</include>
<visible>!Window.IsVisible(MusicInformation)</visible>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>910</width>
- <height>510</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>830</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>830</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[658]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>820</left>
- <top>14</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>3</onleft>
- <onright>3</onright>
- <onup>3</onup>
- <ondown>3</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="910" />
+ <param name="DialogBackgroundHeight" value="510" />
+ <param name="DialogHeaderWidth" value="830" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[658]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="820" />
+ <param name="CloseButtonNav" value="3" />
+ </include>
<control type="label">
<description>Song Title value</description>
<left>40</left>
diff --git a/addons/skin.confluence/720p/DialogYesNo.xml b/addons/skin.confluence/720p/DialogYesNo.xml
index cc94a45132..63f2959fbf 100644
--- a/addons/skin.confluence/720p/DialogYesNo.xml
+++ b/addons/skin.confluence/720p/DialogYesNo.xml
@@ -8,51 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <left>0</left>
- <top>0</top>
- <width>610</width>
- <height>240</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>530</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="1">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>530</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[13406]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>520</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="610" />
+ <param name="DialogBackgroundHeight" value="240" />
+ <param name="DialogHeaderWidth" value="530" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[13406]" />
+ <param name="DialogHeaderId" value="1" />
+ <param name="CloseButtonLeft" value="520" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="textbox" id="9">
<description>text</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/LockSettings.xml b/addons/skin.confluence/720p/LockSettings.xml
index b857fb076e..1b47191ebf 100644
--- a/addons/skin.confluence/720p/LockSettings.xml
+++ b/addons/skin.confluence/720p/LockSettings.xml
@@ -8,52 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>700</width>
- <height>570</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>620</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>620</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[20043]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>610</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>5</onleft>
- <onright>5</onright>
- <onup>5</onup>
- <ondown>5</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="700" />
+ <param name="DialogBackgroundHeight" value="570" />
+ <param name="DialogHeaderWidth" value="620" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[20043]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="610" />
+ <param name="CloseButtonNav" value="5" />
+ </include>
<control type="grouplist" id="5">
<description>control area</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/ProfileSettings.xml b/addons/skin.confluence/720p/ProfileSettings.xml
index 0bd1a8ae42..f8277c7399 100644
--- a/addons/skin.confluence/720p/ProfileSettings.xml
+++ b/addons/skin.confluence/720p/ProfileSettings.xml
@@ -7,52 +7,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>700</width>
- <height>570</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>620</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>620</width>
- <height>30</height>
- <font>font13_title</font>
- <label>-</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>610</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>1</onleft>
- <onright>1</onright>
- <onup>1</onup>
- <ondown>1</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="700" />
+ <param name="DialogBackgroundHeight" value="570" />
+ <param name="DialogHeaderWidth" value="620" />
+ <param name="DialogHeaderLabel" value="-" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="610" />
+ <param name="CloseButtonNav" value="1" />
+ </include>
<control type="image" id="101">
<description>profile image</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/SmartPlaylistEditor.xml b/addons/skin.confluence/720p/SmartPlaylistEditor.xml
index b9a14d1afe..761cc5ed1b 100644
--- a/addons/skin.confluence/720p/SmartPlaylistEditor.xml
+++ b/addons/skin.confluence/720p/SmartPlaylistEditor.xml
@@ -12,51 +12,15 @@
<control type="group">
<visible>!Window.IsVisible(smartplaylistrule)</visible>
<include>VisibleFadeEffect</include>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>675</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>9</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>22</onleft>
- <onright>22</onright>
- <onup>22</onup>
- <ondown>22</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="675" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="-" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="22" />
+ </include>
<control type="spincontrolex" id="22">
<description>Set Playlist type</description>
<left>30</left>
diff --git a/addons/skin.confluence/720p/SmartPlaylistRule.xml b/addons/skin.confluence/720p/SmartPlaylistRule.xml
index a8cb251052..2ec5c86c72 100644
--- a/addons/skin.confluence/720p/SmartPlaylistRule.xml
+++ b/addons/skin.confluence/720p/SmartPlaylistRule.xml
@@ -9,52 +9,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>280</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <label>$LOCALIZE[21421]</label>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>9001</onleft>
- <onright>9001</onright>
- <onup>9001</onup>
- <ondown>9001</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="280" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="$LOCALIZE[21421]" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="9001" />
+ </include>
<control type="label">
<description>Rule match label</description>
<left>40</left>
diff --git a/addons/skin.confluence/720p/includes.xml b/addons/skin.confluence/720p/includes.xml
index 46d50a40b2..902fa4da24 100644
--- a/addons/skin.confluence/720p/includes.xml
+++ b/addons/skin.confluence/720p/includes.xml
@@ -68,6 +68,58 @@
<value condition="Player.Forwarding">$LOCALIZE[31044]</value>
<value condition="Player.Rewinding">$LOCALIZE[31045]</value>
</variable>
+ <variable name="PVRChannelMgrHeader">
+ <value condition="!IsEmpty(Window.Property(IsRadio))">$LOCALIZE[19199] - $LOCALIZE[19024]</value>
+ <value>$LOCALIZE[19199] - $LOCALIZE[19023]</value>
+ </variable>
+ <include name="DialogBackgroundCommons">
+ <control type="image">
+ <description>background image</description>
+ <left>0</left>
+ <top>0</top>
+ <width>$PARAM[DialogBackgroundWidth]</width>
+ <height>$PARAM[DialogBackgroundHeight]</height>
+ <texture border="40">$VAR[SelectBack]</texture>
+ </control>
+ <control type="image">
+ <description>Dialog Header image</description>
+ <left>40</left>
+ <top>16</top>
+ <width>$PARAM[DialogHeaderWidth]</width>
+ <height>40</height>
+ <texture>dialogheader.png</texture>
+ </control>
+ <control type="label" id="$PARAM[DialogHeaderId]">
+ <description>header label</description>
+ <left>40</left>
+ <top>20</top>
+ <width>$PARAM[DialogHeaderWidth]</width>
+ <height>30</height>
+ <font>font13_title</font>
+ <label>$PARAM[DialogHeaderLabel]</label>
+ <align>center</align>
+ <aligny>center</aligny>
+ <textcolor>selected</textcolor>
+ <shadowcolor>black</shadowcolor>
+ </control>
+ <control type="button">
+ <description>Close Window button</description>
+ <left>$PARAM[CloseButtonLeft]</left>
+ <top>15</top>
+ <width>64</width>
+ <height>32</height>
+ <label>-</label>
+ <font>-</font>
+ <onclick>PreviousMenu</onclick>
+ <texturefocus>DialogCloseButton-focus.png</texturefocus>
+ <texturenofocus>DialogCloseButton.png</texturenofocus>
+ <onleft>$PARAM[CloseButtonNav]</onleft>
+ <onright>$PARAM[CloseButtonNav]</onright>
+ <onup>$PARAM[CloseButtonNav]</onup>
+ <ondown>$PARAM[CloseButtonNav]</ondown>
+ <visible>system.getbool(input.enablemouse)</visible>
+ </control>
+ </include>
<include name="BehindDialogFadeOut">
<control type="image">
<left>0</left>
diff --git a/addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml b/addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml
index 5050196d2f..010a3e7483 100644
--- a/addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml
+++ b/addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml
@@ -8,51 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>420</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="420" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="-" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label" id="3">
<description>List label</description>
<left>20</left>
diff --git a/addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml b/addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml
index 5050196d2f..010a3e7483 100644
--- a/addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml
+++ b/addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml
@@ -8,51 +8,15 @@
</coordinates>
<include>dialogeffect</include>
<controls>
- <control type="image">
- <description>background image</description>
- <left>0</left>
- <top>0</top>
- <width>800</width>
- <height>420</height>
- <texture border="40">DialogBack.png</texture>
- </control>
- <control type="image">
- <description>Dialog Header image</description>
- <left>40</left>
- <top>16</top>
- <width>720</width>
- <height>40</height>
- <texture>dialogheader.png</texture>
- </control>
- <control type="label" id="2">
- <description>header label</description>
- <left>40</left>
- <top>20</top>
- <width>720</width>
- <height>30</height>
- <font>font13_title</font>
- <align>center</align>
- <aligny>center</aligny>
- <textcolor>selected</textcolor>
- <shadowcolor>black</shadowcolor>
- </control>
- <control type="button">
- <description>Close Window button</description>
- <left>710</left>
- <top>15</top>
- <width>64</width>
- <height>32</height>
- <label>-</label>
- <font>-</font>
- <onclick>PreviousMenu</onclick>
- <texturefocus>DialogCloseButton-focus.png</texturefocus>
- <texturenofocus>DialogCloseButton.png</texturenofocus>
- <onleft>10</onleft>
- <onright>10</onright>
- <onup>10</onup>
- <ondown>10</ondown>
- <visible>system.getbool(input.enablemouse)</visible>
- </control>
+ <include name="DialogBackgroundCommons">
+ <param name="DialogBackgroundWidth" value="800" />
+ <param name="DialogBackgroundHeight" value="420" />
+ <param name="DialogHeaderWidth" value="720" />
+ <param name="DialogHeaderLabel" value="-" />
+ <param name="DialogHeaderId" value="2" />
+ <param name="CloseButtonLeft" value="710" />
+ <param name="CloseButtonNav" value="10" />
+ </include>
<control type="label" id="3">
<description>List label</description>
<left>20</left>
diff --git a/addons/skin.confluence/media/flagging/audio/pcm.png b/addons/skin.confluence/media/flagging/audio/pcm.png
new file mode 100644
index 0000000000..752a9a44b9
--- /dev/null
+++ b/addons/skin.confluence/media/flagging/audio/pcm.png
Binary files differ
diff --git a/addons/skin.confluence/media/flagging/audio/pcm_s16le.png b/addons/skin.confluence/media/flagging/audio/pcm_s16le.png
new file mode 100644
index 0000000000..752a9a44b9
--- /dev/null
+++ b/addons/skin.confluence/media/flagging/audio/pcm_s16le.png
Binary files differ
diff --git a/addons/skin.confluence/media/flagging/audio/pcm_s24le.png b/addons/skin.confluence/media/flagging/audio/pcm_s24le.png
new file mode 100644
index 0000000000..752a9a44b9
--- /dev/null
+++ b/addons/skin.confluence/media/flagging/audio/pcm_s24le.png
Binary files differ
diff --git a/addons/skin.confluence/sounds/sounds.xml b/addons/skin.confluence/sounds/sounds.xml
index 68b97652c0..b774c5186c 100644
--- a/addons/skin.confluence/sounds/sounds.xml
+++ b/addons/skin.confluence/sounds/sounds.xml
@@ -66,6 +66,10 @@
<name>screenshot</name>
<file>shutter.wav</file>
</action>
+ <action>
+ <name>error</name>
+ <file>notify.wav</file>
+ </action>
</actions>
<windows>
diff --git a/docs/README.ubuntu b/docs/README.ubuntu
index e221f93bc7..abf33fa954 100644
--- a/docs/README.ubuntu
+++ b/docs/README.ubuntu
@@ -47,13 +47,21 @@ Two methods exist to install the required Ubuntu packages:
You can get all build dependencies used for building the packages on the PPA
-Add the unstable and build-depends PPAs:
-.0 $ sudo apt-get install python-software-properties software-properties-common
-.1 $ sudo add-apt-repository ppa:team-xbmc/xbmc-nightly
-.2 $ sudo add-apt-repository ppa:team-xbmc/xbmc-ppa-build-depends
-.3 $ sudo apt-get update
+Add the unstable PPA:
+
+For <= 12.04 lts:
+ $ sudo apt-get install python-software-properties
+ $ sudo add-apt-repository ppa:team-xbmc/xbmc-nightly
+
+For >= 14.04 lts:
+ $ sudo apt-get install software-properties-common
+ $ sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly
+
+Add build-depends PPA:
+ $ sudo add-apt-repository ppa:team-xbmc/xbmc-ppa-build-depends
Here is the magic command to get the build dependencies (used to compile the version on the PPA).
+ $ sudo apt-get update
$ sudo apt-get build-dep kodi
Optional: If you do not want Kodi to be installed via PPA, you can removed the PPAs again:
diff --git a/tools/buildsteps/android/make-native-depends b/tools/buildsteps/android/make-native-depends
index f67ced0eef..c327180f6d 100644
--- a/tools/buildsteps/android/make-native-depends
+++ b/tools/buildsteps/android/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=android
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/android/prepare-xbmc b/tools/buildsteps/android/prepare-xbmc
index b6402ee3c9..bccdcb0453 100644
--- a/tools/buildsteps/android/prepare-xbmc
+++ b/tools/buildsteps/android/prepare-xbmc
@@ -11,4 +11,7 @@ fi
git submodule update --init $WORKSPACE/addons/skin.re-touched
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/androidx86/make-native-depends b/tools/buildsteps/androidx86/make-native-depends
index 549ad2becb..33cc579322 100644
--- a/tools/buildsteps/androidx86/make-native-depends
+++ b/tools/buildsteps/androidx86/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=android
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/androidx86/prepare-xbmc b/tools/buildsteps/androidx86/prepare-xbmc
index b6402ee3c9..bccdcb0453 100644
--- a/tools/buildsteps/androidx86/prepare-xbmc
+++ b/tools/buildsteps/androidx86/prepare-xbmc
@@ -11,4 +11,7 @@ fi
git submodule update --init $WORKSPACE/addons/skin.re-touched
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/atv2/make-native-depends b/tools/buildsteps/atv2/make-native-depends
index 416c14f3cb..fea566c3a7 100755
--- a/tools/buildsteps/atv2/make-native-depends
+++ b/tools/buildsteps/atv2/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=atv2
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/atv2/prepare-xbmc b/tools/buildsteps/atv2/prepare-xbmc
index b24df067fd..b20fc6613e 100755
--- a/tools/buildsteps/atv2/prepare-xbmc
+++ b/tools/buildsteps/atv2/prepare-xbmc
@@ -4,4 +4,7 @@ XBMC_PLATFORM_DIR=atv2
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/ios/make-native-depends b/tools/buildsteps/ios/make-native-depends
index 36ebea8bb3..3211bf7065 100755
--- a/tools/buildsteps/ios/make-native-depends
+++ b/tools/buildsteps/ios/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=ios
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/ios/prepare-xbmc b/tools/buildsteps/ios/prepare-xbmc
index 9497ceab6b..0d96ee12ec 100755
--- a/tools/buildsteps/ios/prepare-xbmc
+++ b/tools/buildsteps/ios/prepare-xbmc
@@ -11,4 +11,7 @@ fi
git submodule update --init $WORKSPACE/addons/skin.re-touched
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/linux32/make-native-depends b/tools/buildsteps/linux32/make-native-depends
index 1f21d53375..9afd70b1ab 100755
--- a/tools/buildsteps/linux32/make-native-depends
+++ b/tools/buildsteps/linux32/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=linux32
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/linux32/prepare-xbmc b/tools/buildsteps/linux32/prepare-xbmc
index 0fbd21ee35..f22988a5ee 100755
--- a/tools/buildsteps/linux32/prepare-xbmc
+++ b/tools/buildsteps/linux32/prepare-xbmc
@@ -3,4 +3,7 @@ XBMC_PLATFORM_DIR=linux32
. $WORKSPACE/tools/buildsteps/defaultenv
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/linux64/make-native-depends b/tools/buildsteps/linux64/make-native-depends
index c05850f7f3..82abef5c52 100755
--- a/tools/buildsteps/linux64/make-native-depends
+++ b/tools/buildsteps/linux64/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=linux64
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/linux64/prepare-xbmc b/tools/buildsteps/linux64/prepare-xbmc
index 6d6db0fcb2..71f0a12206 100755
--- a/tools/buildsteps/linux64/prepare-xbmc
+++ b/tools/buildsteps/linux64/prepare-xbmc
@@ -3,4 +3,7 @@ XBMC_PLATFORM_DIR=linux64
. $WORKSPACE/tools/buildsteps/defaultenv
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/osx32/make-native-depends b/tools/buildsteps/osx32/make-native-depends
index 6bdbc6665e..7c0a3f4487 100755
--- a/tools/buildsteps/osx32/make-native-depends
+++ b/tools/buildsteps/osx32/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=osx32
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/osx32/prepare-xbmc b/tools/buildsteps/osx32/prepare-xbmc
index 59431ddb17..eb1f30bbff 100755
--- a/tools/buildsteps/osx32/prepare-xbmc
+++ b/tools/buildsteps/osx32/prepare-xbmc
@@ -3,4 +3,7 @@ XBMC_PLATFORM_DIR=osx32
. $WORKSPACE/tools/buildsteps/defaultenv
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/osx64/make-native-depends b/tools/buildsteps/osx64/make-native-depends
index d74c80ee26..b5ef52600c 100755
--- a/tools/buildsteps/osx64/make-native-depends
+++ b/tools/buildsteps/osx64/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=osx64
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/osx64/prepare-xbmc b/tools/buildsteps/osx64/prepare-xbmc
index 2c30e4924c..5ed09fa4b1 100755
--- a/tools/buildsteps/osx64/prepare-xbmc
+++ b/tools/buildsteps/osx64/prepare-xbmc
@@ -3,4 +3,7 @@ XBMC_PLATFORM_DIR=osx64
. $WORKSPACE/tools/buildsteps/defaultenv
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/rbpi/make-native-depends b/tools/buildsteps/rbpi/make-native-depends
index 5f6d64c452..d4d9e7dbe1 100755
--- a/tools/buildsteps/rbpi/make-native-depends
+++ b/tools/buildsteps/rbpi/make-native-depends
@@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )}
XBMC_PLATFORM_DIR=rbpi
. $WORKSPACE/tools/buildsteps/defaultenv
-if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ]
+if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] && [ "$BINARY_ADDONS_CLEAN_NATIVETOOLS" != "0" ]
then
git clean -xffd $WORKSPACE/tools/depends/native
cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends
diff --git a/tools/buildsteps/rbpi/prepare-xbmc b/tools/buildsteps/rbpi/prepare-xbmc
index 468c7ed5cb..15bd09542d 100755
--- a/tools/buildsteps/rbpi/prepare-xbmc
+++ b/tools/buildsteps/rbpi/prepare-xbmc
@@ -6,4 +6,7 @@ cd $WORKSPACE
JSON_BUILDER=$XBMC_DEPENDS_ROOT/i686-linux-gnu-native/bin/JsonSchemaBuilder ./bootstrap
#build binary addons before building xbmc...
+#make sure that binary_addons don't clean the native tools
+#here (e.x. on release builds where pathChanged always returns 1
+BINARY_ADDONS_CLEAN_NATIVETOOLS="0"
. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons
diff --git a/tools/buildsteps/win32/run-tests.bat b/tools/buildsteps/win32/run-tests.bat
new file mode 100644
index 0000000000..1db6a50f2c
--- /dev/null
+++ b/tools/buildsteps/win32/run-tests.bat
@@ -0,0 +1,99 @@
+@ECHO OFF
+SETLOCAL ENABLEDELAYEDEXPANSION
+REM setup all paths
+SET cur_dir=%WORKSPACE%\project\Win32BuildSetup
+cd %cur_dir%
+SET base_dir=%cur_dir%\..\..
+SET builddeps_dir=%cur_dir%\..\..\project\BuildDependencies
+SET bin_dir=%builddeps_dir%\bin
+SET msys_bin_dir=%builddeps_dir%\msys\bin
+REM read the version values from version.txt
+FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/APP_NAME/ {print $2}" %base_dir%\version.txt') DO SET APP_NAME=%%i
+FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/COMPANY_NAME/ {print $2}" %base_dir%\version.txt') DO SET COMPANY=%%i
+FOR /f %%i IN ('%msys_bin_dir%\awk.exe "/WEBSITE/ {print $2}" %base_dir%\version.txt') DO SET WEBSITE=%%i
+
+CLS
+COLOR 1B
+TITLE %APP_NAME% testsuite Build-/Runscript
+
+rem -------------------------------------------------------------
+rem CONFIG START
+SET exitcode=0
+SET useshell=sh
+SET BRANCH=na
+SET buildconfig=Debug Testsuite
+set WORKSPACE=%CD%\..\..
+
+
+ REM look for MSBuild.exe delivered with Visual Studio 2013
+ FOR /F "tokens=2,* delims= " %%A IN ('REG QUERY HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0 /v MSBuildToolsRoot') DO SET MSBUILDROOT=%%B
+ SET NET="%MSBUILDROOT%12.0\bin\MSBuild.exe"
+
+ IF EXIST "!NET!" (
+ set msbuildemitsolution=1
+ set OPTS_EXE="..\VS2010Express\XBMC for Windows.sln" /t:Build /p:Configuration="%buildconfig%" /property:VCTargetsPath="%MSBUILDROOT%Microsoft.Cpp\v4.0\V120" /m
+ set CLEAN_EXE="..\VS2010Express\XBMC for Windows.sln" /t:Clean /p:Configuration="%buildconfig%" /property:VCTargetsPath="%MSBUILDROOT%Microsoft.Cpp\v4.0\V120"
+ )
+
+ IF NOT EXIST %NET% (
+ set DIETEXT=MSBuild was not found.
+ goto DIE
+ )
+
+ set EXE= "..\VS2010Express\XBMC\%buildconfig%\%APP_NAME%-test.exe"
+ set PDB= "..\VS2010Express\XBMC\%buildconfig%\%APP_NAME%.pdb"
+
+ :: sets the BRANCH env var
+ call getbranch.bat
+
+ rem CONFIG END
+ rem -------------------------------------------------------------
+
+echo Building %buildconfig%
+IF EXIST buildlog.html del buildlog.html /q
+
+ECHO Compiling testsuite...
+%NET% %OPTS_EXE%
+
+IF %errorlevel%==1 (
+ set DIETEXT="%APP_NAME%-test.EXE failed to build! See %CD%\..\vs2010express\XBMC\%buildconfig%\objs\XBMC.log"
+ type "%CD%\..\vs2010express\XBMC\%buildconfig%\objs\XBMC.log"
+ goto DIE
+)
+ECHO Done building!
+ECHO ------------------------------------------------------------
+
+:RUNTESTSUITE
+ECHO Running testsuite...
+ cd %WORKSPACE%\project\vs2010express\
+ set KODI_HOME=%WORKSPACE%
+ set PATH=%WORKSPACE%\project\Win32BuildSetup\dependencies;%PATH%
+ rem exclude TestWebServer tests for now as those last 120 secs per test
+ rem not for some reason (maybe timeout?!? firewall?!? whatever...)
+ %EXE% --gtest_output=xml:%WORKSPACE%\gtestresults.xml --gtest_filter=-TestWebServer.*
+
+ rem Adapt gtest xml output to be conform with junit xml
+ rem this basically looks for lines which have "notrun" in the <testcase /> tag
+ rem and adds a <skipped/> subtag into it. For example:
+ rem <testcase name="IsStarted" status="notrun" time="0" classname="TestWebServer"/>
+ rem becomes
+ rem <testcase name="IsStarted" status="notrun" time="0" classname="TestWebServer"><skipped/></testcase>
+ %msys_bin_dir%\sed.exe "s/<testcase\(.*\)\"notrun\"\(.*\)\/>$/<testcase\1\"notrun\"\2><skipped\/><\/testcase>/" %WORKSPACE%\gtestresults.xml > %WORKSPACE%\gtestresults-skipped.xml
+ del %WORKSPACE%\gtestresults.xml
+ move %WORKSPACE%\gtestresults-skipped.xml %WORKSPACE%\gtestresults.xml
+ECHO Done running testsuite!
+ECHO ------------------------------------------------------------
+GOTO END
+
+:DIE
+ ECHO ------------------------------------------------------------
+ ECHO !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-
+ ECHO ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR
+ ECHO !-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-!-
+ set DIETEXT=ERROR: %DIETEXT%
+ echo %DIETEXT%
+ SET exitcode=1
+ ECHO ------------------------------------------------------------
+
+:END
+ EXIT /B %exitcode% \ No newline at end of file
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 93edcb07e9..69b1cd789c 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -3886,7 +3886,7 @@ bool CApplication::OnMessage(CGUIMessage& message)
{
if (!m_itemCurrentFile->HasMusicInfoTag() || !m_itemCurrentFile->GetMusicInfoTag()->Loaded())
{
- IMusicInfoTagLoader* tagloader = CMusicInfoTagLoaderFactory::CreateLoader(m_itemCurrentFile->GetPath());
+ IMusicInfoTagLoader* tagloader = CMusicInfoTagLoaderFactory::CreateLoader(*m_itemCurrentFile);
tagloader->Load(m_itemCurrentFile->GetPath(),*m_itemCurrentFile->GetMusicInfoTag());
delete tagloader;
}
diff --git a/xbmc/CueDocument.cpp b/xbmc/CueDocument.cpp
index dcf6ba8637..747497fb01 100644
--- a/xbmc/CueDocument.cpp
+++ b/xbmc/CueDocument.cpp
@@ -131,7 +131,6 @@ public:
{
// Read the next line.
line.clear();
- bool stop = false;
while (m_pos < m_data.size())
{
// Remove the white space at the beginning of the line.
diff --git a/xbmc/DllPaths_generated.h.in b/xbmc/DllPaths_generated.h.in
index 453af0ee8d..c92a8bd1ec 100644
--- a/xbmc/DllPaths_generated.h.in
+++ b/xbmc/DllPaths_generated.h.in
@@ -46,10 +46,6 @@
#define DLL_PATH_LIBDVDNAV "special://xbmcbin/system/players/dvdplayer/libdvdnav-@ARCH@.so"
#define DLL_PATH_LIBMPEG2 "@MPEG2_SONAME@"
-/* cdrip */
-#define DLL_PATH_OGG "@OGG_SONAME@"
-#define DLL_PATH_VORBIS "@VORBIS_SONAME@"
-
/* libbluray */
#define DLL_PATH_LIBBLURAY "@BLURAY_SONAME@"
diff --git a/xbmc/DllPaths_generated_android.h.in b/xbmc/DllPaths_generated_android.h.in
index 6270b85da1..4369a7093c 100644
--- a/xbmc/DllPaths_generated_android.h.in
+++ b/xbmc/DllPaths_generated_android.h.in
@@ -43,28 +43,6 @@
#define DLL_PATH_LIBCURL "@CURL_SONAME@"
#endif
-/* paplayer */
-#define DLL_PATH_AAC_CODEC "libAACCodec-@ARCH@.so"
-#define DLL_PATH_ADPCM_CODEC "libadpcm-@ARCH@.so"
-#define DLL_PATH_ADPLUG_CODEC "libadplug-@ARCH@.so"
-#define DLL_PATH_APE_CODEC "libMACDll-@ARCH@.so"
-#define DLL_PATH_ASAP_CODEC "libxbmc_asap-@ARCH@.so"
-#define DLL_PATH_DCA_CODEC "libdcacodec-@ARCH@.so"
-#define DLL_PATH_GYM_CODEC "libgensapu-@ARCH@.so"
-#define DLL_PATH_MID_CODEC "libtimidity-@ARCH@.so"
-#define DLL_PATH_MODULE_CODEC "libdumb-@ARCH@.so"
-#define DLL_PATH_MPC_CODEC "libmpcdec-@ARCH@.so"
-#define DLL_PATH_NSF_CODEC "libnosefart-@ARCH@.so"
-#define DLL_PATH_SID_CODEC "libsidplay2-@ARCH@.so"
-#define DLL_PATH_SPC_CODEC "libSNESAPU-@ARCH@.so"
-#define DLL_PATH_VGM_CODEC "libvgmstream-@ARCH@.so"
-#define DLL_PATH_WAVPACK_CODEC "@WAVPACK_SONAME@"
-#define DLL_PATH_YM_CODEC "libstsoundlibrary-@ARCH@.so"
-
-#define DLL_PATH_FLAC_CODEC "@FLAC_SONAME@"
-#define DLL_PATH_MODPLUG_CODEC "@MODPLUG_SONAME@"
-#define DLL_PATH_OGG_CODEC "@VORBISFILE_SONAME@"
-
/* dvdplayer */
#define DLL_PATH_LIBASS "@ASS_SONAME@"
#define DLL_PATH_LIBDVDNAV "libdvdnav-@ARCH@.so"
diff --git a/xbmc/FileItem.cpp b/xbmc/FileItem.cpp
index 773ac20851..34a699ae25 100644
--- a/xbmc/FileItem.cpp
+++ b/xbmc/FileItem.cpp
@@ -3025,7 +3025,7 @@ bool CFileItem::LoadMusicTag()
// load tag from file
CLog::Log(LOGDEBUG, "%s: loading tag information for file: %s", __FUNCTION__, m_strPath.c_str());
CMusicInfoTagLoaderFactory factory;
- unique_ptr<IMusicInfoTagLoader> pLoader (factory.CreateLoader(m_strPath));
+ unique_ptr<IMusicInfoTagLoader> pLoader (factory.CreateLoader(*this));
if (pLoader.get() != NULL)
{
if (pLoader->Load(m_strPath, *GetMusicInfoTag()))
diff --git a/xbmc/URL.cpp b/xbmc/URL.cpp
index e7eab6fd62..1f78c4cf59 100644
--- a/xbmc/URL.cpp
+++ b/xbmc/URL.cpp
@@ -333,9 +333,9 @@ void CURL::SetFileName(const std::string& strFileName)
{
m_strFileName = strFileName;
- int slash = m_strFileName.find_last_of(GetDirectorySeparator());
- int period = m_strFileName.find_last_of('.');
- if(period != -1 && (slash == -1 || period > slash))
+ size_t slash = m_strFileName.find_last_of(GetDirectorySeparator());
+ size_t period = m_strFileName.find_last_of('.');
+ if(period != std::string::npos && (slash == std::string::npos || period > slash))
m_strFileType = m_strFileName.substr(period+1);
else
m_strFileType = "";
diff --git a/xbmc/cdrip/CDDARipper.cpp b/xbmc/cdrip/CDDARipper.cpp
index a48448204c..38df47adc7 100644
--- a/xbmc/cdrip/CDDARipper.cpp
+++ b/xbmc/cdrip/CDDARipper.cpp
@@ -116,7 +116,7 @@ bool CCDDARipper::RipCD()
{
CFileItemPtr pItem = vecItems[i];
CMusicInfoTagLoaderFactory factory;
- unique_ptr<IMusicInfoTagLoader> pLoader (factory.CreateLoader(pItem->GetPath()));
+ unique_ptr<IMusicInfoTagLoader> pLoader (factory.CreateLoader(*pItem));
if (NULL != pLoader.get())
{
pLoader->Load(pItem->GetPath(), *pItem->GetMusicInfoTag()); // get tag from file
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
index be05c2ee0e..3af0b9c6da 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
@@ -476,7 +476,7 @@ int CDVDInputStreamNavigator::ProcessBlock(uint8_t* dest_buffer, int* read)
{
uint64_t* times = NULL;
uint64_t duration;
- unsigned int entries = m_dll.dvdnav_describe_title_chapters(m_dvdnav, m_iTitle, &times, &duration);
+ int entries = static_cast<int>(m_dll.dvdnav_describe_title_chapters(m_dvdnav, m_iTitle, &times, &duration));
if (entries != m_iPartCount)
CLog::Log(LOGDEBUG, "%s - Number of chapters/positions differ: Chapters %d, positions %d\n", __FUNCTION__, m_iPartCount, entries);
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp
index 46c402dc9b..f99c86556f 100644
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp
@@ -834,7 +834,7 @@ bool CDVDPlayer::OpenDemuxStream()
int64_t len = m_pInputStream->GetLength();
int64_t tim = m_pDemuxer->GetStreamLength();
if(len > 0 && tim > 0)
- m_pInputStream->SetReadRate((unsigned int) (g_advancedSettings.m_readBufferFactor * len * 1000 / tim));
+ m_pInputStream->SetReadRate((unsigned int) (len * 1000 / tim));
return true;
}
@@ -1680,7 +1680,10 @@ bool CDVDPlayer::GetCachingTimes(double& level, double& delay, double& offset)
delay = cache_left - play_left;
if (full && (currate < maxrate) )
+ {
+ CLog::Log(LOGDEBUG, "Readrate %u is too low with %u required", currate, maxrate);
level = -1.0; /* buffer is full & our read rate is too low */
+ }
else
level = (cached + queued) / (cache_need + queued);
diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
index 0c486b1e71..15e6f73a3d 100644
--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp
@@ -650,7 +650,7 @@ void CDVDPlayerAudio::HandleSyncError(double duration)
double threshold1 = DVD_MSEC_TO_TIME(100);
double threshold2 = DVD_MSEC_TO_TIME(50);
- // adjust threasholds
+ // adjust thresholds
// some codecs like flac have a very large frame length
if (threshold1 < 1.5 * duration)
threshold1 = 1.5 * duration;
@@ -662,19 +662,23 @@ void CDVDPlayerAudio::HandleSyncError(double duration)
if (fabs(error) > threshold1)
{
m_syncclock = true;
- m_errors.Flush();
+ m_errors.Flush(500);
m_integral = 0.0;
return;
}
else if (m_syncclock && fabs(error) < threshold2)
{
m_syncclock = false;
- m_errors.Flush();
+ // we are about to get stable, increase interval
+ m_errors.Flush(1000);
m_integral = 0.0;
}
- //check if measured error for 2 seconds
- if (m_errors.Get(m_error))
+ // check if measured error for 2 seconds
+ // when moving from big erros and we are still above threshold2, calculate errors every
+ // 500ms in order to get first resample ratio early. If we don't adjust rr early, error
+ // may get above threshold1 again. Too small values for interval result in worse average errors
+ if (m_errors.Get(m_error, m_syncclock ? 500 : 2000))
{
if (m_synctype == SYNC_DISCON)
{
diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.h b/xbmc/cores/dvdplayer/DVDPlayerAudio.h
index 5db89f6683..d58c45cc71 100644
--- a/xbmc/cores/dvdplayer/DVDPlayerAudio.h
+++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.h
@@ -69,11 +69,11 @@ public:
m_count++;
}
- void Flush()
+ void Flush(int interval = 2000)
{
m_buffer = 0.0f;
m_count = 0;
- m_timer.Set(2000);
+ m_timer.Set(interval);
}
double Get()
@@ -84,12 +84,12 @@ public:
return 0.0;
}
- bool Get(double& error)
+ bool Get(double& error, int interval = 2000)
{
if(m_timer.IsTimePast())
{
error = Get();
- Flush();
+ Flush(interval);
return true;
}
else
diff --git a/xbmc/cores/paplayer/CodecFactory.cpp b/xbmc/cores/paplayer/CodecFactory.cpp
index b2924a7fd4..a05669b838 100644
--- a/xbmc/cores/paplayer/CodecFactory.cpp
+++ b/xbmc/cores/paplayer/CodecFactory.cpp
@@ -112,9 +112,6 @@ ICodec* CodecFactory::CreateCodecDemux(const std::string& strFile, const std::st
return dvdcodec;
}
else
- {
- DVDPlayerCodec *dvdcodec = new DVDPlayerCodec();
- return dvdcodec;
- }
+ return CreateCodec(urlFile.GetFileType());
}
diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp
index 70d7b8d859..ca8f5c5fc3 100644
--- a/xbmc/filesystem/CurlFile.cpp
+++ b/xbmc/filesystem/CurlFile.cpp
@@ -875,7 +875,7 @@ bool CCurlFile::Download(const std::string& strURL, const std::string& strFileNa
if (pdwSize != NULL)
*pdwSize = written > 0 ? written : 0;
- return written == strData.size();
+ return written == static_cast<ssize_t>(strData.size());
}
// Detect whether we are "online" or not! Very simple and dirty!
diff --git a/xbmc/filesystem/FileCache.cpp b/xbmc/filesystem/FileCache.cpp
index 2152fefced..e3fd1f2712 100644
--- a/xbmc/filesystem/FileCache.cpp
+++ b/xbmc/filesystem/FileCache.cpp
@@ -277,13 +277,13 @@ void CFileCache::Process()
while (m_writeRate)
{
- if (m_writePos - m_readPos < m_writeRate)
+ if (m_writePos - m_readPos < m_writeRate * g_advancedSettings.m_readBufferFactor)
{
limiter.Reset(m_writePos);
break;
}
- if (limiter.Rate(m_writePos) < m_writeRate)
+ if (limiter.Rate(m_writePos) < m_writeRate * g_advancedSettings.m_readBufferFactor)
break;
if (m_seekEvent.WaitMSec(100))
diff --git a/xbmc/filesystem/HTTPFile.cpp b/xbmc/filesystem/HTTPFile.cpp
index 8711f3e7e4..8759791825 100644
--- a/xbmc/filesystem/HTTPFile.cpp
+++ b/xbmc/filesystem/HTTPFile.cpp
@@ -47,7 +47,7 @@ ssize_t CHTTPFile::Write(const void* lpBuf, size_t uiBufSize)
return -1;
std::string myPostData((char*) lpBuf);
- if ((int64_t)myPostData.length() != uiBufSize)
+ if (myPostData.length() != uiBufSize)
return -1;
// If we get here, we (most likely) satisfied the pre-conditions that we used OpenForWrite and passed a string as postdata
diff --git a/xbmc/filesystem/ISOFile.cpp b/xbmc/filesystem/ISOFile.cpp
index 1ca560d31b..c75c810ba5 100644
--- a/xbmc/filesystem/ISOFile.cpp
+++ b/xbmc/filesystem/ISOFile.cpp
@@ -85,7 +85,9 @@ ssize_t CISOFile::Read(void *lpBuf, size_t uiBufSize)
if (m_cache.getMaxReadSize() )
{
long lBytes2Read = m_cache.getMaxReadSize();
- if (lBytes2Read > uiBufSize) lBytes2Read = (long)uiBufSize;
+ if (lBytes2Read > static_cast<long>(uiBufSize))
+ lBytes2Read = static_cast<long>(uiBufSize);
+
m_cache.ReadData(pData, lBytes2Read );
uiBufSize -= lBytes2Read ;
pData += lBytes2Read;
diff --git a/xbmc/filesystem/RarFile.cpp b/xbmc/filesystem/RarFile.cpp
index d88a724638..5c01e182a3 100644
--- a/xbmc/filesystem/RarFile.cpp
+++ b/xbmc/filesystem/RarFile.cpp
@@ -302,7 +302,7 @@ ssize_t CRarFile::Read(void *lpBuf, size_t uiBufSize)
int64_t uicBufSize = uiBufSize;
if (m_iDataInBuffer > 0)
{
- int64_t iCopy = uiBufSize<m_iDataInBuffer?uiBufSize:m_iDataInBuffer;
+ int64_t iCopy = (uiBufSize < static_cast<size_t>(m_iDataInBuffer)) ? uiBufSize : m_iDataInBuffer;
memcpy(lpBuf,m_szStartOfBuffer,size_t(iCopy));
m_szStartOfBuffer += iCopy;
m_iDataInBuffer -= int(iCopy);
diff --git a/xbmc/filesystem/ZipFile.cpp b/xbmc/filesystem/ZipFile.cpp
index 614b20fa5e..8bddfab659 100644
--- a/xbmc/filesystem/ZipFile.cpp
+++ b/xbmc/filesystem/ZipFile.cpp
@@ -305,7 +305,7 @@ ssize_t CZipFile::Read(void* lpBuf, size_t uiBufSize)
{
uLong iDecompressed = 0;
uLong prevOut = m_ZStream.total_out;
- while (((int)iDecompressed < uiBufSize) && ((m_iZipFilePos < mZipItem.csize) || (m_bFlush)))
+ while ((static_cast<size_t>(iDecompressed) < uiBufSize) && ((m_iZipFilePos < mZipItem.csize) || (m_bFlush)))
{
m_ZStream.next_out = (Bytef*)(lpBuf)+iDecompressed;
m_ZStream.avail_out = static_cast<uInt>(uiBufSize-iDecompressed);
diff --git a/xbmc/filesystem/test/TestFile.cpp b/xbmc/filesystem/test/TestFile.cpp
index d106c8a444..35137c957b 100644
--- a/xbmc/filesystem/test/TestFile.cpp
+++ b/xbmc/filesystem/test/TestFile.cpp
@@ -21,6 +21,7 @@
#include "filesystem/File.h"
#include "test/TestUtils.h"
+#include <string>
#include <errno.h>
#include "gtest/gtest.h"
@@ -52,11 +53,11 @@ TEST(TestFile, Read)
file.Flush();
currentPos = firstBuf.length();
EXPECT_EQ(currentPos, file.GetPosition());
- EXPECT_TRUE(memcmp(firstBuf.c_str(), buf, firstBuf.length()) == 0);
- EXPECT_TRUE(file.Read(buf, secondBuf.length()));
+ EXPECT_EQ(0, memcmp(firstBuf.c_str(), buf, firstBuf.length()));
+ EXPECT_EQ(secondBuf.length(), file.Read(buf, secondBuf.length()));
currentPos += secondBuf.length();
EXPECT_EQ(currentPos, file.GetPosition());
- EXPECT_TRUE(memcmp(secondBuf.c_str(), buf, secondBuf.length()) == 0);
+ EXPECT_EQ(0, memcmp(secondBuf.c_str(), buf, secondBuf.length()));
currentPos = 100 + addPerLine * 3;
EXPECT_EQ(currentPos, file.Seek(currentPos));
EXPECT_EQ(currentPos, file.GetPosition());
@@ -64,7 +65,7 @@ TEST(TestFile, Read)
file.Flush();
currentPos += thirdBuf.length();
EXPECT_EQ(currentPos, file.GetPosition());
- EXPECT_TRUE(memcmp(thirdBuf.c_str(), buf, thirdBuf.length()) == 0);
+ EXPECT_EQ(0, memcmp(thirdBuf.c_str(), buf, thirdBuf.length()));
currentPos += 100 + addPerLine * 1;
EXPECT_EQ(currentPos, file.Seek(100 + addPerLine * 1, SEEK_CUR));
EXPECT_EQ(currentPos, file.GetPosition());
@@ -72,7 +73,7 @@ TEST(TestFile, Read)
file.Flush();
currentPos += fourthBuf.length();
EXPECT_EQ(currentPos, file.GetPosition());
- EXPECT_TRUE(memcmp(fourthBuf.c_str(), buf, fourthBuf.length()) == 0);
+ EXPECT_EQ(0, memcmp(fourthBuf.c_str(), buf, fourthBuf.length()));
currentPos = realSize - fifthBuf.length();
EXPECT_EQ(currentPos, file.Seek(-(int64_t)fifthBuf.length(), SEEK_END));
EXPECT_EQ(currentPos, file.GetPosition());
@@ -80,7 +81,7 @@ TEST(TestFile, Read)
file.Flush();
currentPos += fifthBuf.length();
EXPECT_EQ(currentPos, file.GetPosition());
- EXPECT_TRUE(memcmp(fifthBuf.c_str(), buf, fifthBuf.length()) == 0);
+ EXPECT_EQ(0, memcmp(fifthBuf.c_str(), buf, fifthBuf.length()));
currentPos += 100;
EXPECT_EQ(currentPos, file.Seek(100, SEEK_CUR));
EXPECT_EQ(currentPos, file.GetPosition());
@@ -90,7 +91,7 @@ TEST(TestFile, Read)
file.Flush();
currentPos += firstBuf.length();
EXPECT_EQ(currentPos, file.GetPosition());
- EXPECT_TRUE(memcmp(firstBuf.c_str(), buf, firstBuf.length()) == 0);
+ EXPECT_EQ(0, memcmp(firstBuf.c_str(), buf, firstBuf.length()));
EXPECT_EQ(0, file.Seek(0, SEEK_SET));
EXPECT_EQ(-1, file.Seek(-100, SEEK_SET));
file.Close();
@@ -103,7 +104,7 @@ TEST(TestFile, Write)
char buf[30];
memset(&buf, 0, sizeof(buf));
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
ASSERT_TRUE(file->OpenForWrite(XBMC_TEMPFILEPATH(file), true));
EXPECT_EQ((int)sizeof(str), file->Write(str, sizeof(str)));
@@ -118,7 +119,7 @@ TEST(TestFile, Write)
EXPECT_EQ(sizeof(str), file->Read(buf, sizeof(buf)));
file->Flush();
EXPECT_EQ((int64_t)sizeof(str), file->GetPosition());
- EXPECT_TRUE(!memcmp(str, buf, sizeof(str)));
+ EXPECT_EQ(0, memcmp(str, buf, sizeof(str)));
file->Close();
EXPECT_TRUE(XBMC_DELETETEMPFILE(file));
}
@@ -127,7 +128,7 @@ TEST(TestFile, Exists)
{
XFILE::CFile *file;
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
EXPECT_TRUE(XFILE::CFile::Exists(XBMC_TEMPFILEPATH(file)));
EXPECT_FALSE(XFILE::CFile::Exists(""));
@@ -139,10 +140,10 @@ TEST(TestFile, Stat)
XFILE::CFile *file;
struct __stat64 buffer;
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
EXPECT_EQ(0, file->Stat(&buffer));
file->Close();
- EXPECT_TRUE(buffer.st_mode | _S_IFREG);
+ EXPECT_NE(0, buffer.st_mode | _S_IFREG);
EXPECT_EQ(-1, XFILE::CFile::Stat("", &buffer));
EXPECT_EQ(ENOENT, errno);
EXPECT_TRUE(XBMC_DELETETEMPFILE(file));
@@ -153,7 +154,7 @@ TEST(TestFile, Delete)
XFILE::CFile *file;
std::string path;
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
path = XBMC_TEMPFILEPATH(file);
EXPECT_TRUE(XFILE::CFile::Exists(path));
@@ -166,10 +167,10 @@ TEST(TestFile, Rename)
XFILE::CFile *file;
std::string path1, path2;
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
path1 = XBMC_TEMPFILEPATH(file);
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
path2 = XBMC_TEMPFILEPATH(file);
EXPECT_TRUE(XFILE::CFile::Delete(path1));
@@ -186,10 +187,10 @@ TEST(TestFile, Copy)
XFILE::CFile *file;
std::string path1, path2;
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
path1 = XBMC_TEMPFILEPATH(file);
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
path2 = XBMC_TEMPFILEPATH(file);
EXPECT_TRUE(XFILE::CFile::Delete(path1));
@@ -206,7 +207,7 @@ TEST(TestFile, SetHidden)
{
XFILE::CFile *file;
- ASSERT_TRUE((file = XBMC_CREATETEMPFILE("")) != NULL);
+ ASSERT_NE(nullptr, file = XBMC_CREATETEMPFILE(""));
file->Close();
EXPECT_TRUE(XFILE::CFile::Exists(XBMC_TEMPFILEPATH(file)));
bool result = XFILE::CFile::SetHidden(XBMC_TEMPFILEPATH(file), true);
diff --git a/xbmc/filesystem/udf25.cpp b/xbmc/filesystem/udf25.cpp
index c5f7b268ba..1fde79a707 100644
--- a/xbmc/filesystem/udf25.cpp
+++ b/xbmc/filesystem/udf25.cpp
@@ -593,7 +593,7 @@ int udf25::ReadAt( int64_t pos, size_t len, unsigned char *data )
return -1;
ssize_t ret = m_fp->Read(data, len);
- if ( ret < len)
+ if (static_cast<size_t>(ret) < len)
{
CLog::Log(LOGERROR, "udf25::ReadFile - less data than requested available!" );
return (int)ret;
diff --git a/xbmc/guilib/GUIFontTTF.cpp b/xbmc/guilib/GUIFontTTF.cpp
index e30367de6d..9537692468 100644
--- a/xbmc/guilib/GUIFontTTF.cpp
+++ b/xbmc/guilib/GUIFontTTF.cpp
@@ -697,7 +697,7 @@ bool CGUIFontTTFBase::CacheCharacter(wchar_t letter, uint32_t style, Character *
m_posX += -bitGlyph->left;
// check we have enough room for the character
- if (m_posX + bitGlyph->left + bitmap.width > (int)m_textureWidth)
+ if (m_posX + bitGlyph->left + bitmap.width > m_textureWidth)
{ // no space - gotta drop to the next line (which means creating a new texture and copying it across)
m_posX = 0;
m_posY += GetTextureLineHeight();
diff --git a/xbmc/guilib/JpegIO.cpp b/xbmc/guilib/JpegIO.cpp
index 07ea70ef9a..e27bb07583 100644
--- a/xbmc/guilib/JpegIO.cpp
+++ b/xbmc/guilib/JpegIO.cpp
@@ -525,7 +525,7 @@ bool CJpegIO::CreateThumbnailFromSurface(unsigned char* buffer, unsigned int wid
delete [] rgbbuf;
XFILE::CFile file;
- const bool ret = file.OpenForWrite(destFile, true) && file.Write(result, outBufSize) == outBufSize;
+ const bool ret = file.OpenForWrite(destFile, true) && file.Write(result, outBufSize) == static_cast<ssize_t>(outBufSize);
free(result);
return ret;
diff --git a/xbmc/input/ButtonTranslator.cpp b/xbmc/input/ButtonTranslator.cpp
index 19ae65e0f8..521d76b4af 100644
--- a/xbmc/input/ButtonTranslator.cpp
+++ b/xbmc/input/ButtonTranslator.cpp
@@ -273,7 +273,8 @@ static const ActionMapping actions[] =
{"swipeup" , ACTION_GESTURE_SWIPE_UP},
{"swipedown" , ACTION_GESTURE_SWIPE_DOWN},
- // Do nothing action
+ // Do nothing / error action
+ { "error" , ACTION_ERROR},
{ "noop" , ACTION_NOOP}
};
diff --git a/xbmc/input/Key.h b/xbmc/input/Key.h
index dbe10c9c5b..1b28d93467 100644
--- a/xbmc/input/Key.h
+++ b/xbmc/input/Key.h
@@ -381,7 +381,8 @@
// The NOOP action can be specified to disable an input event. This is
// useful in user keyboard.xml etc to disable actions specified in the
-// system mappings.
+// system mappings. ERROR action is used to play an error sound
+#define ACTION_ERROR 998
#define ACTION_NOOP 999
#define ICON_TYPE_NONE 101
diff --git a/xbmc/interfaces/Builtins.cpp b/xbmc/interfaces/Builtins.cpp
index 6da94920d3..ddb898326c 100644
--- a/xbmc/interfaces/Builtins.cpp
+++ b/xbmc/interfaces/Builtins.cpp
@@ -34,6 +34,7 @@
#include "guilib/GUIKeyboardFactory.h"
#include "input/Key.h"
#include "guilib/StereoscopicsManager.h"
+#include "guilib/GUIAudioManager.h"
#include "dialogs/GUIDialogKaiToast.h"
#include "dialogs/GUIDialogNumeric.h"
#include "dialogs/GUIDialogProgress.h"
@@ -294,6 +295,22 @@ void CBuiltins::GetHelp(std::string &help)
}
}
+bool CBuiltins::ActivateWindow(int iWindowID, const std::vector<std::string>& params /* = {} */, bool swappingWindows /* = false */)
+{
+ // don't activate a window if there are active modal dialogs
+ if (g_windowManager.HasModalDialog() && !g_windowManager.GetWindow(iWindowID)->IsDialog())
+ {
+ CLog::Log(LOG_LEVEL_DEBUG, "Activate of window '%i' refused because there are active modal dialogs", iWindowID);
+ g_audioManager.PlayActionSound(CAction(ACTION_ERROR));
+ return false;
+ }
+
+ // disable the screensaver
+ g_application.WakeUpScreenSaverAndDPMS();
+ g_windowManager.ActivateWindow(iWindowID, params, swappingWindows);
+ return true;
+}
+
int CBuiltins::Execute(const std::string& execString)
{
// Deprecated. Get the text after the "XBMC."
@@ -442,9 +459,7 @@ int CBuiltins::Execute(const std::string& execString)
// activate window only if window and path differ from the current active window
if (iWindow != g_windowManager.GetActiveWindow() || !bIsSameStartFolder)
{
- // disable the screensaver
- g_application.WakeUpScreenSaverAndDPMS();
- g_windowManager.ActivateWindow(iWindow, params, execute != "activatewindow");
+ return ActivateWindow(iWindow, params, execute != "activatewindow");
}
}
else
@@ -470,10 +485,8 @@ int CBuiltins::Execute(const std::string& execString)
{
if (iWindow != g_windowManager.GetActiveWindow())
{
- // disable the screensaver
- g_application.WakeUpScreenSaverAndDPMS();
- vector<string> dummy;
- g_windowManager.ActivateWindow(iWindow, dummy, execute != "activatewindowandfocus");
+ if (!ActivateWindow(iWindow, {}, execute != "activatewindowandfocus"))
+ return false;
unsigned int iPtr = 1;
while (params.size() > iPtr + 1)
@@ -1485,7 +1498,10 @@ int CBuiltins::Execute(const std::string& execString)
g_application.getNetwork().NetworkMessage(CNetwork::SERVICES_DOWN,1);
CProfilesManager::Get().LoadMasterProfileForLogin();
g_passwordManager.bMasterUser = false;
- g_windowManager.ActivateWindow(WINDOW_LOGIN_SCREEN);
+
+ if (!ActivateWindow(WINDOW_LOGIN_SCREEN))
+ return false;
+
if (!CNetworkServices::Get().StartEventServer()) // event server could be needed in some situations
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Warning, g_localizeStrings.Get(33102), g_localizeStrings.Get(33100));
}
diff --git a/xbmc/interfaces/Builtins.h b/xbmc/interfaces/Builtins.h
index 9488c02f63..855b385b7d 100644
--- a/xbmc/interfaces/Builtins.h
+++ b/xbmc/interfaces/Builtins.h
@@ -21,6 +21,7 @@
*/
#include <string>
+#include <vector>
class CBuiltins
{
@@ -29,5 +30,8 @@ public:
static bool IsSystemPowerdownCommand(const std::string& execString);
static void GetHelp(std::string &help);
static int Execute(const std::string& execString);
+
+private:
+ static bool ActivateWindow(int iWindowID, const std::vector<std::string>& params = {}, bool swappingWindows = false);
};
diff --git a/xbmc/music/MusicDatabase.cpp b/xbmc/music/MusicDatabase.cpp
index d3198b5d74..8497507e90 100644
--- a/xbmc/music/MusicDatabase.cpp
+++ b/xbmc/music/MusicDatabase.cpp
@@ -5192,7 +5192,7 @@ void CMusicDatabase::ExportKaraokeInfo(const std::string & outFile, bool asHTML)
outdoc = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></meta></head>\n"
"<body>\n<table>\n";
- if (file.Write(outdoc.c_str(), outdoc.size()) != outdoc.size())
+ if (file.Write(outdoc.c_str(), outdoc.size()) != static_cast<ssize_t>(outdoc.size()))
return; // error
}
@@ -5206,7 +5206,7 @@ void CMusicDatabase::ExportKaraokeInfo(const std::string & outFile, bool asHTML)
else
outdoc = songnum + '\t' + StringUtils::Join(song.artist, g_advancedSettings.m_musicItemSeparator) + '\t' + song.strTitle + '\t' + song.strFileName + "\r\n";
- if (file.Write(outdoc.c_str(), outdoc.size()) != outdoc.size())
+ if (file.Write(outdoc.c_str(), outdoc.size()) != static_cast<ssize_t>(outdoc.size()))
return; // error
if ((current % 50) == 0 && progress)
@@ -5229,7 +5229,7 @@ void CMusicDatabase::ExportKaraokeInfo(const std::string & outFile, bool asHTML)
if ( asHTML )
{
outdoc = "</table>\n</body>\n</html>\n";
- if (file.Write(outdoc.c_str(), outdoc.size()) != outdoc.size())
+ if (file.Write(outdoc.c_str(), outdoc.size()) != static_cast<ssize_t>(outdoc.size()))
return; // error
}
diff --git a/xbmc/music/MusicInfoLoader.cpp b/xbmc/music/MusicInfoLoader.cpp
index c0140f9f49..0888dee95d 100644
--- a/xbmc/music/MusicInfoLoader.cpp
+++ b/xbmc/music/MusicInfoLoader.cpp
@@ -111,7 +111,7 @@ bool CMusicInfoLoader::LoadAdditionalTagInfo(CFileItem* pItem)
CLog::Log(LOGDEBUG, "Loading additional tag info for file %s", path.c_str());
// we load up the actual tag for this file
- unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(path));
+ unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(*pItem));
if (NULL != pLoader.get())
{
CMusicInfoTag tag;
@@ -197,7 +197,7 @@ bool CMusicInfoLoader::LoadItemLookup(CFileItem* pItem)
{ // Nothing found, load tag from file,
// always try to load cddb info
// get correct tag parser
- unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(pItem->GetPath()));
+ unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(*pItem));
if (NULL != pLoader.get())
// get tag
pLoader->Load(pItem->GetPath(), *pItem->GetMusicInfoTag());
diff --git a/xbmc/music/MusicThumbLoader.cpp b/xbmc/music/MusicThumbLoader.cpp
index 91aa6e25e6..40b42573ce 100644
--- a/xbmc/music/MusicThumbLoader.cpp
+++ b/xbmc/music/MusicThumbLoader.cpp
@@ -239,7 +239,8 @@ bool CMusicThumbLoader::FillLibraryArt(CFileItem &item)
bool CMusicThumbLoader::GetEmbeddedThumb(const std::string &path, EmbeddedArt &art)
{
- unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(path));
+ CFileItem item(path, false);
+ unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(item));
CMusicInfoTag tag;
if (NULL != pLoader.get())
pLoader->Load(path, tag, &art);
diff --git a/xbmc/music/infoscanner/MusicInfoScanner.cpp b/xbmc/music/infoscanner/MusicInfoScanner.cpp
index b7d5d8f61e..4b2eba531f 100644
--- a/xbmc/music/infoscanner/MusicInfoScanner.cpp
+++ b/xbmc/music/infoscanner/MusicInfoScanner.cpp
@@ -533,7 +533,7 @@ INFO_RET CMusicInfoScanner::ScanTags(const CFileItemList& items, CFileItemList&
CMusicInfoTag& tag = *pItem->GetMusicInfoTag();
if (!tag.Loaded())
{
- unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(pItem->GetPath()));
+ unique_ptr<IMusicInfoTagLoader> pLoader (CMusicInfoTagLoaderFactory::CreateLoader(*pItem));
if (NULL != pLoader.get())
pLoader->Load(pItem->GetPath(), tag);
}
diff --git a/xbmc/music/tags/MusicInfoTagLoaderFactory.cpp b/xbmc/music/tags/MusicInfoTagLoaderFactory.cpp
index 6c5ef10f1d..6d657fc6ad 100644
--- a/xbmc/music/tags/MusicInfoTagLoaderFactory.cpp
+++ b/xbmc/music/tags/MusicInfoTagLoaderFactory.cpp
@@ -23,9 +23,6 @@
#include "TagLoaderTagLib.h"
#include "MusicInfoTagLoaderCDDA.h"
#include "MusicInfoTagLoaderShn.h"
-#ifdef HAS_MOD_PLAYER
-#include "cores/ModPlayer.h"
-#endif
#include "MusicInfoTagLoaderDatabase.h"
#include "utils/StringUtils.h"
#include "utils/URIUtils.h"
@@ -44,17 +41,16 @@ CMusicInfoTagLoaderFactory::CMusicInfoTagLoaderFactory()
CMusicInfoTagLoaderFactory::~CMusicInfoTagLoaderFactory()
{}
-IMusicInfoTagLoader* CMusicInfoTagLoaderFactory::CreateLoader(const std::string& strFileName)
+IMusicInfoTagLoader* CMusicInfoTagLoaderFactory::CreateLoader(const CFileItem& item)
{
// dont try to read the tags for streams & shoutcast
- CFileItem item(strFileName, false);
if (item.IsInternetStream())
return NULL;
if (item.IsMusicDb())
return new CMusicInfoTagLoaderDatabase();
- std::string strExtension = URIUtils::GetExtension(strFileName);
+ std::string strExtension = URIUtils::GetExtension(item.GetPath());
StringUtils::ToLower(strExtension);
StringUtils::TrimLeft(strExtension, ".");
@@ -85,7 +81,7 @@ IMusicInfoTagLoader* CMusicInfoTagLoaderFactory::CreateLoader(const std::string&
strExtension == "ogg" || strExtension == "oga" || strExtension == "oggstream" ||
strExtension == "aif" || strExtension == "aiff" ||
strExtension == "wav" ||
- strExtension == "mod" || strExtension == "nsf" || strExtension == "nsfstream" ||
+ strExtension == "mod" ||
strExtension == "s3m" || strExtension == "it" || strExtension == "xm" ||
strExtension == "wv")
{
diff --git a/xbmc/music/tags/MusicInfoTagLoaderFactory.h b/xbmc/music/tags/MusicInfoTagLoaderFactory.h
index 39c5859301..cc8b0c97a9 100644
--- a/xbmc/music/tags/MusicInfoTagLoaderFactory.h
+++ b/xbmc/music/tags/MusicInfoTagLoaderFactory.h
@@ -21,6 +21,8 @@
#include "ImusicInfoTagLoader.h"
+class CFileItem; // forward
+
namespace MUSIC_INFO
{
class CMusicInfoTagLoaderFactory
@@ -29,7 +31,7 @@ namespace MUSIC_INFO
CMusicInfoTagLoaderFactory(void);
virtual ~CMusicInfoTagLoaderFactory();
- static IMusicInfoTagLoader* CreateLoader(const std::string& strFileName);
+ static IMusicInfoTagLoader* CreateLoader(const CFileItem& item);
};
}
diff --git a/xbmc/music/tags/MusicInfoTagLoaderSPC.cpp b/xbmc/music/tags/MusicInfoTagLoaderSPC.cpp
deleted file mode 100644
index 50249e8d84..0000000000
--- a/xbmc/music/tags/MusicInfoTagLoaderSPC.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2005-2013 Team XBMC
- * http://xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <cstdlib>
-
-#include "MusicInfoTagLoaderSPC.h"
-#include "snesapu/Types.h"
-#include "MusicInfoTag.h"
-#include "filesystem/File.h"
-#include "utils/log.h"
-
-using namespace XFILE;
-using namespace MUSIC_INFO;
-
-// copied from libspc, then modified. thanks :)
-SPC_ID666 *SPC_get_id666FP (CFile& file)
-{
- SPC_ID666 *id;
- unsigned char playtime_str[4] = { 0, 0, 0, 0 };
-
- id = (SPC_ID666 *)malloc(sizeof(*id));
- if (id == NULL)
- return NULL;
-
- file.Seek(0x23,SEEK_SET);
- char c;
- if (file.Read(&c,1) != 1 || c == 27)
- {
- free(id);
- return NULL;
- }
-
- file.Seek(0x2E,SEEK_SET);
- if (file.Read(id->songname, 32) != 32)
- {
- free(id);
- return NULL;
- }
- id->songname[32] = '\0';
-
- if (file.Read(id->gametitle, 32) != 32)
- {
- free(id);
- return NULL;
- }
- id->gametitle[32] = '\0';
-
- if (file.Read(id->dumper, 16) != 16)
- {
- free(id);
- return NULL;
- }
- id->dumper[16] = '\0';
-
- if (file.Read(id->comments, 32) != 32)
- {
- free(id);
- return NULL;
- }
- id->comments[32] = '\0';
-
- file.Seek(0xA9,SEEK_SET);
- if (file.Read(playtime_str, 3) != 3)
- {
- free(id);
- return NULL;
- }
- playtime_str[3] = '\0';
- id->playtime = atoi((char*)playtime_str);
-
- file.Seek(0xD1,SEEK_SET);
- file.Read(&c,1);
- switch (c) {
- case 1:
- id->emulator = SPC_EMULATOR_ZSNES;
- break;
- case 2:
- id->emulator = SPC_EMULATOR_SNES9X;
- break;
- case 0:
- default:
- id->emulator = SPC_EMULATOR_UNKNOWN;
- break;
- }
-
- file.Seek(0xB0,SEEK_SET);
- if (file.Read(id->author, 32) != 32)
- {
- free(id);
- return NULL;
- }
- id->author[32] = '\0';
-
- return id;
-}
-
-CMusicInfoTagLoaderSPC::CMusicInfoTagLoaderSPC(void)
-{
-}
-
-CMusicInfoTagLoaderSPC::~CMusicInfoTagLoaderSPC()
-{
-}
-
-bool CMusicInfoTagLoaderSPC::Load(const std::string& strFileName, CMusicInfoTag& tag, EmbeddedArt *art)
-{
- tag.SetLoaded(false);
-
- CFile file;
- if (!file.Open(strFileName))
- {
- CLog::Log(LOGERROR,"MusicInfoTagLoaderSPC: failed to open SPC %s",strFileName.c_str());
- return false;
- }
-
- tag.SetURL(strFileName);
-
- tag.SetLoaded(false);
- SPC_ID666* spc = SPC_get_id666FP(file);
- if (!spc)
- return false;
- if( strcmp(spc->songname,"") )
- {
- tag.SetTitle(spc->songname);
- tag.SetLoaded(true);
- }
-
- if( strcmp(spc->author,"") && tag.Loaded() )
- tag.SetArtist(spc->author);
-
- if (spc->playtime)
- tag.SetDuration(spc->playtime);
- else
- tag.SetDuration(4*60); // 4 mins
-
- free(spc);
- return tag.Loaded();
-}
-
diff --git a/xbmc/music/tags/MusicInfoTagLoaderSPC.h b/xbmc/music/tags/MusicInfoTagLoaderSPC.h
deleted file mode 100644
index ac05370de4..0000000000
--- a/xbmc/music/tags/MusicInfoTagLoaderSPC.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-/*
- * Copyright (C) 2005-2013 Team XBMC
- * http://xbmc.org
- *
- * This Program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This Program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with XBMC; see the file COPYING. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "ImusicInfoTagLoader.h"
-
-namespace MUSIC_INFO
-{
- class CMusicInfoTagLoaderSPC: public IMusicInfoTagLoader
- {
- public:
- CMusicInfoTagLoaderSPC(void);
- virtual ~CMusicInfoTagLoaderSPC();
-
- virtual bool Load(const std::string& strFileName, CMusicInfoTag& tag, EmbeddedArt *art = NULL);
- };
-}
-
diff --git a/xbmc/music/tags/TagLibVFSStream.cpp b/xbmc/music/tags/TagLibVFSStream.cpp
index 0daae77c17..0e0407952e 100644
--- a/xbmc/music/tags/TagLibVFSStream.cpp
+++ b/xbmc/music/tags/TagLibVFSStream.cpp
@@ -218,7 +218,7 @@ void TagLibVFSStream::removeBlock(TagLib::ulong start, TagLib::ulong length)
clear();
seek(writePosition);
- if (m_file.Write(buffer.data(), bytesRead) != bytesRead)
+ if (m_file.Write(buffer.data(), bytesRead) != static_cast<ssize_t>(bytesRead))
return; // error
writePosition += bytesRead;
}
diff --git a/xbmc/playlists/PlayListM3U.cpp b/xbmc/playlists/PlayListM3U.cpp
index dce2bad214..1f1b408ede 100644
--- a/xbmc/playlists/PlayListM3U.cpp
+++ b/xbmc/playlists/PlayListM3U.cpp
@@ -203,7 +203,7 @@ void CPlayListM3U::Save(const std::string& strFileName) const
return;
}
std::string strLine = StringUtils::Format("%s\n",M3U_START_MARKER);
- if (file.Write(strLine.c_str(), strLine.size()) != strLine.size())
+ if (file.Write(strLine.c_str(), strLine.size()) != static_cast<ssize_t>(strLine.size()))
return; // error
for (int i = 0; i < (int)m_vecItems.size(); ++i)
@@ -212,7 +212,7 @@ void CPlayListM3U::Save(const std::string& strFileName) const
std::string strDescription=item->GetLabel();
g_charsetConverter.utf8ToStringCharset(strDescription);
strLine = StringUtils::Format( "%s:%i,%s\n", M3U_INFO_MARKER, item->GetMusicInfoTag()->GetDuration() / 1000, strDescription.c_str() );
- if (file.Write(strLine.c_str(), strLine.size()) != strLine.size())
+ if (file.Write(strLine.c_str(), strLine.size()) != static_cast<ssize_t>(strLine.size()))
return; // error
if (item->m_lStartOffset != 0 || item->m_lEndOffset != 0)
{
@@ -222,7 +222,7 @@ void CPlayListM3U::Save(const std::string& strFileName) const
std::string strFileName = ResolveURL(item);
g_charsetConverter.utf8ToStringCharset(strFileName);
strLine = StringUtils::Format("%s\n",strFileName.c_str());
- if (file.Write(strLine.c_str(), strLine.size()) != strLine.size())
+ if (file.Write(strLine.c_str(), strLine.size()) != static_cast<ssize_t>(strLine.size()))
return; // error
}
file.Close();
diff --git a/xbmc/pvr/channels/PVRChannelGroup.cpp b/xbmc/pvr/channels/PVRChannelGroup.cpp
index d01c48ec07..aeea9bf4e2 100644
--- a/xbmc/pvr/channels/PVRChannelGroup.cpp
+++ b/xbmc/pvr/channels/PVRChannelGroup.cpp
@@ -161,7 +161,7 @@ bool CPVRChannelGroup::Load(void)
if (Size() - iChannelCount > 0)
{
CLog::Log(LOGDEBUG, "PVRChannelGroup - %s - %d channels added from clients to group '%s'",
- __FUNCTION__, Size() - iChannelCount, m_strGroupName.c_str());
+ __FUNCTION__, static_cast<int>(Size() - iChannelCount), m_strGroupName.c_str());
}
SortAndRenumber();
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index f312a705c7..4598624b4a 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -356,7 +356,7 @@ void CAdvancedSettings::Initialize()
m_networkBufferMode = 0; // Default (buffer all internet streams/filesystems)
// the following setting determines the readRate of a player data
// as multiply of the default data read rate
- m_readBufferFactor = 1.0f;
+ m_readBufferFactor = 4.0f;
m_addonPackageFolderSize = 200;
m_jsonOutputCompact = true;
diff --git a/xbmc/test/TestBasicEnvironment.cpp b/xbmc/test/TestBasicEnvironment.cpp
index 18ca012945..eb04374fb1 100644
--- a/xbmc/test/TestBasicEnvironment.cpp
+++ b/xbmc/test/TestBasicEnvironment.cpp
@@ -35,8 +35,6 @@
void TestBasicEnvironment::SetUp()
{
- char *tmp;
- std::string xbmcTempPath;
XFILE::CFile *f;
/* NOTE: The below is done to fix memleak warning about unitialized variable
@@ -69,6 +67,7 @@ void TestBasicEnvironment::SetUp()
* test suite run.
*/
#ifdef TARGET_WINDOWS
+ std::string xbmcTempPath;
TCHAR lpTempPathBuffer[MAX_PATH];
if (!GetTempPath(MAX_PATH, lpTempPathBuffer))
SetUpError();
@@ -81,7 +80,7 @@ void TestBasicEnvironment::SetUp()
CSpecialProtocol::SetTempPath(lpTempPathBuffer);
#else
char buf[MAX_PATH];
- (void)xbmcTempPath;
+ char *tmp;
strcpy(buf, "/tmp/xbmctempdirXXXXXX");
if ((tmp = mkdtemp(buf)) == NULL)
SetUpError();
diff --git a/xbmc/utils/ScraperUrl.cpp b/xbmc/utils/ScraperUrl.cpp
index a9eafddc9c..1f280e1ff3 100644
--- a/xbmc/utils/ScraperUrl.cpp
+++ b/xbmc/utils/ScraperUrl.cpp
@@ -307,7 +307,7 @@ bool CScraperUrl::Get(const SUrlEntry& scrURL, std::string& strHTML, XFILE::CCur
std::string strCachePath = URIUtils::AddFileToFolder(g_advancedSettings.m_cachePath,
"scrapers/" + cacheContext + "/" + scrURL.m_cache);
XFILE::CFile file;
- if (!file.OpenForWrite(strCachePath, true) || file.Write(strHTML.data(), strHTML.size()) != strHTML.size())
+ if (!file.OpenForWrite(strCachePath, true) || file.Write(strHTML.data(), strHTML.size()) != static_cast<ssize_t>(strHTML.size()))
return false;
}
return true;
diff --git a/xbmc/utils/XBMCTinyXML.cpp b/xbmc/utils/XBMCTinyXML.cpp
index e7db9f132d..c9c7b49249 100644
--- a/xbmc/utils/XBMCTinyXML.cpp
+++ b/xbmc/utils/XBMCTinyXML.cpp
@@ -122,7 +122,7 @@ bool CXBMCTinyXML::SaveFile(const std::string& filename) const
{
TiXmlPrinter printer;
Accept(&printer);
- return file.Write(printer.CStr(), printer.Size()) == printer.Size();
+ return file.Write(printer.CStr(), printer.Size()) == static_cast<ssize_t>(printer.Size());
}
return false;
}
diff --git a/xbmc/utils/test/TestArchive.cpp b/xbmc/utils/test/TestArchive.cpp
index fe9abe92f8..c564794ca3 100644
--- a/xbmc/utils/test/TestArchive.cpp
+++ b/xbmc/utils/test/TestArchive.cpp
@@ -42,7 +42,7 @@ protected:
TEST_F(TestArchive, IsStoring)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
CArchive arstore(file, CArchive::store);
EXPECT_TRUE(arstore.IsStoring());
EXPECT_FALSE(arstore.IsLoading());
@@ -51,7 +51,7 @@ TEST_F(TestArchive, IsStoring)
TEST_F(TestArchive, IsLoading)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
CArchive arload(file, CArchive::load);
EXPECT_TRUE(arload.IsLoading());
EXPECT_FALSE(arload.IsStoring());
@@ -60,14 +60,14 @@ TEST_F(TestArchive, IsLoading)
TEST_F(TestArchive, FloatArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
float float_ref = 1, float_var = 0;
CArchive arstore(file, CArchive::store);
arstore << float_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> float_var;
arload.Close();
@@ -77,14 +77,14 @@ TEST_F(TestArchive, FloatArchive)
TEST_F(TestArchive, DoubleArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
double double_ref = 2, double_var = 0;
CArchive arstore(file, CArchive::store);
arstore << double_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> double_var;
arload.Close();
@@ -94,14 +94,14 @@ TEST_F(TestArchive, DoubleArchive)
TEST_F(TestArchive, IntegerArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
int int_ref = 3, int_var = 0;
CArchive arstore(file, CArchive::store);
arstore << int_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> int_var;
arload.Close();
@@ -111,14 +111,14 @@ TEST_F(TestArchive, IntegerArchive)
TEST_F(TestArchive, UnsignedIntegerArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
unsigned int unsigned_int_ref = 4, unsigned_int_var = 0;
CArchive arstore(file, CArchive::store);
arstore << unsigned_int_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> unsigned_int_var;
arload.Close();
@@ -128,14 +128,14 @@ TEST_F(TestArchive, UnsignedIntegerArchive)
TEST_F(TestArchive, Int64tArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
int64_t int64_t_ref = 5, int64_t_var = 0;
CArchive arstore(file, CArchive::store);
arstore << int64_t_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> int64_t_var;
arload.Close();
@@ -145,14 +145,14 @@ TEST_F(TestArchive, Int64tArchive)
TEST_F(TestArchive, UInt64tArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
uint64_t uint64_t_ref = 6, uint64_t_var = 0;
CArchive arstore(file, CArchive::store);
arstore << uint64_t_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> uint64_t_var;
arload.Close();
@@ -162,14 +162,14 @@ TEST_F(TestArchive, UInt64tArchive)
TEST_F(TestArchive, BoolArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
bool bool_ref = true, bool_var = false;
CArchive arstore(file, CArchive::store);
arstore << bool_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> bool_var;
arload.Close();
@@ -179,14 +179,14 @@ TEST_F(TestArchive, BoolArchive)
TEST_F(TestArchive, CharArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
char char_ref = 'A', char_var = '\0';
CArchive arstore(file, CArchive::store);
arstore << char_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> char_var;
arload.Close();
@@ -196,14 +196,14 @@ TEST_F(TestArchive, CharArchive)
TEST_F(TestArchive, WStringArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
std::wstring wstring_ref = L"test wstring", wstring_var;
CArchive arstore(file, CArchive::store);
arstore << wstring_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> wstring_var;
arload.Close();
@@ -213,14 +213,14 @@ TEST_F(TestArchive, WStringArchive)
TEST_F(TestArchive, StringArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
std::string string_ref = "test string", string_var;
CArchive arstore(file, CArchive::store);
arstore << string_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> string_var;
arload.Close();
@@ -230,7 +230,7 @@ TEST_F(TestArchive, StringArchive)
TEST_F(TestArchive, SYSTEMTIMEArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
SYSTEMTIME SYSTEMTIME_ref = { 1, 2, 3, 4, 5, 6, 7, 8 };
SYSTEMTIME SYSTEMTIME_var = { 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -238,7 +238,7 @@ TEST_F(TestArchive, SYSTEMTIMEArchive)
arstore << SYSTEMTIME_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> SYSTEMTIME_var;
arload.Close();
@@ -248,14 +248,14 @@ TEST_F(TestArchive, SYSTEMTIMEArchive)
TEST_F(TestArchive, CVariantArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
CVariant CVariant_ref((int)1), CVariant_var;
CArchive arstore(file, CArchive::store);
arstore << CVariant_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> CVariant_var;
arload.Close();
@@ -266,14 +266,14 @@ TEST_F(TestArchive, CVariantArchive)
TEST_F(TestArchive, CVariantArchiveString)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
CVariant CVariant_ref("teststring"), CVariant_var;
CArchive arstore(file, CArchive::store);
arstore << CVariant_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> CVariant_var;
arload.Close();
@@ -284,7 +284,7 @@ TEST_F(TestArchive, CVariantArchiveString)
TEST_F(TestArchive, StringVectorArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
std::vector<std::string> strArray_ref, strArray_var;
strArray_ref.push_back("test strArray_ref 0");
strArray_ref.push_back("test strArray_ref 1");
@@ -295,7 +295,7 @@ TEST_F(TestArchive, StringVectorArchive)
arstore << strArray_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> strArray_var;
arload.Close();
@@ -308,7 +308,7 @@ TEST_F(TestArchive, StringVectorArchive)
TEST_F(TestArchive, IntegerVectorArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
std::vector<int> iArray_ref, iArray_var;
iArray_ref.push_back(0);
iArray_ref.push_back(1);
@@ -319,7 +319,7 @@ TEST_F(TestArchive, IntegerVectorArchive)
arstore << iArray_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
arload >> iArray_var;
arload.Close();
@@ -332,7 +332,7 @@ TEST_F(TestArchive, IntegerVectorArchive)
TEST_F(TestArchive, MultiTypeArchive)
{
- ASSERT_TRUE(file);
+ ASSERT_NE(nullptr, file);
float float_ref = 1, float_var = 0;
double double_ref = 2, double_var = 0;
int int_ref = 3, int_var = 0;
@@ -376,7 +376,7 @@ TEST_F(TestArchive, MultiTypeArchive)
arstore << iArray_ref;
arstore.Close();
- ASSERT_TRUE((file->Seek(0, SEEK_SET) == 0));
+ ASSERT_EQ(0, file->Seek(0, SEEK_SET));
CArchive arload(file, CArchive::load);
EXPECT_TRUE(arload.IsLoading());
EXPECT_FALSE(arload.IsStoring());
diff --git a/xbmc/utils/test/TestAsyncFileCopy.cpp b/xbmc/utils/test/TestAsyncFileCopy.cpp
index 62636d88d3..186c2dc15c 100644
--- a/xbmc/utils/test/TestAsyncFileCopy.cpp
+++ b/xbmc/utils/test/TestAsyncFileCopy.cpp
@@ -38,8 +38,8 @@ TEST(TestAsyncFileCopy, General)
XFILE::CFile *f1, *f2;
char vardata[sizeof(refdata)];
- ASSERT_TRUE((f1 = XBMC_CREATETEMPFILE("")));
- ASSERT_TRUE((f2 = XBMC_CREATETEMPFILE(".copy")));
+ ASSERT_NE(nullptr, (f1 = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (f2 = XBMC_CREATETEMPFILE(".copy")));
EXPECT_EQ((int)sizeof(refdata), f1->Write(refdata, sizeof(refdata)));
f1->Close();
diff --git a/xbmc/utils/test/TestCharsetConverter.cpp b/xbmc/utils/test/TestCharsetConverter.cpp
index f38b730c5d..bde00d3994 100644
--- a/xbmc/utils/test/TestCharsetConverter.cpp
+++ b/xbmc/utils/test/TestCharsetConverter.cpp
@@ -104,7 +104,7 @@ protected:
CSettings::Get().AddString(sub, "subtitles.charset", 735, "DEFAULT",
SPIN_CONTROL_TEXT);
*/
-
+ CSettings::Get().Initialize();
g_charsetConverter.reset();
g_charsetConverter.clear();
}
diff --git a/xbmc/utils/test/TestFileOperationJob.cpp b/xbmc/utils/test/TestFileOperationJob.cpp
index 9643bd92c7..4f487ceb46 100644
--- a/xbmc/utils/test/TestFileOperationJob.cpp
+++ b/xbmc/utils/test/TestFileOperationJob.cpp
@@ -34,7 +34,7 @@ TEST(TestFileOperationJob, ActionCopy)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
tmpfile->Close();
@@ -68,7 +68,7 @@ TEST(TestFileOperationJob, ActionMove)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
tmpfile->Close();
@@ -102,7 +102,7 @@ TEST(TestFileOperationJob, ActionDelete)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
tmpfile->Close();
@@ -152,7 +152,7 @@ TEST(TestFileOperationJob, ActionReplace)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
tmpfile->Close();
@@ -192,7 +192,7 @@ TEST(TestFileOperationJob, ActionCreateFolder)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
std::string tmpfiledirectory =
@@ -228,7 +228,7 @@ TEST(TestFileOperationJob, ActionDeleteFolder)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
std::string tmpfiledirectory =
@@ -268,7 +268,7 @@ TEST(TestFileOperationJob, GetFunctions)
CFileItemList items;
CFileOperationJob job;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
tmpfile->Close();
diff --git a/xbmc/utils/test/TestFileUtils.cpp b/xbmc/utils/test/TestFileUtils.cpp
index 4e91b8f7ae..1932adb5cc 100644
--- a/xbmc/utils/test/TestFileUtils.cpp
+++ b/xbmc/utils/test/TestFileUtils.cpp
@@ -30,7 +30,7 @@ TEST(TestFileUtils, DeleteItem_CFileItemPtr)
XFILE::CFile *tmpfile;
std::string tmpfilepath;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
CFileItemPtr item(new CFileItem(tmpfilepath));
@@ -45,7 +45,7 @@ TEST(TestFileUtils, DeleteItemString)
{
XFILE::CFile *tmpfile;
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
EXPECT_TRUE(CFileUtils::DeleteItem(XBMC_TEMPFILEPATH(tmpfile)));
}
diff --git a/xbmc/utils/test/TestHTMLUtil.cpp b/xbmc/utils/test/TestHTMLUtil.cpp
index 5d728afa10..fdbec602a3 100644
--- a/xbmc/utils/test/TestHTMLUtil.cpp
+++ b/xbmc/utils/test/TestHTMLUtil.cpp
@@ -42,7 +42,7 @@ TEST(TestHTMLUtil, ConvertHTMLToW)
{
std::wstring inw, refstrw, varstrw;
inw = L"&aring;&amp;&euro;";
- refstrw = L"å&€";
+ refstrw = L"\u00e5&\u20ac";
HTML::CHTMLUtil::ConvertHTMLToW(inw, varstrw);
EXPECT_STREQ(refstrw.c_str(), varstrw.c_str());
}
diff --git a/xbmc/utils/test/TestLabelFormatter.cpp b/xbmc/utils/test/TestLabelFormatter.cpp
index d05d0238e1..383d26576f 100644
--- a/xbmc/utils/test/TestLabelFormatter.cpp
+++ b/xbmc/utils/test/TestLabelFormatter.cpp
@@ -57,7 +57,7 @@ TEST_F(TestLabelFormatter, FormatLabel)
LABEL_MASKS labelMasks;
CLabelFormatter formatter("", labelMasks.m_strLabel2File);
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
CFileItemPtr item(new CFileItem(tmpfilepath));
@@ -77,7 +77,7 @@ TEST_F(TestLabelFormatter, FormatLabel2)
LABEL_MASKS labelMasks;
CLabelFormatter formatter("", labelMasks.m_strLabel2File);
- ASSERT_TRUE((tmpfile = XBMC_CREATETEMPFILE("")));
+ ASSERT_NE(nullptr, (tmpfile = XBMC_CREATETEMPFILE("")));
tmpfilepath = XBMC_TEMPFILEPATH(tmpfile);
CFileItemPtr item(new CFileItem(tmpfilepath));
diff --git a/xbmc/utils/test/TestXBMCTinyXML.cpp b/xbmc/utils/test/TestXBMCTinyXML.cpp
index 0072d1b4f3..b11aae6b43 100644
--- a/xbmc/utils/test/TestXBMCTinyXML.cpp
+++ b/xbmc/utils/test/TestXBMCTinyXML.cpp
@@ -53,7 +53,7 @@ TEST(TestXBMCTinyXML, ParseFromFileHandle)
// scraper results with unescaped &
CXBMCTinyXML doc;
FILE *f = fopen(XBMC_REF_FILE_PATH("/xbmc/utils/test/CXBMCTinyXML-test.xml").c_str(), "r");
- ASSERT_TRUE(f);
+ ASSERT_NE(nullptr, f);
doc.LoadFile(f);
fclose(f);
TiXmlNode *root = doc.RootElement();
diff --git a/xbmc/utils/test/Testfastmemcpy.cpp b/xbmc/utils/test/Testfastmemcpy.cpp
index 3299f732d5..93a9bb090d 100644
--- a/xbmc/utils/test/Testfastmemcpy.cpp
+++ b/xbmc/utils/test/Testfastmemcpy.cpp
@@ -34,6 +34,6 @@ TEST(Testfastmemcpy, General)
{
char vardata[sizeof(refdata)];
memset(vardata, 0, sizeof(vardata));
- EXPECT_TRUE(fast_memcpy(vardata, refdata, sizeof(refdata)));
- EXPECT_TRUE(!memcmp(refdata, vardata, sizeof(refdata)));
+ EXPECT_NE(nullptr, fast_memcpy(vardata, refdata, sizeof(refdata)));
+ EXPECT_EQ(0, memcmp(refdata, vardata, sizeof(refdata)));
}
diff --git a/xbmc/video/VideoThumbLoader.cpp b/xbmc/video/VideoThumbLoader.cpp
index e01609d897..56c2957a3f 100644
--- a/xbmc/video/VideoThumbLoader.cpp
+++ b/xbmc/video/VideoThumbLoader.cpp
@@ -159,7 +159,7 @@ bool CThumbExtractor::DoWork()
db.SetStreamDetailsForFileId(info->m_streamDetails, info->m_iFileId);
// overwrite the runtime value if the one from streamdetails is available
- if (info->m_iDbId > 0 && info->m_duration != info->GetDuration())
+ if (info->m_iDbId > 0 && info->m_duration != static_cast<int>(info->GetDuration()))
{
info->m_duration = info->GetDuration();
diff --git a/xbmc/view/GUIViewState.cpp b/xbmc/view/GUIViewState.cpp
index fbc81be19a..22a474626a 100644
--- a/xbmc/view/GUIViewState.cpp
+++ b/xbmc/view/GUIViewState.cpp
@@ -300,10 +300,6 @@ void CGUIViewState::AddSortMethod(SortDescription sortDescription, int buttonLab
void CGUIViewState::SetCurrentSortMethod(int method)
{
SortBy sortBy = (SortBy)method;
- SortAttribute sortAttributes = SortAttributeNone;
- if (CSettings::Get().GetBool("filelists.ignorethewhensorting"))
- sortAttributes = SortAttributeIgnoreArticle;
-
if (sortBy < SortByNone || sortBy > SortByRandom)
return; // invalid
diff --git a/xbmc/windows/GUIMediaWindow.cpp b/xbmc/windows/GUIMediaWindow.cpp
index 9257a1072c..94a0a85b16 100644
--- a/xbmc/windows/GUIMediaWindow.cpp
+++ b/xbmc/windows/GUIMediaWindow.cpp
@@ -237,9 +237,6 @@ bool CGUIMediaWindow::OnMessage(CGUIMessage& message)
m_iLastControl = GetFocusedControlID();
CGUIWindow::OnMessage(message);
- // Close all open modal dialogs
- g_windowManager.CloseModalDialogs(true);
-
// get rid of any active filtering
if (m_canFilterAdvanced)
{