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

📄 osd_deco.c

📁 一个比较好用的TW2835音视频芯片开发板的程序,
💻 C
📖 第 1 页 / 共 2 页
字号:
	_vt_ = _pos_y-1;
	_vb_ = _vt_+_hght+1;

	WriteOSDFnt(_pth,MASTER,_hl_,_vt_,_prp,OSD_GRP_LT);
	WriteOSDFnt(_pth,MASTER,_hl_,_vb_,_prp,OSD_GRP_LB);
	WriteOSDFnt(_pth,MASTER,_hr_,_vt_,_prp,OSD_GRP_RT);
	WriteOSDFnt(_pth,MASTER,_hr_,_vb_,_prp,OSD_GRP_RB);
	
	if(_str != str_null)
		WriteOSDStr(_pth,MASTER,_pos_x,_vt_,_prp,_str);
	else
		WriteOSDFnt(_pth,MASTER,_pos_x,_vt_,_prp,OSD_GRP_LH);

//	_t2_ = _hr_-1;
//	for(_t1_=_pos_x;_t1_<=_t2_;_t1_++){
	for(_t1_=_pos_x;_t1_<_hr_;_t1_++){
		if(_t1_>=(_pos_x+_lngth_))	WriteOSDFnt(_pth,MASTER,_t1_,_vt_,_prp,OSD_GRP_LH);
		WriteOSDFnt(_pth,MASTER,_t1_,_vb_,_prp,OSD_GRP_LH);
	}
//	_t2_ = _vb_-1;
//	for(_t1_=_pos_y;_t1_<=_t2_;_t1_++){
	for(_t1_=_pos_y;_t1_<_vb_;_t1_++){
		WriteOSDFnt(_pth,MASTER,_hl_,_t1_,_prp,OSD_GRP_LV);
		WriteOSDFnt(_pth,MASTER,_hr_,_t1_,_prp,OSD_GRP_LV);
	}

//... 荐沥吝
//	U8 _hl_, _hr_, _vt_, _vb_;
//
//	_hl_ = ((_pos_x-1)<<2) - 2;//3;						//... hl
//	_hr_ = _hl_ + ((_lngth+1)<<2) + 3;//5;					//... hr
//	_vt_ = ((_pos_y-1)*10) - 1;							//... vt
//	_vb_ = _vt_ + ((_hght+1)*10) + 2;// + 3;//			//... vb
//
//	WriteOSDLnVY(MASTER,_hl_-1,_vt_-1,OSD_LN_V_GRP,_vb_+2,_prp,0x00);		//... HL
//	WriteOSDLnVY(MASTER,_hr_,_vt_,OSD_LN_V_GRP,_vb_+1,_prp,0x00);			//... HR
//
//	WriteOSDSqrY(MASTER,_hl_,_hr_,OSD_POS_V_EVEN|(_vt_-2),OSD_POS_V_EVEN|(_vt_-1),_prp,OSD_COL_BLK);	//... VT
//	WriteOSDSqrY(MASTER,_hl_,_hr_,_vt_-1,_vt_,_prp,OSD_COL_75WHT);	//... VT
//	WriteOSDSqrY(MASTER,_hl_,_hr_,OSD_POS_V_ODD|(_vt_+0),OSD_POS_V_ODD|(_vt_+1),_prp,OSD_COL_BLK);	//... VT
//
//	WriteOSDSqrY(MASTER,_hl_,_hr_,OSD_POS_V_EVEN|(_vb_-2),OSD_POS_V_EVEN|(_vb_-1),_prp,OSD_COL_BLK);	//... VT
//	WriteOSDSqrY(MASTER,_hl_,_hr_,_vb_-1,_vb_,_prp,OSD_COL_75WHT);	//... VT
//	WriteOSDSqrY(MASTER,_hl_,_hr_,OSD_POS_V_ODD|(_vb_+0),OSD_POS_V_ODD|(_vb_+1),_prp,OSD_COL_BLK);	//... VT
//
//	WriteOSDFnt(_pth,MASTER,_pos_x-1,_pos_y-1,_prp,OSD_GRP_LT);
//	WriteOSDFnt(_pth,MASTER,_pos_x-1,_vt_+_hght+1,_prp,OSD_GRP_LB);
//	WriteOSDFnt(_pth,MASTER,_hl_+_lngth+1,_pos_y-1,_prp,OSD_GRP_RT);
//	WriteOSDFnt(_pth,MASTER,_hl_+_lngth+1,_vt_+_hght+1,_prp,OSD_GRP_RB);
//
//	WriteOSDStr(_pth,MASTER,_pos_x,_pos_y-1,_prp,_str);
}
//==================================================================================
//void SetOSDWndwFrm(U8 _osd_pos_x, U8 _osd_pos_y, U8 _lngth, U8 _hght)
//{
//	_osd_pos_x = (_osd_pos_x<<2) - 2;//3;						//... hl
//	_lngth = _osd_pos_x + (_lngth<<2) + 4;//5;					//... hr
//	_osd_pos_y = (_osd_pos_y*10) - 1;						//... vt
//	_hght = _osd_pos_y + (_hght*10) + 3;//10;					//... vb
//
//	//... frame
//	WriteOSDSqrX(MASTER,_osd_pos_x,_lngth,_osd_pos_y,_hght,OSD_MIX,OSD_COL_BLU);	//... 16x20 font 扁霖 酒丛.
//}
////==================================================================================
//void SetOSDWndwTtl(U8 _osd_pos_x, U8 _osd_pos_y, U8 _lngth)
//{
//	_osd_pos_x = (_osd_pos_x<<2) - 2;//3;						//... hl
//	_lngth = _osd_pos_x + (_lngth<<2) + 4;//3;//					//... hr
//	_osd_pos_y = (_osd_pos_y*10);//-1;								//... vt
//
//	WriteOSDSqrX(MASTER,_osd_pos_x,_lngth,_osd_pos_y,_osd_pos_y+10,OSD_MIX,OSD_COL_RED);	//... 16x20 font 扁霖 酒丛.
//}
////==================================================================================
//void SetOSDWndwBnd(U8 _osd_pos_x, U8 _osd_pos_y, U8 _lngth, U8 _hght)
//{
//	_osd_pos_x = (_osd_pos_x<<2) - 2;//3;						//... hl
//	_lngth = _osd_pos_x + (_lngth<<2) + 4;//5;					//... hr
//	_osd_pos_y = (_osd_pos_y*10) - 1;						//... vt
//	_hght = _osd_pos_y + (_hght*10) + 3;//10;					//... vb
//
//	//... boundary (3D)
//	WriteOSDLnVX(MASTER,_osd_pos_x-1,_osd_pos_y,OSD_LN_V_R,_hght+2,OSD_MIX,OSD_COL_100WHT);	//HL... 16x20 font 扁霖 酒丛.
//	WriteOSDLnVX(MASTER,_lngth,_osd_pos_y+1,OSD_LN_V_3D,_hght,OSD_MIX,0x00);		//HR 2 Type... 16x20 font 扁霖 酒丛.
//	WriteOSDSqrX(MASTER,_osd_pos_x,_lngth,_osd_pos_y,_osd_pos_y+1,OSD_MIX,OSD_COL_100WHT);				//VT... 16x20 font 扁霖 酒丛.
//	WriteOSDSqrX(MASTER,_osd_pos_x,_lngth,_hght,_hght+1,OSD_MIX,OSD_COL_25WHT);			//VB TOP... 16x20 font 扁霖 酒丛.
//	WriteOSDSqrX(MASTER,_osd_pos_x,_lngth+1,_hght+1,_hght+2,OSD_MIX,OSD_COL_BLK);		//VB BOT... 16x20 font 扁霖 酒丛.
//}
//==================================================================================
//void SetOSDWndwQuit(U8 _pth, U8 _osd_pos_x, U8 _osd_pos_y)
//{
//	U16 _boxhl_, _boxvt_;
//
//	_boxhl_ = (_osd_pos_x<<3)-2;
//	_boxvt_ = (_osd_pos_y*10)+OSD_DLY_V;
//
//	SetBox(_box_num,_boxhl_,6,_boxvt_,5);
////	SetBoxMix(_box_num,_box_num,ON);
////	SetBoxBnd(_box_num,_box_num,BOX_OBND);
////	EnableBox(_pth,_box_num,_box_num);
//	SetBoxMix(_pth,_box_num,ON);
//	SetBoxBnd(_pth,_box_num,ON);//BOX_OBND);
//	EnableBox(_pth,_box_num);//,_box_num);
//
//	WriteOSDFnt(_pth,MASTER,_osd_pos_x,_osd_pos_y,0x00,OSD_QUIT);
//}
//==================================================================================
void SetOSDWndw(U8 _pth, U8 _box_type, U8 _osd_pos_x, U8 _osd_pos_y, U8 _lngth, U8 _hght, U8 code *_str)
{
	U8 _hl_,_hr_;
	U16 _vt_,_vb_;

	if(_box_type == OSD_WNDW_TYPE_MAIN){
		_hl_ = (_osd_pos_x<<2) - 2;//3;						//... hl
		_hr_ = _hl_ + (_lngth<<2) + 3;//5;					//... hr
		_vt_ = (_osd_pos_y*10) - 1;						//... vt
		_vb_ = _vt_ + (_hght*10) + 3;//10;					//... vb
	
		//... main frame
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vt_,OSD_POS_V_EVEN|_vb_,OSD_MIX,OSD_COL_BLU);
		//... title bar
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vt_,OSD_POS_V_EVEN|(_vt_+11),OSD_MIX,OSD_COL_RED);
		//... boundary (3D)
		WriteOSDLnVX(MASTER,_hl_-1,OSD_POS_V_ODD|(_vt_-1),OSD_LN_V_R,OSD_POS_V_EVEN|(_vb_+1),OSD_MIX,OSD_COL_100WHT);	//... HL
		WriteOSDLnVX(MASTER,_hr_,OSD_POS_V_ODD|_vt_,OSD_LN_V_3D,OSD_POS_V_EVEN|_vb_,OSD_MIX,0x00);						//... HR 2 Type

		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|(_vt_-1),OSD_POS_V_EVEN|(_vt_-1),OSD_MIX,OSD_COL_100WHT);					//... VT
		WriteOSDSqrX(MASTER,_hl_,_hr_-1,OSD_POS_V_ODD|_vb_,OSD_POS_V_EVEN|_vb_,OSD_MIX,OSD_COL_25WHT);				//... VB TOP
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|(_vb_+1),OSD_POS_V_EVEN|(_vb_+1),OSD_MIX,OSD_COL_BLK);				//... VB BOT

		WriteOSDFnt(_pth,MASTER,_osd_pos_x+_lngth-1,_osd_pos_y,0x00,OSD_QUIT);
//		WriteAsicString(_pth,_osd_pos_x,_osd_pos_y,0x00,_str);
		WriteOSDStr(_pth,MASTER,_osd_pos_x,_osd_pos_y,0x00,_str);
	}
	else if(_box_type == OSD_WNDW_TYPE_BTN){
		_hl_ = (_osd_pos_x<<2) - 2;//3;						//... hl
		_hr_ = _hl_ + (_lngth<<2) + 3;//5;					//... hr
		_vt_ = (_osd_pos_y*10) - 1;						//... vt
		_vb_ = _vt_ + (_hght*10) + 2;// + 3;//					//... vb
	
		//... boundary (3D)
		WriteOSDLnVX(MASTER,_hl_-1,OSD_POS_V_ODD|(_vt_-1),OSD_LN_V_BTN,OSD_POS_V_EVEN|(_vb_+1),OSD_MIX,0x00);	//... HL
		WriteOSDLnVX(MASTER,_hr_,OSD_POS_V_ODD|_vt_,OSD_LN_V_3D,OSD_POS_V_EVEN|_vb_,OSD_MIX,0x00);						//... HR

		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|(_vt_-1),OSD_POS_V_EVEN|(_vt_-1),OSD_MIX,OSD_COL_75WHT);					//... VT
		WriteOSDSqrX(MASTER,_hl_,_hr_-1,OSD_POS_V_ODD|_vb_,OSD_POS_V_EVEN|_vb_,OSD_MIX,OSD_COL_25WHT);				//... VB TOP
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|(_vb_+1),OSD_POS_V_EVEN|(_vb_+1),OSD_MIX,OSD_COL_BLK);				//... VB BOT
	}
	else if(_box_type == OSD_WNDW_TYPE_DT_BLK){
		_hl_ = (_osd_pos_x<<2) + 1;				//... hl
		_hr_ = _hl_ + 1;								//... hr
		_vt_ = (_osd_pos_y*10) + 1;				//... vt
		_vb_ = _vt_ + 4;								//... vb
	
		//... boundary (3D)
		WriteOSDLnVX(MASTER,_hl_,OSD_POS_V_ODD|_vt_,OSD_LN_V_DT_BLK_L,OSD_POS_V_EVEN|_vb_,0x00,OSD_COL_YLW);			//... HL
		WriteOSDLnVX(MASTER,_hr_,OSD_POS_V_ODD|_vt_,OSD_LN_V_DT_BLK_R,OSD_POS_V_EVEN|_vb_,0x00,OSD_COL_YLW);			//... HR

		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vt_,OSD_POS_V_EVEN|_vt_,0x00,OSD_COL_YLW);					//... VT
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vb_,OSD_POS_V_EVEN|_vb_,0x00,OSD_COL_YLW);				//... VB TOP
	}
	else if(_box_type == OSD_WNDW_TYPE_DT_CHK){
		_hl_ = (_osd_pos_x<<2) + 1;				//... hl
		_hr_ = _hl_ + 1;								//... hr
		_vt_ = (_osd_pos_y*10) + 1;				//... vt
		_vb_ = _vt_ + 4;								//... vb
	
		//... boundary (3D)
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vt_,OSD_POS_V_EVEN|_vb_,0x00,OSD_COL_YLW);
	}
	else if(_box_type == OSD_WNDW_TYPE_DT_MIX){
		_hl_ = (_osd_pos_x<<2) + 1;				//... hl
		_hr_ = _hl_ + 1;								//... hr
		_vt_ = (_osd_pos_y*10) + 1;				//... vt
		_vb_ = _vt_ + 4;								//... vb
	
		//... boundary (3D)
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vt_,OSD_POS_V_EVEN|_vb_,OSD_MIX,OSD_COL_OCN);
	}
	else if(_box_type == OSD_WNDW_TYPE_DECO){
		_hl_ = (_osd_pos_x<<2) - 3;						//... hl
		_hr_ = _hl_ + (_lngth<<2) + 4;					//... hr
		_vt_ = (_osd_pos_y*10) - 5;						//... vt
		_vb_ = _vt_ + (_hght*10) + 9;//10;					//... vb
	
		//... main frame
		WriteOSDSqrX(MASTER,_hl_,_hr_,OSD_POS_V_ODD|_vt_,OSD_POS_V_EVEN|_vb_,OSD_MIX,OSD_COL_ORNG);
	}
