Changeset 41092


Ignore:
Timestamp:
11/01/17 21:42:47 (6 years ago)
Author:
gost
Message:

fix fbc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/frontenddev.h

    r41091 r41092  
    312312                dvbnode = dvbdev;
    313313
    314         //suche tuner der die gewuenschte orbitalpos kann und belegt ist und dessen looptuner es kann
    315         while(dvbnode != NULL)
    316         {
    317                 //FRONTENDDEV first in the list
    318                 if(dvbnode->type != FRONTENDDEV) break;
    319 
    320                 //check if tuner is deactivate
    321                 if(dvbnode->deactive == 1)
    322                 {
    323                         dvbnode = dvbnode->next;
    324                         continue;
    325                 }
    326                 if(dvbnode->type == FRONTENDDEV && dvbnode->feinfo->type == tpnode->fetype && dvbnode->felock != 0)
    327                 {
    328                         if(flag == 2 && status.aktservice->fedev == dvbnode)
    329                         {
    330                                 dvbnode = dvbnode->next;
    331                                 continue;
    332                         }
    333                         //check if tuner is main tuner
    334                         if(getconfig(dvbnode->feshortname, NULL) != NULL)
    335                         {
    336                                 dvbnode = dvbnode->next;
    337                                 continue;                               
    338                         }
    339                         if(dvbnode->feaktpolarization != tpnode->polarization || dvbnode->feakttransponder->orbitalpos != tpnode->orbitalpos)
    340                         {
    341                                 dvbnode = dvbnode->next;
    342                                 continue;                               
    343                         }
    344                         found = 0;
    345                         //check looptuner is free
    346                         tmpstr = getconfigbyval(dvbnode->feshortname, NULL);
    347                         CharPtrTmp[0] = NULL;
    348                         while(tmpstr != NULL) //found loop tuner
    349                         {
    350                                 tmpdvbnode = fegetbyshortname(tmpstr);
    351                                 //if(flag != 1) printf("****** test tuner1 %s -> %s\n", dvbnode->feshortname, tmpdvbnode->feshortname);
    352                                 if(tmpdvbnode != NULL && tmpdvbnode->felock == 0)
    353                                 {
    354                                         found = 99;
    355                                         break;
    356                                 }
    357                                 else
    358                                 {
    359                                         CharPtrTmp[found] = tmpdvbnode;
    360                                         found = found + 1;
    361                                 }
    362                                 tmpstr = getconfigbyval(tmpstr, NULL); //loop tuner also loop  ?
    363                         }
    364                         CharPtrTmp[0] = NULL;
    365                         if(found != 99)
    366                         {
    367                                 dvbnode = dvbnode->next;
    368                                 continue;
    369                         }
    370                         tmpstr = ostrcat(dvbnode->feshortname, "_sat", 0, 0);
    371                         for(i = 1; i <= getmaxsat(dvbnode->feshortname); i++)
    372                         {
    373                                 tmpnr = oitoa(i);
    374                                 orbitalpos = getconfigint(tmpstr, tmpnr);
    375                                 if(orbitalpos == tpnode->orbitalpos)
    376                                 {
    377                                         fegetconfig(dvbnode, tpnode, &aktnr, tmpnr);
    378                                         if(flag == 3)
    379                                                 band = calclof(dvbnode, tpnode, aktnr, 0);
    380                                         else
    381                                                 band = calclof(dvbnode, tpnode, aktnr, 1);
    382                                         found = 0;
    383                                         if(tmpdvbnode != NULL && tmpdvbnode->feaktband != band)
    384                                         {
    385                                                 found = -1;
    386                                                 break;
    387                                         }
    388                        
    389                                         if(flag == 1)
    390                                         {
    391                                                 free(tmpstr); tmpstr = NULL;
    392                                                 free(tmpnr); tmpnr = NULL;
    393                                                 return tmpdvbnode;
    394                                         }
    395                                         dvbnode->feaktband = band;
    396                                         dvbnode->feaktpolarization = tpnode->polarization;
    397                
    398                                         tmpdvbnode->felasttransponder = tmpdvbnode->feakttransponder;
    399                                         tmpdvbnode->feakttransponder = tpnode;
    400                                         tmpdvbnode->feaktpolarization = tpnode->polarization;
    401                                         free(tmpdvbnode->feaktnr);
    402                                         if(aktnr != NULL)
    403                                                 tmpdvbnode->feaktnr = ostrcat(aktnr, NULL, 0, 0);
    404                                         else
    405                                                 tmpdvbnode->feaktnr = NULL;
    406 
    407                                         free(tmpstr); tmpstr = NULL;
    408                                         free(tmpnr); tmpnr = NULL;
    409                                         if(flag != 1) debug(200, "found free tuner witch same orbitalpos %s", dvbnode->feshortname);
    410                                         if(flag != 1) printf("------ found free loop tuner: %s witch same orbitalpos main tuner: %s\n", tmpdvbnode->feshortname, dvbnode->feshortname);
    411                                         return tmpdvbnode;
    412                                 }
    413                                 free(tmpnr); tmpnr = NULL;
    414                         }
    415                         free(tmpstr); tmpstr = NULL;
    416                         if(found == -1)
    417                                 break;
    418                 }
    419                 dvbnode = dvbnode->next;
    420         }
    421         if(dvbfirst != NULL)
    422                 dvbnode = dvbfirst;
    423         else
    424                 dvbnode = dvbdev;
    425314
    426315        //suche tuner der die gewuenschte orbitalpos kann und nicht belegt ist
Note: See TracChangeset for help on using the changeset viewer.