diff options
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 & resimler & müzik</string> <string id="1235">Programlar & resimler & 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 Binary files differindex f1cd02cf21..ae847eeb0a 100644 --- a/system/players/dvdplayer/avcodec-52.dll +++ b/system/players/dvdplayer/avcodec-52.dll diff --git a/system/players/dvdplayer/avformat-52.dll b/system/players/dvdplayer/avformat-52.dll Binary files differindex 47701a5a78..83247ac686 100644 --- a/system/players/dvdplayer/avformat-52.dll +++ b/system/players/dvdplayer/avformat-52.dll diff --git a/system/players/dvdplayer/avutil-50.dll b/system/players/dvdplayer/avutil-50.dll Binary files differindex f648ba19ea..45c439a001 100644 --- a/system/players/dvdplayer/avutil-50.dll +++ b/system/players/dvdplayer/avutil-50.dll diff --git a/system/players/dvdplayer/libbluray.dll b/system/players/dvdplayer/libbluray.dll Binary files differindex 754fa04ccb..96447b87e0 100644 --- a/system/players/dvdplayer/libbluray.dll +++ b/system/players/dvdplayer/libbluray.dll diff --git a/system/players/dvdplayer/libdvdcss-2.dll b/system/players/dvdplayer/libdvdcss-2.dll Binary files differindex 3efd17ae85..daa6ba7ebc 100644 --- a/system/players/dvdplayer/libdvdcss-2.dll +++ b/system/players/dvdplayer/libdvdcss-2.dll diff --git a/system/players/dvdplayer/libdvdnav.dll b/system/players/dvdplayer/libdvdnav.dll Binary files differindex 265c84be26..045f8453d9 100644 --- a/system/players/dvdplayer/libdvdnav.dll +++ b/system/players/dvdplayer/libdvdnav.dll diff --git a/system/players/dvdplayer/postproc-51.dll b/system/players/dvdplayer/postproc-51.dll Binary files differindex 24b6d9f4e9..03c227532e 100644 --- a/system/players/dvdplayer/postproc-51.dll +++ b/system/players/dvdplayer/postproc-51.dll diff --git a/system/players/dvdplayer/swscale-0.6.1.dll b/system/players/dvdplayer/swscale-0.6.1.dll Binary files differindex 20aa040ac5..5efdb3e5b3 100644 --- a/system/players/dvdplayer/swscale-0.6.1.dll +++ b/system/players/dvdplayer/swscale-0.6.1.dll 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 Binary files differdeleted file mode 100644 index 0f2e86967d..0000000000 --- a/tools/MingwBuildEnvironment/msys.7z +++ /dev/null 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); |