FreeCalypso > hg > fc-tourmaline
view src/ui/bmi/mmiMmi.c @ 46:09cdd5bf04e4
Condat display driver fix for 96x64 BW framebuffer
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 17 Oct 2020 22:50:15 +0000 |
parents | 67bfe9f274f6 |
children | c0052fe355d3 |
line wrap: on
line source
/******************************************************************************* CONDAT (UK) ******************************************************************************** This software product is the property of Condat (UK) Ltd and may not be disclosed to any third party without the express permission of the owner. ******************************************************************************** $Project name: Basic MMI $Project code: BMI (6349) $Module: MMI $File: MmiMmi.c $Revision: 1.0 $Author: Condat(UK) $Date: 25/10/00 ******************************************************************************** Description: This provides the root mofule for the basic MMI ******************************************************************************** $History: MmiMmi.c Apr 09, 2007 OMAPS00124879 x0039928(sumanth) Description : I sample crashes while reading the received SMS from the Agilent Solution : Heap memory is increased from 35k to 45k Oct 05, 2006 ER: OMAPS00094496 x0061088(Prachi) Description:Enhance RSSI to 3 parameters: Strength, quality, min-access-level Solution:To solve the ER OMAPS0094496,mmiInit() is now calling sAT_PercentCSQ() Jun 13 2005, REF:LOCOSTO-OTH-32113 - xpradipg Description: Bypass the powerkey initialization at bootup Solution: The powerkey initialization is bypassed by calling the drvKeyUpDown() in mmi_main() instead of key_power_initialize // Jun 23, 2004 REF: CRR MMI-SPR-16665 Rashmi C N(Sasken) // Description: Ocasionaly the LCD used to get stuck with the TI LOGO during power off. // Solution: By calling dspl_Enable(1) we are forcing the LCD to get updated. // July 05, 2006 REF: OMAPS00084167 Ravishankar(Wipro) // Description: Automatic bootup with no effect on press of power on key. // Solution: Checking the status of BDL operation being completed for booting up MMI // by using the function dev_Mbox_isDspMboxReady()and based on status calling // mmiInit(). 25/10/00 Original Condat(UK) BMI version. $End *******************************************************************************/ /******************************************************************************* Include Files *******************************************************************************/ #define ENTITY_MFW /* includes */ #include <string.h> #include <stdio.h> #include <stdlib.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_sys.h" #include "prim.h" #include "mfw_mfw.h" #include "mfw_win.h" #include "mfw_kbd.h" #include "mfw_lng.h" #include "mfw_tim.h" /* SPR#1428 - SH - New Editor changes */ #ifndef NEW_EDITOR #include "mfw_edt.h" #endif #include "mfw_icn.h" #include "mfw_mnu.h" #include "mfw_phb.h" #include "mfw_sim.h" #include "mfw_nm.h" #include "mfw_mme.h" #include "mfw_sat.h" #include "mfw_sms.h" #include "cus_aci.h" #include "prim.h" #ifndef PCM_2_FFS #include "pcm.h" #endif #include "ksd.h" #include "psa.h" #include "MmiMmi.h" #include "MmiMain.h" #include "MmiDummy.h" #include "MmiDialogs.h" #include "MmiLists.h" /* Retrieve PM duration from FlashData structure */ #ifdef NEPTUNE_BOARD #ifdef MMI_POWER_MANAGEMENT_TEST #include "mfw_ffs.h" #endif #endif #include "dspl.h" #include "drv_key.h" #ifdef FF_MMI_MULTIMEDIA /* To Assign the MSL_Init Return Value */ #include "MSL.h" #include "mmiMultimediaApp.h" #include "omxutil.h" /* Bug Fix - OMAPS00084167 */ /* Added - To access the funtion dev_Mbox_isDspMboxReady () */ #include "typedefs.h" #include "main_system.h" #include "dev_Mbox.h" /* 04-07-2006 */ #include "mfw_acie.h" /* prototypes of aci_delete and aci_create */ #endif #ifdef MMI_LITE #define MFW_MEMORY_POOL_SIZE 22000 /*SPR 2686*/ #else #ifdef FF_MMI_MMS #define MFW_MEMORY_POOL_SIZE (220*1024) #else #ifdef FF_MMI_MULTIMEDIA #define MFW_MEMORY_POOL_SIZE (220 * 1024) // RAVI - 18-07-2005 - For Image display #else #define MFW_MEMORY_POOL_SIZE 45000 #endif #endif #endif #ifndef _SIMULATION_ extern void AI_Power(unsigned char power); #endif //_SIMULATION_ /******************************************************************************* Global Data Elements *******************************************************************************/ U16 mmiScrX, mmiScrY; /* display sreen size */ static U8 mfwMem [MFW_MEMORY_POOL_SIZE]; /* mfw memory pool */ /* x0039928 - Lint warning fix static int initialized = 0; */ /* Begin Bug Fix - OMAPS00084167 */ /* Added for Primitive exchange */ #ifdef ENABLE_KEY_ON_BOOTING #define hCommACI _ENTITY_PREFIXED(hCommACI) #if defined (NEW_FRAME) EXTERN T_HANDLE hCommACI; #else EXTERN T_VSI_CHANDLE hCommACI; #endif #define BOOTUP_WAIT_TIME 20 #define BOOTUP_SUCCESS_IND 1 #define MFW_BOOTUP_IND 0x910 static int iPrimitiveSlot = 0; /* ====================================================== */ /** * Structure which holds the Status details **/ /* ====================================================== */ typedef struct { int iStatus; }T_MFW_BOOTUP_IND; GLOBAL BOOL bootup_response_cb (ULONG opc, void * data); #endif /* End - OMAPS00084167 */ /******************************************************************************* Public Methods *******************************************************************************/ /******************************************************************************* $Function: mmi_main $Description: entry point for the MMI, this hands control to mmiInit $Returns: None. $Arguments: None. *******************************************************************************/ void mmi_main( void ) { /* JVJ #1874 - mmi_main doesnt start the MMI. It only initilizes the Keyboard handler*/ /* The keyboard handler will call mmiInit() when the Power Key is pressed */ // Jun 13 2005, REF:LOCOSTO-OTH-32113 - xpradipg #if (BOARD == 61) /* BUG FIX - OMAPS00084167 */ /* For multimedia alone generate the primitive */ #ifdef ENABLE_KEY_ON_BOOTING /* Send the primitive to MMI */ PALLOC (bootup_indication, MFW_BOOTUP_IND); #endif /* END - OMAPS00084167 */ #if FF_MMI_SERVICES_MIGRATION drvKeyUpDown(0,0); #else key_power_init(); #endif #ifndef ENABLE_KEY_ON_BOOTING vsi_t_sleep(VSI_CALLER 50); mmiInit(); #else /* Begin - Bug fix - OMAPS00084167 */ iPrimitiveSlot = aci_create (bootup_response_cb, NULL); bootup_indication->iStatus = BOOTUP_SUCCESS_IND; PSENDX (ACI, bootup_indication); /* End - OMAPS00084167 */ #endif #else /* Other Builds */ key_power_init(); #endif } /* Begin - Bugfix - OMAPS00084167 */ #ifdef ENABLE_KEY_ON_BOOTING /* ===========================================================*/ /** * bootup_response_cb () - response function. * * @param ULONG opc - Operation Code. * * @param void * data - structure data. * * @return BOOL - TRUE / FALSE * * @see */ /* =========================================================== */ GLOBAL BOOL bootup_response_cb (ULONG opc, void * data) { T_MFW_BOOTUP_IND *bootup_indication; if (opc == MFW_BOOTUP_IND) { bootup_indication = (T_MFW_BOOTUP_IND *)data; /* Status is 1 then bootup sequence has enabled */ if (bootup_indication->iStatus == BOOTUP_SUCCESS_IND) { /* Contineous Pooling */ while (dev_Mbox_isDspMboxReady() == FALSE) { vsi_t_sleep (VSI_CALLER BOOTUP_WAIT_TIME); /* Small Delay after each check */ } aci_delete (iPrimitiveSlot); /* Once DSP initialization is done */ mmiInit (); return TRUE; } } return FALSE; } #endif /* End - OMAPS00084167 */ /******************************************************************************* $Function: mmiInit $Description: This initialises the MMI application $Returns: None. $Arguments: None. *******************************************************************************/ void mmiInit( void ) { #ifdef FF_MMI_MULTIMEDIA unsigned int uiResult = 0; #endif /* get the resources running */ /* Initialise the MFW and windowing system */ mfwInit( mfwMem, sizeof( mfwMem ) ); winInit( &mmiScrX, &mmiScrY ); timInit(); /* init timer handler */ kbdInit(); /* init keyboard handler */ lngInit(); /* init language handler */ #ifndef NEW_EDITOR /* SPR#1428 - SH - New Editor changes */ edtInit(); /* init editor handler */ #endif /* NEW_EDITOR */ mnuInit(); /* init menu handler */ icnInit(); /* init icon handler */ //Oct 05, 2006 ER: OMAPS00094496 x0061088(Prachi) sAT_PercentCSQ ( CMD_SRC_LCL, CSQ_Enable ); mainInit(0); #ifdef FF_MMI_MULTIMEDIA /* MSL Init Call */ uiResult = MSL_Init(); vsi_t_sleep(0, 100); mmi_setInitResult(uiResult); /* Power management. Enable/Disable on boot up based on value stored*/ #ifdef NEPTUNE_BOARD #ifdef MMI_POWER_MANAGEMENT_TEST if(FFS_flashData.pm_duration) { SVC_SCN_EnablePM( 1, FFS_flashData.pm_duration); } #endif #endif /* PCM Setup Done */ /* MSLRM_Start (); */ #endif } /******************************************************************************* $Function: mmiExit $Description: This exits the MMI application $Returns: None. $Arguments: None. *******************************************************************************/ void mmiExit( void ) { TRACE_EVENT("mmiExit"); icnExit(); /* finit icon handler */ mnuExit(); /* finit menu handler */ #ifndef NEW_EDITOR /* SPR#1428 - SH - New Editor changes */ edtExit(); /* finit edit handler */ #endif /* NEW_EDITOR */ lngExit(); /* finit language handler */ kbdExit(); /* finit keyboard handler */ timExit(); /* finit timer handler */ winExit(); /* finit window handler */ mfwExit(); /* exit mfw */ dspl_ClearAll(); // Jun 23, 2004 REF: CRR MMI-SPR-16665 Rashmi C N(Sasken) // Description: Ocasionaly the LCD used to get stuck with the TI LOGO during power off. // Solution: By calling dspl_Enable(1) we are forcing the LCD to get updated. dspl_Enable(1); TRACE_EVENT("SWITCHING_OFF!!!!!"); vsi_t_sleep (VSI_CALLER 50); /* * Power off the board * */ #ifndef _SIMULATION_ AI_Power(0); #endif //_SIMULATION_ } /******************************************************************************* End Of File *******************************************************************************/