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

📄 mmisimtoolkit.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                 /* SPR#1700 - DS - Commented out code below. Checks in call() in mmiCall.c ensure 
                  *  a NULL string is not sent to info_dialog
                  */
                data->call_setup_parameter->TextString = sat_create_TEXT_ASCIIZ(&sat_command->c.call.info2);

			#ifdef NO_ASCIIZ/*MC SPR 940/2 Add tag to Unicode strings so info dialogue displays them correctly*/
				sat_add_unicode_tag_if_needed(data->call_setup_parameter->TextString2);
			#endif
            }
            /* add end */
            
            break;

        case SAT_CALL_RESULT:
            if (data->call_setup_parameter EQ NULL)
            {
        /* we are NOT in a SETUP CALL session;this is a "normal" Call Result */
        TRACE_EVENT("SAT_CALL_RESULT a");
        /*
        * --> display alpha identifier if available
        */
		
		TRACE_EVENT_P1("Redial Time %d",sat_command->c.ccres.redialTime);

        if ((sat_command->c.ccres.info.len NEQ 0) &&
          (sat_command->c.ccres.info.len NEQ (U8)-1))
        {
        /*
        * Setup an editor to display a string
          */

					SmsSend_loadEditDefault(&data->editor_data);
          data->editor_data.LeftSoftKey          = TxtNull;
          data->editor_data.AlternateLeftSoftKey = TxtNull;
          data->editor_data.RightSoftKey         = TxtNull;
          data->editor_data.hide                 = FALSE;
          data->editor_data.mode                 = E_EDIT_READ_ONLY_MODE;
          data->editor_data.timeout              = FOREVER;
          data->editor_data.Identifier           = event;
          data->editor_data.Callback   = (T_EDIT_CB)sat_info_cb;
          data->editor_data.destroyEditor        =  TRUE;
					data->editor_data.TextId      		= TxtNull;
          data->editor_data.TextString       =
            (char *)sat_create_TEXT_ASCIIZ (&sat_command->c.ccres.info);
          data->editor_data.min_enter  = 0;
          data->info_win = editor_start(win, &data->editor_data);

        }
				/*NM 100702
				 SAT initiate a setup call, 
				 we want to make sure that instead of showing nothing 
				 on the screen do have a simple indication of MO-call
				*/
				else
				{
					SmsSend_loadEditDefault(&data->editor_data);
				
					data->editor_data.LeftSoftKey          = TxtNull;
					data->editor_data.AlternateLeftSoftKey = TxtNull; 
					data->editor_data.RightSoftKey         = TxtNull;
					data->editor_data.hide                 = FALSE;
					data->editor_data.mode                 = E_EDIT_READ_ONLY_MODE; 
					data->editor_data.timeout              = FOREVER; 
					data->editor_data.Identifier           = event;
					data->editor_data.Callback   = (T_EDIT_CB)sat_info_cb;
					data->editor_data.destroyEditor        =  TRUE;
					data->editor_data.TextString       = NULL;
					data->editor_data.TextId       = TxtOutgoing;					
					data->editor_data.min_enter  = 0; 							 						  
					data->info_win = editor_start(win, &data->editor_data);
				}
				/*NM 100702 END*/
      }
      else
      {
        /* we are in a SETUP CALL session;this is a SATN return */
        U8 general_result;
        U8 additional_info;

        TRACE_EVENT("SAT_CALL_RESULT b");

        /* process result of a call setup */
        general_result = (U8)(sat_command->c.ccres.redialTime);
        additional_info = (U8)(sat_command->c.ccres.callId);

        if (((general_result & (U8)0xF0) EQ (U8)0x00) ||
          ((general_result & (U8)0xF0) EQ (U8)0x10))
        {
          /* command has been performed */
          /*
          * destroying the display of SETUP MENU will focus the idle screen (in order to show the incall info)
          * furthermore it's necessary to keep track of the used resources
          */
          TRACE_EVENT("destroy SETUP menu");
          SEND_EVENT (sat_get_setup_menu_win(), SAT_EXIT, 0, NULL);
          return;
        }
        else if ((general_result & (U8)0xF0) EQ (U8)0x20)
        {
          /* command failed: may be worth to retry */
          switch (general_result)
          {
          case 0x20: /* ME currently unable to process command */
            TRACE_EVENT("SAT: ME unable");
            break;
          case 0x21: /* NW currently unable to process command */
            TRACE_EVENT("SAT: NW unable");
            if ((additional_info EQ (U8)CAUSE_USER_BUSY) &&
              (data->call_setup_parameter NEQ NULL))
            {
              SEND_EVENT (sat_get_call_setup_win(), SAT_CALL_REDIAL, 0, data->call_setup_parameter); /* redial */
              return; /* do NOT release the call setup parameter */
            }
            break;
          case 0x22: /* user rejected call setup */
            TRACE_EVENT("user rejected call setup");
          case 0x23: /* user cleared down call */
            TRACE_EVENT("user cleared down call");
          default:
            TRACE_EVENT("default reason");
            break;
          }
        }
        else if ((general_result & (U8)0xF0) EQ (U8)0x30)
        {
          /* command failed: not worth to retry with identical command */
          TRACE_EVENT("SAT_CALL_RESULT permanent problem");
          /* await SAT_SESSION_END in order to react */
        }
        else
        {
          TRACE_EVENT("SAT_CALL_RESULT unexp. result code");
        }
        SEND_EVENT (win, SAT_CALL_END, 0, NULL); /* release the call setup parameter */
      }
            break;

        case SAT_CALL_ALERT:
            TRACE_EVENT("SAT_CALL_ALERT");
            if (data->call_setup_parameter EQ NULL)
            {
                /* in case we are called withoud previous CALL_SETUP (which shouldn't happen!) */
                data->call_setup_parameter =
                    (T_SAT_call_setup_parameter *)ALLOC_MEMORY (sizeof(T_SAT_call_setup_parameter));

                /* provide an empty string; NULL would crash in info_dialog() */
                sat_command->c.ccres.info.len = 0;
//JVJE                data->call_setup_parameter->TextStringUCS2 = sat_create_TEXT_UCODE(&sat_command->c.ccres.info);
                data->call_setup_parameter->TextString = sat_create_TEXT_ASCIIZ(&sat_command->c.ccres.info);
            }

            /* gather callId and redialTime */
            data->call_setup_parameter->callId = sat_command->c.ccres.callId;
            //data->call_setup_parameter->redialTime = sat_command->c.ccres.redialTime;
            data->call_setup_parameter->redialTime = 0x0000;  //not redial,zhaowm,2002.02.06

            /* start a dialog to accept or reject the call */
      sat_win = sat_call_setup_create(data->win);
            if (sat_win)
      {
        data->sat_command = sat_command;
        SEND_EVENT (sat_win, event,0,data->call_setup_parameter);
      }
            else
      {
        sat_res[SAT_ERR_INDEX] = SAT_RES_IMPOSSIBLE;
        sat_res[SAT_AI_INDEX]  = SatResAiNoCause;
        sat_done (sat_command, sat_res, sizeof(T_SAT_RES));
      }
            break;

        case SAT_SESSION_END:
            ETRACE(sprintf(buf, "SAT_SESSION_END %d", data->active_sat_session));
      data->active_sat_session = event;

            if (data->info_win NEQ NULL)
      {
        /* destroy any infoscreen */
        SEND_EVENT (data->info_win, E_EDITOR_DEINIT, 0, NULL);
        data->info_win = NULL;
      }
