📄 mmitimedate.c
字号:
break;
default:
break;
}
}
else
{
ALARM_FLAG=FALSE;
}
}
alarm_timedate.year=FFS_flashData.latest_alarm.year;
alarm_timedate.month=FFS_flashData.latest_alarm.month;
alarm_timedate.day=FFS_flashData.latest_alarm.day;
alarm_timedate.hour=FFS_flashData.latest_alarm.hour;
alarm_timedate.minute=FFS_flashData.latest_alarm.minute;
GetNextMinute(&alarm_timedate, -2, &next);
if( (next.year==currdate.year)&&(next.month==currdate.month)&&(next.day==currdate.day)&&(next.hour==currclock.hour)&&
(next.minute==currclock.min) )
{
TRACE_EVENT("RTC_DISABLE_IT_ALARM");
RTC_DISABLE_IT_ALARM;
//rvf_disable(25);
}
//power off detecting and setting power on time
if( FFS_flashData.poweroff_switch )
{
if( !autopower_flag )
{
if( (FFS_flashData.closetime[0] == currclock.hour)&&
(FFS_flashData.closetime[1] == currclock.min) )
{
set_latest_alarm();
alarm_timedate.year=FFS_flashData.latest_alarm.year;
alarm_timedate.month=FFS_flashData.latest_alarm.month;
alarm_timedate.day=FFS_flashData.latest_alarm.day;
alarm_timedate.hour=FFS_flashData.latest_alarm.hour;
alarm_timedate.minute=FFS_flashData.latest_alarm.minute;
GetNextMinute(&alarm_timedate, -1, &next);
time_date.year=next.year-2000;
time_date.month=next.month;
time_date.day=next.day;
time_date.hour=next.hour;
time_date.minute=next.minute;
time_date.mode_12_hour=FALSE;
if( alarm_win||call_data.win_incoming||call_data.win_calling||call_win_flag )
{
RTC_SetAlarm(time_date, path);
TIMCREATE_SETFLLAG(tim_win=timCreate(parent_win, 1000, (T_MFW_CB)autopower_tim_cb);)
timStart(tim_win);
}
else
{
RTC_SetAlarm(time_date, path);
ConfirmAutopower();
}
autopower_flag=TRUE;
}
}
else autopower_flag=FALSE;
}
if( (FFS_flashData.fullhralert==1)&&(currclock.min==0) )
{
if( !call_win_flag&&!call_data.win_incoming&&!call_win_flag&&!alarm_win )
{
if( !STROKE_FLAG )
{
StartPlayByReason(FULLHRALERT,0); //wms modified 03-03-05
STROKE_FLAG=!STROKE_FLAG;
}
else
{
STROKE_FLAG=!STROKE_FLAG;
}
}
}
if( currclock.min>59 )
{
currclock.min=0;
currclock.hour++;
}
if( currclock.hour>23 )
{
currclock.hour=0;
currdate.day++;
}
switch( currdate.month )
{
case 2:
if( (!(currdate.year%4))&&(currdate.year%100)||(!(currdate.year%400)) )
{
if( currdate.day>29 )
{
currdate.day=0;
currdate.month++;
}
}
else
{
if( currdate.day>28 )
{
currdate.day=0;
currdate.month++;
}
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if( currdate.day>31 )
{
currdate.day=0;
currdate.month++;
}
break;
case 4:
case 6:
case 9:
case 11:
if( currdate.day>30 )
{
currdate.day=0;
currdate.month++;
}
break;
}
if( currdate.month>12 )
{
currdate.month=1;
currdate.year++;
}
if( currdate.day<1 )
currdate.day=1;
if( currdate.month<1 )
currdate.month=1;
if( currdate.year<2000 )
currdate.year=2000;
if( currclock.hour<0 )
currclock.hour=0;
if( currclock.min<0 )
currclock.min=0;
}
T_MFW_CB autopower_tim_cb(MfwEvt e, MfwTim *tc)
{
if( alarm_win||call_data.win_incoming||call_data.win_calling||call_win_flag )
timStart(tim_win);
else
{
timStop(tim_win);
ConfirmAutopower();
}
}
T_MFW_CB CallAndAlarm_tim_cb(MfwEvt e, MfwTim *tc)
{
if( call_data.win_incoming||call_data.win_calling||call_win_flag||timer_win )
{
timStart(tim_win);
}
else
{
timDelete(tim_win);
if( FFS_flashData.latest_alarm.alarm_type==ORDINARY_ALARM )
alarm_screen();
else schedule_alarm_screen();
}
}
/*******************************************************************************
$Function: alarm_screen
$Description: displays alarm screen
$Returns: none.
$Arguments: none
*******************************************************************************/
#if 0
void alarm_screen()
{
T_MFW_HND idle_win = idle_get_window();
T_DISPLAY_DATA display_info;
char text[25];
FFS_flashData.alarm_day = 0;//Alarm no longer set
flash_write();
StartTone();
sprintf(text, "%02d:%02d", FFS_flashData.latest_alarm.hour, FFS_flashData.latest_alarm.minute);
display_info.KeyEvents = KEY_CLEAR|KEY_LEFT|KEY_RIGHT;
display_info.TextId = TxtAlarm;
display_info.TextId2 = 0;
display_info.TextString ='\0';
display_info.TextString2 = text;
display_info.LeftSoftKey = TxtNull;
display_info.RightSoftKey = TxtSoftOK;
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC) NULL;
/* Call Info Screen
*/
info_dialog( idle_win, &display_info );
}
#endif
void alarm_screen()
{
T_MFW_HND idle_win = idle_get_window();
T_MFW_HND win =alarm_screen_create(idle_win);
if( win NEQ NULL )
{
SEND_EVENT(win, ALARM_ODINARY, 0, 0);
}
#if 0
StartTone();
display_info.KeyEvents = KEY_CLEAR|KEY_LEFT|KEY_RIGHT;
display_info.TextId = TxtAlarm;
display_info.TextId2 = 0;
display_info.TextString ='\0';//FFS_ScheData.FfsSche[FFS_flashData.latest_alarm.schedule_position].text;
display_info.TextString2 = '\0';
display_info.LeftSoftKey = TxtNull;
display_info.RightSoftKey = TxtSoftOK;
display_info.Time = FOREVER;
display_info.Callback = (T_VOID_FUNC) NULL;
/* Call Info Screen
*/
info_dialog( idle_win, &display_info );
#endif
}
void schedule_alarm_screen()
{
T_MFW_HND idle_win = idle_get_window();
T_MFW_HND win =alarm_screen_create(idle_win);
if( win NEQ NULL )
{
SEND_EVENT(win, ALARM_SCHEDULE, 0, 0);
}
}
static T_MFW_HND alarm_screen_create(T_MFW_HND parent_window)
{
ALARM_DATA* data = (ALARM_DATA *)ALLOC_MEMORY (sizeof (ALARM_DATA));
T_MFW_WIN * win;
data->win = win_create (parent_window, 0, MfwWinVisible, (T_MFW_CB)alarm_win_cb);
TRACE_FUNCTION("alarm_screen_create");
if( data->win EQ 0 )
return 0;
/*
* Create window handler
*/
data->mmi_control.dialog = (T_DIALOG_FUNC)alarm_dialog;
data->mmi_control.data = data;
data->parent_win = parent_window;
win = ((T_MFW_HDR *)data->win)->data;
win->user = (void *) data;
alarm_win=data->win;
/*
* return window handle
*/
return data->win;
}
static void alarm_dialog(T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
ALARM_DATA* data = (ALARM_DATA *)win_data->user;
data->count=0;
data->id=event;
data->animal_id=FALSE;
data->Melody_index=FALSE;
data->AfterCall=0;
//2004.08.02 Added by Cathy for Camera
#ifdef CAMERA_ENABLED
CamExit();
#endif
switch( event )
{
case ALARM_ODINARY:
case ALARM_SCHEDULE:
case ALARM_STROKE:
TRACE_EVENT("alarm is on");
data->kbd = kbd_create(data->win,KEY_ALL|KEY_F4,(T_MFW_CB)alarm_kbd_cb);
data->info_time=timCreate(data->win,500,(T_MFW_CB)alarm_tim_cb);
// if(call_data.win_incoming||call_data.win_calling||call_win_flag)
// {
// StartConnectedTone();
// timStart(data->info_time);
// showAlarmIcon();
// winShow(win);
// break;
// }
//if(HallStatus()) // 2004.4.16 WYJ MI18800000262
//{
//LCD_ON();
LedLightnessAdjust( 200 ); // 2004.4.2 WYJ fix MI18800000155
timStart(gtVibator);
//}
setOuterState(OUTERIDLESTATE_ALERT,1,0);//2004-04-22 Sunny add
if( data->id!=ALARM_STROKE )
{
#ifndef FOR_FTA_CTA
timStart(data->info_time);
#endif
StartPlayByReason(ALARMPLAY,0);
//StartMelody2(MelodyTablestr[3],0);
data->Melody_index=TRUE;
showAlarmIcon();
}
else
{
//StartTonebypara(5); xsf changed 2003.01.06
StartPlayByReason(FULLHRALERT,0);
// StartTone();
break;
}
// else
// {
// timStart(data->info_time);
// StartTone();
// }
winShow(win);
break;
case ALARM_EXIT:
alarm_destroy(win);
break;
default:
break;
}
}
static T_MFW_CB alarm_tim_cb(MfwEvt e, MfwTim *tc)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -