Ticket #5882: vdr_conf.diff

File vdr_conf.diff, 1.6 KB (added by mnix <mythtv-acct@…>, 3 years ago)

Handle VDR format channels.conf produced by scan-s2 (not the best fix, but it works)

  • dtvconfparser.cpp

    old new  
    108108 
    109109        str = list[3]; 
    110110 
     111        if ((strtoul(str.toLatin1(),NULL,10)>0) && 
     112            ((str.right(1)=="E") || (str.right(1)=="W")) 
     113           ) 
     114        { 
     115            str="S"; 
     116        } 
     117 
    111118        if ((str == "T") || (str == "C") || (str == "S")) 
    112119        { 
    113120            if ((type == OFDM) && (str == "T")) 
     
    231238 
    232239// BBC ONE:754166:I999B8C34D34M16T2G32Y0:T:27500:600:601, 602:0:0:4168:0:0:0 
    233240 
    234     PARSE_SKIP(unknown); 
     241    PARSE_STR(chan.name); 
    235242 
    236243    PARSE_UINT_1000(mux.frequency); 
    237244 
     
    243250    { 
    244251        QString ori = params; 
    245252        int s = (int) (params.toAscii().constData()[0]); 
     253        s=toupper(s); 
    246254        params = params.mid(1); 
    247255        switch (s) 
    248256        { 
     
    280288            case 'O': 
    281289                mux.rolloff.ParseVDR(params); 
    282290                break; 
     291            case '0': 
     292            case '1': 
     293            case '2': 
     294            case '3': 
     295            case '4': 
     296            case '5': 
     297            case '6': 
     298            case '7': 
     299            case '8': 
     300            case '9': 
     301                break; 
    283302            default: 
    284                 return false; 
     303                VERBOSE(VB_IMPORTANT, "Warning: Unknown parameter in list:"<<(char)s); 
     304                //return false; 
    285305        } 
    286306    } 
    287307 
    288     for (uint i = 0; i < 6; i++) 
     308    PARSE_SKIP(unknown); 
     309 
     310    PARSE_UINT_1000(mux.symbolrate); 
     311 
     312    for (uint i = 0; i < 4; i++) 
    289313        PARSE_SKIP(unknown); 
    290314 
    291315    PARSE_UINT(chan.serviceid);