Ticket #2756: 2756-v1.patch
File 2756-v1.patch, 8.4 KB (added by , 19 years ago) |
---|
-
libs/libmythtv/channelutil.h
198 198 */ 199 199 static QString GetServiceName(int chanid); 200 200 static int GetSourceID(int mplexid); 201 static QString GetInputName(int sourceid);202 201 static int GetInputID(int sourceid, int cardid); 203 202 static QString GetDTVPrivateType(uint networkid, const QString &key, 204 203 const QString sitype = "dvb"); -
libs/libmythtv/cardutil.h
138 138 139 139 140 140 static QString GetDefaultInput(uint cardid); 141 static QString GetInputName(uint cardid, uint sourceid);141 static QStringList GetInputNames(uint cardid, uint sourceid); 142 142 143 143 static QString GetDeviceLabel(uint cardid, 144 144 QString cardtype, -
libs/libmythtv/scanwizardscanner.cpp
521 521 return; 522 522 } 523 523 524 scanner = new SIScan(card_type, channel, sourceid, 525 signal_timeout, channel_timeout);524 scanner = new SIScan(card_type, channel, sourceid, signal_timeout, 525 channel_timeout, inputname); 526 526 527 527 scanner->SetForceUpdate(true); 528 528 -
libs/libmythtv/siscan.cpp
81 81 * HandleDVBDBInsertion() and HandleMPEGDBInsertion() are similar. 82 82 */ 83 83 84 /** \fn SIScan::SIScan(QString,ChannelBase*,int,uint,uint )84 /** \fn SIScan::SIScan(QString,ChannelBase*,int,uint,uint,const QString&) 85 85 */ 86 SIScan::SIScan(QString _cardtype, ChannelBase* _channel, int _sourceID, 87 uint signal_timeout, uint channel_timeout) 86 SIScan::SIScan(const QString &_cardtype, ChannelBase *_channel, int _sourceID, 87 uint signal_timeout, uint channel_timeout, 88 const QString &_inputname) 88 89 : // Set in constructor 89 90 channel(_channel), 90 91 signalMonitor(SignalMonitor::Init(_cardtype, -1, _channel)), … … 92 93 scanMode(IDLE), 93 94 signalTimeout(signal_timeout), 94 95 channelTimeout(channel_timeout), 96 inputname(QDeepCopy<QString>(_inputname)), 95 97 // Settable 96 98 ignoreAudioOnlyServices(false), 97 99 ignoreDataServices(false), … … 687 689 } 688 690 #endif // USING_DVB 689 691 690 // TODO we should actually use the input the user specifies...691 QString inputname = ChannelUtil::GetInputName(item.SourceID);692 693 692 if (!GetDTVChannel()) 694 693 return false; 695 694 -
libs/libmythtv/channelutil.cpp
699 699 return -1; 700 700 } 701 701 702 /** \fn ChannelUtil::GetInputName(int)703 * \brief Returns input name for a card input704 * NOTE: This is BROKEN, it does not specify which card the input is on.705 */706 QString ChannelUtil::GetInputName(int source_id)707 {708 QString inputname = QString::null;709 710 MSqlQuery query(MSqlQuery::InitCon());711 query.prepare("SELECT inputname "712 "FROM cardinput "713 "WHERE sourceid = :SOURCEID");714 query.bindValue(":SOURCEID", source_id);715 716 if (query.exec() && query.isActive() && query.size() > 0)717 {718 query.next();719 inputname = query.value(0).toString();720 }721 return inputname;722 }723 724 702 int ChannelUtil::GetInputID(int source_id, int card_id) 725 703 { 726 704 int input_id = -1; -
libs/libmythtv/cardutil.cpp
348 348 return str; 349 349 } 350 350 351 QString CardUtil::GetInputName(uint cardid, uint sourceid)351 QStringList CardUtil::GetInputNames(uint cardid, uint sourceid) 352 352 { 353 QString str = QString::null;353 QStringList list; 354 354 MSqlQuery query(MSqlQuery::InitCon()); 355 355 query.prepare("SELECT inputname " 356 356 "FROM cardinput " … … 360 360 query.bindValue(":CARDID", cardid); 361 361 362 362 if (!query.exec() || !query.isActive()) 363 MythContext::DBError("CardUtil::GetInputName()", query); 364 else if (query.next()) 365 str = query.value(0).toString(); 363 { 364 MythContext::DBError("CardUtil::GetInputNames()", query); 365 } 366 else 367 { 368 while (query.next()) 369 list = query.value(0).toString(); 370 } 366 371 367 return str;372 return list; 368 373 } 369 374 370 375 bool CardUtil::GetTimeouts(uint cardid, -
libs/libmythtv/siscan.h
44 44 { 45 45 Q_OBJECT 46 46 public: 47 SIScan(QString _cardtype, ChannelBase* _channel, int _sourceID, 48 uint signal_timeout, uint channel_timeout); 47 SIScan(const QString &_cardtype, ChannelBase* _channel, int _sourceID, 48 uint signal_timeout, uint channel_timeout, 49 const QString &_inputname); 49 50 ~SIScan(); 50 51 51 52 void StartScanner(void); … … 180 181 SCANMODE scanMode; 181 182 uint signalTimeout; 182 183 uint channelTimeout; 184 QString inputname; 183 185 184 186 // Settable 185 187 bool ignoreAudioOnlyServices; -
libs/libmythtv/transporteditor.cpp
188 188 vector<uint>::const_iterator it = cardids.begin(); 189 189 for (; it != cardids.end(); ++it) 190 190 { 191 CardUtil::CARD_TYPES nType = CardUtil::ERROR_PROBE;192 QString inputname = CardUtil::GetInputName(*it, sourceid);191 QStringList inputnames = CardUtil::GetInputNames(*it, sourceid); 192 QStringList::const_iterator it2 = inputnames.begin(); 193 193 194 if (!inputname.isEmpty())194 for (; it2 != inputnames.end(); ++it2) 195 195 { 196 QString cardtype = CardUtil::GetRawCardType(*it, inputname); 196 CardUtil::CARD_TYPES nType = CardUtil::ERROR_PROBE; 197 QString cardtype = CardUtil::GetRawCardType(*it, *it2); 197 198 if (cardtype == "DVB") 198 cardtype = CardUtil::ProbeSubTypeName(*it, inputname);199 cardtype = CardUtil::ProbeSubTypeName(*it, *it2); 199 200 nType = CardUtil::toCardType(cardtype); 200 }201 201 202 if ((CardUtil::ERROR_OPEN == nType) ||203 (CardUtil::ERROR_UNKNOWN == nType) ||204 (CardUtil::ERROR_PROBE == nType))205 {206 MythPopupBox::showOkPopup(207 gContext->GetMainWindow(),208 QObject::tr("Transport Editor"),209 QObject::tr(210 "Failed to probe a capture card connected to this "211 "transport's video source. Please make sure the "212 "backend is not running."));202 if ((CardUtil::ERROR_OPEN == nType) || 203 (CardUtil::ERROR_UNKNOWN == nType) || 204 (CardUtil::ERROR_PROBE == nType)) 205 { 206 MythPopupBox::showOkPopup( 207 gContext->GetMainWindow(), 208 QObject::tr("Transport Editor"), 209 QObject::tr( 210 "Failed to probe a capture card connected to this " 211 "transport's video source. Please make sure the " 212 "backend is not running.")); 213 213 214 return CardUtil::ERROR_PROBE; 214 return CardUtil::ERROR_PROBE; 215 } 216 217 cardtypes.push_back(nType); 215 218 } 216 217 cardtypes.push_back(nType);218 219 } 219 220 221 // This should never happen... (unless DB has changed under us) 222 if (cardtypes.empty()) 223 return CardUtil::ERROR_PROBE; 224 220 225 for (uint i = 1; i < cardtypes.size(); i++) 221 226 { 222 227 CardUtil::CARD_TYPES typeA = cardtypes[i - 1];