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

📄 osdmenu.lst

📁 此程序为twell8806驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
                      case OFF_TIME:
                                                                      val = SetClock_min(flag);                       break;
              */
                      #ifdef NTSC_TV
                      case AIR_CABLE_TV:              val = ToggleTVType();                                   break;
                      case STORE_CLEAR_TVCHN: val = StoreClearCurChn();                               break;
                      #endif
              
                      case MTS:                               val = SetMTSType();                                             break;
                      case FINE_TUNE_CHANNEL: val = ChangeFineChannel(flag);                  break;
              /*
                      #ifdef PAL_TV
                      case WAKEUP_PR:                 
                                                                      //val = OSDItemValue = ( flag==UP ? OSDItemValue+1 : OSDItemValue+GetMaxTVChn()-1 ) % GetMaxTVChn()
             -;        break;
                      #endif  // PAL_TV
                      
              */
C51 COMPILER V7.50   OSDMENU                                                               08/20/2007 10:23:32 PAGE 13  

                      #endif //SUPPORT_TV
 736   2      
 737   2              #ifdef WIDE_SCREEN
 738   2              case WIDESCREEN:                        val = WideScreenMode;
 739   2                                                                      if(flag==UP) val++;
 740   2                                                                      else val = ( val+MAXWIDESCREEN -1 );    
 741   2                                                                      val %= MAXWIDESCREEN;
 742   2                                                                      Set4WideScreen( val );
 743   2                                                                      break;
 744   2              #endif  //WIDE_SCREEN
 745   2      
 746   2              #ifdef SUPPORT_CCD_VCHIP
                      case CLOSED_CAPTION:    val = ChangeCC(flag);                                   break;
                      #endif // SUPPORT_CCD_VCHIP
 749   2      
 750   2              #ifdef SUPPORT_CCD_VCHIP
                      //case TV_GUIDE:                                val = ChangeVchipTV( flag );            break;
                      case MPAA_RATING:                               val = GetMPAARating();
                                                                                      if(flag==UP) val++;
                                                                                      else val = ( val+MAXVCHIPMOVIE -1 );    
                                                                                      val %= MAXVCHIPMOVIE;
                                                                                      val = ChangeVchipMovie( val );          break;
                      #endif
 758   2      
 759   2              }
 760   1      
 761   1              return val;
 762   1      }
 763          /*
 764          void DrawTime(WORD val, BYTE Hcolor, BYTE Mcolor )
 765          {
 766                  BYTE mstr[5];
 767                  WORD new_val;
 768          
 769                  #ifdef DEBUG_OSD
 770                  dPrintf("\r\n++(DrawTime) winno:%d, time:0x%x__", (WORD)val_osdwin, (WORD)val);
 771                  #endif
 772          
 773                  new_val = val >> 8;
 774                  if( new_val < 10 )              mstr[0] = '0';
 775                  else                                    mstr[0] = ( new_val / 10 ) + '0' ;
 776                  mstr[1] = ( new_val % 10 ) + '0' ;
 777                  mstr[2] = 0;
 778                  CopyStrToOSDWindow(val_osdwin, 0, 0, 0, Hcolor, mstr);
 779                  CopyCharToOSDWindow(val_osdwin, 2, 0,  ( (~CH_BLINK) & Hcolor ), ':');
 780          
 781                  new_val = (BYTE)val;
 782                  if( new_val < 10 )              mstr[0] = '0';
 783                  else                                    mstr[0] = ( new_val / 10 ) + '0' ;
 784                  mstr[1] = ( new_val % 10 ) + '0' ;
 785                  mstr[2] = 0;
 786                  CopyStrToOSDWindow(val_osdwin, 3, 0, 0, Mcolor, mstr);
 787          
 788                  #ifdef DEBUG_OSD
 789                  dPrintf("--- time:0x%x__", (WORD)val);
 790                  #endif
 791          
 792          }
 793          
 794          */
 795          
 796          void DisplayViewBar(WORD addr, BYTE val)
C51 COMPILER V7.50   OSDMENU                                                               08/20/2007 10:23:32 PAGE 14  

 797          {
 798   1              CODE BYTE BAR_ROM_TABLE[] = {
 799   1                      0x01,0x01,0x01,0x01, // ...
 800   1                      0x02,0x02,0x02,0x02,0x02, // |..
 801   1                      0x05,0x05,0x05,0x05,0x05,// ||.
 802   1                      0x03, // |
 803   1                      0x04, // |||
 804   1              };
 805   1      
 806   1              BYTE i;
 807   1              BYTE Bar_str[]={ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, ' ', ' ', ' ',0 };
 808   1      
 809   1              // Bar
 810   1              if(val < 98)
 811   1              {
 812   2                      Bar_str[val/14] = BAR_ROM_TABLE[val%14];
 813   2                      for(i = val/14 + 1; i < 7; i++)
 814   2                              Bar_str[i] = BAR_ROM_TABLE[0];
 815   2              }
 816   1      
 817   1              if( Bar_str[0] == 0x01 ) Bar_str[0] = 0x02;     // |..
 818   1      
 819   1              // Number
 820   1          Bar_str[10] = val % 10 + '0';    val /= 10;
 821   1          Bar_str[9] =  val % 10 + '0';    val /= 10;
 822   1          Bar_str[8] = val + '0';
 823   1              if( Bar_str[8] == '0' ) Bar_str[8] = ' ';
 824   1      
 825   1              WriteStringToAddr(addr, Bar_str, BARNUM_LENGTH); 
 826   1      
 827   1      }
 828          
 829          void DrawNum(WORD addr,CODE_P struct NumType *nptr, WORD val)
 830          {
 831   1              BYTE x,i, j,k, len, mstr[5];//,color;
 832   1              BYTE Num_str[]={ ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0 };
 833   1              CODE_P BYTE *str;
 834   1              
 835   1              x=  MAX_DESC;//+ICON_CH_SZ;
 836   1              i =  nptr->PrePostCharLen >> 4 ;
 837   1              j =  nptr->PrePostCharLen & 0x0f ;
 838   1              str = nptr->PrePostChar;
 839   1      
 840   1              // Draw char on front of number. 
 841   1              if( i ) 
 842   1                      for(k=0; k<i; k++)
 843   1                              Num_str[k] = *str++;
 844   1              // Draw number.
 845   1              utoa(val,mstr,BAR_NUM_RADIX);
 846   1              len = strlen(mstr);
 847   1              str=mstr;
 848   1              for(k=0; k<len; k++)
 849   1                      Num_str[k+i] = *str++;
 850   1      
 851   1              // Draw char on back of number
 852   1              if( j ) 
 853   1                      for(k=0; k<j; k++)
 854   1                              Num_str[k+i+len] = *str++;
 855   1              WriteStringToAddr(addr, Num_str, BARNUM_LENGTH); 
 856   1              
 857   1      }
 858          
