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

📄 mmiservices.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	case ServicesDeactCLIR:
    case ServicesCheckCLIR:
        winShow(win);
        timStart(times);  /* start timer to go back in the submenu */
		break;

    case ServicesCheckCW_OK:
        TRACE_FUNCTION(" ServicesCheckCW_OK");
        winShow(win);
        timStart(times);  /* start timer to go back in the submenu */
		break;

	case ServicesCheckCLI_OK:
		TRACE_FUNCTION("ServicesCheckCLI_OK");
        winShow(win);
        timStart(times);
		break;

    case ServicesIMEI_OK:
		TRACE_FUNCTION("ServicesIMEI_OK");
        winShow(win);
        timStart(times);
        break;
    case ServicesResShow:
		TRACE_FUNCTION("ServicesResShow");
        winShow(win);
        timStart(times);
        break;

    case ServicesCB_OK:
		TRACE_FUNCTION("ServicesCB_OK");
        lastFocus = winFocus(win);
        winShow(win);
        timStart(times);
        break;

    case ServicesCFU_OK:
		TRACE_FUNCTION("ServicesCFUShow");
        lastFocus = winFocus(win);
        winShow(win);
        timStart(times);
        break;

    case ServicesDoCallDivert:
        servicesSendCallDivert(0);
        break;

    case PIN2_ABORT:
          TRACE_FUNCTION("ServicesPin2_Abort");
        break;
    default:
		break;
    }
}




/*******************************************************************************

 $Function:    	showWait

 $Description:	
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/

static void showWait (T_MFW_HND win)
{

    T_DISPLAY_DATA   display_info;

		TRACE_FUNCTION("showWait");

	dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, TxtRequesting,  TxtNull, COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
    display_info.Identifier   = SS_WAIT;

      /*
       * Call Info Screen
       */

    ss_data.info_wait = info_dialog (win, &display_info);
}


/*******************************************************************************

 $Function:    	showOk

 $Description:	
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/

static void showOk (T_MFW_HND win)
{

    T_DISPLAY_DATA   display_info;

	dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtDone,  TxtNull, COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
    display_info.Identifier   = ServicesOk;

      /*
       * Call Info Screen
       */

    ss_data.info_win = info_dialog (ss_data.win, &display_info);

}

/*******************************************************************************

 $Function:    	showFailed

 $Description:	
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/

static void showFailed (T_MFW_HND win)
{

    T_DISPLAY_DATA   display_info;

	dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtFailed,  TxtNull, COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
    display_info.Identifier   = ServicesFailed;

      /*
       * Call Info Screen
       */
    ss_data.info_win = info_dialog (ss_data.win, &display_info);
}

/*******************************************************************************

 $Function:    	showError

 $Description:	
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/

static void showError (T_MFW_HND win, T_MFW_SS_ERROR ss_error)
{

    T_DISPLAY_DATA   display_info;

    TRACE_FUNCTION("showError");

	dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtFailed,  serviceGetError(ss_error), COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
    display_info.Identifier   = ServicesError;

      /*
       * Call Info Screen
       */

    ss_data.info_win = info_dialog (ss_data.win, &display_info);

}


/*******************************************************************************

 $Function:    	showSSNotify

 $Description:	Show result from E_SS_NOTIFY being returned. Short ss-related
            notification window.
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/

static void showSSNotify (T_MFW_HND win, T_MFW_SS_NOTIFY  * ss_notify)
{

    T_DISPLAY_DATA   display_info;
	USHORT TxtId1,TxtId2;

    TRACE_FUNCTION("++ showSSNotify");

    TxtId1	= TxtNull;
    TxtId2	= TxtNull;

    switch (ss_notify->code)
    {
    case MFW_SS_MO_unconFORWARD:	/* CFU activated */
		 iconsSetState(iconIdCallFor);
		 
								/* Activate the CFU icon */
		/* break; */ /***** NO BREAK ******/
	case MFW_SS_MO_conFORWARD:		/* Conditional CF active */
        TxtId1      = TxtForward;
        TxtId2      = TxtActivated;
		break;
    case MFW_SS_MT_FORWARDED:			/* incoming call fowarded           */
        TxtId1      = TxtIncomingCall;
        TxtId2      = TxtForwarded;
		break;

    case MFW_SS_MO_FORWARDED:       /* our call is being forwarded */
        TxtId1      = TxtSoftCall;
        TxtId2      = TxtForwarded;

        break;

    case MFW_SS_MO_WAITING:     /* outgoing call is waiting signal received */
        TxtId1      = TxtSoftCall;
        TxtId2      = TxtWaiting;
        break;

    case MFW_SS_MO_moBARRED:  /* outgoing calls barred */
        TxtId1      = TxtOutgoingCalls;
        TxtId2      = TxtBarred;
        break;

    case MFW_SS_MO_mtBARRED:  /* incoming calls barred */
        TxtId1      = TxtIncomingCall;
        TxtId2      = TxtBarred;
        break;

    case MFW_SS_MO_DEFLECTED:  /* incoming call diverted  */
        TxtId1      = TxtIncomingCall;
        TxtId2      = TxtCallDivert;
        break;

    default:
        break;
    }

    if (TxtId1 != TxtNull )
    {

		dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtId1,  TxtId2, COLOUR_STATUS);
		dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, THREE_SECS, KEY_CLEAR| KEY_LEFT );
        display_info.Identifier   = E_SS_NOTIFY;
        
          /*
           * Call Info Screen
           */

        ss_data.info_win = info_dialog (ss_data.win, &display_info);
    }
}

/*******************************************************************************

 $Function:    	srv_display_status

 $Description:	Indicate a sensefull response to the user if only the .
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/


static void srv_display_status (UBYTE ss_status)
{
  T_DISPLAY_DATA   display_info;
	USHORT TxtId2;
  TRACE_FUNCTION("srv_display_status()");


    //GW Swapped text strings over
    if (ss_status & SS_STAT_ACTIVE)
		TxtId2      = TxtActivated;
    /* Marcus: Issue 1652: 03/02/2003: Start */
    else if (ss_status & SS_STAT_PROVISIONED)
		TxtId2      = TxtProvisioned;
    /* Marcus: Issue 1652: 03/02/2003: End */
    else
        TxtId2      = TxtDeActivated;

	dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtNull,  TxtId2, COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT );
    display_info.Identifier   = E_SS_CB_CNF;  // can be used also for CF and CW

    /*
     * Call Info Screen
     */

    ss_data.info_win = info_dialog (ss_data.win, &display_info);
  }

/*******************************************************************************

 $Function:    	ysrv_empty_list_result

 $Description:	Indicate a sensefull response to the user if an
            activation / deactivation or interrogation leads to an
            empty list.
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/


static void srv_empty_list_result (UBYTE ss_category, USHORT event, UBYTE ss_status) /* Marcus: Issue 1652: 03/02/2002 */
{
  T_DISPLAY_DATA   display_info;
	USHORT TxtId1 = TxtNull;	
  TRACE_FUNCTION("srv_empty_list_result");

  /* Marcus: Issue 1652: 03/02/2002: Start */
  TRACE_EVENT_P3("ss_category %d, event %d, ss_status %d", ss_category, event, ss_status);
  switch (ss_category)
  {
    case SS_ACTIVATION:
    case SS_REGISTRATION:
      TRACE_FUNCTION ("ACTIVATED !");
      TxtId1      = TxtActivated;
      break;
    /* Marcus: Issue 1588: 23/01/2003: Start */
    case SS_INTERROGATION:
      if ((event == E_SS_CW_CNF) || (event == E_SS_CF_CNF))
      {
          if (ss_status & SS_STAT_ACTIVE)
          {
            TRACE_EVENT ("INTERROGATION:ACTIVATED !");
            TxtId1      = TxtActivated;
          }
          /* Marcus: Issue 1651: 30/01/2003: Start */
          else if (ss_status & SS_STAT_PROVISIONED)
          {
            TRACE_EVENT ("INTERROGATION:PROVISIONED !");
            TxtId1      = TxtProvisioned;
          }
          /* Marcus: Issue 1651: 30/01/2003: End */
          else
          {
            TRACE_EVENT ("INTERROGATION:DEACTIVATED !");
            TxtId1      = TxtDeActivated;
          }
      }
      else
      {
          TRACE_EVENT ("DEACTIVATED !");
          TxtId1      = TxtDeActivated;
      }
      break;

    case SS_ERASURE:
    case SS_DEACTIVATION:
      TRACE_FUNCTION ("DEACTIVATED !");
      TxtId1      = TxtDeActivated;
      break;
    default:
      TxtId1      = TxtNull;
      break;
  }
  /* Marcus: Issue 1652: 03/02/2002: End */

  if (TxtId1 != TxtNull )
  {
	dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtNull,  TxtId1, COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT );
    display_info.Identifier   = E_SS_CB_CNF;  // can be used also for CF and CW

    /*
     * Call Info Screen
     */

    ss_data.info_win = info_dialog (ss_data.win, &display_info);
  }
}


