FreeCalypso > hg > fc-magnetite
view src/aci2/aci/cmh.h @ 700:800bf29abf31
audio mode load change from Tourmaline
Our FreeCalypso universe now has two kinds of audio mode config files:
the old 164 byte kind and the new 176 byte kind. We are not enabling
L1_NEW_AEC in Magnetite, only in Tourmaline, thus 164 byte audio mode
files are still native to Magnetite. But we still desire graceful
handling of the situation when a running Magnetite fw may load a
176 byte audio mode file (presumably with new AEC config), thus we
incorporate the same audio mode loading change which we implemented
in Tourmaline: if the loaded audio mode file is of the wrong kind,
the AEC config is cleared to default disabled state.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 30 Jul 2021 03:55:52 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | Project : GSM-F&D (8411) | Modul : CMH +----------------------------------------------------------------------------- | Copyright 2002 Texas Instruments Berlin, AG | All rights reserved. | | This file is confidential and a trade secret of Texas | Instruments Berlin, AG | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments Berlin, AG. +----------------------------------------------------------------------------- | Purpose : Definitions for the AT Command Handler +----------------------------------------------------------------------------- */ #ifndef CMH_H #define CMH_H /*==== CONSTANTS ==================================================*/ typedef enum { RAT_OK = 0, RAT_CONNECT, RAT_CME, RAT_NO_CARRIER, RAT_CRING, RAT_DR, RAT_CR, RAT_CPIN, RAT_COPS, RAT_CREG, RAT_CCWA, RAT_CLIP, RAT_CDIP, RAT_COLP, RAT_CRING_OFF, #ifdef FF_FAX RAT_FCO, RAT_FIS, RAT_FTI, RAT_FCS, RAT_FCI, #endif RAT_CMS, RAT_CSMS, RAT_CMGS, RAT_CMSS, RAT_CMGW, RAT_CDS, RAT_CMGC, RAT_CMGD, RAT_CMGR, RAT_CMGL, RAT_CMTI, RAT_CMT, RAT_CBM, RAT_CPMS, #ifdef FF_FAX RAT_FHT, RAT_FHR, RAT_FSA, RAT_FPA, RAT_FPW, RAT_FET, RAT_FVO, RAT_FPO, RAT_FPI, RAT_FNF, RAT_FNS, RAT_FNC, RAT_FHS, RAT_FPS, RAT_FTC, #endif RAT_ILRR, RAT_BUSY, RAT_NO_ANSWER, RAT_SIMREM, RAT_CLIR, RAT_COLR, RAT_CSSI, RAT_CSSU, RAT_CUSD, RAT_CCFC, RAT_CLCK, RAT_CIMI, RAT_SATI, RAT_SATE, RAT_KSIR, RAT_CPI, RAT_CTYI, RAT_CNUM, RAT_CPOL, RAT_CCCM, RAT_CTV, RAT_SATN, RAT_SATA, RAT_SMS_READY, RAT_PHB_STATUS, RAT_SIMINS, RAT_CRSM, RAT_CSIM, RAT_CCBS, RAT_CCWV, RAT_CNAP, RAT_SIG_SMS, RAT_CLAN, RAT_CLAE, RAT_CSQ, RAT_ALS, RAT_CTZV, RAT_P_CREG, #ifdef GPRS RAT_CGACT, RAT_CGDATA, RAT_CGANS, RAT_CGEREP, RAT_CGREG, RAT_QOS_MOD, RAT_SNCNT, RAT_P_CGREG, RAT_P_CGEV, #endif /* GPRS */ #ifdef FF_EM_MODE RAT_EM, RAT_EMET, RAT_EMETS, #endif /* FF_EM_MODE */ #ifdef FF_CPHS RAT_CPNUMS, RAT_CPVWI, RAT_CPROAM, #endif /* FF_CPHS */ RAT_CIEV, RAT_RDL, RAT_RDLB, RAT_CCCN, RAT_CSSN, RAT_CSTAT, RAT_Z, RAT_CPRSM, RAT_P_CTZV, RAT_P_CPRI, RAT_P_SIMEF, RAT_P_CNIV, RAT_P_COPS, RAT_P_CMGR, RAT_P_CMGL, RAT_MAX } RAT_ID; /*==== TYPES ======================================================*/ typedef struct entStatus /* entity status */ { T_ACI_CMD_SRC entOwn; /* entity owner */ T_ACI_AT_CMD curCmd; /* current command processing */ } T_ENT_STAT; typedef struct mmCmdPrm /* command parameters related to MM */ { T_ACI_COPS_FRMT COPSfrmt; T_ACI_NRG_RGMD NRGregMode; T_ACI_NRG_SVMD NRGsrvMode; T_ACI_NRG_FRMT NRGoprFrmt; T_ACI_CSQ_MODE CSQworkStat; T_ACI_CTZR_MODE CTZRMode; T_ACI_CTZU_MODE CTZUMode; T_ACI_PCTZV_MODE PCTZVMode; T_ACI_CNIV_MODE CNIVMode; T_ACI_IND_MODE sIndicationParam; } T_MM_CMD_PRM; typedef struct ccCmdPrm /* command parameters related to CC */ { T_ACI_CLIR_MOD CLIRmode; T_ACI_DCD_MOD DCDmode; T_ACI_TOA CSTAtoa; BOOL CSTAdef; T_ACI_CHLD_MOD CHLDmode; T_ACI_CCUG_IDX CCUGidx; T_ACI_CCUG_INFO CCUGinfo; T_ACI_CCUG_MOD CCUGmode; USHORT mltyCncFlg; USHORT mltyDscFlg; T_ACI_ALS_MOD ALSmode; /* mode for Alternate Line Service */ T_ACI_CTTY_MOD CTTYmode; /* TTY Service notification */ T_ACI_CC_CSCN_MOD CSCNcc_mode; } T_CC_CMD_PRM; typedef struct simCmdPrm /* command parameters related to SIM */ { UBYTE CNUMActRec; UBYTE CNUMOutput; T_ACI_CPOL_FRMT CPOLfrmt; UBYTE CPOLact; UBYTE CPOLidx; UBYTE CPOLidx2; T_ACI_CPOL_MOD CPOLmode; UBYTE CPOLplmn[3]; UBYTE CLANact; } T_SIM_CMD_PRM; typedef struct ssCmdPrm /* command parameters related to SS */ { UBYTE CXXXpwd[MAX_PWD_NUM+1]; UBYTE CXXXnewPwd[MAX_PWD_NUM+1]; UBYTE CXXXnewPwd2[MAX_PWD_NUM+1]; USHORT mltyTrnFlg; T_ACI_SS_CSCN_MOD CSCNss_mode; } T_SS_CMD_PRM; typedef struct phbCmdPrm /* command parameters related to PHB */ { T_ACI_PB_STOR cmhStor; UBYTE phbStor; /* T_PHB_TYPE */ USHORT order_num; /* Next matching entry, 0 if none */ SHORT fndRec; UBYTE wrtRec; T_ACI_CSVM_MOD CSVMmode; T_ACI_CLAE_MOD CLAEmode; UBYTE curCmd; UBYTE temp_cmhStor; /* These data types are used to hold */ UBYTE temp_phbStor; /* the phone book storage types temprorily, in case of SIM PIN-2 verification. These values are assigned to the actual storage fileds when SIM PIN-2 verification confirmation comes without any ERROR. */ } T_PHB_CMD_PRM; /* Fax and data related command parameters have been moved to a specific structure in cmh_ra.h */ typedef struct cmhCmdPrm /* handler command parameter */ { T_MM_CMD_PRM mmCmdPrm; T_CC_CMD_PRM ccCmdPrm; T_SIM_CMD_PRM simCmdPrm; T_SS_CMD_PRM ssCmdPrm; T_PHB_CMD_PRM phbCmdPrm; } T_CMH_PRM; /*==== PROTOTYPES =================================================*/ EXTERN void cmh_Init ( void ); EXTERN void cmh_Reset ( T_ACI_CMD_SRC srcId, BOOL atz ); EXTERN BOOL cmh_IsVldCmdSrc ( T_ACI_CMD_SRC cmdSrc ); EXTERN UBYTE cmh_mergeTOA ( UBYTE ton, UBYTE npi ); EXTERN UBYTE cmh_mergeTOS ( UBYTE tos, UBYTE oe ); EXTERN void cmh_demergeTOA ( UBYTE toa, UBYTE* ton, UBYTE* npi ); EXTERN void cmh_demergeTOS ( UBYTE tosa, UBYTE* tos, UBYTE* oe ); EXTERN CHAR* cmh_setToaDef ( CHAR* number, T_ACI_TOA *toa ); EXTERN USHORT cmh_packBCD ( UBYTE *bcd_out, const UBYTE *char_in, USHORT len_in); EXTERN USHORT cmh_unpackBCD ( UBYTE *char_out, const UBYTE *bcd_in, USHORT len_in); EXTERN void cmh_unpackSCTS ( T_ACI_VP_ABS *scts, const UBYTE *buf_in ); EXTERN void cmh_logRslt ( T_ACI_CMD_SRC dest, RAT_ID rat, T_ACI_AT_CMD cmd, SHORT cId, T_ACI_BS_SPEED spd, T_ACI_CME_ERR err ); EXTERN void cmh_cvtToDefGsm ( CHAR* in, CHAR* out, USHORT* len ); EXTERN void cmh_cvtFromDefGsm ( CHAR* in, USHORT len, CHAR* out ); EXTERN UBYTE cmh_set_delayed_call( UCHAR (*call) (void*), void* arg ); EXTERN UBYTE cmh_start_delayed_call ( ULONG ms ); EXTERN UBYTE cmh_timeout ( USHORT handle ); EXTERN SHORT cmh_bldCalPrms ( char * pDialStr, T_CLPTY_PRM * calPrm ); EXTERN UBYTE qAT_CallActive ( void ); EXTERN void cmhSMS_disableAccess ( void ); EXTERN T_ACI_RETURN cmhSIM_ReadTranspEF ( T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, USHORT offset, UBYTE explen, UBYTE * exchData, void (*rplyCB)(SHORT)); EXTERN T_ACI_RETURN cmhSIM_WriteTranspEF (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, USHORT offset, UBYTE datalen, UBYTE * exchData, void (*rplyCB)(SHORT)); #ifdef GPRS GLOBAL void cp_pdp_primitive(T_SMREG_PDP_ACTIVATE_CNF * pdp_activate_cnf, T_PPP_PDP_ACTIVATE_RES *activate_result); #endif GLOBAL T_ACI_RETURN cmhSIM_WriteRecordEF (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, UBYTE record, UBYTE datalen, UBYTE * exchData, void (*rplyCB)(SHORT)); GLOBAL T_ACI_RETURN cmhSIM_ReadRecordEF ( T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, UBYTE record, UBYTE explen, UBYTE * exchData, void (*rplyCB)(SHORT)); GLOBAL T_ACI_RETURN cmhSMS_ReadParams (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, SHORT recNr); GLOBAL T_ACI_RETURN cmhSMS_WriteParams (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, SHORT recNr); GLOBAL T_ACI_RETURN cmhSIM_GetSIMError ( T_ACI_CMD_SRC srcBuf, T_ACI_AT_CMD cmdBuf ); GLOBAL T_ACI_RETURN cmhSIM_CheckSimPinStatus ( T_ACI_CMD_SRC srcBuf, T_ACI_AT_CMD cmdBuf ); GLOBAL T_ACI_RETURN cmhSIM_Read_AD ( ); EXTERN void percentCSTAT_indication(T_ACI_ENTITY_ID_MSG entityId, T_ACI_ENTITY_STATE_MSG entityState); EXTERN void cmhSMS_ReadCbDtaDwnl ( T_SIM_MMI_INSERT_IND *sim_mmi_insert_ind ); GLOBAL void cmhSIM_Get_CSP(); GLOBAL void cmhSIM_Read_CSP(); #ifdef SIM_PERS GLOBAL void cmhSIM_WriteDefaultValue_DCK(); #endif GLOBAL UBYTE cmhSIM_isplmnmodebit_set(); GLOBAL T_ACI_CMD_MODE aci_rat_cmd_mode(RAT_ID cmd,T_ACI_CMD_SRC src); GLOBAL T_ACI_CMD_MODE aci_cmd_src_mode_get(T_ACI_CMD_SRC src_id); GLOBAL void aci_cmd_src_mode_set(UBYTE src_id,T_ACI_CMD_MODE mode); /*==== MACROS =====================================================*/ EXTERN T_ACI_CMD_MODE _mode; EXTERN UBYTE srcId_cb; EXTERN USHORT used_sources; #define IS_SRC_USED(x) ((used_sources >> x) & 0x01) #define IS_SRC_BT(x) ((used_sources >> (x + 8)) & 0x01) /* we set the src id only when the src id NEQ local. Bec in ASC test we intentionally set the src from TST to LCL for some purpose, but the srcId_cb should remain TST */ #define R_AT(cmd,src)\ _mode=aci_rat_cmd_mode(cmd,src);\ if (src > CMD_SRC_LCL)\ srcId_cb=(UBYTE)src;\ if (_mode NEQ CMD_MODE_NONE AND RATJmpTbl[cmd][_mode])\ RATJmpTbl[cmd][_mode] #define ACI_ERR_DESC( errCls, errNr )\ {aciErrDesc=(((errCls)<<16) | ((errNr)&0xFFFF));} /*==== EXPORT =====================================================*/ #ifdef CMH_F_C GLOBAL T_CMH_PRM cmhPrm[OWN_MAX]; GLOBAL T_ACI_ALS_MOD ALSlock = ALS_MOD_NOTPRESENT; GLOBAL T_ACI_ERR_DESC aciErrDesc = -1; #else EXTERN T_CMH_PRM cmhPrm[OWN_MAX]; EXTERN T_ACI_ALS_MOD ALSlock; EXTERN T_ACI_ERR_DESC aciErrDesc; EXTERN const T_VOID_FUNC RATJmpTbl[RAT_MAX][CMD_MODE_MAX]; /* SMI/MFW & ATI */ #endif /* of #ifndef CMH_F_C */ #endif /* CMH_H */ /*==== EOF =======================================================*/