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

📄 st_pti.c

📁 ST5100 driver files for ST chipset
💻 C
📖 第 1 页 / 共 5 页
字号:
 * -------------------------------------------------------------------------- */
static BOOL TTPTI_AudioStart (parse_t *pars_p, char *result_sym_p)
{
    BOOL                RetErr;
    ST_ErrorCode_t      ErrCode;
    PTI_DeviceId_t      DeviceId;
    PTI_HandleId_t      HandleId;
    S32                 Lvar;
    int                 AudPid;

    DeviceId = 0;
    HandleId = 0;
    RetErr   = FALSE;
    ErrCode  = ST_NO_ERROR;

#if (TTPTI_MULTI_INSTANCE == TRUE)
    /* get DeviceId */
    RetErr = PtiGetParamDeviceId(pars_p, &DeviceId);
    if (RetErr == TRUE)
    {
        STTST_TagCurrentLine(pars_p, "expected Device Id");
    }

    /* get HandleId */
    if (RetErr == FALSE)
    {
        RetErr = PtiGetParamHandleId(pars_p, &HandleId);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected HandleId (from 0 to PTI_MAXOPEN)");
        }
    }
#endif  /* (TTPTI_MULTI_INSTANCE == TRUE) */

    /* get the Pid */
    if (RetErr == FALSE)
    {
        RetErr = STTST_GetInteger(pars_p, 0, &Lvar);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected Audio Pid");
        }
        AudPid = (int)Lvar;
    }

    /* call pti function */
    if ( (RetErr == FALSE) && ( HandleId < PTI_MAXOPEN ) )
    {
        ErrCode = PTI_AudioStart(DeviceId, HandleId, AudPid);
        if ( ErrCode != ST_NO_ERROR)
        {
            RetErr = TRUE;
        }
    }

    if (RetErr == TRUE)
    {
        API_ErrorCount++;
    }

    STTST_AssignInteger(result_sym_p, RetErr, FALSE);
    return ( API_EnableError ? RetErr : FALSE );

} /* TTPTI_AudioStart () */

/* -----------------------------------------------------------------------------
 * Name        : TTPTI_PCRStart
 * Description : Start Pcr
 * Parameters  : *pars_p, *result_sym_p
 * Assumptions :
 * Limitations :
 * Returns     : TRUE if error, FALSE if success
 * -------------------------------------------------------------------------- */
static BOOL TTPTI_PCRStart (parse_t *pars_p, char *result_sym_p)
{
    BOOL                RetErr;
    ST_ErrorCode_t      ErrCode;
    PTI_DeviceId_t      DeviceId;
    PTI_HandleId_t      HandleId;
    S32                 Lvar;
    int                 PCRPid;

    DeviceId = 0;
    HandleId = 0;
    RetErr   = FALSE;
    ErrCode  = ST_NO_ERROR;

#if (TTPTI_MULTI_INSTANCE == TRUE)
    /* get DeviceId */
    RetErr = PtiGetParamDeviceId(pars_p, &DeviceId);
    if (RetErr == TRUE)
    {
        STTST_TagCurrentLine(pars_p, "expected Device Id");
    }

    /* get HandleId */
    if (RetErr == FALSE)
    {
        RetErr = PtiGetParamHandleId(pars_p, &HandleId);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected HandleId (from 0 to PTI_MAXOPEN)");
        }
    }
#endif  /* (TTPTI_MULTI_INSTANCE == TRUE) */

    /* get the Pid */
    if (RetErr == FALSE)
    {
        RetErr = STTST_GetInteger(pars_p, 0, &Lvar);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected PCR Pid");
        }
        PCRPid = (int)Lvar;
    }

    /* call pti function */
    if ( (RetErr == FALSE) && ( HandleId < PTI_MAXOPEN ) )
    {
        ErrCode = PTI_PCRStart(DeviceId, HandleId, PCRPid);
        if ( ErrCode != ST_NO_ERROR)
        {
            RetErr = TRUE;
        }
    }

    if (RetErr == TRUE)
    {
        API_ErrorCount++;
    }

    STTST_AssignInteger(result_sym_p, RetErr, FALSE);
    return ( API_EnableError ? RetErr : FALSE );

} /* TTPTI_PCRStart () */

/* -----------------------------------------------------------------------------
 * Name        : TTPTI_TTXStart
 * Description : Start TTX
 * Parameters  : *pars_p, *result_sym_p
 * Assumptions :
 * Limitations :
 * Returns     : TRUE if error, FALSE if success
 * -------------------------------------------------------------------------- */
static BOOL TTPTI_TTXStart (parse_t *pars_p, char *result_sym_p)
{
    BOOL                RetErr;
    ST_ErrorCode_t      ErrCode;
    PTI_DeviceId_t      DeviceId;
    PTI_HandleId_t      HandleId;
    S32                 Lvar;
    int                 TTXPid;

    DeviceId = 0;
    HandleId = 0;
    RetErr   = FALSE;
    ErrCode  = ST_NO_ERROR;

#if (TTPTI_MULTI_INSTANCE == TRUE)
    /* get DeviceId */
    RetErr = PtiGetParamDeviceId(pars_p, &DeviceId);
    if (RetErr == TRUE)
    {
        STTST_TagCurrentLine(pars_p, "expected Device Id");
    }

    /* get HandleId */
    if (RetErr == FALSE)
    {
        RetErr = PtiGetParamHandleId(pars_p, &HandleId);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected HandleId (from 0 to PTI_MAXOPEN)");
        }
    }
#endif  /* (TTPTI_MULTI_INSTANCE == TRUE) */

    /* get the Pid */
    if (RetErr == FALSE)
    {
        RetErr = STTST_GetInteger(pars_p, 0, &Lvar);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected TTX Pid");
        }
        TTXPid = (int)Lvar;
    }

    /* call pti function */
    if ( (RetErr == FALSE) && ( HandleId < PTI_MAXOPEN ) )
    {
        ErrCode = PTI_TTXStart(DeviceId, HandleId, TTXPid);
        if ( ErrCode != ST_NO_ERROR)
        {
            RetErr = TRUE;
        }
    }

    if (RetErr == TRUE)
    {
        API_ErrorCount++;
    }

    STTST_AssignInteger(result_sym_p, RetErr, FALSE);
    return ( API_EnableError ? RetErr : FALSE );

} /* TTPTI_TTXStart () */

/* -----------------------------------------------------------------------------
 * Name        : TTPTI_VideoStart
 * Description : Start Video
 * Parameters  : *pars_p, *result_sym_p
 * Assumptions :
 * Limitations :
 * Returns     : TRUE if error, FALSE if success
 * -------------------------------------------------------------------------- */
static BOOL TTPTI_VideoStart (parse_t *pars_p, char *result_sym_p)
{
    BOOL                RetErr;
    ST_ErrorCode_t      ErrCode;
    PTI_DeviceId_t      DeviceId;
    PTI_HandleId_t      HandleId;
    S32                 Lvar;
    int                 VidPid;

    DeviceId = 0;
    HandleId = 0;
    RetErr   = FALSE;
    ErrCode  = ST_NO_ERROR;

#if (TTPTI_MULTI_INSTANCE == TRUE)
    /* get DeviceId */
    RetErr = PtiGetParamDeviceId(pars_p, &DeviceId);
    if (RetErr == TRUE)
    {
        STTST_TagCurrentLine(pars_p, "expected Device Id");
    }

    /* get HandleId */
    if (RetErr == FALSE)
    {
        RetErr = PtiGetParamHandleId(pars_p, &HandleId);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected HandleId (from 0 to PTI_MAXOPEN)");
        }
    }
#endif  /* (TTPTI_MULTI_INSTANCE == TRUE) */

    /* get the Pid */
    if (RetErr == FALSE)
    {
        RetErr = STTST_GetInteger(pars_p, 0, &Lvar);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected Video Pid");
        }
        VidPid = (int)Lvar;
    }

    /* call pti function */
    if ( (RetErr == FALSE) && ( HandleId < PTI_MAXOPEN ) )
    {
	#ifdef ST_7020
        ErrCode = PTI_VideoStart(DeviceId, HandleId, VidPid);
	#else
		ErrCode = PTI_VideoStart(DeviceId, HandleId);
	#endif
        if ( ErrCode != ST_NO_ERROR)
        {
            RetErr = TRUE;
        }
    }

    if (RetErr == TRUE)
    {
        API_ErrorCount++;
    }

    STTST_AssignInteger(result_sym_p, RetErr, FALSE);
    return ( API_EnableError ? RetErr : FALSE );

} /* TTPTI_VideoStart () */


/* -----------------------------------------------------------------------------
 * Name        : TTPTI_ChangeSlotPid
 * Description : Change Pid fro audio/video/pcr
 * Parameters  : *pars_p, *result_sym_p
 * Assumptions :
 * Limitations :
 * Returns     : TRUE if error, FALSE if success
 * -------------------------------------------------------------------------- */
static BOOL TTPTI_ChangeSlotPid (parse_t *pars_p, char *result_sym_p)
{
    BOOL                RetErr;
    ST_ErrorCode_t      ErrCode;
    PTI_DeviceId_t      DeviceId;
    PTI_HandleId_t      HandleId;
    S32                 Lvar;
    int                 VidPid;
    PTI_SlotTypeId_t    SlotType;

    DeviceId = 0;
    HandleId = 0;
    RetErr   = FALSE;
    ErrCode  = ST_NO_ERROR;
    SlotType = PTI_SLOT_TYPE_MAXID;

#if (TTPTI_MULTI_INSTANCE == TRUE)
    /* get DeviceId */
    RetErr = PtiGetParamDeviceId(pars_p, &DeviceId);
    if (RetErr == TRUE)
    {
        STTST_TagCurrentLine(pars_p, "expected Device Id");
    }

    /* get HandleId */
    if (RetErr == FALSE)
    {
        RetErr = PtiGetParamHandleId(pars_p, &HandleId);
        if ( (RetErr == TRUE) || (HandleId >= PTI_MAXOPEN) )
        {
            STTST_TagCurrentLine(pars_p, "expected HandleId (from 0 to PTI_MAXOPEN)");
            RetErr = TRUE;
        }
    }
#endif  /* (TTPTI_MULTI_INSTANCE == TRUE) */

    /* get the Type */
    if (RetErr == FALSE)
    {
        RetErr = STTST_GetInteger(pars_p, 0, (S32 *)&SlotType);
        if ( (RetErr == TRUE) || (SlotType == PTI_SLOT_TYPE_MAXID) )
        {
            STTST_TagCurrentLine(pars_p, "expected Type: PTI_TYPE_VIDEO PTI_TYPE_AUDIO PTI_TYPE_PCR");
            RetErr = TRUE;
        }
    }

    /* get the Pid */
    if (RetErr == FALSE)
    {
        RetErr = STTST_GetInteger(pars_p, 0, &Lvar);
        if (RetErr == TRUE)
        {
            STTST_TagCurrentLine(pars_p, "expected Pid");
        }
        VidPid = (int)Lvar;
    }

    /* call pti function */
    if (RetErr == FALSE)
    {
        ErrCode = PTI_ChangeSlotPid(DeviceId, HandleId, SlotType, VidPid);
        if ( ErrCode != ST_NO_ERROR)
        {
            RetErr = TRUE;
        }
    }

    if (RetErr == TRUE)
    {
        API_ErrorCount++;
    }

    STTST_AssignInteger(result_sym_p, RetErr, FALSE);
    return ( API_EnableError ? RetErr : FALSE );

} /* TTPTI_ChangeSlotPid () */



/* -----------------------------------------------------------------------------
 * Name        : TTPTI_GetCountInf
 * Description : Get Pti Counter for each open slot
 * Parameters  : *pars_p, *result_sym_p
 * Assumptions :
 * Limitations :
 * Returns     : TRUE if error, FALSE if success
 * -------------------------------------------------------------------------- */
static BOOL TTPTI_GetCountInf( parse_t *pars_p, char *result_sym_p )
{
    ST_ErrorCode_t  ErrCode;
    BOOL            RetErr;
    U16             Count16=0;
    U32             Count=0;
    STPTI_Pid_t     Pid ;
    U32             ii, jj, kk;
	STPTI_ScrambleState_t ScrambleState;
    S8                    Scrambled[4][20] = { "Unknown SCRAMBLING",
                                               "No SCRAMBLING",

⌨️ 快捷键说明

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