📄 wndw_ds_src.c
字号:
#include "hdr.h"
//==================================================================================
// Display wndwdow function description
//==================================================================================
#if defined(__16CH__)
U8 GetWndwDsSrPbOfst(void)
{
U8 _t1_;
if(cmn_rc_md == RC_MD_480_FPS){
if(wndw_crnt_dvc == MASTER) _t1_ = 0;
else if(wndw_crnt_dvc == SLAVE1) _t1_ = 4;
else if(wndw_crnt_dvc == SLAVE2) _t1_ = 8;
else if(wndw_crnt_dvc == SLAVE3) _t1_ = 12;
}
else if(cmn_rc_md == RC_MD_240_FPS){
if(wndw_crnt_dvc < SLAVE2) _t1_ = 0;
else _t1_ = 8;
}
else if(cmn_rc_md == RC_MD_120_FPS) _t1_ = 0;
return _t1_;
}
#endif
//==================================================================================
//==================================================================================
void RunWndwDsSrOSDArwWn(U8 _pth, U8 _osd_pos_x, U8 _osd_pos_y)
{
U8 _t1_;
if(wndw_ds_sc_fmt == SC_FMT_8CH) _t1_ = OSD_MIX;
else _t1_ = 0x00;
RunMseOnOSDH(_pth|_t1_,_osd_pos_x,_osd_pos_y,WNDW_DS_SR_DEC_WN_X,WNDW_DS_SR_INC_WN_X,WNDW_DS_SR_NUM_WN_Y,MSE_ON_OSD_DS_SR_WN);
}
//==================================================================================
void RunWndwDsSrOSDArwLv(U8 _pth, U8 _osd_pos_x, U8 _osd_pos_y)
{
U8 _t1_;
// if((b_ch_src == CH_SRC_PB)||(wndw_ds_sc_fmt == SC_FMT_8CH)) _t1_ = OSD_MIX;
if((GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2))||(wndw_ds_sc_fmt == SC_FMT_8CH)) //... (PB_PATH_EN=1)||(8ch)
_t1_ = OSD_MIX;
else _t1_ = 0x00;
RunMseOnOSDH(_pth|_t1_,_osd_pos_x,_osd_pos_y,WNDW_DS_SR_DEC_LV_X,WNDW_DS_SR_INC_LV_X,WNDW_DS_SR_NUM_LV_Y,MSE_ON_OSD_DS_SR_LV);
}
//==================================================================================
void RunWndwDsSrOSDArwPb(U8 _pth, U8 _osd_pos_x, U8 _osd_pos_y)
{
U8 _t1_;
/*
#if defined(__4CH__)
if((b_ch_src == CH_SRC_LV)||(wndw_ds_sc_fmt == SC_FMT_8CH)||(GLBL_PB_MD == PB_MD_FLTNG)) _t1_ = OSD_MIX;
#elif defined(__16CH__)
if((b_ch_src == CH_SRC_LV)||(wndw_ds_sc_fmt == SC_FMT_8CH)) _t1_ = OSD_MIX;
#endif
// */
// if((b_ch_src == CH_SRC_LV)||(wndw_ds_sc_fmt == SC_FMT_8CH)) _t1_ = OSD_MIX;
if((!(GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2)))||(wndw_ds_sc_fmt == SC_FMT_8CH)) //... (PB_PATH_EN=0)||(8ch)
_t1_ = OSD_MIX;
else _t1_ = 0x00;
RunMseOnOSDH(_pth|_t1_,_osd_pos_x,_osd_pos_y,WNDW_DS_SR_DEC_PB_X,WNDW_DS_SR_INC_PB_X,WNDW_DS_SR_NUM_PB_Y,MSE_ON_OSD_DS_SR_PB);
}
//==================================================================================
//==================================================================================
void SetWndwDsSrOSDWn(U8 _pth)
{
U8 _t1_, _t2_;
if(wndw_ds_sc_fmt == SC_FMT_8CH) _t2_ = OSD_MIX;
else _t2_ = 0x00;
WriteOSDStr(_pth,MASTER,WNDW_DS_SR_RDO_X,WNDW_DS_SR_NUM_WN_Y,_t2_,str_wndw_ch_wn);
#if defined(__16CH__)
if(wndw_pop_crnt_ch < 10) _t1_ = OSD_CLR;
else _t1_ = _t2_;
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_WN_X-1,WNDW_DS_SR_NUM_WN_Y,_t1_,0x11);
#endif
if(wndw_pop_crnt_ch > 9) _t1_ = wndw_pop_crnt_ch+6; //... +6 -> +0x10 -10;
else _t1_ = wndw_pop_crnt_ch+0x10;
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_WN_X,WNDW_DS_SR_NUM_WN_Y,_t2_,_t1_);
}
//==================================================================================
//==================================================================================
//U8 GetWndwDsSrLv(void)
//{
// U8 _t1_;
//
// _t1_ = ReadAsicByte(wndw_crnt_dvc,DVC_PG0,0x80+0x10*wndw_crnt_ch);
//
// return (_t1_&0x03);
//}
////==================================================================================
//void SetWndwDsSrLv(U8 _data)
//{
//
//// SetDsSrFuncMode(_pth,wndw_crnt_dvc,wndw_crnt_ch,NULL,CH_FUNC_STRB);
//// SetAsicFlgType(wndw_crnt_dvc,DVC_PG0,0x22+0x40*wndw_crnt_ch,0x03,_data);
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),0x30,0x10); //... FUNC_MODE=1
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG0,0x80+0x10*wndw_crnt_ch,0xc0,_data<<6);
//
//// SetDsSrFuncMode(_pth,wndw_crnt_dvc,wndw_crnt_ch,NULL,CH_FUNC_NRML);
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),0x30,0x00); //... FUNC_MODE=0
//}
//==================================================================================
void SetWndwDsSrOSDLvNum(U8 _pth, U8 _data)
{
U8 _t1_;
#if defined(__16CH__)
U8 _t2_;
#endif
// if((b_ch_src == CH_SRC_PB)||(wndw_ds_sc_fmt == SC_FMT_8CH)) _t1_ = OSD_MIX;
// else _t1_ = 0x00;
if((GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2))||(wndw_ds_sc_fmt == SC_FMT_8CH)) //... (PB_PATH_EN=1)||(8ch)
_t1_ = OSD_MIX;
else _t1_ = 0x00;
#if defined(__4CH__)
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_LV_X,WNDW_DS_SR_NUM_LV_Y,_t1_,_data+0x10);
#elif defined(__16CH__)
_data += (wndw_pop_crnt_ch&0x0c);
if(_data > 9) _t2_ = _data+6; //... +6 -> +0x10 -10;
else _t2_ = _data+0x10;
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_LV_X,WNDW_DS_SR_NUM_LV_Y,_t1_,_t2_);
if(_data < 10) _t1_ = OSD_CLR;
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_LV_X-1,WNDW_DS_SR_NUM_LV_Y,_t1_,0x11);
#endif
}
//==================================================================================
void SetWndwDsSrOSDLv(U8 _pth)
{
U8 _t1_;//, _t2_;
WriteOSDStr(_pth,MASTER,WNDW_DS_SR_RDO_X+2,WNDW_DS_SR_RDO_LV_Y,0x00,str_wndw_ch_live_vid);
if(wndw_ds_sc_fmt == SC_FMT_8CH){
if(b_ch_src == CH_SRC_LV) _t1_ = OSD_RDO_CHK;
else _t1_ = OSD_RDO_BLK;
}
else{
// if(b_ch_src == CH_SRC_LV){
if(!(GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2))) //... PB_PATH_EN=0
_t1_ = OSD_RDO_CHK;
else _t1_ = OSD_RDO_BLK;
}
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_RDO_X,WNDW_DS_SR_RDO_LV_Y,0x00,_t1_);
// _t1_ = GetWndwDsSrLv();
_t1_ = GetAsicVar8Type(wndw_crnt_dvc,DVC_PG0,0x80+0x10*wndw_crnt_ch,0x62);
SetWndwDsSrOSDLvNum(_pth,_t1_);
}
//==================================================================================
//==================================================================================
//U8 GetWndwDsSrPb(void)
//{
// U8 _t1_;
//
//// if(b_jp_4pb == ON){
//// _t1_ = ReadAsicByte(MASTER,DVC_PG0,0x39);
//// _t1_ &= (0x03<<(wndw_crnt_ch<<1));
//// _t1_ >>= (wndw_crnt_ch<<1);
//// }
//// else{
// _t1_ = ReadAsicByte(wndw_crnt_dvc,DVC_PG1,0x16+(wndw_crnt_ch<<3));
// _t1_ &= 0x0f;
//// }
//
// return _t1_;
//}
////==================================================================================
//void SetWndwDsSrPb(U8 _data)
//{
// U8 _rdat_;
//
//// if(b_jp_4pb == ON){
//// _rdat_ = ReadAsicByte(MASTER,DVC_PG0,0x39);
//// _rdat_ &= ~(0x03<<(wndw_crnt_ch<<1));
//// _rdat_ |= (_data<<(wndw_crnt_ch<<1));
//// WriteAsicByte(MASTER,DVC_PG0,0x39,_rdat_);
//// }
//// else{
// _rdat_ = ReadAsicByte(wndw_crnt_dvc,DVC_PG1,0x16+(wndw_crnt_ch<<3));
// WriteAsicByte(wndw_crnt_dvc,DVC_PG1,0x16+(wndw_crnt_ch<<3),(_rdat_ & ~0x0f)|_data);
//// }
//}
//==================================================================================
void SetWndwDsSrOSDPbNum(U8 _pth, U8 _data)
{
U8 _t1_, _t2_;
// if((b_ch_src == CH_SRC_LV)||(wndw_ds_sc_fmt == SC_FMT_8CH)) _t1_ = OSD_MIX;
// else _t1_ = 0x00;
if((!(GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2)))||(wndw_ds_sc_fmt == SC_FMT_8CH)) //... (PB_PATH_EN=0)||(8ch)
_t1_ = OSD_MIX;
else _t1_ = 0x00;
#if defined(__16CH__)
if(_data < 10) _t2_ = OSD_CLR;
else _t2_ = _t1_;
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_PB_X-1,WNDW_DS_SR_NUM_PB_Y,_t2_,0x11);
#endif
if(_data > 9) _t2_ = _data+6; //... +6 -> +0x10 -10;
else _t2_ = _data+0x10;
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_NUM_PB_X,WNDW_DS_SR_NUM_PB_Y,_t1_,_t2_);
}
//==================================================================================
void SetWndwDsSrOSDPb(U8 _pth)
{
U8 _t1_;//, _t2_;
///*
//#if defined(__4CH__)
// if(GLBL_PB_MD == PB_MD_FLTNG) _t2_ = OSD_MIX;
// else _t2_ = 0x00;
//#elif defined(__16CH__)
// _t2_ = 0x00;
//#endif
//// */
// _t2_ = 0x00;
WriteOSDStr(_pth,MASTER,WNDW_DS_SR_RDO_X+2,WNDW_DS_SR_RDO_PB_Y,0x00,str_wndw_ch_pb);
if(wndw_ds_sc_fmt == SC_FMT_8CH){
if(b_ch_src == CH_SRC_PB) _t1_ = OSD_RDO_CHK;
else _t1_ = OSD_RDO_BLK;
}
else{
if(GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2)) //... PB_PATH_EN=1
_t1_ = OSD_RDO_CHK;
else _t1_ = OSD_RDO_BLK;
}
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_RDO_X,WNDW_DS_SR_RDO_PB_Y,0x00,_t1_);
// _t1_ = GetWndwDsSrPb();
_t1_ = GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x16+(wndw_crnt_ch<<3),0x0f);
SetWndwDsSrOSDPbNum(_pth,_t1_);
}
//==================================================================================
//==================================================================================
//U8 GetWndwDsSrEnh(void)
//{
// return GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x11+(wndw_crnt_ch<<3),BIT3);
//}
////==================================================================================
//void SetWndwDsSrEnh(U8 _tgl)
//{
//// SetDsSrCtrl(_pth,wndw_crnt_dvc,wndw_crnt_ch,BIT3,_tgl);
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x11+(wndw_crnt_ch<<3),BIT3,_tgl<<3);
//}
//==================================================================================
void SetWndwDsSrOSDEnhChk(U8 _pth)
{
U8 _t1_;
_t1_ = GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x11+(wndw_crnt_ch<<3),BIT3);
if(_t1_ == OFF) _t1_ = OSD_CHK_BOX_BLK;
else _t1_ = OSD_CHK_BOX_CHK;
if(wndw_ds_sc_fmt == SC_FMT_8CH)
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_CHK_X,WNDW_DS_SR_CHK_Y,OSD_MIX,_t1_);
else
WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_CHK_X,WNDW_DS_SR_CHK_Y,0x00,_t1_);
}
//==================================================================================
void SetWndwDsSrOSDEnh(U8 _pth)
{
U8 _t1_;//, _t2_;
if(wndw_ds_sc_fmt == SC_FMT_8CH) _t1_ = OSD_MIX;
else _t1_ = 0x00;
WriteOSDStr(_pth,MASTER,WNDW_DS_SR_CHK_X+2,WNDW_DS_SR_CHK_Y,_t1_,str_wndw_ch_en_enh);
//// _t1_ = GetWndwDsSrEnh();
// _t1_ = GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x11+(wndw_crnt_ch<<3),BIT3)^BIT3;
// if(_t1_ == OFF) _t1_ = OSD_CHK_BOX_BLK;
// else _t1_ = OSD_CHK_BOX_CHK;
// WriteOSDFnt(_pth,MASTER,WNDW_DS_SR_CHK_X,WNDW_DS_SR_CHK_Y,_t2_,_t1_);
SetWndwDsSrOSDEnhChk(_pth);
}
//==================================================================================
//==================================================================================
//void SelWndwDsSrSrc(void)
//{
// U8 _t1_;
//
// if(wndw_ds_sc_fmt == SC_FMT_8CH){
// if(b_ch_src == CH_SRC_PB){
// SetAsicFlgType(MASTER,DVC_PG1,0x01,0x03,0x02); //... STRB_FLD=2
//// SetAsicFlgType(MASTER,DVC_PG1,0x16,BIT7,BIT7); //... PB_AUTO_EN=1
// }
// else{
// SetAsicFlgType(MASTER,DVC_PG1,0x01,0x03,0x00); //... STRB_FLD=0
//// SetAsicFlgType(MASTER,DVC_PG1,0x16,BIT7,0x00); //... PB_AUTO_EN=0
// }
// }
// else{
// // SetDsSrFuncMode(_pth,wndw_crnt_dvc,wndw_crnt_ch,NULL,CH_FUNC_STRB);
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),0x30,0x10); //... FUNC_MODE=1
// WaitChStrbDoneX(BIT0<<wndw_crnt_ch);
//
// if(b_ch_src == CH_SRC_LV) _t1_ = 0x00;
// else _t1_ = BIT2;//BIT0<<wndw_crnt_ch;
// // SetAsicFlgType(wndw_crnt_dvc,DVC_PG0,0x38,BIT0<<wndw_crnt_ch,_t1_);
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2,_t1_); //... PB_PATH_EN=_t1_
//
// // if((b_ch_src == CH_SRC_LV)||(b_jp_4pb == ON))
// // SetDsSrFuncMode(_pth,wndw_crnt_dvc,wndw_crnt_ch,NULL,CH_FUNC_NRML);
// if(b_ch_src == CH_SRC_LV)
// SetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),0x30,0x00); //... FUNC_MODE=0
// }
//}
//==================================================================================
//==================================================================================
void CreateWndwDsSr(U8 _pth)
{
// b_status_wndw = ON;
b_cmn_wndw_mn = ON;
WriteOSDClr(_pth,MASTER,WNDW_DS_SR_POS_X,WNDW_DS_SR_POS_Y,WNDW_DS_SR_L,WNDW_DS_SR_H);
SetOSDWndw(_pth,OSD_WNDW_TYPE_MAIN,WNDW_DS_SR_POS_X,WNDW_DS_SR_POS_Y,WNDW_DS_SR_L,WNDW_DS_SR_H,str_wndw_ttl_ch_stp);
// if(wndw_ds_sc_fmt != SC_FMT_8CH){
//// if(GetAsicFlgType(wndw_crnt_dvc,DVC_PG0,0x38,BIT0<<wndw_crnt_ch) == OFF) b_ch_src = CH_SRC_LV;
// if(GetAsicFlgType(wndw_crnt_dvc,DVC_PG1,0x10+(wndw_crnt_ch<<3),BIT2) == OFF) b_ch_src = CH_SRC_LV;
// else b_ch_src = CH_SRC_PB;
// }
mse_flg_on_osd = MSE_ON_OSD_DS_SR_WN|MSE_ON_OSD_DS_SR_LV|MSE_ON_OSD_DS_SR_PB;
RunWndwDsSrOSDArwWn(_pth,0,0);
SetWndwDsSrOSDWn(_pth);
SetOSDGrp(_pth,WNDW_DS_SR_RDO_X-1,WNDW_DS_SR_RDO_LV_Y,16,4,0x00,str_wndw_grp_src);
RunWndwDsSrOSDArwLv(_pth,0,0);
SetWndwDsSrOSDLv(_pth);
RunWndwDsSrOSDArwPb(_pth,0,0);
SetWndwDsSrOSDPb(_pth);
SetWndwDsSrOSDEnh(_pth);
}
//==================================================================================
void RunWndwDsSrDec(U8 _pth, U8 _osd_pos_y)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -