diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
commit | c04dcc2e7d834218ef2d4194331e383402495ae1 (patch) | |
tree | 7333e38d10d75386e60f336b80c2443c1166031d /lib/libUPnP/patches/0015-platinum-fix-missing-filtering-for-extra-metadata.patch | |
parent | Initial commit. (diff) | |
download | kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip |
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/libUPnP/patches/0015-platinum-fix-missing-filtering-for-extra-metadata.patch')
-rw-r--r-- | lib/libUPnP/patches/0015-platinum-fix-missing-filtering-for-extra-metadata.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/lib/libUPnP/patches/0015-platinum-fix-missing-filtering-for-extra-metadata.patch b/lib/libUPnP/patches/0015-platinum-fix-missing-filtering-for-extra-metadata.patch new file mode 100644 index 0000000..ad8e0b1 --- /dev/null +++ b/lib/libUPnP/patches/0015-platinum-fix-missing-filtering-for-extra-metadata.patch @@ -0,0 +1,85 @@ +From c6d2a53c63a065a974c3f8fd1df29c30c2e2b40a Mon Sep 17 00:00:00 2001 +From: Alasdair Campbell <alcoheca@gmail.com> +Date: Fri, 26 Oct 2012 12:57:58 +0100 +Subject: [PATCH 15/24] platinum: fix missing filtering for extra metadata + +--- + lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.cpp | 6 ++++++ + lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.h | 7 +++++++ + lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaItem.cpp | 6 +++--- + 3 files changed, 16 insertions(+), 3 deletions(-) + +diff --git a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.cpp b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.cpp +index 6f72dda..73f9ed2 100644 +--- a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.cpp ++++ b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.cpp +@@ -111,6 +111,12 @@ PLT_Didl::ConvertFilterToMask(const NPT_String& filter) + mask |= PLT_FILTER_MASK_LONGDESCRIPTION; + } else if (NPT_String::CompareN(s+i, PLT_FILTER_FIELD_ORIGINALTRACK, len, true) == 0) { + mask |= PLT_FILTER_MASK_ORIGINALTRACK; ++ } else if (NPT_String::CompareN(s+i, PLT_FILTER_FIELD_LASTPOSITION, len, true) == 0) { ++ mask |= PLT_FILTER_MASK_LASTPOSITION; ++ } else if (NPT_String::CompareN(s+i, PLT_FILTER_FIELD_LASTPLAYBACK, len, true) == 0) { ++ mask |= PLT_FILTER_MASK_LASTPLAYBACK; ++ } else if (NPT_String::CompareN(s+i, PLT_FILTER_FIELD_PLAYCOUNT, len, true) == 0) { ++ mask |= PLT_FILTER_MASK_PLAYCOUNT; + } else if (NPT_String::CompareN(s+i, PLT_FILTER_FIELD_SEARCHABLE, len, true) == 0) { + mask |= PLT_FILTER_MASK_SEARCHABLE; + } else if (NPT_String::CompareN(s+i, PLT_FILTER_FIELD_SEARCHCLASS, len, true) == 0) { +diff --git a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.h b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.h +index 29ce9ca..9af9725 100644 +--- a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.h ++++ b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltDidl.h +@@ -86,6 +86,10 @@ + #define PLT_FILTER_MASK_SEARCHCLASS 0x0000000040000000 + #define PLT_FILTER_MASK_REFID 0x0000000080000000 + ++#define PLT_FILTER_MASK_LASTPOSITION 0x0000000100000000 ++#define PLT_FILTER_MASK_LASTPLAYBACK 0x0000000200000000 ++#define PLT_FILTER_MASK_PLAYCOUNT 0x0000000400000000 ++ + #define PLT_FILTER_FIELD_TITLE "dc:title" + #define PLT_FILTER_FIELD_CREATOR "dc:creator" + #define PLT_FILTER_FIELD_DATE "dc:date" +@@ -105,6 +109,9 @@ + #define PLT_FILTER_FIELD_PROGRAMTITLE "upnp:programTitle" + #define PLT_FILTER_FIELD_SERIESTITLE "upnp:seriesTitle" + #define PLT_FILTER_FIELD_EPISODE "upnp:episodeNumber" ++#define PLT_FILTER_FIELD_LASTPOSITION "upnp:lastPlaybackPosition" ++#define PLT_FILTER_FIELD_LASTPLAYBACK "upnp:lastPlaybackTime" ++#define PLT_FILTER_FIELD_PLAYCOUNT "upnp:playbackCount" + #define PLT_FILTER_FIELD_SEARCHCLASS "upnp:searchClass" + #define PLT_FILTER_FIELD_SEARCHABLE "@searchable" + #define PLT_FILTER_FIELD_CHILDCOUNT "@childcount" +diff --git a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaItem.cpp b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaItem.cpp +index 31bc16c..af6bc3b 100644 +--- a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaItem.cpp ++++ b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaItem.cpp +@@ -333,21 +333,21 @@ PLT_MediaObject::ToDidl(NPT_UInt64 mask, NPT_String& didl) + } + + // last playback position +- if (m_MiscInfo.last_position > 0) { ++ if (mask & PLT_FILTER_MASK_LASTPOSITION && m_MiscInfo.last_position > 0) { + didl += "<upnp:lastPlaybackPosition>"; + didl += NPT_String::FromInteger(m_MiscInfo.last_position); + didl += "</upnp:lastPlaybackPosition>"; + } + + // last playback datetime +- if (!m_MiscInfo.last_time.IsEmpty()) { ++ if (mask & PLT_FILTER_MASK_LASTPLAYBACK && !m_MiscInfo.last_time.IsEmpty()) { + didl += "<upnp:lastPlaybackTime>"; + PLT_Didl::AppendXmlEscape(didl, m_MiscInfo.last_time); + didl += "</upnp:lastPlaybackTime>"; + } + + // playcount +- if (m_MiscInfo.play_count > -1) { ++ if (mask & PLT_FILTER_MASK_PLAYCOUNT && m_MiscInfo.play_count > -1) { + didl += "<upnp:playbackCount>"; + didl += NPT_String::FromInteger(m_MiscInfo.play_count); + didl += "</upnp:playbackCount>"; +-- +1.7.11.msysgit.0 + |