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

📄 setup_osd_util.c

📁 Sunplus 8202S source code.
💻 C
字号:
/***************************************************************
*  setup_OSD_util.c
*  include  in setup_tab_ui1.c   when defined DVD_SETUP_REENG
* 
* Creator:  JSLin 
* Date:         2004/07/28
*
* Description : 
*           adapterr, 
*           hookup presentation engine(setup_show_page.c) with OSD module
*
****************************************************************/


/*
 *  setup_item = setup_button + setup_string
 */
void setup_draw_item(BYTE xStart, BYTE yStart, BYTE xLen, BYTE itemID, BYTE itemType)//BYTE xOffset, BYTE fColor, BYTE bgColor, BYTE upDown,  BYTE itemID)
{
    const char *str;
    BYTE xOffset = 0;
    BYTE upDown = 0;
    BYTE  fColor = 0;
    BYTE  bgColor = 0;

    //printf(">>>>>  draw item ID:%d\n", itemID);

    switch(itemType){
        case SETUP_itemNormal:
            xOffset = 1;
            upDown = 0;
            if(xStart==SETUP_MENU_XSTART)
            {
            	fColor = setupFcolorIN;
            	bgColor = setupBGcolorIN;
        	}
        	else if(xStart==SETUP_SUB_XSTART)
        	{
        		fColor = setupFcolorSN;
            	bgColor = setupBGcolorSN;
        	}
            break;
        case SETUP_itemMark:
            xOffset = 1;
            upDown = 1;
            if(xStart==SETUP_MENU_XSTART)
            {
            	fColor = setupFcolorIM;
            	bgColor = setupBGcolorIM;
        	}
        	else if(xStart==SETUP_SUB_XSTART)
        	{
        		fColor = setupFcolorSM;
            	bgColor = setupBGcolorSM;
        	}
            break;
        case SETUP_itemSelected:
            xOffset = 1;
            upDown = 0;
            if(xStart==SETUP_MENU_XSTART)
            {
            	fColor = setupFcolorIS;
            	bgColor = setupBGcolorIS;
        	}
        	else if(xStart==SETUP_SUB_XSTART)
        	{
        		fColor = setupFcolorSS;
            	bgColor = setupBGcolorSS;
        	}
            break;
    }

    
    osd_draw_setup_button(xStart,yStart,xLen, bgColor, upDown);

    if((setup_item[setup_pos[SETUP_ML1]][0][1] == STR_OS_LANG_SETUP) && (xStart == SETUP_SUB_XSTART))
    {
        if (itemID==STR_OS_OFF)
            str = _OsdMessegeFont1[osd_font_mode][itemID];
        else
            str = lang_names[osd_font_mode][itemID];
    }
    else
    {
        str = _OsdMessegeFont1[osd_font_mode][itemID];
    }
    
    osd_DrawString(xStart+xOffset, yStart, str, fColor, bgColor);
    
}


