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

📄 osdmenufunc003.c

📁 RTD2662板卡源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
    case _ST_NORMAL:
        tIcon = tIcon_Normal[ucItem - _MI_COLOR];
        break;
    case _ST_SELECT:
        tIcon = tIcon_Select[ucItem - _MI_COLOR];
        break;
    case _ST_DISABLE:
        tIcon = tIcon_Disable[ucItem - _MI_COLOR];
        break;
    }
    
    Draw2bit3x2Icon(tIcon,1,y);
}
//---------------------------------------------------------------------------
// ucItem : MainMenu\_MI_COLOR,_MI_ADJUST,_MI_OSD,_MI_TV,_MI_FUNCTION,_MI_SOUND,
void DrawMainItemTitle(BYTE ucItem)
{
    BYTE i;
    BYTE n;
    BYTE x; 
    BYTE Width;
    BYTE code *tFont;
    
    tFont = tMainTitle[ucItem - _MI_COLOR][GET_LANGUAGE()].Font;
    Width = tMainTitle[ucItem - _MI_COLOR][GET_LANGUAGE()].Width;
    
    CScalerLoadHardwareVLCFont(tFont, 0xE8);
    
    // 39 : OSD Width
    x = (39 - Width)/2;
    n = 0xE8;
    
    Gotoxy(x,1,BYTE_DISPLAY);
    CScalerSendAddr(_OSD_DATA_PORT_92 , _NON_AUTOINC);
    for(i=0;i<Width;i++)
    {
        *(&MCU_SCA_INF_DATA_FFF5) = n++;
    }
    
    Gotoxy(x,2,BYTE_DISPLAY);
    CScalerSendAddr(_OSD_DATA_PORT_92 , _NON_AUTOINC);
    for(i=0;i<Width;i++)
    {
        *(&MCU_SCA_INF_DATA_FFF5) = n++;
    }  
    
}
//---------------------------------------------------------------------------

