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

📄 menu_new_pal.c

📁 lcd tv : MST9E19A原代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                g_ucMenuItemIndex = 0;
                DrawOsdMenu();
                break;

            case MIA_MAIN_SOURCE:
                if(g_ucMenuPageIndex == MENU_SOURCE)
                {
                   if(g_SysSetting.ucInputSourceType != ConvertMenuItemIndexToInputSouceIndex(g_ucMenuItemIndex) )
                   {
                        g_SysSetting.ucInputSourceType = ConvertMenuItemIndexToInputSouceIndex(g_ucMenuItemIndex);
                        usrSaveMenu(USER_SAVE_SOURCE_DIRECTLY);
                        CURRENT_MENU_ITEM_FUNC.ExecFunction();
                   }
                }
                break;

            case MIA_PAL_PROGRAM_UP:
            case MIA_PAL_PROGRAM_DOWN:
            case MIA_PAL_PROGRAM_LEFT:
            case MIA_PAL_PROGRAM_RIGHT:
            case MIA_PAL_PROGRAM_NAME:
            case MIA_PAL_PROGRAM_INSERT:
            case MIA_PAL_PROGRAM_DELETE:
            case MIA_PAL_PROGRAM_OK:
            case MIA_PAL_PROGRAM_CANCEL:
                if( MENU_CHANNEL_PROGRAM == g_ucMenuPageIndex )
                {
                    PAL_ProcessEvent(menuAction);
                }
                break;

        #if( ENABLE_TTX )
            case MIA_TTX_EXIT:
                g_bTTX_on=0;
                devTTAction(TTX_CMD_TEXT_TOGGLE);
                OsdInit();

                g_ucMenuPageIndex = MENU_ROOT;
                g_ucMenuItemIndex = 0;
                g_ucMenuAction = MIA_NOTHING;
                g_ucPrevMenuPageIndex = MENU_ROOT;
                g_ucOsdTimeCounter = 0;
                msOsdHide();
                msOsdDisableSubWinAll();
                if(g_bTTx_AcqExecute_on)
                {
                    g_bTTx_AcqExecute_on=0;
                }
                break;

            case MIA_TTX:
                if (!IsSrcUseMsVDPort())
                {
                    break;
                }
                if (!devTTCheckTTX())
                {
                    menuAction = MIA_REDRAWMENU;
                    g_ucMenuPageIndex = MENU_NO_TTX;
                    g_ucMenuItemIndex = 0;
                    bProcessEvent = TRUE;
                    break;
                }
                else if (!g_bTTX_on && g_SrcInfo.ucVideoSystem != SIG_NONE)
                {
                    g_bTTX_on=1;
                    if(g_bOSDShow)
                    {
                        msOsdHide();
                        msOsdDisableSubWinAll();
                    }
                    InitialTeletextWindow();
                #if (FONTDB==1)
                    msSetTTXFontBase();
                #else
                    InitialTeletextFont();
                #endif
                    InitialTeletextPalette();

                    devTTSetLanguage(g_VideoSetting.TtxLanguage);// 2006/1/18
                    devTTAction(TTX_CMD_TEXT_TOGGLE);

                    g_ucMenuPageIndex = MENU_TTX_ON;
                    g_ucMenuItemIndex = 0;
                    g_ucMenuAction = MIA_NOTHING;
                    g_ucPrevMenuPageIndex = MENU_TTX_ON;
                    g_ucOsdTimeCounter = 0;
                }
                break;

            case MIA_TTX_INDEX:
                devTTAction(TTX_CMD_INDEX);
                break;
            case MIA_TTX_HOLD:
                devTTAction(TTX_CMD_HOLD_TOGGLE);
                break;
            case MIA_TTX_SIZE:
                devTTAction(TTX_CMD_SIZE_TOGGLE);
                break;
            case MIA_TTX_RED:
                devTTAction(TTX_CMD_RED);
                break;
            case MIA_TTX_GREEN:
                devTTAction(TTX_CMD_GREEN);
                break;
            case MIA_TTX_YELLOW:
                devTTAction(TTX_CMD_YELLOW);
                break;
            case MIA_TTX_CYAN:
                devTTAction(TTX_CMD_CYAN);
                break;
            case MIA_TTX_MIX:
                devTTAction(TTX_CMD_MIX_TOGGLE);
                break;
            case MIA_TTX_UPDATE:
                devTTAction(TTX_CMD_CANCEL_TOGGLE);
                break;
            case MIA_TTX_REVEAL:
                devTTAction(TTX_CMD_REVEAL);
                break;
            case MIA_TTX_SUBCODE:
                devTTAction(TTX_CMD_SUBCODE); 
                break;
            case MIA_TTX_SUBTITLE:
                devTTAction(TTX_CMD_SUBTITLE); 
                break;
            case MIA_TTX_LIST:
                devTTAction(TTX_CMD_LIST_TOGGLE);
                break;
            case MIA_TTX_CANCEL:
                devTTAction(TTX_CMD_CANCEL_TOGGLE);
                break;

            case MIA_TTX_KEY0:   devTTAction(TTX_CMD_DIGIT0);    break;
            case MIA_TTX_KEY1:   devTTAction(TTX_CMD_DIGIT1);    break;
            case MIA_TTX_KEY2:   devTTAction(TTX_CMD_DIGIT2);    break;
            case MIA_TTX_KEY3:   devTTAction(TTX_CMD_DIGIT3);    break;
            case MIA_TTX_KEY4:   devTTAction(TTX_CMD_DIGIT4);    break;
            case MIA_TTX_KEY5:   devTTAction(TTX_CMD_DIGIT5);    break;
            case MIA_TTX_KEY6:   devTTAction(TTX_CMD_DIGIT6);    break;
            case MIA_TTX_KEY7:   devTTAction(TTX_CMD_DIGIT7);    break;
            case MIA_TTX_KEY8:   devTTAction(TTX_CMD_DIGIT8);    break;
            case MIA_TTX_KEY9:   devTTAction(TTX_CMD_DIGIT9);    break;
            case MIA_TTX_UP:     devTTAction(TTX_CMD_PAGEUP);      break;
            case MIA_TTX_DOWN:   devTTAction(TTX_CMD_PAGEDOWN);    break;
        #endif
            default:
                return FALSE;
                break;
        }
    }

    g_ucMenuAction = MIA_NOTHING;

    return TRUE;
}

//============================================================================
void OsdHandler(void)
{
    BYTE ucFlag = 0;
    
#if (ENABLE_TTX)
    if( g_bTTX_on) //when TTX on, don't draw osd menu.(If draw osd menu,TTX will be destroyed.)
    {
        g_ucDrawOSDFlag = 0;
        return;
    }
#endif

    if( g_SrcInfo.bPassDoModeSetting ) // PC/YPBPR
    {
        g_SrcInfo.bPassDoModeSetting = 0;

        if( IsSrcUseAnalogPort() )
        {
            if( g_SrcInfo.bModeInputTimingChange )
            {
                return;
            }

            if(  SrcTypeIsPC() && g_SrcInfo.bModeUnsupportMode )
            {
                g_ucDrawOSDFlag = OSD_FLAG_DRAW_MENU_UNSUPPORTED_MODE;
            }
            else if( SrcTypeIsPC() && mdSyncLossFlag() ) // PC DPMS message
            {
                g_ucDrawOSDFlag = OSD_FLAG_DRAW_MENU_STANDBY;
            }
            else if( SRC_TYPE_IS_VGA() && (!mdSyncLossFlag()) ) // VGA has signal
            {
                // VGA auto-tune
#if WHITE_BALANCE_AUTO
                if (g_ucMenuPageIndex == MENU_FACTORY_COLOR_MODE)
                {
                    AutoConfig();
                }
                else if ( g_ModeSetting.AutoSign == 0 )
#else
                if ( g_ModeSetting.AutoSign != 3 ) // check auto sign
#endif
                {
                    g_ucDrawOSDFlag = OSD_FLAG_DRAW_MENU_AUTO_ADJUST;
                }
                else
                {
                    g_ucDrawOSDFlag = OSD_FLAG_DRAW_INPUT_MESSAGE;
                }
            }
            else
            {
                g_ucDrawOSDFlag = OSD_FLAG_DRAW_INPUT_MESSAGE;
            }
        }
        else
        {
            g_ucDrawOSDFlag = OSD_FLAG_DRAW_INPUT_MESSAGE;
        }
    }

    if( g_ucDrawOSDFlag )
    {
        //printf("\r\nPage=%x",g_ucMenuPageIndex);
        //printf("\r\nItem=%x",g_ucMenuItemIndex);
        //printf("\r\nFlag=%x",g_ucDrawOSDFlag);

        switch( g_ucDrawOSDFlag )
        {
            case OSD_FLAG_DRAW_MENU:
                DrawOsdMenu();
                break;
            case OSD_FLAG_REDRAW:
                 ExecuteKeyEvent(MIA_REDRAWMENU);
                break;
            case OSD_FLAG_REDRAW_FACTORY:
                 DrawOsdMenuPage(g_ucMenuPageIndex);
                 msOsdShow();
                break;
            case OSD_FLAG_DRAW_INPUT_MESSAGE:
#if WHITE_BALANCE_AUTO
                if (g_ucMenuPageIndex != MENU_FACTORY_COLOR_MODE)
#endif
                {
                    g_ucMenuItemIndex = 0;
                    g_ucMenuPageIndex = MENU_INPUT_MESSAGE;
                    g_ucOsdTimeCounter = 5;  // Reset OSD timeout timer.
                    DrawOsdMenu();
                }
                break;
            case OSD_FLAG_DRAW_MENU_AUTO_ADJUST:
                g_ucMenuPageIndex = MENU_AUTO_ADJUST;
                g_ucMenuItemIndex = 0;
                ExecuteKeyEvent(MIA_REDRAWMENU);
                break;
            case OSD_FLAG_DRAW_MENU_UNSUPPORTED_MODE:
                g_ucMenuPageIndex = MENU_UNSUPPORTED_MODE;
                g_ucMenuItemIndex = 0;
                ExecuteKeyEvent(MIA_REDRAWMENU);
                g_ucOsdTimeCounter = 0;
                break;
            case OSD_FLAG_DRAW_MENU_STANDBY:
                g_ucMenuPageIndex = MENU_STANDBY;
                g_ucMenuItemIndex = 0;
                ExecuteKeyEvent(MIA_REDRAWMENU);
                g_ucOsdTimeCounter = 0;
                break;
            case OSD_FLAG_TIMEOUT:
                usrSaveMenu(USER_SAVE_OSD_CURRENT);
                g_ucMenuItemIndex = 0;
                if (g_bAudioMute)
                {
                    g_ucMenuPageIndex = MENU_INPUT_MESSAGE;
                    g_ucMenuAction = MIA_MUTE;
                }
                else
                {
                    g_ucMenuItemIndex = 0;
                    g_ucMenuPageIndex = MENU_ROOT;
                }
                DrawOsdMenu();
                g_ucOsdTimeCounter = 0;
                break;
            case OSD_FLAG_DRAW_CHANEL_SCAN:
                DrawOsdMenuItem(g_ucMenuPageIndex, g_ucMenuItemIndex);
                g_ucOsdTimeCounter = 0;
                break;
        } // End of switch
        g_ucDrawOSDFlag = 0;
    }
}

