本文整理汇总了C++中ProgramInfo::GetScheduledEndTime方法的典型用法代码示例。如果您正苦于以下问题:C++ ProgramInfo::GetScheduledEndTime方法的具体用法?C++ ProgramInfo::GetScheduledEndTime怎么用?C++ ProgramInfo::GetScheduledEndTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProgramInfo
的用法示例。
在下文中一共展示了ProgramInfo::GetScheduledEndTime方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: query
/** \brief Fills RecordingInfo for the program that airs at
* "desiredts" on "chanid".
* \param chanid %Channel ID on which to search for program.
* \param desiredts Date and Time for which we desire the program.
* \param genUnknown Generate a full entry for live-tv if unknown
* \param maxHours Clamp the maximum time to X hours from dtime.
* \return LoadStatus describing what happened.
*/
RecordingInfo::RecordingInfo(
uint _chanid, const QDateTime &desiredts,
bool genUnknown, uint maxHours, LoadStatus *status) :
oldrecstatus(rsUnknown),
savedrecstatus(rsUnknown),
future(false),
schedorder(0),
mplexid(0),
desiredrecstartts(),
desiredrecendts(),
record(NULL)
{
ProgramList schedList;
ProgramList progList;
MSqlBindings bindings;
QString querystr = "WHERE program.chanid = :CHANID AND "
" program.starttime < :STARTTS1 AND "
" program.endtime > :STARTTS2 ";
bindings[":CHANID"] = QString::number(_chanid);
QDateTime query_startts = desiredts.addSecs(50 - desiredts.time().second());
bindings[":STARTTS1"] = query_startts;
bindings[":STARTTS2"] = query_startts;
::LoadFromScheduler(schedList);
LoadFromProgram(progList, querystr, bindings, schedList);
if (!progList.empty())
{
ProgramInfo *pginfo = progList[0];
if (maxHours > 0)
{
if (desiredts.secsTo(
pginfo->GetScheduledEndTime()) > (int)maxHours * 3600)
{
pginfo->SetScheduledEndTime(desiredts.addSecs(maxHours * 3600));
pginfo->SetRecordingEndTime(pginfo->GetScheduledEndTime());
}
}
*this = *pginfo;
if (status)
*status = kFoundProgram;
return;
}
recstartts = startts = desiredts;
recendts = endts = desiredts;
lastmodified = desiredts;
MSqlQuery query(MSqlQuery::InitCon());
query.prepare("SELECT chanid, channum, callsign, name, "
"commmethod, outputfilters "
"FROM channel "
"WHERE chanid = :CHANID");
query.bindValue(":CHANID", _chanid);
if (!query.exec())
{
MythDB::DBError("Loading Program overlapping a datetime", query);
if (status)
*status = kNoProgram;
return;
}
if (!query.next())
{
if (status)
*status = kNoProgram;
return;
}
chanid = query.value(0).toUInt();
chanstr = query.value(1).toString();
chansign = query.value(2).toString();
channame = query.value(3).toString();
programflags &= ~FL_CHANCOMMFREE;
programflags |= (query.value(4).toInt() == COMM_DETECT_COMMFREE) ?
FL_CHANCOMMFREE : 0;
chanplaybackfilters = query.value(5).toString();
{
QMutexLocker locker(&staticDataLock);
if (unknownTitle.isEmpty())
unknownTitle = gCoreContext->GetSetting("UnknownTitle");
title = unknownTitle;
title.detach();
}
if (!genUnknown)
{
//.........这里部分代码省略.........
示例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: updateRecordingList
void RecordingSelector::updateRecordingList(void)
{
if (!m_recordingList || m_recordingList->empty())
return;
m_recordingButtonList->Reset();
if (m_categorySelector)
{
ProgramInfo *p;
vector<ProgramInfo *>::iterator i = m_recordingList->begin();
for ( ; i != m_recordingList->end(); ++i)
{
p = *i;
if (p->GetTitle() == m_categorySelector->GetValue() ||
m_categorySelector->GetValue() == tr("All Recordings"))
{
MythUIButtonListItem* item = new MythUIButtonListItem(
m_recordingButtonList,
p->GetTitle() + " ~ " +
p->GetScheduledStartTime().toLocalTime()
.toString("dd MMM yy (hh:mm)"));
item->setCheckable(true);
if (m_selectedList.indexOf((ProgramInfo *) p) != -1)
{
item->setChecked(MythUIButtonListItem::FullChecked);
}
else
{
item->setChecked(MythUIButtonListItem::NotChecked);
}
QString title = p->GetTitle();
QString subtitle = p->GetSubtitle();
QDateTime recstartts = p->GetScheduledStartTime();
QDateTime recendts = p->GetScheduledEndTime();
QString timedate = QString("%1 - %2")
.arg(MythDate::toString(recstartts,MythDate::kDateTimeFull))
.arg(MythDate::toString(recendts, MythDate::kTime));
uint season = p->GetSeason();
uint episode = p->GetEpisode();
QString seasone, seasonx;
if (season && episode)
{
seasone = QString("s%1e%2")
.arg(format_season_and_episode(season, 2))
.arg(format_season_and_episode(episode, 2));
seasonx = QString("%1x%2")
.arg(format_season_and_episode(season, 1))
.arg(format_season_and_episode(episode, 2));
}
item->SetText(title, "title");
item->SetText(subtitle, "subtitle");
if (subtitle.isEmpty())
item->SetText(title, "titlesubtitle");
else
item->SetText(title + " - \"" + subtitle + '"',
"titlesubtitle");
item->SetText(timedate, "timedate");
item->SetText(p->GetDescription(), "description");
item->SetText(formatSize(p->GetFilesize() / 1024),
"filesize_str");
item->SetText(QString::number(season), "season");
item->SetText(QString::number(episode), "episode");
item->SetText(seasonx, "00x00");
item->SetText(seasone, "s00e00");
item->DisplayState(p->HasCutlist() ? "yes" : "no", "cutlist");
item->SetData(qVariantFromValue(p));
}
qApp->processEvents();
}
}
m_recordingButtonList->SetItemCurrent(m_recordingButtonList->GetItemFirst());
titleChanged(m_recordingButtonList->GetItemCurrent());
}