⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfw_td.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	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 + -