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

📄 osdtv003.c

📁 LCD TV,uVision2 Project, (C) Keil Software
💻 C
📖 第 1 页 / 共 3 页
字号:
    }
}
//------------------------------------------------------------
void MTVMainLR(unsigned char  LR)
{
    //STEP 1 : BEFORE ITEM CHANGE CLEAR OLD SELECT
    ClearClientDisplay();
    
    //STEP 2 : ITEM CHANGE
    if(LR)
    {
        switch(ucOsdState)
        {
        case MENU_ITEM_BRIGHT:         ucOsdState = MENU_ITEM_CONTRAST;     break;
        case MENU_ITEM_CONTRAST:       ucOsdState = MENU_AV_HUE;            break;
        case MENU_AV_HUE:              ucOsdState = MENU_AV_SATURATION;     break;
        case MENU_AV_SATURATION:       ucOsdState = MENU_TV_SYSTEM;         break;
  //      case MENU_TV_SYSTEM:           ucOsdState = MENU_SOUND_SYSTEM;      break;
//        case MENU_SOUND_SYSTEM:        ucOsdState = MENU_AUTO_SEARCH;       break;
        case MENU_TV_SYSTEM:           ucOsdState = MENU_AUTO_SEARCH;       break;
        case MENU_AUTO_SEARCH:         ucOsdState = MENU_MANUAL_SEARCH;     break;
        case MENU_MANUAL_SEARCH:       ucOsdState = MENU_TUNING;            break;
        case MENU_TUNING:              ucOsdState = MENU_CHANNEL;           break;
        case MENU_CHANNEL:             ucOsdState = MENU_SWAP;              break;
        case MENU_SWAP:                ucOsdState = MENU_SKIP;              break;
        case MENU_SKIP:                ucOsdState = MENU_BLUE;              break;
        case MENU_BLUE:                ucOsdState = MENU_AUTO_POWER_DOWN;   break;
        case MENU_AUTO_POWER_DOWN:     ucOsdState = MENU_ITEM_LANGUAGE;     break;
        case MENU_ITEM_LANGUAGE:       ucOsdState = MENU_ITEM_RESET;        break;
        case MENU_ITEM_RESET:          ucOsdState = MENU_ITEM_CLOSE;        break;
        case MENU_ITEM_CLOSE:          ucOsdState = MENU_ITEM_BRIGHT;       break;
        }
    }
    else
    {
        switch(ucOsdState)
        {
        case MENU_ITEM_BRIGHT:         ucOsdState = MENU_ITEM_CLOSE;        break;
        case MENU_ITEM_CONTRAST:       ucOsdState = MENU_ITEM_BRIGHT;       break;
        case MENU_AV_HUE:              ucOsdState = MENU_ITEM_CONTRAST;     break;
        case MENU_AV_SATURATION:       ucOsdState = MENU_AV_HUE;            break;
        case MENU_TV_SYSTEM:           ucOsdState = MENU_AV_SATURATION;     break;
//        case MENU_SOUND_SYSTEM:        ucOsdState = MENU_TV_SYSTEM;         break;
  //      case MENU_AUTO_SEARCH:         ucOsdState = MENU_SOUND_SYSTEM;      break;
        case MENU_AUTO_SEARCH:         ucOsdState = MENU_TV_SYSTEM;         break;
        case MENU_MANUAL_SEARCH:       ucOsdState = MENU_AUTO_SEARCH;       break;
        case MENU_TUNING:              ucOsdState = MENU_MANUAL_SEARCH;     break;
        case MENU_CHANNEL:             ucOsdState = MENU_TUNING;            break;
        case MENU_SWAP:                ucOsdState = MENU_CHANNEL;           break;
        case MENU_SKIP:                ucOsdState = MENU_SWAP;              break;
        case MENU_BLUE:                ucOsdState = MENU_SKIP;              break;
        case MENU_AUTO_POWER_DOWN:     ucOsdState = MENU_BLUE;              break;
        case MENU_ITEM_LANGUAGE:       ucOsdState = MENU_AUTO_POWER_DOWN;   break;
        case MENU_ITEM_RESET:          ucOsdState = MENU_ITEM_LANGUAGE;     break;
        case MENU_ITEM_CLOSE:          ucOsdState = MENU_ITEM_RESET;        break;
        }
    }
    //STEP 3 : AFTER ITEM CHANGE DRAW SELECT
    switch(ucOsdState)
    {
    case MENU_ITEM_BRIGHT:
        DrawBrightPage();
        ShowPageIndex(1,17);
        break;
    case MENU_ITEM_CONTRAST:
        DrawContrastPage();
        ShowPageIndex(2,17);
        break;
    case MENU_AV_HUE:
        DrawHuePage();
        ShowPageIndex(3,17);
        break;
    case MENU_AV_SATURATION:
        DrawSaturationPage();
        ShowPageIndex(4,17);
        break;
    case MENU_TV_SYSTEM:
        DrawTVSystemPage();
        ShowPageIndex(5,17);
        break;
    case MENU_SOUND_SYSTEM:
        DrawSoundSystemPage();
        ShowPageIndex(6,17);
        break;
    case MENU_AUTO_SEARCH:
        DrawAutoSearchPage();
        ShowPageIndex(7,17);
        break;
    case MENU_MANUAL_SEARCH:
        DrawManualSearchPage();
        ShowPageIndex(8,17);
        break;
    case MENU_TUNING:
        DrawTuningPage();
        ShowPageIndex(9,17);
        break;
    case MENU_CHANNEL:
        DrawChannelPage();
        ShowPageIndex(10,17);
        break;
    case MENU_SWAP:                
        DrawSwapPage();
        ShowPageIndex(11,17);
        break;
    case MENU_SKIP:
        DrawSkipPage();
        ShowPageIndex(12,17);
        break;
    case MENU_BLUE:
        DrawBluePage();
        ShowPageIndex(13,17);
        break;
    case MENU_AUTO_POWER_DOWN:
        DrawAutoPowerDownPage();
        ShowPageIndex(14,17);
        break;
    case MENU_ITEM_LANGUAGE:
        DrawLanguagePage();
        ShowPageIndex(15,17);
        break;
    case MENU_ITEM_RESET:
        DrawResetPage();
        ShowPageIndex(16,17);
        break;
    case MENU_ITEM_CLOSE:
        DrawExitPage();
        ShowPageIndex(17,17);
        break;
    }
}
//------------------------------------------------------------
void MTVMainEnter()
{
    
}
//------------------------------------------------------------


void DrawTVSystemPage()
{
    TITLE_OUT((unsigned char code *)sTVSystem[GET_LANGUAGE]);
    
    // Show tv type
    Gotoxy(12, 5, BYTE_DISPLAY);
    Textout((BYTE *)sTVType[ucTVType]);
    
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawSoundSystemPage()
{
    TITLE_OUT((unsigned char code *)sSoundSystem[GET_LANGUAGE]);
    
    // Show sound type
    Gotoxy(12, 5, BYTE_DISPLAY);
    Textout((BYTE *)sTVSoundType[CLoadChannelSoundType(stVDCColor.CurrentChannel)]);
    
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawAutoSearchPage()
{
    TITLE_OUT((unsigned char code *)sAutoSearch[GET_LANGUAGE]);
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawManualSearchPage()
{
    TITLE_OUT((unsigned char code *)sManualSearch[GET_LANGUAGE]);
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawTuningPage()
{
    TITLE_OUT((unsigned char code *)sTuning[GET_LANGUAGE]);
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawChannelPage()
{
    TITLE_OUT((unsigned char code *)sChannel[GET_LANGUAGE]);
    
    Gotoxy(12,5,BYTE_DISPLAY);
    PrintfDec(stVDCColor.CurrentChannel);
    
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawSwapPage()
{
    TITLE_OUT((unsigned char code *)sSwap[GET_LANGUAGE]);
    
    Gotoxy(12,5,BYTE_DISPLAY);
    PrintfDec(stVDCColor.CurrentChannel);
    
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    // Insert Draw Code
}
//------------------------------------------------------------
void DrawSkipPage()
{
    TITLE_OUT((unsigned char code *)sSkip[GET_LANGUAGE]);
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    CenterTextout((BYTE *)sSkipFunc[CLoadChannelSkip(stVDCColor.CurrentChannel)][GET_LANGUAGE],13,5);
}
//------------------------------------------------------------
void DrawBluePage()
{
    TITLE_OUT((unsigned char code *)sBlue[GET_LANGUAGE]);
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
    CenterTextout((BYTE *)sOn_Off[_GET_BLUE_BACKGROUND()][GET_LANGUAGE],13,5);
}
//------------------------------------------------------------
void DrawAutoPowerDownPage()
{
#if(_AUTO_POWER_DOWN)
    TITLE_OUT((unsigned char code *)sAutoPowerDown[GET_LANGUAGE]);
    
    Gotoxy(12,5,BYTE_DISPLAY);
    PrintfDec(_GET_POWER_DOWN_TIME() * 15);
    
    LOADICOFNT(FntIcnExit);         // andy icon not ready
    ICON_OUT();
#endif
}
//------------------------------------------------------------



//--------- TVSystem ADJUST PROC ----------------------------------
void MTVSystemAdjProc()
{
    switch(ucKeyMessage)
    {
    case VK_MENU:        MTVSystemAdjMenu();       break;
    case VK_LEFT:        MTVSystemAdjLR(1);        break;
    case VK_RIGHT:       MTVSystemAdjLR(0);        break;
    case VK_ENTER:       MTVSystemAdjEnter();      break;
    }
}
//----------------------------------------------------------------------------------------------------
void MTVSystemAdjMenu()
{
    ucOsdState = MENU_TV_SYSTEM;
    SelectState();
    
    // : Insert Send Save To EEPROM Msg
}
//----------------------------------------------------------------------------------------------------
bit bSearchedTVType(BYTE ucTvType)
{
    switch(ucTvType) 
    {
    case _TV_NTSC_M    :    // 60Hz Sound 4.5M  NTSC M
        #if(_TV_NTSC_M_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_NTSC_4_BG :    // 60Hz Sound 5.5M  NTSC 4/BG 
        #if(_TV_NTSC_4_BG_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_NTSC_4_DK :    // 60Hz Sound 6.5M  NTSC 4/DK 
        #if(_TV_NTSC_4_DK_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_NTSC_4_I  :    // 60Hz Sound 6.0M  NTSC 4/I
        #if(_TV_NTSC_4_I_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_PAL_M     :    // 60Hz Sound 4.5M  PAL M  
        #if(_TV_PAL_M_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_PAL_BG    :    // 50Hz Sound 5.5M  PAL B/G
        #if(_TV_PAL_BG_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_PAL_I     :    // 50Hz Sound 6.0M  PAL I
        #if(_TV_PAL_I_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_PAL_DK    :    // 50Hz Sound 6.5M  PAL D/K
        #if(_TV_PAL_DK_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_PAL_N     :    // 50Hz Sound 4.5M  PAL N 
        #if(_TV_PAL_N_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_SECAM_BG  :    // 50Hz Sound 5.5M  SECAM B/G
        #if(_TV_SECAM_BG_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_SECAM_DK  :    // 50Hz Sound 6.5M  SECAM D/K
        #if(_TV_SECAM_DK_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_SECAM_L   :    // 50Hz Sound 6.5M  SECAM L  
        #if(_TV_SECAM_L_SUPPORT)
        return 1;
        #endif
        break;

    case _TV_SECAM_LL  :    // 50Hz Sound 6.5M  Secam L' 
        #if(_TV_SECAM_LL_SUPPORT)
        return 1;
        #endif
        break;
    } // end switch 

    return 0;
}

//----------------------------------------------------------------------------------------------------
void MTVSystemAdjLR(BYTE LR)
{
    for(pData[15] = 0; pData[15] < (_MAX_TV_TYPE + 1); pData[15]++)
    {
        ucTVType = ValueInRangeChange(0, _MAX_TV_TYPE, ucTVType, LR, 1);

        if (bSearchedTVType(ucTVType))
            break;
    }
    
    OSDClear(5,1,12,8,0x00,BYTE_DISPLAY);
    
    Gotoxy(12, 5, BYTE_DISPLAY);
    Textout((BYTE *)sTVType[ucTVType]);
    
    // Save adjust result
    CSaveChannelColorType(stVDCColor.CurrentChannel, ucTVType);
    
    rp_CI2CWrite9886(ucTVType); // set 9886
}
//----------------------------------------------------------------------------------------------------
void MTVSystemAdjEnter()
{
    // : Not Process
}
//----------------------------------------------------------------------------------------------------


//--------- Sound System ADJUST PROC ----------------------------------
void MSoundSystemAdjProc()
{
    switch(ucKeyMessage)
    {
    case VK_MENU:        MSoundSystemAdjMenu();       break;
    case VK_LEFT:        MSoundSystemAdjLR(1);        break;
    case VK_RIGHT:       MSoundSystemAdjLR(0);        break;
    case VK_ENTER:       MSoundSystemAdjEnter();      break;
    }
}
//----------------------------------------------------------------------------------------------------
void MSoundSystemAdjMenu()
{
    ucOsdState = MENU_SOUND_SYSTEM;
    SelectState();
    
    // : Insert Send Save To EEPROM Msg
}
//----------------------------------------------------------------------------------------------------
void MSoundSystemAdjLR(unsigned char LR)
{
    BYTE ucSoundType = CLoadChannelSoundType(stVDCColor.CurrentChannel);
    
    ucSoundType = ValueInRangeChange(0, 3, ucSoundType, LR, 1);
    
    Gotoxy(12, 5, BYTE_DISPLAY);
    Textout((BYTE *)sTVSoundType[ucSoundType]);
    
    // Save adjust result
    CSaveChannelSoundType(stVDCColor.CurrentChannel, ucSoundType);
    
//    rp_CWrite9886(ucSoundType); // set 9886
}
//----------------------------------------------------------------------------------------------------
void MSoundSystemAdjEnter()
{
    // : Not Process
}
//----------------------------------------------------------------------------------------------------



//--------- Auto Search PROC ----------------------------------
void MAutoSearchAdjProc()
{
    switch(ucKeyMessage)

⌨️ 快捷键说明

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