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

📄 setup_show_page.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 2 页
字号:
                id = setup_item[setup_pos[1]][setup_pos[2]][setup_pos[3]];
                yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+setup_pos[3]+1;
                
                setup_itemType= SETUP_itemMark;
                setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                break;
            case SET_SCALE:
                id = setup_item[setup_pos[1]][setup_pos[2]][1];
                setup_DrawScaleForm( id, 1);
                setup_DrawScaleCursor(id, 1);
                break;
            case SET_NM:
                id = setup_item[setup_pos[1]][setup_pos[2]][setup_pos[3]];
                yStart = setup_pos[2]+SETUP_MENU_YSTART;

                setup_itemType= SETUP_itemMark;
                setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                break;
        }
    }

    //for setup_level =3, up/down walking on selection(3rd) level, highlight the corresponding selection
    if((setup_pos[0] == SETUP_ML3) && (setup_last_pos[0] == SETUP_ML3))
    {
        switch(itemType)
        {
            case SET_FUNC:
                    //unmark last selection
                    {
                        itemSel = setup_sel[setup_pos[1]][setup_pos[2]];
                        if(itemSel == setup_last_pos[3]) 
                            setup_itemType = SETUP_itemSelected;
                        else 
                            setup_itemType = SETUP_itemNormal;
                        
                        id = setup_item[setup_last_pos[1]][setup_last_pos[2]][setup_last_pos[3]];
                        yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+setup_last_pos[3]+1;
                        setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                    }

                    //mark current selection
                    {
                        id = setup_item[setup_pos[1]][setup_pos[2]][setup_pos[3]];
                        yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+setup_pos[3]+1;

                        setup_itemType = SETUP_itemMark;
                        setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                    }
                break;
            case SET_SCALE:
                id = setup_item[setup_last_pos[1]][setup_last_pos[2]][setup_last_pos[3]];
                setup_DrawScaleCursor(id, 1);
                break;
        }
    }
}


void setup_ExitPage(void)
{
    ExitSetupPage(1);
    run_save_total_sel();
    //printf("run_save_total_sel()\n");
}
//====================================================================


void setup_ShowPageCUSTM(void)
{
    int     i;//, j;
    BYTE    xStart, yStart, xLen;//, xOffset, fColor, bgColor, upDown;
    UINT8   itemType, itemSel;
    char buf[8];

    yStart=0;
    itemType = setup_item[setup_pos[1]][setup_pos[2]][0];

    //draw CUSTM page level_1 and level_2
    if(setup_last_pos[0]==0)
    {
        osd_draw_rect(0, 0, (SETUP_MAX_WIDTH*16), (SETUP_MAX_LINE*SETUP_BUTTON_HEIGHT), setupBGcolorCUSTM);                
                
        //level_2
        xStart = SETUP_MENU_XSTART;
        xLen = SETUP_SUB_XSTART-SETUP_MENU_XSTART-1;
        setup_itemType= SETUP_itemNormal;
        
        for(i=1; i<=MAX_PAGE_ITEM; i++)
        {
            yStart = SETUP_MENU_YSTART + i;
            id = setup_item[setup_pos[SETUP_ML1]][i][1];
            setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
        }
        setup_ShowCUSTMMsg();
    }
//====================================================================


    //for setup_level =2, up/down walking on item(2nd) level, highlight the corresponding item
    if(setup_pos[SETUP_ML0] == SETUP_ML2)
    {
        //clear level 3 area
        osd_draw_rect((SETUP_SUB_XSTART-1)*16,
                        (SETUP_MENU_YSTART+2)*SETUP_BUTTON_HEIGHT+31,
                        (SETUP_MAX_WIDTH-SETUP_SUB_XSTART-1)*16,
                        (SETUP_MAX_LINE-SETUP_MENU_YSTART)*SETUP_BUTTON_HEIGHT-68,
                        setupBGcolorCUSTM);

        xStart = SETUP_MENU_XSTART;
        xLen = SETUP_SUB_XSTART-SETUP_MENU_XSTART-1;
            
        //unmark last located item
        if(setup_last_pos[SETUP_ML1] == setup_page_CUS)
        {
            yStart = SETUP_MENU_YSTART + setup_last_pos[SETUP_ML2];
            id = setup_item[setup_last_pos[SETUP_ML1]][setup_last_pos[SETUP_ML2]][1];
            setup_itemType = SETUP_itemNormal;
            setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
        }

        // mark current located item
        if(setup_pos[SETUP_ML2] != MAX_PAGE_ITEM)
        {
            yStart = SETUP_MENU_YSTART + setup_pos[SETUP_ML2];      
            id = setup_item[setup_pos[SETUP_ML1]][setup_pos[SETUP_ML2]][1];
            setup_itemType = SETUP_itemMark;
            setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
        }

        //draw ">>" between located item and it's corresponding selection area
        if((setup_item[setup_pos[1]][setup_pos[2]][0]!=SET_SH)&&(setup_item[setup_pos[1]][setup_pos[2]][0]!=SET_LINK))
        {
            osd_DrawString(SETUP_SUB_XSTART-1, yStart, Ch_arrorR, setupFcolorAL2, setupBGcolorAL2);
        }

        //level_3

        xStart = SETUP_SUB_XSTART;
        xLen = SETUP_MAX_WIDTH-SETUP_SUB_XSTART-2;
        
        switch(itemType)
        {
            case SET_FUNC:
                itemSel = setup_sel[setup_pos[1]][setup_pos[2]];
                
                for(i=2; i<MAX_ITEM_SEL; i++)
                {
                    id = setup_item[setup_pos[1]][setup_pos[2]][i];
                    if (id == 0) break;

                    yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+i+1;
                    if(itemSel==i)
                        setup_itemType= SETUP_itemSelected;
                    else
                        setup_itemType= SETUP_itemNormal;

                    setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                }
                break;
            case SET_NM:
                setup_pos[3] = setup_sel[setup_pos[1]][setup_pos[2]];
                yStart = setup_pos[2]+SETUP_MENU_YSTART;
                #ifdef SETUP_6_DIGIT_PASSWORD
                    psprintf(buf, "%06d", UserSet.parent_passwd);
                #else
                    psprintf(buf, "%04d", UserSet.parent_passwd);
                #endif
                osd_DrawString(xStart+1, yStart, buf, setupFcolorSS, setupBGcolorCUSTM);
                break;
            case SET_SH:
            case SET_NE:
            case SET_SPACE:
                break;
        }       
    }
//==========================================================================

    
    // for setup_level from 2 to 3, change the color of selected item
    if((setup_pos[0] == SETUP_ML3) && (setup_last_pos[0] == SETUP_ML2))
    {
        xStart = SETUP_MENU_XSTART;
        xLen = SETUP_SUB_XSTART-SETUP_MENU_XSTART-1;
        yStart = SETUP_MENU_YSTART + setup_pos[SETUP_ML2];
        id = setup_item[setup_pos[1]][setup_pos[2]][1];

        setup_itemType = SETUP_itemSelected;
        setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
        osd_DrawString(SETUP_SUB_XSTART-1, yStart, Ch_arrorR, setupFcolorAL3, setupBGcolorAL2);

        //level_3
        xStart = SETUP_SUB_XSTART;
        xLen = SETUP_MAX_WIDTH-SETUP_SUB_XSTART-2;
    
        switch(itemType)
        {
            case SET_FUNC:
                id = setup_item[setup_pos[1]][setup_pos[2]][setup_pos[3]];
                yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+setup_pos[3]+1;

                setup_itemType = SETUP_itemMark;
                setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                break;
            case SET_NM:
                setup_pos[3] = setup_sel[setup_pos[1]][setup_pos[2]];
                id = setup_item[setup_pos[1]][setup_pos[2]][setup_pos[3]];
                yStart = setup_pos[2]+SETUP_MENU_YSTART;

                #ifdef SETUP_6_DIGIT_PASSWORD
                    psprintf(buf, "%06d", UserSet.parent_passwd);
                #else
                    psprintf(buf, "%04d", UserSet.parent_passwd);
                #endif
                osd_draw_setup_button(xStart,yStart,xLen, setupBGcolorSM, 1);
                osd_DrawString(xStart+1, yStart, buf, setupFcolorSM, setupBGcolorSM);
                break;
        }
    }   
//================================================================================


    //for setup_level =3, up/down walking on selection(3rd) level, highlight the corresponding selection
    if((setup_pos[0] == SETUP_ML3) && (setup_last_pos[0] == SETUP_ML3))
    {
        xStart = SETUP_SUB_XSTART;
        xLen = SETUP_MAX_WIDTH-SETUP_SUB_XSTART-2;
        //xOffset = 1;
        
        switch(itemType)
        {
            case SET_FUNC:
                //unmark last selection
                if(setup_last_pos[SETUP_ML1] == setup_page_CUS)
                {
                    itemSel = setup_sel[setup_pos[1]][setup_pos[2]];
                    if(itemSel == setup_last_pos[3]) 
                        setup_itemType= SETUP_itemSelected;
                    else
                        setup_itemType = SETUP_itemNormal;
                    
                    id = setup_item[setup_last_pos[1]][setup_last_pos[2]][setup_last_pos[3]];
                    yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+setup_last_pos[3]+1;
                    setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                }

                //mark current selection
                {
                    id = setup_item[setup_pos[1]][setup_pos[2]][setup_pos[3]];
                    yStart = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL]+setup_pos[3]+1;
                    setup_itemType= SETUP_itemMark;
                    setup_draw_item(xStart, yStart, xLen, id, setup_itemType);
                }
                break;
        }
    }
    if(setup_item[setup_pos[SETUP_ML1]][setup_pos[SETUP_ML2]][1]!=STR_OS_RATING) //dengh add FOR RATING_8 2004-10-13 8:46
    setup_ShowCUSTMMsg();
}
//====================================================================


void setup_ShowCUSTMMsg(void)
{
    BYTE    buf[40];
    BYTE    *pVersion;
#ifdef DVD_SERVO
    extern const UINT8 ServoVersion[];
#endif
    extern const UINT8 KernelVersion[];     // moved to libkern.a, leochen 2004/4/19 09:43

⌨️ 快捷键说明

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