//	else if(_box_type == OSD_CLR){
//	}
}
//==================================================================================
//U8	GetOSDAdo(U8 _flg_new)//, U8 _flg_old)
//{
//	U16 _wt1_, _wt2_;
//	
////	TR0 = 1;	//... start timer0
//	
//	_wt2_ = ((tbl_osd_irq_spkr[OSD_TBL_V_SZ_MSB]<<8)+tbl_osd_irq_spkr[OSD_TBL_V_SZ_LSB])>>1;
//	
//	if(b_cmn_jp_vdo == VDO_NTSC)	_wt1_ = OSD_SPKR01_POS_Y;
//	else	_wt1_ = OSD_SPKR01_POS_Y+(_wt2_<<1);		//... 10 line x 2
//
////	if(BitClear(_flg_new,BIT0))
////		WriteOSDBmpX(MASTER,OSD_SPKR02_POS_X,_wt1_,0x00,0x01,tbl_osd_irq_spkr);
////	else
////		WriteOSDBmpX(MASTER,OSD_SPKR02_POS_X,_wt1_,0x00,0x00,tbl_osd_irq_spkr);
////
////	if(BitClear(_flg_new,BIT1))
////		WriteOSDBmpX(MASTER,OSD_SPKR13_POS_X,_wt1_,0x00,0x02,tbl_osd_irq_spkr);
////	else
////		WriteOSDBmpX(MASTER,OSD_SPKR13_POS_X,_wt1_,0x00,0x03,tbl_osd_irq_spkr);
////
////	if(BitClear(_flg_new,BIT2))
////		WriteOSDBmpX(MASTER,OSD_SPKR02_POS_X,_wt1_+_wt2_,0x00,0x01,tbl_osd_irq_spkr);
////	else
////		WriteOSDBmpX(MASTER,OSD_SPKR02_POS_X,_wt1_+_wt2_,0x00,0x00,tbl_osd_irq_spkr);
//
//	if(BitClear(_flg_new,BIT3))
//		WriteOSDBmpX(MASTER,OSD_SPKR13_POS_X,_wt1_+_wt2_,0x00,0x02,tbl_osd_irq_spkr);
//	else
//		WriteOSDBmpX(MASTER,OSD_SPKR13_POS_X,_wt1_+_wt2_,0x00,0x03,tbl_osd_irq_spkr);
//
////	TR0 = 0;	//... stop timer0
//
//	return	_flg_new;
//}
////==================================================================================

⌨️ 快捷键说明

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