本文整理汇总了C++中CPVRRecording::GetDuration方法的典型用法代码示例。如果您正苦于以下问题:C++ CPVRRecording::GetDuration方法的具体用法?C++ CPVRRecording::GetDuration怎么用?C++ CPVRRecording::GetDuration使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPVRRecording
的用法示例。
在下文中一共展示了CPVRRecording::GetDuration方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: return
bool CPVRRecording::operator ==(const CPVRRecording& right) const
{
return (this == &right) ||
(m_strRecordingId == right.m_strRecordingId &&
m_iClientId == right.m_iClientId &&
m_strChannelName == right.m_strChannelName &&
m_recordingTime == right.m_recordingTime &&
GetDuration() == right.GetDuration() &&
m_strPlotOutline == right.m_strPlotOutline &&
m_strPlot == right.m_strPlot &&
m_iPriority == right.m_iPriority &&
m_iLifetime == right.m_iLifetime &&
m_strDirectory == right.m_strDirectory &&
m_strFileNameAndPath == right.m_strFileNameAndPath &&
m_strTitle == right.m_strTitle &&
m_strShowTitle == right.m_strShowTitle &&
m_iSeason == right.m_iSeason &&
m_iEpisode == right.m_iEpisode &&
GetPremiered() == right.GetPremiered() &&
m_strIconPath == right.m_strIconPath &&
m_strThumbnailPath == right.m_strThumbnailPath &&
m_strFanartPath == right.m_strFanartPath &&
m_iRecordingId == right.m_iRecordingId &&
m_bIsDeleted == right.m_bIsDeleted &&
m_iEpgEventId == right.m_iEpgEventId &&
m_iChannelUid == right.m_iChannelUid &&
m_bRadio == right.m_bRadio);
}
示例2: UpdatePlayingTag
void CPVRGUIInfo::UpdatePlayingTag(void)
{
CPVRChannelPtr currentChannel;
CPVRRecording recording;
if (g_PVRManager.GetCurrentChannel(currentChannel))
{
CEpgInfoTag epgTag;
bool bHasEpgTag = GetPlayingTag(epgTag);
CPVRChannelPtr channel;
if (bHasEpgTag)
channel = epgTag.ChannelTag();
if (!bHasEpgTag || !epgTag.IsActive() ||
!channel || *channel != *currentChannel)
{
CEpgInfoTag newTag;
{
CSingleLock lock(m_critSection);
ResetPlayingTag();
if (currentChannel->GetEPGNow(newTag))
{
m_playingEpgTag = new CEpgInfoTag(newTag);
m_iDuration = m_playingEpgTag->GetDuration() * 1000;
}
}
g_PVRManager.UpdateCurrentFile();
}
}
else if (g_PVRClients->GetPlayingRecording(recording))
{
ResetPlayingTag();
m_iDuration = recording.GetDuration() * 1000;
}
}
示例3: WriteClientRecordingInfo
/*!
* @brief Copy over recording info from xbmcRecording to addonRecording.
* @param xbmcRecording The recording on XBMC's side.
* @param addonRecording The recording on the addon's side.
*/
void CPVRClient::WriteClientRecordingInfo(const CPVRRecording &xbmcRecording, PVR_RECORDING &addonRecording)
{
time_t recTime;
xbmcRecording.RecordingTimeAsUTC().GetAsTime(recTime);
memset(&addonRecording, 0, sizeof(addonRecording));
addonRecording.recordingTime = recTime - g_advancedSettings.m_iPVRTimeCorrection;
strncpy(addonRecording.strRecordingId, xbmcRecording.m_strRecordingId.c_str(), sizeof(addonRecording.strRecordingId) - 1);
strncpy(addonRecording.strTitle, xbmcRecording.m_strTitle.c_str(), sizeof(addonRecording.strTitle) - 1);
strncpy(addonRecording.strPlotOutline, xbmcRecording.m_strPlotOutline.c_str(), sizeof(addonRecording.strPlotOutline) - 1);
strncpy(addonRecording.strPlot, xbmcRecording.m_strPlot.c_str(), sizeof(addonRecording.strPlot) - 1);
strncpy(addonRecording.strChannelName, xbmcRecording.m_strChannelName.c_str(), sizeof(addonRecording.strChannelName) - 1);
addonRecording.iDuration = xbmcRecording.GetDuration();
addonRecording.iPriority = xbmcRecording.m_iPriority;
addonRecording.iLifetime = xbmcRecording.m_iLifetime;
addonRecording.iPlayCount = xbmcRecording.m_playCount;
addonRecording.iLastPlayedPosition = (int)xbmcRecording.m_resumePoint.timeInSeconds;
addonRecording.bIsDeleted = xbmcRecording.IsDeleted();
strncpy(addonRecording.strDirectory, xbmcRecording.m_strDirectory.c_str(), sizeof(addonRecording.strDirectory) - 1);
strncpy(addonRecording.strStreamURL, xbmcRecording.m_strStreamURL.c_str(), sizeof(addonRecording.strStreamURL) - 1);
strncpy(addonRecording.strIconPath, xbmcRecording.m_strIconPath.c_str(), sizeof(addonRecording.strIconPath) - 1);
strncpy(addonRecording.strThumbnailPath, xbmcRecording.m_strThumbnailPath.c_str(), sizeof(addonRecording.strThumbnailPath) - 1);
strncpy(addonRecording.strFanartPath, xbmcRecording.m_strFanartPath.c_str(), sizeof(addonRecording.strFanartPath) - 1);
}
示例4: Update
void CPVRRecording::Update(const CPVRRecording &tag)
{
m_strRecordingId = tag.m_strRecordingId;
m_iClientId = tag.m_iClientId;
m_strTitle = tag.m_strTitle;
m_strShowTitle = tag.m_strShowTitle;
m_iSeason = tag.m_iSeason;
m_iEpisode = tag.m_iEpisode;
SetPremiered(tag.GetPremiered());
m_recordingTime = tag.m_recordingTime;
m_iPriority = tag.m_iPriority;
m_iLifetime = tag.m_iLifetime;
m_strDirectory = tag.m_strDirectory;
m_strPlot = tag.m_strPlot;
m_strPlotOutline = tag.m_strPlotOutline;
m_strStreamURL = tag.m_strStreamURL;
m_strChannelName = tag.m_strChannelName;
m_genre = tag.m_genre;
m_strIconPath = tag.m_strIconPath;
m_strThumbnailPath = tag.m_strThumbnailPath;
m_strFanartPath = tag.m_strFanartPath;
m_bIsDeleted = tag.m_bIsDeleted;
m_iEpgEventId = tag.m_iEpgEventId;
m_iChannelUid = tag.m_iChannelUid;
m_bRadio = tag.m_bRadio;
CVideoInfoTag::SetPlayCount(tag.GetLocalPlayCount());
CVideoInfoTag::SetResumePoint(tag.GetLocalResumePoint());
SetDuration(tag.GetDuration());
//Old Method of identifying TV show title and subtitle using m_strDirectory and strPlotOutline (deprecated)
std::string strShow = StringUtils::Format("%s - ", g_localizeStrings.Get(20364).c_str());
if (StringUtils::StartsWithNoCase(m_strPlotOutline, strShow))
{
CLog::Log(LOGDEBUG,"CPVRRecording::Update - PVR addon provides episode name in strPlotOutline which is deprecated");
std::string strEpisode = m_strPlotOutline;
std::string strTitle = m_strDirectory;
size_t pos = strTitle.rfind('/');
strTitle.erase(0, pos + 1);
strEpisode.erase(0, strShow.size());
m_strTitle = strTitle;
pos = strEpisode.find('-');
strEpisode.erase(0, pos + 2);
m_strShowTitle = strEpisode;
}
if (m_bIsDeleted)
OnDelete();
UpdatePath();
}
示例5: PVRWriteClientRecordingInfo
/*!
* @brief Copy over recording info from xbmcRecording to addonRecording.
* @param xbmcRecording The recording on XBMC's side.
* @param addonRecording The recording on the addon's side.
*/
inline void PVRWriteClientRecordingInfo(const CPVRRecording &xbmcRecording, PVR_RECORDING &addonRecording)
{
time_t recTime;
xbmcRecording.RecordingTimeAsUTC().GetAsTime(recTime);
addonRecording.recordingTime = recTime - g_advancedSettings.m_iPVRTimeCorrection;
addonRecording.strRecordingId = xbmcRecording.m_strRecordingId.c_str();
addonRecording.strTitle = xbmcRecording.m_strTitle.c_str();
addonRecording.strPlotOutline = xbmcRecording.m_strPlotOutline.c_str();
addonRecording.strPlot = xbmcRecording.m_strPlot.c_str();
addonRecording.strChannelName = xbmcRecording.m_strChannelName.c_str();
addonRecording.iDuration = xbmcRecording.GetDuration();
addonRecording.iPriority = xbmcRecording.m_iPriority;
addonRecording.iLifetime = xbmcRecording.m_iLifetime;
addonRecording.strDirectory = xbmcRecording.m_strDirectory.c_str();
addonRecording.strStreamURL = xbmcRecording.m_strStreamURL.c_str();
}
示例6: GetContents
void CPVRRecordings::GetContents(const CStdString &strDirectory, CFileItemList *results)
{
for (unsigned int iRecordingPtr = 0; iRecordingPtr < m_recordings.size(); iRecordingPtr++)
{
CPVRRecording *current = m_recordings.at(iRecordingPtr);
bool directMember = !HasAllRecordingsPathExtension(strDirectory);
if (!IsDirectoryMember(RemoveAllRecordingsPathExtension(strDirectory), current->m_strDirectory, directMember))
continue;
CFileItemPtr pFileItem(new CFileItem(*current));
pFileItem->SetLabel2(current->RecordingTimeAsLocalTime().GetAsLocalizedDateTime(true, false));
pFileItem->m_dateTime = current->RecordingTimeAsLocalTime();
pFileItem->SetPath(current->m_strFileNameAndPath);
if (!current->m_strIconPath.IsEmpty())
pFileItem->SetIconImage(current->m_strIconPath);
if (!current->m_strThumbnailPath.IsEmpty())
pFileItem->SetThumbnailImage(current->m_strThumbnailPath);
if (!current->m_strFanartPath.IsEmpty())
pFileItem->SetProperty("Fanart_Image", current->m_strFanartPath);
// Set the play count either directly from client (if supported) or from video db
if (g_PVRClients->SupportsRecordingPlayCount(pFileItem->GetPVRRecordingInfoTag()->m_iClientId))
{
pFileItem->GetPVRRecordingInfoTag()->m_playCount=pFileItem->GetPVRRecordingInfoTag()->m_iRecPlayCount;
}
else
{
CVideoDatabase db;
if (db.Open())
pFileItem->GetPVRRecordingInfoTag()->m_playCount=db.GetPlayCount(*pFileItem);
}
pFileItem->SetOverlayImage(CGUIListItem::ICON_OVERLAY_UNWATCHED, pFileItem->GetPVRRecordingInfoTag()->m_playCount > 0);
// Set the resumePoint either directly from client (if supported) or from video db
int positionInSeconds = current->GetLastPlayedPosition();
if (positionInSeconds > 0)
{
// If the back-end does report a saved position then make sure there is a corresponding resume bookmark
CBookmark bookmark;
bookmark.timeInSeconds = positionInSeconds;
bookmark.totalTimeInSeconds = (double)current->GetDuration();
pFileItem->GetPVRRecordingInfoTag()->m_resumePoint = bookmark;
}
else if (positionInSeconds < 0)
{
CVideoDatabase db;
if (db.Open())
{
CBookmark bookmark;
if (db.GetResumeBookMark(current->m_strFileNameAndPath, bookmark))
pFileItem->GetPVRRecordingInfoTag()->m_resumePoint = bookmark;
db.Close();
}
}
results->Add(pFileItem);
}
}