From 36952413d776cadc487782e6ccc3624fec43d9fd Mon Sep 17 00:00:00 2001 From: Kai Sommerfeld <kai.sommerfeld@gmx.com> Date: Thu, 24 Sep 2020 16:34:28 +0200 Subject: [filesystem] Shoutcast: Set songtitle and artist from SAM Cast meta data. --- xbmc/filesystem/ShoutcastFile.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/xbmc/filesystem/ShoutcastFile.cpp b/xbmc/filesystem/ShoutcastFile.cpp index cb1d81c319..93ffde7e0b 100644 --- a/xbmc/filesystem/ShoutcastFile.cpp +++ b/xbmc/filesystem/ShoutcastFile.cpp @@ -23,6 +23,7 @@ #include "utils/JSONVariantParser.h" #include "utils/RegExp.h" #include "utils/StringUtils.h" +#include "utils/UrlOptions.h" #include <climits> @@ -220,6 +221,22 @@ bool CShoutcastFile::ExtractTagInfo(const char* buf) } } } + else if (StringUtils::StartsWithNoCase(streamUrlData, "&")) + { + // Check for SAM Cast meta data. + // Example: StreamUrl='&artist=RECLAM&title=BOLORDURAN%2017&album=&duration=17894&songtype=S&overlay=no&buycd=&website=&picture=' + + CUrlOptions urlOptions(streamUrlData); + const CUrlOptions::UrlOptions& options = urlOptions.GetOptions(); + + auto it = options.find("artist"); + if (it != options.end()) + artistInfo = (*it).second.asString(); + + it = options.find("title"); + if (it != options.end()) + title = (*it).second.asString(); + } } if (artistInfo.empty() || title.empty()) -- cgit v1.2.3