void setup_DrawScaleString(UINT8 id, BYTE fontColor, BYTE bgColor)
{
    UINT8 xString, yString;
    t_osd_str osdstr_scale[MAX_ITEM_SEL - MIN_ITEM_SEL];
    int i;
    xString = SETUP_SUB_XSTART+1;
    yString = SETUP_MENU_YSTART + setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL];

	for (i=0; i<(MAX_ITEM_SEL - MIN_ITEM_SEL); i++)
	{
		osdstr_scale[i].xst = xString;
        osdstr_scale[i].yst = yString+i+1;	
        osdstr_scale[i].str = NULL;	
	}


    if (id==STR_OS_ECHO) {
		osdstr_scale[0].str = " -    - 8";
		osdstr_scale[1].str = " -    - 6";
		osdstr_scale[2].str = " -    - 4";
		osdstr_scale[3].str = " -    - 2";
		osdstr_scale[4].str = " -    - OFF";
    }   
    else if (id==STR_OS_BRIGHTNESS){
    	osdstr_scale[0].str = " -    - 12";
    	osdstr_scale[1].str = " -    - 10";
    	osdstr_scale[2].str = " -    -  8";
    	osdstr_scale[3].str = " -    -  6";
    	osdstr_scale[4].str = " -    -  4";
    	osdstr_scale[5].str = " -    -  2";
    	osdstr_scale[6].str = " -    -  0";
    }
    else if (id==STR_OS_CONTRAST){
    	osdstr_scale[0].str = " -    - 12";
    	osdstr_scale[1].str = " -    - 10";
    	osdstr_scale[2].str = " -    -  8";
    	osdstr_scale[3].str = " -    -  6";
    	osdstr_scale[4].str = " -    -  4";
    	osdstr_scale[5].str = " -    -  2";
    	osdstr_scale[6].str = " -    -  0";
    }
    else if (id==STR_OS_HUE){
    	osdstr_scale[0].str = " -    - +6";
    	osdstr_scale[1].str = " -    - +4";
    	osdstr_scale[2].str = " -    - +2";
    	osdstr_scale[3].str = " -    -  0";
    	osdstr_scale[4].str = " -    - -2";
    	osdstr_scale[5].str = " -    - -4";
    	osdstr_scale[6].str = " -    - -6";
    }
    else if (id==STR_OS_SATURATION){
    	osdstr_scale[0].str = " -    - 12";
    	osdstr_scale[1].str = " -    - 10";
    	osdstr_scale[2].str = " -    -  8";
    	osdstr_scale[3].str = " -    -  6";
    	osdstr_scale[4].str = " -    -  4";
    	osdstr_scale[5].str = " -    -  2";
    	osdstr_scale[6].str = " -    -  0";
    }
    else if (id==STR_OS_KEY) {
    	osdstr_scale[0].str = " -    -  " Ch_ukey;
    	osdstr_scale[1].str = " -    - +4";
    	osdstr_scale[2].str = " -    - +2";
    	osdstr_scale[3].str = " -    -  0";
    	osdstr_scale[4].str = " -    - -2";
    	osdstr_scale[5].str = " -    - -4";
    	osdstr_scale[6].str = " -    -  " Ch_dkey;
    }
    else if (id==STR_OS_DYNAMICRANGE) {
		osdstr_scale[0].str = " -    - FULL";
		osdstr_scale[1].str = " -    - 6/8";
		osdstr_scale[2].str = " -    - 4/8";
		osdstr_scale[3].str = " -    - 2/8";
		osdstr_scale[4].str = " -    - OFF";
    }
    else if (id==STR_OS_MIC_VOL) {
		osdstr_scale[0].str = " -    - 8";
		osdstr_scale[1].str = " -    - 6";
		osdstr_scale[2].str = " -    - 4";
		osdstr_scale[3].str = " -    - 2";
		osdstr_scale[4].str = " -    - OFF";
    }
    else if (id==STR_OS_CSPK_DELAY) {
		osdstr_scale[0].str = " -    - +";
		osdstr_scale[1].str = " -    - 4 MS";
		osdstr_scale[2].str = " -    - 2 MS";
		osdstr_scale[3].str = " -    - 0 MS";
    }
    else if (id==STR_OS_SSPK_DELAY) {
		osdstr_scale[0].str = " -    - +";
		osdstr_scale[1].str = " -    - 12 MS";
		osdstr_scale[2].str = " -    -  6 MS";
		osdstr_scale[3].str = " -    -  0 MS";   
    }   
    else {  //show ERROR
		osdstr_scale[0].str = "		ERROR";
    }       
	osd_DrawStrings(osdstr_scale, fontColor, bgColor);
}


void setup_DrawScaleForm(UINT8 id, BYTE upDown)
{
    BYTE    eColorTL, eColorBR; 
    BYTE    fontColor, bgColor; //font, background color
    UINT32  xStart, yStart;
    UINT32  yDelta=0;
    UINT32  yOffset = 0;
    //BYTE    buf[15];
    BYTE    xWidth;
    //int val = echo_level; // give a default value
    
    if (upDown) {	//down
        eColorTL = setupEcolorSPTLD;
        eColorBR = setupEcolorSPBRD;
        fontColor = setupFcolorSSD;
        bgColor = setupBGcolorSPD;
    } else {		//up
        eColorTL = setupEcolorSPTLU;
        eColorBR = setupEcolorSPBRU;
        fontColor = setupFcolorSSU;
        bgColor = setupBGcolorSPU;
    }

    xStart = SETUP_SUB_XSTART * 16;
    xWidth = 14 *16;
    yOffset = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL];
    yStart = (yOffset+ SETUP_MENU_YSTART)*SETUP_BUTTON_HEIGHT+32;
    yDelta = setup_item[setup_pos[1]][setup_pos[2]][2] *SETUP_BUTTON_HEIGHT;

    osd_draw_rect(xStart, yStart, xWidth, yDelta, bgColor);

    //show the string in scale form
    setup_DrawScaleString(id, fontColor, bgColor);

    //draw the edges of scale form
    if (p_scan==1)
        osd_DrawLine(xStart, yStart, xStart+xWidth, yStart, eColorTL, 2);
    else
        osd_DrawLine(xStart, yStart, xStart+xWidth, yStart, eColorTL, 1);
    //left
    osd_DrawLine(xStart, yStart, xStart, yStart+yDelta, eColorTL, 1);
    //bottom
    if (p_scan==1)
        osd_DrawLine(xStart, yStart+yDelta, xStart+xWidth, yStart+yDelta, eColorBR, 2);
    else
        osd_DrawLine(xStart, yStart+yDelta, xStart+xWidth, yStart+yDelta, eColorBR, 1);
    //right
    osd_DrawLine(xStart+xWidth, yStart, xStart+xWidth, yStart+yDelta, eColorBR, 1);   
}



void setup_DrawScaleCursor(UINT8 id, BYTE upDown)
{
    BYTE    eColorTL, eColorBR; 
    BYTE    barColor, cursorColor; //bar, cursor color
    BYTE    clrCursorColor;
    UINT32  xStart, yStart, yOffset;
    UINT32  yDelta=0;
    UINT32  yEnd;

    
        if (upDown) {	//down
            eColorTL = setupEcolorSCTLD;
            eColorBR = setupEcolorSCBRD;
            barColor = setupBGcolorSCBD;
            cursorColor = setupBGcolorSCD;
            clrCursorColor = setupBGcolorSPD;
        } else {		//up
            eColorTL = setupEcolorSCTLU;
            eColorBR = setupEcolorSCBRU;
            barColor = setupBGcolorSCBU;
            cursorColor = setupBGcolorSCU;
            clrCursorColor = setupBGcolorSPU;
        }

    xStart = SETUP_SUB_XSTART * 16 + 76;
    yOffset = setup_item[setup_pos[1]][setup_pos[2]][MAX_ITEM_SEL];
    yStart = (yOffset+SETUP_MENU_YSTART)*SETUP_BUTTON_HEIGHT + 40;
    yDelta = setup_item[setup_pos[1]][setup_pos[2]][2] *SETUP_BUTTON_HEIGHT - 12;

	// flush cursor area
    osd_draw_rect(xStart-20, yStart-1, 40, yDelta+2, clrCursorColor);
    // draw cursor bar
    osd_DrawLine(xStart, yStart, xStart, yStart+yDelta, barColor, 3);

	// draw cursor body
    yEnd = yStart+yDelta - (setup_sel[setup_pos[1]][setup_pos[2]]-2+1)*SETUP_BUTTON_HEIGHT/2;
    xStart = SETUP_SUB_XSTART * 16 + 60;
    osd_draw_rect(xStart, yEnd, 32, 8, cursorColor);

    //draw the edges of scale cursor
    if (p_scan==1)
        osd_DrawLine(xStart, yEnd, xStart+36, yEnd, eColorTL, 2);
    else
        osd_DrawLine(xStart, yEnd, xStart+36, yEnd, eColorTL, 1);
    //left
    osd_DrawLine(xStart, yEnd, xStart, yEnd+8, eColorTL, 1);
    //bottom
    if (p_scan==1)
        osd_DrawLine(xStart, yEnd+8, xStart+36, yEnd+8, eColorBR, 2);
    else
        osd_DrawLine(xStart, yEnd+8, xStart+36, yEnd+8, eColorBR, 1);
    //right
    osd_DrawLine(xStart+34, yEnd, xStart+34, yEnd+8, eColorBR, 1);        
}




⌨️ 快捷键说明

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