/*******************************************************************************

 $Function:    showCWState

 $Description:	display CW state
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/


static void showCWStatus (T_MFW_HND win , T_ss * data)

{
	T_DISPLAY_DATA   display_info;
  	T_ss_feature_cw_data * pFeature;

  	TRACE_FUNCTION("showCWStatus");

	//MC got rid of dodgy pointer arithmetic
  pFeature = &data->mfw_ss_cw->ss[data->current_feature];

  if (data->max_feature == 1)
  {
	  dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, pFeature->service,  data->mfw_ss_cw->status, COLOUR_STATUS);
	  dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT);
  }
  else
  {
	  dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtSoftNext, pFeature->service,  data->mfw_ss_cw->status, COLOUR_STATUS);
	  dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT | KEY_RIGHT );
  }

  display_info.Identifier   = E_SS_CW_CNF; 

  /*
   * Call Info Screen
   */

  ss_data.info_win = info_dialog (ss_data.win, &display_info);

  if (ss_data.info_win EQ NULL)
  {
    TRACE_FUNCTION("NOT ENOUGH RESOURCES TO CREATE EXT INFO DIALOG");
  }
}

/*******************************************************************************

 $Function:    	showCLIStatus 

 $Description:	
            
 $Returns:		

 $Arguments:	
 
*******************************************************************************/


static void  showCLIStatus(T_MFW_HND win, T_MFW_SS_PARA  * ss_cnf)
{

	T_DISPLAY_DATA   display_info;

	TRACE_FUNCTION("showCLIStatus()");

	dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, serviceGetType(ss_cnf->cli_cnf.ss_code), TxtNull , COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR | KEY_LEFT );
	display_info.Identifier   = ServicesCheckCLI_OK;

	if (ss_cnf->cli_cnf.ss_status == SS_STAT_UNKNOWN)
	{
		// Unknown status. By defaut say that the id is sent
		display_info.TextId2 = TxtActivated;
	}
	else if (ss_cnf->cli_cnf.ss_status & SS_STAT_ACTIVE)
		{
			switch (ss_cnf->cli_cnf.ss_clir_option)
			{
				// By defaut the caller id is not sent
				case MFW_CL_TEMP_DEF_REST:
					switch (CFAction)
					{
						// ActivateCLIR, so deactivate the sending of caller id
						case CFActivate:
							// By defaut the caller id is not sent
							display_info.TextId2 = TxtActivated;
							// No CLIR suppress or invoke
							cm_mo_prefix(0x04);
							break;						
						// Deactivate CLIR, so activate the sending of caller id
						case CFDeactivate:
							// By defaut the caller id is not sent
							display_info.TextId2 = TxtDeActi

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -