📄 mmitimedate.c
字号:
{
T_MFW_HND win = mfw_parent (mfw_header());
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
ALARM_DATA* data = (ALARM_DATA*)win_data->user;
TRACE_EVENT("alarm_tim_cb");
/* 2004/07/12 sunsj modify for alarm in simtoolkit */
if( winIsFocussed(data->win) )
{
if( (data->id!=ALARM_STROKE)&&(!call_win_flag)&&(!call_data.win_incoming)&&(!call_data.win_calling) )
{
/*2004/05/31 yhf modify*/
if( data->count>60 ) // MI18800000263
{
//Stopplayingdevice(); xsf changed 12.31
StopPlayByReasonId(ALARMPLAY);
timStop(data->info_time);
alarm_destroy(win);
}
else
{
data->count++;
data->animal_id=!data->animal_id;
if( data->AfterCall )
{
data->AfterCall++;
if( data->AfterCall==3 )
{
StartPlayByReason(ALARMPLAY,0);
}
}
if( data->id==ALARM_ODINARY )
{
switch( data->count%2 )
{
case 0:
/* 2004/06 sunsj modify for picture manage */
DRAW_ICON_SEL(ICON_ALARM_ANIM, 0);
//dspl_BitBlt(40, 69, 49, 57, 0, (void*)alarm_animal1, 0);
break;
case 1:
/* 2004/06 sunsj modify for picture manage */
DRAW_ICON_SEL(ICON_ALARM_ANIM, 0);
DRAW_ICON_SEL(ICON_ALARM_ANIM, 1);
//dspl_BitBlt(40, 69, 49, 57, 0, (void*)alarm_animal1, 0);
//dspl_BitBlt(40, 69, 49, 18, 0, (void*)alarm_animal2, 0);
break;
}
}
//end yhf modify
timStart(data->info_time);
/* if(data->id==ALARM_ODINARY)
{
dspl_Clear(40, 53, 80, 106);
if(!data->animal_id)
dspl_BitBlt(40, 53, 40, 53, 0, (void*)alarm_animal1, 0);
else
dspl_BitBlt(0, 17, 120, 128, 0, (void*)alarm_animal2, 0);
}*/
}
}
else if( data->id==ALARM_STROKE )
{
if( data->count>20 )
{
StopTone();
timDelete(data->info_time);
alarm_destroy(win);
}
else
{
data->count++;
timStart(data->info_time);
}
}
else
{
//timDelete(data->info_time);
//alarm_destroy(win);
//StopPlayByReasonId(ALARMPLAY);
if( data->Melody_index )
{
data->Melody_index=FALSE;
}
//timStart(data->info_time);
}
}
else
{
StopPlayByReasonId(ALARMPLAY);
//StopTone();
timDelete(data->info_time);
alarm_destroy(win);
}
}
static int alarm_kbd_cb (MfwEvt e, MfwKbd *kc)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)alarm_win)->data;
ALARM_DATA* data = (ALARM_DATA *)win_data->user;
TraceInt(kc->code);
switch( kc->code )
{
case KCD_LEFT:
TRACE_EVENT("gdy KCD_LEFT");
if( data->id==ALARM_SCHEDULE )
{
if( Flash_ScheRead((char*)ScheTable[FFS_flashData.latest_alarm.schedule_position/SCHEDULE_NUMBER])>0 )
{
if( FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%SCHEDULE_NUMBER].type==PHONE )
{
//Stopplayingdevice(); xsf changed 12.31
StopPlayByReasonId(ALARMPLAY);
callNumber((UBYTE*)FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%SCHEDULE_NUMBER].text);
alarm_destroy(alarm_win);
break;
}
}
//Stopplayingdevice(); xsf changed 12.31
StopPlayByReasonId(ALARMPLAY);
SEND_EVENT(alarm_win,ALARM_EXIT,0,0);
}
break;
case KCD_F4:
if( GetHallStatus() ) //hall on
break;
case KCD_RIGHT:
case KCD_HUP:
timStop(data->info_time); //MI18800000246
StopPlayByReasonId(ALARMPLAY);
//StopTone();
SEND_EVENT(alarm_win,ALARM_EXIT,0,0);
break;
case KCD_ABC: // 2004.4.5 WYJ fix MI18800000155
break;
default:
//timStop(data->info_time); MI18800000246
//StopPlayByReasonId(ALARMPLAY);
//StopTone();
//SEND_EVENT(alarm_win,ALARM_EXIT,0,0);
break;
}
return MFW_EVENT_CONSUMED;
}
static int alarm_win_cb (T_MFW_EVENT event,T_MFW_WIN * win)
{
ALARM_DATA* data = (ALARM_DATA *)win->user;
T_MFW_WIN * edt_win =((T_MFW_HDR *)data->parent_win)->data;
TRACE_FUNCTION ("MmiTimeDate:alarm_win_cb");
if( event EQ MfwWinVisible )
{
//dspl_ClearAll();
disp_alarm_screen(data);
return 1;
}
return 0;
}
void disp_alarm_screen(ALARM_DATA* data)
{
char text[5];
char stroke_string[8];
int old_color;
//2004/05/25 yhf modify
//StartTone();
switch( data->id )
{
case ALARM_ODINARY:
if( call_data.win_incoming||call_data.win_calling||call_win_flag )
{
if( FFS_flashData.latest_alarm.schedule_position )
dspl_colorTextOut(28, 125 , DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtWeeklyAlarm), 0xffffff);
else
dspl_colorTextOut(28, 125 , DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtDailyAlarm), 0xffffff);
break;
}
dspl_ClearAll();
draw_special_background();
/* 2004/06 sunsj modify for picture manage */
DRAW_ICON_SEL(ICON_ALARM_ANIM, 0);
//dspl_BitBlt(40, 69, 49, 57, 0, (void*)alarm_animal1, 0);
sprintf(text, "%02d:%02d", FFS_flashData.latest_alarm.hour, FFS_flashData.latest_alarm.minute);
if( Mmi_getCurrentLanguage()==CHINESE_LANGUAGE )
{
dspl_colorTextOut( 45, 28 , DSPL_TXTATTR_TRANSPARENT, text, 0xffffff);
if( FFS_flashData.latest_alarm.schedule_position )
dspl_colorTextOut(32, 3 , DSPL_TXTATTR_WHITE_EDGE, MmiRsrcGetText(TxtWeeklyAlarm), 0x000000);
else
dspl_colorTextOut(32, 3 , DSPL_TXTATTR_WHITE_EDGE, MmiRsrcGetText(TxtDailyAlarm), 0x000000);
}
else
{
if( FFS_flashData.latest_alarm.schedule_position )
dspl_colorTextOut(25, 3 , DSPL_TXTATTR_WHITE_EDGE, MmiRsrcGetText(TxtWeeklyAlarm), 0x000000);
else
dspl_colorTextOut(25, 3 , DSPL_TXTATTR_WHITE_EDGE, MmiRsrcGetText(TxtDailyAlarm), 0x000000);
dspl_colorTextOut( 45, 28 , DSPL_TXTATTR_TRANSPARENT, text, 0xffffff);
}
displaySoftKeys(0, TxtSoftConfirm);
break;
case ALARM_SCHEDULE:
if( call_data.win_incoming||call_data.win_calling||call_win_flag )
{
dspl_colorTextOut(28, 125 , DSPL_TXTATTR_TRANSPARENT, MmiRsrcGetText(TxtSchedule), 0xffffff);
break;
}
dspl_ClearAll();
if( Flash_ScheRead((char*)ScheTable[FFS_flashData.latest_alarm.schedule_position/SCHEDULE_NUMBER])>0 )
{
if( FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%SCHEDULE_NUMBER].type==PHONE )
{
TRACE_EVENT("PHONE");
dspl_colorTextOut(35, 20 , 0, MmiRsrcGetText(TxtCall), 0x000000);
dspl_colorTextOut(60-strlen((char*)(FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%70].text))*4, 60 , 0, (char*)FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%70].text,0xff0000);
displaySoftKeys(TxtSoftCall, TxtSoftBack);
#if(MAIN_LCD_SIZE==3)
draw_softkeybar_fourdirection_arrow();//jhxu720 add
#endif
}
else
{
scheDataDisplay(&FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%SCHEDULE_NUMBER]);
// dspl_colorTextOut(0,16,0,(char*)FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position%70].text,0x0000ff);
displaySoftKeys(0, TxtSoftConfirm);
}
}
/*end yhf modify*/
break;
case ALARM_STROKE:
dspl_colorTextOut(28, 30 , 0, MmiRsrcGetText(TxtStroke), 0x0000ff);
memset(stroke_string,0,8);
sprintf(stroke_string,"%02d:%02d",currclock.hour,currclock.min);
dspl_colorTextOut(40, 60, 0, (char *)stroke_string, 0x0000ff);
displaySoftKeys(0, TxtSoftConfirm);
#if(MAIN_LCD_SIZE==3)
draw_softkeybar_fourdirection_arrow();//jhxu720 add
#endif
break;
}
if( data->id!=ALARM_STROKE )
{
TRACE_EVENT("ALARM_STROKE");
TraceInt(data->Melody_index);
if( !data->Melody_index )
{
//StartPlayByReason(ALARMPLAY,0);
data->AfterCall++;
data->Melody_index=TRUE;
#ifndef FOR_FTA_CTA
timStart(data->info_time);
#endif
}
}
}
void alarm_destroy(T_MFW_HND own_window)
{
T_MFW_WIN * win = ((T_MFW_HDR *)own_window)->data;
ALARM_DATA* data = (ALARM_DATA*)win->user;
alarm_win=NULL;
set_latest_alarm();
/*2003/12/26,talcon add outer Idle handle */
setOuterState(OUTERIDLESTATE_ALERT,0,0);//2004-03-23 Sunny modify
TRACE_EVENT("alarm_destroy");
if( own_window )
{
/*
* Delete WIN Handler
*/
win_delete (own_window);
/*
* Free Memory
*/
FREE_MEMORY ((void *)data, sizeof (ALARM_DATA));
}
}
void set_latest_alarm()
{
char timedate_string1[20];
char timedate_string2[20];
char timedate_string3[20];
char displaystring[20];
char temp_str[4];
long t1=0,t2=0,t3=0,t4=0;
TIMEDATE today;
week_date today_date;
week_date next_date;
MONTHTABLE month_table;
T_RTC_DATE_TIME time_date;
T_RV_RETURN path;
int i,t_string,t_string1;
TRACE_EVENT("set_latest_alarm");
//lxj
Flash_ScheRead((char *)ScheTable[0]);
//lxj
GetTimeDate(currdate.year, currdate.month, currdate.day, &today);
t1=currdate.year-2000;
t1=t1*13+currdate.month;
t1=t1*32+currdate.day;
t1=t1*61+currclock.hour;
t1=t1*61+currclock.min;
FFS_flashData.latest_alarm.alarm_type=0;
t3=t1;
TraceInt(t3);
//autopower open time
if( FFS_flashData.poweron_switch )
{
t2=currdate.year-2000;
t2=t2*13+currdate.month;
t2=t2*32+currdate.day;
t2=t2*61+FFS_flashData.opentime[0];
t2=t2*61+FFS_flashData.opentime[1];
// if(t_string>0)//gdy 03/03/04
if( t2>t1 )
{
if( (t2<t3)||(t1==t3) )
{
// strcpy(timedate_string3,timedate_string2);//gdy 03/03/04
t3=t2;
FFS_flashData.latest_alarm.alarm_type=AUTOPOWER;
}
//else if(t_string==0)//gdy 03/03/04
else if( t2==t3 )
{
FFS_flashData.latest_alarm.alarm_type=AUTOPOWER;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -