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

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

?? psl_external_interface.cpp

?? 這是DVD中伺服部分的核心代碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateParentalLevel();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateParentalLevel: NULL handle!\n"));
    }
}

/**
 * PslExternalUpdateCountryStandard -- update country standard configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateCountryStandard(PSL_HANDLE *pPSL)
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateCountryCode();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateCountryStandard: NULL handle!\n"));
    }
}

/**
 * PslExternalUpdateLanguageSubtitle -- update aspect ratio configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateTvAspectRatio(PSL_HANDLE *pPSL)
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateTvType();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateTvAspectRatio: NULL handle!\n"));
    }
}

/**
 * PslExternalUpdateLanguageSubtitle -- update video format configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateVideoFormat(PSL_HANDLE *pPSL)
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateVideoFormat();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateVideoFormat: NULL handle!\n"));
    }
}
   
/**
 * PslExternalUpdateLanguageSubtitle -- update spdif configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateSPDIF(PSL_HANDLE *pPSL)
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateSPDIF();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateSPDIF: NULL handle!\n"));
    }
}    
 
/**
 * RemoteCommandCallback -- Receives callbacks from remote api
 *
 * @param
 *      pvContext   -- PVOID param
 *      KeyCode     -- remote key code 
 *      Repeat      -- repeat flag
 *
 * @retval
 *    none.
 */
