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

📄 setup_tab_ui_sfm.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
 * FileName:       setup_tab_ui_SFM.c
 * Author:         ChenZhao  Version:   Date: 2004-9-2
 * Description:    include in setup_tab.c when defined SOFT_MENU
 * Version:        
 * Function List:  UI function,
 *                 LEFT,RIGHT, UP, DOWN,  SELECT, ShowSetupPage,ExitSeupPage
 * History:        
 *     <author>   <time>    <version >   <desc>
 */
#ifndef __SETUP_TAB_UI_SFM
#define __SETUP_TAB_UI_SFM
#ifndef SETUP_UI_DBG
#undef ui_printf
#undef ui_print_block
#define ui_printf(f, a...) do {} while (0)
#define ui_print_block(x,y) do {} while (0)
#else
#define ui_printf printf
#define ui_print_block print_block
#endif

#include "setup_ui_ext_func.h"
#include "setup_ui_def.h"
//===============================================
void ShowSetupSelect(BYTE index,BYTE border);//border=0:draw string only;1:with border;2:clear border;
void ShowSetupItem(BYTE index,BYTE border);//border=0:draw string only;1:with border;2:clear border:
void ShowSetupPage(BYTE refresh);
void ShowSetupPassword(const char *buf);
#ifdef TEST_INTERLACE//Modifed by ChenZhao on 2004-9-20 11:39  
void test_interlace(int dir);
void osd_interlace(int x, int y, BYTE direct, BYTE fontColor, BYTE bkColor);
#endif//TEST_INTERLACE
#ifdef VIDEOSETUPGUI
void revise_val(int dir, INT8 * x, int max, int min);
void CookVideoSetupGui(int dir);
#endif
void osd_changeAlpha(UINT32 a);
void osd_draw_roundcorner(int x, int y, BYTE direct, unsigned fontColor, unsigned bkColor);
void osd_DrawSlantCorner(INT32 xStart,INT32 yStart,INT32 xEnd,INT32 yEnd,BYTE direct,BYTE lineOnly,BYTE fontColor);
void osd_DrawIcon_Trans(int xStart, int yStart, unsigned index, BYTE mask, BYTE fontColor);
UINT32 osd_StringDrawLength(const BYTE * str);
//=============================================
static UINT32 item_width,title_height,item_arena_height;
static UINT32 oldpassword,newpassword,confirmpassword;
static UINT8 passwordstate,setup_gui_state;
#ifdef VIDEOSETUPGUI
static UINT8 video_state;
#endif//VIDEOSETUPGUI
//=============================================
//for setup re-engineering	//added by JS	20040728	//Modifed by ChenZhao on 2004-8-31 10:37 WP
#include "setup_ui_down_SFM.c"
#include "setup_ui_up_SFM.c"
#include "setup_ui_left_SFM.c"
#include "setup_ui_right_SFM.c"
#include "setup_ui_sel_SFM.c"
//==============================================


//#define SHOW_SYSTEM_CLOCK

//=============================================
void Draw_Border(UINT32  xStart,UINT32 yStart,UINT32 xLen,UINT32 yLen,BYTE fontColor,BYTE bkColor,BYTE fillColor)
{
	osd_draw_rect( xStart<<1,  yStart,  xLen<<1, yLen, fontColor);
	osd_draw_rect( (xStart+1)<<1,  yStart+2,  (xLen-2)<<1, yLen-4, fillColor);
	osd_draw_roundcorner(xStart,yStart,16,bkColor, fillColor);
	osd_draw_roundcorner(xStart+xLen-4,yStart,17,bkColor, fillColor);
	osd_draw_roundcorner(xStart+xLen-4,yStart+yLen-8,18,bkColor, fillColor);
	osd_draw_roundcorner(xStart,yStart+yLen-8,19,bkColor, fillColor);
	osd_draw_roundcorner(xStart,yStart,12,fontColor, bkColor);
	osd_draw_roundcorner(xStart+xLen-4,yStart,13,fontColor, bkColor);
	osd_draw_roundcorner(xStart+xLen-4,yStart+yLen-8,14,fontColor, bkColor);
	osd_draw_roundcorner(xStart,yStart+yLen-8,15,fontColor, bkColor);
}

void Draw_RoundBox(UINT32  xStart,UINT32 yStart,UINT32 xLen,UINT32 yLen,BYTE fontColor,BYTE bkColor)
{
	osd_draw_rect( (xStart+4)<<1,  yStart,	(xLen-8)<<1, yLen, fontColor);
	osd_draw_rect( xStart<<1,  yStart+8,	xLen<<1, yLen-16, fontColor);
	osd_draw_roundcorner(xStart,yStart,8,fontColor, bkColor);
	osd_draw_roundcorner(xStart+xLen-4,yStart,9,fontColor, bkColor);
	osd_draw_roundcorner(xStart+xLen-4,yStart+yLen-8,10,fontColor, bkColor);
	osd_draw_roundcorner(xStart,yStart+yLen-8,11,fontColor, bkColor);
}

#ifdef VIDEOSETUPGUI
void ShowVideoSetupGui(void)
{
	const char *vstr;
	int val;
	UINT8 maxBlock,cBlock,i;
	switch(video_state)
		{
		case VIDEOSTATE_BRIHTNESS:
			index_y=0;
			id=setup_item[page][index_y][1];
			vstr=setup_SetItemString();
			val=SETUP_BRIGHTNESS-2;
			maxBlock=12;
			cBlock=val;
			break;
		
		case VIDEOSTATE_CONTRAST:
			index_y=1;
			id=setup_item[page][index_y][1];
			vstr=setup_SetItemString();
			val=SETUP_CONTRAST-2;
			maxBlock=12;
			cBlock=val;
			break;
		
		case VIDEOSTATE_HUE:
			index_y=2;
			id=setup_item[page][index_y][1];
			vstr=setup_SetItemString();
			val=SETUP_HUE-8;
			maxBlock=12;
			cBlock=val+6;
			break;
		
		case VIDEOSTATE_SATURATION:
			index_y=3;
			id=setup_item[page][index_y][1];
			vstr=setup_SetItemString();
			val=SETUP_SATURATION-2;
			maxBlock=12;
			cBlock=val;
			break;
		
		default:
			return;
			break;
		}
	osd_DrawString_ori(ITEM_XSTART,SETUP_REGION_HEIGHT-SETUP_BUTTON_HEIGHT*2,vstr,ITEM_FONTCOLOR,ITEM_BGCOLOR);
	for(i=0;i<cBlock;i++)
		linebuf[i]=N_longbar;
	for(i=cBlock;i<maxBlock;i++)
		linebuf[i]=N_shortbar;
	psprintf(linebuf+maxBlock,"%3d",val);
	osd_DrawString_ori(ITEM_XSTART,SETUP_REGION_HEIGHT-SETUP_BUTTON_HEIGHT,linebuf,ITEM_FONTCOLOR,ITEM_BGCOLOR);
}

void CookVideoSetupGui(int dir)
{
	switch(video_state)
		{
		case VIDEOSTATE_BRIHTNESS:
			revise_val(dir, &SETUP_BRIGHTNESS, 14, 2);
			SetBrightness(SETUP_BRIGHTNESS - 2);
			ShowVideoSetupGui();
			break;
		
		case VIDEOSTATE_CONTRAST:
			revise_val(dir, &SETUP_CONTRAST, 14, 2);
			SetContrast(SETUP_CONTRAST - 2);
			ShowVideoSetupGui();
			break;
		
		case VIDEOSTATE_HUE:
			revise_val(dir, &SETUP_HUE, 14, 2);
			SetHUE(SETUP_HUE - 2);
			ShowVideoSetupGui();
			break;
		
		case VIDEOSTATE_SATURATION:
			revise_val(dir, &SETUP_SATURATION, 14, 2);
			SetSaturation(SETUP_SATURATION - 2);
			ShowVideoSetupGui();
			break;
		
		default:
			break;
		}
}
void InitVideoSetupGUI(void)
{
    page = VIDEOPAGE;
	video_state=VIDEOSTATE_BRIHTNESS;
	setup_gui_state=SETUPGUI_VIDEO;
    full_scrn=SETUP;       //setup menu
    //read_setup_select();   // read data from EEPROM or Flush
    osd_init_setup();
	ShowVideoSetupGui();
}

int IsVideoSetupExit_NextVideoSetup()
{
	if((SETUPGUI_VIDEO!=setup_gui_state)|| !(full_scrn&SETUP))
		return 1;
	else
		{
		switch(video_state)
			{
			case VIDEOSTATE_BRIHTNESS:
				video_state=VIDEOSTATE_CONTRAST;
				run_save_sel_cmd(page,index_y);
				ShowVideoSetupGui();
				break;
			
			case VIDEOSTATE_CONTRAST:
				video_state=VIDEOSTATE_HUE;
				run_save_sel_cmd(page,index_y);
				ShowVideoSetupGui();
				break;
			
			case VIDEOSTATE_HUE:
				video_state=VIDEOSTATE_SATURATION;
				run_save_sel_cmd(page,index_y);
				ShowVideoSetupGui();
				break;
			
			case VIDEOSTATE_SATURATION:
				run_save_sel_cmd(page,index_y);
				setup_gui_state=SETUPGUI_MENU;
				return 1;
				break;
			
			default:
				setup_gui_state=SETUPGUI_MENU;
				return 1;
				break;
			}
		
		}
	return 0;	
}
#endif//VIDEOSETUPGUI

