- Timestamp:
- 10/29/17 10:53:56 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
titan/titan/frontenddev.h
r41059 r41068 307 307 dvbnode = dvbnode->next; 308 308 } 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 434 310 if(dvbfirst != NULL) 435 311 dvbnode = dvbfirst; … … 578 454 dvbnode = dvbnode->next; 579 455 } 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 } 580 581 581 582 return NULL;
Note: See TracChangeset
for help on using the changeset viewer.