FreeCalypso > hg > fc-magnetite
diff src/ui3/mfw/mfw_cphs.h @ 420:e8ddbb0837ed
src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Jan 2018 03:09:00 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ui3/mfw/mfw_cphs.h Sun Jan 21 03:09:00 2018 +0000 @@ -0,0 +1,428 @@ +/* ++--------------------------------------------------------------------+ +| PROJECT: GSM-MFW (8417) $Workfile:: mfw_cphs.h $| +| $Author:: Vo $Revision:: 1 $| +| CREATED: 14.7.00 $Modtime:: $| +| STATE : code | ++--------------------------------------------------------------------+ + + PURPOSE : Types defination for CPHS management + + May 30, 2006 DR: OMAPS00070657 x0pleela + Description: CPHS feature on Locosto-Lite + Solution: For ALS feature, + a)Added function prototype "mfw_cphs_get_als_info()" which returns + the current active line + + Oct 04, 2004 REF: CRR 25519 Deepa M.D + Bug:Re-align structure members in MFW + Fix:Structure elements have been realigned to avoid the structure padding +*/ + +#ifndef DEF_MFW_CPHS +#define DEF_MFW_CPHS +#include <string.h> + +#if defined (NEW_FRAME) + +#include "typedefs.h" +#include "vsi.h" +#include "pei.h" +#include "custom.h" +#include "gsm.h" + +#else + +#include "STDDEFS.H" +#include "custom.h" +#include "gsm.h" +#include "vsi.h" + +#endif + +#include "mfw_mfw.h" +#include "mfw_nm.h" +#include "mfw_sim.h" +#include "mfw_simi.h" +#include "mfw_sima.h" +#include "mfw_nmi.h" +#include "mfw_phb.h" +#include "mfw_phbi.h" +#include "mfw_cm.h" +#include "mfw_cmi.h" +#include "mfw_sms.h" +#include "mfw_smsi.h" + +#include "drv_key.h" + + +#include "ksd.h" + +#if defined (FAX_AND_DATA) +#include "aci_fd.h" +#endif + + +#include "phb.h" + + +#include "mfw_ss.h" +#include "mfw_ssi.h" + + +#include "mfw_sys.h" + +#ifdef NEPTUNE_BOARD +#include "Ffs.h" +#endif + + +/* Constants define */ +#define MFW_INVALID_SIM_DATA 0xFF +#define MAX_CPHS_ENTRY 4 +#define MAX_PCM_MAILBOX_LEN 10 + +typedef enum /* CPHS status */ +{ + CPHS_NotPresent = 10, + CPHS_ERR, + //x0pleela 11 June, 2006 DR:OMAPS00079692 + //changed from CPHS_OK to MFW_CPHS_OK + MFW_CPHS_OK +} T_MFW_CPHS_STATUS; + +typedef enum /* SIM operation status */ +{ + MFW_SIMOP_UNKNOWN = 20, + MFW_SIMOP_WRITE_ERR, + MFW_SIMOP_WRITE_OK, + MFW_SIMOP_READ_ERR, + MFW_SIMOP_READ_OK +} T_MFW_SIMOP_STATUS; + +typedef enum /* CPHS service */ +{ + MFW_CPHS_CSP = 1, /* customer service profile */ + MFW_CPHS_SST, /* service string table */ + MFW_CPHS_MB_NUMBER, /* mailbox numbers */ + MFW_CHPS_NAME_SHORT, /* operator name shortform */ + MFW_CHPS_INFO_NUMBERS /* information numbers */ +} T_MFW_CPHS_SERVICE; + +typedef enum /* index of mailbox-number/alternate-line service */ +{ + MFW_SERV_NotPresent = -1, + MFW_SERV_LINE1 = 0, + MFW_SERV_LINE2, + MFW_SERV_DATA, + MFW_SERV_FAX +} T_MFW_LINE_INDEX; + +typedef enum /* status of alternate line service */ +{ + MFW_LINE_UNLOCKED = 0, + MFW_LINE_LOCKED +} T_MFW_LINE_STATUS; + +typedef enum /* voice message waiting flag and + call forwarding flags */ +{ + MFW_CFLAG_NotPresent = 0, + MFW_CFLAG_SET = 0x0A, + MFW_CFLAG_NOTSet = 0x05 +} T_MFW_CFLAG_STATUS; + +/* events are organised as bitmaps */ +#define E_CPHS_IND 0x0001 +#define E_CPHS_OP_NAME 0x0002 +#define E_CPHS_GET_VC_NUM 0x0004 +#define E_CPHS_SET_VC_NUM 0x0008 +#define E_CPHS_GET_VC_STAT 0x0010 +#define E_CPHS_SET_VC_STAT 0x0020 +#define E_CPHS_GET_DV_STAT 0x0040 +#define E_CPHS_SET_DV_STAT 0x0080 +#define E_CPHS_GET_ALS_STATUS 0x0100 +#define E_CPHS_SET_LINE 0x0200 +#define E_CPHS_SET_ALS_STATUS 0x0400 +#define E_CPHS_GET_CSP 0x0800 +#define E_CPHS_GET_INFO_NUM 0x1000 +#define E_CPHS_GET_INFO_LIST 0x2000 +#define E_CPHS_GET_SIM_FIELD 0x4000 //MC for generic sim reads +#define E_CPHS_SET_SIM_FIELD 0x8000 //sbh for generic sim writes +#define E_CPHS_MSP_IND 0x10000 +#ifdef FF_CPHS_REL4 +#define E_CPHS_REL4_GET_MBI 0x20000 +#define E_CPHS_REL4_GET_MBDN 0x40000 +#endif + +typedef struct /* Character */ +{ + UBYTE len; /* length of string data */ + UBYTE data[PHB_MAX_LEN]; /* string data */ +} T_MFW_STRING; + +typedef struct /* Information numbers */ +{ + UBYTE index; + UBYTE entryStat; /* entry status */ + T_MFW_PHB_TEXT alpha; /* alpha identifier */ +} T_MFW_CPHS_INFO_NUMBER; + +typedef struct /* List of information numbers */ +{ + UBYTE count; /* number of read entries */ + UBYTE level; + T_MFW_CPHS_INFO_NUMBER entry[MAX_CPHS_ENTRY]; /* entries */ +} T_MFW_CPHS_INFONUM_LIST; + +typedef struct /* CPHS information */ +{ + UBYTE phase; + UBYTE opNS; /* operator name shortform */ + UBYTE mbNum; /* mailbox numbers */ + UBYTE sst; /* service string table */ + UBYTE csp; /* customer service profile */ + UBYTE iNum; /* information numbers */ +} T_MFW_CPHS_INFO; + +typedef struct /* Operator name */ +{ + T_MFW_LNAME longName; /* operator name string */ + T_MFW_SNAME shortName; /* operator name shortform */ +} T_MFW_CPHS_OP_NAME; + +#define MFW_CPHS_VM_NUMBER_MAXLEN ( PHB_MAX_LEN + 20 ) + +typedef struct /* Mailbox number */ +{ + UBYTE index; /* index in phonebook table */ + T_MFW_PHB_TEXT alpha; /* alpha identifier */ + UBYTE number[MFW_CPHS_VM_NUMBER_MAXLEN]; /* telephone number */ + UBYTE ton; /* type of number */ + UBYTE npi; /* numbering plan identifier */ + UBYTE service; /* indicates the line or fax/data */ + UBYTE ext_rec_number; /* Number of EXT Records */ + UBYTE ext_rec_idx[4]; + UBYTE datalen; + UBYTE list_index; /* Index / Position in the List */ +} T_MFW_CPHS_ENTRY; + +typedef struct /* List of mailbox numbers */ +{ + UBYTE count; /* numbers of the list */ + T_MFW_CPHS_ENTRY entries[MAX_CPHS_ENTRY]; +} T_MFW_CPHS_VC_NUM; + +/*Data structure to store MBI of registered profile*/ +#ifdef FF_CPHS_REL4 +typedef struct +{ + UBYTE voice; /*stores record id of voice*/ + UBYTE fax; /*stores record id of fax*/ + UBYTE electronic; /*stores record id of electronic*/ + UBYTE other; /*stores record id of other*/ + UBYTE valid; /*1 - the info stored is valid + 0 - the info stored is invalid*/ +} T_MFW_CPHS_REL4_MBI; + +typedef struct +{ + CHAR alpha[MAX_ALPHA_LEN]; + CHAR number[MAX_MB_NUM_LEN]; + T_ACI_TOA type; +} T_MFW_MBDN; + +typedef struct +{ + T_MFW_MBDN mailbox_numbers[4];/*mailbox numbers of voice,fax,electronic and other*/ + UBYTE valid; /* 1st bit-voicemail, 2nd bit-fax,3rd bit-electronic,4th bit-other. bit set if valid, bit unset if invalid*/ +} T_MFW_CPHS_REL4_MBDN; + +typedef enum +{ + T_MFW_CPHS_REL4_MAILBOX_VOICE=0, + T_MFW_CPHS_REL4_MAILBOX_FAX, + T_MFW_CPHS_REL4_MAILBOX_ELECTRONIC, + T_MFW_CPHS_REL4_MAILBOX_OTHER +} T_MFW_CPHS_REL4_MAILBOX_TYPE; + +#endif + +typedef struct /* Voice message waiting information */ +{ + UBYTE result; /* read error/no error */ + T_MFW_CFLAG_STATUS line1; /* waiting status of line 1 */ + T_MFW_CFLAG_STATUS line2; /* waiting status of line 2 */ + T_MFW_CFLAG_STATUS fax; /* waiting status of fax */ + T_MFW_CFLAG_STATUS data; /* waiting status of data */ +} T_MFW_CPHS_VC_STAT; + +/*Data structure to store MWIS of a profile*/ +#ifdef FF_CPHS_REL4 +typedef struct +{ + UBYTE mwisStat; + UBYTE voicemail; + UBYTE fax; + UBYTE electronic; + UBYTE other; +} T_MFW_CPHS_REL4_MWIS; +#endif + +typedef struct /* Status of diverted call indicators */ +{ + UBYTE result; /* read error/no error */ + T_MFW_CFLAG_STATUS line1; /* call forwarding unconditional status of line 1 */ + T_MFW_CFLAG_STATUS line2; /* call forwarding unconditional status of line 2 */ + T_MFW_CFLAG_STATUS fax; /* call forwarding unconditional status of fax */ + T_MFW_CFLAG_STATUS data; /* call forwarding unconditional status of data */ +} T_MFW_CPHS_DV_STAT; + +/*a0393213 cphs rel4 - added a structure for divert status*/ +#ifdef FF_CPHS_REL4 +typedef struct /* Status of diverted call indicators */ +{ + T_MFW_CFLAG_STATUS voice; /* call forwarding unconditional status of voice */ + T_MFW_CFLAG_STATUS fax; /* call forwarding unconditional status of fax */ + T_MFW_CFLAG_STATUS data; /* call forwarding unconditional status of data */ + char voice_dialling_number[PHB_MAX_LEN]; /*number to which voice has been forwarded*/ +} T_MFW_CPHS_REL4_DV_STAT; +#endif + +typedef struct /* Information about alternate line service */ +{ + T_MFW_LINE_INDEX selectedLine; + T_MFW_LINE_STATUS status; /* ALS is locked or unlocked */ +} T_MFW_CPHS_ALS_STATUS; + + +//Code 15: +typedef struct /* Customer service profile */ +{ + UBYTE result; /* read error/no error */ + UBYTE csp[20]; /* size of MFW_CPHS_CSP_SIZE */ +} T_MFW_CPHS_CSP; +//Code 15 END + + + +typedef struct /* Information number entry */ +{ + UBYTE result; /* read error/no error (only used for read information number) */ + UBYTE index; + UBYTE entryStat; + T_MFW_PHB_TEXT alpha; /* alpha identifier */ + UBYTE number[4]; + UBYTE ton; + UBYTE npi; +} T_MFW_CPHS_INFONUM_ENTRY; + +#ifdef FF_CPHS_REL4 +typedef struct +{ + char alpha[MAX_ALPHA_LEN]; + char number[MAX_PHB_NUM_LEN]; + T_ACI_TOA type; + T_ACI_BS_SPEED speed; + T_ACI_CNUM_SERV service; + T_ACI_CNUM_ITC itc; +}T_MFW_CPHS_MSP_REC; + +typedef struct +{ + UBYTE count; + T_MFW_CPHS_MSP_REC profile[4]; + UBYTE default_profile; + UBYTE registered_profile; +}T_MFW_CPHS_MSP_INFO; +#endif + +/***************************Go-lite Optimization changes Start***********************/ +//Oct 04, 2004 REF: CRR 25519 Deepa M.D +//Structure elements (T_MFW_CPHS_READ_SIM_ENTRY)are realigned to avoid the structure padding +typedef struct /* SIM read data */ +{ + + UBYTE* exchange_data; + USHORT sim_result; /* read error/no error (only used for read information number) */ + USHORT requested_field; + UBYTE data_len; + UBYTE record; /* sh */ +} T_MFW_CPHS_READ_SIM_ENTRY; +/***************************Go-lite Optimization changes end***********************/ + +/* CPHS Parameter */ +typedef union +{ + T_MFW_CPHS_STATUS stat; + T_MFW_CPHS_OP_NAME oper_name; + T_MFW_CPHS_VC_NUM vc_entry; + UBYTE result; + T_MFW_CPHS_VC_STAT vc_status; + T_MFW_CPHS_DV_STAT dv_status; + T_MFW_CPHS_ALS_STATUS als_status; + T_MFW_CPHS_CSP csp; + T_MFW_CPHS_INFONUM_LIST num_list; + T_MFW_CPHS_INFONUM_ENTRY info_entry; + T_MFW_CPHS_READ_SIM_ENTRY read_sim_entry; +} T_MFW_CPHS_PARA; + +/* prototypes define */ +void cphs_init (void); +void cphs_exit (void); +MfwHnd cphs_create (MfwHnd hWin, MfwEvt event, MfwCb cbfunc); +MfwRes cphs_delete (MfwHnd h); +T_MFW cphs_config (T_MFW_CPHS_INFO *cphs_info); +T_MFW cphs_operator_name (void); +void cphs_get_mailbox (void); +T_MFW cphs_set_mailbox (T_MFW_CPHS_ENTRY *entry); +T_MFW cphs_get_mailbox_status (void); +T_MFW cphs_set_mailbox_status (T_MFW_CFLAG_STATUS line1, + T_MFW_CFLAG_STATUS line2, + T_MFW_CFLAG_STATUS fax, + T_MFW_CFLAG_STATUS data); +T_MFW cphs_get_divert_status (void); +T_MFW cphs_set_divert_status (T_MFW_CFLAG_STATUS line1, + T_MFW_CFLAG_STATUS line2, + T_MFW_CFLAG_STATUS fax, + T_MFW_CFLAG_STATUS data); +/*a0393213 cphs rel4*/ +#ifdef FF_CPHS_REL4 +T_MFW cphs_rel4_set_divert_status(T_MFW_CFLAG_STATUS voice, T_MFW_CFLAG_STATUS fax, + T_MFW_CFLAG_STATUS data, char number[PHB_MAX_LEN]); +void sendCPHSSignal(UBYTE evt, void* para); +T_MFW_CPHS_MSP_INFO* mfw_cphs_get_msp(void); +T_MFW_CPHS_REL4_MWIS* get_mwis_stat(int); +#endif +void cphs_get_als_info (T_MFW_CPHS_ALS_STATUS *info); +void cphs_select_line (T_MFW_LINE_INDEX line); +T_MFW cphs_set_als_status (T_MFW_LINE_STATUS status); +T_MFW cphs_get_csp (void); +T_MFW cphs_get_info_num (UBYTE level, UBYTE startIndex); +T_MFW cphs_select_info_num (UBYTE index); +BOOL Read_Sim (USHORT dat_id, USHORT offset, UBYTE max_len, UBYTE *exDat); +BOOL Read_Sim_Record (USHORT dat_id, USHORT record, UBYTE max_len, UBYTE *exDat); +BOOL Write_Sim (USHORT dat_id, UBYTE len, UBYTE *exDat); +BOOL Write_Sim_Record (USHORT dat_id, USHORT record, UBYTE len, UBYTE *exDat); + +//x0pleela 25 May2006 DR: OMAPS00070657 +#ifdef FF_CPHS +T_MFW mfw_cphs_get_als_info(void); +#endif + +/* Added to remove warning Aug - 11 */ +EXTERN UBYTE dspl_Enable (UBYTE in_Enable); +#ifdef PCM_2_FFS + EXTERN T_FFS_SIZE ffs_ReadRecord(const char *name, void * addr, int size, int index, int recsize); +#endif /* PCM_2_FFS */ +/* End - remove warning Aug - 11 */ + +/*a0393213 cphs rel4*/ +#ifdef FF_CPHS_REL4 +UBYTE mfw_cphs_get_reg_profile(void); +#endif + +#endif + + +