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

📄 modify_browse_func.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************\
HISTORY:

Creater: xiongyuyue
Date   : 2003/6/28 
Description: browse function using 

modifier : zhaoyanhua
date: 2003-12-6 16:18
 changed the some function of NEW_STYLE_WINDOw:
 VCD: DELETE ITEM : playtime  
      ADD ITEM:   : disctime、track time
 DVD: DELETE ITEM : time
 
\*****************************************************/

#ifndef DVDRELEASE
//#define BROWSE_DBG
#endif


#ifdef DYNAMIC_SPECTRUM     //fengjl  3-10-30 12:34
extern BYTE band_onoff;
extern void Show3dspectrum(void); //axel 2003/12/2 11:31pm
#endif

#define browse_puts()           ((void)0)
#define browse_show_function()  ((void)0)

#if 1
#ifdef  BROWSE_DBG
#include "sio.h"
#include "emuio.h"
#undef  browse_puts
#undef  browse_show_function
#define browse_puts             puts_w
#define browse_show_function()  do {browse_puts(__FUNCTION__); browse_puts("\n");} while (0)
#endif
#endif
/////////////////////////////////////////////////////////////////////////
//wanghaoying 2003-8-12 19:50 added
extern void set_video_aspect(void);
extern void startup_vpp_now(void);
extern void set_vpp_disp_window(UINT32,UINT32,UINT32,UINT32);
/////////////////////////////////////////////////////////////////////////
extern UINT16 mp3_file_count(void);   //axel 2003/12/2 11:30pm
///////////////////////////////////////////////////////////////////
//zhaoyanhua add 2003-12-18 15:39
extern BYTE	memory_config_saved;//reset.h
extern BYTE GetConfigMode(int config);//memcfg.c
extern void   osd_init_newstyle_window_PAL(void);//osd1.c
extern void   osd_init_newstyle_window_NTSC(void);//osd1.c
///////////////////////////////////////////////////////////////////
#ifdef NEWSTYLE_WINDOW          //xiongyuyue 
BYTE bInputState = NON_INPUT_STATE;
int bInputIndex = 0;   //for title/chapter search function,
BYTE bTimeInput = 0;
BYTE update_definition = 40;
extern UINT32 PlayBackLength;

void br_Draw8space(BYTE fontColor,BYTE bkColor,BYTE index)
{//erase displayed word and disp new word when press updown key(for draw left item)
    strcpy(linebuf,"            ");  //fengjl changed space from 8 to 12   3-11-24 18:52
    osd_DrawRegionString(brArea[BR_ITEM_AREA].xStart,brArea[BR_ITEM_AREA].yStart+ITEM_HEIGHT*index,
                        linebuf,fontColor,bkColor,arc_region_loc.region);
}

void br_Draw18space(BYTE fontColor,BYTE bkColor,BYTE index)
{//erase displayed word and disp new word when press updown key(for draw right item)
    strcpy(linebuf,"                  ");
    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*index,
                        linebuf,fontColor,bkColor,arc_region_loc.region);
}	

void br_DrawLeftItemStr(BYTE hl_index,BYTE str_index,BYTE fontColor,BYTE bkColor)
{
    br_Draw8space(fontColor,bkColor,hl_index);//xyy 2003-7-29 17:12
	if(cd_type_loaded==CDDVD)
        psprintf(linebuf,"%s",_OsdMessegeFont1[osd_font_mode][string_index_dvd[str_index]]);
	else if(cd_type_loaded==CDROM || cd_type_loaded==CDDA)
		psprintf(linebuf,"%s",_OsdMessegeFont1[osd_font_mode][string_index_cd[str_index]]);
    else
        psprintf(linebuf,"%s",_OsdMessegeFont1[osd_font_mode][string_index_vcd[str_index]]);
    osd_DrawRegionString(brArea[BR_ITEM_AREA].xStart,brArea[BR_ITEM_AREA].yStart+ITEM_HEIGHT*(hl_index),
                        linebuf,fontColor,bkColor,arc_region_loc.region);
}

void browse_HL_leftItem(BYTE index,BYTE fontColor,BYTE pre_bkColor,BYTE bkColor,BYTE UPDN)
{
    if(UPDN == 0)//when press down key
    {
    	if(index>1)
		    br_DrawLeftItemStr(index-2,info_index-1,fontColor,pre_bkColor);//xyy 2003-7-29 20:05
	    br_DrawLeftItemStr(index-1,info_index,fontColor,bkColor);//xyy 2003-7-29 20:05
    }
    else if(UPDN == 1)//when press up key
    {
    	if(index < ITEM_PER_PAGE)
		    br_DrawLeftItemStr(index,info_index+1,fontColor,pre_bkColor);//xyy 2003-7-29 20:05
	    br_DrawLeftItemStr(index-1,info_index,fontColor,bkColor);//xyy 2003-7-29 20:05
    }
}
    
void br_Draw_TT_info(void)
{
    BYTE dvd_title_Ns;
    
    if(cd_type_loaded==CDDVD)
    {
		dvd_title=get_tt_info(DISP_TT); 
		dvd_title_Ns = get_tt_info(DISP_TT_Ns); 
	}
	else
	{
/*
		dvd_title=disp_trk_now;
		dvd_title_Ns = cd_total_trk();
*/		 
		dvd_title=disp_trk_now;
		if(cd_type_loaded==CDROM)//xyy 2003-9-11 17:12
			dvd_title_Ns = mp3_file_count();
		else 
			dvd_title_Ns = cd_total_trk(); 
	}
    psprintf(linebuf, "%02d/%02d",dvd_title,dvd_title_Ns);
    if(bBrowseLevel==1 && info_index==0)
	    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart,
	    					linebuf,INFO_FONTCOL,INFO_BKCOL,arc_region_loc.region);	        
	else
	    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart,
	    					linebuf,INFO_FONTCOL,INFO_PRE_BKCOL,arc_region_loc.region);	        
}

void br_Draw_CHP_info(void)
{
    BYTE dvd_chp_Ns;
	dvd_chapter=get_tt_info(DISP_CH);  
	dvd_chp_Ns = get_tt_info(DISP_CH_Ns);
    psprintf(linebuf, "%02d/%02d",dvd_chapter,dvd_chp_Ns);
	if(bBrowseLevel==1 && info_index==1)
	    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*1,
	    					linebuf,INFO_FONTCOL,INFO_BKCOL,arc_region_loc.region);	        
    else
	    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*1,
	    					linebuf,INFO_FONTCOL,INFO_PRE_BKCOL,arc_region_loc.region);	        
}

void browse_func_up(void)
{
    BYTE i,j;
    if(bBrowseLevel==1 || info_index==0)
        return;
    else
        info_index--;
        
    if((info_index<ITEM_PER_PAGE)||(info_index == 5)|| (info_index == 6))
    	bInputState = NON_INPUT_STATE;
     
    
    HL_index--;
    if((info_index+1)%ITEM_PER_PAGE==0)
    {
        for(i=info_index-(ITEM_PER_PAGE-1),j=0;j<ITEM_PER_PAGE;i++,j++)
            br_DrawLeftItem(i,j,INFO_FONTCOL,INFO_PRE_BKCOL);

        br_DrawRightItem();
        browse_HL_leftItem(ITEM_PER_PAGE,INFO_FONTCOL,INFO_PRE_BKCOL,INFO_BKCOL,1);
    }
    if(HL_index>0)
        browse_HL_leftItem(HL_index,INFO_FONTCOL,INFO_PRE_BKCOL,INFO_BKCOL,1);
    else
        HL_index = ITEM_PER_PAGE;
}

void browse_func_down(void)
{
    BYTE i,j;
    if(bBrowseLevel==1)
        return;
    if((cd_type_loaded==CDROM || cd_type_loaded==CDDA) && info_index==2)//xyy 2003-9-12 14:22
    	return;
    if(cd_type_loaded==CDDVD)
    {
	    if(info_index>=DVD_MAXITEM-1)
	        return;
	    else
	        info_index++;
	}
	else
	{
	    if(info_index>=VCD_MAXITEM-1)
	        return;
	    else
	        info_index++;
	}
    if(info_index>=ITEM_PER_PAGE)
    {
    	if((info_index == 5)|| (info_index == 6))
    	    bInputState = NON_INPUT_STATE;//zhaoyanhua modify2003-12-7 14:54 
        else
            bInputState = INPUT_STATE;
    }
    HL_index++;
    if((info_index%ITEM_PER_PAGE==0) && (info_index<DVD_MAXITEM))
    {
        for(i=info_index,j=0;j<ITEM_PER_PAGE;i++,j++)
            br_DrawLeftItem(i,j,INFO_FONTCOL,INFO_PRE_BKCOL);

        br_DrawRightItem();
        browse_HL_leftItem(1,INFO_FONTCOL,INFO_PRE_BKCOL,INFO_BKCOL,0);
    }
    if(HL_index<=ITEM_PER_PAGE)
        browse_HL_leftItem(HL_index,INFO_FONTCOL,INFO_PRE_BKCOL,INFO_BKCOL,0);
    else
        HL_index = 1;
    }

void init_time_search(void)
{
	bTimeInput = 1;
	goto_time = 0;
	psprintf(linebuf,"%02d:%02d:%02d",0,0,0);
    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*(HL_index-1),
                            linebuf,INFO_FONTCOL,INFO_BKCOL,arc_region_loc.region); 
    br_Draw_tmhl(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*(HL_index-1),"_",INFO_FONTCOL,INFO_BKCOL);    
}

#ifdef  SUPPORT_PLAYBACK_ICON
void br_Draw_FBicon(void)
{
	memset(linebuf,0,sizeof(linebuf));
	strcat1(linebuf, OSD_ICON_FB);
    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*(HL_index-1),
                            linebuf,INFO_FONTCOL,INFO_BKCOL,arc_region_loc.region);//xyy 2003-8-11 16:25
}

void br_Draw_FFicon(void)
{
    strcat1(linebuf, OSD_ICON_FF);
    osd_DrawRegionString(brArea[BR_CONTENT_AREA].xStart+ITEM_WIDTH,brArea[BR_CONTENT_AREA].yStart+ITEM_HEIGHT*(HL_index-1),
                            linebuf,INFO_FONTCOL,INFO_BKCOL,arc_region_loc.region); //xyy 2003-8-11 16:25 
}
#endif

void br_Draw_underline(BYTE xStart, BYTE yStart, BYTE lineColor,BYTE bkColor)
{
    BYTE *s="__";
    bInputState = INPUT_STATE;
    if(bInputIndex==0)
	    osd_DrawRegionString(xStart,yStart,s,lineColor,bkColor,arc_region_loc.region);	 
}

extern void preDealGoto_time(void);
extern void time_trans2hms(void);
extern void exe_timesearch_func(UINT32 goto_ff,UINT32 fail);
void exe_time_goto(void)
{
    #define DISCTIME_SEARCH     1
    #define TRACKTIME_SEARCH    2
    
    BYTE  search_mode = 0;
    
    index_x=0;
	time_trans2hms();  //xyy  2003-7-29 13:17           

	preDealGoto_time();//xyy 2003-7-29 13:18
	
	if(cd_type_loaded != CDDVD)
	{
	    switch(info_index)
	    {
	        case 1: 
	            search_mode = DISCTIME_SEARCH;
	            break;
	        case 2:
	            search_mode = TRACKTIME_SEARCH;
	            break;
	    }
	    if(goto_time)
	    {   
	        printf("browse function : goto_time :%d---\n",goto_time);
	    exe_timesearch_func(0,search_mode);//xyy 2003-7-29 13:25
	}
	}

⌨️ 快捷键说明

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