Ticket #437: eit-transport-walk.diff
File eit-transport-walk.diff, 1.9 KB (added by , 19 years ago) |
---|
-
libs/libmythtv/eitscanner.cpp
old new 135 135 136 136 if (!activeScanChannels.size()) 137 137 { 138 QMap<uint, MythDeque<QString> > chanByMplex; 138 139 MSqlQuery query(MSqlQuery::InitCon()); 139 140 query.prepare( 140 "SELECT channum "141 "SELECT channum, mplexid " 141 142 "FROM channel, cardinput, capturecard " 142 143 "WHERE cardinput.sourceid = channel.sourceid AND " 143 144 " capturecard.cardid = cardinput.cardid AND " 144 145 " channel.mplexid IS NOT NULL AND " 145 " ca rdinput.cardid = :CARDID "146 " ORDER BY cardinput.sourceid, atscsrcid");146 " capturecard.dvb_on_demand = 0 AND " 147 " cardinput.cardid = :CARDID "); 147 148 query.bindValue(":CARDID", rec->GetCaptureCardNum()); 148 149 149 150 if (!query.exec() || !query.isActive()) … … 153 154 } 154 155 155 156 while (query.next()) 156 activeScanChannels << query.value(0).toString(); 157 chanByMplex[query.value(1).toUInt()].push_back(query.value(0).toString()); 158 159 QValueList<uint> keyList = chanByMplex.keys(); 160 QValueList<uint>::iterator curMplex = keyList.begin(); 161 int i = 0; 162 while (i < query.size()) 163 { 164 if(chanByMplex[*curMplex].size() != 0) 165 { 166 activeScanChannels << chanByMplex[*curMplex].front(); 167 chanByMplex[*curMplex].pop_front(); 168 i++; 169 } 170 if(++curMplex == keyList.end()) 171 curMplex = keyList.begin(); 172 } 157 173 activeScanNextChan = activeScanChannels.begin(); 158 174 } 159 175