亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? psl_process_status.cpp

?? 這是DVD中伺服部分的核心代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusLoadComplete(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusLoadComplete: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusLoadComplete: NULL pointer!\n"));
        return (PSL_NULL_POINTER);
    }

    /* If generic message is active, then clear it */
    if (PslScreenLayoutIsGenericActive(pPSL) == TRUE)
    {
        /* Clear generic osd */
        if (PslScreenLayoutClearGeneric(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusLoadComplete: failed to draw message!\n"));
            return (PSL_FAILURE);
        }
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusAngleChange -- Process the angle change status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusAngleChange(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG   ulTimeout   = 3000;
    char    cTmp[5];

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusAngleChange: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAngleChange: NULL handle!\n"));
        return (PSL_NULL_POINTER);
    }

    /* check that status menu data is valid */
    if (pPSL->pStatusMenu == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAngleChange: status menu not created!\n"));
        return (PSL_FAILURE);
    }

    /* Set the angle number string */
    if (ulData1 < 10)
    {
        cTmp[0] = (char)(ulData1 + '0');
        cTmp[1] = '\0';
    }
    else
    {
        cTmp[0] = (char)((ulData1 / 10) + '0');
        cTmp[1] = (char)((ulData1 % 10) + '0');
        cTmp[2] = '\0';
    }

    /* set angle setting text */
    if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[3][1], cTmp) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAngleChange: failure setting button text!\n"));
        return (PSL_FAILURE);
    }

    /* set the status menu mode to angle */
    pPSL->pStatusMenu->tCurrentMode = PSL_STATUS_MODE_ANGLE;

    /* Set the status menu timer */
    if (OS_TimerSetMsec(pPSL->pStatusMenu->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusAngleChange: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* draw the status menu  */
    if (PslScreenLayoutDrawStatusMenu(pPSL) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAngleChange: failure drawing status menu!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusAudioChange -- Process the audio change status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusAudioChange(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG   ulTimeout   = 3000;
    char    cTmp[50];

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusAudioChange: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioChange: NULL pointer!\n"));
        return (PSL_NULL_POINTER);
    }

    /* check that status menu data is valid */
    if (pPSL->pStatusMenu == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioChange: status menu not created!\n"));
        return (PSL_FAILURE);
    }

    /* check that buffer is valid */
    if ( (pvBuffer == NULL) || (ulBufferSize < (sizeof(ULONG) * 2) ) )
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioChange: invalid buffer!\n"));
        return (PSL_FAILURE);
    }

    /* Set the Audio number string */
    cTmp[0] = '0' + ( (UBYTE)ulData1 / 10);
    cTmp[1] = '0' + ( (UBYTE)ulData1 % 10);
    cTmp[2] = '\0';

    /* Set the Audio decode type string */
    switch ( ( (ULONG *)pvBuffer)[0] )
    {
    case VDVD_INFO_AUDIOTYPE_DOLBY:
        /* Look at number of audio channels */
        switch ( ( (ULONG *)pvBuffer)[1] )
        {
        case 1:
            strcat(cTmp, " DOLBY DIGITAL MONO " );
            break;
        case 2:
            strcat(cTmp, " DOLBY DIGITAL 2/0  " );
            break;
        case 3:
            strcat(cTmp, " AC3 3 CHANNEL " );
            break;
        case 4:
            strcat(cTmp, " AC3 4 CHANNEL " );
            break;
        case 5:
            strcat(cTmp, " AC3 5 CHANNEL " );
            break;
        case 6:
            strcat(cTmp, " DOLBY DIGITAL 5.1  " );
            break;
        case 7:
            strcat(cTmp, " AC3 7 CHANNEL " );
            break;
        case 8:
            strcat(cTmp, " AC3 8 CHANNEL " );
            break;
        default:    
            strcpy(cTmp, "");
            break;
        }
        break;
    case VDVD_INFO_AUDIOTYPE_MPEG:
        strcat(cTmp, " MPEG " );
        break;
    case VDVD_INFO_AUDIOTYPE_LPCM:
        strcat(cTmp, " LPCM " );
        break;
    case VDVD_INFO_AUDIOTYPE_DTS:
        strcat(cTmp, " DTS  " );
        break;
    default:
        strcpy(cTmp, "");
        break;
    }

    /* Set the audio language string */
    strcat(cTmp, LANGUAGE_CONST[ulData2 - 1]);

    /* set audio setting text */
    if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[2][1], cTmp) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioChange: failure setting button text!\n"));
        return (PSL_FAILURE);
    }

    /* set the status menu mode to audio */
    pPSL->pStatusMenu->tCurrentMode = PSL_STATUS_MODE_AUDIO;

    /* Set the status menu timer */
    if (OS_TimerSetMsec(pPSL->pStatusMenu->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusAudioChange: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* draw the status menu  */
    if (PslScreenLayoutDrawStatusMenu(pPSL) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioChange: failure drawing status menu!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusAudioNotSupported -- Process the audio not supported status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusAudioNotSupported(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 3000;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusAudioNotSupported: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioNotSupported: NULL pointer!\n"));
        return (PSL_NULL_POINTER);
    }

    /* Set the osd timer */
    if (OS_TimerSetMsec(pPSL->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusAudioNotSupported: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw message on generic osd */
    if (PslScreenLayoutDrawGeneric(pPSL, PSL_STATUS_AUDIO_NOT_SUPPORTED, ulData1) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusAudioNotSupported: failed to draw message!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusInvalidRegion -- Process the invalid region status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusInvalidRegion(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 3000;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusInvalidRegion: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusInvalidRegion: NULL pointer!\n"));
        return (PSL_NULL_POINTER);
    }

    /* Set the osd timer */
    if (OS_TimerSetMsec(pPSL->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusInvalidRegion: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw message on generic osd */
    if (PslScreenLayoutDrawGeneric(pPSL, PSL_STATUS_INVALID_REGION, ulData1) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusInvalidRegion: failed to draw message!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusStandby -- Process the standby status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusStandby(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusStandby: no functionality\n"));
    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusSetTmpParental -- Process the set temp parental level status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusSetTmpParental(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusSetTmpParental: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSetTmpParental: NULL pointer!\n"));
        return (PSL_NULL_POINTER);
    }

    if (pPSL->pParentalControl == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSetTmpParental: parental control data not created!\n"));
        return (PSL_FAILURE);
    }

    /* If generic osd is active, clear it */
    if (PslScreenLayoutIsGenericActive(pPSL) == TRUE)
    {
        if (PslScreenLayoutClearGeneric(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSetTmpParental: failed to clear generic osd!\n"));
            return (PSL_FAILURE);
        }
    }

    /* If setup menu is active, clear it */
    if (PslScreenLayoutIsSetupMenuActive(pPSL) == TRUE)
    {
        /* clear setup menu */ 
        if (PslScreenLayoutClearSetupMenu(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSetTmpParental: Failure clearing setup menu!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* If status display is active, clear it */
    if (PslScreenLayoutIsStatusDisplayActive(pPSL) == TRUE)
    {
        /* clear status display */ 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲另类一区二区| 国产日韩欧美高清在线| 成人久久18免费网站麻豆| 性做久久久久久久久| 亚洲五码中文字幕| 亚洲高清在线精品| 亚洲成国产人片在线观看| 亚洲电影在线免费观看| 夜夜嗨av一区二区三区四季av| 国产精品久久免费看| 中文在线资源观看网站视频免费不卡| 久久综合久久综合久久综合| 日韩亚洲欧美中文三级| 日韩精品综合一本久道在线视频| 日韩欧美国产综合一区| 久久色在线视频| 国产日韩精品一区二区浪潮av| 欧美激情一区二区三区| 亚洲特级片在线| 亚洲国产欧美另类丝袜| 男男视频亚洲欧美| 久久精品视频在线免费观看| 亚洲精品在线观看视频| 国产精品欧美久久久久无广告| 亚洲图片另类小说| 婷婷综合五月天| 国产一区二区网址| 91网站最新网址| 在线播放国产精品二区一二区四区| 91麻豆精品91久久久久久清纯| 欧美变态tickling挠脚心| 中文幕一区二区三区久久蜜桃| 一片黄亚洲嫩模| 国产剧情一区在线| 欧美性一二三区| 久久久亚洲精品一区二区三区 | 国产精品久久三区| 亚洲一区二区三区四区不卡| 激情成人综合网| 91网上在线视频| 欧美一级xxx| 亚洲欧美日韩一区二区| 麻豆精品视频在线观看免费| av亚洲精华国产精华精华| 欧美日韩国产色站一区二区三区| 欧美一区二区三区免费视频| 国产精品大尺度| 精品亚洲成a人| 91久久精品一区二区| 久久综合色天天久久综合图片| 一区二区三区产品免费精品久久75| 九色综合国产一区二区三区| 欧美亚洲免费在线一区| 国产精品久久久久久久久晋中 | 精品欧美乱码久久久久久| 综合色天天鬼久久鬼色| 精品一区二区成人精品| 欧美系列亚洲系列| 中文字幕一区二区在线观看| 狠狠色丁香九九婷婷综合五月| 一道本成人在线| 国产精品女主播av| 国产伦精品一区二区三区免费迷| 欧美日韩小视频| 亚洲精品成人在线| www.av精品| 国产欧美一区二区三区鸳鸯浴| 奇米亚洲午夜久久精品| 欧美日韩国产经典色站一区二区三区| 中文字幕一区二区三区不卡在线| 极品少妇xxxx偷拍精品少妇| 91精品久久久久久蜜臀| 天天操天天色综合| 欧美日韩在线播放| 亚洲一区二区高清| 欧美日韩免费在线视频| 亚洲一区二区综合| 欧美三级中文字| 亚洲精品免费在线观看| 91在线国产观看| 亚洲免费观看高清| 在线观看免费成人| 国产午夜精品理论片a级大结局| 国产一区二区影院| 精品第一国产综合精品aⅴ| 看电影不卡的网站| 久久久久久久久一| 成人国产精品免费网站| 中文字幕一区在线观看视频| 成人夜色视频网站在线观看| 欧美激情一区二区三区不卡| 99re成人精品视频| 亚洲一级不卡视频| 日韩一区二区三区视频在线观看| 久久国产免费看| 国产区在线观看成人精品| 一区二区三区在线免费播放| 欧美三级韩国三级日本一级| 蜜桃精品视频在线观看| 国产夜色精品一区二区av| 91麻豆精品在线观看| 午夜精品福利一区二区三区av | 国产日韩欧美麻豆| caoporn国产精品| 亚洲一区二区三区美女| 91精品国产麻豆| 国产成人精品亚洲777人妖| 亚洲男人的天堂在线观看| 欧美日本国产视频| 国产毛片精品一区| 亚洲精品国产高清久久伦理二区| 91精品久久久久久久99蜜桃| 国产91精品欧美| 亚洲电影视频在线| 久久久久久麻豆| 欧美日韩午夜精品| 国产91精品精华液一区二区三区| 亚洲自拍偷拍综合| 国产亚洲欧洲一区高清在线观看| a在线播放不卡| 日本va欧美va瓶| 亚洲精品自拍动漫在线| 精品久久五月天| 精品视频一区三区九区| 丁香六月综合激情| 免费欧美高清视频| 一区二区三区在线免费视频| 国产婷婷色一区二区三区| 欧美日韩一区视频| 成人午夜激情片| 九九精品视频在线看| 亚洲午夜久久久| 最新久久zyz资源站| 久久久精品tv| 日韩午夜电影av| 在线影院国内精品| proumb性欧美在线观看| 激情国产一区二区| 日产欧产美韩系列久久99| 亚洲精品一二三区| 久久免费看少妇高潮| 欧美一级片免费看| 欧美乱妇15p| 欧美日精品一区视频| 91丨porny丨最新| 成人爱爱电影网址| 国产成人在线免费观看| 国产在线看一区| 国产综合色产在线精品| 六月丁香婷婷色狠狠久久| 日韩国产成人精品| 日韩一区精品字幕| 免费人成在线不卡| 美脚の诱脚舐め脚责91| 免费在线观看一区| 久久99深爱久久99精品| 欧美一级二级三级蜜桃| 日韩一级欧美一级| 欧美精品一区二区三区在线| 日韩精品一区二区三区四区视频 | 国产一区二区三区精品视频| 一区二区三区小说| 国产精品国产三级国产三级人妇| 亚洲精品一区二区三区香蕉| 国产iv一区二区三区| 成人免费高清在线观看| 国产凹凸在线观看一区二区| 国产91在线观看丝袜| 99久久综合狠狠综合久久| 91免费国产在线| 欧美日韩国产在线观看| 欧美一二三四区在线| 久久毛片高清国产| 1024亚洲合集| 亚洲最大色网站| 久热成人在线视频| 国产日产欧美一区二区三区| 亚洲精选视频免费看| 蜜臀av性久久久久av蜜臀妖精| 精品亚洲aⅴ乱码一区二区三区| 国产成人啪免费观看软件| 97se亚洲国产综合在线| 欧美日本一区二区| 精品国产免费一区二区三区香蕉| 国产日韩精品视频一区| 亚洲一区二区影院| 国产在线国偷精品免费看| 99re在线视频这里只有精品| 制服丝袜av成人在线看| 欧美国产激情一区二区三区蜜月| 亚洲欧美日韩在线不卡| 久久99国产精品尤物| 本田岬高潮一区二区三区| 色八戒一区二区三区| 精品国产麻豆免费人成网站| 亚洲人成网站精品片在线观看| 日本vs亚洲vs韩国一区三区 | 狠狠色综合日日| 不卡的电影网站| 免费日本视频一区|