本文整理汇总了C++中DTVMultiplex::FillFromDB方法的典型用法代码示例。如果您正苦于以下问题:C++ DTVMultiplex::FillFromDB方法的具体用法?C++ DTVMultiplex::FillFromDB怎么用?C++ DTVMultiplex::FillFromDB使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DTVMultiplex
的用法示例。
在下文中一共展示了DTVMultiplex::FillFromDB方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetChannelByString
bool DVBChannel::SetChannelByString(const QString &channum)
{
QString tmp = QString("SetChannelByString(%1): ").arg(channum);
QString loc = LOC + tmp;
QString loc_err = LOC_ERR + tmp;
VERBOSE(VB_CHANNEL, loc);
if (!IsOpen())
{
VERBOSE(VB_IMPORTANT, loc_err + "Channel object "
"will not open, cannot change channels.");
ClearDTVInfo();
return false;
}
ClearDTVInfo();
QString inputName;
if (!CheckChannel(channum, inputName))
{
VERBOSE(VB_IMPORTANT, loc_err +
"CheckChannel failed.\n\t\t\tPlease verify the channel "
"in the 'mythtv-setup' Channel Editor.");
return false;
}
// If CheckChannel filled in the inputName we need to change inputs.
if (!inputName.isEmpty() && (nextInputID == m_currentInputID))
nextInputID = GetInputByName(inputName);
// Get the input data for the channel
int inputid = (nextInputID >= 0) ? nextInputID : m_currentInputID;
InputMap::const_iterator it = m_inputs.find(inputid);
if (it == m_inputs.end())
return false;
uint mplexid_restriction;
if (!IsInputAvailable(inputid, mplexid_restriction))
{
VERBOSE(VB_IMPORTANT, loc_err + "Input is not available");
return false;
}
// Get the input data for the channel
QString tvformat, modulation, freqtable, freqid, si_std;
int finetune;
uint64_t frequency;
int mpeg_prog_num;
uint atsc_major, atsc_minor, mplexid, tsid, netid;
if (!ChannelUtil::GetChannelData(
(*it)->sourceid, channum,
tvformat, modulation, freqtable, freqid,
finetune, frequency,
si_std, mpeg_prog_num, atsc_major, atsc_minor, tsid, netid,
mplexid, m_commfree))
{
VERBOSE(VB_IMPORTANT, loc_err +
"Unable to find channel in database.");
return false;
}
if (mplexid_restriction && (mplexid != mplexid_restriction))
{
VERBOSE(VB_IMPORTANT, loc_err + "Multiplex is not available");
return false;
}
// Initialize basic the tuning parameters
DTVMultiplex tuning;
if (!mplexid || !tuning.FillFromDB(tunerType, mplexid))
{
VERBOSE(VB_IMPORTANT, loc_err +
"Failed to initialize multiplex options");
return false;
}
SetDTVInfo(atsc_major, atsc_minor, netid, tsid, mpeg_prog_num);
// Try to fix any problems with the multiplex
CheckOptions(tuning);
if (!Tune(tuning, inputid))
{
VERBOSE(VB_IMPORTANT, loc_err + "Tuning to frequency.");
ClearDTVInfo();
return false;
}
QString tmpX = channum; tmpX.detach();
m_curchannelname = tmpX;
VERBOSE(VB_CHANNEL, loc + "Tuned to frequency.");
//.........这里部分代码省略.........