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

📄 panel.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
|   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 + -