bool CFileItem::IsMusicDb() const
{
- CURL url(m_strPath);
- return url.GetProtocol().Equals("musicdb");
+ return URIUtils::IsMusicDb(m_strPath);
}
bool CFileItem::IsVideoDb() const
{
- CURL url(m_strPath);
- return url.GetProtocol().Equals("videodb");
+ return URIUtils::IsVideoDb(m_strPath);
}
bool CFileItem::IsVirtualDirectoryRoot() const
return (item->GetProperty("item_start") == GetProperty("item_start"));
return true;
}
+ if (HasVideoInfoTag() && item->HasVideoInfoTag())
+ {
+ if (m_videoInfoTag->m_iDbId != -1 && item->m_videoInfoTag->m_iDbId != -1)
+ return ((m_videoInfoTag->m_iDbId == item->m_videoInfoTag->m_iDbId) &&
+ (m_videoInfoTag->m_type == item->m_videoInfoTag->m_type));
+ }
if (IsMusicDb() && HasMusicInfoTag())
{
CFileItem dbItem(m_musicInfoTag->GetURL(), false);
return type;
}
+bool CFileItem::IsResumePointSet() const
+{
+ return (HasVideoInfoTag() && GetVideoInfoTag()->m_resumePoint.IsSet()) ||
+ (HasPVRRecordingInfoTag() && GetPVRRecordingInfoTag()->GetLastPlayedPosition() > 0);
+}
+
+double CFileItem::GetCurrentResumeTime() const
+{
+ if (HasPVRRecordingInfoTag())
+ {
+ // This will retrieve 'fresh' resume information from the PVR server
+ int rc = GetPVRRecordingInfoTag()->GetLastPlayedPosition();
+ if (rc > 0)
+ return rc;
+ // Fall through to default value
+ }
+ if (HasVideoInfoTag() && GetVideoInfoTag()->m_resumePoint.IsSet())
+ {
+ return GetVideoInfoTag()->m_resumePoint.timeInSeconds;
+ }
+ // Resume from start when resume points are invalid or the PVR server returns an error
+ return 0;
+}