Ticket #1728: 06_fix_for_multi_source_cards_and_cleanup.patch

File 06_fix_for_multi_source_cards_and_cleanup.patch, 2.5 KB (added by Janne <janne-mythtv@…>, 14 years ago)

fix for patch 06

  • programs/mythbackend/eitactivescanner.cpp

    === programs/mythbackend/eitactivescanner.cpp
    ==================================================================
     
    5959    if (ismaster)
    6060        StartActiveScan();
    6161
    62 
    63 
    6462    while (!exitThread)
    6563    {
    6664        QDateTime now = QDateTime::currentDateTime();
     
    8886                        .arg(nextCard.key()));
    8987                continue;
    9088            }
     89            uint sid = *source;
    9190            int cardid = nextCard.key();
    9291
    9392
    94             if (!(*(nextChan[*source])).isEmpty() &&
    95                 (*cardList)[cardid]->StartEITScan(*(nextChan[*source])))
     93            if (!(*(nextChan[sid])).isEmpty() &&
     94                (*cardList)[cardid]->StartEITScan(*(nextChan[sid])))
    9695            {
    9796                VERBOSE(VB_GENERAL, QString("DVB(%1): Now looking for EIT "
    9897                                            "data on multiplex of channel %2 "
    9998                                            "of source %3")
    100                         .arg(cardid).arg(*(nextChan[*source])).arg(*source));
     99                        .arg(cardid).arg(*(nextChan[sid])).arg(sid));
    101100                /* advace to the next channel and test for valid iterator.
    102101                   needed to simplify selection of the source
    103102                   with the highest priority. */
    104                 nextChan[*source]++;
    105                 if (nextChan[*source] == channels[*source].end())
     103                nextChan[sid]++;
     104                if (nextChan[sid] == channels[sid].end())
    106105                {
    107                     nextChan[*source] = channels[*source].begin();
    108                     sources.push_back(*source);
     106                    nextChan[sid] = channels[sid].begin();
    109107                    sources.erase(source);
     108                    sources.push_back(sid);
     109                    //cerr << "Moved source " << sid << " to the back of the queue." << endl;
    110110                }
    111111            }
    112112            else
     
    114114                VERBOSE(VB_GENERAL, QString("Skipping card %1 in scan for EIT "
    115115                                            "data on multiplex of channel %2 "
    116116                                            "of source %3")
    117                         .arg(cardid).arg(*(nextChan[*source])).arg(*source));
     117                        .arg(cardid).arg(*(nextChan[sid])).arg(sid));
    118118            }
    119119
    120120            nextTriggerTime = QDateTime::currentDateTime().addSecs(triggerTime);