C51 COMPILER V7.50   OSDMENU                                                               08/20/2007 10:23:32 PAGE 15  

 859          void DrawStringByLang( WORD addr, CODE_P struct EnumType *yptr, WORD val )
 860          {
 861   1      
 862   1              BYTE j,l,Size_val;
 863   1              BYTE Buf[]={' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0 };
 864   1              CODE_P BYTE *Str;
 865   1      
 866   1              Size_val = yptr->Sz;
 867   1              Str = yptr->Str;
 868   1      
 869   1              if ( yptr->ByLang)
 870   1              {
 871   2                      for(j=0; j<OSDLang*Size_val; j++)                       
 872   2                      Str += ( strlen(Str) + 1 );
 873   2              }
 874   1      
 875   1              if( val ){ 
 876   2                      for(j=0; j<val; j++)                    
 877   2                      Str += ( strlen(Str) + 1 );     
 878   2              }
 879   1      
 880   1              WriteStringToAddr(addr, Buf, BARNUM_LENGTH); 
 881   1      
 882   1              l = CStrlen(Str);
 883   1      
 884   1              WriteStringToAddr(addr, Str, l); 
 885   1      
 886   1      }
 887          /*
 888          #ifdef PAL_TV
 889          void DrawFraction( CODE_P struct NumType *nptr, DWORD val, BYTE fp )
 890          {
 891                  BYTE mstr[6], len;
 892          
 893                  ltoa_K( val, mstr, fp );
 894                  len = strlen(mstr);
 895                  CopyStrToOSDWindow(cur_osdwin, 0, 0, len, nptr->NumColor, mstr);
 896                  ClearOSDLine(cur_osdwin, len, 0, nptr->width-len, nptr->NumColor);
 897          }
 898          #endif
 899          
 900          BYTE OnChangingValue(void)
 901          {
 902                  return ( (val_osdwin==0xff  ) ? 0 : 1 );        //OSDItemValue==0xffff: password error
 903          }
 904          // Not used yet *******************************************
 905          BYTE OnChangingTime(void)
 906          {
 907                  if ( val_osdwin==0xff )                                         return 0 ;
 908                  if ( MenuChild[cursor_item].Type==TIME )        return 1;
 909                  else                                                                            return 0;
 910          
 911          }
 912          */
 913          
 914          void DrawMenulist(BYTE NOTViewflag)
 915          {
 916   1              BYTE  i,j,k, x=0, y=0;
 917   1              CODE_P struct DefineMenu *DMp;
 918   1              CODE_P BYTE *Desc;
 919   1              BYTE  Max_y;
 920   1              WORD addr;
C51 COMPILER V7.50   OSDMENU                                                               08/20/2007 10:23:32 PAGE 16  

 921   1      
 922   1              // Draw Title line
 923   1              if( MenuFormat->TitleColor!=NIL ) {
 924   2      
 925   2                      #ifdef DEBUG_OSD
                              dPrintf("\r\nTitle color:0x%x", (WORD)MenuFormat->TitleColor);
                              #endif
 928   2       
 929   2                      DMp = &MenuTitle[title_item];
 930   2                      Desc = DMp->Desc[OSDLang];
 931   2                      j=strlen(Desc);
 932   2      
 933   2                      for( i=0,k=0; i<j; i++ )
 934   2                              if( *(Desc+i) == ROMFONT || *(Desc+i) == RAMFONT ) k++;
 935   2      
 936   2                      //ClearDataCnt(OSDMENU_SUBADDR, MenuFormat->width);     // Clear the counter of OSD RAM Data from addr with 
             -space(' ').
 937   2                      DrawAttrCnt(OSDMENU_SUBADDR, MenuFormat->TitleColor, MenuFormat->width );        
 938   2                      WriteStringToAddr(OSDMENU_SUBADDR, Desc, j);
 939   2      
 940   2                      if( (j-k ) < TITLE_MAX_DESC ) 
 941   2                              ClearDataCnt(OSDMENU_SUBADDR+j-k, TITLE_MAX_DESC-j+k);
 942   2      
 943   2                      y++;
 944   2              }
 945   1              
 946   1              if( MenuChild ) i = 0;
 947   1              else                    i = NIL;
 948   1      
 949   1              // Draw 
 950   1               Max_y = (cur_osdwin == OSDMENU_TOPWIN ? TOTAL_TOP_HEIGHT: MENU_HEIGHT+1);
 951   1               addr = (cur_osdwin == OSDMENU_TOPWIN ? OSDMENU_MAINADDR: OSDMENU_SUBADDR);
 952   1               addr += y*MenuFormat->width;
 953   1      
 954   1               if( NOTViewflag==0 ) {
 955   2                       I2CAutoIncFlagOn = 1;  // speedy submenu drawing 
 956   2                       WriteDecoder(TW88_ENABLERAM, 0x04); // OSD RAM Auto Access Enable
 957   2               }

⌨️ 快捷键说明

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