void DrawMainMenu(void)
{
    BYTE i;
    BYTE ucMode;
    InitMainOsd();
    
    LoadCHIFont(_LF_COLOR_PAGE);
    
    for(i=_MI_COLOR;i<=_MI_SOUND;i++)
    {
        if(i == ucOsdState)
        {
            ucMode = _ST_SELECT;
            DrawMainItemTitle(i);
        }
        else
        {
            ucMode = _ST_NORMAL;
        }
        DrawMainMenuItem(i,     ucMode);
    }
    
    DrawSubMenu(ucOsdState);
}
//---------------------------------------------------------------------------
void SubMenuTextOut(BYTE *str,BYTE y,BYTE ucColor,BYTE State)
{
    // set color
    SUBMENU_LINECOLOR(y,ucColor);
    // draw menu item 
    SUBMENU_TEXTOUT(str,y);
    
    // draw select line
    if(State == _ST_SELECT || State == _ST_ADJUST)
    {
        DRAW_SUBMENU_SELLINE(y + 1);
    }
    else
    {
        CLEAR_SUBMENU_SELLINE(y + 1);
    }
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawBright(BYTE State)
{
    BYTE y;
    BYTE ucColor,ucColor1;
    
    // get display line
    y = GetShowIndex(_MI_BRIGHTNESS,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    if(State == _ST_ADJUST)
    {
        ucColor1 = StateColor(_ST_SELECT);
    }
    else
    {
        ucColor1 = ucColor;
    }
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sBrightness[GET_LANGUAGE()],y,ucColor1,State);
    
    // draw slider
    OSD_SLIDER(y,stConBriData.Brightness,ucColor);
    
}
//---------------------------------------------------------------------------
void BrightAdjust(BYTE ucMode)
{
    BYTE y;
    
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    stConBriData.Brightness = ValueInRangeChange(0, 100, stConBriData.Brightness, _NON_LOOP | ucMode);
    CAdjustBrightness();
    ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
    
    // get display line
    y = GetShowIndex(_MI_BRIGHTNESS,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    y = SHOWINDEX_TO_LINE(y);
    
#if(_KEY_TYPE == _KT_PCB2660_003)
    OSD_SLIDER(y,stConBriData.Brightness,_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    OSD_SLIDER(y,stConBriData.Brightness,_MENU_ADJUST_COLOR);
#endif
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawContrast(BYTE State)
{
    BYTE y;
    BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    BYTE ucColor1;
#endif
    
    // get display line
    y = GetShowIndex(_MI_CONTRAST,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    if(State == _ST_ADJUST)
    {
        ucColor1 = StateColor(_ST_SELECT);
    }
    else
    {
        ucColor1 = ucColor;
    }
#endif      
    y = SHOWINDEX_TO_LINE(y);
    
#if(_KEY_TYPE == _KT_PCB2660_003)
    SubMenuTextOut(sContrast[GET_LANGUAGE()],y,ucColor,State);
#endif
    
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    SubMenuTextOut(sContrast[GET_LANGUAGE()],y,ucColor1,State);
#endif
    // draw slider
    OSD_SLIDER(y,stConBriData.Contrast,ucColor);
}
//---------------------------------------------------------------------------
void ContrastAdjust(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    BYTE y;
    
    SET_KEYREPEATENABLE();
    stConBriData.Contrast = ValueInRangeChange(0, 100, stConBriData.Contrast, _NON_LOOP | ucMode);
    CAdjustContrast();
    ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
    
    
    // get display line
    y = GetShowIndex(_MI_CONTRAST,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)   
    OSD_SLIDER(y,stConBriData.Contrast,_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    OSD_SLIDER(y,stConBriData.Contrast,_MENU_ADJUST_COLOR);
#endif
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawHue(BYTE State)
{
    BYTE y;
    BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)  
    BYTE ucColor1;
#endif
    
    // get display line
    y = GetShowIndex(_MI_HUE,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    if(State == _ST_ADJUST)
    {
        ucColor1 = StateColor(_ST_SELECT);
    }
    else
    {
        ucColor1 = ucColor;
    }
#endif  
    
    y = SHOWINDEX_TO_LINE(y);
    
#if(_KEY_TYPE == _KT_PCB2660_003)
    SubMenuTextOut(sHue[GET_LANGUAGE()],y,ucColor,State);
#endif
    
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    SubMenuTextOut(sHue[GET_LANGUAGE()],y,ucColor1,State);
#endif
    // draw slider
    OSD_SLIDER(y,GET_HUE(),ucColor);
    
}
//---------------------------------------------------------------------------
void HueAdjust(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    BYTE y;
    
    SET_KEYREPEATENABLE();
    stHueSatData.Hue = ValueInRangeChange(0, 100, stHueSatData.Hue, _NON_LOOP | ucMode);
    if(bSourceVideo())
        gmi_CAdjustVDCHue(GET_HUE());
    else
        CAdjustYpbprhue(GET_HUE());
    ucOsdEventMsg = _SAVE_EE_HUE_SAT_DATA_MSG;
    
    
    // get display line
    y = GetShowIndex(_MI_HUE,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    y = SHOWINDEX_TO_LINE(y);
#if(_KEY_TYPE == _KT_PCB2660_003)
    OSD_SLIDER(y,GET_HUE(),_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    OSD_SLIDER(y,GET_HUE(),_MENU_ADJUST_COLOR);
#endif
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawSaturation(BYTE State)
{
    BYTE y;
    BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)  
    BYTE ucColor1;
#endif  
    
    // get display line
    y = GetShowIndex(_MI_SATURATION,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    if(State == _ST_ADJUST)
    {
        ucColor1 = StateColor(_ST_SELECT);
    }
    else
    {
        ucColor1 = ucColor;
    }
#endif  
    
#if(_KEY_TYPE == _KT_PCB2660_003)
    SubMenuTextOut(sSaturation[GET_LANGUAGE()],y,ucColor,State);
#endif
    
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)
    SubMenuTextOut(sSaturation[GET_LANGUAGE()],y,ucColor1,State);
#endif
    // draw slider
    OSD_SLIDER(y,GET_SATURATION(),ucColor);
}
//---------------------------------------------------------------------------
void SaturationAdjust(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    BYTE y;
    
    SET_KEYREPEATENABLE();
    stHueSatData.Saturation = ValueInRangeChange(0, 100, stHueSatData.Saturation, _NON_LOOP | ucMode);
    if(bSourceVideo())
        CVideoSetSaturation(GET_SATURATION());
    else
        CAdjustYpbprSaturation(GET_SATURATION());
    ucOsdEventMsg = _SAVE_EE_HUE_SAT_DATA_MSG;            
    
    
    // get display line
    y = GetShowIndex(_MI_SATURATION,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    y = SHOWINDEX_TO_LINE(y);
    
#if(_KEY_TYPE == _KT_PCB2660_003)   
    OSD_SLIDER(y,GET_SATURATION(),_MENU_SECECT_COLOR);
#endif
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)    
    OSD_SLIDER(y,GET_SATURATION(),_MENU_ADJUST_COLOR);
#endif
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawColorTemp(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    char *pStr;
    
    // get display line
    y = GetShowIndex(_MI_COLORTEMP,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sColorTemp[GET_LANGUAGE()],y,ucColor,State);
    
    switch(GET_COLOR_TEMP_TYPE())
    {
    case _CT_9300:          pStr = s9300[GET_LANGUAGE()];       break;
    case _CT_6500:          pStr = s6500[GET_LANGUAGE()];       break;
    case _CT_USER:
    default:                pStr = sUser[GET_LANGUAGE()];       break;
    }       
    
    SUBMENU_RIGHT_TEXTOUT(pStr, y);
    
}
//---------------------------------------------------------------------------
/*
void ColorTempAdjust(BYTE ucMode)
{
// ucMode : _INC or _DEC

  BYTE y;
  char *pStr;
  
    BYTE ucColorTemp = GET_COLOR_TEMP_TYPE();
    
      if(ucMode == _INC)
      {
      switch(GET_COLOR_TEMP_TYPE())
      {
      case _CT_9300:            SET_COLOR_TEMP_TYPE(_CT_6500);      break;
      case _CT_6500:            SET_COLOR_TEMP_TYPE(_CT_USER);      break;
      case _CT_USER:            SET_COLOR_TEMP_TYPE(_CT_9300);      break;
      default:              SET_COLOR_TEMP_TYPE(_CT_USER);      break;
      }
      }
      else
      {
      switch(GET_COLOR_TEMP_TYPE())
      {
      case _CT_9300:            SET_COLOR_TEMP_TYPE(_CT_USER);      break;
      case _CT_6500:            SET_COLOR_TEMP_TYPE(_CT_9300);      break;
      case _CT_USER:            SET_COLOR_TEMP_TYPE(_CT_6500);      break;
      default:              SET_COLOR_TEMP_TYPE(_CT_USER);      break;
      }
      }
      
        // get display line
        y = GetShowIndex(_MI_COLORTEMP,BEGIN(_MI_BRIGHTNESS),END(_MI_COLORTEMP));
        
          if(y == _NOT_SHOW)
          return;
          
            
              y = SHOWINDEX_TO_LINE(y);
              switch(GET_COLOR_TEMP_TYPE())
              {
              case _CT_9300:            pStr = s9300[GET_LANGUAGE()];       break;
              case _CT_6500:            pStr = s6500[GET_LANGUAGE()];       break;
              case _CT_USER:
              default:              pStr = sUser[GET_LANGUAGE()];       break;
              }     
              
                SUBMENU_RIGHT_TEXTOUT(pStr, y);
                
                  }
*/
//---------------------------------------------------------------------------
// ucItem : MainMenu\Color\_MI_BRIGHTNESS,_MI_CONTRAST,_MI_HUE,_MI_SATURATION,_MI_COLORTEMP,
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawColorPageMenuItem(BYTE ucItem,BYTE ucState)
{
    if(!g_tMenuItem[ucItem].Enable())
    {
        ucState = _ST_DISABLE;  
    }
    
    switch(ucItem)
    {
    case _MI_BRIGHTNESS:        DrawBright(ucState);        break;
    case _MI_CONTRAST:          DrawContrast(ucState);      break;
    case _MI_HUE:               DrawHue(ucState);           break;
    case _MI_SATURATION:        DrawSaturation(ucState);    break;
    case _MI_COLORTEMP:         DrawColorTemp(ucState);     break;
    }
}
//---------------------------------------------------------------------------

//  SUBMENU_TEXTOUT(sSpace,Row);
void DrawPageNullLine(BYTE MenuBegin,BYTE MenuEnd)
{
    BYTE ucCount = GetShowCount(MenuBegin,MenuEnd);
    
    for(;ucCount<6;ucCount++)
    {
        SUBMENU_TEXTOUT(sSpace,SHOWINDEX_TO_LINE(ucCount));
    }
}
//---------------------------------------------------------------------------
// MainMenu\Color\_MI_BRIGHTNESS,_MI_CONTRAST,_MI_HUE,_MI_SATURATION,_MI_COLORTEMP,
void DrawColorPage(void)
{
    BYTE i;
    BYTE ucState;
    
    for(i=_MI_BRIGHTNESS;i<=_MI_COLORTEMP;i++)
    {
        if(i == ucOsdState)
        {
            ucState = _ST_SELECT;
        }
        else

⌨️ 快捷键说明

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