From 5a69e5635ab36a4c772d0a767deeee607e40f259 Mon Sep 17 00:00:00 2001 From: Moritz Patelscheck Date: Wed, 23 Nov 2016 00:58:42 +0100 Subject: [PATCH] add global setting for mkv segment search directorys --- xbmc/cores/VideoPlayer/DVDDemuxers/DemuxTimeline.cpp | 3 ++- xbmc/settings/AdvancedSettings.cpp | 6 ++++++ xbmc/settings/AdvancedSettings.h | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxTimeline.cpp b/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxTimeline.cpp index fc86784bda906..40b1498d47b2e 100644 --- a/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxTimeline.cpp +++ b/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxTimeline.cpp @@ -11,6 +11,7 @@ #include "filesystem/File.h" #include "filesystem/Directory.h" #include "MatroskaParser.h" +#include "settings/AdvancedSettings.h" #include "utils/log.h" #include "utils/StringUtils.h" @@ -224,7 +225,7 @@ CDemuxTimeline* CDemuxTimeline::CreateTimeline(CDVDDemux *primaryDemuxer) std::map segmentDemuxer; segmentDemuxer[""] = primaryDemuxer; segmentDemuxer[mkv.segment.infos.uid] = primaryDemuxer; - std::list searchDirs({""}); // should be a global setting + auto &searchDirs = g_advancedSettings.m_videoMkvSegmentsSearchDirs; std::string filename = primaryDemuxer->GetFileName(); std::string dirname = filename.substr(0, filename.rfind('/') + 1); for (auto &subDir : searchDirs) diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp index 6beebe0c9c11b..016e6f05aeb8f 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -559,6 +559,12 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) XMLUtils::GetBoolean(pElement,"mediacodecforcesoftwarerendering",m_mediacodecForceSoftwareRendring); + auto pMkvSegmentsSearchDirs = pElement->FirstChildElement("mkvsegmentssearchdirs"); + if (pMkvSegmentsSearchDirs) + XMLUtils::GetStringArray(pMkvSegmentsSearchDirs, "subdir", m_videoMkvSegmentsSearchDirs, true, ""); + else + m_videoMkvSegmentsSearchDirs = std::vector{""}; + TiXmlElement* pAdjustRefreshrate = pElement->FirstChildElement("adjustrefreshrate"); if (pAdjustRefreshrate) { diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h index fc526d11c3a78..00ee155a9bfaa 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h @@ -196,6 +196,8 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler std::string m_videoDefaultPlayer; float m_videoPlayCountMinimumPercent; + std::vector m_videoMkvSegmentsSearchDirs; + float m_slideshowBlackBarCompensation; float m_slideshowZoomAmount; float m_slideshowPanAmount;