/*************************************************************************** * Copyright (c) 2003-2006, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: * * Revision History: * * $brcm_Log: $ * ***************************************************************************/ #ifndef XDS_CTRL_H__ #define XDS_CTRL_H__ /* XDS state */ typedef enum xds_state_t { eXDS_IDLE, eXDS_ACTIVE }xds_state_t; /* XDS class */ typedef enum xds_class_t { eXDS_CLASS_CURRENT, eXDS_CLASS_FUTURE, eXDS_CLASS_CHANNEL, eXDS_CLASS_MISC, eXDS_CLASS_PUBLIC, eXDS_CLASS_RESERVED, eXDS_CLASS_PRIVATE }xds_class_t; /* XDS current class types */ typedef enum xds_type_t { eXDS_TYPE_PROG_ID = 0x01, eXDS_TYPE_PROG_TIME = 0x02, eXDS_TYPE_PROG_NAME = 0x03, eXDS_TYPE_PROG_TYPE = 0x04, eXDS_TYPE_PROG_CONT = 0x05, eXDS_TYPE_PROG_AUDIO = 0x06, eXDS_TYPE_PROG_CC = 0x07, eXDS_TYPE_PROG_CGMS = 0x08, eXDS_TYPE_PROG_AR = 0x09, eXDS_TYPE_PROG_COMP1 = 0x0C, eXDS_TYPE_PROG_COMP2 = 0x0D, eXDS_TYPE_PROG_DESC = 0x10, }xds_type_t; /* XDS channel class types */ typedef enum xds_ch_type_t { eXDS_CH_NETWORK = 0x01, eXDS_CH_CALL_LETTERS = 0x02, eXDS_CH_TAPE_DELAY = 0x03, eXDS_CH_TSID = 0x04, }xds_ch_type_t; /* XDS misc class types */ typedef enum xds_misc_type_t { eXDS_MISC_TIME = 0x01, eXDS_MISC_IMPULSE = 0x02, eXDS_MISC_SUP_DATA = 0x03, eXDS_MISC_TIME_ZONE = 0x04, }xds_misc_type_t; /* XDS public service class types */ typedef enum xds_pub_type_t { eXDS_PUB_SERV_WRSAME = 0x01, eXDS_PUB_SERV_MSG = 0x02, }xds_pub_type_t; /* Event callback type */ typedef void (*xds_callback_t)( xds_class_t xds_class, int xds_type, unsigned char* data, int data_len ); /* XDS control type */ #define MAX_MSG_LEN 32 typedef struct xds_ctrl_t { xds_state_t xds_state; xds_class_t xds_class; int xds_type; /* value depends on xds_class */ unsigned char xds_data[MAX_MSG_LEN]; /* message buffer to handle information */ int xds_len; /* current message length */ xds_callback_t xds_callback; unsigned int xds_checksum; /* running 7 bit checksum value */ }xds_ctrl_t; /* Summary: Initialize XDS processing. Description: Setup XDS processing state. A callback can be specified or NULL if no callback is needed */ void xds_ctrl_init(xds_ctrl_t * p_xds); /* XDS callback or NULL */ void xds_ctrl_set_cb(xds_ctrl_t * p_xds, /* initialized XDS reference */ xds_callback_t cb); /* XDS callback or NULL */ void xds_ctrl_feed(xds_ctrl_t * p_xds, /* initialized XDS reference */ unsigned char xds_char_0, /* Character pair */ unsigned char xds_char_1); #endif /* XDS_CTRL_H__ */