osdmenu.lst

来自「显示屏驱动源代码」· LST 代码 · 共 1,286 行 · 第 1/5 页

LST
1,286
字号
 489   1      
 490   1              if( cursor_item==NIL )
 491   1                      return;
 492   1              
 493   1              cursor_y = cursor_item + ( MenuFormat->TitleColor ==NIL ? 0 : 1 );
 494   1      
 495   1              if( OSDMenuLevel == 1 ) addr = OSDMENU_MAINADDR;
 496   1              else addr = OSDMENU_SUBADDR;
 497   1      
 498   1              addr += cursor_y*MenuFormat->width;
 499   1      
 500   1              if( OSDMenuLevel == 1)
 501   1                      DrawAttrCnt(addr, MenuFormat->CursorColor, MenuFormat->width ); 
 502   1              else
 503   1              {
 504   2                      if(OnChangingValue)
 505   2                      {
 506   3                              GetItemValue(GetItemValue(MenuChild[cursor_item].Id));
 507   3                              DrawAttrCnt(addr, MenuFormat->CursorColor, MenuFormat->width ); 
 508   3                      }
 509   2                      else
 510   2                      {
 511   3                              DrawAttrCnt(addr, MenuFormat->CursorColor, MenuFormat->width-BARNUM_LENGTH );   
 512   3                              DrawAttrCnt(addr+MAX_DESC, DEFAULT_COLOR, BARNUM_LENGTH );      
 513   3                      }
 514   2              }       
 515   1      
 516   1      }
 517          
 518          
 519          //===============================================================================
 520          //  OSD Menu Operation funtion moved to "OSDoper.c" by RYU.
 521          // 
 522          //===============================================================================
 523          
 524          WORD GetItemValue( BYTE id)
 525          {
 526   1              WORD val=0;
 527   1      
 528   1              #ifdef DEBUG_OSD
                      dPrintf("\r\n++(GetItemValue) id:0x%x __", (WORD)id);
                      #endif
 531   1      
 532   1              switch( id ) {
 533   2              //case SYSTEM_CLOCK:    val = GetSystemClock_HM();                      break;
 534   2              //case WAKEUP_TIME:             val = OSDItemValue = GetWakeupTime();   break;
 535   2              //case OFF_TIME:                val = OSDItemValue = GetOffTime();              break;
 536   2              case SLEEP_TIMER:               val = OSDItemValue = GetSleepTimer();   break;
 537   2      
 538   2      #ifdef SUPPORT_OSDPOSITIONMOVE
 539   2              case OSDPOSITIONMODE:   val = GetOSDPositionMode();                             break;
 540   2              //case OSD_VPOS:                        val = GetOSDMenuYValue();                               break;
 541   2              //case OSD_HPOS:                        val = GetOSDMenuXValue();                               break;
 542   2      #endif
 543   2      //      case OSD_DURATION:              val = GetOSDDurationValue();                    break;
 544   2              case OSDLANG:                   val = OSDLang & 0x0f;                                   break;
 545   2      
 546   2              #ifdef SUPPORT_PC
 547   2              case PANEL_CONTRAST:    val = OSDItemValue = GetPanelContrastEE();                              break;
 548   2              case PANEL_BRIGHTNESS:  val = OSDItemValue = GetPanelBrightnessEE();                    break;
C51 COMPILER V7.06   OSDMENU                                                               02/21/2008 14:00:28 PAGE 10  

 549   2      
 550   2              case PC_VPOS:                   val = GetVPosition();                                   break;
 551   2              case PC_HPOS:                   val = GetHPosition();                                   break;
 552   2              case PC_CLOCK:                  val = GetCoarseValue();                                 break;
 553   2              case PC_PHASE:                  val = GetPhaseCurrent();                                break;
 554   2      
 555   2              case PC_COLOR_TEMP:             val = GetPCColorTempModeEE();                   break;
 556   2              case PC_COLOR_R:                val = GetPCColorTemp(RED);                              break;  
 557   2              case PC_COLOR_G:                val = GetPCColorTemp(GREEN);                    break;  
 558   2              case PC_COLOR_B:                val = GetPCColorTemp(BLUE);                             break;  
 559   2              #endif
 560   2      
 561   2      
 562   2              case VIDEO_MODE:                val = GetVideoModeEE();                                 break;
 563   2      
 564   2              case VIDEO_CONTRAST:    
 565   2              case VIDEO_BRIGHTNESS:  
 566   2              case VIDEO_SATURATION:  
 567   2              case VIDEO_HUE:                 
 568   2              case VIDEO_SHARPNESS:   
 569   2              case VIDEO_BACKLIGHT:   
 570   2                                                              val = GetVideoDatawithOffset(id-VIDEO_CONTRAST);        break;
 571   2      
 572   2              case AUDIO_VOLUME:              val = GetAudioVol();                                    break;
 573   2      #ifdef SUPPORT_MSP_AUDIO
                      case AUDIO_BALANCE:             val = GetAudioBalance();                                break;
                      case AUDIO_BASS:                val = GetAudioBass();                                   break;
                      case AUDIO_TREBLE:              val = GetAudioTreble();                                 break;
                      //case AUDIO_EFFECT:            val = GetAudioEffect();                                 break;
                      //case AUDIO_MUTE:              val = IsAudioMuteOn();                                  break;
              #endif
 580   2      
 581   2      #ifdef SUPPORT_TV
                      #ifdef NTSC_TV
                      case AIR_CABLE_TV:              val = OSDItemValue = GetTVType();               break;
                      case STORE_CLEAR_TVCHN: val = OSDItemValue = IsSavedCurChn();   break;
                      #endif
                      
                      case FINE_TUNE_CHANNEL: val = OSDItemValue = GetFineTune();             break;
              #endif // SUPPORT_TV
 589   2      
 590   2              case INPUTSTD:                  val = OSDItemValue = VInputStdDetectMode;                       
 591   2                                                              break;
 592   2      
 593   2              #ifdef WIDE_SCREEN              //.................................................
 594   2              case WIDESCREEN:
 595   2                                                              val = WideScreenMode;                                   break;
 596   2              #endif                                  //.................................................
 597   2      
 598   2              }
 599   1      
 600   1              return val;
 601   1      }
 602          
 603          #define MAX_VIDEOMODE   4
 604          #define MAXVCHIPMOVIE   7 
 605          
 606          WORD SetItemValue( BYTE id, BYTE flag )
 607          {
 608   1              WORD val=0;
 609   1      //      BYTE    i;
 610   1      
C51 COMPILER V7.06   OSDMENU                                                               02/21/2008 14:00:28 PAGE 11  

 611   1              switch( id ) {
 612   2              //case SYSTEM_CLOCK_H:  
 613   2              //case WAKEUP_TIME_H:           
 614   2              //case OFF_TIME_H:
 615   2              //                                              val = SetClock_hour(flag);                              break;
 616   2      
 617   2              //case SYSTEM_CLOCK:
 618   2              //case WAKEUP_TIME:
 619   2              //case OFF_TIME:
 620   2              //                                              val = SetClock_min(flag);                               break;
 621   2              case SLEEP_TIMER:               val = ChangeSleepTimer( flag );                 break;
 622   2      
 623   2      #ifdef SUPPORT_OSDPOSITIONMOVE
 624   2              case OSDPOSITIONMODE:    val = SetOSDPositionMode( flag );              break;
 625   2              //case OSD_VPOS:                        val = SetOSDMenuYValue(flag);                   break;
 626   2              //case OSD_HPOS:                        val = SetOSDMenuXValue(flag);                   break;
 627   2      #endif
 628   2      
 629   2      //      case OSD_DURATION:              val = SetOSDDurationValue(flag);                break;
 630   2              case OSDLANG:                   val = SetLanguage (flag);                               break;
 631   2      
 632   2              #if defined(SUPPORT_PC) || defined(SUPPORT_DTV)
 633   2              case PANEL_CONTRAST:    val = SetPanelContrast(flag);                   break;
 634   2              case PANEL_BRIGHTNESS:  val = SetPanelBrightness(flag);                 break;
 635   2              #endif
 636   2      
 637   2              #ifdef SUPPORT_PC
 638   2              case PC_VPOS:                   val = SetVPosition(flag);                               break;
 639   2              case PC_HPOS:                   val = SetHPosition(flag);                               break;
 640   2              case PC_CLOCK:                  val = SetPCCoarseValue(flag);                   break;
 641   2              case PC_PHASE:                  val = SetPhaseValue(flag);                              break;
 642   2              #endif
 643   2      
 644   2              case PC_COLOR_TEMP:             val = SetPCColorTemp(flag);                     break;
 645   2      
 646   2              case PC_COLOR_R:                val = SetPCColor(RED, flag);                    break;  
 647   2              case PC_COLOR_G:                val = SetPCColor(GREEN, flag);                  break;  
 648   2              case PC_COLOR_B:                val = SetPCColor(BLUE, flag);                   break;  
 649   2      
 650   2              case VIDEO_MODE:                val = GetVideoModeEE();
 651   2                                                              if(flag==UP) val ++;
 652   2                                                              else val = val + MAX_VIDEOMODE -1;
 653   2                                                              val %= MAX_VIDEOMODE ; 
 654   2                                                              SetVideoMode(val);              
 655   2                                                              
 656   2                                                              if( GetVideoModeEE() != 3 )  // if not user mode, mask the control.
 657   2                                                                      DrawAttrCnt(OSDMENU_SUBADDR+MENU_WIDTH*2, BACK_COLOR, (MENU_HEIGHT-1)*MENU_WIDTH );     
 658   2                                                              else
 659   2                                                                      DrawAttrCnt(OSDMENU_SUBADDR+MENU_WIDTH*2, DEFAULT_COLOR, (MENU_HEIGHT-1)*MENU_WIDTH );  
 660   2                                                                                                                                              break;
 661   2      
 662   2              case VIDEO_CONTRAST:    
 663   2              case VIDEO_BRIGHTNESS:  
 664   2              case VIDEO_HUE:                 
 665   2                                                              val= ChangeVideoData(id-VIDEO_CONTRAST,flag);                                   break;
 666   2              case VIDEO_SATURATION:  val = ChangeVideoData(id-VIDEO_CONTRAST,flag);  
 667   2                                                              ChangeVideoData(id+1-VIDEO_CONTRAST,flag);
 668   2                                                                                                                                              break;
 669   2                                                              //val = SetVideoSaturation(V_SAT, flag);        break;
 670   2              case VIDEO_SHARPNESS:   val = SetVideoSharpness(flag);                  break;
 671   2              case VIDEO_BACKLIGHT:   val = ChangeVideoData(id-VIDEO_CONTRAST,flag);                  break;
 672   2      
C51 COMPILER V7.06   OSDMENU                                                               02/21/2008 14:00:28 PAGE 12  

 673   2      
 674   2      
 675   2              case AUDIO_VOLUME:              val = ChangeVol( (flag==UP ? 1 : -1) ); break;
 676   2      #ifdef SUPPORT_MSP_AUDIO
                      case AUDIO_BALANCE:             val = ChangeBalance( (flag==UP ? 1 : -1) );     break;
                      case AUDIO_BASS:                val = ChangeBass( (flag==UP ? 1 : -1) );        break;
                      case AUDIO_TREBLE:              val = ChangeTreble( (flag==UP ? 1 : -1) );      break;
              #endif
 681   2      
 682   2      #ifdef SUPPORT_TV
                      case INPUTSTD:
                                                                              val = VInputStdDetectMode;
                                                                              if(flag==UP) val++;
                                                                              else val = ( val+MAXINPUTSTD -1 );
                                                                              val %= MAXINPUTSTD;
                                                                              //Printf("\r\n++IPUTSTD:0x%x __", (WORD)val);
                                                                              
                                                                              //i = GetInputSelection();
                                                                              //if( i==TV ) 
                                                                                      ChangeVInputStdDetectMode(val);
                                                                              break;
                      #ifdef NTSC_TV
                      case AIR_CABLE_TV:              val = ToggleTVType();                                   break;
                      case STORE_CLEAR_TVCHN: val = StoreClearCurChn();                               break;
                      #endif
              
                      case FINE_TUNE_CHANNEL: val = ChangeFineChannel(flag);                  break;
              #endif                                                  
 701   2              
 702   2      
 703   2      
 704   2              #ifdef WIDE_SCREEN
 705   2              case WIDESCREEN:                        val = WideScreenMode;
 706   2                                                                      if(flag==UP) val++;
 707   2                                                                      else val = ( val+MAXWIDESCREEN -1 );    
 708   2                                                                      val %= MAXWIDESCREEN;
 709   2                                                                      Set4WideScreen( val );
 710   2                                                                      break;
 711   2              #endif  //WIDE_SCREEN
 712   2      
 713   2              }
 714   1      
 715   1              return val;
 716   1      }
 717          
 718          
 719          void DisplayViewBar(WORD addr, BYTE val)
 720          {
 721   1              CODE BYTE BAR_ROM_TABLE[] = {
 722   1                      0x01,0x01,0x01,0x01, // ...
 723   1                      0x02,0x02,0x02,0x02,0x02, // |..
 724   1                      0x05,0x05,0x05,0x05,0x05,// ||.
 725   1                      0x03, // |
 726   1                      0x04, // |||
 727   1              };
 728   1      
 729   1              BYTE i=0;
 730   1              BYTE Bar_str[]={ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, ' ', ' ', ' ',0 };
 731   1      
 732   1              // Bar
 733   1              if( BAR_LENGTH != 0 ) {
 734   2                      if(val < 98)
C51 COMPILER V7.06   OSDMENU                                                               02/21/2008 14:00:28 PAGE 13  

 735   2                      {
 736   3                              Bar_str[val/14] = BAR_ROM_TABLE[val%14];
 737   3                              for(i = val/14 + 1; i < 7; i++)
 738   3                                      Bar_str[i] = BAR_ROM_TABLE[0];

⌨️ 快捷键说明

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