static void RemoteCommandCallback(PVOID pvContext, RC_KEY KeyCode, ULONG Repeat)
{
    PSL_USER_INPUT_TYPE tUserInput;
    ULONG               ulInfo              = 0;
    BOOLEAN             fDispatchCommand    = TRUE;

    /*
     * Map the remote control key code to a PSL user input type
     */
    switch (KeyCode)
    {
    case RC_BTN_EXIT:
        tUserInput = PSL_USER_INPUT_EXIT;
        break;
    case RC_BTN_RETURN:
        tUserInput = PSL_USER_INPUT_RETURN;
        break;
    case RC_BTN_PLAY:
        tUserInput = PSL_USER_INPUT_PLAY;
        break;
    case RC_BTN_PAUSE:
        tUserInput = PSL_USER_INPUT_PAUSE;
        break;
    case RC_BTN_INFO:
        tUserInput = PSL_USER_INPUT_INFO;
        break;
    case RC_BTN_SKIP_FWD:
        tUserInput = PSL_USER_INPUT_SKIP_FWD;
        break;
    case RC_BTN_SKIP_BWD:
        tUserInput = PSL_USER_INPUT_SKIP_BWD;
        break;
    case RC_BTN_FAST_FWD:
        tUserInput = PSL_USER_INPUT_FAST_FWD;
        break;
    case RC_BTN_FAST_RWD:
        tUserInput = PSL_USER_INPUT_FAST_RWD;
        break;
    case RC_BTN_SLOW_FWD:
        tUserInput = PSL_USER_INPUT_SLOW_FWD;
        break;
    case RC_BTN_SLOW_RWD:
        tUserInput = PSL_USER_INPUT_SLOW_RWD;
        break;
    case RC_BTN_STEP_FWD:
        tUserInput = PSL_USER_INPUT_STEP_FWD;
        break;
    case RC_BTN_ANGLE:
        tUserInput = PSL_USER_INPUT_ANGLE;
        break;
    case RC_BTN_REPEAT_AB:
        tUserInput = PSL_USER_INPUT_REPEAT_AB;
        break;
    case RC_BTN_REPEAT:
        tUserInput = PSL_USER_INPUT_REPEAT;
        break;
    case RC_BTN_AUDIO_SELECT:
        tUserInput = PSL_USER_INPUT_AUDIO;
        break;
    case RC_BTN_VOL_UP:
        tUserInput = PSL_USER_INPUT_VOL_UP;
        break;
    case RC_BTN_VOL_DOWN:
        tUserInput = PSL_USER_INPUT_VOL_DOWN;
        break;
    case RC_BTN_VOL_MUTE:
        tUserInput = PSL_USER_INPUT_VOL_MUTE;
        break;
    case RC_BTN_ZOOM:
        tUserInput = PSL_USER_INPUT_ZOOM;
        break;
    case RC_BTN_UP:
        tUserInput = PSL_USER_INPUT_UP;
        break;
    case RC_BTN_DOWN:
        tUserInput = PSL_USER_INPUT_DOWN;
        break;
    case RC_BTN_LEFT:
        tUserInput = PSL_USER_INPUT_LEFT;
        break;
    case RC_BTN_RIGHT:
        tUserInput = PSL_USER_INPUT_RIGHT;
        break;
    case RC_BTN_ENTER:
        tUserInput = PSL_USER_INPUT_SELECT;
        break;
    case RC_BTN_STOP:
        tUserInput = PSL_USER_INPUT_STOP;
        break;
    case RC_BTN_POWER:
        tUserInput = PSL_USER_INPUT_POWER;
        break;
    case RC_BTN_EJECT:
        tUserInput = PSL_USER_INPUT_EJECT;
        break;
    case RC_BTN_MENU:
        tUserInput = PSL_USER_INPUT_MENU;
        break;
    case RC_BTN_TITLE:
        tUserInput = PSL_USER_INPUT_TITLE;
        break;
    case RC_BTN_0:
    case RC_BTN_1:
    case RC_BTN_2:
    case RC_BTN_3:
    case RC_BTN_4:
    case RC_BTN_5:
    case RC_BTN_6:
    case RC_BTN_7:
    case RC_BTN_8:
    case RC_BTN_9:
        tUserInput  = PSL_USER_INPUT_DIGIT;
        ulInfo      = KeyCode - RC_BTN_0;
        break;
    case RC_BTN_SETUP:
        tUserInput = PSL_USER_INPUT_SETUP;
        break;
    case RC_BTN_SUB_TITLES:
        tUserInput = PSL_USER_INPUT_SUBTITLE;
        break;
    case RC_BTN_DISPLAY:
        tUserInput = PSL_USER_INPUT_DISPLAY;
        break;
    case RC_BTN_SEARCH:
        tUserInput = PSL_USER_INPUT_SEARCH;
        break;
    default:
        DBGPRINT(DBG_ON(DBG_TRACE), ("RemoteCommandCallback: Unsupported command type\n"));
        fDispatchCommand = FALSE;
        break;
    }       

    /* If command is valid, then send it to the PSL thread */
    if (fDispatchCommand == TRUE)
    {
        if (PslSendProcessUserInput(tUserInput, ulInfo, 0) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("RemoteCommandCallback: Failure sending user input!\n"));
        }
    }
}

/**
 * StatusEventCallback -- Receives callbacks from navigator
 *
 * @param
 *      pulEvent    -- pointer to unsolicted status event
 *      pvParam     -- pointer to param that was registered with callback
 *
 * @retval
 *      none.
 */
static void StatusEventCallback(ULONG *pulEvent, PVOID pvParam)
{
    PSL_STATUS_TYPE tStatusEvent;
    BOOLEAN         fDispatchStatus = TRUE;
    ULONG           ulData1         = 0;
    ULONG           ulData2         = 0;
    PVOID           pvBuffer        = NULL;
    ULONG           ulBufferSize    = 0;

    if (pulEvent == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("StatusEventCallback: NULL pointer!\n"));
    }

    /*
     * Map the VDVD status event to a PSL status event type.
     */
    switch (pulEvent[0])
    {
    case VDVD_STATUS_PROHIBITED:
        if (pulEvent[1] == VDVD_INFO_PROH_NO_RESUME)
        {
            tStatusEvent = PSL_STATUS_NO_RESUME;
        }
        else
        {
            tStatusEvent = PSL_STATUS_PROHIBITED;
        }
        break;
    case VDVD_STATUS_PAUSE:    
        tStatusEvent    = PSL_STATUS_PAUSE;
        break; 
    case VDVD_STATUS_PLAY:      
        tStatusEvent    = PSL_STATUS_PLAY;
        break;
    case VDVD_STATUS_STOP:     
        if (pulEvent[1] == 0)
        { 
            tStatusEvent = PSL_STATUS_STOP;
        }
        else
        {
            tStatusEvent = PSL_STATUS_FULLSTOP;
        }
        break;
    case VDVD_STATUS_OPEN:      
        tStatusEvent    = PSL_STATUS_OPEN;
        break;
    case VDVD_STATUS_CLOSE:     
        tStatusEvent    = PSL_STATUS_CLOSE;
        break;
    case VDVD_STATUS_SLOW_F:    
        tStatusEvent    = PSL_STATUS_SLOW_FWD;
        break;
    case VDVD_STATUS_SLOW_B:  
        tStatusEvent    = PSL_STATUS_SLOW_RWD;
        break;
    case VDVD_STATUS_FAST_F:      
        tStatusEvent    = PSL_STATUS_FAST_FWD;
        break;
    case VDVD_STATUS_FAST_B:      
        tStatusEvent    = PSL_STATUS_FAST_RWD;
        break;
    case VDVD_STATUS_CHAPTER_SKIP:
        tStatusEvent = PSL_STATUS_CHAPTER_SKIP;
        ulData1      = pulEvent[1];
        break;
    case VDVD_STATUS_STEP:        
        tStatusEvent    = PSL_STATUS_STEP_FWD;
        break;
    case VDVD_STATUS_REPEAT:   
        tStatusEvent    = PSL_STATUS_REPEAT;
        ulData1         = pulEvent[1];
        break;   
    case VDVD_STATUS_A_B:         
        tStatusEvent    = PSL_STATUS_REPEAT;
        if (pulEvent[1] == 1)
        {
            ulData1 = VDVD_INFO_REPEAT_A;
        }
        else
        {
            ulData1 = VDVD_INFO_REPEAT_AB;
        }
        break;
    case VDVD_STATUS_NO_DISC:     
        tStatusEvent    = PSL_STATUS_NO_DISC;
        break;
    case VDVD_STATUS_DISC_TYPE:   
        tStatusEvent = PSL_STATUS_DISC_TYPE;
        switch (pulEvent[1])
        {
        case MEDIA_FORMAT_DVD_A:
        case MEDIA_FORMAT_DVD_V:
            ulData1 = VDVD_INFO_DISCTYPE_DVD;
            break;
        case MEDIA_FORMAT_BDROM:
            ulData1 = VDVD_INFO_DISCTYPE_BDROM;
            break;
        case MEDIA_FORMAT_MP3:
            ulData1 = VDVD_INFO_DISCTYPE_MP3;
            break;
        case MEDIA_FORMAT_CDDA:
            ulData1 = VDVD_INFO_DISCTYPE_CDDA;
            break;
        case MEDIA_FORMAT_VCD:
            ulData1 = VDVD_INFO_DISCTYPE_VCD;
            break;
        case MEDIA_FORMAT_UNKNOWN:
        default:
            ulData1 = VDVD_INFO_DISCTYPE_UNKNOWN;
            break;
        }
        break;
    case VDVD_STATUS_LOADING:     
        tStatusEvent    = PSL_STATUS_LOADING;
        break;
    case VDVD_STATUS_LOAD_COMPLETE:
        tStatusEvent    = PSL_STATUS_LOAD_COMPLETE;
        break;
    case VDVD_STATUS_ANGLE_CHG:
        tStatusEvent    = PSL_STATUS_ANGLE_CHANGE;
        ulData1         = pulEvent[1];
        break;
    case VDVD_STATUS_AUDIO_CHG:
        tStatusEvent    = PSL_STATUS_AUDIO_CHANGE;
        ulData1         = pulEvent[1];
        ulData2         = pulEvent[2];
        pvBuffer        = (PVOID)&pulEvent[3];
        ulBufferSize    = sizeof(ULONG) * 2;
        break;
    case VDVD_STATUS_INVALID_REGION:
        tStatusEvent    = PSL_STATUS_INVALID_REGION;
        ulData1         = pulEvent[1];
        break;
    case VDVD_STATUS_STANDBY_ON:
    case VDVD_STATUS_STANDBY_OFF:
        tStatusEvent    = PSL_STATUS_STANDBY;
        break;
    case VDVD_STATUS_SETTMPPML:
        tStatusEvent    = PSL_STATUS_SETTMPPML;
        break;
    case VDVD_STATUS_PARENTAL_PROHIBIT:
        tStatusEvent    = PSL_STATUS_PARENTAL_PROHIBIT;
        break;
    case VDVD_STATUS_AUDIO_NOT_SUPPORTED:
        tStatusEvent    = PSL_STATUS_AUDIO_NOT_SUPPORTED;
        ulData1         = pulEvent[1];
        break;
    default:
        DBGPRINT(DBG_ON(DBG_TRACE), ("StatusEventCallback: Unsupported status event type = %d\n", pulEvent[0]));
        fDispatchStatus = FALSE;
        break;
    }

    /* If status event is valid, then send it to the PSL thread */
    if (fDispatchStatus == TRUE)
    {
        if (PslSendProcessStatus(tStatusEvent, ulData1, ulData2, pvBuffer, ulBufferSize, 0) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("StatusEventCallback: Failure sending status event!\n"));
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区美女在线| 91久久精品一区二区二区| 91美女蜜桃在线| 欧美v国产在线一区二区三区| 一区二区在线观看免费| 国产精品影视在线观看| 欧美一区二区三区视频免费播放| 国产精品久久久久久久久果冻传媒| 免费高清成人在线| 欧美美女一区二区在线观看| 国产精品福利影院| 国产精品一区三区| 欧美成人性战久久| 蜜芽一区二区三区| 精品1区2区3区| 亚洲一区在线电影| 91福利资源站| 亚洲精品自拍动漫在线| 粉嫩aⅴ一区二区三区四区五区| 亚洲精品一区二区三区四区高清| 日韩福利电影在线观看| 欧美日韩国产一区二区三区地区| 一区二区三区视频在线看| 成人免费视频caoporn| 中文字幕乱码日本亚洲一区二区| 国产一区二区中文字幕| 久久天天做天天爱综合色| 玖玖九九国产精品| 91精品国产麻豆| 日本强好片久久久久久aaa| 日韩一区二区三区免费看 | 韩国女主播成人在线观看| 欧美精品tushy高清| 天天综合网天天综合色| 欧美精品在线视频| 九色综合狠狠综合久久| 亚洲精品一区二区三区福利| 国产一本一道久久香蕉| 中文字幕不卡在线| 色婷婷av一区二区三区大白胸| 一区二区不卡在线播放| 欧美人妖巨大在线| 精品中文字幕一区二区| 国产欧美日本一区视频| 99re这里只有精品视频首页| 一区二区三区在线免费播放| 欧美日韩不卡一区二区| 色综合久久综合网97色综合 | 久久精品72免费观看| 日韩免费看的电影| 国产精品中文字幕日韩精品| 日韩理论电影院| 欧美乱妇15p| 国产中文字幕一区| 亚洲图片欧美激情| 欧美人狂配大交3d怪物一区| 国内一区二区视频| 亚洲日本韩国一区| 正在播放一区二区| 高清久久久久久| 午夜欧美在线一二页| 久久亚洲精精品中文字幕早川悠里 | 国产拍揄自揄精品视频麻豆| 色视频成人在线观看免| 蜜臀av一区二区在线观看 | 久久久一区二区三区| av动漫一区二区| 美女久久久精品| 亚洲人一二三区| 精品国产露脸精彩对白| 色综合天天综合网国产成人综合天| 视频在线观看一区| 中文字幕在线不卡视频| 日韩一级二级三级| 色婷婷亚洲精品| 韩国视频一区二区| 日欧美一区二区| 亚洲三级免费观看| 26uuu国产在线精品一区二区| 欧美专区亚洲专区| 成人黄色电影在线| 精品一区二区三区蜜桃| 亚洲一卡二卡三卡四卡| 国产欧美一区二区三区鸳鸯浴| 欧美一区三区二区| 色成年激情久久综合| 国产福利一区在线| 蜜桃久久av一区| 亚洲午夜一区二区| 亚洲精品高清在线| 国产精品福利一区二区| 久久精品人人做人人综合 | 懂色av一区二区在线播放| 婷婷中文字幕综合| 亚洲免费大片在线观看| 中国色在线观看另类| 欧美精品一区二区三区蜜臀| 欧美理论片在线| 欧美优质美女网站| 色一情一乱一乱一91av| 成人激情av网| 成人激情开心网| 懂色av一区二区夜夜嗨| 国产一区二区在线观看免费 | 成人精品小蝌蚪| 国产一区二区三区高清播放| 看电影不卡的网站| 精品一区精品二区高清| 精品伊人久久久久7777人| 男女男精品视频| 秋霞电影一区二区| 免播放器亚洲一区| 精品一区二区三区日韩| 久久精品国产99久久6| 韩国v欧美v亚洲v日本v| 国产一区二区导航在线播放| 蜜桃免费网站一区二区三区| 麻豆国产精品777777在线| 免费日韩伦理电影| 美国毛片一区二区| 国产在线一区二区综合免费视频| 美女诱惑一区二区| 国产精品中文字幕日韩精品| 成人午夜电影久久影院| 99视频在线观看一区三区| 99精品欧美一区二区三区小说 | 欧美日韩亚州综合| 69久久99精品久久久久婷婷| 日韩一区二区三免费高清| www国产成人| 中文字幕一区二区在线观看| 一区二区视频在线| 三级久久三级久久| 国产呦萝稀缺另类资源| av在线一区二区| 欧美精品第1页| 国产欧美日韩三级| 亚洲国产精品久久艾草纯爱| 日韩av电影天堂| 国产成人超碰人人澡人人澡| 91捆绑美女网站| 91.麻豆视频| 欧美国产精品中文字幕| 亚洲一区在线播放| 国产精品原创巨作av| 色国产综合视频| 精品国产91洋老外米糕| 樱桃视频在线观看一区| 美脚の诱脚舐め脚责91| 99久久免费精品高清特色大片| 欧美精品国产精品| 中文字幕高清一区| 日韩电影免费一区| 成人综合在线观看| 日韩一区二区三区精品视频| 亚洲视频在线观看一区| 裸体歌舞表演一区二区| 欧洲精品一区二区| 亚洲国产成人自拍| 日本美女视频一区二区| 91影院在线观看| 久久综合色之久久综合| 一区二区三区国产| 成人精品视频网站| 日韩欧美www| 午夜视频一区二区| 99re成人精品视频| 久久久久亚洲综合| 青青草97国产精品免费观看 | 久久久亚洲综合| 日韩成人一级片| 日本韩国一区二区三区| 中文文精品字幕一区二区| 欧美aⅴ一区二区三区视频| 在线中文字幕不卡| 国产精品天美传媒| 国产精品99久久不卡二区| 91精品国产综合久久久久| 亚洲一二三四区不卡| 99精品视频在线观看| 国产精品久久看| 成人午夜看片网址| 2021国产精品久久精品| 久久国产综合精品| 欧美一区二区在线不卡| 性做久久久久久久久| 欧美专区日韩专区| 亚洲专区一二三| 欧美三片在线视频观看| 亚洲一区电影777| 欧美三级午夜理伦三级中视频| 亚洲色图.com| 91国产福利在线| 亚洲一区二区三区四区的| 欧美视频日韩视频在线观看| 一区二区成人在线视频| 在线观看免费成人| 性欧美大战久久久久久久久| 在线播放视频一区| 人人爽香蕉精品|