Changeset 41068


Ignore:
Timestamp:
10/29/17 10:53:56 (6 years ago)
Author:
gost
Message:

[titan] firtst loop then main tuner

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/frontenddev.h

    r41059 r41068  
    307307                dvbnode = dvbnode->next;
    308308        }
    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         }
     309
    434310        if(dvbfirst != NULL)
    435311                dvbnode = dvbfirst;
     
    578454                dvbnode = dvbnode->next;
    579455        }
     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        }
    580581
    581582        return NULL;
Note: See TracChangeset for help on using the changeset viewer.