本文整理汇总了C++中ProgramInfo::GetRecordingEndTime方法的典型用法代码示例。如果您正苦于以下问题:C++ ProgramInfo::GetRecordingEndTime方法的具体用法?C++ ProgramInfo::GetRecordingEndTime怎么用?C++ ProgramInfo::GetRecordingEndTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProgramInfo
的用法示例。
在下文中一共展示了ProgramInfo::GetRecordingEndTime方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: showStatus
void ViewScheduleDiff::showStatus(MythUIButtonListItem *item)
{
ProgramInfo *pi = CurrentProgram();
if (!pi)
return;
QString timeFormat = gCoreContext->GetSetting("TimeFormat", "h:mm AP");
QString message = pi->toString(ProgramInfo::kTitleSubtitle, " - ");
message += "\n\n";
message += RecStatus::toDescription(pi->GetRecordingStatus(),
pi->GetRecordingRuleType(),
pi->GetRecordingStartTime());
if (pi->GetRecordingStatus() == RecStatus::Conflict ||
pi->GetRecordingStatus() == RecStatus::LaterShowing)
{
message += " " + QObject::tr("The following programs will be recorded "
"instead:") + "\n\n";
ProgramList::const_iterator it = m_recListAfter.begin();
for (; it != m_recListAfter.end(); ++it)
{
const ProgramInfo *pa = *it;
if (pa->GetRecordingStartTime() >= pi->GetRecordingEndTime())
break;
if (pa->GetRecordingEndTime() > pi->GetRecordingStartTime() &&
(pa->GetRecordingStatus() == RecStatus::WillRecord ||
pa->GetRecordingStatus() == RecStatus::Recording))
{
message += QString("%1 - %2 %3\n")
.arg(pa->GetRecordingStartTime()
.toLocalTime().toString(timeFormat))
.arg(pa->GetRecordingEndTime()
.toLocalTime().toString(timeFormat))
.arg(pa->toString(ProgramInfo::kTitleSubtitle, " - "));
}
}
}
QString title = QObject::tr("Program Status");
MythScreenStack *mainStack = GetMythMainWindow()->GetStack("main stack");
MythDialogBox *dlg = new MythDialogBox(title, message, mainStack,
"statusdialog", true);
if (dlg->Create())
{
dlg->AddButton(QObject::tr("OK"));
mainStack->AddScreen(dlg);
}
else
delete dlg;
}
示例2: LoadList
void ViewScheduled::LoadList(bool useExistingData)
{
if (m_inFill)
return;
m_inFill = true;
MythUIButtonListItem *currentItem = m_schedulesList->GetItemCurrent();
QString callsign;
QDateTime startts, recstartts;
if (currentItem)
{
ProgramInfo *currentpginfo = qVariantValue<ProgramInfo*>
(currentItem->GetData());
if (currentpginfo)
{
callsign = currentpginfo->GetChannelSchedulingID();
startts = currentpginfo->GetScheduledStartTime();
recstartts = currentpginfo->GetRecordingStartTime();
}
}
QDateTime now = QDateTime::currentDateTime();
QMap<int, int> toomanycounts;
m_schedulesList->Reset();
if (m_groupList)
m_groupList->Reset();
m_recgroupList.clear();
if (!useExistingData)
LoadFromScheduler(m_recList, m_conflictBool);
ProgramList::iterator pit = m_recList.begin();
QString currentDate;
m_recgroupList[m_defaultGroup] = ProgramList(false);
m_recgroupList[m_defaultGroup].setAutoDelete(false);
while (pit != m_recList.end())
{
ProgramInfo *pginfo = *pit;
const RecStatusType recstatus = pginfo->GetRecordingStatus();
if ((pginfo->GetRecordingEndTime() >= now ||
pginfo->GetScheduledEndTime() >= now) &&
(m_showAll ||
recstatus <= rsWillRecord ||
recstatus == rsDontRecord ||
(recstatus == rsTooManyRecordings &&
++toomanycounts[pginfo->GetRecordingRuleID()] <= 1) ||
(recstatus > rsTooManyRecordings &&
recstatus != rsRepeat &&
recstatus != rsNeverRecord)))
{
m_cardref[pginfo->GetCardID()]++;
if (pginfo->GetCardID() > m_maxcard)
m_maxcard = pginfo->GetCardID();
m_inputref[pginfo->GetInputID()]++;
if (pginfo->GetInputID() > m_maxinput)
m_maxinput = pginfo->GetInputID();
QDate date = (pginfo->GetRecordingStartTime()).date();
m_recgroupList[date].push_back(pginfo);
m_recgroupList[date].setAutoDelete(false);
m_recgroupList[m_defaultGroup].push_back(pginfo);
++pit;
}
else
{
pit = m_recList.erase(pit);
continue;
}
}
if (m_groupList)
{
QString label;
QMap<QDate,ProgramList>::iterator dateit = m_recgroupList.begin();
while (dateit != m_recgroupList.end())
{
if (dateit.key().isNull())
label = tr("All");
else
label = dateit.key().toString(m_dateFormat);
new MythUIButtonListItem(m_groupList, label,
qVariantFromValue(dateit.key()));
++dateit;
}
if (!m_recgroupList.contains(m_currentGroup))
m_groupList->SetValueByData(qVariantFromValue(m_currentGroup));
}
FillList();
//.........这里部分代码省略.........
示例3: GeneratePreviewImage
QString PreviewGeneratorQueue::GeneratePreviewImage(
ProgramInfo &pginfo,
const QSize &size,
const QString &outputfile,
long long time, bool in_seconds,
QString token)
{
QString key = QString("%1_%2x%3_%4%5")
.arg(pginfo.GetBasename()).arg(size.width()).arg(size.height())
.arg(time).arg(in_seconds?"s":"f");
if (pginfo.GetAvailableStatus() == asPendingDelete)
{
SendEvent(pginfo, "PREVIEW_FAILED", key, token,
"Pending Delete", QDateTime());
return QString();
}
QString filename = (outputfile.isEmpty()) ?
pginfo.GetPathname() + ".png" : outputfile;
QString ret_file = filename;
QString ret;
bool is_special = !outputfile.isEmpty() || time >= 0 ||
size.width() || size.height();
bool needs_gen = true;
if (!is_special)
{
QDateTime previewLastModified;
bool streaming = filename.left(1) != "/";
bool locally_accessible = false;
bool bookmark_updated = false;
QDateTime bookmark_ts = pginfo.QueryBookmarkTimeStamp();
QDateTime cmp_ts;
if (bookmark_ts.isValid())
cmp_ts = bookmark_ts;
else if (MythDate::current() >= pginfo.GetRecordingEndTime())
cmp_ts = pginfo.GetLastModifiedTime();
else
cmp_ts = pginfo.GetRecordingStartTime();
if (streaming)
{
ret_file = QString("%1/remotecache/%2")
.arg(GetConfDir()).arg(filename.section('/', -1));
QFileInfo finfo(ret_file);
if (finfo.isReadable() && finfo.lastModified() >= cmp_ts)
{
// This is just an optimization to avoid
// hitting the backend if our cached copy
// is newer than the bookmark, or if we have
// a preview and do not update it when the
// bookmark changes.
previewLastModified = finfo.lastModified();
}
else if (!IsGeneratingPreview(key))
{
previewLastModified =
RemoteGetPreviewIfModified(pginfo, ret_file);
}
}
else
{
QFileInfo fi(filename);
if ((locally_accessible = fi.isReadable()))
previewLastModified = fi.lastModified();
}
bookmark_updated =
(!previewLastModified.isValid() || (previewLastModified <= cmp_ts));
if (bookmark_updated && bookmark_ts.isValid() &&
previewLastModified.isValid())
{
ClearPreviewGeneratorAttempts(key);
}
bool preview_exists = previewLastModified.isValid();
if (0)
{
QString alttext = (bookmark_ts.isValid()) ? QString() :
QString("\n\t\t\tcmp_ts: %1")
.arg(cmp_ts.toString(Qt::ISODate));
LOG(VB_GENERAL, LOG_INFO,
QString("previewLastModified: %1\n\t\t\t"
"bookmark_ts: %2%3\n\t\t\t"
"pginfo.lastmodified: %4")
.arg(previewLastModified.toString(Qt::ISODate))
.arg(bookmark_ts.toString(Qt::ISODate))
.arg(alttext)
.arg(pginfo.GetLastModifiedTime(MythDate::ISODate)) +
QString("Title: %1\n\t\t\t")
.arg(pginfo.toString(ProgramInfo::kTitleSubtitle)) +
QString("File '%1' \n\t\t\tCache '%2'")
.arg(filename).arg(ret_file) +
QString("\n\t\t\tPreview Exists: %1, Bookmark Updated: %2, "
//.........这里部分代码省略.........
示例4: EditRecording
/**
* \brief Creates a dialog for editing the recording status,
* blocking until user leaves dialog.
*/
void ScheduleCommon::EditRecording(bool may_watch_now)
{
ProgramInfo *pginfo = GetCurrentProgram();
if (!pginfo)
return;
RecordingInfo recinfo(*pginfo);
QString timeFormat = gCoreContext->GetSetting("TimeFormat", "h:mm AP");
QString message = recinfo.toString(ProgramInfo::kTitleSubtitle, " - ");
message += "\n\n";
message += RecStatus::toDescription(recinfo.GetRecordingStatus(),
recinfo.GetRecordingRuleType(),
recinfo.GetRecordingStartTime());
if (recinfo.GetRecordingStatus() == RecStatus::Conflict ||
recinfo.GetRecordingStatus() == RecStatus::LaterShowing)
{
vector<ProgramInfo *> *confList = RemoteGetConflictList(&recinfo);
if (!confList->empty())
{
message += " ";
message += tr("The following programs will be recorded instead:");
message += "\n";
}
uint maxi = 0;
for (; confList->begin() != confList->end() && maxi < 4; maxi++)
{
ProgramInfo *p = *confList->begin();
message += QString("%1 - %2 %3\n")
.arg(p->GetRecordingStartTime()
.toLocalTime().toString(timeFormat))
.arg(p->GetRecordingEndTime()
.toLocalTime().toString(timeFormat))
.arg(p->toString(ProgramInfo::kTitleSubtitle, " - "));
delete p;
confList->erase(confList->begin());
}
message += "\n";
while (!confList->empty())
{
delete confList->back();
confList->pop_back();
}
delete confList;
}
MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
MythDialogBox *menuPopup = new MythDialogBox(message, popupStack,
"recOptionPopup", true);
if (!menuPopup->Create())
{
delete menuPopup;
return;
}
menuPopup->SetReturnEvent(this, "editrecording");
QDateTime now = MythDate::current();
if(may_watch_now)
menuPopup->AddButton(tr("Watch This Channel"));
if (recinfo.GetRecordingStatus() == RecStatus::Unknown)
{
if (recinfo.GetRecordingEndTime() > now)
menuPopup->AddButton(tr("Record this showing"),
qVariantFromValue(recinfo));
menuPopup->AddButton(tr("Record all showings"),
qVariantFromValue(recinfo));
if (!recinfo.IsGeneric())
{
if (recinfo.GetCategoryType() == ProgramInfo::kCategoryMovie)
menuPopup->AddButton(tr("Record one showing"),
qVariantFromValue(recinfo));
else
menuPopup->AddButton(tr("Record one showing (this episode)"),
qVariantFromValue(recinfo));
}
menuPopup->AddButton(tr("Record all showings (this channel)"),
qVariantFromValue(recinfo));
menuPopup->AddButton(tr("Edit recording rule"),
qVariantFromValue(recinfo));
}
else if (recinfo.GetRecordingStatus() == RecStatus::Recording ||
recinfo.GetRecordingStatus() == RecStatus::Tuning ||
recinfo.GetRecordingStatus() == RecStatus::Failing ||
recinfo.GetRecordingStatus() == RecStatus::Pending)
{
if (recinfo.GetRecordingStatus() != RecStatus::Pending)
menuPopup->AddButton(tr("Stop this recording"),
qVariantFromValue(recinfo));
//.........这里部分代码省略.........
示例5: doAutoExpireList
/** \fn StatusBox::doAutoExpireList()
* \brief Show list of recordings which may AutoExpire
*/
void StatusBox::doAutoExpireList(bool updateExpList)
{
if (m_iconState)
m_iconState->DisplayState("autoexpire");
m_logList->Reset();
QString helpmsg(tr("The AutoExpire List shows all recordings "
"which may be expired and the order of "
"their expiration. Recordings at the top "
"of the list will be expired first."));
if (m_helpText)
m_helpText->SetText(helpmsg);
if (m_justHelpText)
m_justHelpText->SetText(helpmsg);
ProgramInfo* pginfo;
QString contentLine;
QString detailInfo;
QString staticInfo;
long long totalSize(0);
long long liveTVSize(0);
int liveTVCount(0);
long long deletedGroupSize(0);
int deletedGroupCount(0);
vector<ProgramInfo *>::iterator it;
if (updateExpList)
{
for (it = m_expList.begin(); it != m_expList.end(); ++it)
delete *it;
m_expList.clear();
RemoteGetAllExpiringRecordings(m_expList);
}
for (it = m_expList.begin(); it != m_expList.end(); ++it)
{
pginfo = *it;
totalSize += pginfo->GetFilesize();
if (pginfo->GetRecordingGroup() == "LiveTV")
{
liveTVSize += pginfo->GetFilesize();
liveTVCount++;
}
else if (pginfo->GetRecordingGroup() == "Deleted")
{
deletedGroupSize += pginfo->GetFilesize();
deletedGroupCount++;
}
}
staticInfo = tr("%n recording(s) consuming %1 (is) allowed to expire\n", "",
m_expList.size()).arg(sm_str(totalSize / 1024));
if (liveTVCount)
staticInfo += tr("%n (is) LiveTV and consume(s) %1\n", "", liveTVCount)
.arg(sm_str(liveTVSize / 1024));
if (deletedGroupCount)
staticInfo += tr("%n (is) Deleted and consume(s) %1\n", "",
deletedGroupCount)
.arg(sm_str(deletedGroupSize / 1024));
for (it = m_expList.begin(); it != m_expList.end(); ++it)
{
pginfo = *it;
QDateTime starttime = pginfo->GetRecordingStartTime();
QDateTime endtime = pginfo->GetRecordingEndTime();
contentLine =
MythDateTimeToString(starttime, kDateFull | kSimplify) + " - ";
contentLine +=
"(" + ProgramInfo::i18n(pginfo->GetRecordingGroup()) + ") ";
contentLine += pginfo->GetTitle() +
" (" + sm_str(pginfo->GetFilesize() / 1024) + ")";
detailInfo =
MythDateTimeToString(starttime, kDateTimeFull | kSimplify) + " - " +
MythDateTimeToString(endtime, kDateTimeFull | kSimplify);
detailInfo += " (" + sm_str(pginfo->GetFilesize() / 1024) + ")";
detailInfo += " (" + ProgramInfo::i18n(pginfo->GetRecordingGroup()) + ")";
detailInfo += "\n" + pginfo->toString(ProgramInfo::kTitleSubtitle, " - ");
AddLogLine(contentLine, staticInfo, detailInfo,
staticInfo + detailInfo);
}
}
示例6: RunCCExtract
static int RunCCExtract(const ProgramInfo &program_info)
{
QString filename = program_info.GetPlaybackURL();
if (filename.startsWith("myth://"))
{
QString msg =
QString("Only locally accessible files are supported (%1).")
.arg(program_info.GetPathname());
cerr << qPrintable(msg) << endl;
return GENERIC_EXIT_INVALID_CMDLINE;
}
if (!QFile::exists(filename))
{
cerr << qPrintable(
QString("Could not open input file (%1).").arg(filename)) << endl;
return GENERIC_EXIT_INVALID_CMDLINE;
}
RingBuffer *tmprbuf = RingBuffer::Create(filename, false);
if (!tmprbuf)
{
cerr << qPrintable(QString("Unable to create RingBuffer for %1")
.arg(filename)) << endl;
return GENERIC_EXIT_PERMISSIONS_ERROR;
}
if (program_info.GetRecordingEndTime() > MythDate::current())
{
cout << "Program will end @ "
<< qPrintable(program_info.GetRecordingEndTime(MythDate::ISODate))
<< endl;
tmprbuf->SetWaitForWrite();
}
PlayerFlags flags = (PlayerFlags)(kVideoIsNull | kAudioMuted |
kDecodeNoLoopFilter | kDecodeFewBlocks |
kDecodeLowRes | kDecodeSingleThreaded |
kDecodeNoDecode);
MythCCExtractorPlayer *ccp = new MythCCExtractorPlayer(flags, true, filename);
PlayerContext *ctx = new PlayerContext(kCCExtractorInUseID);
ctx->SetPlayingInfo(&program_info);
ctx->SetRingBuffer(tmprbuf);
ctx->SetPlayer(ccp);
ccp->SetPlayerInfo(NULL, NULL, ctx);
if (ccp->OpenFile() < 0)
{
cerr << "Failed to open " << qPrintable(filename) << endl;
return GENERIC_EXIT_NOT_OK;
}
if (!ccp->run())
{
cerr << "Failed to decode " << qPrintable(filename) << endl;
return GENERIC_EXIT_NOT_OK;
}
delete ctx;
return GENERIC_EXIT_OK;
}