BOOL GetMenuState(void)
{
    if (((g_ucMenuPageIndex>=MENU_MAIN) && (g_ucMenuPageIndex <= MENU_CHANNEL_AUTO_SCAN)) ||
        (g_ucFactoryFlag&0x80))
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

//Bruce.Ding add 060302 15:27 --[UI]
extern MenuItemActionType code m_eKeyActionMap[];
//---------------------------------------------
void UserInterfaceHandler(void)
{
    BYTE  cMenuAction = MIA_NOTHING;
    BYTE  cKeyCode = KEY_INVALID;
    MenuItemKeyAction* psMenuItemKeyAction;
    KeyActionMap* psKeyActionMap;

    cKeyCode = ScanKeyInput();

    psMenuItemKeyAction = CURRENT_MENU_ITEM.KeyEvents;
    if ((psMenuItemKeyAction != NULL) && (KEY_INVALID > cKeyCode))
    {
        //printf("\r\nKey=%x",cKeyCode);
        //printf("\r\nPageIndex=%x",g_ucMenuPageIndex);
        //printf("\r\nItemIndex=%x",g_ucMenuItemIndex);

        if (psMenuItemKeyAction->cActionFlags & MI_KEY_MAP)
        {
            cMenuAction = m_eKeyActionMap[cKeyCode];
        }

        psKeyActionMap = psMenuItemKeyAction->psKeyAction;
        while(psKeyActionMap->eKeyType != KEY_INVALID)
        {
            if (psKeyActionMap->eKeyType == cKeyCode)
            {
                cMenuAction = psKeyActionMap->eItemAction;
                break;
            }
            psKeyActionMap++;
        }
    }

    if (MIA_NOTHING != cMenuAction)
    {
       ExecuteKeyEvent(cMenuAction);

        if (GetKeypadCode() != BUTTON_INVALID)
        {
            Clr_KeypadReleaseFlag();
            g_cKeypadReleaseCount = 120;
        }
    }

    OsdHandler();
}
//Bruce.Ding add end

⌨️ 快捷键说明

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