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

📄 mmisettings.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	FFS_flashData.settings_status |= SettingsAutoAnswerOn;
	flash_write();
    confirm_data.local_status = ACTIVATE_CONFIRM;

	SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0);

	return 0;
}
/*******************************************************************************

 $Function:    	settingsAutoAnswerOff

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
int settingsAutoAnswerOff(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win = mfw_parent(mfw_header());

	confirm_Init(win);

	FFS_flashData.settings_status &= ~SettingsAutoAnswerOn;
	flash_write();
    confirm_data.local_status = DEACTIVATE_CONFIRM;

	SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0);



	return 0;
}


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

 $Function:    	settingsAnyKeyAnswerOn

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
int settingsAnyKeyAnswerOn(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND win = mfw_parent(mfw_header());

	confirm_Init(win);

	FFS_flashData.settings_status |= SettingsAnyKeyAnswerOn;
	flash_write();
    confirm_data.local_status = ACTIVATE_CONFIRM;

	SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0);
	return 0;
}
/*******************************************************************************

 $Function:    	settingsAnyKeyAnswerOff

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
int settingsAnyKeyAnswerOff(MfwMnu* m, MfwMnuItem* i)
{

    T_MFW_HND win = mfw_parent(mfw_header());

	confirm_Init(win);
	
	FFS_flashData.settings_status &= ~SettingsAnyKeyAnswerOn;
	flash_write();
    confirm_data.local_status = DEACTIVATE_CONFIRM;

	SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0);

	return 0;
}

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

 $Function:    	factoryReset

 $Description:	Reset all the user-settings, 
 				At first it show up a confirmation screen 
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
int factoryReset(MfwMnu* m, MfwMnuItem* i)
{

    T_MFW_HND win = mfw_parent(mfw_header());
	
	confirm_Init(win);

	confirm_data.local_status = FACTORY_RESET;

	SEND_EVENT (confirm_data.confirm_win, FACTORY_RESET, 0, 0);
	return 0;
}



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

 $Function:    	setUserSettings2Default

 $Description:	The user confirm to delete the user-settings. 

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void setUserSettings2Default (void)
{
	char buf[30];



	if (DEFAULT_SETTINGS[ENGLISH].status EQ ON)
	{
		// set the language :ENGLISH
		MmiRsrcSetLang(ENGLISH_LANGUAGE);/*MC, SPR 1242 - changed to new function*/
	}


	if (DEFAULT_SETTINGS[GERMAN].status EQ ON)
	{
		// set the language :GERMAN
		MmiRsrcSetLang(GERMAN_LANGUAGE);	/*MC, SPR 1242 - changed to new function*/
	}


	if (DEFAULT_SETTINGS[AUTOREDIAL].status EQ ON)
	{
		// set the Auto-redial
		cm_set_redial(CM_REDIAL_AUTO);	
	}
	else
	{
		cm_set_redial(CM_REDIAL_OFF);
	}


	if (DEFAULT_SETTINGS[AUTOANSWER].status EQ ON)
	{
		// set the Autoanswer
		FFS_flashData.settings_status |= SettingsAutoAnswerOn;
	}
	else
	{
		//switch off the Autoanswer
		FFS_flashData.settings_status &= ~SettingsAutoAnswerOn;
	}


	if (DEFAULT_SETTINGS[ANYKEYANSWER].status EQ ON)
	{
		// set the Anykeyanswer
		FFS_flashData.settings_status |= SettingsAnyKeyAnswerOn;
	}
	else 
	{
		//switch off the Anykeyanswer
		FFS_flashData.settings_status &= ~SettingsAnyKeyAnswerOn;
	}

	if (DEFAULT_SETTINGS[CALLTIMERS].status EQ CLEAR)
	{
		//reset here the call timers
		//incoming, outgoing & last calls
	}


	if (DEFAULT_SETTINGS[KEYPAD_CLICK].status EQ ON)
	{
		// set the Keypad click

		if (FFS_flashData.settings_status & SettingsKeypadDTMF)
		{
			FFS_flashData.settings_status &= ~SettingsKeypadDTMF;
		}

		FFS_flashData.settings_status |= SettingsKeypadClick;
	}


	if (DEFAULT_SETTINGS[KEYPAD_DTMF].status EQ ON)
	{
		// set the Keypad DTMF

		if (FFS_flashData.settings_status & SettingsKeypadClick)
		{
			FFS_flashData.settings_status &= ~SettingsKeypadClick;
		}

		FFS_flashData.settings_status |= SettingsKeypadDTMF;
	}


	if (DEFAULT_SETTINGS[KEYPAD_SILENT].status EQ ON)
	{
		// set the Keypad silence

		if (FFS_flashData.settings_status & SettingsKeypadClick)
		{
			FFS_flashData.settings_status &= ~SettingsKeypadClick;
		}
		else if (FFS_flashData.settings_status & SettingsKeypadDTMF)
		{
			FFS_flashData.settings_status &= ~SettingsKeypadDTMF;
		}
	
	}

	//GW-SPR#1018- Trace is too big for the buffer and is causing a crash.
	//  sprintf (buf, " FFS_flashData.settings_status %d", FFS_flashData.settings_status);
    //  TRACE_EVENT (buf);


	if (DEFAULT_SETTINGS[VOICE_MEMO].status EQ CLEAR)
	{
		// clear the voice memo
		FFS_flashData.voice_memo_position = 0;
	
	}
	//reset the call timers
	setLastCallDuration(0, INVALID);
	resetIncomingCallsDuration();
	resetOutgoingCallsDuration();
	//set clock format to twenty-four hour
	setClockFormat(MFW_TIME_FORMAT_24HOUR);/*SPR 1725, changed macro*/

	// API/GW - On factory reset save the original colours to the flash.
	resetFactoryColour();
	//API - 1550 - Added code to reset the backgrounds to defaults
	resetFactoryBackground();
	// PCM
	// here should also update the user-data-settings !!
	// in PCM
	flash_write();


}

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

 $Function:    	confirm_Init

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
T_MFW_HND confirm_Init (T_MFW_HND parent_window)
{
  return (confirm_create (parent_window));
}
/*******************************************************************************

 $Function:    	confirm_Exit

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void confirm_Exit (T_MFW_HND own_window)
{

    T_MFW_WIN   * win_data = ((T_MFW_HDR *)own_window)->data;
    T_confirm * data     = (T_confirm *)win_data->user;

  confirm_destroy (data->confirm_win);
}

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

 $Function:    	confirm_create

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
T_MFW_HND confirm_create (T_MFW_HND parent_window)
{
  T_confirm * data = &confirm_data;
  T_MFW_WIN   * win;

  TRACE_FUNCTION ("confirm_create()");

  data->confirm_win = win_create (parent_window, 0, 0, (T_MFW_CB)confirm_win_cb);

  if (data->confirm_win EQ 0)
    return 0;

  /*
   * Create window handler
   */
  data->mmi_control.dialog = (T_DIALOG_FUNC)confirm;
  data->mmi_control.data   = data;
  win                      = ((T_MFW_HDR *)data->confirm_win)->data;
  win->user                = (void *) data;

 
  winShow(data->confirm_win);
  /*
   * return window handle
   */
  return data->confirm_win;
}

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

 $Function:    	confirm_destroy

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void confirm_destroy (T_MFW_HND own_window)
{
  T_MFW_WIN   * win;
  T_confirm * data;

  TRACE_FUNCTION ("confirm_destroy()");

  if (own_window)
  {
    win  = ((T_MFW_HDR *)own_window)->data;
    data = (T_confirm *)win->user;

    if (data)
    {

      /*
       * Delete WIN handler
       */
      win_delete (data->confirm_win);
      data->confirm_win = 0;
    }
  }
}
/*******************************************************************************

 $Function:    	confirm_win_cb

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static int confirm_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
  /*
   * Top Window has no output
   */
  return 1;
}


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

 $Function:    	confirm_dialog

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void confirm_dialog(void)
{
  T_DISPLAY_DATA display_info;

  TRACE_FUNCTION ("confirm_dialog()");


	dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull,TxtNull, TxtNull , COLOUR_STATUS);
	dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)confirm_dialog_cb, THREE_SECS, KEY_CLEAR | KEY_RIGHT | KEY_LEFT );

  if (confirm_data.local_status EQ ACTIVATE_CONFIRM)
  {
	  display_info.TextId   = TxtActivated;
  }
  else if (confirm_data.local_status EQ DEACTIVATE_CONFIRM)
  {
     display_info.TextId    = TxtDeActivated;
  }
  else if (confirm_data.local_status EQ FACTORY_RESET)
  {
     display_info.TextId      = TxtPressOk;
	 display_info.TextId2     = TxtReset;
	 display_info.Time       = TEN_SECS;
     display_info.LeftSoftKey  = TxtSoftOK;
     display_info.RightSoftKey = TxtSoftBack;

  }

  /*
   * Call Info Screen
   */
  info_dialog (confirm_data.confirm_win, &display_info);

}
/*******************************************************************************

 $Function:    	confirm_dialog_cb

 $Description:	
 
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void confirm_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason)
{
	TRACE_FUNCTION ("confirm_dialog_cb()");

      switch (reason) 
      {
        case INFO_KCD_LEFT:
			// user confirm to reset all the user settings !
			setUserSettings2Default ();
            confirm_Exit(win);
          break;          

        case INFO_TIMEOUT:
          /* no break; */
        case INFO_KCD_HUP:
          /* no break; */
        case INFO_KCD_RIGHT:
          /* no break; */
        case INFO_KCD_CLEAR:
            confirm_Exit(win);
          break;
      }
}

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

 $Function:    	confirm

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void confirm (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
  T_MFW_WIN    * win_data = ((T_MFW_HDR *) win)->data;
  T_confirm      * data     = (T_confirm *)win_data->user;

 TRACE_FUNCTION("confirm()");

 switch (event)
  {
    case SHOW_CONFIRM:
		confirm_dialog();
    break;
    case FACTORY_RESET:
		confirm_dialog();
    break;

  }

}

⌨️ 快捷键说明

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