📄 mmicharging.c
字号:
//2004-03-18 Sunny modify
if( (OlderCurrentBatPicNum)==4 )
{
//2004-03-18 Sunny add
ChargeOffset=(ChargeOffset+1)%(5-currenticon);
GetBatPicnum();
BlinkBatPicnum=CurrentBatPicNum;
//2004-03-18 Sunny add end
}
else
{
ChargeOffset=(ChargeOffset+1)%(5-currenticon);
}
//2004-03-18 Sunny modify end
timStart(data->tim);
IsBlinktimerRun=1;
}
}
else
{
while( AutoPowerOn()!=0 );
IsBlinktimerRun=0;
ChargeOffset=0;
SEND_EVENT( data->win, ChargeWin_DESTROY, 0, 0 );
data->win=0;
//write the WDT data to eeprom indicating turned off normally
SwitchOffMobile();
}
return MFW_EVENT_CONSUMED;
}
static int ChargeWinKbdCB( MfwEvt e, MfwKbd *k )
{
#if 0
T_MFW_HND win = mfwParent( mfw_header() );
T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data;
t_ChargeWin *data = (t_ChargeWin *) win_data->user;
#endif
switch( k->code )
{
/* zhq, 2004/07/05, modified for we use long press power key to switch on.
case KCD_HUP:
*/
case KCD_POWER:
SwitchOnFromChargingWin();
StartPlayByReason(POWERONPLAY, 0);
/* 2004/07/05 sunsj modify */
NotCharingMode = TRUE;
drawOuterIdle();
break;
case KCD_ABC:
/* 2004/04/02 sunsj modify */
if( pwr_Status.ChargingVirtualKeyFlag )
{
//LedLightnessAdjust(200); MI18800000446 WYJ remove
timStart(gtVibator);
chargerbatEvent();
}
break;
default:
//LCD_ON(); MI18800000446 WYJ remove
lcdindex=0;
break;
}
return MFW_EVENT_CONSUMED;
}
void SwitchOnFromChargingWin(void){
T_MFW_HND win = mfwParent( mfw_header() );
T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data;
t_ChargeWin *data = (t_ChargeWin *) win_data->user;
timStop(data->tim);
//timDelete(data->tim);/*2003/12/16, wangyan modify*/
IsBlinktimerRun=0;
SEND_EVENT( win, ChargeWin_DESTROY, 0, 0 );
win=0;
ChargeOffset=0;
// startExec(PhoneInit,0);
AniandSerachon();
}
// -----------------------------------------------------------
// Function : SetChargingIcon
// Description : Draw battery icon for charging window
// Input :
// Output :
// Notes :
// Last Modified:
// -------------------------------------------------------------
//
void SetChargingIcon( U8 BatteryCount)
{
//2004-04-12 Sunny add
MfwHnd edt = idle_get_edt_window();
if( edt )
{
return;
}
//2004-04-12 Sunny add end
/*2003/11/13,talcon modify*/
if( BatteryCount > 4 ) BatteryCount = 0;
/* 2004/06 sunsj modify for picture manage */
//drawIconByIcnAttr((MfwIcnAttr*)&batt_Attr[BatteryCount],(MfwIcnAttr*)&battMask_Attr[BatteryCount]);
DRAW_ICON_SEL_MASK(ICON_IDLEBATTERY, BatteryCount);
}
/*2003/12/22,talcon add for outerIdle*/
void SetChargingIcon_Sub( U8 BatteryCount)
{
if( BatteryCount > 4 ) BatteryCount = 0;
/* 2004/06 sunsj modify for picture manage */
//drawIconByIcnAttr((MfwIcnAttr*)&batt_Attr[BatteryCount+iconBattMax],(MfwIcnAttr*)&battMask_Attr[BatteryCount+iconBattMax]);
// DRAW_ICON_SEL_MASK(ICON_IDLEBATTERY, BatteryCount+iconBattMax);
DRAW_ICON_SEL_MASK(ICON_OUTIDLEBATTERY, BatteryCount);//shiheng 0805
}
/************************************************************************************************
$History: 2004-04-13 Sunny modify
************************************************************************************************/
void SetOffChargingIcon( U8 BatteryCount)
{
/* 2004/06/21 yhf modify */
int i;
#if (MAIN_LCD_SIZE==4)
if( winIsFocussed(g_ChargingWin) )
{
dspl_Clear(32,92,95,129);
/* 2004/06 sunsj modify for picture manage */
//DRAW_ICON_SEL(ICON_OFFCHARGING, 0);
/* 2004/07/03 yhf modify */
DRAW_ICON_SEL_MASK_OWN(ICON_OFFCHARGING,0);
//dspl_BitBlt(32, 92, 63, 37, 0, (void*)offcharge_progress, 0);
for( i=0;i<BatteryCount;i++ )
{
DRAW_ICON_ATTRIBUTE(ICON_OFFCHARGING, 79-i*13, 94, 2, ICON_LOCATION);
//dspl_BitBlt(79-i*13, 93, 12, 33, 0, (void*)offcharge_play, 0);
}
}
#elif (MAIN_LCD_SIZE==3)
DRAW_ICON(ICON_OFFBATTERYBKG);
DRAW_ICON_SEL(ICON_OFFCHARGING,BatteryCount-1);
#endif
}
// Function : ALPollingTick
// Description : Polls various devices based on a number of seconds. The
// devices are:
// The headset, every second Charging status
// The battery, every second if not charging
// It also forces an update of the NVM every
// ten minutes (60*5 = 300 secs)
// Input :
// Output :
// Notes : Last modified for batt removal and low volt detection
// Last Modified: Amir K. 11Aug
// --------------------------------------------------------------------------
//
void ALPollingTick( void )
{
static CARKITSTATE CarkitState=NOTHING,LastCarkitState=NOTHING;
static UBYTE ChargerIn=0;
static UBYTE inidx=0;
TRACE_EVENT("ALPollingTick()");
// ----------------------------
// is Charger IN
// ----------------------------
/* if(pwr_Status.charger_plugged==1){//if charger in
if ( GlobalIconStatus & GlobalBatteryIconFlag ){//if battery icon is shown
if((pwr_Status.charging_state==1)||(pwr_Status.charging_state==2)){//if is charging
if(currenticon>0)
currenticon-=1;
SetChargingIcon( currenticon +ChargeOffset );
ChargeOffset=(ChargeOffset+1)%(5-currenticon);
}else{//if is end of charging
SetChargingIcon( currenticon );
}
}
}else{//charger not in
if ( GlobalIconStatus & GlobalBatteryIconFlag )
SetChargingIcon( currenticon );
}*/
if( currenticon<=BlinkBatPicnum )
{ ///zym modified for obviate to display between two and three
currenticon=BlinkBatPicnum;
}
//if(currenticon>0)
//2004-03-17 Sunny modified
if( currenticon==4 )
currenticon-=1;
currenticon=0;//2004-03-21 Sunny add.
oldChargeIcon = currenticon +ChargeOffset ;
OlderCurrentBatPicNum = oldChargeIcon;
SetChargingIcon( currenticon +ChargeOffset );
DisplayOuterIdleCharge(currenticon +ChargeOffset);//2004-03-21 Sunny add.
//if(((currenticon +ChargeOffset)==4)&&(bat_voltage_info.batchanged))
//2004-03-18 Sunny modify
if( (currenticon +ChargeOffset)==4 ) ///zym modified for low voltage warning
{
//2004-03-17 Sunny add
ChargeOffset=(ChargeOffset+1)%(5-currenticon);
GetBatPicnum();
BlinkBatPicnum=CurrentBatPicNum;
//2004-03-17 Sunny add end
}
else
{
ChargeOffset=(ChargeOffset+1)%(5-currenticon);
}
//2004-03-18 Sunny modify end
} // ALPollingTick
static void chargerbatEvent(void)
{
T_MFW_HND win = mfwParent( mfw_header() );
T_MFW_WIN *win_data = ((T_MFW_HDR *) win)->data;
t_ChargeWin *data = (t_ChargeWin *) win_data->user;
pwr_Status.ChargingVirtualKeyFlag=0;
if( pwr_Status.charger_plugged==0 )
{
while( AutoPowerOn()!=0 );
SEND_EVENT( data->win, ChargeWin_DESTROY, 0, 0 );
data->win=0;
//write the WDT data to eeprom indicating turned off normally
SwitchOffMobile();
return;
}
GetBatPicnum();
if( pwr_Status.charging_state==0 )
{// full
if( IsBlinktimerRun )
{
timStop(data->tim);
IsBlinktimerRun=0;
}
//PROMPT(28, 48 ,0,TxtChargComplete);
DisplayChargingWordInfo(TxtChargComplete);
/* zhq, 2004/07/09, added for when charging complete, we synchronize sub screen's
display text . */
drawOuterIdle();
SetOffChargingIcon( 4 );
timStart(data->tim);
}
else
{// if((pwr_Status.charging_state==1)||(pwr_Status.charging_state==2)||(pwr_Status.charging_state==100)){//charger in and not full
//PROMPT(28,48,0,TxtCharging);
DisplayChargingWordInfo(TxtCharging);
if( IsBlinktimerRun==0 )
{
BlinkBatPicnum=CurrentBatPicNum;
timStart(data->tim);
IsBlinktimerRun=1;
}
}
}
/************************************************************************/
/* 2004/07/15 sunsj modify */
/************************************************************************/
#if(MAIN_LCD_SIZE==4)
void DisplayChargingWordInfo(int i)
{
int x = 0;
x = (96-get_StringWidth(MmiRsrcGetText(i)))/2;
if( winIsFocussed(g_ChargingWin) )
{
PROMPT(x, 48 ,0,i);
}
}
#elif(MAIN_LCD_SIZE==3)
void DisplayChargingWordInfo(int i)
{
int x = 0;
x = (128-get_StringWidth(MmiRsrcGetText(i)))/2;
if( winIsFocussed(g_ChargingWin) )
{
PROMPT(x, 0 ,0,i);
}
}
#endif
void LowVoltageWarningDialogCB(T_MFW_HND win, USHORT identifier, UBYTE reason)
{
//driverFlag &= 0xFFFFFFEF;
lowVoltageWin = NULL;
}
void LowVoltageWarningDialog(void){
//T_MFW_HND win = mfwParent(mfw_header());
T_DISPLAY_DATA display_info;
//if(win) {
//if(!(driverFlag & 0x010)){
if( !lowVoltageWin )
{
dialog_info_init(&display_info);
display_info.KeyEvents = KEY_ALL&(~KEY_F4);
display_info.TextId = TxtNeedCharging;
display_info.TextId2 = TxtNull;
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.LeftSoftKey = TxtNull;
display_info.RightSoftKey = TxtNull;
display_info.Time = FOREVER;
display_info.iconindex = REMIND_NORECORD;
display_info.Identifier=LOW_VOLTAGE_WARNING;
display_info.Callback =(T_VOID_FUNC) LowVoltageWarningDialogCB;
//driverFlag |= 0x010;
//2004-04-01 Sunny add for outer screen
setOuterState(OUTERIDLESTATE_LOWVOLTAGE, 1, 0);
//2004-04-01 Sunny add end
lowVoltageWin = info_dialog( 0, &display_info );
StartPlayByReason(NEEDCHARGE,0);
}
else
StartPlayByReason(NEEDCHARGE,0);
//}
//else{
//}
return ;
}
/*************************************************************************************************
$Name: LowVoltageSwitchOffDialog
$Author: Sunny
$Date: 2004-04-01
$Description: Remind the switch off info when the voltage down to switch off
*************************************************************************************************/
void LowVoltageSwitchOffDialog(void){
T_DISPLAY_DATA display_info;
if( !lowVoltageWin )
{
dialog_info_init(&display_info);
display_info.KeyEvents = KEY_ALL&(~KEY_F4);
display_info.TextId = TxtNoPower;
display_info.TextId2 = TxtSwitchOff;
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.LeftSoftKey = TxtNull;
display_info.RightSoftKey = TxtNull;
display_info.Time = FOREVER;
display_info.iconindex = REMIND_NORECORD;
display_info.Identifier=LOW_VOLTAGE_WARNING;
display_info.Callback =(T_VOID_FUNC) LowVoltageWarningDialogCB;
setOuterState(OUTERIDLESTATE_LOWVOLTAGESWITCHOFF, 1, 0);
lowVoltageWin = info_dialog( 0, &display_info );
}
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -