Ticket #1847: inputs.diff
File inputs.diff, 2.4 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/dvbchannel.h
109 109 int cardnum; ///< DVB Card number 110 110 bool has_crc_bug; ///< true iff our driver munges PMT 111 111 int nextInputID; ///< Signal an input change 112 QString nextInputName; ///< Contains name of the new input or null 112 113 }; 113 114 114 115 #endif -
libs/libmythtv/dvbchannel.cpp
89 89 bzero(&info, sizeof(info)); 90 90 has_crc_bug = CardUtil::HasDVBCRCBug(aCardNum); 91 91 sigmon_delay = CardUtil::GetMinSignalMonitoringDelay(aCardNum); 92 93 nextInputName = QString::null; 92 94 } 93 95 94 96 DVBChannel::~DVBChannel() … … 245 247 246 248 bool DVBChannel::SetChannelByString(const QString &chan) 247 249 { 250 VERBOSE(VB_GENERAL, QString("------------> SetCHannelByString(): %1").arg(chan)); 248 251 QString func = QString("SetChannelByString(%1)").arg(chan); 249 252 VERBOSE(VB_CHANNEL, LOC + func); 250 253 if (fd_frontend < 0) … … 260 263 return true; 261 264 } 262 265 266 if (nextInputName.isNull()) 267 { 268 QString inputName; 269 if (!CheckChannel(chan, inputName)) 270 { 271 VERBOSE(VB_IMPORTANT, LOC + "CheckChannel failed. " + 272 QString("Please verify channel '%1'").arg(chan) + 273 " in the \"mythtv-setup\" Channel Editor."); 274 return false; 275 } 276 277 // If CheckChannel filled in the inputName then we need to 278 // change inputs and return, since the act of changing 279 // inputs will change the channel as well. 280 if (!inputName.isEmpty()) 281 { 282 nextInputName = inputName; 283 return ChannelBase::SwitchToInput(inputName, chan); 284 } 285 } 286 263 287 if (GetChannelOptions(chan) == false) 264 288 { 265 289 VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to get channel options for " + … … 285 309 QString("channel '%1'.").arg(chan)); 286 310 287 311 currentInputID = nextInputID; 312 nextInputName = QString::null; 288 313 inputs[currentInputID]->startChanNum = curchannelname; 289 314 290 315 return true;