comparison src/ui/mfw/mfw_mme.c @ 69:77321341946c

first-pass implementation of UI to FCHG connection
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 23 Oct 2020 03:39:22 +0000
parents 7c7fe9d0ea7c
children 7160f0d005d2
comparison
equal deleted inserted replaced
68:e9a4b683f697 69:77321341946c
144 #include "mfw_ffs.h" /*OMAPS00098881 x0039928(sumanth)*/ 144 #include "mfw_ffs.h" /*OMAPS00098881 x0039928(sumanth)*/
145 //xashmic 9 Sep 2006, OMAPS00092732 145 //xashmic 9 Sep 2006, OMAPS00092732
146 #ifdef FF_MMI_USBMS 146 #ifdef FF_MMI_USBMS
147 #include "usb/usb_api.h" 147 #include "usb/usb_api.h"
148 #endif 148 #endif
149 #include "fchg/fchg_api.h"
149 150
150 //x0pleela 01 Apr, 2007 ER: OMAPS00122561 151 //x0pleela 01 Apr, 2007 ER: OMAPS00122561
151 #ifdef FF_PHONE_LOCK 152 #ifdef FF_PHONE_LOCK
152 #include "mfw_sim.h" 153 #include "mfw_sim.h"
153 #endif //FF_PHONE_LOCK 154 #endif //FF_PHONE_LOCK
182 183
183 184
184 static int mmeCommand (U32 cmd, void *h); 185 static int mmeCommand (U32 cmd, void *h);
185 186
186 /* driver callbacks */ 187 /* driver callbacks */
187 static void pwrCb (drv_SignalID_Type *signal_params); 188 static void pwrCb (enum fchg_event);
188 static void rxCb (drv_SignalID_Type *signal_params); 189 static void rxCb (drv_SignalID_Type *signal_params);
189 static void rtcCb (drv_SignalID_Type *signal_params); 190 static void rtcCb (drv_SignalID_Type *signal_params);
190 191
191 /* Added to remove warning Aug - 11 */ 192 /* Added to remove warning Aug - 11 */
192 EXTERN UBYTE dspl_Enable (UBYTE in_Enable); 193 EXTERN UBYTE dspl_Enable (UBYTE in_Enable);
424 battLevel = 0; 425 battLevel = 0;
425 battState = 0; 426 battState = 0;
426 hdsPresence = 0; 427 hdsPresence = 0;
427 428
428 429
429 pwr_Init(pwrCb); //power driver 430 fchg_register_event_handler(pwrCb); /* battery driver */
430 rx_Init(rxCb); //fieldstrength driver 431 rx_Init(rxCb); //fieldstrength driver
431 light_Init(); //light emitting driver 432 light_Init(); //light emitting driver
432 // xpradipg - LOCOSTO-ENH-31895 : 23 June 2005 433 // xpradipg - LOCOSTO-ENH-31895 : 23 June 2005
433 #ifdef FF_MMI_AUDIO_PROFILE 434 #ifdef FF_MMI_AUDIO_PROFILE
434 audio_Init(audio_device_config); 435 audio_Init(audio_device_config);
435 #else 436 #else
436 audio_Init(hdsCb); //audio driver 437 audio_Init(hdsCb); //audio driver
437 #endif 438 #endif
438
439 mmeBattInfo ( 10, 0);
440 439
441 mmeRxInfo(5,0); 440 mmeRxInfo(5,0);
442 441
443 /* install prim handler */ 442 /* install prim handler */
444 pSlot = aci_create((T_PRIM_HANDLER)mmePrimHandler,NULL); 443 pSlot = aci_create((T_PRIM_HANDLER)mmePrimHandler,NULL);
776 PURPOSE : configure battery level information 775 PURPOSE : configure battery level information
777 776
778 777
779 */ 778 */
780 779
780 #if 0 /* removed in FreeCalypso */
781 void mmeBattInfo ( U8 intervalls, U16 level) 781 void mmeBattInfo ( U8 intervalls, U16 level)
782 { 782 {
783 pwr_DCB_Type pwr_DCB; 783 pwr_DCB_Type pwr_DCB;
784 784
785 if (level > 255) level = 255; 785 if (level > 255) level = 255;
787 pwr_DCB.RangeMin = (U8) level; /* low level threshold */ 787 pwr_DCB.RangeMin = (U8) level; /* low level threshold */
788 pwr_DCB.RangeMax = 100; /* 100 Percent */ 788 pwr_DCB.RangeMax = 100; /* 100 Percent */
789 pwr_DCB.Steps = intervalls; /* n Steps */ 789 pwr_DCB.Steps = intervalls; /* n Steps */
790 pwr_SetConfig(&pwr_DCB); 790 pwr_SetConfig(&pwr_DCB);
791 } 791 }
792 #endif
792 793
793 794
794 /* 795 /*
795 +--------------------------------------------------------------------+ 796 +--------------------------------------------------------------------+
796 | PROJECT : MMI-Framework (8417) MODULE : MFW_MME | 797 | PROJECT : MMI-Framework (8417) MODULE : MFW_MME |
1040 mmeSignal(MfwMmeSignal,level); 1041 mmeSignal(MfwMmeSignal,level);
1041 return TRUE; /* processed by MME, delete */ 1042 return TRUE; /* processed by MME, delete */
1042 case MMI_BATTERY_IND: 1043 case MMI_BATTERY_IND:
1043 level = ((T_MMI_BATTERY_IND *) data)->volt; 1044 level = ((T_MMI_BATTERY_IND *) data)->volt;
1044 state = ((T_MMI_BATTERY_IND *) data)->temp; 1045 state = ((T_MMI_BATTERY_IND *) data)->temp;
1045 if (battLevel != level) 1046 if (level != FCHG_BATT_BARS_CHARGING && battLevel != level)
1046 { 1047 {
1047 battLevel = level; 1048 battLevel = level;
1048 mmeSignal(MfwMmeBattery,level); 1049 mmeSignal(MfwMmeBattery,level);
1049 } 1050 }
1050 if (battState != state) 1051 /* is it a new state or an event? */
1052 if (state >= BATT_EVENT_CHARGER_PLUG)
1053 {
1054 mmeSignal(MfwMmeBaState,state);
1055 }
1056 else if (battState != state)
1051 { 1057 {
1052 battState = state; 1058 battState = state;
1053 mmeSignal(MfwMmeBaState,state); 1059 mmeSignal(MfwMmeBaState,state);
1054 } 1060 }
1055 return TRUE; /* processed by MME, delete */ 1061 return TRUE; /* processed by MME, delete */
1185 1191
1186 PURPOSE : Called by battery driver 1192 PURPOSE : Called by battery driver
1187 1193
1188 */ 1194 */
1189 1195
1190 static void pwrCb (drv_SignalID_Type *signal_params) 1196 static void pwrCb (enum fchg_event fchg_event)
1191 { 1197 {
1192 pwr_Status_Type *para; 1198 struct fchg_user_state fchg_data;
1193 PALLOC(battery_ind, MMI_BATTERY_IND); 1199 PALLOC(battery_ind, MMI_BATTERY_IND);
1194 1200
1195 para = (pwr_Status_Type *) signal_params->UserData; 1201 fchg_get_current_state(&fchg_data);
1196 battery_ind->volt = para->BatteryLevel; 1202 battery_ind->volt = fchg_data.batt_bars;
1197 battery_ind->temp = para->Status; 1203 if (fchg_event == FCHG_EVENT_CHARGER_PLUG) {
1204 battery_ind->temp = BATT_EVENT_CHARGER_PLUG;
1205 } else {
1206 switch (fchg_data.chg_state) {
1207 case FCHG_STATE_CI_CHARGING:
1208 case FCHG_STATE_CV_CHARGING:
1209 battery_ind->temp = BATT_STATE_CHARGING;
1210 break;
1211 case FCHG_STATE_READY_TO_RECHARGE:
1212 battery_ind->temp = BATT_STATE_CHARGING_COMPLETE;
1213 break;
1214 default:
1215 battery_ind->temp = BATT_STATE_NO_CHARGING;
1216 }
1217 }
1198 1218
1199 PSENDX(ACI,battery_ind); 1219 PSENDX(ACI,battery_ind);
1200 } 1220 }
1201 1221
1202 1222