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

📄 psl_external_interface.cpp

📁 这是DVD中伺服部分的核心代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
   
/**
 * PslExternalGetPlayRate - query navigator for the play rate
 *
 * @param
 *      none.
 *
 * @retval
 *    playrate
 */
ULONG  PslExternalGetPlayRate(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetPlayRate: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetPlayRate() );
}

/**
 * PslExternalGetNumberOfTitles - query navigator for number of titles 
 *
 * @param
 *      none.
 *
 * @retval
 *    number of titles
 */
ULONG  PslExternalGetNumberOfTitles(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetNumberOfTitles: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetNumberOfTitles() );
}

/**
 * PslExternalGetNumberOfChapters - query navigator for number of chapters 
 *
 * @param
 *      none.
 *
 * @retval
 *    number of chapters
 */
ULONG  PslExternalGetNumberOfChapters(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetNumberOfChapters: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetNumberOfChapters() );
}

/**
 * PslExternalGetCurrentTitle - query navigator for current title number 
 *
 * @param
 *      none.
 *
 * @retval
 *    current title number
 */
ULONG  PslExternalGetCurrentTitle(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetCurrentTitle: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetCurrentTitle() );
}

/**
 * PslExternalGetCurrentChapter - query navigator for current chapter number
 *
 * @param
 *      none.
 *
 * @retval
 *    current chapter number
 */
ULONG  PslExternalGetCurrentChapter(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetCurrentChapter: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetCurrentChapter() );
}

/**
 * PslExternalGetNumberOfAngles - query navigator for number of available angles
 *
 * @param
 *      none.
 *
 * @retval
 *    number of available angles
 */
ULONG  PslExternalGetNumberOfAngles(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetNumberOfAngles: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetNumberOfAngles() );
}

/**
 * PslExternalGetNumberOfAudio - query navigator for number of available audio streams
 *
 * @param
 *      none.
 *
 * @retval
 *    number of available audio streams
 */
ULONG   PslExternalGetNumberOfAudio(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetNumberOfAudio: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetNumberOfAudioStreams() );
}

/**
 * PslExternalGetCurrentAngle - query navigator for current angle number
 *
 * @param
 *      none.
 *
 * @retval
 *    current angle number
 */
ULONG   PslExternalGetCurrentAngle(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetCurrentAngle: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetCurrentAngle() );
}

/**
 * PslExternalGetCurrentAudio - query navigator for current audio stream number
 *
 * @param
 *      none.
 *
 * @retval
 *    current audio stream number
 */
ULONG   PslExternalGetCurrentAudio(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetCurrentAudio: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetSelectedAudioStream() );
}

/**
 * PslExternalGetAudioLanguage - query navigator for language of audio stream
 *
 * @param
 *      ulAudioStream - audio stream number to get language of.
 *
 * @retval
 *    language code of audio stream
 */
ULONG  PslExternalGetAudioLanguage(ULONG ulAudioStream)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetAudioLanguage: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetAudioLangCode(ulAudioStream) );
}
 
/**
 * PslExternalGetTime - query navigator for play time
 *
 * @param
 *      ulTimeMode - time mode
 *
 * @retval
 *    current play time
 */
ULONG  PslExternalGetTime(ULONG  ulTimeMode)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetTime: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetPlayTime(ulTimeMode) );
}

/**
 * PslExternalGetRepeatMode - query navigator for repeat mode
 *
 * @param
 *      none.
 *
 * @retval
 *    repeat mode
 */
ULONG  PslExternalGetRepeatMode(void)
{
    DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetRepeatMode: stubbed\n"));
    return (0);
}
 
/**
 * PslExternalGetNumberOfSubtitles - query navigator for number of subtitles 
 *
 * @param
 *      none.
 *
 * @retval
 *    number of subtitles
 */
ULONG  PslExternalGetNumberOfSubtitles(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetNumberOfSubtitles: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetNumberOfSubtitleStreams() );
}
 
/**
 * PslExternalIsSubtitleStreamOn - query navigator for state of subtitles 
 *
 * @param
 *      none.
 *
 * @retval
 *    If subtitle stream is on, TRUE
 *    Otherwise, FALSE
 */
BOOLEAN PslExternalIsSubtitleStreamOn(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalIsSubtitleStreamOn: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->IsSubtitleStreamOn() );
}
 
/**
 * PslExternalGetCurrentSubtitle - query navigator for selected subtitle stream
 *
 * @param
 *      none.
 *
 * @retval
 *    current subtitle stream number
 */
ULONG  PslExternalGetCurrentSubtitle(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetCurrentSubtitle: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetSelectedSubtitleStream() );
}
 
/**
 * PslExternalGetSubtitleLanguage - query navigator for language of subtitle stream
 *
 * @param
 *      ulSubtitleStream - subtitle stream number to get language of.
 *
 * @retval
 *    language code of subtitle
 */
ULONG  PslExternalGetSubtitleLanguage(ULONG ulSubtitleStream)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetSubtitleLanguage: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetSubtitleLangCode(ulSubtitleStream) );
}
 
/**
 * PslExternalGetSubtitleState - query navigator for subtitle state
 *
 * @param
 *      none
 *
 * @retval
 *    TRUE if we are in ok state to display subtitles
 */
BOOLEAN PslExternalGetSubtitleState(void)
{
    /* Check that metanav is created */
    if (m_pMetaNav == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalGetSubtitleLanguage: Metanav not created!\n"));
        return (0);
    }

    return (m_pMetaNav->GetSubtitleState() );
}

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

/**
 * PslExternalUpdateLanguageAudio -- update audio language configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateLanguageAudio(PSL_HANDLE *pPSL)
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateAudioLanguage();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateLanguageAudio: NULL handle!\n"));
    }
}
 
/**
 * PslExternalUpdateLanguageMenu -- update dvd menu language configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateLanguageMenu(PSL_HANDLE *pPSL)
{
    if (pPSL != NULL)
    {
        /* update navigator configuration setting through metanav */
        m_pMetaNav->UpdateMenuLanguage();
    }
    else
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslExternalUpdateLanguageMenu: NULL handle!\n"));
    }
}
  
/**
 * PslExternalUpdateParentalLevel -- update parental level configuration setting
 *
 * @param
 *      pPSL - handle to internal psl data
 *
 * @retval
 *    none
 */
void  PslExternalUpdateParentalLevel(PSL_HANDLE *pPSL)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -