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) {
#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"
#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"
}
// 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>";