FreeCalypso > hg > fc-tourmaline
view src/ui/bmi/mmiSmsBroadcast.h @ 261:841a848ba762
SPI SWE: clear any pending boot-time interrupts in spi_init()
Charger plug/unplug hw logic in the Iota ABB has no built-in debouncing,
thus electrical contact bounce on the charging power connection interface
produces a lot of charger plug/unplug interrupts. When we boot in
charging mode (charging power present at boot time and is presumably
the cause of Switch-ON), some bounce may occur between the initial
Iota Switch-ON action and Calypso firmware booting. By clearing any
accumulated ITSTATREG interrupts on boot, we prevent these pre-boot
interrupts from generating charger plug/unplug events to FCHG, which
would upset smooth from-boot charging.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 14 May 2021 02:49:05 +0000 |
parents | 62480f597962 |
children |
line wrap: on
line source
#ifndef _DEF_MMI_SMSBROADCAST_H_ #define _DEF_MMI_SMSBROADCAST_H_ /* MODULE : MMI PURPOSE : header of template for MMI smscb dynamic event handling EXPORT : TO DO : * ***************** Version 1 ***************** * User: RSA Date: 04.08.00 Time: 19:50 * Created in $/GSM/Condat/SND-MMI/MMI * Initial */ #include "mfw_mfw.h" #include "mmiBookShared.h" //GW-SPR#762 For definition of NUMBER_LENGTH #define SMSCB_SWITCH_ON 0 #define SMSCB_SWITCH_OFF 1 //GW-SPR#762 - removed #define NUMBER_LENGTH 20 /* count of digits to be transferred to phonebook */ #define NO_MID 0xFFFF /* Invalid MID number. */ #ifdef FF_2TO1_PS #define MAX_STORED_PAGES CBM_MAX_RANGE_NUMBER #else #define MAX_STORED_PAGES MAX_IDENTS #endif #define CB_PAGE_LENGTH 93 #define CB_TAG_LENGTH 10 #define CB_MID_LENGTH 4 #define MAX_MIDS MAX_STORED_PAGES #define CB_STORE_LENGTH ((MAX_STORED_PAGES * CB_PAGE_LENGTH) + 1) /* 25 pages of 93 characters + 1 */ #define IMMEDIATE_CELL_WIDE 0x0000 #define NORMAL_PLMN_WIDE 0x4000 #define NORMAL_LOCATION_WIDE 0x8000 #define NORMAL_CELL_WIDE 0xC000 typedef enum { NO_MESSAGE, UNREAD_MESSAGE, READ_MESSAGE, ALL_MESSAGE, CORRUPT_MESSAGE }T_SMSCB_STATUS; //T_MFW_HND smscb_M_CB_start(T_MFW_HND parent_window, void *dummy); void smscb_InitData (void); SHORT smscb_get_new_cb_messages_count(void); T_MFW smscb_getCBsettings(void); /*SPR 1920, removed cellbroadcast_start() header*/ int temp_smscb_M_CB_ExeRead (MfwMnu* m, MfwMnuItem* i); /*MC SPR 1920 moved from .c file */ int smscb_M_CB_TOP_ExeConsult(MfwMnu* m, MfwMnuItem* i); int smscb_M_CB_TOP_ExeAddNew(MfwMnu* m, MfwMnuItem* i); int smscb_M_CB_ACT_ExeNo(MfwMnu* m, MfwMnuItem* i); int smscb_M_CB_ACT_ExeYes(MfwMnu* m, MfwMnuItem* i); int sms_cb_select_read (MfwMnu* m, MfwMnuItem* i); void sms_cb_init (void); void sms_cb_exit (void); /*MC SPR 1920, added new function*/ void sms_new_incoming_cb (T_MFW_SMS_CB *Message); int sms_cb_read_msg (T_SMSCB_STATUS status); void info_screen (T_MFW_HND win, USHORT TextId, USHORT TextId2,T_VOID_FUNC Callback); #define THREE_SECS 0x0BB8 /* 3000 milliseconds. */ #define FIVE_SECS 0x1388 /* 5000 milliseconds. */ #define TEN_SECS 0x2710 /* 10000 milliseconds. */ #define TWO_MIN 0x1D4C0 /* 2 min */ #define FOREVER 0xFFFF /* Infinite time period. */ /* SPR759 - SH - moved from .c file */ /********************************************************************* ********************************************************************** cell broadcast fifo & lists declaration ********************************************************************* **********************************************************************/ /* Stored Cell Broadcast message attributes. */ typedef struct { SHORT msg_id; /* message identification */ T_SMSCB_STATUS status; /* Read status of this message. */ CHAR name[CB_TAG_LENGTH]; /* Alphanumeric message tag. */ CHAR * text; /* Pointer to cell broadcast msg */ } T_SMS_CB_ATT; /* Cell Broadcast message list. */ typedef struct { int length; /* actual number of entries */ T_SMS_CB_ATT entry[MAX_MIDS]; } T_SMSCB_LIST; /* Cell Broadcast topics attributes. */ typedef struct { USHORT msg_id; /* Message identifier. */ SHORT dcs; /* data coding scheme */ char name [CB_TAG_LENGTH];/* Alphanumeric message tag. */ } T_SMSCB_TOPICS_ENTRY; /* Cell Broadcast topics list. */ typedef struct { int length; /* actual number of entries */ T_SMSCB_TOPICS_ENTRY entry[MAX_MIDS]; } T_SMSCB_TOPICS; /*SPR 1920, removed defn of T_SMSCB_CLASS_0_MSG, not used*/ /* class 0 Cell Broadcast Message */ /* storage for Cell Broadcast lists */ typedef struct { T_SMSCB_TOPICS CBTopics; /* list of topics to be received */ /*SPR 1920 removed SmsCbInfo, smsCBList, and Class0CBMessage from structure*/ } T_SMSCB_DATASTORE; //end; will be delete later //////////////////////////////////////////////////////////////////////////////////////// // The CB fifo is organized over the // link list. The "used_pointer" is giving the // starting point of the CB-fifo list. The "next_xxx" // is giving the link to the next pointer and so on. // used_pointer = FF means ->no cb messages stored // next_used = FF means ->end of the cb messages list. // free_pointer = FF means ->no free spaces ! // next_used = FF means ->end of the free spaces list /* Stored Cell Broadcast message attributes. */ typedef struct { SHORT sn; /* serial number in integer format */ USHORT mid; /* message identification */ UBYTE dcs; /* data coding scheme */ UBYTE page; /* number of this page */ UBYTE pages; /* number of total pages */ UBYTE msg_len; /* length of short message */ T_SMSCB_STATUS status; /* Read status of this message. */ /*SPR 1920, removed name field*/ UBYTE next_link; /*SPR 1920, memory for header string now dynamically allocated as needed*/ char* header/*[25]*/; //header information for the menu list UBYTE start_page; //indicate the first page of the multipage; need for the menu list } T_SMSCB_ATT; T_MFW smscb_setCBsettings(UBYTE State); #endif /* _DEF_MMI_SMSBROADCAST_H_ */