#if 0	
      /* when a session has ended: recreate the SETUP MENU (if any) */
        if ( g_sim_toolkit_data->sat_setup_menu_win != NULL)  //zhaowm 2003.1.6
             SEND_EVENT (sat_get_setup_menu_win(), SAT_EXIT, 0, NULL); 
#endif		
      /* when a session has ended: recreate the SETUP MENU (if any) */
      /*  zy checkin 2003-04-16
       * Marcus: Issue 1057: 21/01/2003: Made SEND_EVENT conditional on
       * call_SATCall being FALSE. If TRUE then SAT_RETURN event will be sent
       * by MmiCall.c when the call is terminated.
       */
      if (call_SATCall == FALSE)
      {
      	/* Robert.Chen changed, 2004-02-25, from TI RITA release TCS2112 */
      	#if 0
			SEND_EVENT (sat_get_setup_menu_win(), SAT_RETURN, 0, NULL); /* recreate the SETUP MENU */
        #endif
        
          /* Marcus: Issue 1812: 13/03/2003: Start */
          if (sat_call_active)
          {
            sat_call_active = FALSE;
            SEND_EVENT (sat_get_setup_menu_win(), SAT_EXIT, 0, NULL);
          }
          else
          {
            SEND_EVENT (sat_get_setup_menu_win(), SAT_RETURN, 0, NULL); /* recreate the SETUP MENU */
          }
          /* Marcus: Issue 1812: 13/03/2003: End */
		/* change end */	
	  }    
      break;

        case SAT_CALL_END:
            TRACE_EVENT("SAT_CALL_END");
            if (data->call_setup_parameter NEQ NULL)
            {
                /* release the call setup parameters */
//               sat_destroy_TEXT_UCODE(data->call_setup_parameter->TextStringUCS2);
                sat_destroy_TEXT_ASCIIZ(data->call_setup_parameter->TextString);
                FREE_MEMORY ((U8 *)data->call_setup_parameter, sizeof (T_SAT_call_setup_parameter));
                data->call_setup_parameter = NULL;
                SEND_EVENT (sat_get_call_setup_win(), event, 0, NULL); /* destroy the window */
            }

            /* zy 2003-04-16 checkin SPR#1779 - DS - Destroy any information screen.
             */
              if (data->info_win NEQ NULL)
              {
                TRACE_EVENT("Destroy the info screen");
                
                /* destroy any infoscreen */
                SEND_EVENT (data->info_win, E_EDITOR_DEINIT, 0, NULL);
                data->info_win = NULL;
              }
            break;

        case SAT_UNKNOWN:
            TRACE_EVENT("SAT_UNKNOWN");
            /*
             * unknown SAT commands are rejected
             */
      sat_res[SAT_ERR_INDEX] = SAT_RES_IMPOSSIBLE;
      sat_res[SAT_AI_INDEX]  = SatResAiNoService;
            sat_done (sat_command, sat_res, sizeof(T_SAT_RES));
            break;

       case SAT_REFRESH:
            TRACE_EVENT("SAT_REFRESH");
		#ifdef MMI_HOMEZONE_ENABLED
			{
			int i;
			    for (i=0;i<sat_command->c.refFiles.files_nr;i++)
			    {
			      switch(sat_command->c.refFiles.files[i])
			      {
			         case HZ_SIM_PARAMETERS:
			         case HZ_SIM_CELL_CACHE:
			         case HZ_SIM_CELL_CACHE+1:
			         case HZ_SIM_CELL_CACHE+2:
			         case HZ_SIM_CELL_CACHE+3:
			         	/* Read new sim fields into memory.  SPR877 - SH - Parameter specifies that SIM fields
			         	 * should be read in, even if they were already read at startup. */
			         	homezoneReadSim(HZ_READ_SIM_AGAIN);
			         	return;
			         default:
			         break;
			      }
			    }
			}  
		#endif
            break;

	   case SAT_SET_EVENTS:
			break;
