diff options
51 files changed, 116 insertions, 114 deletions
diff --git a/.gitignore b/.gitignore index 425a541d75..b51cbca70a 100644 --- a/.gitignore +++ b/.gitignore @@ -145,6 +145,7 @@ config.log /lib/addons/library.xbmc.codec/project/VS2010Express/Debug /lib/addons/library.xbmc.pvr/project/VS2010Express/Release /lib/addons/library.xbmc.pvr/project/VS2010Express/Debug +/lib/addons/library.kodi.audioengine/Makefile /lib/addons/library.kodi.audioengine/project/VS2010Express/Release/ /lib/addons/library.kodi.audioengine/project/VS2010Express/Debug/ diff --git a/addons/skin.confluence/720p/AddonBrowser.xml b/addons/skin.confluence/720p/AddonBrowser.xml index 47578eaaed..d7b681f401 100644 --- a/addons/skin.confluence/720p/AddonBrowser.xml +++ b/addons/skin.confluence/720p/AddonBrowser.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,550,551</views> <controls> diff --git a/addons/skin.confluence/720p/DialogAlbumInfo.xml b/addons/skin.confluence/720p/DialogAlbumInfo.xml index c8a3bef813..56f82a8eba 100644 --- a/addons/skin.confluence/720p/DialogAlbumInfo.xml +++ b/addons/skin.confluence/720p/DialogAlbumInfo.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">5</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="group"> <visible>!Window.IsVisible(FileBrowser)</visible> diff --git a/addons/skin.confluence/720p/DialogAudioDSPManager.xml b/addons/skin.confluence/720p/DialogAudioDSPManager.xml index 965ff7e7d9..62cedc76bf 100644 --- a/addons/skin.confluence/720p/DialogAudioDSPManager.xml +++ b/addons/skin.confluence/720p/DialogAudioDSPManager.xml @@ -3,7 +3,6 @@ <zorder>1</zorder> <defaultcontrol>9000</defaultcontrol> <include>dialogeffect</include> - <allowoverlay>no</allowoverlay> <coordinates> <left>40</left> <top>40</top> diff --git a/addons/skin.confluence/720p/DialogPVRChannelManager.xml b/addons/skin.confluence/720p/DialogPVRChannelManager.xml index b122979407..d81bf97aaa 100644 --- a/addons/skin.confluence/720p/DialogPVRChannelManager.xml +++ b/addons/skin.confluence/720p/DialogPVRChannelManager.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">20</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>80</left> <top>65</top> diff --git a/addons/skin.confluence/720p/DialogVideoInfo.xml b/addons/skin.confluence/720p/DialogVideoInfo.xml index 9479c0dc3c..c60ff901a2 100644 --- a/addons/skin.confluence/720p/DialogVideoInfo.xml +++ b/addons/skin.confluence/720p/DialogVideoInfo.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">8</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="group"> <visible>!Window.IsVisible(FileBrowser)</visible> diff --git a/addons/skin.confluence/720p/EventLog.xml b/addons/skin.confluence/720p/EventLog.xml index 58821cefc7..5e6c074a6a 100644 --- a/addons/skin.confluence/720p/EventLog.xml +++ b/addons/skin.confluence/720p/EventLog.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">570</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>570</views> <controls> diff --git a/addons/skin.confluence/720p/FileBrowser.xml b/addons/skin.confluence/720p/FileBrowser.xml index 83995fd008..be0bdb0b6c 100644 --- a/addons/skin.confluence/720p/FileBrowser.xml +++ b/addons/skin.confluence/720p/FileBrowser.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">450</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>0</left> <top>0</top> diff --git a/addons/skin.confluence/720p/FileManager.xml b/addons/skin.confluence/720p/FileManager.xml index 2bf396ec98..8c1c157ade 100644 --- a/addons/skin.confluence/720p/FileManager.xml +++ b/addons/skin.confluence/720p/FileManager.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol>20</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/Home.xml b/addons/skin.confluence/720p/Home.xml index e08cb1c9c0..63394e6fad 100644 --- a/addons/skin.confluence/720p/Home.xml +++ b/addons/skin.confluence/720p/Home.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9000</defaultcontrol> - <allowoverlay>no</allowoverlay> <onunload condition="Container(9000).Hasfocus(10) | Container(9000).Hasfocus(11) | ControlGroup(9010).HasFocus | ControlGroup(9016).HasFocus | ControlGroup(9017).HasFocus">SetProperty(VideosDirectLink,True)</onunload> <onunload condition="ControlGroup(9011).HasFocus">SetProperty(MusicDirectLink,True)</onunload> <onunload condition="Control.HasFocus(9000) + Container(9000).Hasfocus(2)">ClearProperty(VideosDirectLink)</onunload> diff --git a/addons/skin.confluence/720p/LoginScreen.xml b/addons/skin.confluence/720p/LoginScreen.xml index 869da79b0a..636df255ba 100644 --- a/addons/skin.confluence/720p/LoginScreen.xml +++ b/addons/skin.confluence/720p/LoginScreen.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">52</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>0</left> <top>0</top> diff --git a/addons/skin.confluence/720p/MusicVisualisation.xml b/addons/skin.confluence/720p/MusicVisualisation.xml index 00c183fee3..3b97ac73b5 100644 --- a/addons/skin.confluence/720p/MusicVisualisation.xml +++ b/addons/skin.confluence/720p/MusicVisualisation.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol>-</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="visualisation" id="2"> <!-- FIX ME Music Visualization needs to have an id of 2 in this window to be able to lock or change preset --> diff --git a/addons/skin.confluence/720p/MyMusicNav.xml b/addons/skin.confluence/720p/MyMusicNav.xml index 1c77ae3edc..e5ce705d05 100644 --- a/addons/skin.confluence/720p/MyMusicNav.xml +++ b/addons/skin.confluence/720p/MyMusicNav.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,500,550,551,509,506,511,512,513</views> <controls> diff --git a/addons/skin.confluence/720p/MyMusicPlaylist.xml b/addons/skin.confluence/720p/MyMusicPlaylist.xml index 70daf9b601..cdf36e6bc8 100644 --- a/addons/skin.confluence/720p/MyMusicPlaylist.xml +++ b/addons/skin.confluence/720p/MyMusicPlaylist.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,506</views> <controls> diff --git a/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml b/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml index 110d1f27a1..4a84581d8a 100644 --- a/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml +++ b/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">6</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="group"> diff --git a/addons/skin.confluence/720p/MyPVRChannels.xml b/addons/skin.confluence/720p/MyPVRChannels.xml index fcc5e0c83b..64791e4cfc 100644 --- a/addons/skin.confluence/720p/MyPVRChannels.xml +++ b/addons/skin.confluence/720p/MyPVRChannels.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50,51</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRGuide.xml b/addons/skin.confluence/720p/MyPVRGuide.xml index a1dd2a7225..51858c066f 100644 --- a/addons/skin.confluence/720p/MyPVRGuide.xml +++ b/addons/skin.confluence/720p/MyPVRGuide.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">10</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>10,11,12,13</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRRecordings.xml b/addons/skin.confluence/720p/MyPVRRecordings.xml index b517e6864e..f5a102746e 100644 --- a/addons/skin.confluence/720p/MyPVRRecordings.xml +++ b/addons/skin.confluence/720p/MyPVRRecordings.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRSearch.xml b/addons/skin.confluence/720p/MyPVRSearch.xml index 417a684c31..7fe84d4d92 100644 --- a/addons/skin.confluence/720p/MyPVRSearch.xml +++ b/addons/skin.confluence/720p/MyPVRSearch.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPVRTimers.xml b/addons/skin.confluence/720p/MyPVRTimers.xml index a20d2352e9..1b477ad887 100644 --- a/addons/skin.confluence/720p/MyPVRTimers.xml +++ b/addons/skin.confluence/720p/MyPVRTimers.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50</views> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/MyPics.xml b/addons/skin.confluence/720p/MyPics.xml index b84fc2f9b4..4d97566c41 100644 --- a/addons/skin.confluence/720p/MyPics.xml +++ b/addons/skin.confluence/720p/MyPics.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,550,551,500,514,510</views> <controls> diff --git a/addons/skin.confluence/720p/MyPrograms.xml b/addons/skin.confluence/720p/MyPrograms.xml index cc5bd98f65..607a05719f 100644 --- a/addons/skin.confluence/720p/MyPrograms.xml +++ b/addons/skin.confluence/720p/MyPrograms.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51,500,550,551</views> <controls> diff --git a/addons/skin.confluence/720p/MyVideoNav.xml b/addons/skin.confluence/720p/MyVideoNav.xml index cd5ff0e231..e41d6b7e43 100644 --- a/addons/skin.confluence/720p/MyVideoNav.xml +++ b/addons/skin.confluence/720p/MyVideoNav.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <views>50,51,500,550,551,560,501,508,504,503,515,505,511</views> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <controls> diff --git a/addons/skin.confluence/720p/MyVideoPlaylist.xml b/addons/skin.confluence/720p/MyVideoPlaylist.xml index b70ac5b022..e9cf5b9cf9 100644 --- a/addons/skin.confluence/720p/MyVideoPlaylist.xml +++ b/addons/skin.confluence/720p/MyVideoPlaylist.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <views>50,51</views> <controls> diff --git a/addons/skin.confluence/720p/MyWeather.xml b/addons/skin.confluence/720p/MyWeather.xml index ce2531a316..425b0f66f6 100644 --- a/addons/skin.confluence/720p/MyWeather.xml +++ b/addons/skin.confluence/720p/MyWeather.xml @@ -2,7 +2,6 @@ <window> <defaultcontrol always="true">50</defaultcontrol> <menucontrol>9000</menucontrol> - <allowoverlay>no</allowoverlay> <onload condition="!Skin.HasSetting(FirstTimeRun)">ActivateWindow(1112)</onload> <controls> <include>CommonBackground</include> diff --git a/addons/skin.confluence/720p/Settings.xml b/addons/skin.confluence/720p/Settings.xml index e2332758f5..295ebfe52b 100644 --- a/addons/skin.confluence/720p/Settings.xml +++ b/addons/skin.confluence/720p/Settings.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9000</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SettingsCategory.xml b/addons/skin.confluence/720p/SettingsCategory.xml index 857f7b6a8f..cd8a9050f3 100644 --- a/addons/skin.confluence/720p/SettingsCategory.xml +++ b/addons/skin.confluence/720p/SettingsCategory.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol>3</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SettingsProfile.xml b/addons/skin.confluence/720p/SettingsProfile.xml index 2cda4cd555..536730d57f 100644 --- a/addons/skin.confluence/720p/SettingsProfile.xml +++ b/addons/skin.confluence/720p/SettingsProfile.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9000</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SettingsSystemInfo.xml b/addons/skin.confluence/720p/SettingsSystemInfo.xml index 0c9284d6bc..fd9fa1cc5e 100644 --- a/addons/skin.confluence/720p/SettingsSystemInfo.xml +++ b/addons/skin.confluence/720p/SettingsSystemInfo.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">95</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="image"> diff --git a/addons/skin.confluence/720p/SmartPlaylistEditor.xml b/addons/skin.confluence/720p/SmartPlaylistEditor.xml index 4a924a7702..a35252433b 100644 --- a/addons/skin.confluence/720p/SmartPlaylistEditor.xml +++ b/addons/skin.confluence/720p/SmartPlaylistEditor.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">22</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>240</left> <top>22</top> diff --git a/addons/skin.confluence/720p/SmartPlaylistRule.xml b/addons/skin.confluence/720p/SmartPlaylistRule.xml index ecaca05a8c..fdc89f4f62 100644 --- a/addons/skin.confluence/720p/SmartPlaylistRule.xml +++ b/addons/skin.confluence/720p/SmartPlaylistRule.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">9001</defaultcontrol> - <allowoverlay>no</allowoverlay> <coordinates> <left>240</left> <top>220</top> diff --git a/addons/skin.confluence/720p/Startup.xml b/addons/skin.confluence/720p/Startup.xml index 455f71fe19..c8b81856ad 100644 --- a/addons/skin.confluence/720p/Startup.xml +++ b/addons/skin.confluence/720p/Startup.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <window> <defaultcontrol always="true">10</defaultcontrol> - <allowoverlay>no</allowoverlay> <controls> <control type="button" id="10"> <description>trigger</description> diff --git a/addons/skin.confluence/720p/script-NextAired-TVGuide.xml b/addons/skin.confluence/720p/script-NextAired-TVGuide.xml index 9b96d728ca..27e1093408 100644 --- a/addons/skin.confluence/720p/script-NextAired-TVGuide.xml +++ b/addons/skin.confluence/720p/script-NextAired-TVGuide.xml @@ -7,7 +7,6 @@ <onload>ClearProperty(TVGuide.FridayList,Home)</onload> <onload>ClearProperty(TVGuide.SaturdayList,Home)</onload> <onload>ClearProperty(TVGuide.SundayList,Home)</onload> - <allowoverlay>no</allowoverlay> <controls> <include>CommonBackground</include> <control type="group"> diff --git a/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml b/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml index 3b9c6fce47..f7ba7b5431 100644 --- a/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml +++ b/addons/skin.confluence/720p/script-cu-lrclyrics-main.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <window> - <allowoverlay>no</allowoverlay> <coordinates> <left>680</left> <top>0</top> diff --git a/addons/skin.confluence/720p/script-globalsearch-main.xml b/addons/skin.confluence/720p/script-globalsearch-main.xml index 75fad30293..9809708348 100644 --- a/addons/skin.confluence/720p/script-globalsearch-main.xml +++ b/addons/skin.confluence/720p/script-globalsearch-main.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <window> - <allowoverlay>no</allowoverlay> <coordinates> <left>0</left> <top>0</top> diff --git a/tools/buildsteps/android/package b/tools/buildsteps/android/package index cbbfb731c7..efcaab86fb 100644 --- a/tools/buildsteps/android/package +++ b/tools/buildsteps/android/package @@ -18,4 +18,4 @@ if [ -f *.obb ] then mv *.obb $UPLOAD_FILENAME.obb fi -mv tools/android/packaging/Kodi.symbols*.tar.bz2 $ANDROID_DEV_ROOT/debug-symbols/ +mv tools/android/packaging/Kodi.symbols*.tar.bz2 $WORKSPACE/ diff --git a/tools/buildsteps/androidx86/package b/tools/buildsteps/androidx86/package index f7fed28eec..212ffc3b39 100644 --- a/tools/buildsteps/androidx86/package +++ b/tools/buildsteps/androidx86/package @@ -18,3 +18,4 @@ if [ -f *.obb ] then mv *.obb $UPLOAD_FILENAME.obb fi +mv tools/android/packaging/Kodi.symbols*.tar.bz2 $WORKSPACE/ diff --git a/xbmc/addons/AddonDatabase.cpp b/xbmc/addons/AddonDatabase.cpp index e68259fc9d..c1ff8c49e9 100644 --- a/xbmc/addons/AddonDatabase.cpp +++ b/xbmc/addons/AddonDatabase.cpp @@ -462,11 +462,14 @@ int CAddonDatabase::AddRepository(const std::string& id, const VECADDONS& addons if (idRepo > -1) DeleteRepository(idRepo); + if (!SetLastChecked(id, version, CDateTime::GetCurrentDateTime().GetAsDBDateTime())) + return -1; + BeginTransaction(); - CDateTime time = CDateTime::GetCurrentDateTime(); - sql = PrepareSQL("insert into repo (id,addonID,checksum,lastcheck,version) values (NULL,'%s','%s','%s','%s')", - id.c_str(), checksum.c_str(), time.GetAsDBDateTime().c_str(), version.asString().c_str()); + sql = PrepareSQL("UPDATE repo SET checksum='%s', version='%s' WHERE addonID='%s'", + checksum.c_str(), version.asString().c_str(), id.c_str()); + m_pDS->exec(sql); idRepo = (int)m_pDS->lastinsertid(); for (unsigned int i=0;i<addons.size();++i) @@ -539,10 +542,17 @@ bool CAddonDatabase::SetLastChecked(const std::string& id, if (NULL == m_pDB.get()) return false; if (NULL == m_pDS.get()) return false; - std::string sql = PrepareSQL("UPDATE repo SET lastcheck='%s', version='%s' WHERE addonID='%s'", - time.c_str(), version.asString().c_str(), id.c_str()); - m_pDS->exec(sql); + std::string sql = PrepareSQL("SELECT * FROM repo WHERE addonID='%s'", id.c_str()); + m_pDS->query(sql); + if (m_pDS->eof()) + sql = PrepareSQL("INSERT INTO repo (id, addonID, lastcheck, version) " + "VALUES (NULL, '%s', '%s', '%s')", id.c_str(), time.c_str(), version.asString().c_str()); + else + sql = PrepareSQL("UPDATE repo SET lastcheck='%s', version='%s' WHERE addonID='%s'", + time.c_str(), version.asString().c_str(), id.c_str()); + + m_pDS->exec(sql); return true; } catch (...) diff --git a/xbmc/addons/Repository.cpp b/xbmc/addons/Repository.cpp index 3ba0fab87a..efac86ea9e 100644 --- a/xbmc/addons/Repository.cpp +++ b/xbmc/addons/Repository.cpp @@ -217,7 +217,7 @@ bool CRepositoryUpdateJob::DoWork() database.Open(); std::string oldChecksum; - if (!database.GetRepoChecksum(m_repo->ID(), oldChecksum)) + if (database.GetRepoChecksum(m_repo->ID(), oldChecksum) == -1) oldChecksum = ""; std::string newChecksum; diff --git a/xbmc/addons/RepositoryUpdater.cpp b/xbmc/addons/RepositoryUpdater.cpp index 6fc3c52bcc..5e9a520043 100644 --- a/xbmc/addons/RepositoryUpdater.cpp +++ b/xbmc/addons/RepositoryUpdater.cpp @@ -178,10 +178,12 @@ void CRepositoryUpdater::ScheduleUpdate() if (!CAddonMgr::GetInstance().HasAddons(ADDON_REPOSITORY)) return; - auto next = std::max(CDateTime::GetCurrentDateTime(), LastUpdated() + interval); + auto prev = LastUpdated(); + auto next = std::max(CDateTime::GetCurrentDateTime(), prev + interval); int delta = std::max(1, (next - CDateTime::GetCurrentDateTime()).GetSecondsTotal() * 1000); - CLog::Log(LOGDEBUG,"CRepositoryUpdater: next update at %s", next.GetAsLocalizedDateTime().c_str()); + CLog::Log(LOGDEBUG,"CRepositoryUpdater: previous update at %s, next at %s", + prev.GetAsLocalizedDateTime().c_str(), next.GetAsLocalizedDateTime().c_str()); if (!m_timer.Start(delta)) CLog::Log(LOGERROR,"CRepositoryUpdater: failed to start timer"); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp index 06f81c895c..dca4bdf0d1 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp @@ -243,14 +243,17 @@ CDVDOverlay* CDVDOverlayCodecFFmpeg::GetOverlay() m_height = m_pCodecContext->height; m_width = m_pCodecContext->width; - // ETSI EN 300 743 V1.3.1 - // 5.3.1 - // Absence of a DDS in a stream implies that the stream is coded in accordance with EN 300 743 (V1.2.1) [5] and that a - // display width of 720 pixels and a display height of 576 lines may be assumed. - if (!m_height && !m_width) + if (m_pCodecContext->codec_id == AV_CODEC_ID_DVB_SUBTITLE) { - m_width = 720; - m_height = 576; + // ETSI EN 300 743 V1.3.1 + // 5.3.1 + // Absence of a DDS in a stream implies that the stream is coded in accordance with EN 300 743 (V1.2.1) [5] and that a + // display width of 720 pixels and a display height of 576 lines may be assumed. + if (!m_height && !m_width) + { + m_width = 720; + m_height = 576; + } } RENDER_STEREO_MODE render_stereo_mode = g_graphicsContext.GetStereoMode(); diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp index 5a838fda52..2e7ad75c53 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -4784,7 +4784,6 @@ bool CDVDPlayer::SwitchChannel(const CPVRChannelPtr &channel) bool CDVDPlayer::CachePVRStream(void) const { return m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER) && - (!g_PVRManager.IsPlayingRecording() || - (m_item.HasPVRRecordingInfoTag() && m_item.GetPVRRecordingInfoTag()->IsBeingRecorded()))&& + !g_PVRManager.IsPlayingRecording() && g_advancedSettings.m_bPVRCacheInDvdPlayer; } diff --git a/xbmc/filesystem/win32/Win32File.cpp b/xbmc/filesystem/win32/Win32File.cpp index 4cc4d930a0..9b34595c18 100644 --- a/xbmc/filesystem/win32/Win32File.cpp +++ b/xbmc/filesystem/win32/Win32File.cpp @@ -465,6 +465,12 @@ int CWin32File::Stat(const CURL& url, struct __stat64* statData) return -1; std::wstring pathnameW(CWIN32Util::ConvertPathToWin32Form(url)); + if (pathnameW.empty()) + { + errno = ENOENT; + return -1; + } + if (pathnameW.length() <= 6) // 6 is length of "\\?\x:" return -1; // pathnameW is empty or points to device ("\\?\x:"), on win32 stat() for devices is not supported diff --git a/xbmc/guilib/GUIControlGroupList.cpp b/xbmc/guilib/GUIControlGroupList.cpp index 7a89fcd5f5..9f6a1cbe55 100644 --- a/xbmc/guilib/GUIControlGroupList.cpp +++ b/xbmc/guilib/GUIControlGroupList.cpp @@ -81,15 +81,17 @@ void CGUIControlGroupList::Process(unsigned int currentTime, CDirtyRegionList &d g_graphicsContext.SetOrigin(m_posX + pos - m_scroller.GetValue(), m_posY); control->DoProcess(currentTime, dirtyregions); - if (IsControlOnScreen(pos, control)) + if (control->IsVisible()) { - if (control->HasFocus()) - m_focusedPosition = index; - index++; - } + if (IsControlOnScreen(pos, control)) + { + if (control->HasFocus()) + m_focusedPosition = index; + index++; + } - if (control->IsVisible()) pos += Size(control) + m_itemGap; + } g_graphicsContext.RestoreOrigin(); } CGUIControl::Process(currentTime, dirtyregions); diff --git a/xbmc/guilib/GUIIncludes.cpp b/xbmc/guilib/GUIIncludes.cpp index 3decd4dddd..de1758395b 100644 --- a/xbmc/guilib/GUIIncludes.cpp +++ b/xbmc/guilib/GUIIncludes.cpp @@ -82,6 +82,7 @@ CGUIIncludes::CGUIIncludes() m_constantNodes.insert("timeperimage"); m_constantNodes.insert("fadetime"); m_constantNodes.insert("pauseatend"); + m_constantNodes.insert("depth"); } CGUIIncludes::~CGUIIncludes() diff --git a/xbmc/interfaces/builtins/LibraryBuiltins.cpp b/xbmc/interfaces/builtins/LibraryBuiltins.cpp index e5a21579cf..3361003975 100644 --- a/xbmc/interfaces/builtins/LibraryBuiltins.cpp +++ b/xbmc/interfaces/builtins/LibraryBuiltins.cpp @@ -106,7 +106,7 @@ static int ExportLibrary(const std::vector<std::string>& params) thumbs = StringUtils::EqualsNoCase(params[2], "true"); else { - HELPERS::DialogResponse result = HELPERS::ShowYesNoDialogText(CVariant{iHeading}, CVariant{20430}, CVariant{20428}, CVariant{20429}); + HELPERS::DialogResponse result = HELPERS::ShowYesNoDialogText(CVariant{iHeading}, CVariant{20430}); cancelled = result == HELPERS::DialogResponse::CANCELLED; thumbs = result == HELPERS::DialogResponse::YES; } @@ -147,7 +147,7 @@ static int ExportLibrary(const std::vector<std::string>& params) if (params.size() > 2) path=params[2]; - if (singleFile || !path.empty() || + if (singleFile && !path.empty() || CGUIDialogFileBrowser::ShowAndGetDirectory(shares, g_localizeStrings.Get(661), path, true)) { diff --git a/xbmc/music/MusicDatabase.cpp b/xbmc/music/MusicDatabase.cpp index a0b32b3217..91be41e093 100644 --- a/xbmc/music/MusicDatabase.cpp +++ b/xbmc/music/MusicDatabase.cpp @@ -2079,7 +2079,7 @@ bool CMusicDatabase::GetTop100AlbumSongs(const std::string& strBaseDir, CFileIte if (!strBaseDir.empty() && baseUrl.FromString(strBaseDir)) return false; - std::string strSQL = StringUtils::Format("select * from songview join albumview on (songview.idAlbum = albumview.idAlbum) where albumview.idAlbum in (select song.idAlbum from song where song.iTimesPlayed>0 group by idAlbum order by sum(song.iTimesPlayed) desc limit 100) order by albumview.idAlbum in (select song.idAlbum from song where song.iTimesPlayed>0 group by idAlbum order by sum(song.iTimesPlayed) desc limit 100)"); + std::string strSQL = StringUtils::Format("SELECT songview.*, albumview.* FROM songview JOIN albumview ON (songview.idAlbum = albumview.idAlbum) JOIN (SELECT song.idAlbum, SUM(song.iTimesPlayed) AS iTimesPlayedSum FROM song WHERE song.iTimesPlayed > 0 GROUP BY idAlbum ORDER BY iTimesPlayedSum DESC LIMIT 100) AS _albumlimit ON (songview.idAlbum = _albumlimit.idAlbum) ORDER BY _albumlimit.iTimesPlayedSum DESC"); CLog::Log(LOGDEBUG,"GetTop100AlbumSongs() query: %s", strSQL.c_str()); if (!m_pDS->query(strSQL)) return false; @@ -2156,7 +2156,7 @@ bool CMusicDatabase::GetRecentlyPlayedAlbumSongs(const std::string& strBaseDir, if (!strBaseDir.empty() && !baseUrl.FromString(strBaseDir)) return false; - std::string strSQL = StringUtils::Format("select * from songview join albumview on (songview.idAlbum = albumview.idAlbum) where albumview.idAlbum in (select distinct albumview.idAlbum from albumview join song on albumview.idAlbum=song.idAlbum where song.lastplayed IS NOT NULL order by song.lastplayed desc limit %i)", g_advancedSettings.m_iMusicLibraryRecentlyAddedItems); + std::string strSQL = StringUtils::Format("SELECT songview.*, albumview.* FROM songview JOIN albumview ON (songview.idAlbum = albumview.idAlbum) JOIN (SELECT DISTINCT album.idAlbum FROM album JOIN song ON album.idAlbum = song.idAlbum WHERE song.lastplayed IS NOT NULL ORDER BY song.lastplayed DESC LIMIT %i) AS _albumlimit ON (albumview.idAlbum = _albumlimit.idAlbum)", g_advancedSettings.m_iMusicLibraryRecentlyAddedItems); CLog::Log(LOGDEBUG,"GetRecentlyPlayedAlbumSongs() query: %s", strSQL.c_str()); if (!m_pDS->query(strSQL)) return false; diff --git a/xbmc/pvr/windows/GUIWindowPVRSearch.cpp b/xbmc/pvr/windows/GUIWindowPVRSearch.cpp index cb11fe2354..a432045b4b 100644 --- a/xbmc/pvr/windows/GUIWindowPVRSearch.cpp +++ b/xbmc/pvr/windows/GUIWindowPVRSearch.cpp @@ -121,15 +121,21 @@ bool CGUIWindowPVRSearch::OnContextButton(const CFileItem &item, CONTEXT_BUTTON m_searchfilter.m_strSearchTerm = "\"" + item.GetEPGInfoTag()->Title() + "\""; else if (item.IsPVRChannel()) { - CEpgInfoTagPtr tag(item.GetPVRChannelInfoTag()->GetEPGNow()); + const CEpgInfoTagPtr tag(item.GetPVRChannelInfoTag()->GetEPGNow()); if (tag) m_searchfilter.m_strSearchTerm = "\"" + tag->Title() + "\""; } else if (item.IsUsablePVRRecording()) m_searchfilter.m_strSearchTerm = "\"" + item.GetPVRRecordingInfoTag()->m_strTitle + "\""; else if (item.IsPVRTimer()) - m_searchfilter.m_strSearchTerm = "\"" + item.GetPVRTimerInfoTag()->m_strTitle + "\""; - + { + const CPVRTimerInfoTagPtr info(item.GetPVRTimerInfoTag()); + const CEpgInfoTagPtr tag(info->GetEpgInfoTag()); + if (tag) + m_searchfilter.m_strSearchTerm = "\"" + tag->Title() + "\""; + else + m_searchfilter.m_strSearchTerm = "\"" + info->m_strTitle + "\""; + } m_bSearchConfirmed = true; Refresh(true); bReturn = true; @@ -144,20 +150,19 @@ bool CGUIWindowPVRSearch::OnContextButton(const CFileItem &item, CONTEXT_BUTTON void CGUIWindowPVRSearch::OnPrepareFileItems(CFileItemList &items) { - items.Clear(); - - CFileItemPtr item(new CFileItem("pvr://guide/searchresults/search/", true)); - item->SetLabel(g_localizeStrings.Get(19140)); - item->SetLabelPreformated(true); - item->SetSpecialSort(SortSpecialOnTop); - items.Add(item); + bool bAddSpecialSearchItem = items.IsEmpty(); if (m_bSearchConfirmed) { + m_bSearchConfirmed = false; + + items.Clear(); + bAddSpecialSearchItem = true; + CGUIDialogProgress* dlgProgress = (CGUIDialogProgress*)g_windowManager.GetWindow(WINDOW_DIALOG_PROGRESS); if (dlgProgress) { - dlgProgress->SetHeading(CVariant{194}); + dlgProgress->SetHeading(CVariant{194}); // "Searching..." dlgProgress->SetText(CVariant{m_searchfilter.m_strSearchTerm}); dlgProgress->Open(); dlgProgress->Progress(); @@ -170,10 +175,17 @@ void CGUIWindowPVRSearch::OnPrepareFileItems(CFileItemList &items) dlgProgress->Close(); if (items.IsEmpty()) - { - CGUIDialogOK::ShowAndGetInput(CVariant{194}, CVariant{284}); - m_bSearchConfirmed = false; - } + CGUIDialogOK::ShowAndGetInput(CVariant{194}, // "Searching..." + CVariant{284}); // "No results found" + } + + if (bAddSpecialSearchItem) + { + CFileItemPtr item(new CFileItem("pvr://guide/searchresults/search/", true)); + item->SetLabel(g_localizeStrings.Get(19140)); // "Search..." + item->SetLabelPreformated(true); + item->SetSpecialSort(SortSpecialOnTop); + items.Add(item); } } diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp index b2a88be667..8b872cccc4 100644 --- a/xbmc/video/VideoDatabase.cpp +++ b/xbmc/video/VideoDatabase.cpp @@ -8182,7 +8182,7 @@ void CVideoDatabase::DumpToDummyFiles(const std::string &path) } } -void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = false */, bool images /* = false */, bool actorThumbs /* false */, bool overwrite /*=false*/) +void CVideoDatabase::ExportToXML(const std::string &path, bool singleFile /* = true */, bool images /* = false */, bool actorThumbs /* false */, bool overwrite /*=false*/) { int iFailCount = 0; CGUIDialogProgress *progress=NULL; @@ -8208,7 +8208,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = std::string moviesDir = URIUtils::AddFileToFolder(exportRoot, "movies"); std::string musicvideosDir = URIUtils::AddFileToFolder(exportRoot, "musicvideos"); std::string tvshowsDir = URIUtils::AddFileToFolder(exportRoot, "tvshows"); - if (!singleFiles) + if (singleFile) { images = true; overwrite = false; @@ -8246,7 +8246,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = TiXmlDeclaration decl("1.0", "UTF-8", "yes"); xmlDoc.InsertEndChild(decl); TiXmlNode *pMain = NULL; - if (singleFiles) + if (!singleFile) pMain = &xmlDoc; else { @@ -8262,7 +8262,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = if (StringUtils::StartsWith(movie.m_strTrailer, movie.m_strPath)) movie.m_strTrailer = movie.m_strTrailer.substr(movie.m_strPath.size()); std::map<std::string, std::string> artwork; - if (GetArtForItem(movie.m_iDbId, movie.m_type, artwork) && !singleFiles) + if (GetArtForItem(movie.m_iDbId, movie.m_type, artwork) && singleFile) { TiXmlElement additionalNode("art"); for (std::map<std::string, std::string>::const_iterator i = artwork.begin(); i != artwork.end(); ++i) @@ -8270,7 +8270,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = movie.Save(pMain, "movie", true, &additionalNode); } else - movie.Save(pMain, "movie", !singleFiles); + movie.Save(pMain, "movie", singleFile); // reset old skip state bool bSkip = false; @@ -8289,7 +8289,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } CFileItem item(movie.m_strFileNameAndPath,false); - if (singleFiles && CUtil::SupportsWriteFileOperations(movie.m_strFileNameAndPath)) + if (!singleFile && CUtil::SupportsWriteFileOperations(movie.m_strFileNameAndPath)) { if (!item.Exists(false)) { @@ -8318,7 +8318,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } } } - if (singleFiles) + if (!singleFile) { xmlDoc.Clear(); TiXmlDeclaration decl("1.0", "UTF-8", "yes"); @@ -8327,7 +8327,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = if (images && !bSkip) { - if (!singleFiles) + if (singleFile) { std::string strFileName(movie.m_strTitle); if (movie.m_iYear > 0) @@ -8340,7 +8340,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = CTextureCache::GetInstance().Export(i->second, savedThumb, overwrite); } if (actorThumbs) - ExportActorThumbs(actorsDir, movie, singleFiles, overwrite); + ExportActorThumbs(actorsDir, movie, !singleFile, overwrite); } m_pDS->next(); current++; @@ -8359,7 +8359,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = { CVideoInfoTag movie = GetDetailsForMusicVideo(m_pDS, true); std::map<std::string, std::string> artwork; - if (GetArtForItem(movie.m_iDbId, movie.m_type, artwork) && !singleFiles) + if (GetArtForItem(movie.m_iDbId, movie.m_type, artwork) && singleFile) { TiXmlElement additionalNode("art"); for (std::map<std::string, std::string>::const_iterator i = artwork.begin(); i != artwork.end(); ++i) @@ -8367,7 +8367,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = movie.Save(pMain, "musicvideo", true, &additionalNode); } else - movie.Save(pMain, "musicvideo", !singleFiles); + movie.Save(pMain, "musicvideo", singleFile); // reset old skip state bool bSkip = false; @@ -8386,7 +8386,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } CFileItem item(movie.m_strFileNameAndPath,false); - if (singleFiles && CUtil::SupportsWriteFileOperations(movie.m_strFileNameAndPath)) + if (!singleFile && CUtil::SupportsWriteFileOperations(movie.m_strFileNameAndPath)) { if (!item.Exists(false)) { @@ -8408,7 +8408,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } } } - if (singleFiles) + if (!singleFile) { xmlDoc.Clear(); TiXmlDeclaration decl("1.0", "UTF-8", "yes"); @@ -8416,7 +8416,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } if (images && !bSkip) { - if (!singleFiles) + if (singleFile) { std::string strFileName(StringUtils::Join(movie.m_artist, g_advancedSettings.m_videoItemSeparator) + "." + movie.m_strTitle); if (movie.m_iYear > 0) @@ -8449,7 +8449,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = GetTvShowSeasonArt(tvshow.m_iDbId, seasonArt); std::map<std::string, std::string> artwork; - if (GetArtForItem(tvshow.m_iDbId, tvshow.m_type, artwork) && !singleFiles) + if (GetArtForItem(tvshow.m_iDbId, tvshow.m_type, artwork) && singleFile) { TiXmlElement additionalNode("art"); for (std::map<std::string, std::string>::const_iterator i = artwork.begin(); i != artwork.end(); ++i) @@ -8465,7 +8465,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = tvshow.Save(pMain, "tvshow", true, &additionalNode); } else - tvshow.Save(pMain, "tvshow", !singleFiles); + tvshow.Save(pMain, "tvshow", singleFile); // reset old skip state bool bSkip = false; @@ -8484,7 +8484,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } CFileItem item(tvshow.m_strPath, true); - if (singleFiles && CUtil::SupportsWriteFileOperations(tvshow.m_strPath)) + if (!singleFile && CUtil::SupportsWriteFileOperations(tvshow.m_strPath)) { if (!item.Exists(false)) { @@ -8506,7 +8506,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } } } - if (singleFiles) + if (!singleFile) { xmlDoc.Clear(); TiXmlDeclaration decl("1.0", "UTF-8", "yes"); @@ -8514,7 +8514,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } if (images && !bSkip) { - if (!singleFiles) + if (singleFile) item.SetPath(GetSafeFile(tvshowsDir, tvshow.m_strTitle)); for (std::map<std::string, std::string>::const_iterator i = artwork.begin(); i != artwork.end(); ++i) @@ -8524,7 +8524,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } if (actorThumbs) - ExportActorThumbs(actorsDir, tvshow, singleFiles, overwrite); + ExportActorThumbs(actorsDir, tvshow, !singleFile, overwrite); // export season thumbs for (std::map<int, std::map<std::string, std::string> >::const_iterator i = seasonArt.begin(); i != seasonArt.end(); ++i) @@ -8554,24 +8554,24 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = { CVideoInfoTag episode = GetDetailsForEpisode(pDS, true); std::map<std::string, std::string> artwork; - if (GetArtForItem(episode.m_iDbId, MediaTypeEpisode, artwork) && !singleFiles) + if (GetArtForItem(episode.m_iDbId, MediaTypeEpisode, artwork) && singleFile) { TiXmlElement additionalNode("art"); for (std::map<std::string, std::string>::const_iterator i = artwork.begin(); i != artwork.end(); ++i) XMLUtils::SetString(&additionalNode, i->first.c_str(), i->second); episode.Save(pMain->LastChild(), "episodedetails", true, &additionalNode); } - else if (!singleFiles) - episode.Save(pMain->LastChild(), "episodedetails", !singleFiles); + else if (singleFile) + episode.Save(pMain->LastChild(), "episodedetails", singleFile); else - episode.Save(pMain, "episodedetails", !singleFiles); + episode.Save(pMain, "episodedetails", singleFile); pDS->next(); // multi-episode files need dumping to the same XML - while (singleFiles && !pDS->eof() && + while (!singleFile && !pDS->eof() && episode.m_iFileId == pDS->fv("idFile").get_asInt()) { episode = GetDetailsForEpisode(pDS, true); - episode.Save(pMain, "episodedetails", !singleFiles); + episode.Save(pMain, "episodedetails", singleFile); pDS->next(); } @@ -8579,7 +8579,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = bool bSkip = false; CFileItem item(episode.m_strFileNameAndPath, false); - if (singleFiles && CUtil::SupportsWriteFileOperations(episode.m_strFileNameAndPath)) + if (!singleFile && CUtil::SupportsWriteFileOperations(episode.m_strFileNameAndPath)) { if (!item.Exists(false)) { @@ -8601,7 +8601,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } } } - if (singleFiles) + if (!singleFile) { xmlDoc.Clear(); TiXmlDeclaration decl("1.0", "UTF-8", "yes"); @@ -8610,7 +8610,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = if (images && !bSkip) { - if (!singleFiles) + if (singleFile) { std::string epName = StringUtils::Format("s%02ie%02i.avi", episode.m_iSeason, episode.m_iEpisode); item.SetPath(URIUtils::AddFileToFolder(showDir, epName)); @@ -8621,7 +8621,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = CTextureCache::GetInstance().Export(i->second, savedThumb, overwrite); } if (actorThumbs) - ExportActorThumbs(actorsDir, episode, singleFiles, overwrite); + ExportActorThumbs(actorsDir, episode, !singleFile, overwrite); } } pDS->close(); @@ -8630,13 +8630,13 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = } m_pDS->close(); - if (singleFiles && progress) + if (!singleFile && progress) { progress->SetPercentage(100); progress->Progress(); } - if (!singleFiles) + if (singleFile) { // now dump path info std::set<std::string> paths; @@ -8662,7 +8662,7 @@ void CVideoDatabase::ExportToXML(const std::string &path, bool singleFiles /* = xmlDoc.SaveFile(xmlFile); } CVariant data; - if (!singleFiles) + if (singleFile) { data["root"] = exportRoot; data["file"] = xmlFile; diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h index 88a8df6d1e..b985f287e0 100644 --- a/xbmc/video/VideoDatabase.h +++ b/xbmc/video/VideoDatabase.h @@ -732,7 +732,7 @@ public: */ void UpdateFileDateAdded(int idFile, const std::string& strFileNameAndPath); - void ExportToXML(const std::string &path, bool singleFiles = false, bool images=false, bool actorThumbs=false, bool overwrite=false); + void ExportToXML(const std::string &path, bool singleFile = true, bool images=false, bool actorThumbs=false, bool overwrite=false); void ExportActorThumbs(const std::string &path, const CVideoInfoTag& tag, bool singleFiles, bool overwrite=false); void ImportFromXML(const std::string &path); void DumpToDummyFiles(const std::string &path); diff --git a/xbmc/video/windows/GUIWindowVideoBase.cpp b/xbmc/video/windows/GUIWindowVideoBase.cpp index 2da45c76e2..5a391ef3f2 100644 --- a/xbmc/video/windows/GUIWindowVideoBase.cpp +++ b/xbmc/video/windows/GUIWindowVideoBase.cpp @@ -1711,10 +1711,9 @@ void CGUIWindowVideoBase::OnAssignContent(const std::string &path) if (OnUnAssignContent(path, 20442, 20443)) bScan = true; } + db.SetScraperForPath(path, info, settings); } - db.SetScraperForPath(path,info,settings); - if (bScan) { g_application.StartVideoScan(path, true, true); |