本文整理汇总了C++中ProgramList类的典型用法代码示例。如果您正苦于以下问题:C++ ProgramList类的具体用法?C++ ProgramList怎么用?C++ ProgramList使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ProgramList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleAllRecordings
void LookerUpper::HandleAllRecordings()
{
QMap< QString, ProgramInfo* > recMap;
QMap< QString, uint32_t > inUseMap = ProgramInfo::QueryInUseMap();
QMap< QString, bool > isJobRunning = ProgramInfo::QueryJobsRunning(JOB_COMMFLAG);
ProgramList progList;
LoadFromRecorded( progList, false, inUseMap, isJobRunning, recMap, -1 );
for( int n = 0; n < (int)progList.size(); n++)
{
ProgramInfo *pginfo = new ProgramInfo(*(progList[n]));
if (pginfo->GetInetRef().isEmpty() ||
(!pginfo->GetSubtitle().isEmpty() &&
(pginfo->GetSeason() == 0) &&
(pginfo->GetEpisode() == 0)))
{
QString msg = QString("Looking up: %1 %2").arg(pginfo->GetTitle())
.arg(pginfo->GetSubtitle());
VERBOSE(VB_IMPORTANT, msg);
m_busyRecList.append(pginfo);
m_metadataFactory->Lookup(pginfo, false, false);
}
}
}
示例2: LoadFromScheduler
void ProgramRecPriority::countMatches()
{
m_listMatch.clear();
m_conMatch.clear();
m_nowMatch.clear();
m_recMatch.clear();
ProgramList schedList;
LoadFromScheduler(schedList);
QDateTime now = MythDate::current();
ProgramList::const_iterator it = schedList.begin();
for (; it != schedList.end(); ++it)
{
const RecStatus::Type recstatus = (**it).GetRecordingStatus();
const uint recordid = (**it).GetRecordingRuleID();
if ((**it).GetRecordingEndTime() > now && recstatus != RecStatus::NotListed)
{
m_listMatch[recordid]++;
if (recstatus == RecStatus::Conflict || recstatus == RecStatus::Offline)
m_conMatch[recordid]++;
else if (recstatus == RecStatus::WillRecord)
m_recMatch[recordid]++;
else if (recstatus == RecStatus::Recording)
{
m_nowMatch[recordid]++;
m_recMatch[recordid]++;
}
}
}
}
示例3: createFromXml
void Bank::createFromXml( istringstream& is, ProgramList& list )
{
Document doc;
try
{
doc.Parse( is.str(), true );
Node* moduleNode = doc.FirstChild( "Module", false );
if( moduleNode != NULL )
{
Program* program = new Program();
createFromXml( is, *program );
list.push_back( program );
}
else {
Iterator< Element > it( "Program" );
for( it = it.begin( &doc ); it != it.end(); it++ )
{
Program* program = new Program();
Element* programElement = it.Get();
readProgram( programElement, program );
list.push_back( program );
}
}
}
catch( const exception& e ) {
TRACE( e.what() );
}
}
示例4: CopyRuleInetrefsToRecordings
void LookerUpper::CopyRuleInetrefsToRecordings()
{
QMap< QString, ProgramInfo* > recMap;
QMap< QString, uint32_t > inUseMap = ProgramInfo::QueryInUseMap();
QMap< QString, bool > isJobRunning = ProgramInfo::QueryJobsRunning(JOB_COMMFLAG);
ProgramList progList;
LoadFromRecorded( progList, false, inUseMap, isJobRunning, recMap, -1 );
for( int n = 0; n < (int)progList.size(); n++)
{
ProgramInfo *pginfo = new ProgramInfo(*(progList[n]));
if (pginfo && pginfo->GetInetRef().isEmpty())
{
RecordingRule *rule = new RecordingRule();
rule->m_recordID = pginfo->GetRecordingRuleID();
rule->Load();
if (!rule->m_inetref.isEmpty())
{
QString msg = QString("%1").arg(pginfo->GetTitle());
if (!pginfo->GetSubtitle().isEmpty())
msg += QString(": %1").arg(pginfo->GetSubtitle());
msg += " has no inetref, but its recording rule does. Copying...";
LOG(VB_GENERAL, LOG_INFO, msg);
pginfo->SaveInetRef(rule->m_inetref);
}
delete rule;
}
delete pginfo;
}
}
示例5: HandleAllRecordings
void LookerUpper::HandleAllRecordings(bool updaterules)
{
QMap< QString, ProgramInfo* > recMap;
QMap< QString, uint32_t > inUseMap = ProgramInfo::QueryInUseMap();
QMap< QString, bool > isJobRunning = ProgramInfo::QueryJobsRunning(JOB_COMMFLAG);
m_updaterules = updaterules;
ProgramList progList;
LoadFromRecorded( progList, false, inUseMap, isJobRunning, recMap, -1 );
for( int n = 0; n < (int)progList.size(); n++)
{
ProgramInfo *pginfo = new ProgramInfo(*(progList[n]));
if ((pginfo->GetRecordingGroup() != "Deleted") &&
(pginfo->GetRecordingGroup() != "LiveTV") &&
(pginfo->GetInetRef().isEmpty() ||
(!pginfo->GetSubtitle().isEmpty() &&
(pginfo->GetSeason() == 0) &&
(pginfo->GetEpisode() == 0))))
{
QString msg = QString("Looking up: %1 %2").arg(pginfo->GetTitle())
.arg(pginfo->GetSubtitle());
LOG(VB_GENERAL, LOG_INFO, msg);
m_busyRecList.append(pginfo);
m_metadataFactory->Lookup(pginfo, true, false, false);
}
else
delete pginfo;
}
}
示例6:
OnsetDetector::ProgramList
OnsetDetector::getPrograms() const
{
ProgramList programs;
programs.push_back("");
programs.push_back("General purpose");
programs.push_back("Soft onsets");
programs.push_back("Percussive onsets");
return programs;
}
示例7: getPrograms
TemplateDetector::ProgramList TemplateDetector::getPrograms() const {
ProgramList list;
list.push_back("blow1");
list.push_back("blow2");
// If you have no programs, return an empty list (or simply don't
// implement this function or getCurrentProgram/selectProgram)
return list;
}
示例8:
PluginHostAdapter::ProgramList
PluginHostAdapter::getPrograms() const
{
ProgramList list;
for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
list.push_back(m_descriptor->programs[i]);
}
return list;
}
示例9:
ProgramList
MidiDevice::getPrograms(const MidiBank &bank) const
{
ProgramList programs;
for (ProgramList::const_iterator it = m_programList.begin();
it != m_programList.end(); ++it) {
if (it->getBank() == bank) programs.push_back(*it);
}
return programs;
}
示例10:
ProgramList
MidiProgramsEditor::getBankSubset(const MidiBank &bank)
{
ProgramList program;
ProgramList::iterator it;
for (it = m_programList.begin(); it != m_programList.end(); ++it) {
if (it->getBank() == bank)
program.push_back(*it);
}
return program;
}
示例11: GetProgramDetailList
bool GetProgramDetailList(
QDateTime &nextRecordingStart, bool *hasConflicts, ProgramDetailList *list)
{
nextRecordingStart = QDateTime();
bool dummy;
bool *conflicts = (hasConflicts) ? hasConflicts : &dummy;
ProgramList progList;
if (!LoadFromScheduler(progList, *conflicts))
return false;
// find the earliest scheduled recording
ProgramList::const_iterator it = progList.begin();
for (; it != progList.end(); ++it)
{
if (((*it)->GetRecordingStatus() == rsWillRecord) &&
(nextRecordingStart.isNull() ||
nextRecordingStart > (*it)->GetRecordingStartTime()))
{
nextRecordingStart = (*it)->GetRecordingStartTime();
}
}
if (!list)
return true;
// save the details of the earliest recording(s)
for (it = progList.begin(); it != progList.end(); ++it)
{
if (((*it)->GetRecordingStatus() == rsWillRecord) &&
((*it)->GetRecordingStartTime() == nextRecordingStart))
{
ProgramDetail prog;
prog.channame = (*it)->GetChannelName();
prog.title = (*it)->GetTitle();
prog.subtitle = (*it)->GetSubtitle();
prog.startTime = (*it)->GetRecordingStartTime();
prog.endTime = (*it)->GetRecordingEndTime();
list->push_back(prog);
}
}
return true;
}
示例12: throw
DTC::Program* Guide::GetProgramDetails( int nChanId,
const QDateTime &dtStartTime )
{
if (!dtStartTime.isValid())
throw( "StartTime is invalid" );
// ----------------------------------------------------------------------
// -=>TODO: Add support for getting Recorded Program Info
// ----------------------------------------------------------------------
// Build add'l SQL statement for Program Listing
MSqlBindings bindings;
QString sSQL = "WHERE program.chanid = :ChanId "
"AND program.starttime = :StartTime ";
bindings[":ChanId" ] = nChanId;
bindings[":StartTime"] = dtStartTime;
// Get all Pending Scheduled Programs
ProgramList schedList;
bool hasConflicts;
LoadFromScheduler(schedList, hasConflicts);
// ----------------------------------------------------------------------
ProgramList progList;
LoadFromProgram( progList, sSQL, bindings, schedList, false );
if ( progList.size() == 0)
throw( "Error Reading Program Info" );
// Build Response
DTC::Program *pProgram = new DTC::Program();
ProgramInfo *pInfo = progList[ 0 ];
FillProgramInfo( pProgram, pInfo, true );
return pProgram;
}
示例13: addProgram
void
MidiDevice::mergeProgramList(const ProgramList &programList)
{
ProgramList::const_iterator it;
ProgramList::iterator oIt;
bool clash = false;
for (it = programList.begin(); it != programList.end(); ++it)
{
for (oIt = m_programList.begin(); oIt != m_programList.end(); ++oIt)
{
if (*it == *oIt)
{
clash = true;
break;
}
}
if (clash == false)
addProgram(*it);
else
clash = false;
}
}
示例14: throw
DTC::ProgramGuide *Guide::GetProgramGuide( const QDateTime &rawStartTime ,
const QDateTime &rawEndTime ,
bool bDetails,
int nChannelGroupId,
int nStartIndex,
int nCount)
{
if (!rawStartTime.isValid())
throw( "StartTime is invalid" );
if (!rawEndTime.isValid())
throw( "EndTime is invalid" );
QDateTime dtStartTime = rawStartTime.toUTC();
QDateTime dtEndTime = rawEndTime.toUTC();
if (dtEndTime < dtStartTime)
throw( "EndTime is before StartTime");
if (nStartIndex <= 0)
nStartIndex = 0;
if (nCount <= 0)
nCount = 20000;
// ----------------------------------------------------------------------
// Load the channel list
// ----------------------------------------------------------------------
uint nTotalAvailable = 0;
ChannelInfoList chanList = ChannelUtil::LoadChannels(nStartIndex, nCount,
nTotalAvailable, true,
ChannelUtil::kChanOrderByChanNum,
ChannelUtil::kChanGroupByCallsign,
0,
nChannelGroupId);
// ----------------------------------------------------------------------
// Build SQL statement for Program Listing
// ----------------------------------------------------------------------
ProgramList schedList;
MSqlBindings bindings;
QString sWhere = "program.chanid = :CHANID "
"AND program.endtime >= :STARTDATE "
"AND program.starttime < :ENDDATE "
"AND program.starttime >= :STARTDATELIMIT "
"AND program.manualid = 0"; // Omit 'manual' recordings scheds
QString sGroupBy = "program.starttime, channel.channum,"
"channel.callsign, program.title";
QString sOrderBy = "program.starttime";
bindings[":STARTDATE" ] = dtStartTime;
bindings[":STARTDATELIMIT"] = dtStartTime.addDays(-1);
bindings[":ENDDATE" ] = dtEndTime;
// ----------------------------------------------------------------------
// Get all Pending Scheduled Programs
// ----------------------------------------------------------------------
// 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(schedList);
// ----------------------------------------------------------------------
// Build Response
// ----------------------------------------------------------------------
DTC::ProgramGuide *pGuide = new DTC::ProgramGuide();
ChannelInfoList::iterator chan_it;
for (chan_it = chanList.begin(); chan_it != chanList.end(); ++chan_it)
{
// Create ChannelInfo Object
DTC::ChannelInfo *pChannel = NULL;
pChannel = pGuide->AddNewChannel();
FillChannelInfo( pChannel, (*chan_it), bDetails );
// Load the list of programmes for this channel
ProgramList progList;
bindings[":CHANID"] = (*chan_it).chanid;
LoadFromProgram( progList, sWhere, sOrderBy, sOrderBy, bindings,
schedList );
// Create Program objects and add them to the channel object
ProgramList::iterator progIt;
for( progIt = progList.begin(); progIt != progList.end(); ++progIt)
{
DTC::Program *pProgram = pChannel->AddNewProgram();
FillProgramInfo( pProgram, *progIt, false, bDetails, false ); // No cast info
}
}
// ----------------------------------------------------------------------
//.........这里部分代码省略.........
示例15: getSelectedInstrument
void
MIDIInstrumentParameterPanel::updateProgramComboBox()
{
RG_DEBUG << "updateProgramComboBox()";
if (!getSelectedInstrument())
return;
MidiDevice *md =
dynamic_cast<MidiDevice *>(getSelectedInstrument()->getDevice());
if (!md) {
std::cerr << "WARNING: MIDIInstrumentParameterPanel::updateProgramComboBox(): No MidiDevice for Instrument " << getSelectedInstrument()->getId() << '\n';
return;
}
RG_DEBUG << "updateProgramComboBox(): variation type is " << md->getVariationType();
MidiBank bank = getSelectedInstrument()->getProgram().getBank();
ProgramList programs =
md->getPrograms0thVariation(getSelectedInstrument()->isPercussion(), bank);
// Remove the programs that have no name.
programs.erase(std::remove_if(programs.begin(), programs.end(),
MIDIInstrumentParameterPanel::hasNoName),
programs.end());
// If we've got programs, show the Program widgets.
// Why not "show = (programs.size()>1)"? Because that would hide the
// program checkbox which would take away the user's ability to
// enable/disable program changes. If we do away with the checkbox
// in the future, we should re-evaluate this decision.
bool show = !programs.empty();
m_programLabel->setVisible(show);
m_programCheckBox->setVisible(show);
m_programComboBox->setVisible(show);
int currentProgram = -1;
// Compute the current program.
for (unsigned i = 0; i < programs.size(); ++i) {
// If the program change is the same...
if (getSelectedInstrument()->getProgram().getProgram() == programs[i].getProgram()) {
currentProgram = i;
break;
}
}
// If the programs have changed, we need to repopulate the combobox.
if (!partialCompareWithName(programs, m_programs))
{
// Update the cache.
m_programs = programs;
// Copy from m_programs to m_programComboBox.
m_programComboBox->clear();
for (unsigned i = 0; i < m_programs.size(); ++i) {
m_programComboBox->addItem(QObject::tr("%1. %2")
.arg(m_programs[i].getProgram() + 1)
.arg(QObject::tr(m_programs[i].getName().c_str())));
}
}
m_programComboBox->setEnabled(getSelectedInstrument()->sendsProgramChange());
#if 0
// ??? This is a pretty nifty idea, but unfortunately, it requires
// that we maintain a bogus combobox entry. For now, we'll go
// with the simpler "unselected" approach.
// If the current program was not found...
if (currentProgram < 0 && !m_programs.empty()) {
// Format program change and add to combobox.
MidiByte programChange = getSelectedInstrument()->getProgram().getProgram();
m_programComboBox.addItem(QString::number(programChange + 1));
currentProgram = programs.size();
}
#endif
// Display the current program.
m_programComboBox->setCurrentIndex(currentProgram);
}