FreeCalypso > hg > fc-tourmaline
diff 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 |
line wrap: on
line diff
--- a/src/ui/mfw/mfw_mme.c Fri Oct 23 01:59:58 2020 +0000 +++ b/src/ui/mfw/mfw_mme.c Fri Oct 23 03:39:22 2020 +0000 @@ -146,6 +146,7 @@ #ifdef FF_MMI_USBMS #include "usb/usb_api.h" #endif +#include "fchg/fchg_api.h" //x0pleela 01 Apr, 2007 ER: OMAPS00122561 #ifdef FF_PHONE_LOCK @@ -184,7 +185,7 @@ static int mmeCommand (U32 cmd, void *h); /* driver callbacks */ -static void pwrCb (drv_SignalID_Type *signal_params); +static void pwrCb (enum fchg_event); static void rxCb (drv_SignalID_Type *signal_params); static void rtcCb (drv_SignalID_Type *signal_params); @@ -426,9 +427,9 @@ hdsPresence = 0; - pwr_Init(pwrCb); //power driver - rx_Init(rxCb); //fieldstrength driver - light_Init(); //light emitting driver + fchg_register_event_handler(pwrCb); /* battery driver */ + rx_Init(rxCb); //fieldstrength driver + light_Init(); //light emitting driver // xpradipg - LOCOSTO-ENH-31895 : 23 June 2005 #ifdef FF_MMI_AUDIO_PROFILE audio_Init(audio_device_config); @@ -436,8 +437,6 @@ audio_Init(hdsCb); //audio driver #endif - mmeBattInfo ( 10, 0); - mmeRxInfo(5,0); /* install prim handler */ @@ -778,6 +777,7 @@ */ +#if 0 /* removed in FreeCalypso */ void mmeBattInfo ( U8 intervalls, U16 level) { pwr_DCB_Type pwr_DCB; @@ -789,6 +789,7 @@ pwr_DCB.Steps = intervalls; /* n Steps */ pwr_SetConfig(&pwr_DCB); } +#endif /* @@ -1042,12 +1043,17 @@ case MMI_BATTERY_IND: level = ((T_MMI_BATTERY_IND *) data)->volt; state = ((T_MMI_BATTERY_IND *) data)->temp; - if (battLevel != level) + if (level != FCHG_BATT_BARS_CHARGING && battLevel != level) { battLevel = level; mmeSignal(MfwMmeBattery,level); } - if (battState != state) + /* is it a new state or an event? */ + if (state >= BATT_EVENT_CHARGER_PLUG) + { + mmeSignal(MfwMmeBaState,state); + } + else if (battState != state) { battState = state; mmeSignal(MfwMmeBaState,state); @@ -1187,14 +1193,28 @@ */ -static void pwrCb (drv_SignalID_Type *signal_params) +static void pwrCb (enum fchg_event fchg_event) { - pwr_Status_Type *para; + struct fchg_user_state fchg_data; PALLOC(battery_ind, MMI_BATTERY_IND); - para = (pwr_Status_Type *) signal_params->UserData; - battery_ind->volt = para->BatteryLevel; - battery_ind->temp = para->Status; + fchg_get_current_state(&fchg_data); + battery_ind->volt = fchg_data.batt_bars; + if (fchg_event == FCHG_EVENT_CHARGER_PLUG) { + battery_ind->temp = BATT_EVENT_CHARGER_PLUG; + } else { + switch (fchg_data.chg_state) { + case FCHG_STATE_CI_CHARGING: + case FCHG_STATE_CV_CHARGING: + battery_ind->temp = BATT_STATE_CHARGING; + break; + case FCHG_STATE_READY_TO_RECHARGE: + battery_ind->temp = BATT_STATE_CHARGING_COMPLETE; + break; + default: + battery_ind->temp = BATT_STATE_NO_CHARGING; + } + } PSENDX(ACI,battery_ind); }