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

📄 double_title.c

📁 Sunplus 8202S source code.
💻 C
字号:
/*****************************************************\
Creater: susu
Date   : 2003-8-20 14:40
Description: show double title function 
\*****************************************************/

#include "global.h"
#include "osd.h"
#include "func.h"
#include "cfont.h"
#include "util.h"
#include "ircmd.h"
#include "user_if.h" 
#include "stdlib.h"

#include "emuio.h"
#include "sio.h"

#ifdef DOUBLE_TITLE

extern void osd_init_double_title(void);
extern void osd_draw_region_rect(UINT32 xStart, UINT32 yStart, UINT32 xLen, UINT32 yLen, BYTE bkColor, BYTE r);
extern void osd_DrawRegionString(BYTE xStart, BYTE yStart, BYTE *str, BYTE fontColor, BYTE bkColor, BYTE r);
extern void ircmd_sub_picture(void);

void exe_double_title(void);
void exit_double_title(void);
void double_title_func_select(void);
void double_title_func_up(void);
void double_title_func_down(void);
void double_title_func_left(void);
void double_title_func_right(void);
void draw_doubletitle_string(void);
void draw_doubletitle_12space(int i);

#define FIRST_TITLE_ITEM      0//first title choise
#define SECOND_TITLE_ITEM     1//second title choise

#define FONT_COLOR            2//White
#define HL_FONT_COLOR         12//Red
#define ICON_COLOR            9//yellow_green
#define BK_COLOR              0//Transparent

#define X_START_0             5//first title position
#define X_START_1             23//second title position

#define X_START               0
#define Y_START               0

#define X_LINE                36*4*2//display rect length
#define Y_LINE                24+5//display rect hight

int i_title_item=FIRST_TITLE_ITEM; //title item:first title item and second title item

void exit_double_title(void)
{
	full_scrn=0;
    osd_init();
}

void exe_double_title(void)
{
	osd_init_double_title();
	action_click=0;
	
	//Initialize double tile
	osd_draw_region_rect(X_START,X_START,X_LINE*2,Y_LINE-2,BK_COLOR,REGION1);
	draw_doubletitle_string();
	
	i_title_item=FIRST_TITLE_ITEM;
}

void double_title_func_up(void)//press up button
{
	if(i_title_item==FIRST_TITLE_ITEM)
	{
		draw_doubletitle_12space(0);
		memset(linebuf,0,sizeof(linebuf));
		
		ircmd_sub_picture();
		osd_DrawRegionString(X_START_0,Y_START,linebuf,HL_FONT_COLOR,BK_COLOR,REGION1);
		
		strcpy(linebuf_0,linebuf);
	}
	else
	{
		draw_doubletitle_12space(1);
		memset(linebuf,0,sizeof(linebuf));
		
		ircmd_sub_picture();
		osd_DrawRegionString(X_START_1,Y_START,linebuf,HL_FONT_COLOR,BK_COLOR,REGION1);
		
		strcpy(linebuf_1,linebuf);
	}
}

void double_title_func_down(void)//press down button
{
    printf("double_title_func_down\n");
	if(i_title_item==FIRST_TITLE_ITEM)
	{	
		draw_doubletitle_12space(0);
		memset(linebuf,0,sizeof(linebuf));
		
		ircmd_sub_picture();
		osd_DrawRegionString(X_START_0,Y_START,linebuf,HL_FONT_COLOR,BK_COLOR,REGION1);
		
		strcpy(linebuf_0,linebuf);
	
	}
	else
	{
		draw_doubletitle_12space(1);
		memset(linebuf,0,sizeof(linebuf));
		ircmd_sub_picture();
		osd_DrawRegionString(X_START_1,Y_START,linebuf,HL_FONT_COLOR,BK_COLOR,REGION1);
		
		strcpy(linebuf_1,linebuf);
	}
}

void double_title_func_right(void)//press right button
{
	action_click=0;
	i_title_item=SECOND_TITLE_ITEM;
	draw_doubletitle_12space(1);
	memset(linebuf,0,sizeof(linebuf));
	
	if(strlen(linebuf_1)==0)
	{
		ircmd_sub_picture();
		osd_DrawRegionString(X_START_0,Y_START,linebuf,FONT_COLOR,0,REGION1);
	}
	
	if(strlen(linebuf_1)==0)
	{
		psprintf(linebuf,"    [ %s ]",_OsdMessegeFont1[osd_font_mode][STR_OS_OFF]);
		osd_DrawRegionString(X_START_1, Y_START, linebuf, HL_FONT_COLOR, BK_COLOR,REGION1);
	}		
	
	osd_DrawRegionString(X_START_0, Y_START, linebuf_0, FONT_COLOR, BK_COLOR,REGION1);	
	osd_DrawRegionString(X_START_1, Y_START, linebuf_1, HL_FONT_COLOR, BK_COLOR,REGION1);

}

void double_title_func_left(void)//press left button
{	
	action_click=0;
	i_title_item=FIRST_TITLE_ITEM;
	draw_doubletitle_12space(0);
	memset(linebuf,0,sizeof(linebuf));
	
	if(strlen(linebuf_0)==0)
	{
		ircmd_sub_picture();
		osd_DrawRegionString(X_START_0,Y_START,linebuf,HL_FONT_COLOR,0,REGION1);
	}	
	
	if(strlen(linebuf_1)==0)
	{
		psprintf(linebuf,"    [ %s ]",_OsdMessegeFont1[osd_font_mode][STR_OS_OFF]);
		osd_DrawRegionString(X_START_1, Y_START, linebuf, FONT_COLOR, BK_COLOR,REGION1);
	}	
	
	osd_DrawRegionString(X_START_0,Y_START,linebuf_0,HL_FONT_COLOR,BK_COLOR,REGION1);
	osd_DrawRegionString(X_START_1,Y_START, linebuf_1,FONT_COLOR, BK_COLOR,REGION1);
	
}

void double_title_func_select(void)
{
	//exit_double_title();
}

void draw_doubletitle_string(void)
{//write subtitle string

	psprintf(linebuf,"%s:",_OsdMessegeFont1[osd_font_mode][STR_OS_SUBTITLE]);
	osd_DrawRegionString(X_START, Y_START, linebuf, ICON_COLOR, BK_COLOR,REGION1);
	
	if(strlen(linebuf_0)==0)
	{
	 	ircmd_sub_picture();
		osd_DrawRegionString(X_START_0,Y_START,linebuf,HL_FONT_COLOR,0,REGION1);
	
		psprintf(linebuf,"    [ %s ]",_OsdMessegeFont1[osd_font_mode][STR_OS_OFF]);
		osd_DrawRegionString(X_START_1, Y_START, linebuf, FONT_COLOR, BK_COLOR,REGION1);
	}
	
	if(strlen(linebuf_1)==0)
	{
		psprintf(linebuf,"    [ %s ]",_OsdMessegeFont1[osd_font_mode][STR_OS_OFF]);
		osd_DrawRegionString(X_START_1, Y_START, linebuf, FONT_COLOR, BK_COLOR,REGION1);
	}	

	osd_DrawRegionString(X_START_0,Y_START,linebuf_0,HL_FONT_COLOR,0,REGION1);
	osd_DrawRegionString(X_START_1, Y_START, linebuf_1, FONT_COLOR, BK_COLOR,REGION1);	
}	

void draw_doubletitle_12space(int i)//12 blank
{//erase displayed word and disp new word when press updown key(for draw right item)
		strcpy(linebuf, "            ");
		osd_DrawRegionString(18*i+5,Y_START, linebuf,FONT_COLOR,BK_COLOR,REGION1);	
}

#endif

⌨️ 快捷键说明

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