void ShowSetupPassword(const char *buf)
{
	switch(passwordstate)
		{
		case PASSWORDS_INIT:
			oldpassword=0;
			newpassword=0xffff; //liumzh
			confirmpassword=0xffff;
			reset_passwd_cnt();
			Draw_RoundBox(PASSWORDGUI_XSTART,PASSWORDGUI_YSTART+PASSWORDGUI_SCYLEN,PASSWORDGUI_XLEN,PASSWORDGUI_YLEN-PASSWORDGUI_SCYLEN, PASSWORDGUI_BGCOLOR,PASSWORDGUI_BGCOLOR);
			Draw_RoundBox(PASSWORDGUI_XSTART,PASSWORDGUI_YSTART,PASSWORDGUI_XLEN-PASSWORDGUI_SCXLEN,PASSWORDGUI_YLEN, PASSWORDGUI_BGCOLOR,PASSWORDGUI_BGCOLOR);
			osd_DrawSlantCorner(PASSWORDGUI_SCXS,PASSWORDGUI_SCYS,PASSWORDGUI_SCXE,PASSWORDGUI_SCYE,0,0,PASSWORDGUI_BGCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4,"SET PASSWORD",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT,"CURRENT:",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*2,"NEW:",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,"CONFIRM:",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,"----",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*4,"PRESS ENTER TO RETURN.",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			Draw_Border(PASSWORDGUI_XSTART-1+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT,10+4*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR,PASSWORDGUI_FILLCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT,"----",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
			osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*2,"----",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
			passwordstate=PASSWORDS_OLD;
			break;
		
		case PASSWORDS_OLD:
			if(digit_cnt<PASSWORD_LENGTH)
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT,buf,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
			else
				{
				Draw_RoundBox(PASSWORDGUI_XSTART-1+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT,10+4*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_BGCOLOR,PASSWORDGUI_BGCOLOR);
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT,"XXXX",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
				osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*4,"PRESS ENTER TO SET .  ",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
				oldpassword=tmp_passwd;
				reset_passwd_cnt();
				passwordstate=PASSWORDS_ENTER;
				}
			break;
		
		case PASSWORDS_NEW:
			if(digit_cnt<PASSWORD_LENGTH)
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*2,buf,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
			else
				{
				Draw_Border(PASSWORDGUI_XSTART-1+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,10+4*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR,PASSWORDGUI_FILLCOLOR);
				Draw_RoundBox(PASSWORDGUI_XSTART-1+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*2,10+4*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_BGCOLOR,PASSWORDGUI_BGCOLOR);
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*2,"XXXX",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,"----",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
				newpassword=tmp_passwd;
				reset_passwd_cnt();
				passwordstate=PASSWORDS_CONFIRM;
				}
			break;
		
		case PASSWORDS_CONFIRM:
			if(digit_cnt<PASSWORD_LENGTH)
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,buf,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
			else
				{
				Draw_Border(PASSWORDGUI_XSTART+1,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*4,6+22*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR,PASSWORDGUI_FILLCOLOR);
				Draw_RoundBox(PASSWORDGUI_XSTART-1+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,10+4*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_BGCOLOR,PASSWORDGUI_BGCOLOR);
				osd_DrawString_ori(PASSWORDGUI_XSTART+4+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*3,"XXXX",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
				osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*4,"PRESS ENTER TO SET.",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_FILLCOLOR);
				confirmpassword=tmp_passwd;
				reset_passwd_cnt();
				passwordstate=PASSWORDS_ENTER;
				}
			break;

		case PASSWORDS_ENTER:
			break;
		
		case PASSWORDS_UNLOCK:
#ifdef MODIFY_PASSWORD_3308
                        if((oldpassword!=UserSet.parent_passwd)&&(oldpassword!=USER_SUPER_PASSWORD))
#else
			if(oldpassword!=UserSet.parent_passwd)
#endif
				{
				passwordstate=PASSWORDS_INIT;
				ShowSetupPassword("");
				}
			else 
				{
				if(confirmpassword==newpassword)
					{
				      if(newpassword!=0xffff)
					UserSet.parent_passwd=newpassword;
					UserSet.parental_ststus=C_UNLOCK;
					passwordstate=PASSWORDS_NULL;
					setupLevel=1;
					setup_gui_state=SETUPGUI_MENU;
					ShowSetupPage(REFRESH_ITEM);
					}
				else
					{
					reset_passwd_cnt();
					passwordstate=PASSWORDS_NEW;
					Draw_RoundBox(PASSWORDGUI_XSTART+1,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*4,6+22*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_BGCOLOR,PASSWORDGUI_BGCOLOR);
					osd_DrawString_ori(PASSWORDGUI_XSTART+4,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*4,"PRESS ENTER TO CANCEL.",PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR);
					Draw_Border(PASSWORDGUI_XSTART-1+PASSWORDGUI_XPW,PASSWORDGUI_YSTART+4+SETUP_BUTTON_HEIGHT*2,10+4*8,SETUP_BUTTON_HEIGHT,PASSWORDGUI_FONTCOLOR,PASSWORDGUI_BGCOLOR,PASSWORDGUI_FILLCOLOR);
					ShowSetupPassword("----");
					}
				}
			break;
		
		case PASSWORDS_NULL:

⌨️ 快捷键说明

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