本文整理汇总了C++中dtc::ProgramList类的典型用法代码示例。如果您正苦于以下问题:C++ ProgramList类的具体用法?C++ ProgramList怎么用?C++ ProgramList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ProgramList类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GetConflictList
DTC::ProgramList* Dvr::GetConflictList( int nStartIndex,
int nCount,
int nRecordId )
{
RecordingList recordingList; // Auto-delete deque
RecList tmpList; // Standard deque, objects must be deleted
if (nRecordId <= 0)
nRecordId = -1;
// NOTE: Fetching this information directly from the schedule is
// significantly faster than using ProgramInfo::LoadFromScheduler()
Scheduler *scheduler = dynamic_cast<Scheduler*>(gCoreContext->GetScheduler());
if (scheduler)
scheduler->GetAllPending(tmpList, nRecordId);
// Sort the upcoming into only those which are conflicts
RecList::iterator it = tmpList.begin();
for(; it < tmpList.end(); ++it)
{
if (((*it)->GetRecordingStatus() == RecStatus::Conflict) &&
((*it)->GetRecordingStartTime() >= MythDate::current()))
{
recordingList.push_back(new RecordingInfo(**it));
}
delete *it;
*it = NULL;
}
// ----------------------------------------------------------------------
// Build Response
// ----------------------------------------------------------------------
DTC::ProgramList *pPrograms = new DTC::ProgramList();
nStartIndex = min( nStartIndex, (int)recordingList.size() );
nCount = (nCount > 0) ? min( nCount, (int)recordingList.size() ) : recordingList.size();
int nEndIndex = min((nStartIndex + nCount), (int)recordingList.size() );
for( int n = nStartIndex; n < nEndIndex; n++)
{
ProgramInfo *pInfo = recordingList[ n ];
DTC::Program *pProgram = pPrograms->AddNewProgram();
FillProgramInfo( pProgram, pInfo, true );
}
// ----------------------------------------------------------------------
pPrograms->setStartIndex ( nStartIndex );
pPrograms->setCount ( nCount );
pPrograms->setTotalAvailable( recordingList.size() );
pPrograms->setAsOf ( MythDate::current() );
pPrograms->setVersion ( MYTH_BINARY_VERSION );
pPrograms->setProtoVer ( MYTH_PROTO_VERSION );
return pPrograms;
}
开发者ID:jshattoc,项目名称:mythtv,代码行数:59,代码来源:dvr.cpp
示例2: GetConflictList
DTC::ProgramList* Dvr::GetConflictList( int nStartIndex,
int nCount,
int nRecordId )
{
RecordingList recordingList;
RecordingList tmpList;
bool hasConflicts;
if (nRecordId <= 0)
nRecordId = -1;
LoadFromScheduler(tmpList, hasConflicts, "", nRecordId);
// Sort the upcoming into only those which are conflicts
RecordingList::iterator it = tmpList.begin();
for(; it < tmpList.end(); ++it)
{
if (nRecordId > 0 &&
(*it)->GetRecordingRuleID() != static_cast<uint>(nRecordId))
continue;
if (((*it)->GetRecordingStatus() == RecStatus::Conflict) &&
((*it)->GetRecordingStartTime() >= MythDate::current()))
{
recordingList.push_back(new RecordingInfo(**it));
}
}
// ----------------------------------------------------------------------
// Build Response
// ----------------------------------------------------------------------
DTC::ProgramList *pPrograms = new DTC::ProgramList();
nStartIndex = min( nStartIndex, (int)recordingList.size() );
nCount = (nCount > 0) ? min( nCount, (int)recordingList.size() ) : recordingList.size();
int nEndIndex = min((nStartIndex + nCount), (int)recordingList.size() );
for( int n = nStartIndex; n < nEndIndex; n++)
{
ProgramInfo *pInfo = recordingList[ n ];
DTC::Program *pProgram = pPrograms->AddNewProgram();
FillProgramInfo( pProgram, pInfo, true );
}
// ----------------------------------------------------------------------
pPrograms->setStartIndex ( nStartIndex );
pPrograms->setCount ( nCount );
pPrograms->setTotalAvailable( recordingList.size() );
pPrograms->setAsOf ( MythDate::current() );
pPrograms->setVersion ( MYTH_BINARY_VERSION );
pPrograms->setProtoVer ( MYTH_PROTO_VERSION );
return pPrograms;
}
开发者ID:dhaber,项目名称:mythtv,代码行数:58,代码来源:dvr.cpp
示例3: GetUpcomingList
DTC::ProgramList* Dvr::GetUpcomingList( int nStartIndex,
int nCount,
bool bShowAll )
{
RecordingList recordingList;
RecordingList tmpList;
bool hasConflicts;
LoadFromScheduler(tmpList, hasConflicts);
// Sort the upcoming into only those which will record
RecordingList::iterator it = tmpList.begin();
for(; it < tmpList.end(); ++it)
{
if (!bShowAll && ((*it)->GetRecordingStatus() <= rsWillRecord) &&
((*it)->GetRecordingStartTime() >=
QDateTime::currentDateTime()))
{
recordingList.push_back(new RecordingInfo(**it));
}
else if (bShowAll && ((*it)->GetRecordingStartTime() >=
QDateTime::currentDateTime()))
{
recordingList.push_back(new RecordingInfo(**it));
}
}
// ----------------------------------------------------------------------
// Build Response
// ----------------------------------------------------------------------
DTC::ProgramList *pPrograms = new DTC::ProgramList();
nStartIndex = min( nStartIndex, (int)recordingList.size() );
nCount = (nCount > 0) ? min( nCount, (int)recordingList.size() ) : recordingList.size();
int nEndIndex = min((nStartIndex + nCount), (int)recordingList.size() );
for( int n = nStartIndex; n < nEndIndex; n++)
{
ProgramInfo *pInfo = recordingList[ n ];
DTC::Program *pProgram = pPrograms->AddNewProgram();
FillProgramInfo( pProgram, pInfo, true );
}
// ----------------------------------------------------------------------
pPrograms->setStartIndex ( nStartIndex );
pPrograms->setCount ( nCount );
pPrograms->setTotalAvailable( recordingList.size() );
pPrograms->setAsOf ( QDateTime::currentDateTime() );
pPrograms->setVersion ( MYTH_BINARY_VERSION );
pPrograms->setProtoVer ( MYTH_PROTO_VERSION );
return pPrograms;
}
开发者ID:StefanRoss,项目名称:mythtv,代码行数:56,代码来源:dvr.cpp
示例4: GetExpiringList
DTC::ProgramList* Dvr::GetExpiringList( int nStartIndex,
int nCount )
{
pginfolist_t infoList;
if (expirer)
expirer->GetAllExpiring( infoList );
// ----------------------------------------------------------------------
// Build Response
// ----------------------------------------------------------------------
DTC::ProgramList *pPrograms = new DTC::ProgramList();
nStartIndex = min( nStartIndex, (int)infoList.size() );
nCount = (nCount > 0) ? min( nCount, (int)infoList.size() ) : infoList.size();
int nEndIndex = min((nStartIndex + nCount), (int)infoList.size() );
for( int n = nStartIndex; n < nEndIndex; n++)
{
ProgramInfo *pInfo = infoList[ n ];
if (pInfo != NULL)
{
DTC::Program *pProgram = pPrograms->AddNewProgram();
FillProgramInfo( pProgram, pInfo, true );
delete pInfo;
}
}
// ----------------------------------------------------------------------
pPrograms->setStartIndex ( nStartIndex );
pPrograms->setCount ( nCount );
pPrograms->setTotalAvailable( infoList.size() );
pPrograms->setAsOf ( MythDate::current() );
pPrograms->setVersion ( MYTH_BINARY_VERSION );
pPrograms->setProtoVer ( MYTH_PROTO_VERSION );
return pPrograms;
}
开发者ID:dhaber,项目名称:mythtv,代码行数:43,代码来源:dvr.cpp
示例5: GetProgramList
DTC::ProgramList* Guide::GetProgramList(int nStartIndex,
int nCount,
const QDateTime& rawStartTime,
const QDateTime& rawEndTime,
int nChanId,
const QString& sTitleFilter,
const QString& sCategoryFilter,
const QString& sPersonFilter,
const QString& sKeywordFilter,
bool bOnlyNew,
bool bDetails,
const QString &sSort,
bool bDescending)
{
if (!rawStartTime.isNull() && !rawStartTime.isValid())
throw( "StartTime is invalid" );
if (!rawEndTime.isNull() && !rawEndTime.isValid())
throw( "EndTime is invalid" );
QDateTime dtStartTime = rawStartTime;
QDateTime dtEndTime = rawEndTime;
if (!rawEndTime.isNull() && dtEndTime < dtStartTime)
throw( "EndTime is before StartTime");
MSqlQuery query(MSqlQuery::InitCon());
// ----------------------------------------------------------------------
// Build SQL statement for Program Listing
// ----------------------------------------------------------------------
ProgramList progList;
ProgramList schedList;
MSqlBindings bindings;
QString sSQL;
if (!sPersonFilter.isEmpty())
{
sSQL = ", people, credits " // LEFT JOIN
"WHERE people.name LIKE :PersonFilter "
"AND credits.person = people.person "
"AND program.chanid = credits.chanid "
"AND program.starttime = credits.starttime AND ";
bindings[":PersonFilter"] = QString("%%1%").arg(sPersonFilter);
}
else
sSQL = "WHERE ";
sSQL += "visible != 0 AND program.manualid = 0 "; // Exclude programmes created purely for 'manual' recording schedules
if (nChanId < 0)
nChanId = 0;
if (nChanId > 0)
{
sSQL += "AND program.chanid = :ChanId ";
bindings[":ChanId"] = nChanId;
}
if (dtStartTime.isNull())
dtStartTime = QDateTime::currentDateTimeUtc();
sSQL += " AND program.endtime >= :StartDate ";
bindings[":StartDate"] = dtStartTime;
if (!dtEndTime.isNull())
{
sSQL += "AND program.starttime <= :EndDate ";
bindings[":EndDate"] = dtEndTime;
}
if (!sTitleFilter.isEmpty())
{
sSQL += "AND program.title LIKE :Title ";
bindings[":Title"] = QString("%%1%").arg(sTitleFilter);
}
if (!sCategoryFilter.isEmpty())
{
sSQL += "AND program.category LIKE :Category ";
bindings[":Category"] = sCategoryFilter;
}
if (!sKeywordFilter.isEmpty())
{
sSQL += "AND (program.title LIKE :Keyword1 "
"OR program.subtitle LIKE :Keyword2 "
"OR program.description LIKE :Keyword3) ";
QString filter = QString("%%1%").arg(sKeywordFilter);
bindings[":Keyword1"] = filter;
bindings[":Keyword2"] = filter;
bindings[":Keyword3"] = filter;
}
if (sSort == "starttime")
sSQL += "ORDER BY program.starttime ";
//.........这里部分代码省略.........
开发者ID:chadparry,项目名称:mythtv,代码行数:101,代码来源:guide.cpp
示例6: GetRecordedList
DTC::ProgramList* Dvr::GetRecordedList( bool bDescending,
int nStartIndex,
int nCount,
const QString &sTitleRegEx,
const QString &sRecGroup,
const QString &sStorageGroup )
{
QMap< QString, ProgramInfo* > recMap;
if (gCoreContext->GetScheduler())
recMap = gCoreContext->GetScheduler()->GetRecording();
QMap< QString, uint32_t > inUseMap = ProgramInfo::QueryInUseMap();
QMap< QString, bool > isJobRunning= ProgramInfo::QueryJobsRunning(JOB_COMMFLAG);
ProgramList progList;
int desc = 1;
if (bDescending)
desc = -1;
LoadFromRecorded( progList, false, inUseMap, isJobRunning, recMap, desc );
QMap< QString, ProgramInfo* >::iterator mit = recMap.begin();
for (; mit != recMap.end(); mit = recMap.erase(mit))
delete *mit;
// ----------------------------------------------------------------------
// Build Response
// ----------------------------------------------------------------------
DTC::ProgramList *pPrograms = new DTC::ProgramList();
int nAvailable = 0;
int nMax = (nCount > 0) ? nCount : progList.size();
nAvailable = 0;
nCount = 0;
QRegExp rTitleRegEx = QRegExp(sTitleRegEx, Qt::CaseInsensitive);
for( unsigned int n = 0; n < progList.size(); n++)
{
ProgramInfo *pInfo = progList[ n ];
if (pInfo->IsDeletePending() ||
(!sTitleRegEx.isEmpty() && !pInfo->GetTitle().contains(rTitleRegEx)) ||
(!sRecGroup.isEmpty() && sRecGroup != pInfo->GetRecordingGroup()) ||
(!sStorageGroup.isEmpty() && sStorageGroup != pInfo->GetStorageGroup()))
continue;
if ((nAvailable < nStartIndex) ||
(nCount >= nMax))
{
++nAvailable;
continue;
}
++nAvailable;
++nCount;
DTC::Program *pProgram = pPrograms->AddNewProgram();
FillProgramInfo( pProgram, pInfo, true );
}
// ----------------------------------------------------------------------
pPrograms->setStartIndex ( nStartIndex );
pPrograms->setCount ( nCount );
pPrograms->setTotalAvailable( nAvailable );
pPrograms->setAsOf ( MythDate::current() );
pPrograms->setVersion ( MYTH_BINARY_VERSION );
pPrograms->setProtoVer ( MYTH_PROTO_VERSION );
return pPrograms;
}
开发者ID:dhaber,项目名称:mythtv,代码行数:78,代码来源:dvr.cpp
注:本文中的dtc::ProgramList类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论