📄 mmisettings.c
字号:
/*******************************************************************************
CONDAT (UK)
********************************************************************************
This software product is the property of Condat (UK) Ltd and may not be
disclosed to any third party without the express permission of the owner.
********************************************************************************
$Project name: Basic MMI
$Project code: BMI (6349)
$Module: Settings
$File: MmiSettings.c
$Revision: 1.0
$Author: Condat(UK)
$Date: 25/10/00
********************************************************************************
Description:
********************************************************************************
$History: MmiSounds.c
$End
*******************************************************************************/
/*******************************************************************************
Include Files
*******************************************************************************/
#define ENTITY_MFW
/* includes */
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "mfw_sys.h"
#include "p_sim.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
/* SPR#1428 - SH - New Editor changes */
#ifndef NEW_EDITOR
#include "mfw_edt.h"
#endif
#include "mfw_lng.h"
#include "mfw_tim.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_phb.h"
#include "mfw_cm.h"
#include "mfw_sim.h"
#include "mfw_nm.h"
#include "mfw_sat.h"
#include "mfw_phb.h"
#include "ksd.h"
#include "psa.h"
#include "mfw_sms.h"
#include "mfw_cphs.h"
#include "mfw_sat.h"
#include "mfw_td.h"
#include "dspl.h"
#include "MmiMmi.h"
#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiIdle.h"
#include "MmiSoftkeys.h"
#include "MmiIcons.h"
#include "MmiSounds.h"
#include "MmiMenu.h"
#include "MmiMain.h"
#include "MmiStart.h"
#include "MmiPins.h"
#include "MmiSettings.h"
#include "MmiVoiceMemo.h"
#include "mfw_ffs.h"
#include "MmiTimers.h"
#include "MmiResources.h"
#include "cus_aci.h"
#include "p_sim.h"
#include "mmicolours.h"
#define CLEAR_BOTTOM_ZONE dspl_Clear( KEY_AREA );
T_MFW_SMS_INFO SmsConfigData;
static int winEvent (MfwEvt e, MfwWin *w);
void confirm (T_MFW_HND win, USHORT event, SHORT value, void * parameter);
void confirm_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason);
static void confirm_dialog(void);
static int confirm_win_cb (T_MFW_EVENT event, T_MFW_WIN * win);
void confirm_destroy (T_MFW_HND own_window);
T_MFW_HND confirm_create (T_MFW_HND parent_window);
void confirm_Exit (T_MFW_HND own_window);
T_MFW_HND confirm_Init (T_MFW_HND parent_window);
void setUserSettings2Default (void);
static void (*show) (void);
static MfwHnd win; /* our window */
static MmiState nextState; /* next state when finished */
static DisplayData DisplayInfo;
#define SHOW_CONFIRM 3
#define ACTIVATE_CONFIRM 4
#define DEACTIVATE_CONFIRM 5
#define FACTORY_RESET 6
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND confirm_win; /* MFW win handler */
UBYTE local_status;
} T_confirm;
T_confirm confirm_data;
/*
* Settings menu subs:
*/
#define ON 0
#define OFF 1
#define CLEAR 2
typedef struct
{
UBYTE setting;
UBYTE status;
} T_settings;
typedef enum
{
ENGLISH = 0,
GERMAN,
AUTOREDIAL,
AUTOANSWER,
ANYKEYANSWER,
CALLTIMERS,
KEYPAD_CLICK,
KEYPAD_DTMF,
KEYPAD_SILENT,
VOICE_MEMO,
MAX
}T_FACTORY_RESET_LIST;
T_settings DEFAULT_SETTINGS[] =
{
{ENGLISH, ON}, //select the Language:English as a default
{GERMAN, OFF},
{AUTOREDIAL, OFF},
{AUTOANSWER, OFF},
{ANYKEYANSWER, OFF},
{CALLTIMERS, CLEAR},
{KEYPAD_CLICK, ON}, //only one of the Keypads are eligible
{KEYPAD_DTMF, OFF},
{KEYPAD_SILENT, OFF},
{VOICE_MEMO, CLEAR},
{MAX, 0xFF}
};
/*******************************************************************************
$Function: SmsValidityPeriod
$Description: Store the validity period information, selected by the user.
$Returns: Execution status
$Arguments: m - menu handler
i - Menu item selected
*******************************************************************************/
int SmsValidityPeriod(MfwMnu* m, MfwMnuItem* i)
{
int index;
T_DISPLAY_DATA DisplayInfo;
T_MFW_HND win = mfwParent(mfw_header());
TRACE_FUNCTION(">>>> SmsValidityPeriod()");
index= m->lCursor[m->level];
// Use Index to store the selected validity period in NVM.
dlg_initDisplayData_TextId( &DisplayInfo, TxtNull, TxtCancel,TxtSmsValidityPeriodSet, TxtNull , COLOUR_STATUS);
dlg_initDisplayData_events( &DisplayInfo, (T_VOID_FUNC)NULL, THREE_SECS, KEY_RIGHT|KEY_CLEAR );
// Display confirmation screen.
info_dialog(win,&DisplayInfo);
return 1;
}
/*******************************************************************************
$Function: settingsVoiceMail
$Description: menu entry function
$Returns:
$Arguments:
*******************************************************************************/
int settingsVoiceMail(MfwMnu* m, MfwMnuItem* i)
{
cphs_get_mailbox ();
return 0;
}
/*******************************************************************************
$Function: settingsVoiceMail
$Description: menu entry function
$Returns:
$Arguments:
*******************************************************************************/
int settingsScNumber(MfwMnu* m, MfwMnuItem* i)
{
return 0;
}
/*******************************************************************************
$Function: settingsInit
$Description: init settings handling
$Returns:
$Arguments:
*******************************************************************************/
void settingsInit (void)
{
TRACE_EVENT ("settingsInit()");
nextState = 0;
win = winCreate(0,0,MfwWinVisible,(MfwCb)winEvent);
winShow(win);
}
/*******************************************************************************
$Function: settingsExit
$Description: exit settings handling
$Returns:
$Arguments:
*******************************************************************************/
void settingsExit (void)
{
TRACE_FUNCTION ("settingsExit()");
nextState = 0;
winDelete(win); win = 0;
}
/*******************************************************************************
$Function: winEvent
$Description: window event handler
$Returns:
$Arguments:
*******************************************************************************/
static int winEvent (MfwEvt e, MfwWin *w)
{
TRACE_EVENT ("MmiSettings :: winEvent()");
switch (e)
{
case MfwWinVisible:
if (w->flags & MfwWinVisible)
show();
break;
default:
return 0;
}
return 1;
}
/*******************************************************************************
$Function: settingsAutoRedialOn
$Description: auto redial switch on
$Returns:
$Arguments:
*******************************************************************************/
int settingsAutoRedialOn(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
confirm_Init(win);
cm_set_redial(CM_REDIAL_AUTO);
confirm_data.local_status = ACTIVATE_CONFIRM;
SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0);
return 0;
}
/*******************************************************************************
$Function: settingsAutoRedialOff
$Description: auto redial switch off
$Returns:
$Arguments:
*******************************************************************************/
int settingsAutoRedialOff(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
confirm_Init(win);
cm_set_redial(CM_REDIAL_OFF);
confirm_data.local_status = DEACTIVATE_CONFIRM;
SEND_EVENT (confirm_data.confirm_win, SHOW_CONFIRM, 0, 0);
return 0;
}
/*******************************************************************************
$Function: settingsSilentModeOn
$Description: Activate the silent Mode
$Returns:
$Arguments:
*******************************************************************************/
int settingsSilentModeOn(void)
{
TRACE_FUNCTION(">> settingsSilentModeOn()");
FFS_flashData.settings_status |= SettingsSilentMode;
flash_write();
setSilentModeVolume();
iconsSetState(iconIdSilRin);
return 0;
}
/*******************************************************************************
$Function: settingsSilentModeOff
$Description: Deactivate the silent Mode
$Returns:
$Arguments:
*******************************************************************************/
int settingsSilentModeOff(void)
{
TRACE_EVENT(">> settingsSilentModeOff()");
FFS_flashData.settings_status &= ~SettingsSilentMode;
flash_write();
restoreSilentModeVolume();
iconsDeleteState(iconIdSilRin);
return 0;
}
/*******************************************************************************
$Function: settingsKeyPadLockOn
$Description:
$Returns:
$Arguments:
*******************************************************************************/
int settingsKeyPadLockOn(void)
{
FFS_flashData.settings_status |= SettingsKeyPadLockOn;
iconsSetState(iconIdKeyplock);
idleEvent(IdleActiveKeyPadLocked);
return 0;
}
/*******************************************************************************
$Function: settingsKeyPadLockOff
$Description:
$Returns:
$Arguments:
*******************************************************************************/
int settingsKeyPadLockOff(void)
{
FFS_flashData.settings_status &= ~SettingsKeyPadLockOn;
iconsDeleteState(iconIdKeyplock);
return 0;
}
/*******************************************************************************
$Function: settingsAutoAnswerOn
$Description:
$Returns:
$Arguments:
*******************************************************************************/
int settingsAutoAnswerOn(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
confirm_Init(win);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -