📄 mfw_td.c
字号:
return MfwResErr;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: mfw_td_get_alarm |
+--------------------------------------------------------------------+
PURPOSE : gets the current alarm settings
*/
MfwRes mfw_td_get_alarm(T_MFW_TIME* time, T_MFW_DATE* date)
{ int result = rtc_get_alarm(date, time);
char debug[50];
TRACE_EVENT("mfw_td_get_alarm");
sprintf(debug, "alarm Time:%d:%d, date %d/%d%d", time->hour, time->minute, date->day, date->month, date->year);
TRACE_EVENT(debug);
if (!result)
return MfwResOk;
TRACE_EVENT_P1("RTC driver Error:%d", result);
return MfwResErr;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: mfw_td_set_time_format |
+--------------------------------------------------------------------+
PURPOSE : sets the time format of the clock
*/
MfwRes mfw_td_set_time_format(T_MFW_TIME_FORMAT format)
{ int result= rtc_set_time_format(format);
TRACE_EVENT("mfw_td_time_format");
if (result == 0)
return MfwResOk;
TRACE_EVENT_P1("RTC driver Error:%d", result);
return MfwResErr;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: mfw_td_set_time_format |
+--------------------------------------------------------------------+
PURPOSE : sets the time format of the clock
*/
void mfw_td_exit()
{
TRACE_FUNCTION("mfw_td_exit()");
/*
* remove prim handler
*/
aci_delete(pSlot);
}
/***************************Private methods****************************************
**/
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: dates_match |
+--------------------------------------------------------------------+
PURPOSE : returns TRUE if the two dates passed match
*/
BOOL dates_match(T_MFW_DATE* date1, T_MFW_DATE* date2)
{
if (date1->year == date2->year)
if (date1->month == date2->month)
if (date1->day == date2->day)
return TRUE;
return FALSE;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: convert_to_24_hour |
+--------------------------------------------------------------------+
PURPOSE : converts a time to 24-hour format
*/
UBYTE convert_to_24_hour(T_MFW_TIME* time)
{ return time->hour;
if (time->format == MFW_TIME_FORMAT_24HOUR)
return time->hour;
else
{ if (time->PM_flag == TRUE)
return time->hour + 12;
else
return time->hour;
}
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: times_match |
+--------------------------------------------------------------------+
PURPOSE : returns TRUE if time data strcutures passed match
*/
BOOL times_match(T_MFW_TIME* time1, T_MFW_TIME* time2)
{
if (time1->minute == time2->minute)
if ( convert_to_24_hour(time1) == convert_to_24_hour(time2))
return TRUE;
return FALSE;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: mfw_td_signal |
+--------------------------------------------------------------------+
PURPOSE : called to pass event to MMI layer
*/
void mfw_td_signal (MfwEvt event, void *para)
{
UBYTE temp = dspl_Enable(0);
TRACE_EVENT ("mfw_td_signal()");
if (mfwSignallingMethod EQ 0)
{
if (mfwFocus)
if (mfw_td_sign_exec(mfwFocus,event,para))
{
dspl_Enable(temp);
return;
}
if (mfwRoot)
mfw_td_sign_exec(mfwRoot,event,para);
}
else
{
MfwHdr * h = 0;
/*
* Focus set, then start here
*/
if (mfwFocus)
h = mfwFocus;
/*
* Focus not set, then start root
*/
if (!h)
h = mfwRoot;
/*
* No elements available, return
*/
while (h)
{
/*
* Signal consumed, then return
*/
if (mfw_td_sign_exec (h, event, para))
{
dspl_Enable(temp);
return;
}
/*
* All windows tried inclusive root
*/
if (h == mfwRoot)
{
dspl_Enable(temp);
return;
}
/*
* get parent window
*/
h = mfwParent(mfwParent(h));
if(h)
h = ((MfwWin * )(h->data))->elems;
}
mfw_td_sign_exec (mfwRoot, event, para);
}
dspl_Enable(temp);
return;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: mfw_td_sign_exec |
+--------------------------------------------------------------------+
PURPOSE : Used by mfw_td_signal() to pass event to MMI layer
*/
int mfw_td_sign_exec (MfwHdr *cur_elem, MfwEvt event, T_MFW_TD_PARA *para)
{ TRACE_FUNCTION("mfw_td_sign_exec()");
while (cur_elem)
{
if (cur_elem->type == MfwTypTd)
{
T_MFW_TD *td_data;
td_data = (T_MFW_TD *) cur_elem->data;
if (td_data->emask & event)
{
td_data->event = event;
*para = NULL; /*we're not passing any data to MMI*/
if (td_data->handler)
{
// PATCH LE 06.06.00
// store current mfw elem
current_mfw_elem = cur_elem;
// END PATCH LE 06.06.00
if ((*(td_data->handler))(td_data->event,
(void *) &td_data->para))
return TRUE;
}
}
}
cur_elem = cur_elem->next;
}
return FALSE;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_TD |
| STATE : code ROUTINE : td_delete |
+--------------------------------------------------------------------+
PURPOSE : delete TD event handler
*/
MfwRes mfw_td_delete (MfwHnd h)
{
TRACE_FUNCTION("mfw_td_delete()");
if (!h || !((MfwHdr *) h)->data)
return MfwResIllHnd;
if (!mfwRemove((MfwHdr *) h))
return MfwResIllHnd;
mfwFree((U8 *) ((MfwHdr *) h)->data,sizeof(T_MFW_TD));
mfwFree((U8 *) h,sizeof(MfwHdr));
return MfwResOk;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8417) MODULE : MFW_TD |
| STATE : code ROUTINE : tdCommand |
+--------------------------------------------------------------------+
PURPOSE : handle mfw windows command
*/
static int tdCommand (U32 cmd, void *h)
{
switch (cmd)
{
case MfwCmdDelete: /* delete me */
if (!h)
return 0;
mfw_td_delete(h);
return 1;
default:
break;
}
return 0;
}
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) MODULE: MFW_TD |
| STATE : code ROUTINE: mfw_td_response_cb |
+--------------------------------------------------------------------+
PURPOSE : Response Callback Handler.
*/
GLOBAL BOOL mfw_td_response_cb (ULONG opc, void * data)
{
TRACE_FUNCTION ("mfw_td_response_cb");
return FALSE; /* not processed by extension */
}
void mfw_td_alarm_callback(void* para)
{
TRACE_EVENT("mfw_td_alarm_callback");
mfw_td_signal(MFW_TD_ALARM, NULL);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -