oscam-2.26.01-11942-802-wit.../extapi/openxcas/openxcas_message.h

139 lines
3.1 KiB
C
Raw Permalink Normal View History

#ifndef __OPENXCAS_MESSAGE_H__
#define __OPENXCAS_MESSAGE_H__
#ifndef FALSE
#define FALSE (0)
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif
#define OPENXCAS_VERSION "1.5.0"
#define OPENXCAS_MODULE_MAX 8
#define OPENXCAS_MODULE_NAME_LEN 32
#define OPENXCAS_DAEMON_NAME_LEN 64
#define OPENXCAS_PATH_LEN 128
#define OPENXCAS_VERSION_LEN 32
#define OPENXCAS_SECTION_LEN 4096
enum eOPENXCAS_STREAM_ID {
OPENXCAS_STREAM_1 = 0,
OPENXCAS_STREAM_2,
OPENXCAS_STREAM_MAX,
};
enum eECMKEYTYPE {
ECM_KEY_UNKNOWN = 0,
ECM_KEY_EVEN_ODD,
ECM_KEY_EVEN,
ECM_KEY_ODD,
};
enum eOPENXCAS_COMMAND {
OPENXCAS_UKNOWN_MSG = 0,
/* OpenXCAS manager --> OpenXCAS module */
OPENXCAS_SELECT_CHANNEL = 100,
OPENXCAS_START_PMT_ECM,
OPENXCAS_STOP_PMT_ECM,
OPENXCAS_START_CAT_EMM,
OPENXCAS_STOP_CAT_EMM,
OPENXCAS_ECM_CALLBACK,
OPENXCAS_EMM_CALLBACK,
OPENXCAS_QUIT,
OPENXCAS_BIG_MSG_FROM_MANAGER,
OPENXCAS_SMALL_MSG_FROM_MANAGER,
/* OpenXCAS module --> OpenXCAS manager */
OPENXCAS_START_ECM_FILTER = 200,
OPENXCAS_STOP_ECM_FILTER,
OPENXCAS_START_EMM_FILTER,
OPENXCAS_STOP_EMM_FILTER,
OPENXCAS_SET_KEY,
OPENXCAS_KEY_NOT_FOUND,
OPENXCAS_TERMINATED,
OPENXCAS_BIG_MSG_FROM_MODULE,
OPENXCAS_SMALL_MSG_FROM_MODULE,
/* API v2.0 */
/* OpenXCAS manager --> OpenXCAS module */
OPENXCAS_PID_FILTER_CALLBACK = 300,
/* OpenXCAS module --> OpenXCAS manager */
OPENXCAS_START_PID_FILTER = 400,
OPENXCAS_STOP_PID_FILTER,
OPENXCAS_CREATE_CIPHER,
OPENXCAS_DESTROY_CIPHER,
OPENXCAS_SET_KEY_V2,
/*
* COMMAND 1XXX : reserved for sending internal message in module
* example: use for smartcard
*
*/
OPENXCAS_PRIVIATE_CMD_START = 1000,
};
/* section buf + header info */
#define OPENXCAS_MSG_MAX_LEN (OPENXCAS_SECTION_LEN + 36)
typedef void (*filter_callback)(int stream_id, unsigned int sequence, int filter_index, unsigned short pid, unsigned char *pBuf, int size);
typedef void (*ecmemm_callback)(int stream_id, unsigned int sequence, int cipher_index, unsigned int ca_system_id, unsigned char *pEcm, int Len, unsigned short pid);
typedef struct stOpenCASMessage {
long mtype; /* do not touch, used by message queue */
int stream_id;
unsigned int sequence;
int cmd;
int buf_len;
unsigned char buf[OPENXCAS_MSG_MAX_LEN];
} openxcas_msg_t;
#pragma pack(1)
struct stOpenXCAS_Data {
unsigned short ca_system_id;
unsigned short cipher_index;
unsigned short pid;
int filter_index;
int len;
unsigned char buf[OPENXCAS_SECTION_LEN];
};
struct stOpenXCASChannel {
/* If current av is transtered from satellite,
* latitude & polarisation is meaningful.
* If polarisation is (-1), channel source is unknown
* If polarisation is (-2), channel source is DVB-T
* If polarisation is (-3), channel source is DVB-C
* If polarisation is (-4), channel source is ATSC
* If polarisation is (-5), channel source is ISDB-T
* If polarisation is 0, then DVB-S(horizontal)
* If polarisation is 1, then DVB-S(vertical)
*/
int polarisation;
short latitude;
unsigned long frequency;
unsigned short service_id;
unsigned short v_pid;
unsigned short a_pid;
unsigned short d_pid;
};
#pragma pack()
#endif