#ifdef MMI_WAP_ENABLED
       case SAT_LAUNCH_BROWSER:
        
		break;
#endif
        /* zy 2003-04-16 checkin SPR#1779 - DS - 'SIM busy' error condition.
          */

	/* Robert.Chen added, 2004-02-28, imported from TI RITA release TCS2112 */
		/* following for supporting SAT class E commands */
		case SAT_OPEN_CHANNEL:
            TRACE_EVENT("SAT_OPEN_CHANNEL");

             /*
             * Create and initiate Open Channel Window
             */
            sat_win = sat_class_e_create (data->win);
             
            if (sat_win)
            {
                data->sat_command = sat_command;
                SEND_EVENT (sat_win, event, 0, data->sat_command);
            }
            else
            {
                sat_res[SAT_ERR_INDEX] = SAT_RES_IMPOSSIBLE;
                sat_res[SAT_AI_INDEX]  = SatResAiNoCause;
                sat_done (sat_command, sat_res);
            }
            break;
            
        case SAT_CLOSE_CHANNEL:
            TRACE_EVENT("SAT_CLOSE_CHANNEL");

             /*
             * Create and initiate Close Channel window
             */
            sat_win = sat_class_e_create (data->win);
             
            if (sat_win)
            {
                data->sat_command = sat_command;
                SEND_EVENT (sat_win, event, 0, data->sat_command);
            }
            else
            {
                sat_res[SAT_ERR_INDEX] = SAT_RES_IMPOSSIBLE;
                sat_res[SAT_AI_INDEX]  = SatResAiNoCause;
                sat_done (sat_command, sat_res);
            }
            break;
            
        case SAT_SEND_DATA:
            TRACE_EVENT("SAT_SEND_DATA");

             /*
             * Create and initiate Send Data window
             */
            sat_win = sat_class_e_create (data->win);
             
            if (sat_win)
            {
                data->sat_command = sat_command;
                SEND_EVENT (sat_win, event, 0, data->sat_command);
            }
            else
            {
                sat_res[SAT_ERR_INDEX] = SAT_RES_IMPOSSIBLE;
                sat_res[SAT_AI_INDEX]  = SatResAiNoCause;
                sat_done (sat_command, sat_res);
            }
            break;
            
        case SAT_RECEIVE_DATA:

            TRACE_EVENT("SAT_RECEIVE_DATA");

             /*
             * Create and initiate Receive Data window
             */
            sat_win = sat_class_e_create (data->win);
             
            if (sat_win)
            {
                data->sat_command = sat_command;
                SEND_EVENT (sat_win, event, 0, data->sat_command);
            }
            else
            {
                sat_res[SAT_ERR_INDEX] = SAT_RES_IMPOSSIBLE;
                sat_res[SAT_AI_INDEX]  = SatResAiNoCause;
                sat_done (sat_command, sat_res);
            }
            break;
	/* add end for SAT class E commands */
	
        case SAT_SIM_BUSY:
            TRACE_EVENT("SAT_SIM_BUSY");

            {

			T_DISPLAY_DATA display_info;

            /* Display a 3-second information dialog */
/*            dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtSoftBack, TxtSimToolkit, TxtError);
	      dlg_initDisplayData_events( &display_info,NULL, THREE_SECS, KEY_LEFT|KEY_RIGHT );*/
	      /*2003/12/4, wangyan modify*/
		dialog_info_init(&display_info);
	display_info.LeftSoftKey	= TxtSoftOK;
	display_info.RightSoftKey	= TxtSoftBack;
	display_info.TextId 		= TxtSimToolkit;
	display_info.TextId2 		= TxtError;

⌨️ 快捷键说明

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