📄 wndw_pop.c
字号:
#include "hdr.h"
U8 idata wndw_pop_sub_num_h;
U8 idata wndw_pop_sub_num_v;
U8 idata wndw_pop_crnt_ch;
U8 idata wndw_crnt_dvc;
U8 idata wndw_crnt_ch;
U8 idata wndw_mn_pos_crnt = 30;
//==================================================================================
// Popup function description
//==================================================================================
void SetPopMainOSD(U8 _pth, U8 _pos_x, U8 _pos_y)
{
if(BitSet(_pth,PTH_X)){
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_DS,0x00,str_wndw_pop_ds_sb);
//#if defined(__4CH__)
// if((wndw_ds_sc_fmt == SC_FMT_4CH)&&(b_ds_wth_4pb))
//#elif defined(__16CH__)
// if((wndw_ds_sc_fmt == SC_FMT_16CH)&&(b_ds_wth_16pb))
//#endif
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_CH,OSD_MIX,str_wndw_pop_ch);
// else
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_CH,0x00,str_wndw_pop_ch);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_ZM,0x00,str_wndw_pop_zm);
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_RC,0x00,str_wndw_pop_rc);
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_MTN,0x00,str_wndw_pop_mtn);
#if defined(__WTH_ADO__)
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_ADO,0x00,str_wndw_pop_ado);
#elif defined(__WTH_VGA__)
if(cmn_vga_det)
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_VGA,0x00,str_wndw_pop_vga);
#endif
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_RG,0x00,str_wndw_pop_rg);
WriteOSDStrY(MASTER,_pos_x,_pos_y+(POP_POS_RG+cmn_vga_det),0x00,str_wndw_pop_rg);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_ABT,0x00,str_wndw_pop_abt);
}
if(BitSet(_pth,PTH_Y)){
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_DS,0x00,str_wndw_pop_ds);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_CH,OSD_MIX,str_wndw_pop_ch);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_ZM,OSD_MIX,str_wndw_pop_zm);
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_RC,0x00,str_wndw_pop_rc_sb);
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_MTN,OSD_MIX,str_wndw_pop_mtn);
#if defined(__WTH_ADO__)
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_ADO,0x00,str_wndw_pop_ado);
#elif defined(__WTH_VGA__)
if(cmn_vga_det)
WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_VGA,0x00,str_wndw_pop_vga);
#endif
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_RG,0x00,str_wndw_pop_rg);
WriteOSDStrY(MASTER,_pos_x,_pos_y+(POP_POS_RG+cmn_vga_det),0x00,str_wndw_pop_rg);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+POP_POS_ABT,0x00,str_wndw_pop_abt);
}
}
//==================================================================================
void SetPopMain(U8 _pth, U8 _pos_x, U8 _pos_y, U8 _lngth, U8 _hght)
{
// _lngth = 0; //... temporal
// _hght = 0; //... temporal
CreateBoxPopFrame(_pth,BOX_POP_MN,_pos_x,_pos_y,_lngth,_hght);
// IfBitSet(_pth,PTH_X) SetPopMainOSD(PTH_X,_pos_x,_pos_y);
// IfBitSet(_pth,PTH_Y) SetPopMainOSD(PTH_Y,_pos_x,_pos_y);
if(BitSet(_pth,PTH_X)) SetPopMainOSD(PTH_X,_pos_x,_pos_y);
if(BitSet(_pth,PTH_Y)) SetPopMainOSD(PTH_Y,_pos_x,_pos_y);
}
//==================================================================================
void SetPopSubOSD(U8 _pth, U8 _pos_x, U8 _pos_y, U8 _main_mn_pos_crnt)
{
// U8 _t1_;
// IfBitSet(_pth,PTH_X){
// if(BitSet(_pth,PTH_X)){
// if(_main_mn_pos_crnt == POP_POS_SCRN_X){
//// WriteOSDStrX(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_scrn_x_fl);
//// WriteOSDStrX(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_scrn_x_qd);
//// WriteOSDStrX(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_scrn_x_nrt);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_scrn_x_fl);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_scrn_x_qd);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_scrn_x_nrt);
// }
// }
//// IfBitSet(_pth,PTH_Y){
// if(BitSet(_pth,PTH_Y)){
// if(_main_mn_pos_crnt == POP_POS_SCRN_Y){
// WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_scrn_y_qd);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_scrn_y_cif);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_scrn_y_mux);
// }
// }
if(BitSet(_pth,PTH_X)){
if(_main_mn_pos_crnt == POP_POS_DS){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_scrn);
#if defined(__4CH__)
if((wndw_ds_sc_fmt == SC_FMT_4CH)&&(b_ds_wth_4pb))
#elif defined(__16CH__)
if((wndw_ds_sc_fmt == SC_FMT_16CH)&&(b_ds_wth_16pb))
#endif
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,OSD_MIX,str_wndw_pop_sb_src);
else
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_src);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_zm);
WriteOSDStrY(MASTER,_pos_x,_pos_y+3,0x00,str_wndw_pop_sb_indx);
}
else if(_main_mn_pos_crnt == POP_POS_MTN){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_mtn);
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_blnd);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_sb_nght);
}
#if defined(__WTH_ADO__)
else if(_main_mn_pos_crnt == POP_POS_ADO){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_gn);
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_lv);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_sb_rc);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+3,0x00,str_wndw_pop_sb_dt);
}
#elif defined(__WTH_VGA__)
// else if(_main_mn_pos_crnt == POP_POS_VGA){
else if((_main_mn_pos_crnt == POP_POS_VGA)&&(cmn_vga_det)){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_out_rs);
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_de_int);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_sb_img_en);
WriteOSDStrY(MASTER,_pos_x,_pos_y+3,0x00,str_wndw_pop_sb_ns_rd);
}
#endif
}
// IfBitSet(_pth,PTH_Y){
if(BitSet(_pth,PTH_Y)){
if(_main_mn_pos_crnt == POP_POS_RC){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_fmt);
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_indx);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_sb_ns_rd);
}
#if defined(__WTH_ADO__)
else if(_main_mn_pos_crnt == POP_POS_ADO){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_gn);
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_lv);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_sb_rc);
// WriteOSDStrY(MASTER,_pos_x,_pos_y+3,0x00,str_wndw_pop_sb_dt);
}
#elif defined(__WTH_VGA__)
// else if(_main_mn_pos_crnt == POP_POS_VGA){
else if((_main_mn_pos_crnt == POP_POS_VGA)&&(cmn_vga_det)){
WriteOSDStrY(MASTER,_pos_x,_pos_y+0,0x00,str_wndw_pop_sb_out_rs);
WriteOSDStrY(MASTER,_pos_x,_pos_y+1,0x00,str_wndw_pop_sb_de_int);
WriteOSDStrY(MASTER,_pos_x,_pos_y+2,0x00,str_wndw_pop_sb_img_en);
WriteOSDStrY(MASTER,_pos_x,_pos_y+3,0x00,str_wndw_pop_sb_ns_rd);
}
#endif
}
}
//==================================================================================
void SetPopSub(U8 _pth, U8 _pos_x, U8 _pos_y, U8 _lngth, U8 _hght, U8 _main_mn_pos_crnt)
{
// _lngth = 0; //... temporal
// _hght = 0; //... temporal
CreateBoxPopFrame(_pth,BOX_POP_SB,_pos_x,_pos_y,_lngth,_hght);
// IfBitSet(_pth,PTH_X) SetPopSubOSD(PTH_X,_pos_x,_pos_y, _main_mn_pos_crnt);
// IfBitSet(_pth,PTH_Y) SetPopSubOSD(PTH_Y,_pos_x,_pos_y, _main_mn_pos_crnt);
if(BitSet(_pth,PTH_X)) SetPopSubOSD(PTH_X,_pos_x,_pos_y, _main_mn_pos_crnt);
if(BitSet(_pth,PTH_Y)) SetPopSubOSD(PTH_Y,_pos_x,_pos_y, _main_mn_pos_crnt);
}
//==================================================================================
//==================================================================================
void RemovePopMain(void)
{
// U8 _t1_;
// U8 _pth_;
//
//// if(b_mouse_status_path_popup == MOUSE_PATH_X) _pth_ = PTH_X;
// if(BitClear(mse_flg,MSE_STTS_PTH_POP)) _pth_ = PTH_X;
// else _pth_ = PTH_Y;
// for(_t1_=0;_t1_<4;_t1_++)
// DisableBox(PTH_Y,_t1_);//BOX_POP_MN_HL,BOX_POP_MN);
// if(BitSet(_pth_,PTH_X)) WriteOSDClrX(MASTER,mse_osd_x,mse_osd_y,POP_MN_NUM_H,POP_MN_NUM_V);
// if(BitSet(_pth_,PTH_Y)) WriteOSDClrY(MASTER,mse_osd_x,mse_osd_y,POP_MN_NUM_H,POP_MN_NUM_V);
if(b_mse_stts_pth_pop == MSE_PTH_X){
// if(BitClear(mse_flg,MSE_STTS_PTH_POP))
// WriteOSDClrX(MASTER,mse_osd_x,mse_osd_y,POP_MN_NUM_H,POP_MN_NUM_V);
DisableBox(PTH_X,BOX_POP_MN_HL);
DisableBox(PTH_X,BOX_POP_MN);
WriteOSDClrY(MASTER,mse_osd_x,mse_osd_y,POP_MN_NUM_H,POP_MN_NUM_V+cmn_vga_det); //... 060307:temporal
}
else{
DisableBox(PTH_Y,BOX_POP_MN_HL);
DisableBox(PTH_Y,BOX_POP_MN);
WriteOSDClrY(MASTER,mse_osd_x,mse_osd_y,POP_MN_NUM_H,POP_MN_NUM_V+cmn_vga_det);
}
b_mse_stts_pth_pop = b_mse_stts_pth;
// if(BitClear(mse_flg,MSE_STTS_PTH)) ClearBit(mse_flg,MSE_STTS_PTH_POP);
// else SetBit(mse_flg,MSE_STTS_PTH_POP);
}
//==================================================================================
void CreatePopMain(void)
{
U16 _osd_lmt_v_ = cmn_bot<<1; //... v limit for OSD index
U8 _pop_num_h_, _pop_num_v_;
U8 _pth_;
_osd_lmt_v_ = (_osd_lmt_v_-OSD_DLY_V)/10;
RemovePopMain();
mse_osd_x = GetMseOSDX(reg_crsr_pos_x);
mse_osd_y = GetMseOSDY(reg_crsr_pos_y);
if(b_mse_stts_pth_pop == MSE_PTH_X){
// if(BitClear(mse_flg,MSE_STTS_PTH_POP)){
_pth_ = PTH_X;
// _pop_num_h_ = POP_X_MN_NUM_H;
// _pop_num_v_ = POP_X_MN_NUM_V;
}
else{
_pth_ = PTH_Y;
// _pop_num_h_ = POP_Y_MN_NUM_H;
// _pop_num_v_ = POP_Y_MN_NUM_V;
}
// _pth_ = PTH_Y; //... 060307:temporal
_pop_num_h_ = POP_MN_NUM_H;
_pop_num_v_ = POP_MN_NUM_V + cmn_vga_det;
if(mse_osd_x > (45 - _pop_num_h_)) mse_osd_x = 45 - _pop_num_h_;
if(mse_osd_y > (_osd_lmt_v_-_pop_num_v_)) mse_osd_y = _osd_lmt_v_-_pop_num_v_;
SetPopMain(_pth_,mse_osd_x,mse_osd_y,_pop_num_h_,_pop_num_v_);
CreateBoxPopHL(_pth_,BOX_POP_MN_HL,mse_osd_x,mse_osd_y,_pop_num_h_);
//... update:050706 Rev2.0
if(mse_ch == 0xff) wndw_pop_crnt_ch = 0;
else wndw_pop_crnt_ch = mse_ch&0x0f;
SetCrntDvcCh(wndw_pop_crnt_ch,&wndw_crnt_dvc,&wndw_crnt_ch);
b_cmn_wndw_pop = ON;
// SetBit(cmn_flg,CMN_WNDW_POP);
}
//==================================================================================
void RemovePopSub(void)
{
// U8 _t1_;
// U8 _pth_;
// if(b_mouse_status_path_popup == MOUSE_PATH_X) _pth_ = PTH_X;
// else _pth_ = PTH_Y;
if(b_mse_stts_pth_pop == MSE_PTH_X){
// if(BitClear(mse_flg,MSE_STTS_PTH_POP)){
// _pth_ = PTH_X;
// WriteOSDClrX(MASTER,mse_osd_x_sub,mse_osd_y_sub,wndw_pop_sub_num_h,wndw_pop_sub_num_v);
DisableBox(PTH_X,BOX_POP_SB_HL);
DisableBox(PTH_X,BOX_POP_SB);
WriteOSDClrY(MASTER,mse_osd_x_sub,mse_osd_y_sub,wndw_pop_sub_num_h,wndw_pop_sub_num_v); //... 060307:temporal
}
else{
// _pth_ = PTH_Y;
DisableBox(PTH_Y,BOX_POP_SB_HL);
DisableBox(PTH_Y,BOX_POP_SB);
WriteOSDClrY(MASTER,mse_osd_x_sub,mse_osd_y_sub,wndw_pop_sub_num_h,wndw_pop_sub_num_v);
}
// for(_t1_=0;_t1_<4;_t1_++)
// DisableBox(PTH_Y,_t1_);//BOX_POP_SB_HL,BOX_POP_SB);
// WriteOSDClr(PTH_Y,MASTER,mse_osd_x_sub,mse_osd_y_sub,wndw_pop_sub_num_h,wndw_pop_sub_num_v);
mse_osd_x_sub=45;//50;//
mse_osd_y_sub=56;//30;//
}
//==================================================================================
void CreatePopSub(U8 _main_mn_pos_crnt)
{
U16 _osd_lmt_v_ = cmn_bot<<1;
U8 _osd_lmt_x_;
U8 _pop_main_num_h_;
U8 _pth_;
_osd_lmt_v_ = (_osd_lmt_v_-OSD_DLY_V)/10;
if(b_mse_stts_pth_pop == MSE_PTH_X){
// if(BitClear(mse_flg,MSE_STTS_PTH_POP)){
_pth_ = PTH_X;
// _pop_main_num_h_ = POP_X_MN_NUM_H;
}
else{
_pth_ = PTH_Y;
// _pop_main_num_h_ = POP_Y_MN_NUM_H;
}
// _pth_ = PTH_Y; //... 060307:temporal
_pop_main_num_h_ = POP_MN_NUM_H;
_osd_lmt_x_ = 45 - (_pop_main_num_h_+wndw_pop_sub_num_h+1);
mse_osd_y_sub = GetMseOSDY(reg_crsr_pos_y);
if(mse_osd_x > _osd_lmt_x_) mse_osd_x_sub = mse_osd_x-wndw_pop_sub_num_h-1;
else mse_osd_x_sub = mse_osd_x+_pop_main_num_h_+1;
if(mse_osd_y_sub > (_osd_lmt_v_-wndw_pop_sub_num_v)) mse_osd_y_sub = _osd_lmt_v_-wndw_pop_sub_num_v;
SetPopSub(_pth_,mse_osd_x_sub,mse_osd_y_sub,wndw_pop_sub_num_h,wndw_pop_sub_num_v,_main_mn_pos_crnt);
CreateBoxPopHL(_pth_,BOX_POP_SB_HL,mse_osd_x_sub,mse_osd_y_sub,wndw_pop_sub_num_h);
}
//==================================================================================
//==================================================================================
void RunPopProc(void)
{
U8 _osd_pos_x_, _osd_pos_y_;
U8 _pop_main_num_h_, _pop_main_num_v_;
U8 _mn_crnt_pos_main_, _mn_crnt_pos_sub_;
_osd_pos_x_ = GetMseOSDX(reg_crsr_pos_x);
_osd_pos_y_ = GetMseOSDY(reg_crsr_pos_y);
// if(b_mouse_status_path_popup == MOUSE_PATH_X){
// _pop_main_num_h_ = POP_X_MN_NUM_H;
// _pop_main_num_v_ = POP_X_MN_NUM_V;
// }
// else{
// _pop_main_num_h_ = POP_Y_MN_NUM_H;
// _pop_main_num_v_ = POP_Y_MN_NUM_V;
// }
_pop_main_num_h_ = POP_MN_NUM_H;
_pop_main_num_v_ = POP_MN_NUM_V + cmn_vga_det;
if(((_osd_pos_x_ >= mse_osd_x)&&(_osd_pos_x_ <= (mse_osd_x+_pop_main_num_h_))&&
(_osd_pos_y_ >= mse_osd_y)&&(_osd_pos_y_ < (mse_osd_y+_pop_main_num_v_)))//){
&& (b_mse_stts_pth_pop == b_mse_stts_pth)){
// && (((mse_flg&MSE_STTS_PTH_POP)>>1) == (mse_flg&MSE_STTS_PTH))){
SetBoxPopHLPos(BOX_POP_MN_HL,mse_osd_x,_osd_pos_y_,_pop_main_num_h_);
_mn_crnt_pos_main_ = _osd_pos_y_ - mse_osd_y;
if(wndw_mn_pos_crnt != _mn_crnt_pos_main_){
wndw_mn_pos_crnt = _mn_crnt_pos_main_;
RemovePopSub();
if(b_mse_stts_pth_pop == MSE_PTH_X){
// if(BitClear(mse_flg,MSE_STTS_PTH_POP)){
if(_mn_crnt_pos_main_ == POP_POS_DS){
wndw_pop_sub_num_h = 6;
wndw_pop_sub_num_v = 4;
CreatePopSub(_mn_crnt_pos_main_);
}
else if(_mn_crnt_pos_main_ == POP_POS_MTN){
wndw_pop_sub_num_h = 6;
wndw_pop_sub_num_v = 3;
CreatePopSub(_mn_crnt_pos_main_);
}
#if defined(__WTH_ADO__)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -