⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tv_2in1.lst

📁 MSTARXX.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
 289   1          chData.ucChannelMisc =NotSkipThisNum|DoAFCFlag|uctemp;
 290   1          g_bSaveChannel=FALSE;
 291   1          devTunerWrite(chData.wFreq);
 292   1          InitVDBeforeSearchStart();
 293   1          g_wTVAutoScan_LastVTotal = 0;
 294   1      
 295   1          #if(ENABLE_CHECK_AUTO_H_TOTAL)
 296   1          g_bEnableAutoHTotal = 1;
 297   1          #endif
 298   1      
 299   1          SystemDelay_translate_To_Dsp_Processor(5);
 300   1      }
 301          
 302          void TV_ChannelAutoScan(void)
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 6   

 303          {
 304   1          if( g_bTVAutoScanChannelBreak )
 305   1          {
 306   2              // Reset the value of the channel without signal
 307   2              ResetChannels(g_TVChSetting.ucMaxValidChNum+1, MAX_CHANNEL_NUM-1);
 308   2              TV_SelectChannel( 0 );
 309   2              devAudioSetVolume(g_VideoSetting.volume);
 310   2      
 311   2              g_bTVAutoScanChannelEnable=FALSE;
 312   2              g_bTVAutoScanChannelBreak = FALSE;
 313   2      
 314   2              #if(ENABLE_CHECK_AUTO_H_TOTAL)
 315   2              g_bEnableAutoHTotal = 0;
 316   2              #endif
 317   2      
 318   2              //Set_InputTimingChangeFlag();
 319   2              printMsg("auto stop");
 320   2              g_ucOsdCounter=g_VideoSetting.OsdTime; // Reset OSD time
 321   2              Clr_AFCDisableFlag();
 322   2          }
 323   1          else // Continue doing auto scan ...
 324   1          {
 325   2              WORD wFreqResult;
 326   2              WORD wVTotal;
 327   2              DrawScanProgress(chData.wFreq);
 328   2      
 329   2              wVTotal = msVDGetVTotal();
 330   2      
 331   2              if(abs(wVTotal -g_wTVAutoScan_LastVTotal)>10)
 332   2              {
 333   3                  ResetupMode();
 334   3                  g_wTVAutoScan_LastVTotal = wVTotal;
 335   3                  if( msVDGetVTotal() > 575 ) // 50Hz
 336   3                  {
 337   4                      g_VdInfo.ucVideoSystem = SIG_PAL;
 338   4                      g_ucSrcModeIndex = MD_720x576_50I;
 339   4                      msVDSetupMode( VD_VSYNC_50HZ|VD_FSC_4433, SIG_PAL );
 340   4                  }
 341   3                  else // 60Hz
 342   3                  {
 343   4                      g_VdInfo.ucVideoSystem = SIG_NTSC;
 344   4                      g_ucSrcModeIndex = MD_720x480_60I;
 345   4                      msVDSetupMode( VD_FSC_3579, SIG_NTSC );
 346   4                  }
 347   3      
 348   3                  g_InOutCtl.bInterlace = 1;
 349   3                  SetOutputTimingAndWindow( OUTPUT_SNOW );
 350   3              }
 351   2      
 352   2              if (!(msVDGetSyncStable(25, 30)))
 353   2              {
 354   3                  chData.wFreq += TN_SCAN_STEP;//14;//
 355   3                  devTunerWrite(chData.wFreq);
 356   3              }
 357   2              else
 358   2              {
 359   3                  msVDColorBurstHandler( VD_COLOR_BURST_HANDLER_RESET );
 360   3                  ResetupMode();
 361   3      
 362   3                  if(devTunerAutoTuneFreq(chData.wFreq , &wFreqResult) == TN_SCAN_ERR)
 363   3                      chData.wFreq += 6;
 364   3              }
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 7   

 365   2      
 366   2              if(g_bSaveChannel)
 367   2              {
 368   3                  g_wTVAutoScan_LastVTotal = 0;
 369   3                  chData.wFreq = wFreqResult;
 370   3                  SaveChannelData(g_ucTVChannelAutoScanCount, &chData);
 371   3      
 372   3                  g_TVChSetting.ucMaxValidChNum=g_ucTVChannelAutoScanCount;
 373   3      
 374   3                  if (g_ucTVChannelAutoScanCount == MAX_CHANNEL_NUM)
 375   3                      g_bTVAutoScanChannelBreak = TRUE;
 376   3                  else
 377   3                      g_ucTVChannelAutoScanCount++;
 378   3      
 379   3                  chData.wFreq += TN_SCAN_NEXT_CH; // set next channel
 380   3                  devTunerWrite(chData.wFreq);
 381   3      
 382   3                  //Delay1ms(20);
 383   3                  SystemDelay_translate_To_Dsp_Processor(2);
 384   3                  g_bSaveChannel = FALSE;
 385   3              }
 386   2      
 387   2              if( chData.wFreq> TN_FREQMAX )
 388   2                  g_bTVAutoScanChannelBreak = TRUE;
 389   2          }
 390   1      }
 391          
 392          void TV_ChannelManualScanInit(void)
 393          {
 394   1              ChannelScanInit(); //for manual scan
 395   1              if(g_bManualScanDirection)
 396   1               chData.wFreq +=TN_SCAN_NEXT_CH;//STEP_200K; //
 397   1              else
 398   1               chData.wFreq -=TN_SCAN_NEXT_CH;//STEP_200K; //
 399   1              g_bTVManualSearchEnable=TRUE;
 400   1      
 401   1          #if(ENABLE_CHECK_AUTO_H_TOTAL)
 402   1          g_bEnableAutoHTotal = 1;
 403   1          #endif
 404   1      }
 405          
 406          void TV_ChannelManualScan(void)
 407          {
 408   1          WORD wFineTuneFreq;
 409   1          BYTE Tmp;
 410   1      
 411   1          if(chData.wFreq>TN_FREQMAX&&g_bManualScanDirection)
 412   1              chData.wFreq=TN_FREQMIN;
 413   1          else if(chData.wFreq<TN_FREQMIN&&!g_bManualScanDirection)
 414   1              chData.wFreq=TN_FREQMAX;    // check stop condition
 415   1      
 416   1          if(g_bTVManualScanChannelBreak)
 417   1          {
 418   2              g_bTVManualStore = TRUE;
 419   2              g_bSaveChannel = FALSE;
 420   2              g_bTVManualSearchEnable = FALSE;
 421   2              g_bTVManualScanChannelBreak = FALSE;
 422   2              g_ucOsdCounter=g_VideoSetting.OsdTime; // Reset OSD time
 423   2      
 424   2              #if(ENABLE_CHECK_AUTO_H_TOTAL)
 425   2              g_bEnableAutoHTotal = 0;
 426   2              #endif
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 8   

 427   2      
 428   2              Clr_AFCDisableFlag();
 429   2              return;
 430   2          }
 431   1      
 432   1          DrawScanProgress(chData.wFreq);
 433   1      
 434   1          devTunerWrite( chData.wFreq );
 435   1      
 436   1          if (!(msVDGetSyncStable(25, 30)))
 437   1          {
 438   2              if ( g_bManualScanDirection )
 439   2                  chData.wFreq += TN_SCAN_STEP; // next
 440   2              else // if (cStep < 0)
 441   2                  chData.wFreq -= TN_SCAN_STEP; // next
 442   2              devTunerWrite(chData.wFreq);
 443   2          }
 444   1          else
 445   1          {
 446   2              Tmp = devTunerAutoTuneFreq(chData.wFreq , &wFineTuneFreq);
 447   2      
 448   2              if(Tmp == TN_SCAN_ERR)
 449   2              {
 450   3                  if ( g_bManualScanDirection )
 451   3                      chData.wFreq += 5; // next
 452   3                  else // if (cStep < 0)
 453   3                      chData.wFreq -= 5; // next
 454   3              }
 455   2              else
 456   2              {
 457   3                  chData.wFreq = wFineTuneFreq;
 458   3                  g_bTVManualScanChannelBreak = TRUE;
 459   3                      devTunerWrite(chData.wFreq);
 460   3                      Set_InputTimingChangeFlag();
 461   3              }
 462   2          }
 463   1      }
 464          
 465          void ResetTuner(void)
 466          {
 467   1          devTunerWrite(chData.wFreq);
 468   1      }
 469          
 470          WORD GetTVScale100Value(WORD value, WORD minValue, WORD maxValue)
 471          {
 472   1          maxValue=maxValue-minValue;
 473   1          value=value-minValue;
 474   1          if (value>650)
 475   1          {
 476   2              value/=2;
 477   2              maxValue/=2;
 478   2          }
 479   1          value=((DWORD)value*100+maxValue/2)/maxValue;//modify word---->dword for tv search ,tzw
 480   1      
 481   1          return value;
 482   1      }
 483          void DrawChannelFreqGuage( WORD wFreq ,BYTE foreColor)
 484          {
 485   1          BYTE *str;
 486   1          WORD MinValue,MaxValue,TEMPVALUE;
 487   1          TEMPVALUE=(WORD)    wFreq;
 488   1          if(TEMPVALUE < TN_LOWBAND_END)
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 9   

 489   1              {
 490   2              MinValue=TN_FREQMIN;
 491   2              MaxValue=TN_LOWBAND_END;
 492   2                  str="VHFL";
 493   2              }
 494   1          else  if(TEMPVALUE < TN_MIDBAND_END)
 495   1              {
 496   2              MinValue=TN_LOWBAND_END;
 497   2              MaxValue=TN_MIDBAND_END;
 498   2                  str="VHFH";
 499   2              }
 500   1          else
 501   1              {
 502   2              MinValue=TN_MIDBAND_END;
 503   2              MaxValue=TN_FREQMAX;
 504   2                  str=" UHF";
 505   2              }
 506   1      
 507   1          Osd_SetTextColor(CP_WhiteColor,CP_GrayColor);
 508   1          Osd_DrawStr(13,6, str);
 509   1      
 510   1          Osd_SetTextColor(foreColor,CP_GrayColor);
 511   1              Osd_DrawGuage(0, 9, 15, GetTVScale100Value(TEMPVALUE,MinValue,MaxValue));
 512   1      }
 513          
 514          void DrawScanProgress( WORD wFreq )
 515          {
 516   1          Osd_SetTextColor(CP_BlueColor,CP_TransparenceColor);
 517   1          DrawNum(7, 0, 3, wFreq/STEPS_1M);
 518   1          DrawNum(11, 0, 2, wFreq%STEPS_1M*5);
 519   1              if(wFreq%STEPS_1M>1)
 520   1                      Osd_DrawChar(11,0,'.');
 521   1          else
 522   1              Osd_DrawStr(11,0, ".0");
 523   1      
 524   1          DrawChannelFreqGuage( wFreq ,CP_RedColor);
 525   1      }
 526          
 527          void TV_ChannelInit(void)
 528          {
 529   1          g_TVChSetting.ucPreChannelNO=g_TVChSetting.ucCurChannelNO;
 530   1          //g_TVChSearchStartData=TN_FREQMIN;
 531   1          if (IsTVInUse())
 532   1                  Set_ChannelChangFlag();
 533   1      
 534   1              Set_ShowSourceFlag();
 535   1      }
 536          
 537          void ChannelSwap(BYTE sourcechannel ,BYTE goalchannel)
 538          {
 539   1          StuChannelData chDatatemp;
 540   1          ReadTVChannelInfo(sourcechannel,TRUE);
 541   1          chDatatemp=chData;
 542   1          ReadTVChannelInfo(goalchannel,TRUE);
 543   1          SaveTVChannelInfo(sourcechannel, TRUE);
 544   1          chData=chDatatemp;
 545   1          SaveTVChannelInfo(goalchannel, TRUE);
 546   1          ResetTuner();
 547   1          Set_InputTimingChangeFlag();
 548   1      }
 549          
 550          
C51 COMPILER V8.18   TV_2IN1                                                               09/29/2009 23:58:04 PAGE 10  

 551          void ReDrawProgram(BOOL flag)
 552          {
 553   1          if(flag)
 554   1          {
 555   2              Osd_SetTextColor(CP_GrayColor,CP_GrayColor);
 556   2              Osd_DrawStr(2,7, strProgramText[g_VideoSetting.Language]);
 557   2              Osd_DrawNum(13, 7, g_ucTVChannelAutoScanCount);
 558   2                  g_bProgramFlash=FALSE;
 559   2          }
 560   1          else
 561   1          {
 562   2              Osd_SetTextColor(CP_WhiteColor,CP_GrayColor);
 563   2              Osd_DrawStr(2,7, strProgramText[g_VideoSetting.Language]);
 564   2              Osd_DrawNum(13, 7, g_ucTVChannelAutoScanCount);
 565   2                  g_bProgramFlash=TRUE;
 566   2          }
 567   1      }
 568          
 569          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1879    ----
   CONSTANT SIZE    =     44    ----
   XDATA SIZE       =      5    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2      34
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -