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

📄 wndw_ado_gain.c

📁 一个比较好用的TW2835音视频芯片开发板的程序,
💻 C
字号:
#include "hdr.h"

#if defined(__WTH_ADO__)
//==================================================================================
//						Audio Gain window function description
//==================================================================================
//void	RunWndwAdoGnOSDIgChArw(U8 _pth, U8 _osd_pos_x, U8 _osd_pos_y)
//{
//	RunMseOnOSDH(_pth,_osd_pos_x,_osd_pos_y,WNDW_ADO_GN_IG_CH_DEC_X,WNDW_ADO_GN_IG_CH_INC_X,WNDW_ADO_GN_IG_CH_NUM_Y,MSE_ON_OSD_IG_CH);
//}
//==================================================================================
//void	RunWndwAdoGnOSDIgArw(U8 _pth, U8 _osd_pos_x, U8 _osd_pos_y)
//{
////	RunMseOnOSDH(_pth,_osd_pos_x,_osd_pos_y,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y,MSE_ON_OSD_IG_CH1);
////	RunMseOnOSDH(_pth,_osd_pos_x,_osd_pos_y,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y+1,MSE_ON_OSD_IG_CH2);
////	RunMseOnOSDH(_pth,_osd_pos_x,_osd_pos_y,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y+2,MSE_ON_OSD_IG_CH3);
////	RunMseOnOSDH(_pth,_osd_pos_x,_osd_pos_y,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y+3,MSE_ON_OSD_IG_CH4);
//	RunMseOnOSDH(_pth,_osd_pos_x,_osd_pos_y,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y,MSE_ON_OSD_IG);
//}
//==================================================================================
//==================================================================================
void	SetWndwAdoGnOSDIgChNum(U8 _pth)//, U8 _index_y, U8 _dat)
{
	U8 _t1_, _t2_;
	
	_t2_ = ConvDec2Bcd(wndw_pop_crnt_ch);
	
	_t1_ = (_t2_&0xf0)>>4;
	if(_t1_ == 0)	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_IG_CH_NUM_X-1,WNDW_ADO_GN_IG_CH_NUM_Y,OSD_CLR,0x00);
	else	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_IG_CH_NUM_X-1,WNDW_ADO_GN_IG_CH_NUM_Y,0x00,_t1_+0x10);
	_t1_ = _t2_&0x0f;
	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_IG_CH_NUM_X,WNDW_ADO_GN_IG_CH_NUM_Y,0x00,_t1_+0x10);
}
//==================================================================================
void	SetWndwAdoGnOSDIgNum(U8 _pth, U8 _dat)
{
	U8 _t1_;
	
	_dat = ConvDec2Bcd(_dat);
	
	_t1_ = (_dat&0xf0)>>4;
	if(_t1_ == 0)	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_IG_NUM_X-1,WNDW_ADO_GN_IG_NUM_Y,OSD_CLR,0x00);
	else	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_IG_NUM_X-1,WNDW_ADO_GN_IG_NUM_Y,0x00,_t1_+0x10);
	_t1_ = _dat&0x0f;
	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_IG_NUM_X,WNDW_ADO_GN_IG_NUM_Y,0x00,_t1_+0x10);
}
//==================================================================================
void	SetWndwAdoGnOSDIg(U8 _pth)
{
	U8 _t1_;//, _t2_;

	SetOSDGrp(_pth,WNDW_ADO_GN_TTL_X-1,WNDW_ADO_GN_IG_CH_Y,16,2,0x00,str_wndw_grp_in_gn);

	WriteOSDStr(_pth,MASTER,WNDW_ADO_GN_TTL_X,WNDW_ADO_GN_IG_CH_Y,0x00,str_wndw_cmn_ch);
	WriteOSDStr(_pth,MASTER,WNDW_ADO_GN_TTL_X,WNDW_ADO_GN_IG_NUM_Y,0x00,str_wndw_ado_gn);

//	RunWndwAdoGnOSDIgChArw(_pth,0,0);
	RunMseOnOSDH(_pth,0,0,WNDW_ADO_GN_IG_CH_DEC_X,WNDW_ADO_GN_IG_CH_INC_X,WNDW_ADO_GN_IG_CH_NUM_Y,MSE_ON_OSD_IG_CH);
//	RunWndwAdoGnOSDIgArw(_pth,0,0);
	RunMseOnOSDH(_pth,0,0,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y,MSE_ON_OSD_IG);

//	for(_t2_=0;_t2_<cmn_max_ch;_t2_++){
		SetWndwAdoGnOSDIgChNum(_pth);
		_t1_ = GetWndwAdoGnIg();//WNDW_ADO_GN_IG_NUM_Y+_t2_);
		SetWndwAdoGnOSDIgNum(_pth,_t1_);
//	}
}
//==================================================================================
void	SetWndwAdoGnOSDOgNum(U8 _pth, U8 _dat)
{
	U8 _t1_;
	
	_dat = ConvDec2Bcd(_dat);
	_t1_ = (_dat&0xf0)>>4;
	if(_t1_ == 0)	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_OG_NUM_X-1,WNDW_ADO_GN_OG_NUM_Y,OSD_CLR,0x00);
	else	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_OG_NUM_X-1,WNDW_ADO_GN_OG_NUM_Y,0x00,0x10+_t1_);
	_t1_ = _dat&0x0f;
	WriteOSDFnt(_pth,MASTER,WNDW_ADO_GN_OG_NUM_X,WNDW_ADO_GN_OG_NUM_Y,0x00,0x10+_t1_);
}
//==================================================================================
void	SetWndwAdoGnOSDOg(U8 _pth)
{
	U8 _t1_;

	SetOSDGrp(_pth,WNDW_ADO_GN_POS_X+1,WNDW_ADO_GN_OG_NUM_Y,16,1,0x00,str_wndw_grp_out_gn);
	WriteOSDStr(_pth,MASTER,WNDW_ADO_GN_TTL_X,WNDW_ADO_GN_OG_NUM_Y,0x00,str_wndw_ado_gn);

	RunMseOnOSDH(_pth,0,0,WNDW_ADO_GN_OG_DEC_X,WNDW_ADO_GN_OG_INC_X,WNDW_ADO_GN_OG_NUM_Y,MSE_ON_OSD_OG);

	_t1_ = GetAsicVar8Type(MASTER,DVC_PG0,0x70,0x44);
	SetWndwAdoGnOSDOgNum(_pth,_t1_);
}
//==================================================================================
U8	GetWndwAdoGnIg(void)//U8 _index_y)
{
	U8 _t1_;

//	if(_index_y == WNDW_ADO_GN_IG_NUM_Y)
//		_t1_ = GetAsicVar8Type(MASTER,DVC_PG0,0x61,0x44);
//	else if(_index_y == WNDW_ADO_GN_IG_NUM_Y+1)
//		_t1_ = GetAsicVar8Type(MASTER,DVC_PG0,0x60,0x04);
//	else if(_index_y == WNDW_ADO_GN_IG_NUM_Y+2)
//		_t1_ = GetAsicVar8Type(MASTER,DVC_PG0,0x60,0x44);
//	else if(_index_y == WNDW_ADO_GN_IG_NUM_Y+3)
//		_t1_ = GetAsicVar8Type(MASTER,DVC_PG0,0x61,0x04);
	if(wndw_crnt_ch == 0)	_t1_ = GetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x60,0x04);			//... AIGAIN0
	else if(wndw_crnt_ch == 1)	_t1_ = GetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x60,0x44);		//... AIGAIN1
	else if(wndw_crnt_ch == 2)	_t1_ = GetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x61,0x04);		//... AIGAIN2
	else if(wndw_crnt_ch == 3)	_t1_ = GetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x61,0x44);		//... AIGAIN3

	return	_t1_;
}
//==================================================================================
void	SetWndwAdoGnIg(U8 _dat)
{
//	if(_index_y == WNDW_ADO_GN_IG_NUM_Y)
//		SetAsicVar8Type(MASTER,DVC_PG0,0x61,0x44,_dat);
//	else if(_index_y == WNDW_ADO_GN_IG_NUM_Y+1)
//		SetAsicVar8Type(MASTER,DVC_PG0,0x60,0x04,_dat);
//	else if(_index_y == WNDW_ADO_GN_IG_NUM_Y+2)
//		SetAsicVar8Type(MASTER,DVC_PG0,0x60,0x44,_dat);
//	else if(_index_y == WNDW_ADO_GN_IG_NUM_Y+3)
//		SetAsicVar8Type(MASTER,DVC_PG0,0x61,0x04,_dat);
	if(wndw_crnt_ch == 0)	SetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x60,0x04,_dat);			//... AIGAIN0
	else if(wndw_crnt_ch == 1)	SetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x60,0x44,_dat);		//... AIGAIN1
	else if(wndw_crnt_ch == 2)	SetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x61,0x04,_dat);		//... AIGAIN2
	else if(wndw_crnt_ch == 3)	SetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x61,0x44,_dat);		//... AIGAIN3
}
//==================================================================================
//==================================================================================
void	CreateWndwAdoGn(U8 _pth)
{
//	b_status_win = ON;
	b_cmn_wndw_mn = ON;

////	ClearOSD(X_PATH,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H);
////	SetOSDWndw(X_PATH,OSD_WNDW_TYPE_MAIN|BOX_WNDW_FRM,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,
////		WNDW_ADO_GN_L,WNDW_ADO_GN_H,str_win_ttl_ado_gain);
	WriteOSDClr(_pth,MASTER,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H);
	SetOSDWndw(_pth,OSD_WNDW_TYPE_MAIN,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H,str_wndw_ttl_ado_gn);

//	if(BitSet(_pth,PTH_X)){
//		WriteOSDClrX(MASTER,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H);
////		SetOSDWndw(X_PATH,OSD_WNDW_TYPE_MAIN|BOX_WNDW_FRM,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,
////			WNDW_ADO_GN_L,WNDW_ADO_GN_H,str_win_ttl_ado_gain);
//	}
//	else{
//		WriteOSDClrY(MASTER,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H);
//	}

	mse_flg_on_osd = 0x001f;

	SetWndwAdoGnOSDIg(_pth);
	SetWndwAdoGnOSDOg(_pth);
}
//==================================================================================
//==================================================================================
void	RunWndwAdoGnDec(U8 _pth, U8 _osd_pos_y)
{
	U8 _rdat_;

	if(_osd_pos_y == WNDW_ADO_GN_IG_CH_NUM_Y){
		if(wndw_pop_crnt_ch > 0)	wndw_pop_crnt_ch--;
		else	wndw_pop_crnt_ch = (cmn_max_ch-1);
		SetCrntDvcCh(wndw_pop_crnt_ch,&wndw_crnt_dvc,&wndw_crnt_ch);

		SetWndwAdoGnOSDIgChNum(_pth);
		_rdat_ = GetWndwAdoGnIg();//WNDW_ADO_GN_IG_NUM_Y+_t2_);
		SetWndwAdoGnOSDIgNum(_pth,_rdat_);
	}
	else if(_osd_pos_y == WNDW_ADO_GN_OG_NUM_Y){
		_rdat_ = GetAsicVar8Type(MASTER,DVC_PG0,0x70,0x44);
		if(_rdat_ > 0)	_rdat_--;
//		else	_rdat_ = 15;
		SetAsicVar8Type(MASTER,DVC_PG0,0x70,0x44,_rdat_);
		SetWndwAdoGnOSDOgNum(_pth,_rdat_);
	}
	else{
		_rdat_ = GetWndwAdoGnIg();//_osd_pos_y);
		if(_rdat_ > 0)	_rdat_--;
//				else	_rdat_ = 15;
		SetWndwAdoGnIg(_rdat_);
		SetWndwAdoGnOSDIgNum(_pth,_rdat_);
	}
}
//==================================================================================
void	RunWndwAdoGnInc(U8 _pth, U8 _osd_pos_y)
{
	U8 _rdat_;

	if(_osd_pos_y == WNDW_ADO_GN_IG_CH_NUM_Y){
		if(wndw_pop_crnt_ch < (cmn_max_ch-1))	wndw_pop_crnt_ch++;
		else	wndw_pop_crnt_ch = 0;
		SetCrntDvcCh(wndw_pop_crnt_ch,&wndw_crnt_dvc,&wndw_crnt_ch);

		SetWndwAdoGnOSDIgChNum(_pth);
		_rdat_ = GetWndwAdoGnIg();//WNDW_ADO_GN_IG_NUM_Y+_t2_);
		SetWndwAdoGnOSDIgNum(_pth,_rdat_);
	}
	else if(_osd_pos_y == WNDW_ADO_GN_OG_NUM_Y){
		_rdat_ = GetAsicVar8Type(MASTER,DVC_PG0,0x70,0x44);
		if(_rdat_ < 15)	_rdat_++;
//		else	_rdat_ = 0;
		SetAsicVar8Type(MASTER,DVC_PG0,0x70,0x44,_rdat_);
		SetWndwAdoGnOSDOgNum(_pth,_rdat_);
	}
	else{
		_rdat_ = GetWndwAdoGnIg();//_osd_pos_y);
		if(_rdat_ < 15)	_rdat_++;
//				else	_rdat_ = 0;
		SetWndwAdoGnIg(_rdat_);
		SetWndwAdoGnOSDIgNum(_pth,_rdat_);
	}
}
//==================================================================================
void	RunWndwAdoGn(U8 _pth)
{
	U8	_osd_pos_x_, _osd_pos_y_;

	_osd_pos_x_ = GetMseOSDX(reg_crsr_pos_x);
	_osd_pos_y_ = GetMseOSDY(reg_crsr_pos_y);

//	RunWndwAdoGnOSDIgArw(_pth,_osd_pos_x_,_osd_pos_y_);
	RunMseOnOSDH(_pth,_osd_pos_x_,_osd_pos_y_,WNDW_ADO_GN_IG_CH_DEC_X,WNDW_ADO_GN_IG_CH_INC_X,WNDW_ADO_GN_IG_CH_NUM_Y,MSE_ON_OSD_IG_CH);
	RunMseOnOSDH(_pth,_osd_pos_x_,_osd_pos_y_,WNDW_ADO_GN_IG_DEC_X,WNDW_ADO_GN_IG_INC_X,WNDW_ADO_GN_IG_NUM_Y,MSE_ON_OSD_IG);
	RunMseOnOSDH(_pth,_osd_pos_x_,_osd_pos_y_,WNDW_ADO_GN_OG_DEC_X,WNDW_ADO_GN_OG_INC_X,WNDW_ADO_GN_OG_NUM_Y,MSE_ON_OSD_OG);
	
	if(b_mse_btn_dwn_lb == 1){
		b_mse_btn_dwn_lb = 0;

		if((_osd_pos_x_ == WNDW_ADO_GN_CLOS_X)&&(_osd_pos_y_ == WNDW_ADO_GN_CLOS_Y)){
//			SetBoxBtnStrPush(BOX_WNDW_QUIT);
		}
	}
	if(b_mse_btn_dwn_rb == 1)	b_mse_btn_dwn_rb = 0;
	if(b_mse_clk_lb == 1){
		b_mse_clk_lb = 0;

		if((_osd_pos_x_ == WNDW_ADO_GN_CLOS_X)&&(_osd_pos_y_ == WNDW_ADO_GN_CLOS_Y)){
//			SetBoxBtnStrPull(BOX_WNDW_QUIT);

//			ClearOSD(X_PATH,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H);
			WriteOSDClr(_pth,MASTER,WNDW_ADO_GN_POS_X,WNDW_ADO_GN_POS_Y,WNDW_ADO_GN_L,WNDW_ADO_GN_H);
			WriteOSDClrX(MASTER,WNDW_ADO_GN_POS_X-1,WNDW_ADO_GN_POS_Y-1,WNDW_ADO_GN_L+2,WNDW_ADO_GN_H+2);
//			DisableBox(X_PATH,BOX_WNDW_FRM-2,BOX_WNDW_FRM);	// decoration window, main window

//... should be active later
			SetOSDNoMn();

//			b_status_win = OFF;
//			global_menu_crnt_pos = 30;
			b_cmn_wndw_mn = OFF;
			wndw_mn_pos_crnt = 30;
		}
		else{
			if(_osd_pos_y_ == WNDW_ADO_GN_IG_CH_NUM_Y){
				if(_osd_pos_x_ == WNDW_ADO_GN_IG_CH_DEC_X)	RunWndwAdoGnDec(_pth,_osd_pos_y_);
				else if(_osd_pos_x_ == WNDW_ADO_GN_IG_CH_INC_X)	RunWndwAdoGnInc(_pth,_osd_pos_y_);
			}
			else if(_osd_pos_y_ == WNDW_ADO_GN_IG_NUM_Y){
				if(_osd_pos_x_ == WNDW_ADO_GN_IG_DEC_X)	RunWndwAdoGnDec(_pth,_osd_pos_y_);
				else if(_osd_pos_x_ == WNDW_ADO_GN_IG_INC_X)	RunWndwAdoGnInc(_pth,_osd_pos_y_);
			}
			else if(_osd_pos_y_ == WNDW_ADO_GN_OG_NUM_Y){
				if(_osd_pos_x_ == WNDW_ADO_GN_OG_DEC_X)	RunWndwAdoGnDec(_pth,_osd_pos_y_);
				else if(_osd_pos_x_ == WNDW_ADO_GN_OG_INC_X)	RunWndwAdoGnInc(_pth,_osd_pos_y_);
			}
		}
	}
	if(b_mse_clk_rb == 1)	b_mse_clk_rb = 0;
	if(b_mse_pshng_clk_lb == 1){
		b_mse_pshng_clk_lb = 0;

		if(_osd_pos_y_ == WNDW_ADO_GN_IG_CH_NUM_Y){
			if(_osd_pos_x_ == WNDW_ADO_GN_IG_CH_DEC_X)	RunWndwAdoGnDec(_pth,_osd_pos_y_);
			else if(_osd_pos_x_ == WNDW_ADO_GN_IG_CH_INC_X)	RunWndwAdoGnInc(_pth,_osd_pos_y_);
		}
		else if(_osd_pos_y_ == WNDW_ADO_GN_IG_NUM_Y){
			if(_osd_pos_x_ == WNDW_ADO_GN_IG_DEC_X)	RunWndwAdoGnDec(_pth,_osd_pos_y_);
			else if(_osd_pos_x_ == WNDW_ADO_GN_IG_INC_X)	RunWndwAdoGnInc(_pth,_osd_pos_y_);
		}
		else if(_osd_pos_y_ == WNDW_ADO_GN_OG_NUM_Y){
			if(_osd_pos_x_ == WNDW_ADO_GN_OG_DEC_X)	RunWndwAdoGnDec(_pth,_osd_pos_y_);
			else if(_osd_pos_x_ == WNDW_ADO_GN_OG_INC_X)	RunWndwAdoGnInc(_pth,_osd_pos_y_);
		}
	}
	if(b_mse_pshng_clk_rb == 1)	b_mse_pshng_clk_rb = 0;
}
//==================================================================================

#endif

⌨️ 快捷键说明

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