wndw_ado_live.c
来自「TECHWELL 之tw2835 四画面合一之驱动代码,CCIR656输出,KE」· C语言 代码 · 共 193 行
C
193 行
#include "hdr.h"
#if defined(__WTH_ADO__)
//==================================================================================
// Audio Live wndwdow definition & variable description
//==================================================================================
U8 idata wndw_ado_lv_sel;
//U8 idata wndw_ado_lv_mute;
//==================================================================================
// Audio Live wndwdow function description
//==================================================================================
void SetWndwAdoLvOSDSelRdo(U8 _pth)//U8 _mix_sel)
{
U8 _t1_, _t2_, _t3_, _t4_;
for(_t2_=0;_t2_<4;_t2_++){
for(_t1_=0;_t1_<4;_t1_++){
_t3_ = (_t2_<<2)+_t1_;
if(_t3_ == wndw_ado_lv_sel) _t4_ = OSD_RDO_CHK;
else _t4_ = OSD_RDO_BLK;
#if defined(__4CH__)
if(_t3_<4) WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,0x00,_t4_);
else WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,OSD_MIX,_t4_);
#elif defined(__16CH__)
WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,0x00,_t4_);
#endif
}
}
if(wndw_ado_lv_sel == ADO_SEL_PB) _t1_ = OSD_RDO_CHK;
else _t1_ = OSD_RDO_BLK;
WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_PB_X,WNDW_ADO_LV_SEL_RDO_PB_Y,0x00,_t1_);
if(wndw_ado_lv_sel == ADO_SEL_MIX) _t1_ = OSD_RDO_CHK;
else _t1_ = OSD_RDO_BLK;
WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_MIX_X,WNDW_ADO_LV_SEL_RDO_PB_Y,0x00,_t1_);
}
//==================================================================================
void SetWndwAdoLvOSDSel(U8 _pth)//U8 _data)
{
U8 _t1_, _t2_, _t3_;
SetOSDGrp(_pth,WNDW_ADO_LV_SEL_RDO_0_X-1,WNDW_ADO_LV_SEL_RDO_03_Y,17,5,0x00,str_wndw_grp_sel);
for(_t2_=0;_t2_<4;_t2_++){
for(_t1_=0;_t1_<4;_t1_++){
_t3_ = (_t2_<<2)+_t1_;
#if defined(__4CH__)
if(_t3_<10){
if(_t3_<4) WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+2+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,0x00,_t3_+0x10);
else WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+2+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,OSD_MIX,_t3_+0x10);
}
else WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+2+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,OSD_MIX,_t3_+0x17);
#elif defined(__16CH__)
if(_t3_<10) WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+2+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,0x00,_t3_+0x10);
else WriteOSDFnt(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_0_X+2+(_t1_<<2),WNDW_ADO_LV_SEL_RDO_03_Y+_t2_,0x00,_t3_+0x17);
#endif
}
}
WriteOSDStr(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_PB_X+2,WNDW_ADO_LV_SEL_RDO_PB_Y,0x00,str_wndw_ado_lv_pb);
WriteOSDStr(_pth,MASTER,WNDW_ADO_LV_SEL_RDO_MIX_X+2,WNDW_ADO_LV_SEL_RDO_PB_Y,0x00,str_wndw_ado_lv_mix);
SetWndwAdoLvOSDSelRdo(_pth);//_data);
}
//==================================================================================
void SetWndwAdoLvOSDMix(U8 _pth)//U8 _data)
{
U8 _t1_;//, _t2_;
SetOSDWndw(NULL,OSD_WNDW_TYPE_BTN,WNDW_ADO_LV_BTN_X,WNDW_ADO_LV_BTN_Y,9,1,str_null);
if(wndw_ado_lv_sel == ADO_SEL_MIX) _t1_ = 0x00;
else _t1_ = OSD_MIX;
WriteOSDStr(_pth,MASTER,WNDW_ADO_LV_BTN_X,WNDW_ADO_LV_BTN_Y,_t1_,str_wndw_ado_lv_mix_rto);
}
//==================================================================================
void CreateWndwAdoLv(U8 _pth)
{
// b_status_wndw = ON;
b_cmn_wndw_mn = ON;
// ClearOSD(X_PATH,WNDW_ADO_LV_POS_X,WNDW_ADO_LV_POS_Y,WNDW_ADO_LV_L,WNDW_ADO_LV_H);
// SetOSDWndw(X_PATH,OSD_WNDW_TYPE_MAIN|BOX_WNDW_FRM,WNDW_ADO_LV_POS_X,WNDW_ADO_LV_POS_Y,
// WNDW_ADO_LV_L,WNDW_ADO_LV_H,str_wndw_ttl_ado_live);
WriteOSDClr(_pth,MASTER,WNDW_ADO_LV_POS_X,WNDW_ADO_LV_POS_Y,WNDW_ADO_LV_L,WNDW_ADO_LV_H);
SetOSDWndw(_pth,OSD_WNDW_TYPE_MAIN,WNDW_ADO_LV_POS_X,WNDW_ADO_LV_POS_Y,WNDW_ADO_LV_L,WNDW_ADO_LV_H,str_wndw_ttl_ado_lv);
wndw_ado_lv_sel = GetAsicFlgType(cmn_lst_slvr_x,DVC_PG0,0x71,0x1f); //... MIX_OUTSEL data
// wndw_ado_lv_mute = GetAsicFlgType(cmn_lst_slvr_x,DVC_PG0,0x6d,0x1f); //... MIX_MUTE data
mse_flg_on_osd = 0x003f;
SetWndwAdoLvOSDSel(_pth);
SetWndwAdoLvOSDMix(_pth);
}
//==================================================================================
void RunWndwAdoLvSel(U8 _pth)//U8 _osd_pos_x, U8 _osd_pos_y)
{
U8 _t1_;//, _t2_;
U8 _osd_pos_x_, _osd_pos_y_;
_osd_pos_x_ = GetMseOSDX(reg_crsr_pos_x);
_osd_pos_y_ = GetMseOSDY(reg_crsr_pos_y);
if(b_mse_btn_dwn_lb == 1){
b_mse_btn_dwn_lb = 0;
if((_osd_pos_x_ == WNDW_ADO_LV_CLOS_X)&&(_osd_pos_y_ == WNDW_ADO_LV_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_LV_CLOS_X)&&(_osd_pos_y_ == WNDW_ADO_LV_CLOS_Y)){
// SetBoxBtnStrPull(BOX_WNDW_QUIT);
// ClearOSD(X_PATH,WNDW_ADO_LV_POS_X,WNDW_ADO_LV_POS_Y,WNDW_ADO_LV_L,WNDW_ADO_LV_H);
// DisableBox(X_PATH,BOX_WNDW_FRM-2,BOX_WNDW_FRM); // decoration wndwdow, main wndwdow
WriteOSDClr(_pth,MASTER,WNDW_ADO_LV_POS_X,WNDW_ADO_LV_POS_Y,WNDW_ADO_LV_L,WNDW_ADO_LV_H);
WriteOSDClrX(MASTER,WNDW_ADO_LV_POS_X-1,WNDW_ADO_LV_POS_Y-1,WNDW_ADO_LV_L+2,WNDW_ADO_LV_H+2);
SetOSDNoMn();
//
// b_status_wndw = OFF;
// global_menu_crnt_pos = 30;
b_cmn_wndw_mn = OFF;
wndw_mn_pos_crnt = 30;
}
else{
#if defined(__4CH__)
if((_osd_pos_y_ == WNDW_ADO_LV_SEL_RDO_03_Y)||(_osd_pos_y_ == WNDW_ADO_LV_SEL_RDO_PB_Y)){
#elif defined(__16CH__)
if((_osd_pos_y_ >= WNDW_ADO_LV_SEL_RDO_03_Y)&&(_osd_pos_y_ <= WNDW_ADO_LV_SEL_RDO_PB_Y)){
#endif
if(_osd_pos_y_ == WNDW_ADO_LV_SEL_RDO_PB_Y){
if((_osd_pos_x_ == WNDW_ADO_LV_SEL_RDO_PB_X)||(_osd_pos_x_ == WNDW_ADO_LV_SEL_RDO_MIX_X)){
if(_osd_pos_x_ == WNDW_ADO_LV_SEL_RDO_PB_X) _t1_ = ADO_SEL_PB;
else if(_osd_pos_x_ == WNDW_ADO_LV_SEL_RDO_MIX_X) _t1_ = ADO_SEL_MIX;
if(_t1_ != wndw_ado_lv_sel){
wndw_ado_lv_sel = _t1_;
SetAsicFlgType(cmn_lst_slvr_x,DVC_PG0,0x71,0x1f,wndw_ado_lv_sel);
SetWndwAdoLvOSDSelRdo(_pth);
SetWndwAdoLvOSDMix(_pth);
}
}
}
else{
if((_osd_pos_x_==WNDW_ADO_LV_SEL_RDO_0_X)||(_osd_pos_x_==WNDW_ADO_LV_SEL_RDO_1_X)||
(_osd_pos_x_==WNDW_ADO_LV_SEL_RDO_2_X)||(_osd_pos_x_==WNDW_ADO_LV_SEL_RDO_3_X)){
_t1_ = ((_osd_pos_y_-WNDW_ADO_LV_SEL_RDO_03_Y)<<2)+((_osd_pos_x_-WNDW_ADO_LV_SEL_RDO_0_X)>>2);
if(_t1_ != wndw_ado_lv_sel){
wndw_ado_lv_sel = _t1_;
SetAsicFlgType(cmn_lst_slvr_x,DVC_PG0,0x71,0x1f,wndw_ado_lv_sel);
SetWndwAdoLvOSDSelRdo(_pth);
SetWndwAdoLvOSDMix(_pth);
}
}
}
}
else if(wndw_ado_lv_sel == ADO_SEL_MIX){
if(((_osd_pos_x_ >= WNDW_ADO_LV_BTN_X)&&(_osd_pos_x_ < (WNDW_ADO_LV_BTN_X+9)))&&(_osd_pos_y_ == WNDW_ADO_LV_BTN_Y))
CreateWndwAdoLvMr(_pth);
}
}
}
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(b_mse_pshng_clk_rb == 1) b_mse_pshng_clk_rb = 0;
}
//==================================================================================
void RunWndwAdoLv(U8 _pth)//U8 _osd_pos_x_, U8 _osd_pos_y_)
{
if(b_ado_lv_mr == ON){
RunWndwAdoLvMr(_pth);//_osd_pos_x_,_osd_pos_y_);
}
else
RunWndwAdoLvSel(_pth);//_osd_pos_x_,_osd_pos_y_);
}
//==================================================================================
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?