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

📄 panelvfd.c

📁 ESS3890+SL原代码(1*16内存)
💻 C
📖 第 1 页 / 共 2 页
字号:
/* Copyright 1996, ESS Technology, Inc.					*//* SCCSID @(#)panelvfd.c	4.11 07/27/04 *//* * $Log$ */#include	<stdio.h>#include	"vcxi.h"#include	"const.h"#include	"vfdshare.h"#include	"dsa.h"#include        "util.h"#include        "panel.h"#include        "micro.h"#include        "play.h"#include	"tdm.h"#include	"cd.h"#ifdef TWO_FIELDS_OSD#include        "cg.h"#else#include        "fsosd.h"#endif#if(defined(MP3)||defined(WMA_DEC))#include        "filesys.h"#include        "nav_menu.h"#ifdef MP3#include        "mp3.h"#endif#ifdef WMA_DECextern int wma_freq,wma_smpl_num;#endif#endif#ifdef MIC_RECORD#include	"echo.h"#include        "recorder.h"#endif#ifdef HOST_SLAVEextern int codeOperand;#endif /*===========================================================================*//*===========================================================================*/#ifdef HOST_SLAVE int wtime=0, welapsed, countdbg=0;extern unsigned char force_Playing_State_flag;extern unsigned char Disc_Status_Monitor;extern unsigned char Play_Mode_Monitor;extern unsigned char Play_Order_Monitor;#endifint	SystemStatus ;int	DiscMode ;#ifdef HOST_SLAVE	int	TimeMode ;#elsestatic int TimeMode;#endifstatic	int	ElapsedTime;	/* In mm:ss:ff (CD format, i.e. BCD)	*/static void show_FF_FR_osd(int cur_state, int index);void show_program_osd_number(int index, int track, int done);static void enable_program_cdda();static void show_panel_time(int time);/*===========================================================================*//* The following informations are from play.c */#define         TOTAL_PROGRAM_TRACKS            \                track_list_max#define         TRACK_LIST_INDEX                \                cur_track_index/*===========================================================================*//* function protype *//*===========================================================================*/void panel_system_status(int status){#ifdef HOST_SLAVE    force_Playing_State_flag = 1;    Disc_Status_Monitor=status;    #else    switch (status) {    case SYSTEM_STOP:	VFD_icon(VFDICON_stop);#if( defined(MP3) || defined(WMA_DEC) )        if (STREAM_type) {            TimeMode = TIME_SINGLE_ELAPSED;            ElapsedTime = 0;#ifdef MP3            if ((STREAM_type == MP3_ID) && (MPG_layer == 3)) {                MPG_frames = 0;                mp3_time_elapsed = 0;            }#endif#ifdef WMA_DEC            if (STREAM_type == WMA_ID)                wma_smpl_num = 0;#endif            panel_running_time(0);	    VFD_icon(VFDICON_colon_on);            break;         }#endif	VFD_segment(VFD_TRACK,		    (DiscMode & DISC_PROGRAM) ? TOTAL_PROGRAM_TRACKS		    			      : num_of_track, 1);	VFD_calendar(0);	TimeMode = TIME_TOTAL_REMAIN;	ElapsedTime = 0;	        SystemStatus = status;	if (SystemStatus != SYSTEM_OPEN)	    panel_running_time(0);		if (DiscMode & DISC_OSD_ON) {	    OSD_clear_region(OSD_TRACK_REGION);	}	break;	    case SYSTEM_OPEN:	DiscMode = 0;        TimeMode = TIME_SINGLE_ELAPSED;	ElapsedTime = 0;	repeat_mode = REPEAT_OFF;	VFD_calendar(99);	VFD_blank_all();	VFD_msg(VFDMSG_open);	break;	    case SYSTEM_PLAYING:	if ((SystemStatus == SYSTEM_STOP) || (DiscMode & DISC_PBC_ON)) {	    showProgramTime(TIME_SINGLE_ELAPSED);	}    case SYSTEM_CONTINUE:	status = SYSTEM_PLAYING;	VFD_icon(VFDICON_play);	break;    }    SystemStatus = status;#endif}/*===========================================================================*//* * Show the TV type on the panel VFD. * * Input: *	mode:	TV_PAL:  PAL TV *		TV_NTSC: NTSC TV *		TV_AUTO: NTSC or PAL determined by vcx_scn_height */void panel_TV_mode(int mode){    unsigned char *vfd_icon;    if (mode == TV_PAL) {	vfd_icon = VFDICON_pal;    } else if (mode == TV_NTSC) {	vfd_icon = VFDICON_ntsc;    } else { /* mode == TV_AUTO */	vfd_icon = (vcx_scn_height == 240) ? VFDICON_ntsc : VFDICON_pal;    }    /* Output TV-output type to VFD */    VFD_icon(vfd_icon);}/*===========================================================================*/void panel_key_shift(int level){    if (level > 0) 	VFD_icon(VFDICON_key_up);    else if (level < 0)	VFD_icon(VFDICON_key_down);    else		VFD_icon(VFDICON_key_resume);    OSD_pitch_bar(level);}/*===========================================================================*/void panel_osd_mode_change(void){    unsigned char *msg, *c_msg;    DiscMode ^= DISC_OSD_ON;    if (DiscMode & DISC_OSD_ON) {		/* Turn on time & track */	if (cur_track_number) {#ifdef JPEG_DEC	    if (STREAM_type == JPEG_ID) {		/* for JPEG, don't show time */ 		OSD_time_track(OSD_TRACK_REGION_MASK, 0);			    } else#endif	    {		OSD_time_track(OSD_TRACK_REGION_MASK|OSD_TIME_REGION_MASK, 0);	    }	                if( cd_stop ) {#if(defined(MP3) || defined(WMA_DEC))                if (STREAM_type) OSD_time_minute = OSD_time_second = 0;#endif                OSD_update_info();            }	    	    if (TimeMode == TIME_SINGLE_ELAPSED) {		assign_osd_msg(msg, MSG_single_elapsed, c_msg,			       MSG_c_single_elapsed);	    } else if (TimeMode == TIME_SINGLE_REMAIN) {		assign_osd_msg(msg, MSG_single_remain, c_msg,			       MSG_c_single_remain);#ifdef HOST_SLAVE		}else if (TimeMode == TIME_TOTAL_ELAPSED) {		assign_osd_msg(msg, MSG_total_elapsed, c_msg,			       MSG_c_total_elapsed);#endif	    } else if (TimeMode == TIME_TOTAL_REMAIN) {		assign_osd_msg(msg, MSG_total_remain, c_msg,			       MSG_c_total_remain);	    }	    /* Output time-type message... */#ifdef DATA_CD            if (STREAM_type != JPEG_ID)#endif	        OUTOSD(OSD_FUNCTION_STATUS_REGION, msg, c_msg, QUICK_TIME_OUT);	}	#ifdef TWO_FIELDS_OSD	if (CG_menu_on) return;#endif	/* Checking play-order */	msg = c_msg = NULL; /* initialize */	if (DiscMode & DISC_PBC_ON) {	    assign_osd_msg(msg, MSG_pbc, c_msg, MSG_pbc);	} else if (DiscMode & DISC_SHUFFLE) {	    assign_osd_msg(msg, MSG_shuffle, c_msg, MSG_c_shuffle);	} else if (DiscMode & DISC_PROGRAM) {	    assign_osd_msg(msg, MSG_program, c_msg, MSG_c_program);	}	if (msg) /* Output play-order message... */	    OUTOSD(OSD_PLAY_ORDER_REGION, msg, c_msg, EXTENDED_TIME_OUT);		/* Checking track-repeat type */	if (repeat_mode == REPEAT_ONE) {	    assign_osd_msg(msg, MSG_repeat_one, c_msg, MSG_c_repeat_one);	} else if (repeat_mode == REPEAT_ALL) {	    assign_osd_msg(msg, MSG_repeat_all, c_msg, MSG_c_repeat_all);	} else {/* repeat_mode == REPEAT_OFF */	    assign_osd_msg(msg, MSG_repeat_off, c_msg, MSG_c_repeat_off);	}	/* Output track-repeat type message... */	OUTOSD(OSD_REPEAT_REGION, msg, c_msg, EXTENDED_TIME_OUT);		/* Checking TV-output type */	if (currentTVmode == TV_PAL) {	    assign_osd_msg(msg, MSG_pal, c_msg, MSG_pal);	} else { /* currentTVmode == TV_NTSC */	    assign_osd_msg(msg, MSG_ntsc, c_msg, MSG_ntsc);	}	/* Output TV-output type message... */	OUTOSD(OSD_TV_STANDARD_REGION, msg, c_msg, EXTENDED_TIME_OUT);#ifdef SPATIAL	/* Output audio-effects mode... */	OUTOSD(OSD_AUDFX_REGION, SPA_msg, SPA_msg, DISPLAY_TIME_OUT);#endif			/* Output vocal and audio modes */	show_audio_panel(1);    } else {#if (defined(MP3) || defined(WMA_DEC))	if (STREAM_type) {#ifdef TWO_FIELDS_OSD	    	    CG_clear_message(0,0,CG_LINE_WIDTH);#else            mp3_menu_changed = 1;            MP3_select();#endif /* TWO_FIELDS_OSD */	} #endif /* MP3 */	/* Need to call OSD_clear_all()..	 * to update "gi_msg" related variables.	 */	OSD_clear_all(!STREAM_type);    }}/*===========================================================================*/void panel_sequence_mode(int mode){    static int previous_mode;    unsigned char clear_msg[] = {FONT_BLANK,0};    unsigned char *msg_ptr=0;#ifdef BILINGUAL_OSD    unsigned char *c_msg_ptr;#endif    if (mode == SEQ_PBC_ON) {	DiscMode &= ~(DISC_PROGRAM | DISC_SHUFFLE		      | DISC_CONTINUE);	DiscMode |= DISC_PBC_ON;	VFD_icon(VFDICON_pbc_on);	assign_osd_msg(msg_ptr, MSG_pbc_on, c_msg_ptr, MSG_c_pbc_on);    } else if (mode == SEQ_CONTINUE) {	DiscMode |= DISC_CONTINUE;	DiscMode &= ~(DISC_PBC_ON | DISC_PROGRAM | DISC_SHUFFLE);	VFD_icon(VFDICON_pbc_off);	panel_running_time(0);    } else if (mode == SEQ_PROGRAM) {	DiscMode |= DISC_PROGRAM;	DiscMode &= ~(DISC_PBC_ON | DISC_CONTINUE | DISC_SHUFFLE);	VFD_calendar(99);	VFD_segment(VFD_TRACK, 0, 1);	VFD_icon(VFDICON_program);	show_panel_time(0);	show_program_osd_number(0, 0, 1);    } else if (mode == SEQ_SHUFFLE) {	DiscMode |= DISC_SHUFFLE;	DiscMode &= ~(DISC_PBC_ON | DISC_CONTINUE | DISC_PROGRAM);	VFD_icon(VFDICON_shuffle);	assign_osd_msg(msg_ptr, MSG_shuffle_on, c_msg_ptr, MSG_c_shuffle_on);    }    if (mode == SEQ_PROGRAM || mode == SEQ_CONTINUE) {	if (previous_mode == SEQ_PBC_ON) {	    assign_osd_msg(msg_ptr, MSG_pbc_off, c_msg_ptr, MSG_c_pbc_off);	}	else if (previous_mode == SEQ_SHUFFLE) {	    assign_osd_msg(msg_ptr, MSG_shuffle_off, c_msg_ptr, 			   MSG_c_shuffle_off);	}    }    if (msg_ptr)	OUTOSD(OSD_INPUT_MODE_REGION, msg_ptr, c_msg_ptr, QUICK_TIME_OUT);    previous_mode = mode;}#if (THREE_CDS || SONY3D)void panel_disc_slot(int number){    /* use vfdspec stuff..i.e, VFD_icon(..)*/;}#endif/*===========================================================================*/void panel_scan_mode(int mode){    CLEARALLOSD();    if (mode == SCAN_INTRO)	VFD_icon(VFDICON_intro_on);    else /* SCAN_NORMAL, SCAN_CD_DIGEST, SCAN_TRACK_DIGEST */	VFD_icon(VFDICON_intro_off);}/*===========================================================================*/int panel_repeat_mode_change(void){    unsigned char *msg, *c_msg;    int mode=repeat_mode;    if (DiscMode & DISC_PBC_ON)	mode = REPEAT_OFF;    else {#ifdef HOST_SLAVE    if (codeOperand !=0) {          if (codeOperand == 0x01) mode = REPEAT_ONE;          if (codeOperand == 0x02) mode = REPEAT_ALL;          if (codeOperand == 0x04) mode = REPEAT_OFF;    }    else#endif	mode++;	if (mode > REPEAT_ALL)	  mode = REPEAT_OFF;    }    if (mode == REPEAT_OFF) {	assign_osd_msg(msg, MSG_repeat_off, c_msg, MSG_c_repeat_off);	VFD_icon(VFDICON_repeat_off);    } else if (mode == REPEAT_ONE) {	assign_osd_msg(msg, MSG_repeat_one, c_msg, MSG_c_repeat_one);	VFD_icon(VFDICON_repeat_one);    } else { /* (mode == REPEAT_ALL) */	VFD_icon(VFDICON_repeat_all);	assign_osd_msg(msg, MSG_repeat_all, c_msg, MSG_c_repeat_all);    }        OUTOSD(OSD_REPEAT_REGION, msg, c_msg, QUICK_TIME_OUT);        return (mode);}/*===========================================================================*/void panel_play_track(int track_num){    VFD_icon(VFDICON_track);    VFD_calendar((DiscMode & DISC_PBC_ON) ? 0 : cur_track_index);    if (track_num) {	VFD_segment(VFD_TRACK, track_num, 1);	if (track_num <= MAX_CALENDAR) {	    EnableFlashing = 1;	    FlashingCalendar = track_num;	}	VFD_icon(VFDICON_hyphen_on);    }    /* if track number is 0, we are in play segment. */

⌨️ 快捷键说明

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