aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml1
-rw-r--r--addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml1
-rw-r--r--addons/skin.confluence/720p/AddonBrowser.xml11
-rw-r--r--addons/skin.confluence/720p/Font.xml6
-rw-r--r--addons/skin.confluence/720p/Home.xml32
-rw-r--r--addons/skin.confluence/720p/MyMusicNav.xml33
-rw-r--r--addons/skin.confluence/720p/MyMusicPlaylist.xml4
-rw-r--r--addons/skin.confluence/720p/MyMusicSongs.xml1
-rw-r--r--addons/skin.confluence/720p/MyPics.xml3
-rw-r--r--addons/skin.confluence/720p/MyPrograms.xml1
-rw-r--r--addons/skin.confluence/720p/MyVideo.xml32
-rw-r--r--addons/skin.confluence/720p/MyVideoNav.xml80
-rw-r--r--addons/skin.confluence/720p/MyVideoPlaylist.xml4
-rw-r--r--addons/skin.confluence/720p/MyWeather.xml3
-rw-r--r--addons/skin.confluence/720p/custom_SkinSetting_1111.xml12
-rw-r--r--addons/skin.confluence/720p/includes.xml61
-rw-r--r--addons/skin.confluence/language/English/strings.xml2
-rw-r--r--language/Turkish/strings.xml120
-rw-r--r--lib/libbluray_win32/how_to_build.txt14
-rw-r--r--lib/libbluray_win32/libbluray/bluray.h290
-rw-r--r--project/BuildDependencies/DownloadMingwBuildEnv.bat6
-rw-r--r--project/BuildDependencies/scripts/get_mingw_env.txt4
-rw-r--r--project/BuildDependencies/scripts/get_msys_env.txt6
-rw-r--r--system/Lircmap.xml1
-rw-r--r--system/players/dvdplayer/avcodec-52.dllbin4876109 -> 4585616 bytes
-rw-r--r--system/players/dvdplayer/avformat-52.dllbin733031 -> 710734 bytes
-rw-r--r--system/players/dvdplayer/avutil-50.dllbin157981 -> 145620 bytes
-rw-r--r--system/players/dvdplayer/libbluray.dllbin598265 -> 677034 bytes
-rw-r--r--system/players/dvdplayer/libdvdcss-2.dllbin56049 -> 56049 bytes
-rw-r--r--system/players/dvdplayer/libdvdnav.dllbin237702 -> 237702 bytes
-rw-r--r--system/players/dvdplayer/postproc-51.dllbin163902 -> 182916 bytes
-rw-r--r--system/players/dvdplayer/swscale-0.6.1.dllbin392185 -> 364482 bytes
-rw-r--r--tools/MingwBuildEnvironment/Readme.txt12
-rw-r--r--tools/MingwBuildEnvironment/msys.7zbin14118464 -> 0 bytes
-rw-r--r--xbmc/Application.cpp5
-rw-r--r--xbmc/GUIDialogAddonSettings.cpp2
-rw-r--r--xbmc/GUISettings.cpp1
-rw-r--r--xbmc/MusicDatabase.cpp73
-rw-r--r--xbmc/MusicDatabase.h2
-rw-r--r--xbmc/VideoDatabase.cpp2
-rw-r--r--xbmc/addons/Skin.cpp1
-rw-r--r--xbmc/cores/VideoRenderers/LinuxRendererGL.cpp30
-rw-r--r--xbmc/cores/dvdplayer/Codecs/libdvd/build-xbmc-win32.sh1
-rw-r--r--xbmc/linux/LinuxTimezone.cpp15
-rw-r--r--xbmc/utils/Builtins.cpp41
-rw-r--r--xbmc/utils/WebServer.cpp66
-rw-r--r--xbmc/utils/WebServer.h1
47 files changed, 593 insertions, 387 deletions
diff --git a/addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml b/addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml
index 81305b8a7b..2501957ec1 100644
--- a/addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml
+++ b/addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml
@@ -5,4 +5,5 @@
<string id="30002">Video Fanart</string>
<string id="30003">Music Fanart</string>
<string id="30004">Image Folder</string>
+ <string id="30005">Dim level</string>
</strings>
diff --git a/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml b/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml
index 53c94f5913..2efad8b7a2 100644
--- a/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml
+++ b/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml
@@ -2,4 +2,5 @@
<settings>
<setting label="30000" type="enum" id="type" default="0" lvalues="30002|30003|30004"/>
<setting label="30001" type="folder" source="pictures" id="path" default="" enable="eq(-1,2)"/>
+ <setting label="30005" type="slider" id="level" range="0,1,100" default="100"/>
</settings>
diff --git a/addons/skin.confluence/720p/AddonBrowser.xml b/addons/skin.confluence/720p/AddonBrowser.xml
index 8de224a7f0..b631461d52 100644
--- a/addons/skin.confluence/720p/AddonBrowser.xml
+++ b/addons/skin.confluence/720p/AddonBrowser.xml
@@ -4,16 +4,6 @@
<views>50,51,550</views>
<controls>
<include>CommonSettingsBackground</include>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <include>Window_OpenClose_Animation</include>
- </control>
<include>CommonMediaPlayingBackground</include>
<control type="group">
<include>Window_OpenClose_Animation</include>
@@ -125,6 +115,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/Font.xml b/addons/skin.confluence/720p/Font.xml
index 7b4df46dac..025b638efd 100644
--- a/addons/skin.confluence/720p/Font.xml
+++ b/addons/skin.confluence/720p/Font.xml
@@ -82,7 +82,7 @@
<font>
<name>font50caps_title</name>
<filename>DejaVuSans-Bold-Caps.ttf</filename>
- <size>50</size>
+ <size>43</size>
</font>
<font>
<name>font45caps_title</name>
@@ -185,7 +185,7 @@
<font>
<name>font50caps_title</name>
<filename>DejaVuSans-Bold.ttf</filename>
- <size>50</size>
+ <size>43</size>
</font>
<font>
@@ -278,7 +278,7 @@
<font>
<name>font50caps_title</name>
<filename>Arial.ttf</filename>
- <size>50</size>
+ <size>43</size>
</font>
<font>
<name>font45caps_title</name>
diff --git a/addons/skin.confluence/720p/Home.xml b/addons/skin.confluence/720p/Home.xml
index ccd308214c..4ed5cc1501 100644
--- a/addons/skin.confluence/720p/Home.xml
+++ b/addons/skin.confluence/720p/Home.xml
@@ -767,7 +767,7 @@
<align>right</align>
<aligny>center</aligny>
<label>$INFO[ListItem.Label]</label>
- <animation effect="zoom" start="65" end="65" center="380,51" time="0" condition="true">Conditional</animation>
+ <animation effect="zoom" start="75" end="75" center="380,51" time="0" condition="true">Conditional</animation>
<animation effect="fade" start="100" end="30" time="200" condition="Window.IsVisible(1113) | ControlGroup(9001).HasFocus | ControlGroup(10).HasFocus | Control.HasFocus(9002)">conditional</animation>
</control>
</itemlayout>
@@ -781,8 +781,8 @@
<textcolor>white</textcolor>
<align>right</align>
<aligny>center</aligny>
- <animation effect="zoom" start="65" end="100" center="380,51" time="200">Focus</animation>
- <animation effect="zoom" start="100" end="65" center="380,51" time="200">UnFocus</animation>
+ <animation effect="zoom" start="75" end="100" center="380,51" time="200">Focus</animation>
+ <animation effect="zoom" start="100" end="75" center="380,51" time="200">UnFocus</animation>
<label>$INFO[ListItem.Label]</label>
</control>
</focusedlayout>
@@ -803,6 +803,13 @@
<visible>!Skin.HasSetting(HomeMenuNoWeatherButton)</visible>
<visible>Skin.HasSetting(ShowWeatherFanart) + !IsEmpty(Skin.String(WeatherFanartDir))</visible>
</item>
+ <item id="1">
+ <label>0</label>
+ <onclick>ActivateWindow(Programs,Addons,return)</onclick>
+ <icon>special://skin/backgrounds/programs.jpg</icon>
+ <thumb>$INFO[Skin.String(Home_Custom_Back_Programs_Folder)]</thumb>
+ <visible>!Skin.HasSetting(HomeMenuNoProgramsButton)</visible>
+ </item>
<item id="4">
<label>1</label>
<onclick>ActivateWindow(Pictures)</onclick>
@@ -810,13 +817,6 @@
<thumb>$INFO[Skin.String(Home_Custom_Back_Pictures_Folder)]</thumb>
<visible>!Skin.HasSetting(HomeMenuNoPicturesButton)</visible>
</item>
- <item id="3">
- <label>2</label>
- <onclick>ActivateWindow(Music)</onclick>
- <icon>special://skin/backgrounds/music.jpg</icon>
- <thumb>$INFO[Skin.String(Home_Custom_Back_Music_Folder)]</thumb>
- <visible>!Skin.HasSetting(HomeMenuNoMusicButton)</visible>
- </item>
<item id="2">
<label>3</label>
<onclick>ActivateWindow(Videos)</onclick>
@@ -852,12 +852,12 @@
<thumb>$INFO[Skin.String(Home_Custom_Back_TVShow_Folder)]</thumb>
<visible>Skin.HasSetting(HomeMenuNoTVShowsButton) + Library.HasContent(TVShows)</visible>
</item>
- <item id="1">
- <label>0</label>
- <onclick>ActivateWindow(Programs,Addons,return)</onclick>
- <icon>special://skin/backgrounds/programs.jpg</icon>
- <thumb>$INFO[Skin.String(Home_Custom_Back_Programs_Folder)]</thumb>
- <visible>!Skin.HasSetting(HomeMenuNoProgramsButton)</visible>
+ <item id="3">
+ <label>2</label>
+ <onclick>ActivateWindow(Music)</onclick>
+ <icon>special://skin/backgrounds/music.jpg</icon>
+ <thumb>$INFO[Skin.String(Home_Custom_Back_Music_Folder)]</thumb>
+ <visible>!Skin.HasSetting(HomeMenuNoMusicButton)</visible>
</item>
<item id="5">
<label>13000</label>
diff --git a/addons/skin.confluence/720p/MyMusicNav.xml b/addons/skin.confluence/720p/MyMusicNav.xml
index e91a5415bf..93aaf58364 100644
--- a/addons/skin.confluence/720p/MyMusicNav.xml
+++ b/addons/skin.confluence/720p/MyMusicNav.xml
@@ -4,29 +4,6 @@
<views>50,500,550,509,506,511,512,513</views>
<controls>
<include>CommonMusicBackground</include>
- <control type="group">
- <include>Window_OpenClose_Animation</include>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(MusicLibraryFanart) + !IsEmpty(ListItem.Property(Fanart_Image))</visible>
- </control>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[Fanart.Image]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(MusicLibraryFanart) + !IsEmpty(Fanart.Image)</visible>
- </control>
- </control>
<include>CommonMediaPlayingBackground</include>
<control type="group">
<include>Window_OpenClose_Animation</include>
@@ -188,14 +165,7 @@
<textcolor>dialogheader</textcolor>
<align>center</align>
<aligny>center</aligny>
- </control>
- <control type="radiobutton" id="201">
- <description>Toggle Fanart</description>
- <textwidth>170</textwidth>
- <include>ButtonMediaSubCommonValues</include>
- <label>31307</label>
- <onclick>Skin.ToggleSetting(MusicLibraryFanart)</onclick>
- <selected>Skin.HasSetting(MusicLibraryFanart)</selected>
+ <visible>Control.IsVisible(512) + Container.Content(Artists)</visible>
</control>
<control type="radiobutton" id="202">
<description>Toggle Fanart</description>
@@ -238,6 +208,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/MyMusicPlaylist.xml b/addons/skin.confluence/720p/MyMusicPlaylist.xml
index 6ba3252b34..0997dbd45a 100644
--- a/addons/skin.confluence/720p/MyMusicPlaylist.xml
+++ b/addons/skin.confluence/720p/MyMusicPlaylist.xml
@@ -115,6 +115,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
@@ -137,6 +138,7 @@
<description>Repeat button</description>
<posx>0</posx>
<posy>80</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
@@ -149,6 +151,7 @@
<posx>0</posx>
<posy>120</posy>
<label>190</label>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<onleft>50</onleft>
<onright>50</onright>
@@ -161,6 +164,7 @@
<posy>160</posy>
<label>192</label>
<onclick>ReplaceWindow(music)</onclick>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<onleft>50</onleft>
<onright>50</onright>
diff --git a/addons/skin.confluence/720p/MyMusicSongs.xml b/addons/skin.confluence/720p/MyMusicSongs.xml
index db058ad4b1..f1da8de475 100644
--- a/addons/skin.confluence/720p/MyMusicSongs.xml
+++ b/addons/skin.confluence/720p/MyMusicSongs.xml
@@ -117,6 +117,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/MyPics.xml b/addons/skin.confluence/720p/MyPics.xml
index 31b2e838d6..cff9d0eaad 100644
--- a/addons/skin.confluence/720p/MyPics.xml
+++ b/addons/skin.confluence/720p/MyPics.xml
@@ -138,6 +138,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
@@ -170,6 +171,7 @@
<description>Slideshow</description>
<posx>0</posx>
<posy>80</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>108</label>
<onleft>50</onleft>
@@ -181,6 +183,7 @@
<description>Recersive Slideshow</description>
<posx>0</posx>
<posy>120</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>361</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/MyPrograms.xml b/addons/skin.confluence/720p/MyPrograms.xml
index 32800a7659..b920b92d5b 100644
--- a/addons/skin.confluence/720p/MyPrograms.xml
+++ b/addons/skin.confluence/720p/MyPrograms.xml
@@ -116,6 +116,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/MyVideo.xml b/addons/skin.confluence/720p/MyVideo.xml
index 6be283da29..378d4f6b0d 100644
--- a/addons/skin.confluence/720p/MyVideo.xml
+++ b/addons/skin.confluence/720p/MyVideo.xml
@@ -4,20 +4,9 @@
<views>50,51,550,560,500,501,508,505</views>
<controls>
<include>CommonVideoBackground</include>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(VideoFilesFanart) | Control.IsVisible(508)</visible>
- <include>Window_OpenClose_Animation</include>
- </control>
<include>CommonMediaPlayingBackground</include>
<control type="group">
- <include>Window_OpenClose_Animation</include>
+ <include>Window_OpenClose_Animation</include>
<control type="image">
<posx>0</posx>
<posy>0</posy>
@@ -172,24 +161,6 @@
<include>ButtonMediaSubCommonValues</include>
<label>346</label>
</control>
- <control type="label" id="200">
- <width>220</width>
- <height>45</height>
- <font>font12caps</font>
- <label>14018</label>
- <textcolor>dialogheader</textcolor>
- <align>center</align>
- <aligny>center</aligny>
- </control>
- <control type="radiobutton" id="201">
- <description>Toggle Fanart</description>
- <textwidth>170</textwidth>
- <include>ButtonMediaSubCommonValues</include>
- <label>31307</label>
- <onclick>Skin.ToggleSetting(VideoFilesFanart)</onclick>
- <selected>Skin.HasSetting(VideoFilesFanart)</selected>
- <visible>!Control.IsVisible(508)</visible>
- </control>
</control>
</control>
<control type="button" id="8999">
@@ -222,6 +193,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/MyVideoNav.xml b/addons/skin.confluence/720p/MyVideoNav.xml
index 833bf20ee6..c0b9224d4a 100644
--- a/addons/skin.confluence/720p/MyVideoNav.xml
+++ b/addons/skin.confluence/720p/MyVideoNav.xml
@@ -4,57 +4,9 @@
<views>50,500,550,560,501,508,504,503,505,511</views>
<controls>
<include>CommonVideoBackground</include>
- <control type="group">
- <include>Window_OpenClose_Animation</include>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(VideoLibraryMovieFanart) | Control.IsVisible(508)</visible>
- <visible>Container.Content(Movies)</visible>
- </control>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(VideoLibraryTVFanart)</visible>
- <visible>Container.Content(TVShows) | [Container.Content(Episodes) + stringcompare(Container.FolderPath,videodb://5/)]</visible>
- </control>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <info>Fanart.Image</info>
- <texture background="true">$INFO[Fanart.Image]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(VideoLibraryTVFanart)</visible>
- <visible>Container.Content(Seasons) | [Container.Content(Episodes) + !stringcompare(Container.FolderPath,videodb://5/)]</visible>
- </control>
- <control type="image">
- <posx>0</posx>
- <posy>0</posy>
- <width>1280</width>
- <height>720</height>
- <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
- <include>backgroundfade</include>
- <fadetime>FanartCrossfadeTime</fadetime>
- <visible>!Skin.HasSetting(VideoLibraryMusicVideoFanart)</visible>
- <visible>Container.Content(MusicVideos) | Container.Content(Artists) | Container.Content(Albums)</visible>
- </control>
- </control>
<include>CommonMediaPlayingBackground</include>
<control type="group">
- <include>Window_OpenClose_Animation</include>
+ <include>Window_OpenClose_Animation</include>
<control type="image">
<posx>0</posx>
<posy>0</posy>
@@ -254,34 +206,7 @@
<textcolor>dialogheader</textcolor>
<align>center</align>
<aligny>center</aligny>
- <visible>Control.IsVisible(201) | Control.IsVisible(202) | Control.IsVisible(203) | Control.IsVisible(204) | Control.IsVisible(205)</visible>
- </control>
- <control type="radiobutton" id="201">
- <description>Toggle MoviesFanart</description>
- <textwidth>170</textwidth>
- <include>ButtonMediaSubCommonValues</include>
- <label>31307</label>
- <onclick>Skin.ToggleSetting(VideoLibraryMovieFanart)</onclick>
- <selected>Skin.HasSetting(VideoLibraryMovieFanart)</selected>
- <visible>Container.Content(Movies) + !Control.IsVisible(508)</visible>
- </control>
- <control type="radiobutton" id="202">
- <description>Toggle TVShow Fanart</description>
- <textwidth>170</textwidth>
- <include>ButtonMediaSubCommonValues</include>
- <label>31307</label>
- <onclick>Skin.ToggleSetting(VideoLibraryTVFanart)</onclick>
- <selected>Skin.HasSetting(VideoLibraryTVFanart)</selected>
- <visible>Container.Content(TVShows) | Container.Content(Seasons) | Container.Content(Episodes)</visible>
- </control>
- <control type="radiobutton" id="203">
- <description>Toggle MusicVideo Fanart</description>
- <textwidth>170</textwidth>
- <include>ButtonMediaSubCommonValues</include>
- <label>31307</label>
- <onclick>Skin.ToggleSetting(VideoLibraryMusicVideoFanart)</onclick>
- <selected>Skin.HasSetting(VideoLibraryMusicVideoFanart)</selected>
- <visible>Container.Content(MusicVideos) | Container.Content(Artists) | Container.Content(Albums)</visible>
+ <visible>Control.IsVisible(204) | Control.IsVisible(205)</visible>
</control>
<control type="radiobutton" id="204">
<description>Toggle Fanart</description>
@@ -333,6 +258,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
diff --git a/addons/skin.confluence/720p/MyVideoPlaylist.xml b/addons/skin.confluence/720p/MyVideoPlaylist.xml
index 9e8692d028..d55f2fd60d 100644
--- a/addons/skin.confluence/720p/MyVideoPlaylist.xml
+++ b/addons/skin.confluence/720p/MyVideoPlaylist.xml
@@ -105,6 +105,7 @@
<description>View As button</description>
<posx>0</posx>
<posy>0</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
@@ -127,6 +128,7 @@
<description>Repeat button</description>
<posx>0</posx>
<posy>80</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>-</label>
<onleft>50</onleft>
@@ -139,6 +141,7 @@
<posx>0</posx>
<posy>120</posy>
<label>190</label>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<onleft>50</onleft>
<onright>50</onright>
@@ -151,6 +154,7 @@
<posy>160</posy>
<label>192</label>
<onclick>ReplaceWindow(video)</onclick>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<onleft>50</onleft>
<onright>50</onright>
diff --git a/addons/skin.confluence/720p/MyWeather.xml b/addons/skin.confluence/720p/MyWeather.xml
index 1e583353d0..027b879a48 100644
--- a/addons/skin.confluence/720p/MyWeather.xml
+++ b/addons/skin.confluence/720p/MyWeather.xml
@@ -812,6 +812,7 @@
<description>Refresh button</description>
<posx>0</posx>
<posy>40</posy>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<label>103</label>
<onleft>50</onleft>
@@ -827,6 +828,7 @@
<onclick>SetFocus(50)</onclick>
<onclick>XBMC.RunScript($INFO[Skin.String(WeatherScript_Path)])</onclick>
<onclick>SetFocus(50)</onclick>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<visible>Skin.HasSetting(WeatherScript_Enable) + !IsEmpty(Skin.String(WeatherScript_Label))</visible>
<onleft>50</onleft>
@@ -840,6 +842,7 @@
<posy>120</posy>
<label>5</label>
<onclick>ActivateWindow(MyWeatherSettings)</onclick>
+ <textwidth>235</textwidth>
<include>ButtonCommonValues</include>
<onleft>50</onleft>
<onright>50</onright>
diff --git a/addons/skin.confluence/720p/custom_SkinSetting_1111.xml b/addons/skin.confluence/720p/custom_SkinSetting_1111.xml
index c637106cc9..c91607807d 100644
--- a/addons/skin.confluence/720p/custom_SkinSetting_1111.xml
+++ b/addons/skin.confluence/720p/custom_SkinSetting_1111.xml
@@ -255,6 +255,18 @@
<onclick>Skin.ToggleSetting(HideFilenameFlagging)</onclick>
<selected>Skin.HasSetting(HideFilenameFlagging)</selected>
</control>
+ <control type="radiobutton" id="114">
+ <width>750</width>
+ <height>40</height>
+ <font>font13</font>
+ <label>31119</label>
+ <textcolor>grey2</textcolor>
+ <focusedcolor>white</focusedcolor>
+ <texturefocus>MenuItemFO.png</texturefocus>
+ <texturenofocus>MenuItemNF.png</texturenofocus>
+ <onclick>Skin.ToggleSetting(HideBackGroundFanart)</onclick>
+ <selected>Skin.HasSetting(HideBackGroundFanart)</selected>
+ </control>
<control type="label" id="104">
<width>750</width>
<height>45</height>
diff --git a/addons/skin.confluence/720p/includes.xml b/addons/skin.confluence/720p/includes.xml
index adef0d318c..703bbdb7aa 100644
--- a/addons/skin.confluence/720p/includes.xml
+++ b/addons/skin.confluence/720p/includes.xml
@@ -68,7 +68,18 @@
<timeperimage>10000</timeperimage>
<randomize>true</randomize>
<fadetime>1000</fadetime>
- <visible>[Container.Content(TVShows) | Container.Content(Seasons) |Container.Content(Episodes)] + [!IsEmpty(Skin.String(Home_Custom_Back_TVShow_Folder) + Skin.HasSetting(HomeMenuNoTVShowsButton)])</visible>
+ <visible>[Container.Content(TVShows) | Container.Content(Seasons) | Container.Content(Episodes)] + [!IsEmpty(Skin.String(Home_Custom_Back_TVShow_Folder) + Skin.HasSetting(HomeMenuNoTVShowsButton)])</visible>
+ </control>
+ <control type="image">
+ <posx>0</posx>
+ <posy>0</posy>
+ <width>1280</width>
+ <height>720</height>
+ <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
+ <include>backgroundfade</include>
+ <fadetime>FanartCrossfadeTime</fadetime>
+ <visible>!Skin.HasSetting(HideBackGroundFanart) + !IsEmpty(ListItem.Property(Fanart_Image))</visible>
+ <include>Window_OpenClose_Animation</include>
</control>
</include>
<include name="CommonTVBackground">
@@ -94,6 +105,17 @@
<randomize>true</randomize>
<fadetime>1000</fadetime>
</control>
+ <control type="image">
+ <posx>0</posx>
+ <posy>0</posy>
+ <width>1280</width>
+ <height>720</height>
+ <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
+ <include>backgroundfade</include>
+ <fadetime>FanartCrossfadeTime</fadetime>
+ <visible>!Skin.HasSetting(HideBackGroundFanart) + !IsEmpty(ListItem.Property(Fanart_Image))</visible>
+ <include>Window_OpenClose_Animation</include>
+ </control>
</include>
<include name="CommonPictureBackground">
<control type="multiimage">
@@ -106,6 +128,17 @@
<randomize>true</randomize>
<fadetime>1000</fadetime>
</control>
+ <control type="image">
+ <posx>0</posx>
+ <posy>0</posy>
+ <width>1280</width>
+ <height>720</height>
+ <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
+ <include>backgroundfade</include>
+ <fadetime>FanartCrossfadeTime</fadetime>
+ <visible>!Skin.HasSetting(HideBackGroundFanart) + !IsEmpty(ListItem.Property(Fanart_Image))</visible>
+ <include>Window_OpenClose_Animation</include>
+ </control>
</include>
<include name="CommonProgramsBackground">
<control type="multiimage">
@@ -118,17 +151,16 @@
<randomize>true</randomize>
<fadetime>1000</fadetime>
</control>
- </include>
- <include name="CommonScriptBackground">
- <control type="multiimage">
+ <control type="image">
<posx>0</posx>
<posy>0</posy>
<width>1280</width>
<height>720</height>
- <imagepath fallback="special://skin/backgrounds/scripts.jpg" background="true">$INFO[Skin.String(Home_Custom_Back_Scripts_Folder)]</imagepath>
- <timeperimage>10000</timeperimage>
- <randomize>true</randomize>
- <fadetime>1000</fadetime>
+ <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
+ <include>backgroundfade</include>
+ <fadetime>FanartCrossfadeTime</fadetime>
+ <visible>!Skin.HasSetting(HideBackGroundFanart) + !IsEmpty(ListItem.Property(Fanart_Image))</visible>
+ <include>Window_OpenClose_Animation</include>
</control>
</include>
<include name="CommonWeatherBackground">
@@ -167,6 +199,17 @@
<randomize>true</randomize>
<fadetime>1000</fadetime>
</control>
+ <control type="image">
+ <posx>0</posx>
+ <posy>0</posy>
+ <width>1280</width>
+ <height>720</height>
+ <texture background="true">$INFO[ListItem.Property(Fanart_Image)]</texture>
+ <include>backgroundfade</include>
+ <fadetime>FanartCrossfadeTime</fadetime>
+ <visible>!Skin.HasSetting(HideBackGroundFanart) + !IsEmpty(ListItem.Property(Fanart_Image))</visible>
+ <include>Window_OpenClose_Animation</include>
+ </control>
</include>
<include name="BehindDialogFadeOut">
<control type="image">
@@ -220,7 +263,7 @@
<height>40</height>
<width>250</width>
<textoffsetx>10</textoffsetx>
- <textwidth>235</textwidth>
+ <textwidth>200</textwidth>
<aligny>center</aligny>
<font>font13caps</font>
<texturefocus border="5">button-focus.png</texturefocus>
diff --git a/addons/skin.confluence/language/English/strings.xml b/addons/skin.confluence/language/English/strings.xml
index d81e5ce232..bd762cd844 100644
--- a/addons/skin.confluence/language/English/strings.xml
+++ b/addons/skin.confluence/language/English/strings.xml
@@ -69,7 +69,7 @@
<string id="31116"></string>
<string id="31117">Show Recently added Videos</string>
<string id="31118">Home Page Programs Submenu</string>
- <string id="31119"></string> <!-- blanked 2010-11-12 -->
+ <string id="31119">Hide Background Fanart</string>
<string id="31120">BUTTON LABEL</string>
<string id="31121"></string> <!-- blanked 2010-11-12 -->
<string id="31122">Weather Page</string>
diff --git a/language/Turkish/strings.xml b/language/Turkish/strings.xml
index 720a562988..0e8fbad051 100644
--- a/language/Turkish/strings.xml
+++ b/language/Turkish/strings.xml
@@ -4,8 +4,8 @@
<!--Date of translation: 06/07/2006-->
<!--Translator: Özgür BASKIN (queeup)-->
<!--Email: ozgur.baskin@gmail.com-->
-<!--Date of translation: 26/11/2010-->
-<!--Based on English strings revision 35368-->
+<!--Date of translation: 01/01/2011-->
+<!--Based on English strings revision 35715-->
<strings>
<string id="0">Programlar</string>
<string id="1">Resimler</string>
@@ -147,11 +147,9 @@
<string id="164">Disk yok</string>
<string id="165">Disk var</string>
<string id="166">Dış Görünüm</string>
- <string id="167"></string>
- <string id="168"></string>
+
<string id="169">Çözünürlük</string>
<string id="170">Görüntü yenileme hızını videoyla eşleşecek şekilde ayarla</string>
- <string id="171"></string>
<string id="172">Çıkış tarihi</string>
<string id="173">4:3 videoları görüntüleme biçimi</string>
@@ -261,7 +259,7 @@
<string id="282">%i öge bulundu</string>
<string id="283">Arama sonuçları</string>
<string id="284">Hiçbir sonuç bulunamadı</string>
- <string id="286"></string>
+
<string id="287">Altyazılar</string>
<string id="288">Yazı tipi</string>
<string id="289">- Boyut</string>
@@ -281,11 +279,7 @@
<string id="304">Dil</string>
<string id="305">Aktif</string>
<string id="306">Non-interleaved</string>
- <string id="307"></string>
- <string id="308"></string>
- <string id="309"></string>
- <string id="310"></string>
- <string id="311"></string>
+
<string id="312">(0=otomatik)</string>
<string id="313">Veritabanı temizleniyor</string>
<string id="314">Hazırlanıyor...</string>
@@ -378,8 +372,7 @@
<string id="404">Rüzgar</string>
<string id="405">Donma noktası</string>
<string id="406">Nem oranı</string>
- <string id="407"></string>
- <string id="408"></string>
+
<string id="409">Varsayılanlar</string>
<string id="410">Hava Durumu hizmetine eriÅŸiliyor</string>
<string id="411">Hava Durumu bilgileri alınıyor:</string>
@@ -482,7 +475,7 @@
<string id="517">Yeni çalınan albümler</string>
<string id="518">BaÅŸlat</string>
<string id="519">...Modunda BaÅŸlat</string>
- <string id="520"></string>
+
<string id="521">Derlemeler</string>
<string id="522">Kaynağı kaldır</string>
<string id="523">Ortamı değiştir</string>
@@ -633,7 +626,7 @@
<string id="715">- Atama</string>
<string id="716">Otomatik (DHCP)</string>
<string id="717">KiÅŸisel (Statik)</string>
- <string id="718"></string>
+
<string id="719">- IP adresi</string>
<string id="720">- AÄŸ maskesi</string>
<string id="721">- Varsayılan ağ geçidi</string>
@@ -644,9 +637,9 @@
<string id="726">Değişiklikler kaydedilmedi. Kaydetmeden çıkmak istiyor musunuz?</string>
<string id="727">Web sunucusu</string>
<string id="728">FTP sunucusu</string>
- <string id="729"></string>
+
<string id="730">- Port</string>
- <string id="731"></string>
+
<string id="732">Kaydet ve uygula</string>
<string id="733">- Parola</string>
<string id="734">Parola yok</string>
@@ -804,10 +797,6 @@
<string id="1234">Programlar &amp; resimler &amp; müzik</string>
<string id="1235">Programlar &amp; resimler &amp; video</string>
- <string id="1245"></string>
- <string id="1246"></string>
- <string id="1247"></string>
-
<string id="1250">Otomatik algılama</string>
<string id="1251">Otomatik sistem algılama</string>
<string id="1252">Takma isim</string>
@@ -860,8 +849,6 @@
<string id="2100">Betik başarısız! : %s</string>
<string id="2101">Yeni bir sürümü gerekli - Günlüğe bakın</string>
- <string id="2102"></string>
- <string id="2103"></string>
<string id="4501">LCD/VFD'yi etkinleÅŸtir</string>
@@ -932,18 +919,9 @@
<string id="12009">İçeriği yenile...</string>
<string id="12010">Müzik penceresine dön</string>
<string id="12011">Videolar penceresine dön</string>
- <string id="12012"></string>
- <string id="12013"></string>
- <string id="12014"></string>
- <string id="12015"></string>
- <string id="12016"></string>
- <string id="12017"></string>
- <string id="12018"></string>
- <string id="12019"></string>
- <string id="12020"></string>
+
<string id="12021">BaÅŸtan baÅŸla</string>
<string id="12022">%s pozisyonundan devam et</string>
- <string id="12023"></string>
<string id="12310">0</string>
<string id="12311">1</string>
@@ -994,9 +972,7 @@
<string id="12377">Bu işlem önceki kayıtları silecek</string>
<string id="12378">Her resim için görüntüleme zamanı miktarı</string>
<string id="12379">Kaydırma ve yakınlaştırma efekti kullan</string>
- <string id="12380"></string>
- <string id="12381"></string>
- <string id="12382"></string>
+
<string id="12383">12'li saat sistemi</string>
<string id="12384">24'lü saat sistemi</string>
<string id="12385">Gün/Ay</string>
@@ -1019,8 +995,7 @@
<string id="13003">- Gecikme</string>
<string id="13004">- Minimum dosya süresi</string>
<string id="13005">Kapat</string>
- <string id="13006"></string>
- <string id="13007"></string>
+
<string id="13008">Kapatma fonksiyonu</string>
<string id="13009">Çık</string>
<string id="13010">Hazırda Beklet</string>
@@ -1076,29 +1051,11 @@
<string id="13146">bu ayarı değiştirmek kontrol yeteneğini etkileyebilir.</string>
<string id="13147">Devam etmek istiyor musunuz?</string>
- <string id="13150"></string>
- <string id="13151"></string>
- <string id="13152"></string>
- <string id="13153"></string>
- <string id="13154"></string>
- <string id="13155"></string>
- <string id="13156"></string>
- <string id="13157"></string>
- <string id="13158"></string>
<string id="13159">Alt aÄŸ maskesi</string>
<string id="13160">Ağ geçidi</string>
<string id="13161">Birincil DNS</string>
<string id="13162">Bilgi mevcut deÄŸil</string>
- <string id="13163"></string>
- <string id="13164"></string>
- <string id="13165"></string>
- <string id="13166"></string>
- <string id="13167"></string>
- <string id="13168"></string>
- <string id="13169"></string>
-
-
<string id="13170">Hiçbir zaman</string>
<string id="13171">Hemen</string>
<string id="13172">%i saniye sonra</string>
@@ -1138,20 +1095,17 @@
<string id="13283">Ä°ÅŸletim sistemi:</string>
<string id="13284">CPU hızı:</string>
- <string id="13285"></string>
+
<string id="13286">Video kodlayıcı:</string>
<string id="13287">Ekran çözünülürlüğü:</string>
- <string id="13288"></string>
- <string id="13289"></string>
- <string id="13290"></string>
- <string id="13291"></string>
+
<string id="13292">Görüntü/Ses kablosu:</string>
- <string id="13293"></string>
+
<string id="13294">DVD bölgesi:</string>
<string id="13295">Ä°nternet:</string>
<string id="13296">Bağlı</string>
<string id="13297">Bağlı değil. Ağ ayarlarınızı kontrol edin.</string>
- <string id="13298"></string>
+
<string id="13299">Hedef sıcaklık</string>
<string id="13300">Fan hızı</string>
<string id="13301">Otomatik ısı kontrolü</string>
@@ -1190,8 +1144,7 @@
<string id="13334">Etiketi düzenle</string>
<string id="13335">Varsayılan yap</string>
<string id="13336">Tuşu kaldır</string>
- <string id="13338"></string>
- <string id="13339"></string>
+
<string id="13340">Serbest bırak</string>
<string id="13341">YeÅŸil</string>
<string id="13342">Turuncu</string>
@@ -1466,7 +1419,7 @@
<string id="15275">%name% için haftalık parça çizelgesi</string>
<string id="15276">%name% adlı kullanıcının komşularını Last.fm radyosunda dinle</string>
<string id="15277">%name% adlı kullanıcının kişisel Last.fm radyosunu dinle</string>
- <string id="15278">%name% adlı kullanıcının sevdiği parçaları Last.fm radyosunda dinle</string>
+ <string id="15278">%name% adlı kullanıcının mix Last.fm radyosunu dinle</string>
<string id="15279">Last.fm' den liste alınıyor...</string>
<string id="15280">Last.fm' den alınamıyor...</string>
<string id="15281">Çıkmış albümlerimi bulmak için bir sanatçı adı girin</string>
@@ -1474,7 +1427,7 @@
<string id="15283">%name% tarafından dinlenen parçalar</string>
<string id="15284">%name% adlı kullanıcının önerdiklerini Last.fm radyosunda dinle</string>
<string id="15285">%name% için en iyi etiketler</string>
- <string id="15286">%name% adlı kullanıcının çalma listesini dinle</string>
+
<string id="15287">Geçerli parçayı sevilen parçalara eklemek ister misiniz?</string>
<string id="15288">Geçerli parçayı engellemek ister misiniz?</string>
<string id="15289">Sevilen parçalara eklendi: '%s'.</string>
@@ -1537,11 +1490,6 @@
<string id="16103">SeyredilmiÅŸ olarak iÅŸaretle</string>
<string id="16104">SeyredilmemiÅŸ olarak iÅŸaretle</string>
<string id="16105">Başlığı düzenle</string>
- <string id="16106"></string>
- <string id="16107"></string>
- <string id="16108"></string>
- <string id="16109"></string>
- <string id="16110"></string>
<string id="16200">Ä°ÅŸlem durduruldu</string>
<string id="16201">Kopyalanamadı</string>
@@ -1573,9 +1521,6 @@
<string id="16319">DXVA</string>
<string id="16400">Post-processing</string>
- <string id="16401"></string>
- <string id="16402"></string>
- <string id="16403"></string>
<string id="17500">Görüntü uyku zaman aşımı</string>
@@ -1760,8 +1705,7 @@
<string id="20184">EXIF bilgilerini kullanarak resmi çevir</string>
<string id="20185">TV programları için poster görünümünü kullan</string>
<string id="20186">Lütfen bekleyin</string>
- <string id="20187"></string>
- <string id="20188"></string>
+
<string id="20189">İçerik ve yorum için otomatik kaydırmayı etkinleştir</string>
<string id="20190">Özel</string>
<string id="20191">Hata ayıklama günlüğünü etkinleştir</string>
@@ -1799,24 +1743,18 @@
<string id="20310">Oynatırken LCD'yi karart</string>
<string id="20311">Yerleşik veya bilinmiyor (korumalı)</string>
<string id="20312">Duraklatılınca LCD'yi karart</string>
- <string id="20313"></string>
+
<string id="20314">Videolar - Kitaplık</string>
- <string id="20315"></string>
+
<string id="20316">Sırala: ID</string>
- <string id="20317"></string>
- <string id="20318"></string>
- <string id="20319"></string>
- <string id="20320"></string>
- <string id="20321"></string>
- <string id="20322"></string>
- <string id="20323"></string>
+
<string id="20324">...Bölümü oynat</string>
<string id="20325">Ayarları sıfırla</string>
<string id="20326">Bu %s için olan ayarlama değerlerini</string>
<string id="20327">varsayılana sıfırlayacak.</string>
<string id="20328">Hedefe gözat</string>
- <string id="20330">Arama için dosya adlarını kullan</string>
+ <string id="20330">Arama için klasör adlarını kullan</string>
<string id="20331">Dosya</string>
<string id="20332">Aramalarda dosya veya klasör adları kullanılsın mı?</string>
<string id="20333">İçeriği ayarla</string>
@@ -2258,12 +2196,6 @@
<string id="24089">Eklenti yeniden başlatmaları</string>
<string id="24090">Eklenti yöneticisini kilitle</string>
- <string id="24091"></string>
- <string id="24092"></string>
- <string id="24093"></string>
- <string id="24094"></string>
- <string id="24095"></string>
-
<string id="24096">Depodaki eklenti bozuk olarak iÅŸaretlenmiÅŸ.</string>
<string id="24097">Sisteminizde devre dışı bırakmak ister misiniz?</string>
<string id="24098">Bozuk</string>
@@ -2275,8 +2207,6 @@
<string id="29801">QWERTY klavye</string>
<string id="29802">Passthrough Ses kullanımda</string>
- <string id="29999"></string>
-
<!-- strings 30000 thru 30999 reserved for plugins and plugin settings -->
<!-- strings 31000 thru 31999 reserved for skins -->
<!-- strings 32000 thru 32999 reserved for scripts -->
diff --git a/lib/libbluray_win32/how_to_build.txt b/lib/libbluray_win32/how_to_build.txt
index 8bcd979e25..bc68ccf8a3 100644
--- a/lib/libbluray_win32/how_to_build.txt
+++ b/lib/libbluray_win32/how_to_build.txt
@@ -1,11 +1,7 @@
-since somehow the compilation went not straight forward for me I wrote down this memo.
-either its my setup (win7 X64) or the lib still needs some love and will compile fine in later revisions
-
-- git clone git://git.videolan.org/libbluray.git (currently using Commit:674b3886e4a507c14da1856c57cc0629f979a09d, revision 674b38)
-- run autoreconf -vif in any Linux env (or mingw if it doesn't crash for you)
-- we need configure m4/ and build-aux/ to compile it under mingw
-- run configure under mingw
+- git clone git://git.videolan.org/libbluray.git (currently using Commit:0e5902ff9a6f1e122a81cad2ee8707d00a39b58b
+- sh bootstrap
+- ./configure
+- make
- look in src/.libs for a dll
- if there isn't any (as with my setup), run
- gcc -shared -std=c99 -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -Wall -Wdisabled-optimization -Wpointer
- -arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -Wextra -Winline -O3 -fomit-frame-pointer -o libbluray.dll *.o \ No newline at end of file
+ gcc -shared -std=c99 -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -Wall -Wdisabled-optimization -Wpointer -arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -Wextra -Winline -O3 -fomit-frame-pointer -o libbluray.dll *.o \ No newline at end of file
diff --git a/lib/libbluray_win32/libbluray/bluray.h b/lib/libbluray_win32/libbluray/bluray.h
index 27a15ef385..1a4f36e553 100644
--- a/lib/libbluray_win32/libbluray/bluray.h
+++ b/lib/libbluray_win32/libbluray/bluray.h
@@ -39,6 +39,83 @@
typedef struct bluray BLURAY;
+typedef enum {
+ BLURAY_STREAM_TYPE_VIDEO_MPEG1 = 0x01,
+ BLURAY_STREAM_TYPE_VIDEO_MPEG2 = 0x02,
+ BLURAY_STREAM_TYPE_AUDIO_MPEG1 = 0x03,
+ BLURAY_STREAM_TYPE_AUDIO_MPEG2 = 0x04,
+ BLURAY_STREAM_TYPE_AUDIO_LPCM = 0x80,
+ BLURAY_STREAM_TYPE_AUDIO_AC3 = 0x81,
+ BLURAY_STREAM_TYPE_AUDIO_DTS = 0x82,
+ BLURAY_STREAM_TYPE_AUDIO_TRUHD = 0x83,
+ BLURAY_STREAM_TYPE_AUDIO_AC3PLUS = 0x84,
+ BLURAY_STREAM_TYPE_AUDIO_DTSHD = 0x85,
+ BLURAY_STREAM_TYPE_AUDIO_DTSHD_MASTER = 0x86,
+ BLURAY_STREAM_TYPE_VIDEO_VC1 = 0xea,
+ BLURAY_STREAM_TYPE_VIDEO_H264 = 0x1b,
+ BLURAY_STREAM_TYPE_SUB_PG = 0x90,
+ BLURAY_STREAM_TYPE_SUB_IG = 0x91,
+ BLURAY_STREAM_TYPE_SUB_TEXT = 0x92
+} bd_stream_type_e;
+
+typedef enum {
+ BLURAY_VIDEO_FORMAT_480I = 1, // ITU-R BT.601-5
+ BLURAY_VIDEO_FORMAT_576I = 2, // ITU-R BT.601-4
+ BLURAY_VIDEO_FORMAT_480P = 3, // SMPTE 293M
+ BLURAY_VIDEO_FORMAT_1080I = 4, // SMPTE 274M
+ BLURAY_VIDEO_FORMAT_720P = 5, // SMPTE 296M
+ BLURAY_VIDEO_FORMAT_1080P = 6, // SMPTE 274M
+ BLURAY_VIDEO_FORMAT_576P = 7 // ITU-R BT.1358
+} bd_video_format_e;
+
+typedef enum {
+ BLURAY_VIDEO_RATE_24000_1001 = 1, // 23.976
+ BLURAY_VIDEO_RATE_24 = 2,
+ BLURAY_VIDEO_RATE_25 = 3,
+ BLURAY_VIDEO_RATE_30000_1001 = 4, // 29.97
+ BLURAY_VIDEO_RATE_50 = 6,
+ BLURAY_VIDEO_RATE_60000_1001 = 7 // 59.94
+} bd_video_rate_e;
+
+typedef enum {
+ BLURAY_ASPECT_RATIO_4_3 = 2,
+ BLURAY_ASPECT_RATIO_16_9 = 3
+} bd_video_aspect_e;
+
+typedef enum {
+ BLURAY_AUDIO_FORMAT_MONO = 1,
+ BLURAY_AUDIO_FORMAT_STEREO = 3,
+ BLURAY_AUDIO_FORMAT_MULTI_CHAN = 6,
+ BLURAY_AUDIO_FORMAT_COMBO = 12 // Stereo ac3/dts,
+} bd_audio_format_e;
+ // multi mlp/dts-hd
+
+typedef enum {
+ BLURAY_AUDIO_RATE_48 = 1,
+ BLURAY_AUDIO_RATE_96 = 4,
+ BLURAY_AUDIO_RATE_192 = 5,
+ BLURAY_AUDIO_RATE_192_COMBO = 12, // 48 or 96 ac3/dts
+ // 192 mpl/dts-hd
+ BLURAY_AUDIO_RATE_96_COMBO = 14 // 48 ac3/dts
+ // 96 mpl/dts-hd
+} bd_audio_rate_e;
+
+typedef enum {
+ BLURAY_TEXT_CHAR_CODE_UTF8 = 0x01,
+ BLURAY_TEXT_CHAR_CODE_UTF16BE = 0x02,
+ BLURAY_TEXT_CHAR_CODE_SHIFT_JIS = 0x03,
+ BLURAY_TEXT_CHAR_CODE_EUC_KR = 0x04,
+ BLURAY_TEXT_CHAR_CODE_GB18030_20001 = 0x05,
+ BLURAY_TEXT_CHAR_CODE_CN_GB = 0x06,
+ BLURAY_TEXT_CHAR_CODE_BIG5 = 0x07
+} bd_char_code_e;
+
+typedef enum {
+ BLURAY_STILL_NONE = 0x00,
+ BLURAY_STILL_TIME = 0x01,
+ BLURAY_STILL_INFINITE = 0x02,
+} bd_still_mode_e;
+
typedef struct bd_stream_info {
uint8_t coding_type;
uint8_t format;
@@ -46,9 +123,13 @@ typedef struct bd_stream_info {
uint8_t char_code;
uint8_t lang[4];
uint16_t pid;
+ uint8_t aspect;
} BLURAY_STREAM_INFO;
typedef struct bd_clip {
+ uint32_t pkt_count;
+ uint8_t still_mode;
+ uint16_t still_time; /* seconds */
uint8_t video_stream_count;
uint8_t audio_stream_count;
uint8_t pg_stream_count;
@@ -293,19 +374,64 @@ uint64_t bd_tell(BLURAY *bd);
uint64_t bd_tell_time(BLURAY *bd);
/*
+ * Disc info
+ */
+
+typedef struct {
+ uint8_t bluray_detected;
+
+ uint8_t first_play_supported;
+ uint8_t top_menu_supported;
+
+ uint32_t num_hdmv_titles;
+ uint32_t num_bdj_titles;
+ uint32_t num_unsupported_titles;
+
+ uint8_t aacs_detected;
+ uint8_t libaacs_detected;
+ uint8_t aacs_handled;
+
+ uint8_t bdplus_detected;
+ uint8_t libbdplus_detected;
+ uint8_t bdplus_handled;
+
+} BLURAY_DISC_INFO;
+
+/**
+ *
+ * Get information about current BluRay disc
+ *
+ * @param bd BLURAY object
+ * @return pointer to BLURAY_DISC_INFO object, NULL on error
+ */
+const BLURAY_DISC_INFO *bd_get_disc_info(BLURAY*);
+
+/*
* player settings
*/
-#define BLURAY_PLAYER_SETTING_PARENTAL 13 /* Age for parental control (years) */
-#define BLURAY_PLAYER_SETTING_AUDIO_CAP 15 /* Player capability for audio (bit mask) */
-#define BLURAY_PLAYER_SETTING_AUDIO_LANG 16 /* Initial audio language: ISO 639-2 string, ex. "eng" */
-#define BLURAY_PLAYER_SETTING_PG_LANG 17 /* Initial PG/SPU language: ISO 639-2 string, ex. "eng" */
-#define BLURAY_PLAYER_SETTING_MENU_LANG 18 /* Initial menu language: ISO 639-2 string, ex. "eng" */
-#define BLURAY_PLAYER_SETTING_COUNTRY_CODE 19 /* Player country code: ISO 3166-1 string, ex. "de" */
-#define BLURAY_PLAYER_SETTING_REGION_CODE 20 /* Player region code: 1 - region A, 2 - B, 4 - C */
-#define BLURAY_PLAYER_SETTING_VIDEO_CAP 29 /* Player capability for video (bit mask) */
-#define BLURAY_PLAYER_SETTING_TEXT_CAP 30 /* Player capability for text subtitle (bit mask) */
-#define BLURAY_PLAYER_SETTING_PLAYER_PROFILE 31 /* Profile1: 0, Profile1+: 1, Profile2: 3, Profile3: 8 */
+typedef enum {
+ BLURAY_PLAYER_SETTING_PARENTAL = 13, /* Age for parental control (years) */
+ BLURAY_PLAYER_SETTING_AUDIO_CAP = 15, /* Player capability for audio (bit mask) */
+ BLURAY_PLAYER_SETTING_AUDIO_LANG = 16, /* Initial audio language: ISO 639-2 string, ex. "eng" */
+ BLURAY_PLAYER_SETTING_PG_LANG = 17, /* Initial PG/SPU language: ISO 639-2 string, ex. "eng" */
+ BLURAY_PLAYER_SETTING_MENU_LANG = 18, /* Initial menu language: ISO 639-2 string, ex. "eng" */
+ BLURAY_PLAYER_SETTING_COUNTRY_CODE = 19, /* Player country code: ISO 3166-1 string, ex. "de" */
+ BLURAY_PLAYER_SETTING_REGION_CODE = 20, /* Player region code: 1 - region A, 2 - B, 4 - C */
+ BLURAY_PLAYER_SETTING_VIDEO_CAP = 29, /* Player capability for video (bit mask) */
+ BLURAY_PLAYER_SETTING_TEXT_CAP = 30, /* Player capability for text subtitle (bit mask) */
+ BLURAY_PLAYER_SETTING_PLAYER_PROFILE = 31, /* Profile1: 0, Profile1+: 1, Profile2: 3, Profile3: 8 */
+} bd_player_setting;
+
+/**
+ *
+ * Update player setting registers
+ *
+ * @param bd BLURAY object
+ * @param idx Player setting register
+ * @param value New value for player setting register
+ * @return 1 on success, 0 on error (invalid setting)
+ */
int bd_set_player_setting(BLURAY *bd, uint32_t idx, uint32_t value);
int bd_set_player_setting_str(BLURAY *bd, uint32_t idx, const char *s);
@@ -317,12 +443,13 @@ int bd_start_bdj(BLURAY *bd, const char* start_object); // start BD-J from the s
void bd_stop_bdj(BLURAY *bd); // shutdown BD-J and clean up resources
/*
- * navigaton mode
+ * events
*/
typedef enum {
BD_EVENT_NONE = 0,
BD_EVENT_ERROR,
+ BD_EVENT_ENCRYPTED,
/* current playback position */
BD_EVENT_ANGLE, /* current angle, 1...N */
@@ -330,41 +457,154 @@ typedef enum {
BD_EVENT_PLAYLIST, /* current playlist (xxxxx.mpls) */
BD_EVENT_PLAYITEM, /* current play item */
BD_EVENT_CHAPTER, /* current chapter, 1...N */
+ BD_EVENT_END_OF_TITLE,
/* stream selection */
BD_EVENT_AUDIO_STREAM, /* 1..32, 0xff = none */
BD_EVENT_IG_STREAM, /* 1..32 */
BD_EVENT_PG_TEXTST_STREAM, /* 1..255, 0xfff = none */
+ BD_EVENT_PIP_PG_TEXTST_STREAM, /* 1..255, 0xfff = none */
BD_EVENT_SECONDARY_AUDIO_STREAM, /* 1..32, 0xff = none */
BD_EVENT_SECONDARY_VIDEO_STREAM, /* 1..32, 0xff = none */
BD_EVENT_PG_TEXTST, /* 0 - disable, 1 - enable */
+ BD_EVENT_PIP_PG_TEXTST, /* 0 - disable, 1 - enable */
BD_EVENT_SECONDARY_AUDIO, /* 0 - disable, 1 - enable */
BD_EVENT_SECONDARY_VIDEO, /* 0 - disable, 1 - enable */
BD_EVENT_SECONDARY_VIDEO_SIZE, /* 0 - PIP, 0xf - fullscreen */
- /* Interactive Graphics */
- BD_EVENT_MENU_PAGE_ID, /* 0..0xfe */
- BD_EVENT_SELECTED_BUTTON_ID, /* 0..0x1fdf, 0xffff = invalid */
- BD_EVENT_POPUP_OFF,
- BD_EVENT_ENABLE_BUTTON, /* param: button id */
- BD_EVENT_DISABLE_BUTTON, /* param: button id */
+ /* HDMV VM or JVM seeked the stream. Next read() will return data from new position. */
+ BD_EVENT_SEEK,
- /* still */
- BD_EVENT_STILL, /* 0 - off, 1 - on */
+ /* still playback (pause) */
+ BD_EVENT_STILL, /* 0 - off, 1 - on */
+
+ /* Still playback for n seconds (reached end of still mode play item) */
+ BD_EVENT_STILL_TIME, /* 0 = infinite ; 1...300 = seconds */
} bd_event_e;
typedef struct {
- bd_event_e event;
- uint32_t param;
+ uint32_t event; /* bd_event_e */
+ uint32_t param;
} BD_EVENT;
-int bd_play(BLURAY *bd); /* start playing disc in navigation mode */
-int bd_read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event);
+/**
+ *
+ * Get event from libbluray event queue.
+ *
+ * @param bd BLURAY object
+ * @param event next BD_EVENT from event queue
+ * @return 1 on success, 0 if no events
+ */
int bd_get_event(BLURAY *bd, BD_EVENT *event);
-int bd_play_title(BLURAY *bd, unsigned title); /* play title (from disc index) */
-int bd_menu_call(BLURAY *bd); /* open disc root menu */
+/*
+ * navigaton mode
+ */
+
+/**
+ *
+ * Start playing disc in navigation mode.
+ *
+ * Playback is started from "First Play" title.
+ *
+ * @param bd BLURAY object
+ * @return 1 on success, 0 if error
+ */
+int bd_play(BLURAY *bd);
+
+/**
+ *
+ * Read from currently playing title.
+ *
+ * When playing disc in navigation mode this function must be used instead of bd_read().
+ *
+ * @param bd BLURAY object
+ * @param buf buffer to read data into
+ * @param len size of data to be read
+ * @param event next BD_EVENT from event queue (BD_EVENT_NONE if no events)
+ * @return size of data read, -1 if error, 0 if event needs to be handled first, 0 if end of title was reached
+ */
+int bd_read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event);
+
+/**
+ *
+ * Play a title (from disc index).
+ *
+ * Title 0 = Top Menu
+ * Title 0xffff = First Play title
+ * Number of titles can be found from BLURAY_DISC_INFO.
+ *
+ * @param bd BLURAY object
+ * @param title title number from disc index
+ * @return 1 on success, 0 if error
+ */
+int bd_play_title(BLURAY *bd, unsigned title);
+
+/**
+ *
+ * Open BluRay disc Top Menu.
+ *
+ * Current pts is needed for resuming playback when menu is closed.
+ *
+ * @param bd BLURAY object
+ * @param pts current playback position (1/90000s) or -1
+ * @return 1 on success, 0 if error
+ */
+int bd_menu_call(BLURAY *bd, int64_t pts);
+
+/*
+ * User interaction and On-screen display controller
+ */
+
+struct bd_overlay_s; /* defined in overlay.h */
+typedef void (*bd_overlay_proc_f)(void *, const struct bd_overlay_s * const);
+
+/**
+ *
+ * Register overlay graphics handler function.
+ *
+ * @param bd BLURAY object
+ * @param handle application-specific handle that will be passed to handler function
+ * @param func handler function pointer
+ * @return 1 on success, 0 if error
+ */
+void bd_register_overlay_proc(BLURAY *bd, void *handle, bd_overlay_proc_f func);
+
+/**
+ *
+ * Pass user input to graphics controller.
+ * Keys are defined in libbluray/keys.h.
+ * Current pts can be updated by using BD_VK_NONE key. This is required for animated menus.
+ *
+ * @param bd BLURAY object
+ * @param pts current playback position (1/90000s) or -1
+ * @param key input key
+ * @return 1 on success, 0 if error
+ */
+void bd_user_input(BLURAY *bd, int64_t pts, uint32_t key);
+
+/**
+ *
+ * Select menu button at location (x,y).
+ *
+ * @param bd BLURAY object
+ * @param pts current playback position (1/90000s) or -1
+ * @param x mouse pointer x-position
+ * @param y mouse pointer y-position
+ * @return none
+ */
+void bd_mouse_select(BLURAY *bd, int64_t pts, uint16_t x, uint16_t y);
+
+struct meta_dl;
+/**
+ *
+ * Get meta information about the bluray disc.
+ *
+ * @param bd BLURAY object
+ * @return allocated META_DL (disclib) object, NULL on error
+ */
+struct meta_dl *bd_get_meta(BLURAY *bd);
#endif /* BLURAY_H_ */
diff --git a/project/BuildDependencies/DownloadMingwBuildEnv.bat b/project/BuildDependencies/DownloadMingwBuildEnv.bat
index cd1cc39ee8..8a986b0248 100644
--- a/project/BuildDependencies/DownloadMingwBuildEnv.bat
+++ b/project/BuildDependencies/DownloadMingwBuildEnv.bat
@@ -54,10 +54,10 @@ SET NET90VARS="%VS90COMNTOOLS%..\..\VC\bin\vcvars32.bat"
SET NET100VARS="%VS100COMNTOOLS%..\..\VC\bin\vcvars32.bat"
cd %MSYS_INSTALL_PATH%
Move msys.bat msys.bat_dist
-IF EXIST %NET90VARS% (
- ECHO CALL %NET90VARS%>>msys.bat
-) ELSE IF EXIST %NET100VARS% (
+IF EXIST %NET100VARS% (
ECHO CALL %NET100VARS%>>msys.bat
+) ELSE IF EXIST %NET90VARS% (
+ ECHO CALL %NET90VARS%>>msys.bat
)
TYPE msys.bat_dist>>msys.bat
diff --git a/project/BuildDependencies/scripts/get_mingw_env.txt b/project/BuildDependencies/scripts/get_mingw_env.txt
index 95dbc71228..69ff290c0a 100644
--- a/project/BuildDependencies/scripts/get_mingw_env.txt
+++ b/project/BuildDependencies/scripts/get_mingw_env.txt
@@ -5,11 +5,11 @@ w32api-3.15-1-mingw32-dev.tar.lzma http://downloads.sourceforge.net/project/m
gcc-core-4.5.0-1-mingw32-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.5.0-1/
gcc-c++-4.5.0-1-mingw32-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.5.0-1/
libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-4.5.0-1/
-binutils-2.20.51-1-mingw32-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GNU-Binutils/binutils-2.20.51/
+binutils-2.21-2-mingw32-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GNU-Binutils/binutils-2.21/
yasm-1.1.0-win32.exe http://www.tortall.net/projects/yasm/releases/
dlfcn-win32-static-r19.tar.bz2 http://dlfcn-win32.googlecode.com/files/
libexpat-2.0.1-1-mingw32-dev.tar.gz http://downloads.sourceforge.net/project/mingw/MinGW/expat/expat-2.0.1-1/
libz-1.2.3-1-mingw32-dev.tar.gz http://downloads.sourceforge.net/project/mingw/MinGW/zlib/zlib-1.2.3-1-mingw32/
libgmp-5.0.1-1-mingw32-dll-10.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/gmp/gmp-5.0.1-1/
libmpc-0.8.1-1-mingw32-dll-2.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/mpc/mpc-0.8.1-1/
-libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/mpfr/mpfr-2.4.1-1/
+libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma http://downloads.sourceforge.net/project/mingw/MinGW/mpfr/mpfr-2.4.1-1/ \ No newline at end of file
diff --git a/project/BuildDependencies/scripts/get_msys_env.txt b/project/BuildDependencies/scripts/get_msys_env.txt
index 672639c018..8f0371ce62 100644
--- a/project/BuildDependencies/scripts/get_msys_env.txt
+++ b/project/BuildDependencies/scripts/get_msys_env.txt
@@ -1,13 +1,13 @@
; filename source of the file
-msysCORE-1.0.15-1-msys-1.0.15-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/msys-core/msys-1.0.15-1/
-msysCORE-1.0.15-1-msys-1.0.15-ext.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/msys-core/msys-1.0.15-1/
+msysCORE-1.0.16-1-msys-1.0.16-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/msys-core/msys-1.0.16-1/
+msysCORE-1.0.16-1-msys-1.0.16-ext.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/msys-core/msys-1.0.16-1/
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/regex/regex-1.20090805-2/
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/termcap/termcap-0.20050421_1-2/
gettext-0.17-2-msys-1.0.13-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/gettext/gettext-0.17-2/
libintl-0.17-2-msys-dll-8.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/gettext/gettext-0.17-2/
libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/libiconv/libiconv-1.13.1-2/
coreutils-5.97-3-msys-1.0.13-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/coreutils/coreutils-5.97-3/
-bash-3.1.17-3-msys-1.0.13-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/bash/bash-3.1.17-3/
+bash-3.1.17-4-msys-1.0.16-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/bash/bash-3.1.17-4/
rxvt-2.7.2-3-msys-1.0.14-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/rxvt/rxvt-2.7.2-3/
make-3.81-3-msys-1.0.13-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/make/make-3.81-3/
sed-4.2.1-2-msys-1.0.13-bin.tar.lzma http://downloads.sourceforge.net/project/mingw/MSYS/BaseSystem/sed/sed-4.2.1-2/
diff --git a/system/Lircmap.xml b/system/Lircmap.xml
index 5435576c55..87a52868bf 100644
--- a/system/Lircmap.xml
+++ b/system/Lircmap.xml
@@ -237,6 +237,7 @@
<eight>8</eight>
<nine>9</nine>
<zero>0</zero>
+ <subtitle>Language</subtitle>
</remote>
<remote device="Antec_Veris_RM200">
<stop>KEY_STOP</stop>
diff --git a/system/players/dvdplayer/avcodec-52.dll b/system/players/dvdplayer/avcodec-52.dll
index f1cd02cf21..ae847eeb0a 100644
--- a/system/players/dvdplayer/avcodec-52.dll
+++ b/system/players/dvdplayer/avcodec-52.dll
Binary files differ
diff --git a/system/players/dvdplayer/avformat-52.dll b/system/players/dvdplayer/avformat-52.dll
index 47701a5a78..83247ac686 100644
--- a/system/players/dvdplayer/avformat-52.dll
+++ b/system/players/dvdplayer/avformat-52.dll
Binary files differ
diff --git a/system/players/dvdplayer/avutil-50.dll b/system/players/dvdplayer/avutil-50.dll
index f648ba19ea..45c439a001 100644
--- a/system/players/dvdplayer/avutil-50.dll
+++ b/system/players/dvdplayer/avutil-50.dll
Binary files differ
diff --git a/system/players/dvdplayer/libbluray.dll b/system/players/dvdplayer/libbluray.dll
index 754fa04ccb..96447b87e0 100644
--- a/system/players/dvdplayer/libbluray.dll
+++ b/system/players/dvdplayer/libbluray.dll
Binary files differ
diff --git a/system/players/dvdplayer/libdvdcss-2.dll b/system/players/dvdplayer/libdvdcss-2.dll
index 3efd17ae85..daa6ba7ebc 100644
--- a/system/players/dvdplayer/libdvdcss-2.dll
+++ b/system/players/dvdplayer/libdvdcss-2.dll
Binary files differ
diff --git a/system/players/dvdplayer/libdvdnav.dll b/system/players/dvdplayer/libdvdnav.dll
index 265c84be26..045f8453d9 100644
--- a/system/players/dvdplayer/libdvdnav.dll
+++ b/system/players/dvdplayer/libdvdnav.dll
Binary files differ
diff --git a/system/players/dvdplayer/postproc-51.dll b/system/players/dvdplayer/postproc-51.dll
index 24b6d9f4e9..03c227532e 100644
--- a/system/players/dvdplayer/postproc-51.dll
+++ b/system/players/dvdplayer/postproc-51.dll
Binary files differ
diff --git a/system/players/dvdplayer/swscale-0.6.1.dll b/system/players/dvdplayer/swscale-0.6.1.dll
index 20aa040ac5..5efdb3e5b3 100644
--- a/system/players/dvdplayer/swscale-0.6.1.dll
+++ b/system/players/dvdplayer/swscale-0.6.1.dll
Binary files differ
diff --git a/tools/MingwBuildEnvironment/Readme.txt b/tools/MingwBuildEnvironment/Readme.txt
deleted file mode 100644
index ba0d862f28..0000000000
--- a/tools/MingwBuildEnvironment/Readme.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Mingw build environment to build ffmpeg and other libraries
-
-Installation:
-extract msys.7z to c:\
-edit c:\msys\etc\fstab if you installed it in a different directory
-edit c:\msys\msys.bat and adapt the path to vcvars32.bat (line 15)
-
-Open a shell:
-run c:\msys\msys.bat -rxvt
-
-Source:
-The environment was created like described here: http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page \ No newline at end of file
diff --git a/tools/MingwBuildEnvironment/msys.7z b/tools/MingwBuildEnvironment/msys.7z
deleted file mode 100644
index 0f2e86967d..0000000000
--- a/tools/MingwBuildEnvironment/msys.7z
+++ /dev/null
Binary files differ
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index fced9da792..e89340f80f 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -519,7 +519,7 @@ bool CApplication::Create()
#elif defined(_LINUX)
CLog::Log(LOGNOTICE, "Starting XBMC, Platform: Linux (%s, %s). Built on %s (Git:%s)", g_sysinfo.GetLinuxDistro().c_str(), g_sysinfo.GetUnameVersion().c_str(), __DATE__, GIT_REV);
#elif defined(_WIN32)
- CLog::Log(LOGNOTICE, "Starting XBMC, Platform: %s. Built on %s (SVN:%s, compiler %i)",g_sysinfo.GetKernelVersion().c_str(), __DATE__, SVN_REV, _MSC_VER);
+ CLog::Log(LOGNOTICE, "Starting XBMC, Platform: %s. Built on %s (Git:%s, compiler %i)",g_sysinfo.GetKernelVersion().c_str(), __DATE__, GIT_REV, _MSC_VER);
CLog::Log(LOGNOTICE, g_cpuInfo.getCPUModel().c_str());
CLog::Log(LOGNOTICE, CWIN32Util::GetResInfoString());
CLog::Log(LOGNOTICE, "Running with %s rights", (CWIN32Util::IsCurrentUserLocalAdministrator() == TRUE) ? "administrator" : "restricted");
@@ -1881,7 +1881,8 @@ void CApplication::RenderScreenSaver()
return;
if (m_screenSaver->ID() != "screensaver.xbmc.builtin.dim" &&
- m_screenSaver->ID() != "screensaver.xbmc.builtin.black")
+ m_screenSaver->ID() != "screensaver.xbmc.builtin.black" &&
+ m_screenSaver->ID() != "screensaver.xbmc.builtin.slideshow")
return; // nothing to do
float amount = 1.0f;
diff --git a/xbmc/GUIDialogAddonSettings.cpp b/xbmc/GUIDialogAddonSettings.cpp
index 44ea7ee3fd..c0488e0ad0 100644
--- a/xbmc/GUIDialogAddonSettings.cpp
+++ b/xbmc/GUIDialogAddonSettings.cpp
@@ -757,7 +757,7 @@ void CGUIDialogAddonSettings::CreateControls()
}
CStdString option = setting->Attribute("option");
- int iType;
+ int iType=0;
if (option.size() == 0 || option.CompareNoCase("float") == 0)
iType = SPIN_CONTROL_TYPE_FLOAT;
diff --git a/xbmc/GUISettings.cpp b/xbmc/GUISettings.cpp
index 19b748e6e6..41104df29f 100644
--- a/xbmc/GUISettings.cpp
+++ b/xbmc/GUISettings.cpp
@@ -527,6 +527,7 @@ void CGUISettings::Initialize()
AddBool(NULL, "videolibrary.seasonthumbs", 20382, true);
AddBool(vdl, "videolibrary.actorthumbs", 20402, true);
AddInt(vdl, "videolibrary.flattentvshows", 20412, 1, 0, 1, 2, SPIN_CONTROL_TEXT);
+ AddBool(NULL, "videolibrary.flattenmoviesets", 22002, false);
AddBool(vdl, "videolibrary.updateonstartup", 22000, false);
AddBool(vdl, "videolibrary.backgroundupdate", 22001, false);
AddSeparator(vdl, "videolibrary.sep3");
diff --git a/xbmc/MusicDatabase.cpp b/xbmc/MusicDatabase.cpp
index a475281f95..bdcb255035 100644
--- a/xbmc/MusicDatabase.cpp
+++ b/xbmc/MusicDatabase.cpp
@@ -2129,68 +2129,87 @@ int CMusicDatabase::Cleanup(CGUIDialogProgress *pDlgProgress)
CLog::Log(LOGNOTICE, "%s: Starting musicdatabase cleanup ..", __FUNCTION__);
// first cleanup any songs with invalid paths
- pDlgProgress->SetHeading(700);
- pDlgProgress->SetLine(0, "");
- pDlgProgress->SetLine(1, 318);
- pDlgProgress->SetLine(2, 330);
- pDlgProgress->SetPercentage(0);
- pDlgProgress->StartModal();
- pDlgProgress->ShowProgressBar(true);
-
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetHeading(700);
+ pDlgProgress->SetLine(0, "");
+ pDlgProgress->SetLine(1, 318);
+ pDlgProgress->SetLine(2, 330);
+ pDlgProgress->SetPercentage(0);
+ pDlgProgress->StartModal();
+ pDlgProgress->ShowProgressBar(true);
+ }
if (!CleanupSongs())
{
RollbackTransaction();
return ERROR_REORG_SONGS;
}
// then the albums that are not linked to a song or to albuminfo, or whose path is removed
- pDlgProgress->SetLine(1, 326);
- pDlgProgress->SetPercentage(20);
- pDlgProgress->Progress();
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetLine(1, 326);
+ pDlgProgress->SetPercentage(20);
+ pDlgProgress->Progress();
+ }
if (!CleanupAlbums())
{
RollbackTransaction();
return ERROR_REORG_ALBUM;
}
// now the paths
- pDlgProgress->SetLine(1, 324);
- pDlgProgress->SetPercentage(40);
- pDlgProgress->Progress();
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetLine(1, 324);
+ pDlgProgress->SetPercentage(40);
+ pDlgProgress->Progress();
+ }
if (!CleanupPaths() || !CleanupThumbs())
{
RollbackTransaction();
return ERROR_REORG_PATH;
}
// and finally artists + genres
- pDlgProgress->SetLine(1, 320);
- pDlgProgress->SetPercentage(60);
- pDlgProgress->Progress();
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetLine(1, 320);
+ pDlgProgress->SetPercentage(60);
+ pDlgProgress->Progress();
+ }
if (!CleanupArtists())
{
RollbackTransaction();
return ERROR_REORG_ARTIST;
}
- pDlgProgress->SetLine(1, 322);
- pDlgProgress->SetPercentage(80);
- pDlgProgress->Progress();
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetLine(1, 322);
+ pDlgProgress->SetPercentage(80);
+ pDlgProgress->Progress();
+ }
if (!CleanupGenres())
{
RollbackTransaction();
return ERROR_REORG_GENRE;
}
// commit transaction
- pDlgProgress->SetLine(1, 328);
- pDlgProgress->SetPercentage(90);
- pDlgProgress->Progress();
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetLine(1, 328);
+ pDlgProgress->SetPercentage(90);
+ pDlgProgress->Progress();
+ }
if (!CommitTransaction())
{
RollbackTransaction();
return ERROR_WRITING_CHANGES;
}
// and compress the database
- pDlgProgress->SetLine(1, 331);
- pDlgProgress->SetPercentage(100);
- pDlgProgress->Progress();
-
+ if (pDlgProgress)
+ {
+ pDlgProgress->SetLine(1, 331);
+ pDlgProgress->SetPercentage(100);
+ pDlgProgress->Progress();
+ }
time = CTimeUtils::GetTimeMS() - time;
CLog::Log(LOGNOTICE, "%s: Cleaning musicdatabase done. Operation took %s", __FUNCTION__, StringUtils::SecondsToTimeString(time / 1000).c_str());
diff --git a/xbmc/MusicDatabase.h b/xbmc/MusicDatabase.h
index 2139d28734..0a18cabf43 100644
--- a/xbmc/MusicDatabase.h
+++ b/xbmc/MusicDatabase.h
@@ -115,7 +115,7 @@ public:
virtual bool CommitTransaction();
void EmptyCache();
void Clean();
- int Cleanup(CGUIDialogProgress *pDlgProgress);
+ int Cleanup(CGUIDialogProgress *pDlgProgress=NULL);
void DeleteAlbumInfo();
bool LookupCDDBInfo(bool bRequery=false);
void DeleteCDDBInfo();
diff --git a/xbmc/VideoDatabase.cpp b/xbmc/VideoDatabase.cpp
index 6dad270dce..aeb773d7c7 100644
--- a/xbmc/VideoDatabase.cpp
+++ b/xbmc/VideoDatabase.cpp
@@ -4438,7 +4438,7 @@ bool CVideoDatabase::GetMoviesByWhere(const CStdString& strBaseDir, const CStdSt
if (NULL == m_pDS.get()) return false;
CStdString strSQL = "select * from movieview ";
- if (fetchSets)
+ if (fetchSets && !g_guiSettings.GetBool("videolibrary.flattenmoviesets"))
{
// not getting a set, so grab all sets that match this where clause first
CStdString setsWhere;
diff --git a/xbmc/addons/Skin.cpp b/xbmc/addons/Skin.cpp
index dcd1dd34e5..dc91f6e459 100644
--- a/xbmc/addons/Skin.cpp
+++ b/xbmc/addons/Skin.cpp
@@ -235,6 +235,7 @@ bool CSkinInfo::LoadStartupWindows(const cp_extension_t *ext)
m_startupWindows.push_back(CStartupWindow(WINDOW_VIDEOS, "3"));
m_startupWindows.push_back(CStartupWindow(WINDOW_FILES, "7"));
m_startupWindows.push_back(CStartupWindow(WINDOW_SETTINGS_MENU, "5"));
+ m_startupWindows.push_back(CStartupWindow(WINDOW_WEATHER, "8"));
m_onlyAnimateToHome = true;
}
else
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
index fa3dc03055..0b0089f60c 100644
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
@@ -616,8 +616,6 @@ void CLinuxRendererGL::RenderUpdate(bool clear, DWORD flags, DWORD alpha)
//since it only sets pixels to black that aren't going to be overwritten by the video
void CLinuxRendererGL::DrawBlackBars()
{
- const CRect& view = g_graphicsContext.GetViewWindow();
-
glColor4f(m_clearColour, m_clearColour, m_clearColour, 1.0f);
glDisable(GL_BLEND);
glBegin(GL_QUADS);
@@ -625,19 +623,19 @@ void CLinuxRendererGL::DrawBlackBars()
//top quad
if (m_destRect.y1 > 0.0)
{
- glVertex4f(0.0, 0.0, 0.0, 1.0);
- glVertex4f(view.Width(), 0.0, 0.0, 1.0);
- glVertex4f(view.Width(), m_destRect.y1, 0.0, 1.0);
- glVertex4f(0.0, m_destRect.y1, 0.0, 1.0);
+ glVertex4f(0.0, 0.0, 0.0, 1.0);
+ glVertex4f(g_graphicsContext.GetWidth(), 0.0, 0.0, 1.0);
+ glVertex4f(g_graphicsContext.GetWidth(), m_destRect.y1, 0.0, 1.0);
+ glVertex4f(0.0, m_destRect.y1, 0.0, 1.0);
}
//bottom quad
- if (m_destRect.y2 < view.Height())
+ if (m_destRect.y2 < g_graphicsContext.GetHeight())
{
- glVertex4f(0.0, m_destRect.y2, 0.0, 1.0);
- glVertex4f(view.Width(), m_destRect.y2, 0.0, 1.0);
- glVertex4f(view.Width(), view.Height(), 0.0, 1.0);
- glVertex4f(0.0, view.Height(), 0.0, 1.0);
+ glVertex4f(0.0, m_destRect.y2, 0.0, 1.0);
+ glVertex4f(g_graphicsContext.GetWidth(), m_destRect.y2, 0.0, 1.0);
+ glVertex4f(g_graphicsContext.GetWidth(), g_graphicsContext.GetHeight(), 0.0, 1.0);
+ glVertex4f(0.0, g_graphicsContext.GetHeight(), 0.0, 1.0);
}
//left quad
@@ -650,12 +648,12 @@ void CLinuxRendererGL::DrawBlackBars()
}
//right quad
- if (m_destRect.x2 < view.Width())
+ if (m_destRect.x2 < g_graphicsContext.GetWidth())
{
- glVertex4f(m_destRect.x2, m_destRect.y1, 0.0, 1.0);
- glVertex4f(view.Width(), m_destRect.y1, 0.0, 1.0);
- glVertex4f(view.Width(), m_destRect.y2, 0.0, 1.0);
- glVertex4f(m_destRect.x2, m_destRect.y2, 0.0, 1.0);
+ glVertex4f(m_destRect.x2, m_destRect.y1, 0.0, 1.0);
+ glVertex4f(g_graphicsContext.GetWidth(), m_destRect.y1, 0.0, 1.0);
+ glVertex4f(g_graphicsContext.GetWidth(), m_destRect.y2, 0.0, 1.0);
+ glVertex4f(m_destRect.x2, m_destRect.y2, 0.0, 1.0);
}
glEnd();
diff --git a/xbmc/cores/dvdplayer/Codecs/libdvd/build-xbmc-win32.sh b/xbmc/cores/dvdplayer/Codecs/libdvd/build-xbmc-win32.sh
index b78587476c..db39eef2d8 100644
--- a/xbmc/cores/dvdplayer/Codecs/libdvd/build-xbmc-win32.sh
+++ b/xbmc/cores/dvdplayer/Codecs/libdvd/build-xbmc-win32.sh
@@ -5,6 +5,7 @@ cd libdvdcss
echo "***** Cleaning libdvdcss *****"
make distclean
echo "***** Building libdvdcss *****"
+sh bootstrap
./configure \
CFLAGS="-DNDEBUG" \
--disable-doc \
diff --git a/xbmc/linux/LinuxTimezone.cpp b/xbmc/linux/LinuxTimezone.cpp
index d35a9c0bc2..191d5306b6 100644
--- a/xbmc/linux/LinuxTimezone.cpp
+++ b/xbmc/linux/LinuxTimezone.cpp
@@ -155,6 +155,21 @@ void CLinuxTimezone::SetTimezone(CStdString timezoneName)
CStdString CLinuxTimezone::GetOSConfiguredTimezone()
{
char timezoneName[255];
+
+ // try Slackware approach first
+ ssize_t rlrc = readlink("/etc/localtime-copied-from"
+ , timezoneName, sizeof(timezoneName));
+ if (rlrc != -1)
+ {
+ timezoneName[rlrc] = '\0';
+
+ const char* p = strrchr(timezoneName+rlrc,'/');
+ if (p)
+ p = strrchr(p-1,'/')+1;
+ return p;
+ }
+
+ // now try Debian approach
timezoneName[0] = 0;
FILE* fp = fopen("/etc/timezone", "r");
if (fp)
diff --git a/xbmc/utils/Builtins.cpp b/xbmc/utils/Builtins.cpp
index ccab0ff502..12bd141587 100644
--- a/xbmc/utils/Builtins.cpp
+++ b/xbmc/utils/Builtins.cpp
@@ -33,6 +33,7 @@
#include "GUIDialogKeyboard.h"
#include "GUIDialogMusicScan.h"
#include "GUIDialogNumeric.h"
+#include "GUIDialogProgress.h"
#include "GUIDialogVideoScan.h"
#include "GUIDialogYesNo.h"
#include "GUIUserMessages.h"
@@ -162,7 +163,7 @@ const BUILT_IN commands[] = {
{ "Resolution", true, "Change XBMC's Resolution" },
{ "SetFocus", true, "Change current focus to a different control id" },
{ "UpdateLibrary", true, "Update the selected library (music or video)" },
- { "CleanLibrary", true, "Clean the video library" },
+ { "CleanLibrary", true, "Clean the video/music library" },
{ "ExportLibrary", true, "Export the video/music library" },
{ "PageDown", true, "Send a page down event to the pagecontrol with given id" },
{ "PageUp", true, "Send a page up event to the pagecontrol with given id" },
@@ -1136,18 +1137,38 @@ int CBuiltins::Execute(const CStdString& execString)
}
else if (execute.Equals("cleanlibrary"))
{
- CGUIDialogVideoScan *scanner = (CGUIDialogVideoScan *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_SCAN);
- if (scanner)
+ if (!params.size() || params[0].Equals("video"))
{
- if (!scanner->IsScanning())
+ CGUIDialogVideoScan *scanner = (CGUIDialogVideoScan *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_SCAN);
+ if (scanner)
{
- CVideoDatabase videodatabase;
- videodatabase.Open();
- videodatabase.CleanDatabase();
- videodatabase.Close();
+ if (!scanner->IsScanning())
+ {
+ CVideoDatabase videodatabase;
+ videodatabase.Open();
+ videodatabase.CleanDatabase();
+ videodatabase.Close();
+ }
+ else
+ CLog::Log(LOGERROR, "XBMC.CleanLibrary is not possible while scanning for media info");
+ }
+ }
+ else if (params[0].Equals("music"))
+ {
+ CGUIDialogMusicScan *scanner = (CGUIDialogMusicScan *)g_windowManager.GetWindow(WINDOW_DIALOG_MUSIC_SCAN);
+ if (scanner)
+ {
+ if (!scanner->IsScanning())
+ {
+ CMusicDatabase musicdatabase;
+
+ musicdatabase.Open();
+ musicdatabase.Cleanup();
+ musicdatabase.Close();
+ }
+ else
+ CLog::Log(LOGERROR, "XBMC.CleanLibrary is not possible while scanning for media info");
}
- else
- CLog::Log(LOGERROR, "XBMC.CleanLibrary is not possible while scanning for media info");
}
}
else if (execute.Equals("exportlibrary"))
diff --git a/xbmc/utils/WebServer.cpp b/xbmc/utils/WebServer.cpp
index 0fd19d0162..ef943b4772 100644
--- a/xbmc/utils/WebServer.cpp
+++ b/xbmc/utils/WebServer.cpp
@@ -146,13 +146,53 @@ int CWebServer::AnswerToConnection(void *cls, struct MHD_Connection *connection,
}
#ifdef HAS_WEB_INTERFACE
+ AddonPtr addon;
+ CStdString addonPath;
+ bool useDefaultWebInterface = true;
+ if (strURL.Left(8).Equals("/addons/") || (strURL == "/addons"))
+ {
+ CStdStringArray components;
+ CUtil::Tokenize(strURL,components,"/");
+ if (components.size() > 1)
+ {
+ CAddonMgr::Get().GetAddon(components.at(1),addon);
+ if (addon)
+ {
+ size_t pos;
+ pos = strURL.find('/', 8); // /addons/ = 8 characters +1 to start behind the last slash
+ if (pos != CStdString::npos)
+ strURL = strURL.substr(pos);
+ else // missing trailing slash
+ return CreateRedirect(connection, originalURL += "/");
+
+ useDefaultWebInterface = false;
+ addonPath = addon->Path();
+ if (addon->Type() != ADDON_WEB_INTERFACE) // No need to append /htdocs for web interfaces
+ addonPath = CUtil::AddFileToFolder(addonPath, "/htdocs/");
+ }
+ }
+ else
+ {
+ if (strURL.length() < 8) // missing trailing slash
+ return CreateRedirect(connection, originalURL += "/");
+ else
+ return CreateAddonsListResponse(connection);
+ }
+ }
+
if (strURL.Equals("/"))
strURL.Format("/%s", DEFAULT_PAGE);
- AddonPtr addon;
- CAddonMgr::Get().GetDefault(ADDON_WEB_INTERFACE,addon);
+ if (useDefaultWebInterface)
+ {
+ CAddonMgr::Get().GetDefault(ADDON_WEB_INTERFACE,addon);
+ if (addon)
+ addonPath = addon->Path();
+ }
+
if (addon)
- strURL = CUtil::AddFileToFolder(addon->Path(),strURL);
+ strURL = CUtil::AddFileToFolder(addonPath,strURL);
+
if (CDirectory::Exists(strURL))
{
if (strURL.Right(1).Equals("/"))
@@ -332,6 +372,26 @@ int CWebServer::CreateMemoryDownloadResponse(struct MHD_Connection *connection,
return ret;
}
+int CWebServer::CreateAddonsListResponse(struct MHD_Connection *connection)
+{
+ CStdString responseData = "<html><head><title>Add-on List</title></head><body>\n<h1>Available web interfaces:</h1>\n<ul>\n";
+ VECADDONS addons;
+ CAddonMgr::Get().GetAddons(ADDON_WEB_INTERFACE, addons);
+ IVECADDONS addons_it;
+ for (addons_it=addons.begin(); addons_it!=addons.end(); addons_it++)
+ responseData += "<li><a href=/addons/"+ (*addons_it)->ID() + "/>" + (*addons_it)->Name() + "</a></li>\n";
+
+ responseData += "</ul>\n</body></html>";
+
+ struct MHD_Response *response = MHD_create_response_from_data (responseData.length(), (void *)responseData.c_str(), MHD_NO, MHD_YES);
+ if (!response)
+ return MHD_NO;
+
+ int ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
+ MHD_destroy_response (response);
+ return ret;
+}
+
#if (MHD_VERSION >= 0x00090200)
ssize_t CWebServer::ContentReaderCallback (void *cls, uint64_t pos, char *buf, size_t max)
#elif (MHD_VERSION >= 0x00040001)
diff --git a/xbmc/utils/WebServer.h b/xbmc/utils/WebServer.h
index fa3fe44fd6..d2d2739403 100644
--- a/xbmc/utils/WebServer.h
+++ b/xbmc/utils/WebServer.h
@@ -93,6 +93,7 @@ private:
static int CreateFileDownloadResponse(struct MHD_Connection *connection, const CStdString &strURL, HTTPMethod methodType);
static int CreateErrorResponse(struct MHD_Connection *connection, int responseType, HTTPMethod method);
static int CreateMemoryDownloadResponse(struct MHD_Connection *connection, void *data, size_t size);
+ static int CreateAddonsListResponse(struct MHD_Connection *connection);
static int FillArgumentMap(void *cls, enum MHD_ValueKind kind, const char *key, const char *value);
static void StringToBase64(const char *input, CStdString &output);