📄 zj_datapublic.h
字号:
/************************************************************************
* filename: ZJ_datapublic.h
* created: 2007.05.15
* Function: This is a head file for interface between user and ZJ module.
* Data structure definition is in this structure.
*
* version: 0.8.5.1
************************************************************************/
#ifndef _ZJ_DATAPUBLIC_H
#define _ZJ_DATAPUBLIC_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef NULL
#define NULL ((void*)0)
#endif
#define MAX_PROGRAMNAME_LENGTH 256 /*最大节目长度*/
#define ZJCA_CARD_ID_LEN 8 /*card id 长度*/
#define ZJCA_MAX_PIN_LEN 8 /*最大的PIN长度*/
#define ZJCA_MAX_INFO_LEN 256 /*最大可返回的信息长度*/
#define ZJCA_MAX_SNAME_LEN 21 /*最大可返回的节目名称长度*/
#define ZJCA_CW_LENGTH 16 /*控制字长度*/
#define ZJCA_MAX_EMAIL_SENDER_LEN 11 /*最大的email发送者名称长度*/
#define ZJCA_MAX_EMAIL_TITLE_LEN 20 /*最大的邮件头长度*/
#define ZJCA_MAX_EMAIL_CONTENT_LEN 256 /*最大的邮件内容长度*/
#define ZJCA_MAX_FILTER_LEN 64 /*最大Filter 长度*/
/*email 状态*/
#define ZJCA_EMAIL_STATUS_UNREAD 0 /*邮件未读*/
#define ZJCA_EMAIL_STATUS_READ 1 /*邮件已读*/
/*智能卡状态定义*/
#define ZJCA_SC_OUT 0 /*智能卡不在读卡器中*/
#define ZJCA_SC_IN 1 /*智能卡在读卡器中,工作正常*/
#define ZJCA_TIME_INFINITE -1 /*无限长时间*/
#define ZJ_MAX_DAY_CHAR 64 /*每日描述信息的最大长度*/
#define ZJ_MAX_DAY_EPG 7 /*EPG信息中所能描述的最大天数*/
#define ZJ_THREAD_MUTEX_TIMED_NP 1 /*普通锁。当一个线程加锁以后,其余请求锁的线程将形成一个等待队列,并在解锁后按优先级获得锁*/
#define ZJ_THREAD_SEMAPHORE_NO_NAME 1 /*普通无名信号量*/
/************************************************************************
* 返回值定义
************************************************************************/
/* 基本返回值定义 */
/* 以下定义对于所有接口函数都适用 */
#define ZJRESULT long /*函数调用返回值类型*/
#define ZJ_RT_ERROR -1 /*函数调用错误*/
#define ZJ_POINTER_INVALID -2 /*输入的指针无效*/
#define ZJ_DATA_LEN_ERROR -3 /*输入的数据长度不合法*/
#define ZJ_NO_SPACE -4 /*已经没有空间*/
#define ZJ_PARAM_INVALID -5 /*参数不合法*/
#define ZJ_MEMORY_NOT_AVALIABLE -6 /*系统没有足够的内存*/
#define ZJ_NOT_FOUND -7 /* 未找到指定数据 */
#define ZJ_RT_OK 0 /*函数调用成功*/
#define ZJ_RT_FAIL 1 /*函数调用失败*/
/* 扩展返回值定义 */
/* 以下返回值定义对应于特定函数返回时有意义(参见函数说明):*/
#define ZJCA_DATA_LEN_ERROR 0x10 /*CA数据长度错误*/
#define ZJCA_ELEMENT_NOT_FOUND 0x20 /*未找到基本流*/
#define ZJCA_PIN_ERROR 0x30 /*PIN码错误*/
#define ZJCA_PIN_LOCKED 0x31 /*PIN被锁定*/
#define ZJCA_EXCEED_MAX_COUNT 0x40 /*超过了允许的最大的个数*/
#define ZJCA_EBUSY 0x50 /*当前忙*/
#define ZJCA_TIMEOUT 0x60 /*超时*/
#define ZJCA_SEM_SIGNAL 0x61 /*信号量被通知*/
#define ZJCA_FUNC_NOT_SUPPORT 0xf0 /*当前版本不支持该功能*/
#define ZJ_IO_OPEN_ERROR 0x70
#define ZJ_FILE_NOT_EXIST 0x71
#define ZJ_PROGRAM_NOT_FOUND 0x80 /*未找到节目*/
#define ZJ_PROGRAM_NOT_AUTHOR 0x81 /*该节目无授权*/
#define ZJ_RESOURCE_NOT_FOUND 0x88 /*未找到资源*/
#define ZJ_RESOURCE_NOT_AUTHOR 0x89 /*该资源无授权*/
#define ZJ_RESOURCE_DOWNLOAD_FINISH 0x90 /*该资源下载完成*/
/************************************************************************/
/************************************************************************
* 枚举类型定义
************************************************************************/
typedef enum _ZJCA_EMAIL_NOTIFY_TYPE
{
ZJCA_NEW_EAMIL, /*新邮件通知*/
ZJCA_NO_EMAIL_ROOM /*有新邮件,但Email空间不够*/
}ZJCA_EMAIL_NOTIFY_TYPE;
typedef enum _ZJCA_OSD_CANCEL_TYPE
{
ZJCA_OSD_CANCEL_BY_USER, /*用户和CA系统都可取消该消息显示*/
ZJCA_OSD_CANCEL_BY_CA /*仅CA系统可取消该消息显示*/
}ZJCA_OSD_CANCEL_TYPE;
typedef enum _ZJ_AV_DATA_TYPE
{
ZJ_AV_ES, /* ES结构AV数据*/
ZJ_AV_ISMA, /* ISMA结构AV数据*/
ZJ_AV_ITS, /* IP结构中内部TS数据(针对AVS的IP打包方式) */
ZJ_AV_UDP, /* 带UDP封装的ISMA结构AV数据*/
ZJ_AV_IP, /* 带UDP§IP封装的ISMA结构AV数据*/
ZJ_AV_TS, /* TS结构AV数据*/
ZJ_AV_PES /* PES结构AV数据*/
}ZJ_AV_DATA_TYPE;
typedef enum _ZJ_FILTER_TYPE
{
ZJ_FILTER_TYPE_NORMAL, /*基本型过滤器,不支持反向过滤*/
ZJ_FILTER_TYPE_NEG_MATCH_MODE, /*在基本过滤器基础上增加反向过滤功能*/
ZJ_FILTER_TYPE_NORMAL_CONTINUE, /*基本型过滤器,不支持反向过滤,连续过滤模式*/
ZJ_FILTER_TYPE_NEG_MATCH_MODE_CONTINUE /*在基本过滤器基础上增加反向过滤功能,连续过滤模式*/
} ZJ_FILTER_TYPE;
/************************************************************************/
/* 数据结构定义 */
#ifndef bool /*有些平台未定义bool类型*/
#define bool unsigned char
#define true 1
#define false 0
#endif
typedef long zjthread_t; /*线程标识*/
typedef long zjthread_mutex_t; /*mutex标识*/
typedef long zjthread_mutexattr_t; /*mutex属性,当前只支持PTHREAD_MUTEX_TIMED_NP类型*/
typedef long zjthread_semaphore_t; /*semaphore标识*/
typedef long zjthread_semaphoreattr_t; /*semaphore属性,当前只支持ZJ_THREAD_SEMAPHORE_NO_NAME类型*/
typedef FILE zjfile_t; /*文件标识*/
typedef struct _LARGE_INTEGER_ {
unsigned long LowPart;
unsigned long HighPart;
} LARGE_INT;
typedef struct _zjthread_attr_t_{
long sched_priority; /*表示线程的运行优先级*/
} zjthread_attr_t; /*线程属性*/
typedef struct _ZJCAServiceEntitle{
bool m_bEntitled; /*当前节目是否有授权*/
unsigned short m_nTsId; /*当前节目所属的TS ID号*/
unsigned short m_nServiceId; /*当前节目的serviceId号*/
unsigned char m_tStartTime[4]; /*授权开始时间*/
unsigned char m_tEndTime[4]; /*授权结束时间*/
char m_sServiceName[ZJCA_MAX_SNAME_LEN]; /*节目名称*/
unsigned long m_nID; /*资源或节目ID号*/
}ZJCAServiceEntitle; /*普通节目授权*/
typedef struct _ZJCAEmailInfo{
unsigned long m_nEmailId; /*邮件标识号*/
unsigned char m_tSendTime[4]; /*发送时间*/
char m_sSenderInfo[ZJCA_MAX_EMAIL_SENDER_LEN]; /*发送者姓名*/
unsigned char m_Status; /*邮件的状态*/
unsigned char m_sTitle[ZJCA_MAX_EMAIL_TITLE_LEN]; /*邮件头*/
}ZJCAEmailInfo;
typedef struct _ZJCAEmailTitle{
unsigned long m_nEmailId; /*邮件标识号*/
unsigned char m_Status; /*邮件的状态,可为ZJCA_EMAIL_STATUS_UNREAD和ZJCA_EMAIL_STATUS_READ两种状态*/
unsigned char m_sTitle[ZJCA_MAX_EMAIL_TITLE_LEN]; /*邮件头*/
}ZJCAEmailTitle;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -