本文整理汇总了C++中CFileItem::GetPVRRecordingInfoTag方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItem::GetPVRRecordingInfoTag方法的具体用法?C++ CFileItem::GetPVRRecordingInfoTag怎么用?C++ CFileItem::GetPVRRecordingInfoTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItem
的用法示例。
在下文中一共展示了CFileItem::GetPVRRecordingInfoTag方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetResumeString
CStdString CGUIWindowPVRRecordings::GetResumeString(const CFileItem& item)
{
CStdString resumeString;
if (item.IsPVRRecording())
{
// First try to find the resume position on the back-end, if that fails use video database
int positionInSeconds = item.GetPVRRecordingInfoTag()->GetLastPlayedPosition();
// If the back-end does report a saved position it will be picked up by FileItem
if (positionInSeconds < 0)
{
CVideoDatabase db;
if (db.Open())
{
CBookmark bookmark;
CStdString itemPath(item.GetPVRRecordingInfoTag()->m_strFileNameAndPath);
if (db.GetResumeBookMark(itemPath, bookmark) )
positionInSeconds = lrint(bookmark.timeInSeconds);
db.Close();
}
}
// Suppress resume from 0
if (positionInSeconds > 0)
resumeString = StringUtils::Format(g_localizeStrings.Get(12022).c_str(), StringUtils::SecondsToTimeString(positionInSeconds).c_str());
}
return resumeString;
}
示例2: OnContextButton
bool CGUIWindowPVRSearch::OnContextButton(const CFileItem &item, CONTEXT_BUTTON button)
{
bool bReturn = false;
switch(button)
{
case CONTEXT_BUTTON_FIND:
{
m_searchfilter.Reset();
// construct the search term
if (item.IsEPG())
m_searchfilter.m_strSearchTerm = "\"" + item.GetEPGInfoTag()->Title() + "\"";
else if (item.IsPVRChannel())
{
CEpgInfoTagPtr tag(item.GetPVRChannelInfoTag()->GetEPGNow());
if (tag)
m_searchfilter.m_strSearchTerm = "\"" + tag->Title() + "\"";
}
else if (item.IsUsablePVRRecording())
m_searchfilter.m_strSearchTerm = "\"" + item.GetPVRRecordingInfoTag()->m_strTitle + "\"";
else if (item.IsPVRTimer())
m_searchfilter.m_strSearchTerm = "\"" + item.GetPVRTimerInfoTag()->m_strTitle + "\"";
m_bSearchConfirmed = true;
Refresh(true);
bReturn = true;
break;
}
default:
bReturn = false;
}
return bReturn;
}
示例3: GetClient
CPVRClientPtr CPVRManager::GetClient(const CFileItem &item) const
{
int iClientID = PVR_INVALID_CLIENT_ID;
if (item.HasPVRChannelInfoTag())
iClientID = item.GetPVRChannelInfoTag()->ClientID();
else if (item.HasPVRRecordingInfoTag())
iClientID = item.GetPVRRecordingInfoTag()->m_iClientId;
else if (item.HasPVRTimerInfoTag())
iClientID = item.GetPVRTimerInfoTag()->m_iClientId;
else if (item.HasEPGInfoTag())
iClientID = item.GetEPGInfoTag()->ClientID();
else if (URIUtils::IsPVRChannel(item.GetPath()))
{
const std::shared_ptr<CFileItem> channelItem = m_channelGroups->GetByPath(item.GetPath());
if (channelItem)
iClientID = channelItem->GetPVRChannelInfoTag()->ClientID();
}
else if (URIUtils::IsPVRRecording(item.GetPath()))
{
const std::shared_ptr<CFileItem> recordingItem = m_recordings->GetByPath(item.GetPath());
if (recordingItem)
iClientID = recordingItem->GetPVRRecordingInfoTag()->ClientID();
}
return GetClient(iClientID);
}
示例4: DeleteRecording
bool CPVRRecordings::DeleteRecording(const CFileItem &item)
{
if (!item.IsPVRRecording())
{
CLog::Log(LOGERROR, "CPVRRecordings - %s - cannot delete file: no valid recording tag", __FUNCTION__);
return false;
}
CPVRRecording *tag = (CPVRRecording *)item.GetPVRRecordingInfoTag();
return tag->Delete();
}
示例5: RenameRecording
bool CPVRRecordings::RenameRecording(CFileItem &item, std::string &strNewName)
{
if (!item.IsUsablePVRRecording())
{
CLog::Log(LOGERROR, "CPVRRecordings - %s - cannot rename file: no valid recording tag", __FUNCTION__);
return false;
}
CPVRRecordingPtr tag = item.GetPVRRecordingInfoTag();
return tag->Rename(strNewName);
}
示例6: Undelete
bool CPVRRecordings::Undelete(const CFileItem &item)
{
if (!item.IsDeletedPVRRecording())
{
CLog::Log(LOGERROR, "CPVRRecordings - %s - cannot undelete file: no valid recording tag", __FUNCTION__);
return false;
}
CPVRRecordingPtr tag = item.GetPVRRecordingInfoTag();
return tag->Undelete();
}
示例7: GetResumeString
CStdString CGUIWindowPVRRecordings::GetResumeString(const CFileItem& item)
{
CStdString resumeString;
if (item.IsPVRRecording())
{
// First try to find the resume position on the back-end, if that fails use video database
int positionInSeconds = item.GetPVRRecordingInfoTag()->GetLastPlayedPosition();
// If the back-end does report a saved position then make sure there is a corresponding resume bookmark
if (positionInSeconds > 0)
{
CBookmark bookmark;
bookmark.timeInSeconds = positionInSeconds;
bookmark.totalTimeInSeconds = (double)item.GetPVRRecordingInfoTag()->GetDuration();
CVideoDatabase db;
if (db.Open())
{
CStdString itemPath(item.GetPVRRecordingInfoTag()->m_strFileNameAndPath);
db.AddBookMarkToFile(itemPath, bookmark, CBookmark::RESUME);
db.Close();
}
}
else if (positionInSeconds < 0)
{
CVideoDatabase db;
if (db.Open())
{
CBookmark bookmark;
CStdString itemPath(item.GetPVRRecordingInfoTag()->m_strFileNameAndPath);
if (db.GetResumeBookMark(itemPath, bookmark) )
positionInSeconds = lrint(bookmark.timeInSeconds);
db.Close();
}
}
// Suppress resume from 0
if (positionInSeconds > 0)
resumeString.Format(g_localizeStrings.Get(12022).c_str(), StringUtils::SecondsToTimeString(positionInSeconds).c_str());
}
return resumeString;
}
示例8: RenameRecording
bool CPVRRecordings::RenameRecording(CFileItem &item, CStdString &strNewName)
{
bool bReturn = false;
if (!item.IsPVRRecording())
{
CLog::Log(LOGERROR, "CPVRRecordings - %s - cannot rename file: no valid recording tag", __FUNCTION__);
return bReturn;
}
CPVRRecording* tag = item.GetPVRRecordingInfoTag();
return tag->Rename(strNewName);
}
示例9: SetPlayCount
void CPVRRecordings::SetPlayCount(const CFileItem &item, int iPlayCount)
{
if (!item.HasPVRRecordingInfoTag())
return;
const CPVRRecording *recording = item.GetPVRRecordingInfoTag();
CSingleLock lock(m_critSection);
for (unsigned int iRecordingPtr = 0; iRecordingPtr < m_recordings.size(); iRecordingPtr++)
{
CPVRRecording *current = m_recordings.at(iRecordingPtr);
if (*current == *recording)
{
current->SetPlayCount(iPlayCount);
break;
}
}
}