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

📄 dspsub.c

📁 日本IRON os 在汽车电子中的应用 高度机密
💻 C
字号:
/********************************************************************************/
/*!
  @file		dspsub.c
  @brief	昞帵儌乕僪慗堏張棟乮俵倃俼俷俥俥帪偺傒乯
  @version	$Revision: 2.00 $
  @date		2007/XX/XX
  @author	Matsushita Electronics Co.,Ltd.
*/
/********************************************************************************/
#include	<stdio.h>
#include	<stdlib.h>

#include	<itron.h>
#include	<kernel.h>
#include	<kernel_id.h>

#include	"..\gerda_dd\include\gerda_dd.h"
#include	"..\gerda_dd\include\dd_sys.h"
#include	"..\gerda_dd\include\gerda_reg.h"
#include	"..\gerda_dd\dsp\dst_ram.h"
#include	"..\gerda_dd\dsp\ini_def.h"
#include	"..\texture\texdata.h"

#include	"systype.h"
#include	"sr103se60pub.h"
#include	"option.h"
#include	"if_cmd.h"
#include	"if_mxr.h"
#include	"if_txtid.h"
#include	"parameter.h"
#include	"dd_param.h"
#include	"dspctrl.h"

/********************************************************************/
/*	儅僋儘掕媊														*/
/********************************************************************/
#define		touch(x)				((x) = 0)		/* WARNING 懳嶔 */

/********************************************************************/
/*	娭悢愰尵														*/
/********************************************************************/

/********************************************************************/
/*	奜晹娭悢愰尵													*/
/********************************************************************/

/********************************************************************/
/*	曄悢愰尵														*/
/********************************************************************/

/********************************************************************/
/*	儅僋儘掕悢愰尵													*/
/********************************************************************/

/********************************************************************/
/*	掕悢愰尵														*/
/********************************************************************/

/************************************************************************/
/*!
  @fn			void vDSP_sub(VP_INT exinf)
  @brief		昞帵儌乕僪慗堏僞僗僋
  @param		VP_INT	exinf
  @return		側偟
  @date			2007/XX/XX
*/
/************************************************************************/
void vDSP_sub(VP_INT exinf)
{

	int			frm = 0;
	UCHAR		dspmode = DISP_NOP;
	T_MSG_MODE	*rcv_mode;
	ER			ercd;

	touch(exinf);

#if (MXMODE == MXROFF)

	while(1){
		if( (prcv_mbx(MBX2,(T_MSG **)&rcv_mode)) == E_OK ){
			dspmode	= rcv_mode->DSP_mode;
		}

	#if (SSPFMODE == SSPF_V1)
		/*	俷俶屻偺弶婜抣愝掕	*/
		if(	(ucDSP_initmode==INI_DSPON)	&&
			(dspmode==DISP_DISPON)	){
			dspmode = DISP_CLOCK;
		}
	#elif (SSPFMODE == SSPF_V2)
		/*	弶婜抣愝掕			*/
		if(	(dspmode==DISP_NOP)	||
			(dspmode>DISP_SETTING)	){
			dspmode = DISP_CD;
		}
	#endif	/*	SSPFMODE	*/

		/********************************/
		/*	價僨僆弌椡掆巭敾抐			*/
		/********************************/
	#if (SSPFMODE == SSPF_V1)
		if( (	(dsp_src==SRC_CAMERA)||(dsp_src==SRC_SETTING)	)	&&
			(dspmode!=SRC_CAMERA)&&(dspmode!=SRC_SETTING)	){
			dsp_layer( LAYER_YUV,ID_VIDEO,GD_LYR_DISP_OFF );
			vi_control_video(ID_VIDEO,GD_VI_STOP);
		}else
		if( (dsp_src==SRC_DRGB) && (dspmode!=DISP_DRGB) ){
			dsp_layer( LAYER_DRGB,ID_VIDEO,GD_LYR_DISP_OFF );
			dsp_display(FALSE);
		#if ( DRGBMODE == DRGBON )
			dsp_set_clk(1,3,525,58,858,28,508,150,790);
		#endif
			dsp_display(TRUE);
		}
	#elif (SSPFMODE == SSPF_V2)
		if( (	(dsp_src==SRC_CAMERA)||(dsp_src==SRC_SETTING)	)	&&
			(dspmode!=DISP_CAMERA)&&(dspmode!=DISP_SETTING)	){
			dsp_layer( LAYER_YUV,ID_VIDEO,GD_LYR_DISP_OFF );
			vi_control_video(ID_VIDEO,GD_VI_STOP);
		}
	#endif	/*	SSPFMODE	*/

		/********************************/
		/*	儊僀儞儌乕僪昤夋張棟		*/
		/********************************/
#if 0	/*	@003s4[08/01/13]	*/
//	#if (SSPFMODE == SSPF_V1)
//		drw_set_frame((frm&1)|(int)ID_DRW0_0);		/*	昤夋僼儗乕儉愝掕	*/
//		drw_set_color(GD_COLOR0,BLUE);				/*	儕僼儗僢僔儏		*/
//	#elif (SSPFMODE == SSPF_V2)
//		drw_set_frame((frm&1)|(int)ID_DRW1_0);		/*	昤夋僼儗乕儉愝掕	*/
//		drw_set_color(GD_COLOR0,BLACK|0x8000);		/*	儕僼儗僢僔儏		*/
//	#endif	/*	SSPFMODE	*/
#else	/*	@003s4[08/01/13]	*/
	#if (SSPFMODE == SSPF_V1)
		drw_set_frame((frm&1)|(int)ID_DRW0_0);		/*	昤夋僼儗乕儉愝掕	*/
		drw_set_color(GD_COLOR0,BLUE32);			/*	儕僼儗僢僔儏		*/
	#elif (SSPFMODE == SSPF_V2)
		drw_set_frame((frm&1)|(int)ID_DRW1_0);		/*	昤夋僼儗乕儉愝掕	*/
		drw_set_color(GD_COLOR0,BLACK32);			/*	儕僼儗僢僔儏		*/
	#endif	/*	SSPFMODE	*/
#endif	/*	@003s4[08/01/13]	*/
		drw_rect(0,0,DISP_WIDTH-1,DISP_HEIGHT-1);

		switch(dspmode){			/*	儌乕僪偵廬偭偰昤夋	*/
	#if (SSPFMODE == SSPF_V1)
			case	DISP_NOP:		vDSP_NOP();			break;
			case	DISP_CLOCK:		vDSP_CLOCK();		break;
			case	DISP_AIRCON:	vDSP_AIRCON();		break;
			case	DISP_AUDIO:		vDSP_AUDIO();		break;
			case	DISP_CAMERA:	vDSP_CAMERA();		break;
			case	DISP_DRGB:		vDSP_DRGB();		break;
			case	DISP_SETTING:	vDSP_SETTING();		break;
			case	DISP_PON:		vDSP_PON();			break;
			case	DISP_INIT:		vDSP_INIT();		break;
			case	DISP_DEVICE:	vDSP_DEVICE();		break;
			case	DISP_DISPON:	vDSP_DISPON();		break;
			case	DISP_DISPOFF:	vDSP_DISPOFF();		break;
			case	DISP_POFF:		vDSP_POFF();		break;
	#elif (SSPFMODE ==SSPF_V2)
			case	DISP_NOP:		vDSP_NOP();			break;
			case	DISP_CLOCK:		vDSP_CLOCK();		break;
			case	DISP_AIRCON:	vDSP_AIRCON();		break;
			case	DISP_CD:		vDSP_CD();			break;
			case	DISP_MP3:		vDSP_MP3();			break;
			case	DISP_FM:		vDSP_FM();			break;
			case	DISP_AM:		vDSP_AM();			break;
			case	DISP_CAMERA:	vDSP_CAMERA();		break;
			case	DISP_SETTING:	vDSP_SETTING();		break;
	#endif	/*	SSPFMODE	*/
			default:									break;
		}

	#if (SSPFMODE == SSPF_V2)
		/********************************/
		/*	僒僽儌乕僪昤夋張棟			*/
		/********************************/
		switch(ucDSP_submode){		/*	儌乕僪偵廬偭偰昤夋	*/
			case	SUB_NONE:		vDSP_SUB_NONE();	break;
			case	SUB_SPEANA:		vDSP_SUB_SPEANA();	break;
			case	SUB_TITLE:		vDSP_SUB_TITLE();	break;
			default:									break;
		}
	#endif	/*	SSPFMODE	*/

		/********************************/
		/*	僼儗乕儉僀儞摦嶌			*/
		/********************************/
		if( tm_framein ){
	#if (SSPFMODE == SSPF_V1)
			dsp_layer_win(LAYER_DRW0,
	#elif (SSPFMODE == SSPF_V2)
			dsp_layer_win(LAYER_DRW0,
	#endif	/*	SSPFMODE	*/
						DISP_WIDTH*(TM_FRAMEIN-tm_framein)/TM_FRAMEIN,
						DISP_HEIGHT,
						0,
						0,
						DISP_WIDTH-DISP_WIDTH*(TM_FRAMEIN-tm_framein)/TM_FRAMEIN,
						0
						  );
		}else{
	#if (SSPFMODE == SSPF_V1)
			dsp_layer_win(LAYER_DRW0,DISP_WIDTH,DISP_HEIGHT,0,0,0,0);
	#elif (SSPFMODE == SSPF_V2)
			dsp_layer_win(LAYER_DRW0,DISP_WIDTH,DISP_HEIGHT,0,0,0,0);
	#endif	/*	SSPFMODE	*/
		}

		/********************************/
		/*	昤夋廔椆仌倁俽倄俶俠懸偪	*/
		/********************************/
	#if (SSPFMODE == SSPF_V1)
		if(ucDSP_initmode==INI_DSPON){		/*	昞帵拞偺傒昞帵張棟	*/
	#endif	/*	SSPFMODE==SSPF_V1	*/
			drw_wait_drawend();				/*	昤夋廔椆懸偪		*/
	#if (SSPFMODE == SSPF_V1)
			dsp_layer(LAYER_DRW0,(frm&1)|(int)ID_DRW0_0,GD_LYR_DISP_ON|GD_LYR_TRNSC_ON);
	#elif (SSPFMODE == SSPF_V2)
			dsp_layer(LAYER_DRW1,(frm&1)|(int)ID_DRW1_0,GD_LYR_DISP_ON|GD_LYR_TRNSC_ON);
	#endif	/*	SSPFMODE	*/
			dsp_wait_vblank(0);
			dsp_wait_vblank(1);
			frm++;
	#if (SSPFMODE == SSPF_V1)
		}
	#endif	/*	SSPFMODE==SSPF_V1	*/
	}
#endif	/*	MXMODE==MXROFF	*/

}

⌨️ 快捷键说明

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