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

📄 osdmenufunc003.c

📁 RTD2662板卡源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        ucColor1 = StateColor(_ST_SELECT);
    }
    else
    {
        ucColor1 = ucColor;
    }   
    
    SubMenuTextOut(sTimer[GET_LANGUAGE()],y,ucColor1,State);
#endif
    
#if(_KEY_TYPE == _KT_PCB2660_003)
    SubMenuTextOut(sTimer[GET_LANGUAGE()],y,ucColor,State);
#endif
    
    OSDLine(y, _MSG_COL, LENGTH(10), ucColor, BYTE_COLOR);
    if (stOsdUserData.OsdTimeout < 5)
    {
        stOsdUserData.OsdTimeout = 0;
        SUBMENU_RIGHT_TEXTOUT(sOff[GET_LANGUAGE()], y);
    }
    else
    {       
        CShowNumber(_MSG_COL, y, GET_OSDTIMEOUT());
    }
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawDouble(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    BYTE *pStr;
    
    // get display line
    y = GetShowIndex(_MI_DOUBLE,BEGIN(_MI_LANGUAGE),END(_MI_TRANSPARENT));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sDouble[GET_LANGUAGE()],y,ucColor,State);
    
    if(GET_OSD_SIZE())
        pStr = sOn[GET_LANGUAGE()];
    else pStr = sOff[GET_LANGUAGE()];
    SUBMENU_RIGHT_TEXTOUT(pStr, y);
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawTransparent(BYTE State)
{
    BYTE y;
    BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)  
    BYTE ucColor1;
#endif  
    
    // get display line
    y = GetShowIndex(_MI_TRANSPARENT,BEGIN(_MI_LANGUAGE),END(_MI_TRANSPARENT));
    
    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;
    }   
    
    SubMenuTextOut(sTransparent[GET_LANGUAGE()],y,ucColor1,State);
#endif
    
#if(_KEY_TYPE == _KT_PCB2660_003)   
    SubMenuTextOut(sTransparent[GET_LANGUAGE()],y,ucColor,State);
#endif  
    
    OSDLine(y, _MSG_COL, LENGTH(10), ucColor, BYTE_COLOR);
    if (0 == GET_OSDBLENDING())
        SUBMENU_RIGHT_TEXTOUT(sOff[GET_LANGUAGE()], y);
    else
        CShowNumber(_MSG_COL, y, GET_OSDBLENDING());
}
//---------------------------------------------------------------------------
// ucItem : MainMenu\OSD\_MI_LANGUAGE,_MI_OSD_HPOSITION,_MI_OSD_VPOSITION,_MI_TIMER,_MI_DOUBLE,_MI_TRANSPARENT,
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawOsdPageMenuItem(BYTE ucItem,BYTE ucState)
{
    if(!g_tMenuItem[ucItem].Enable())
    {   
        ucState = _ST_DISABLE;  
    }
    
    switch(ucItem)
    {
    case _MI_LANGUAGE:              DrawLanguage(ucState);              break;
    case _MI_OSD_HPOSITION:         DrawOSDHPosition(ucState);          break;
    case _MI_OSD_VPOSITION:         DrawOSDVPosition(ucState);          break;
    case _MI_TIMER:                 DrawOSDTimer(ucState);              break;
    case _MI_DOUBLE:                DrawDouble(ucState);                break;
    case _MI_TRANSPARENT:           DrawTransparent(ucState);           break;
    }
}
//---------------------------------------------------------------------------
// MainMenu\OSD\_MI_LANGUAGE,_MI_OSD_HPOSITION,_MI_OSD_VPOSITION,_MI_TIMER,_MI_DOUBLE,_MI_TRANSPARENT,
void DrawOSDPage(void)
{
    BYTE i;
    BYTE ucState;
    
    for(i=_MI_LANGUAGE;i<=_MI_TRANSPARENT;i++)
    {
        if(i == ucOsdState)
        {
            ucState = _ST_SELECT;
        }
        else
        {
            ucState = _ST_NORMAL;
        }
        
        DrawOsdPageMenuItem(i,      ucState);
    }
    DrawPageNullLine(_MI_LANGUAGE,_MI_TRANSPARENT);
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawChannel(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    
    // get display line
    y = GetShowIndex(_MI_CHANNEL,BEGIN(_MI_CHANNEL),END(_MI_SKIP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sChannel[GET_LANGUAGE()],y,ucColor,State);
    CShowNumber(_MSG_COL, y, stTvInfo.CurChn);
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawSystem(BYTE State)
{
#if(_VIDEO_TV_SUPPORT)
    BYTE y;
    BYTE ucColor;
    BYTE *pStr;
    
    // get display line
    y = GetShowIndex(_MI_SYSTEM,BEGIN(_MI_CHANNEL),END(_MI_SKIP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sSystem[GET_LANGUAGE()],y,ucColor,State);
    
    switch(ucTVType)
    {
    case _TV_NTSC_M:        pStr = sNTSC_M;         break;
    case _TV_NTSC_4_BG:     pStr = sNTSC_4_BG;      break;
    case _TV_NTSC_4_DK:     pStr = sNTSC_4_DK;      break;
    case _TV_NTSC_4_I:      pStr = sNTSC_4_I;       break;
    case _TV_PAL_M:         pStr = sPAL_M;          break;
        
    case _TV_PAL_BG:        pStr = sPAL_BG;         break;
    case _TV_PAL_I:         pStr = sPAL_I;          break;
    case _TV_PAL_DK:        pStr = sPAL_DK;         break;
    case _TV_PAL_N:         pStr = sPAL_N;          break;
        
    case _TV_SECAM_BG:      pStr = sSECAM_BG;       break;
    case _TV_SECAM_DK:      pStr = sSECAM_DK;       break;
    case _TV_SECAM_L:       pStr = sSECAM_L;        break;
    case _TV_SECAM_LL:      pStr = sSECAM_LL;       break;
        
    }
    
    SUBMENU_RIGHT_TEXTOUT(pStr, y);
    
#else
    
        State = State;
    
#endif 

    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawAutoSearch(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    
    // get display line
    y = GetShowIndex(_MI_AUTOSEARCH,BEGIN(_MI_CHANNEL),END(_MI_SKIP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sAutoSearch[GET_LANGUAGE()],y,ucColor,State);
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawManualSearch(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    
    // get display line
    y = GetShowIndex(_MI_MANUALSEARCH,BEGIN(_MI_CHANNEL),END(_MI_SKIP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sManualSearch[GET_LANGUAGE()],y,ucColor,State);
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawTuning(BYTE State)
{
#if(_VIDEO_TV_SUPPORT)
    BYTE y;
    BYTE ucColor;
#if(_KEY_TYPE == _KT_PCB2660_003_5KEY)  
    BYTE ucColor1;
#endif  
    
    // get display line
    y = GetShowIndex(_MI_TUNING,BEGIN(_MI_CHANNEL),END(_MI_SKIP));
    
    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;
    }       
    
    SubMenuTextOut(sTuning[GET_LANGUAGE()],y,ucColor1,State);
#endif
    
#if(_KEY_TYPE == _KT_PCB2660_003)
    SubMenuTextOut(sTuning[GET_LANGUAGE()],y,ucColor,State);
#endif
    
    OSDLine(y, _MSG_COL, LENGTH(10), ucColor, BYTE_COLOR);
    CShowFreq(CLoadChannelFreq(stTvInfo.CurChn), _MSG_COL, y);

#else

    State = State;

#endif

}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawSkip(BYTE State)
{
#if(_VIDEO_TV_SUPPORT)

    BYTE y;
    BYTE ucColor;
    BYTE *pStr;
    bit fSkip;
    
    // get display line
    y = GetShowIndex(_MI_SKIP,BEGIN(_MI_CHANNEL),END(_MI_SKIP));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sSkip[GET_LANGUAGE()],y,ucColor,State);
    
    fSkip = CLoadChannelSkip(stTvInfo.CurChn);
    
    if(fSkip)
        pStr = sOn[GET_LANGUAGE()];
    else 
        pStr = sOff[GET_LANGUAGE()];
    
    SUBMENU_RIGHT_TEXTOUT(pStr, y);

#else
    
    State = State;

#endif

    
}
//---------------------------------------------------------------------------
// ucItem : MainMenu\TV\_MI_CHANNEL,_MI_SYSTEM,_MI_AUTOSEARCH,_MI_MANUALSEARCH,_MI_TUNING,_MI_SKIP,
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawTVPageMenuItem(BYTE ucItem,BYTE ucState)
{
    if(!g_tMenuItem[ucItem].Enable())
    {
        ucState = _ST_DISABLE;  
    }
    
    switch(ucItem)
    {
    case _MI_CHANNEL:               DrawChannel(ucState);               break;
    case _MI_SYSTEM:                DrawSystem(ucState);                break;
    case _MI_AUTOSEARCH:            DrawAutoSearch(ucState);            break;
    case _MI_MANUALSEARCH:          DrawManualSearch(ucState);          break;
    case _MI_TUNING:                DrawTuning(ucState);                break;
    case _MI_SKIP:                  DrawSkip(ucState);                  break;
    }
}
//---------------------------------------------------------------------------
// MainMenu\TV\_MI_CHANNEL,_MI_SYSTEM,_MI_AUTOSEARCH,_MI_MANUALSEARCH,_MI_TUNING,_MI_SKIP,
void DrawTVPage(void)
{
    BYTE i;
    BYTE ucState;
    
    for(i=_MI_CHANNEL;i<=_MI_SKIP;i++)
    {
        if(i == ucOsdState)
        {
            ucState = _ST_SELECT;
        }
        else
        {
            ucState = _ST_NORMAL;
        }
        
        DrawTVPageMenuItem(i,       ucState);
    }
    DrawPageNullLine(_MI_CHANNEL,_MI_SKIP);
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawReset(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    
    // get display line
    y = GetShowIndex(_MI_RESET,BEGIN(_MI_RESET),END(_MI_SHARPNESS));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sReset[GET_LANGUAGE()],y,ucColor,State);
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawDisplayRatio(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    BYTE *pStr;
    
    // get display line
    y = GetShowIndex(_MI_DISPLAYRATIO,BEGIN(_MI_RESET),END(_MI_SHARPNESS));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sDisplayRatio[GET_LANGUAGE()],y,ucColor,State);
    
	if(GET_DISPLAYMODE() == _DISPMODE_FULL)
	{
		pStr = s16_9;
	}
	else if(GET_DISPLAYMODE() == _DISPMODE_43)
	{
		pStr = s4_3;
	}
	else
	{
		pStr = sAuto;
	}
    
    SUBMENU_RIGHT_TEXTOUT(pStr, y);
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawAutoPowerDown(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    BYTE *pStr;
    
    // get display line
    y = GetShowIndex(_MI_AUTOPOWERDOWN,BEGIN(_MI_RESET),END(_MI_SHARPNESS));
    
    if(y == _NOT_SHOW)
        return;
    
    // get display color
    ucColor = StateColor(State);
    
    y = SHOWINDEX_TO_LINE(y);
    
    SubMenuTextOut(sAutoPowerDown[GET_LANGUAGE()],y,ucColor,State);
    
    switch(_GET_POWER_DOWN_TIME())
    {
    case 0x00:          pStr = sOff[GET_LANGUAGE()];    break;
    case 0x01:          pStr = s15Min[GET_LANGUAGE()];  break;
    case 0x02:          pStr = s30Min[GET_LANGUAGE()];  break;
    case 0x03:          pStr = s45Min[GET_LANGUAGE()];  break;
    case 0x04:          pStr = s60Min[GET_LANGUAGE()];  break;
    case 0x05:          pStr = s75Min[GET_LANGUAGE()];  break;
    case 0x06:          pStr = s90Min[GET_LANGUAGE()];  break;
    case 0x07:          pStr = s105Min[GET_LANGUAGE()]; break;
    case 0x08:          pStr = s120Min[GET_LANGUAGE()]; break;
    }
    
    SUBMENU_RIGHT_TEXTOUT(pStr, y);
    
}
//---------------------------------------------------------------------------
//ucState : _ST_NORMAL,_ST_SELECT,_ST_DISABLE 
void DrawBlueScreen(BYTE State)
{
    BYTE y;
    BYTE ucColor;
    BYTE *pStr;
    
    // get display line
    y = GetShowIndex(_MI_BLUESCREEN,BEGIN(_MI_RESET),END(_MI_SHARPNESS));

⌨️ 快捷键说明

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