Ticket #2431: 2431-v1.patch

File 2431-v1.patch, 1.6 KB (added by danielk, 19 years ago)

Sorts renumbered ATSC channels by new channum

  • libs/libmythtv/channelutil.cpp

     
    13411341    bool isIntA, isIntB;
    13421342    int a_int = a.channum.toUInt(&isIntA);
    13431343    int b_int = b.channum.toUInt(&isIntB);
     1344    int a_major = a.major_chan;
     1345    int b_major = b.major_chan;
     1346    int a_minor = a.minor_chan;
     1347    int b_minor = b.minor_chan;
    13441348
     1349    // If ATSC channel has been renumbered, sort by new channel number
     1350    if ((a_minor > 0) && a_int)
     1351    {
     1352        int atsc_int = (QString("%1%2").arg(a_major).arg(a_minor)).toInt();
     1353        a_minor = (atsc_int == a_int) ? a_minor : 0;
     1354    }
     1355
     1356    if ((b_minor > 0) && b_int)
     1357    {
     1358        int atsc_int = (QString("%1%2").arg(b_major).arg(b_minor)).toInt();
     1359        b_minor = (atsc_int == b_int) ? b_minor : 0;
     1360    }
     1361
    13451362    // one of the channels is an ATSC channel, and the other
    13461363    // is either ATSC or is numeric.
    1347     if ((a.minor_chan || b.minor_chan) &&
    1348         (a.minor_chan || isIntA) && (b.minor_chan || isIntB))
     1364    if ((a_minor || b_minor) &&
     1365        (a_minor || isIntA) && (b_minor || isIntB))
    13491366    {
    1350         int a_maj = (!a.minor_chan && isIntA) ? a_int : a.major_chan;
    1351         int b_maj = (!b.minor_chan && isIntB) ? b_int : b.major_chan;
     1367        int a_maj = (!a_minor && isIntA) ? a_int : a_major;
     1368        int b_maj = (!b_minor && isIntB) ? b_int : b_major;
    13521369        if ((cmp = a_maj - b_maj))
    13531370            return cmp < 0;
    13541371       
    1355         if ((cmp = a.minor_chan - b.minor_chan))
     1372        if ((cmp = a_minor - b_minor))
    13561373            return cmp < 0;
    13571374    }
    13581375