Changeset 41069 for titan


Ignore:
Timestamp:
10/29/17 14:25:45 (6 years ago)
Author:
gost
Message:

reset last change

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/frontenddev.h

    r41068 r41069  
    307307                dvbnode = dvbnode->next;
    308308        }
    309 
     309        if(dvbfirst != NULL)
     310                dvbnode = dvbfirst;
     311        else
     312                dvbnode = dvbdev;
     313
     314        //suche tuner der die gewuenschte orbitalpos kann und nicht belegt ist
     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                        found = 0;
     340                        //check if tuner is loop and looptuner is locked
     341                        tmpstr = getconfigbyval(dvbnode->feshortname, NULL);
     342                        CharPtrTmp[0] = NULL;
     343                        while(tmpstr != NULL) //found loop tuner
     344                        {
     345                                tmpdvbnode = fegetbyshortname(tmpstr);
     346                                //if(flag != 1) printf("****** test tuner1 %s -> %s\n", dvbnode->feshortname, tmpdvbnode->feshortname);
     347                                if(tmpdvbnode != NULL && tmpdvbnode->feakttransponder != NULL && (tmpdvbnode->feaktpolarization != tpnode->polarization || tmpdvbnode->feakttransponder->orbitalpos != tpnode->orbitalpos) && (tmpdvbnode->felock != 0 || (flag == 2 && tmpdvbnode->felock == 0)))
     348                                {
     349                                        found = -1;
     350                                        break;
     351                                }
     352                                else
     353                                {
     354                                        CharPtrTmp[found] = tmpdvbnode;
     355                                        found = found + 1;
     356                                }
     357                                tmpstr = getconfigbyval(tmpstr, NULL); //loop tuner also loop  ?
     358                        }
     359                        CharPtrTmp[found] = NULL;
     360                               
     361                        if(found == -1)
     362                        {
     363                                dvbnode = dvbnode->next;
     364                                continue;
     365                        }
     366                       
     367                        tmpstr = ostrcat(dvbnode->feshortname, "_sat", 0, 0);
     368                        for(i = 1; i <= getmaxsat(dvbnode->feshortname); i++)
     369                        {
     370                                tmpnr = oitoa(i);
     371
     372                                orbitalpos = getconfigint(tmpstr, tmpnr);
     373                                if(orbitalpos == tpnode->orbitalpos)
     374                                {
     375                                        fegetconfig(dvbnode, tpnode, &aktnr, tmpnr);
     376                                        if(flag == 3)
     377                                                band = calclof(dvbnode, tpnode, aktnr, 0);
     378                                        else
     379                                                band = calclof(dvbnode, tpnode, aktnr, 1);
     380                                        found = 0;
     381                                        while(CharPtrTmp[found] != NULL)
     382                                        {
     383                                                //if(flag != 1) printf("++++++ test band1 %s\n", CharPtrTmp[found]->feshortname);
     384                                                if(CharPtrTmp[found] != NULL && CharPtrTmp[found]->feaktband != band && (CharPtrTmp[found]->felock != 0 || (flag == 2 && CharPtrTmp[found]->felock == 0)))
     385                                                {
     386                                                        found = 99;
     387                                                        break;
     388                                                }
     389                                                found = found + 1;
     390                                        }
     391                                                //if(tmpdvbnode != NULL && tmpdvbnode->feaktband != band && (tmpdvbnode->felock != 0 || (flag == 2 && tmpdvbnode->felock == 0)))
     392                                                //{
     393                                                //      free(tmpnr); tmpnr = NULL;
     394                                                //      continue;
     395                                                //}
     396                                        if(found == 99)
     397                                        {
     398                                                found = 0;
     399                                                free(tmpnr); tmpnr = NULL;
     400                                                continue;
     401                                        }       
     402                                        if(flag == 1)
     403                                        {
     404                                                free(tmpstr); tmpstr = NULL;
     405                                                free(tmpnr); tmpnr = NULL;
     406                                                return dvbnode;
     407                                        }
     408                                        if(tmpdvbnode != NULL)
     409                                        {
     410                                                tmpdvbnode->feaktband = band;
     411                                                tmpdvbnode->feaktpolarization = tpnode->polarization;
     412                                        }
     413                                        dvbnode->felasttransponder = dvbnode->feakttransponder;
     414                                        dvbnode->feakttransponder = tpnode;
     415                                        dvbnode->feaktpolarization = tpnode->polarization;
     416                                        free(dvbnode->feaktnr);
     417                                        if(aktnr != NULL)
     418                                                dvbnode->feaktnr = ostrcat(aktnr, NULL, 0, 0);
     419                                        else
     420                                                dvbnode->feaktnr = NULL;
     421
     422                                        free(tmpstr); tmpstr = NULL;
     423                                        free(tmpnr); tmpnr = NULL;
     424                                        if(flag != 1) debug(200, "found free tuner witch same orbitalpos %s", dvbnode->feshortname);
     425                                        //if(flag != 1) printf("------ found free tuner witch same orbitalpos %s\n", dvbnode->feshortname);
     426                                        return dvbnode;
     427                                }
     428                                free(tmpnr); tmpnr = NULL;
     429                        }
     430                        free(tmpstr); tmpstr = NULL;
     431                }
     432                dvbnode = dvbnode->next;
     433        }
    310434        if(dvbfirst != NULL)
    311435                dvbnode = dvbfirst;
     
    454578                dvbnode = dvbnode->next;
    455579        }
    456                 if(dvbfirst != NULL)
    457                 dvbnode = dvbfirst;
    458         else
    459                 dvbnode = dvbdev;
    460 
    461         //suche tuner der die gewuenschte orbitalpos kann und nicht belegt ist
    462         while(dvbnode != NULL)
    463         {
    464                 //FRONTENDDEV first in the list
    465                 if(dvbnode->type != FRONTENDDEV) break;
    466 
    467                 //check if tuner is deactivate
    468                 if(dvbnode->deactive == 1)
    469                 {
    470                         dvbnode = dvbnode->next;
    471                         continue;
    472                 }
    473                 if(dvbnode->type == FRONTENDDEV && dvbnode->feinfo->type == tpnode->fetype && dvbnode->felock == 0)
    474                 {
    475                         if(flag == 2 && status.aktservice->fedev == dvbnode)
    476                         {
    477                                 dvbnode = dvbnode->next;
    478                                 continue;
    479                         }
    480                         //check if tuner is main tuner
    481                         if(getconfig(dvbnode->feshortname, NULL) != NULL)
    482                         {
    483                                 dvbnode = dvbnode->next;
    484                                 continue;                               
    485                         }
    486                         found = 0;
    487                         //check if tuner is loop and looptuner is locked
    488                         tmpstr = getconfigbyval(dvbnode->feshortname, NULL);
    489                         CharPtrTmp[0] = NULL;
    490                         while(tmpstr != NULL) //found loop tuner
    491                         {
    492                                 tmpdvbnode = fegetbyshortname(tmpstr);
    493                                 //if(flag != 1) printf("****** test tuner1 %s -> %s\n", dvbnode->feshortname, tmpdvbnode->feshortname);
    494                                 if(tmpdvbnode != NULL && tmpdvbnode->feakttransponder != NULL && (tmpdvbnode->feaktpolarization != tpnode->polarization || tmpdvbnode->feakttransponder->orbitalpos != tpnode->orbitalpos) && (tmpdvbnode->felock != 0 || (flag == 2 && tmpdvbnode->felock == 0)))
    495                                 {
    496                                         found = -1;
    497                                         break;
    498                                 }
    499                                 else
    500                                 {
    501                                         CharPtrTmp[found] = tmpdvbnode;
    502                                         found = found + 1;
    503                                 }
    504                                 tmpstr = getconfigbyval(tmpstr, NULL); //loop tuner also loop  ?
    505                         }
    506                         CharPtrTmp[found] = NULL;
    507                                
    508                         if(found == -1)
    509                         {
    510                                 dvbnode = dvbnode->next;
    511                                 continue;
    512                         }
    513                        
    514                         tmpstr = ostrcat(dvbnode->feshortname, "_sat", 0, 0);
    515                         for(i = 1; i <= getmaxsat(dvbnode->feshortname); i++)
    516                         {
    517                                 tmpnr = oitoa(i);
    518 
    519                                 orbitalpos = getconfigint(tmpstr, tmpnr);
    520                                 if(orbitalpos == tpnode->orbitalpos)
    521                                 {
    522                                         fegetconfig(dvbnode, tpnode, &aktnr, tmpnr);
    523                                         if(flag == 3)
    524                                                 band = calclof(dvbnode, tpnode, aktnr, 0);
    525                                         else
    526                                                 band = calclof(dvbnode, tpnode, aktnr, 1);
    527                                         found = 0;
    528                                         while(CharPtrTmp[found] != NULL)
    529                                         {
    530                                                 //if(flag != 1) printf("++++++ test band1 %s\n", CharPtrTmp[found]->feshortname);
    531                                                 if(CharPtrTmp[found] != NULL && CharPtrTmp[found]->feaktband != band && (CharPtrTmp[found]->felock != 0 || (flag == 2 && CharPtrTmp[found]->felock == 0)))
    532                                                 {
    533                                                         found = 99;
    534                                                         break;
    535                                                 }
    536                                                 found = found + 1;
    537                                         }
    538                                                 //if(tmpdvbnode != NULL && tmpdvbnode->feaktband != band && (tmpdvbnode->felock != 0 || (flag == 2 && tmpdvbnode->felock == 0)))
    539                                                 //{
    540                                                 //      free(tmpnr); tmpnr = NULL;
    541                                                 //      continue;
    542                                                 //}
    543                                         if(found == 99)
    544                                         {
    545                                                 found = 0;
    546                                                 free(tmpnr); tmpnr = NULL;
    547                                                 continue;
    548                                         }       
    549                                         if(flag == 1)
    550                                         {
    551                                                 free(tmpstr); tmpstr = NULL;
    552                                                 free(tmpnr); tmpnr = NULL;
    553                                                 return dvbnode;
    554                                         }
    555                                         if(tmpdvbnode != NULL)
    556                                         {
    557                                                 tmpdvbnode->feaktband = band;
    558                                                 tmpdvbnode->feaktpolarization = tpnode->polarization;
    559                                         }
    560                                         dvbnode->felasttransponder = dvbnode->feakttransponder;
    561                                         dvbnode->feakttransponder = tpnode;
    562                                         dvbnode->feaktpolarization = tpnode->polarization;
    563                                         free(dvbnode->feaktnr);
    564                                         if(aktnr != NULL)
    565                                                 dvbnode->feaktnr = ostrcat(aktnr, NULL, 0, 0);
    566                                         else
    567                                                 dvbnode->feaktnr = NULL;
    568 
    569                                         free(tmpstr); tmpstr = NULL;
    570                                         free(tmpnr); tmpnr = NULL;
    571                                         if(flag != 1) debug(200, "found free tuner witch same orbitalpos %s", dvbnode->feshortname);
    572                                         //if(flag != 1) printf("------ found free tuner witch same orbitalpos %s\n", dvbnode->feshortname);
    573                                         return dvbnode;
    574                                 }
    575                                 free(tmpnr); tmpnr = NULL;
    576                         }
    577                         free(tmpstr); tmpstr = NULL;
    578                 }
    579                 dvbnode = dvbnode->next;
    580         }
    581580
    582581        return NULL;
Note: See TracChangeset for help on using the changeset viewer.