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

📄 cas21.h

📁 EMU_FTAbox_ref441328_code_source ali m3327
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************
*
*  ALi 
*
*  File: cas21.h
*
*  Description: 
*             
*  History:
*      Date        		Author         	Version   	Comment
*      ====        	      ======         	=======   	=======
*  	2003.08.18	
*
****************************************************************************/


#ifndef  TFCAS21EX_H
#define  TFCAS21EX_H 
#include "pub_st.h"
#ifdef  __cplusplus
extern "C" {
#endif
/*---------------------------以下接口是CAS提供给STB-------------------------------------*/
/*++
 * 在CA中将启动几个任务,bThreadPrior就是这几个任务的优先级
-*/
extern bool  TFCASTB_Init(BYTE bThreadPrior);
/*++
 * 这个函数将被用来判断是否是CASYSTEMID能够被当前CA识别	
-*/
extern bool  TFCASTB_IsTfCa(WORD wCaSystemID);
/*+
 *  这个函数用来重新格式化分配给CA的数据flash 
 *  如果flash的内容由于不正常关机或者其它原因导致错误可调用这个函数重新格式化flash  FormatType用 0
 *  如果想删除所有邮件 但是不想一封一封的删除 可以调用这个函数删除所有的邮件  FormatType用 1
 *  目前只支持 0 和1 其它FormatType值,不对flash做任何操作
-*/
extern void  TFCASTB_FormatBuffer(BYTE FormatType);
extern ULONG TFCASTB_GetVer(void);
extern bool  TFCASTB_SCInsert(void);
extern void  TFCASTB_SCRemove(void);
/*++
	if(用户切换频道||或者当前频道中ECMPID发生增加或者减少)
	{
		TFCASTB_SetEcmPid(TFCAS_LIST_FIRST,NULL);
		if(如果当前频道中有ECMPID,既节目是加扰的) //有几个ECMPID送几次,ECMPID相同送一次就可以
			TFCASTB_SetEcmPid(TFCAS_LIST_ADD,pServiceInfo);
		TFCASTB_SetEcmPid(TFCAS_LIST_OK,NULL);
	}
	if(当前频道中的某一个ECMPID控制的节目发生变化)
	{	
		修改pServiceInfo中的内容
		if(如果当前频道中有ECMPID,既节目是加扰的)//有几个ECMPID送几次,ECMPID相同送一次就可以
			TFCASTB_SetEcmPid(TFCAS_LIST_UPDATE,pServiceInfo);
		TFCASTB_SetEcmPid(TFCAS_LIST_OK,NULL);
	}
--*/
extern void  TFCASTB_SetEcmPid(BYTE byType,IN STFCASServiceInfo* pServiceInfo);
extern void  TFCASTB_SetEmmPid(WORD wEmmPid);
extern void  TFCASTB_PrivateDataGot(BYTE byReqID,bool bOK, WORD wPid,IN const BYTE* pbyReceiveData, WORD wLen);
/*++
说明 :
	这个例子可以修改PIN
例子:
	BYTE	byOldPin[TFCA_MAXLEN_PINCODE]={0x01,0x02,0x03,0x04,0x05,0x06};
	BYTE	byNewPin[TFCA_MAXLEN_PINCODE]={0x01,0x01,0x01,0x01,0x01,0x01};
	WORD	wRet = 0;
	wRet= TFCASTB_ChangePin(byOldPin,byNewPin)
	switch(wRet)
	{
		case TFCAS_OK;
			printf("修改成功");
			break;
		case other:
			printf("其它相应错误");
			break;
		default:
		  break;
	}
*/
extern WORD  TFCASTB_ChangePin(IN BYTE* pbyOldPin, IN BYTE* pbyNewPin);
extern WORD  TFCASTB_GetRating(OUT BYTE* pbyRating);
/*++
说明 :
	这个例子可以修改观看
例子:
	BYTE	byPin[TFCA_MAXLEN_PINCODE]={0x01,0x02,0x03,0x04,0x05,0x06};
	BYTE    byRating = 18;
	WORD	wRet = 0;
	wRet= TFCASTB_SetRating(byPin,byRating)
	switch(wRet)
	{
		case TFCAS_OK;
			printf("修改成功");
			break;
		case other:
			printf("其它相应错误");
			break;
		default:
		  break;
	}
级别说明:
   byRating的范围是[4,18],是年龄 
*/
extern WORD  TFCASTB_SetRating(IN BYTE* pbyPin,BYTE byRating);
extern WORD  TFCASTB_GetWorkTime(OUT BYTE* pbyStartHour, OUT BYTE* pbyEndHour);
extern WORD  TFCASTB_SetWorkTime(IN BYTE* pbyPin, BYTE byStartHour, BYTE byEndHour);
/*++
说明 :
	这个pwTVSID至少指向TFCA_MAXLEN_OPERATOR个WORD数组的地址,如果没有运营商pwTVSID[i]值是0
例子:
	WORD  wArrTvsID[TFCA_MAXLEN_OPERATOR];
	BYTE  index=0;
	STFCAOperatorInfo OperatorInfo;
	if(TFCASTB_GetOperatorIds(wArrTvsID) == TFCAS_OK)
	{
		for(index=0,index<TFCA_MAXLEN_OPERATOR;index++)
		{	
			if(wArrTvsID[index]==0)
				break;
			if(TFCASTB_GetOperatorInfo(wArrTvsID[index],&OperatorInfo) == TFCAS_OK)
			{
				printf("运营商ID: %d 运营商名称:%s \r\n",wArrTvsID[i],OperatorInfo.m_szTVSPriInfo);
			}
		}
	}
--*/
extern WORD TFCASTB_GetOperatorIds(OUT WORD* pwTVSID);
extern WORD TFCASTB_GetOperatorInfo(WORD wTVSID,OUT STFCAOperatorInfo* pOperatorInfo);
/*++
说明 :
	这个pACArray至少指向TFCA_MAXLEN_ACLIST个ULONG数组的地址
例子:
	ULONG  ACArray[TFCA_MAXLEN_ACLIST];
    WORD   wOperatorID = 12345;
    if(TFCASTB_GetACList(wOperatorID,ACArray) == TFCAS_OK)
	{
		printf("Get operator AC OK!);
	}
--*/
extern WORD TFCASTB_GetACList(WORD wTVSID,ULONG * pACArray);
extern WORD TFCASTB_IsPinLocked(OUT bool* pbPinLock);
extern WORD TFCASTB_SetPaired(BYTE* pPinCode);
/*++
说明 :
	检查当前机顶盒和智能卡对应的情况
例子:
	WORD  wRet = 0;
	wRet = TFCASTB_IsPaired();
	if(wRet == TFCAS_OK)
		printf("当前机卡对应");	
	else if(wRet == TFCAS_CARD_INVALID)
		printf("检测不到有效智能卡");	
	else if(wRet == TFCAS_CARD_NOPAIR)
		printf("智能卡没有对应任何机顶盒");	
	else if(wRet == TFCAS_CARD_PAIROTHER)
		printf("智能卡已经对应其它机顶盒");	

--*/
extern WORD TFCASTB_IsPaired(void);
/*++
说明 :
	获得某一个运营商的授权信息
例子:
	STFCAEntitles Entitle;
	WORD	wRet = 0;
	WORD	wIndex;
	wRet= TFCASTB_GetServiceEntitles(1,&Entitle);
	if(wRet == TFCAS_OK)
	{
		printf("共有授权 %d个",Entitle.m_wProductCount);
		for(wIndex =0 ; wIndex < Entitle.m_wProductCount ; wIndex++)
		{
			printf("节目ID %d\n:",Entitle.m_Entitles[wIndex].m_dwProductID);
			printf("节目是否允许录像 %d\n:",Entitle.m_Entitles[wIndex].m_bCanTape);
			printf("授权结束时间\n:",Entitle.m_Entitles[wIndex].m_tExpriData);
		}
	}
	else
		printf("相应的错误");
*/
extern WORD TFCASTB_GetServiceEntitles(WORD wTVSID,OUT STFCAEntitles* pServiceEntitles);
extern void TFCASTB_RefreshInterface(void);

#if INCLUDE_IPPV_APP
	/*++
	说明 :
		获得一个运营商的某一个钱包所有的IPPV节目
	例子:
		WORD  wNumber;
		STFCAIppvInfo  ArrIppv[TFCA_MAXLEN_IPPVP];
		wNumber = TFCA_MAXLEN_IPPVP;
		if(TFCASTB_GetIPPVProgram(1,1,ArrIppv,&wNumber) == TFCAS_OK)
		{
			for(BYTE i = 0;i<wNumber;i++)
			{
				printf("节目ID = %4x\r\n",ArrIppv[i].m_wProductID);
			}
		}
	--*/
	extern WORD TFCASTB_GetIPPVProgram(WORD wTVSID,BYTE bySlotID,OUT STFCAIppvInfo* pIppv,INOUT  WORD* pwNumber);
	/*++
	说明 :
		这个byArrSlotID必须指向TFCA_MAXLEN_SLOT数组的地址
	例子:
		BYTE  byArrSlotID[TFCA_MAXLEN_SLOT];
		if(TFCASTB_GetSlotIDs(1,byArrSlotID) == TFCAS_OK)
		{
			for(BYTE i = 0;i<TFCA_MAXLEN_SLOT;i++)
			{
				if(byArrSlotID[i] != 0)
				{
					printf("钱包ID = %4x\r\n",byArrSlotID[i]);
				}
				else
					break;
			}
		}
	--*/
	extern WORD TFCASTB_GetSlotIDs(WORD wTVSID ,OUT BYTE* pbySlotID);
	extern WORD TFCASTB_GetSlotInfo(WORD wTVSID ,BYTE bySlotID,OUT STFCATVSSlotInfo* pSlotInfo);
	/*++
	说明 :
		用户对IPPV节目是否购买进行选择的时候,调用该函数
	例子:
		在IPPV提示购买的对话框显示在电视上的时候
		WORD wRet =0;
		if(用户选择购买)
		{
			用户输入PIN;
			BYTE byPin[TFCA_MAXLEN_PINCODE]={用户输入的PIN};
			wRet = TFCASTB_StopIPPVBuyDlg(true, wEcmPid,byPin,Price);
			switch(wRet)
			{

⌨️ 快捷键说明

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