📄 panel.c
字号:
| Description: fill those position pointed by pPos |
| with digital message value |
| |
| Arguments: |
| PNL_POS_TYPE *pPos : pointer of position |
| |
| Return Value: |
\------------------------------------------------------------------*/
void PnlSetDigitalMessage(int value, PNL_POS_TYPE *pPos)
{
register int len = 0;
/* get the length of pPos */
while (pPos->grid != PnlPosNull->grid)
{
len++;
pPos++;
}
//030408-01st begin
//for picture_cd
//if((DiscType != C_FILEOPENDISC) && len>2)
if((DiscType != C_FILEOPENDISC && DiscType != C_PICTURE_CD) && len>2)
//030408-01st begin
len=2;/*C_FILEOPENDISC need 3 digits to show track,others only show 2 digits,Jerry*/
/*Ref to PNL_POS_TRACK_MSG in pnl_hpt.h*/
/* display value from least significant */
/* digital to most significant digital */
for (; len > 0; len--)
{
register PNL_MSG_TYPE msg = PnlDigital2MsgTable[value%10];
register DWORD mask;
register BYTE grid;
register PNL_MSG_TYPE msgrgs;
#if((_FP==22)||(_FP==111))
register PNL_MSG_TYPE msgchg;
#endif
if (len>2)
{
msgrgs = value%100;
msg = PnlDigital2MsgTable[msgrgs%10];
}
else
msg = PnlDigital2MsgTable[value%10];
grid = (--pPos)->grid;
mask = pPos->mask;
#if((_FP==22)||(_FP==111)) /*added for KCL and WED Front Panel.*/
/* shift message to its correct position according mask */
if(mask&0x800000)
{
PnlLightTableOff(grid, 0x800000);
PnlLightTableOff(2, 0x00003f);
}
else
#endif
#if( _FP==90 )
/* shift message to its correct position according mask */
if((mask&0xfc0000)&&(grid==3))
{
PnlLightTableOff(4, 0x000001);
PnlLightTableOff(3, 0xfc0000);
}
else
#endif
/* Added by ShenZhen End here . 08/25/2000 */
PnlLightTableOff(grid, mask);
PnlLightTableOff(grid, mask);
#if((_FP==22)||(_FP==111))
msgchg=(msg&0x7e)>>1;
if(mask&0x800000)
{
msg<<=23;
PnlLightTableOn(grid, msg & 0x800000);
PnlBlinkTableUpdate(grid);
PnlLightTableOn(2, msgchg & 0x00003f);
PnlBlinkTableUpdate(2);
value /= 10;
}
else
{
#endif
#if( _FP==90 )
/* shift message to its correct position according mask */
if(((mask)&0xfc0000)&&(grid==3))
{
PnlLightTableOn(3, ((msg&0x7f)<<18 )& 0xfc0000);
PnlBlinkTableUpdate(3);
PnlLightTableOn(4, (msg>>6) & 0x000001);
PnlBlinkTableUpdate(4);
value /= 10;
}
else
{
#endif
/* shift message to its correct position according mask */
while (!(mask & 0x0001))
{
msg <<= 1;
mask >>= 1;
}
/* do (msg & pPos->mask) to avoid invalid message */
PnlLightTableOn(grid, msg & pPos->mask);
PnlBlinkTableUpdate(grid);
value /= 10;
#if ((_FP==22)||(_FP==111))
}
#endif
#if (_FP==90)
}
#endif
}
PnlBDirty = 1;
}
#if (_TRANSFER_ALI_BOARD_ == _TRANSFER_ALI_BOARD_DISABLE_)
/*------------------------------------------------------------------\
| Function_Name: void PnlDigitalSetMessage(int value, |
| PNL_POS_TYPE *pPos) |
| |
| Description: fill those position pointed by pPos |
| with digital message value |
| |
| Arguments: |
| PNL_POS_TYPE *pPos : pointer of position |
| |
| Return Value: |
| Added by brook to set digital for chapter ,track and title
\------------------------------------------------------------------*/
void PnlSetDigitalMessage_TCT(int value, PNL_POS_TYPE *pPos)
{
register int len = 0;
/* get the length of pPos */
while (pPos->grid != PnlPosNull->grid)
{
len++;
pPos++;
}
//30107-1mi
if((value<100 && len>2)&&!(( g_VFD_ShowInfo.DiscType== C_FILEOPENDISC&&g_VFD_ShowInfo.FileType == C_JPGFILE)||DiscType == C_PICTURE_CD))
{
len--;
pPos--;
}
/* display value from least significant */
/* digital to most significant digital */
for (; len > 0; len--)
{
register PNL_MSG_TYPE msg = PnlDigital2MsgTable[value%10];
register DWORD mask;
register BYTE grid;
register PNL_MSG_TYPE msgrgs;
if (len>2)
{
msgrgs = value%100;
msg = PnlDigital2MsgTable[msgrgs%10];
}
else
msg = PnlDigital2MsgTable[value%10];
grid = (--pPos)->grid;
mask = pPos->mask;
/* Added by ShenZhen End here . 08/25/2000 */
PnlLightTableOff(grid, mask);
PnlLightTableOff(grid, mask);
/* shift message to its correct position according mask */
while (!(mask & 0x0001))
{
msg <<= 1;
mask >>= 1;
}
/* do (msg & pPos->mask) to avoid invalid message */
PnlLightTableOn(grid, msg & pPos->mask);
PnlBlinkTableUpdate(grid);
value /= 10;
//30107-01mi
//maggie301208
if((value==0)&&!((g_VFD_ShowInfo.DiscType == C_FILEOPENDISC&&g_VFD_ShowInfo.FileType == C_JPGFILE)\
||DiscType == C_PICTURE_CD)&&!((DiscType == C_DVD)&&NVChkIsMultiPGC()))
break;
}
PnlBDirty = 1;
}
/*------------------------------------------------------------------\
| Function_Name: void PnlDigitalSetMessage_HEX(int value, |
| PNL_POS_TYPE *pPos) |
| |
| Description: fill those position pointed by pPos |
| with digital message value |
| |
| Arguments: |
| PNL_POS_TYPE *pPos : pointer of position |
| |
| Return Value: |
| Added by brook to set digital for chapter ,track and title
\------------------------------------------------------------------*/
void PnlSetDigitalMessage_HEX(int value, PNL_POS_TYPE *pPos)
{
register int len = 0;
/* get the length of pPos */
while (pPos->grid != PnlPosNull->grid)
{
len++;
pPos++;
}
if(value<256 && len>2)
{
len--;
pPos--;
}
/* display value from least significant */
/* digital to most significant digital */
for (; len > 0; len--)
{
register PNL_MSG_TYPE msg = PnlDigital2MsgTable[value%16];
register DWORD mask;
register BYTE grid;
register PNL_MSG_TYPE msgrgs;
if (len>2)
{
msgrgs = value%256;
msg = PnlDigital2MsgTable[msgrgs%16];
}
else
msg = PnlDigital2MsgTable[value%16];
grid = (--pPos)->grid;
mask = pPos->mask;
/* Added by ShenZhen End here . 08/25/2000 */
PnlLightTableOff(grid, mask);
PnlLightTableOff(grid, mask);
/* shift message to its correct position according mask */
while (!(mask & 0x0001))
{
msg <<= 1;
mask >>= 1;
}
/* do (msg & pPos->mask) to avoid invalid message */
PnlLightTableOn(grid, msg & pPos->mask);
PnlBlinkTableUpdate(grid);
value /= 16;
/*if(value==0)
break;*/
}
PnlBDirty = 1;
}
#endif
/********************************************************************
* Modules *
********************************************************************/
/*------------------------------------------------------------------\
| Function_Name: |
| void PnlModuleSignal(register DWORD hSig, |
| register DWORD pSig, |
| register PNL_POS_TYPE *mSig[], |
| register DWORD mAttr[], |
| register DWORD nSig) |
| |
| Description: mSig is a matrix which point to a group of lighte- |
| rs. One time at most one lighter would be lighted. |
| This function will light on the lighter pointed by |
| hSig and light off the lighter pointed by pSig. |
| But if hSig == PNL_HSIG_OFF then all of the light- |
| ers would be lighted off. |
| |
| Arguments: |
| register DWORD hSig : handle of the lighter wou- |
| ld be lighted on |
| register DWORD pSig : handle of the previous li- |
| ghter had been lighted on |
| register PNL_POS_TYPE *mSig[] : position pointer matrix of |
| the lighters |
| register DWORD mAttr[] : attribute matrix of the l- |
| ighters |
| register DWORD nSig : total number of lighters |
| |
| Return Value: |
\------------------------------------------------------------------*/
#ifdef PNL_MODULE_USED_SIGNAL
void PnlModuleSignal(register DWORD hSig,
register DWORD pSig,
register PNL_POS_TYPE *mSig[],
register DWORD mAttr[],
register DWORD nSig)
{
register DWORD attr;
if (hSig == PNL_HSIG_OFF)
{
if (pSig < nSig && pSig != PNL_HSIG_OFF)
PnlLightOff(mSig[pSig]);
return;
}
else if (hSig < nSig)
attr = mAttr[hSig];
else
return;
if (attr & PNL_LIGHT_ON)
{
if (pSig < nSig && pSig != PNL_HSIG_OFF)
PnlLightOff(mSig[pSig]);
PnlLightOn(mSig[hSig]);
}
if (attr & PNL_BLINK_ON)
{
PnlBlinkOn(mSig[hSig]);
}
if (attr & PNL_BLINK_OFF)
{
PnlBlinkOff(mSig[hSig]);
}
}
#endif
/*------------------------------------------------------------------\
| Function_Name: |
| void PnlModuleMsgSig(register DWORD value, |
| register PNL_POS_TYPE *posMsg, |
| register PNL_POS_TYPE *posSig) |
| |
| Description: This function will print out digital message to t- |
| he position pointed by posMsg with value and light |
| on the lighter pointed by posSig. |
| |
| Arguments: |
| register DWORD value : the value would be printed |
| out |
| register PNL_POS_TYPE *posMsg : position pointer of 7 Seg- |
| ment LEDs |
| register PNL_POS_TYPE *posSig : position pointer of the l- |
| ighter |
| |
| Return Value: |
\------------------------------------------------------------------*/
#ifdef PNL_MODULE_USED_MSGSIG
void PnlModuleMsgSig(register DWORD value,
register PNL_POS_TYPE *posMsg,
register PNL_POS_TYPE *posSig)
{
if (value == PNL_DISPLAY_OFF)
{
PnlLightOff(posMsg);
PnlLightOff(posSig);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -