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

📄 dspmodu.c

📁 日本IRON os 在汽车电子中的应用 高度机密
💻 C
📖 第 1 页 / 共 5 页
字号:
  @param		側偟
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void vDSP_PON(void)
{

	if( ucDSP_initmode==INI_ZERO ){
		ucDSP_initmode = INI_PON;
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_INIT(void)
  @brief		儌乕僪娭悢丗弶婜壔張棟
  @param		側偟
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void vDSP_INIT(void)
{

	if( ucDSP_initmode==INI_PON ){
		ucDSP_initmode = INI_INIT;

		ucDSP_romver	= DEV_ROMVER;
		ucDSP_lsiver	= DEV_LSIVER;

		dsp_img_poweron();		/*	夋幙挷惍婡擻棫偪忋偘	*/

		/*	弶婜愝掕抣妋曐	*/
		ucDSP_setting[0]	=	disp_sharp;
		ucDSP_setting[1]	=	disp_color;
		ucDSP_setting[2]	=	disp_tint;
		ucDSP_setting[3]	=	disp_contrast;
		ucDSP_setting[4]	=	disp_bright;

		/*	弶婜抣愝掕		*/
		vi_set_enhancer( (ULONG)disp_sharp, VI_INIT_SHP_LIMIT, VI_INIT_SHP_SELTAP );
		vi_set_tint( (ULONG)disp_tint, (ULONG)disp_color );
		vi_set_contrast( (ULONG)disp_contrast*4 );
		dsp_set_brightness( (ULONG)disp_bright );
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_DEVICE(void)
  @brief		儌乕僪娭悢丗僨僶僀僗忣曬庢摼張棟
  @param		側偟
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void vDSP_DEVICE(void)
{

	if( ucDSP_initmode==INI_INIT ){
		ucDSP_initmode	= INI_DEV;
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_POFF(void)
  @brief		儌乕僪娭悢丗俹俷俥俥張棟
  @param		側偟
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void vDSP_DISPON(void)
{

	if( (ucDSP_initmode==INI_DEV)	||
		(ucDSP_initmode==INI_DSPOFF) ){
		ucDSP_initmode = INI_DSPON;
		dsp_src		= SRC_CLOCK;
		dsp_display(1);
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_DISPOFF(void)
  @brief		儌乕僪娭悢丗昞帵掆巭張棟
  @param		側偟
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void
vDSP_DISPOFF(void){

	if( ucDSP_initmode==INI_DSPON ){
		ucDSP_initmode = INI_DSPOFF;
		dsp_display(0);
		dsp_layer(LAYER_DRW0,ID_DRW0_0,GD_LYR_DISP_OFF);
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_POFF(void)
  @brief		儌乕僪娭悢丗俹俷俥俥張棟
  @param		側偟
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void vDSP_POFF(void)
{

	if( ucDSP_initmode==INI_DSPOFF ){
		ucDSP_initmode = INI_ZERO;
		dsp_src		= SRC_NOP;
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_menu(UCHAR src,UCHAR button)
  @brief		俵俤俶倀儃僞儞昤夋僒僽儖乕僠儞
  @param		UCHAR src,UCHAR button
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void	vDSP_menu(UCHAR src ,UCHAR button)
{
	UCHAR	i;
	UCHAR	*tbl;
	USHORT	id,width,height;

	/*	僜乕僗偱暘婒			*/
	switch(src){
		case 	SRC_CLOCK:
			id		=	ID_MENU_CLOCK;
			width	=	GTTX_MENU_CLOCK_WIDTH;
			height	=	GTTX_MENU_CLOCK_HEIGHT;
			tbl		=	(UCHAR *)tbl_CLOCK_MENU;
			break;
		case	SRC_AIRCON:
			id		=	ID_MENU_AIRCON;
			width	=	GTTX_MENU_AIRCON_WIDTH;
			height	=	GTTX_MENU_AIRCON_HEIGHT;
			tbl	=	(UCHAR *)tbl_AIRCON_MENU;
			break;
		case	SRC_AUDIO:
			id		=	ID_MENU_AUDIO;
			width	=	GTTX_MENU_AUDIO_WIDTH;
			height	=	GTTX_MENU_AUDIO_HEIGHT;
			tbl	=	(UCHAR *)tbl_AUDIO_MENU;
			break;
		case	SRC_CAMERA:
			id		=	ID_MENU_CAMERA;
			width	=	GTTX_MENU_CAMERA_WIDTH;
			height	=	GTTX_MENU_CAMERA_HEIGHT;
			tbl	=	(UCHAR *)tbl_CAMERA_MENU;
			break;
		case	SRC_DRGB:
			id		=	ID_MENU_DRGB;
			width	=	GTTX_MENU_DRGB_WIDTH;
			height	=	GTTX_MENU_DRGB_HEIGHT;
			tbl	=	(UCHAR *)tbl_DRGB_MENU;
			break;
		case	SRC_SETTING:
			id		=	ID_MENU_SETTING;
			width	=	GTTX_MENU_SETTING_WIDTH;
			height	=	GTTX_MENU_SETTING_HEIGHT;
			tbl	=	(UCHAR *)tbl_SETTING_MENU;
			break;
		default:
			src = SRC_NOP;
			break;
	}

	/*	僥僋僗僠儍嶲徠愝掕		*/
	drw_set_source( id );
	drw_set_texture(0,0,width,height);

	/*	儃僞儞昤夋				*/
	for(i=0;i<12;i++){
		if( (i+1)==button ){
#if 0	/*	@003s4[08/01/13]	*/
//			drw_set_color(GD_COLOR0,0x3F000000);
#else	/*	@003s4[08/01/13]	*/
			drw_set_color(GD_COLOR0,0x3F000000|BLACK32);
#endif	/*	@003s4[08/01/13]	*/
			drw_set_alpha(GD_ALPH_ARGB,0x20);
		}else{
			drw_set_alpha(GD_ALPH_IGNORE,0x3F);
		}

		if( (*(tbl+i))!=MENU_OFF ){
			drw_prect(	tbl_MENU_BUTTON[i][0],				/*	X1	*/
						tbl_MENU_BUTTON[i][1],				/*	Y1	*/
						0<<5,								/*	U1	*/
						(MENU_HEIGHT*(*(tbl+i)-1))<<5,		/*	V1	*/
						tbl_MENU_BUTTON[i][0]+MENU_WIDTH-1,	/*	X2	*/
						tbl_MENU_BUTTON[i][1]+MENU_HEIGHT-1,/*	Y2	*/
						(MENU_WIDTH-1)<<5,					/*	U2	*/
						(MENU_HEIGHT*(*(tbl+i)-0)-1)<<5		/*	V1	*/
						);
		}
	}
	drw_set_alpha(GD_ALPH_IGNORE,0x3F);

}

/************************************************************************/
/*!
  @fn			void vDSP_dclock(UCHAR mode,UCHAR hour,UCHAR min)
  @brief		僨僕僞儖僋儘僢僋昤夋
  @param		UCHAR mode,UCHAR hour,UCHAR min
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void	vDSP_dclock(UCHAR mode ,UCHAR hour ,UCHAR min)
{

	UCHAR	min10;

	if( min < 10 ){
		min10=0;
	}else{
		min10=1;
	}

	if( mode ){
		if( min10 ){
			vDSP_gprintf( FONT_SIZE,
						  DCLOCK_POS_X,
						  DCLOCK_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						  WHITE,
#else	/*	@003s4[08/01/13]	*/
						  WHITE32,
#endif	/*	@003s4[08/01/13]	*/
						  "AM %2d:%2d",
						  hour,min
					);
		}else{
			vDSP_gprintf( FONT_SIZE,
						  DCLOCK_POS_X,
						  DCLOCK_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						  WHITE,
#else	/*	@003s4[08/01/13]	*/
						  WHITE32,
#endif	/*	@003s4[08/01/13]	*/
						  "AM %2d:%d%d",
						  hour,0x00,min
					);
		}
	}else{
		if( min10 ){
			vDSP_gprintf( FONT_SIZE,
						  DCLOCK_POS_X,
						  DCLOCK_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						  WHITE,
#else	/*	@003s4[08/01/13]	*/
						  WHITE32,
#endif	/*	@003s4[08/01/13]	*/
						  "PM %2d:%2d",
						  hour,min
					);
		}else{
			vDSP_gprintf( FONT_SIZE,
						  DCLOCK_POS_X,
						  DCLOCK_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						  WHITE,
#else	/*	@003s4[08/01/13]	*/
						  WHITE32,
#endif	/*	@003s4[08/01/13]	*/
						  "PM %2d:%d%d",
						  hour,0x00,min
					);
		}
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_blink(UCHAR button);
  @brief		儃僞儞僽儕儞僋愝掕
  @param		UCHAR button
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void	vDSP_blink_set(UCHAR button)
{
	blink_button	= button;
	tm_button		= TM_BUTTON;
}

/************************************************************************/
/*!
  @fn			void vDSP_aircon_fan(UCHAR fan)
  @brief		僼傽儞偺僶乕昞帵
  @param		UCHAR fan
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void	vDSP_aircon_fan(UCHAR fan)
{
#if 0	/*	@003s4[08/01/13]	*/
//	drw_set_color(GD_COLOR0,WHITE);
#else	/*	@003s4[08/01/13]	*/
	drw_set_color(GD_COLOR0,WHITE32);
#endif	/*	@003s4[08/01/13]	*/

	switch(fan){
		default:
			break;
		case 4:
			drw_rect(	AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH*6,
						AIRCON_FAN_POS_Y-AIRCON_FAN_HEIGHT-AIRCON_FAN_H_SIZE*3,
						AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH*7,
						AIRCON_FAN_POS_Y
						);
			/*	no break	*/
		case 3:
			drw_rect(	AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH*4,
						AIRCON_FAN_POS_Y-AIRCON_FAN_HEIGHT-AIRCON_FAN_H_SIZE*2,
						AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH*5,
						AIRCON_FAN_POS_Y
						);
			/*	no break	*/
		case 2:
			drw_rect(	AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH*2,
						AIRCON_FAN_POS_Y-AIRCON_FAN_HEIGHT-AIRCON_FAN_H_SIZE,
						AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH*3,
						AIRCON_FAN_POS_Y
						);
			/*	no break	*/
		case 1:
			drw_rect(	AIRCON_FAN_POS_X,
						AIRCON_FAN_POS_Y-AIRCON_FAN_HEIGHT,
						AIRCON_FAN_POS_X+AIRCON_FAN_WIDTH,
						AIRCON_FAN_POS_Y
						);
			/*	no break	*/
		case 0:
			break;
	}
}

/************************************************************************/
/*!
  @fn			void vDSP_aircon_temp(UCHAR temp)
  @brief		愝掕壏搙偺昤夋
  @param		UCHAR temp
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void	vDSP_aircon_temp(UCHAR temp)
{

	switch( temp ){
		case	AIRCON_TEMP_COLD:
			vDSP_gprintf(	FONT_SIZE,
						AIRCON_TEMP_POS_X,
						AIRCON_TEMP_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						GREEN,
#else	/*	@003s4[08/01/13]	*/
						GREEN32,
#endif	/*	@003s4[08/01/13]	*/
						"COLD",
						temp+AIRCON_TEMP_OFFSET
						);
			break;
		case	AIRCON_TEMP_HOT:
			vDSP_gprintf(	FONT_SIZE,
						AIRCON_TEMP_POS_X,
						AIRCON_TEMP_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						GREEN,
#else	/*	@003s4[08/01/13]	*/
						GREEN32,
#endif	/*	@003s4[08/01/13]	*/
						"HOT ",
						temp+AIRCON_TEMP_OFFSET
						);
			break;
		default:
			vDSP_gprintf(	FONT_SIZE,
						AIRCON_TEMP_POS_X,
						AIRCON_TEMP_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						GREEN,
#else	/*	@003s4[08/01/13]	*/
						GREEN32,
#endif	/*	@003s4[08/01/13]	*/
						"%2d C'",
						temp+AIRCON_TEMP_OFFSET
						);
			break;
	}

}

/************************************************************************/
/*!
  @fn			void vDSP_audio_src(UCHAR src,UCHAR d1,UCHAR d2,UCHAR d3)
  @brief		僆乕僨傿僆僜乕僗枅偺昤夋
  @param		UCHAR src, UCHAR d1, UCHAR d2, UCHAR d3
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void	vDSP_audio_src(UCHAR src, UCHAR d1, UCHAR d2 ,UCHAR d3)
{

	USHORT	freq;

	switch( src ){
		case SRC_CD:
			vDSP_gprintf(	FONT_SIZE,
						AUDIO_SRC_POS_X,
						AUDIO_SRC_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						RED,
#else	/*	@003s4[08/01/13]	*/
						RED32,
#endif	/*	@003s4[08/01/13]	*/
						"CD",
						d1
						);
			vDSP_gprintf(	FONT_SIZE,
						AUDIO_SRC_POS_X+FONT_SIZE*2,
						AUDIO_SRC_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						WHITE,
#else	/*	@003s4[08/01/13]	*/
						WHITE32,
#endif	/*	@003s4[08/01/13]	*/
						" FM AM ",
						d1
						);
			if( d3 < 10 ){
				vDSP_gprintf(	FONT_SIZE,
							AUDIO_INFO_POS_X,
							AUDIO_INFO_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//							WHITE,
#else	/*	@003s4[08/01/13]	*/
						  	WHITE32,
#endif	/*	@003s4[08/01/13]	*/
							"Tr %2d %2d:%d%d",
							d1,d2,0x00,d3
							);
			}else{
				vDSP_gprintf(	FONT_SIZE,
							AUDIO_INFO_POS_X,
							AUDIO_INFO_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						  	WHITE,
#else	/*	@003s4[08/01/13]	*/
							WHITE32,
#endif	/*	@003s4[08/01/13]	*/
							"Tr %2d %2d:%2d",
							d1,d2,d3
							);
			}
			break;
		case SRC_FM:
			vDSP_gprintf(	FONT_SIZE,
						AUDIO_SRC_POS_X,
						AUDIO_SRC_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						WHITE,
#else	/*	@003s4[08/01/13]	*/
						WHITE32,
#endif	/*	@003s4[08/01/13]	*/
						"CD",
						d1
						);
			vDSP_gprintf(	FONT_SIZE,
						AUDIO_SRC_POS_X+FONT_SIZE*2,
						AUDIO_SRC_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/
//						RED,
#else	/*	@003s4[08/01/13]	*/
						RED32,
#endif	/*	@003s4[08/01/13]	*/
						" FM",
						d1
						);
			vDSP_gprintf(	FONT_SIZE,
						AUDIO_SRC_POS_X+FONT_SIZE*5,
						AUDIO_SRC_POS_Y,
#if 0	/*	@003s4[08/01/13]	*/

⌨️ 快捷键说明

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