📄 mmisounds_v1.c
字号:
int soundsAlarm( MfwMnu *m, MfwMnuItem *i )
{
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: soundInit
$Description: init sounds handling
$Returns: None
$Arguments: parent, handle of parent window
*******************************************************************************/
void soundInit( MfwHnd parent )
{
}
/*******************************************************************************
$Function: soundExit
$Description: exit sounds handling
$Returns: None
$Arguments: None
*******************************************************************************/
void soundExit (void)
{
}
/*******************************************************************************
$Function: soundExec
$Description: sends messages to soundExec to get the various melodies to play
$Returns: None
$Arguments: reason, for invocation, next, state
*******************************************************************************/
void soundExec (int reason, MmiState next)
{
}
/*******************************************************************************
$Function: soundsKeypadSilent
$Description: prepares KeypadTones setting screen
$Returns: MFW_EVENT_CONSUMED always
$Arguments: m, menu, i, item
*******************************************************************************/
int soundsKeypadSilent(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
sounds_Init(win);
if (FFS_flashData.settings_status & SettingsKeypadClick)
{
FFS_flashData.settings_status &= ~SettingsKeypadClick;
}
else if (FFS_flashData.settings_status & SettingsKeypadDTMF)
{
FFS_flashData.settings_status &= ~SettingsKeypadDTMF;
}
flash_write();
sounds_data.local_status = ACTIVATE_CONFIRM;
SEND_EVENT (sounds_data.sounds_win, SHOW_CONFIRM, 0, 0);
return 0;
}
/*******************************************************************************
$Function: soundsKeypadClick
$Description: prepares KeypadTones setting screen
$Returns: MFW_EVENT_CONSUMED always
$Arguments: m, menu, i, item
*******************************************************************************/
int soundsKeypadClick(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
sounds_Init(win);
if (FFS_flashData.settings_status & SettingsKeypadDTMF)
{
FFS_flashData.settings_status &= ~SettingsKeypadDTMF;
}
FFS_flashData.settings_status |= SettingsKeypadClick;
//play KeypadClick
audio_PlaySoundID(0, TONES_KEYBEEP, 5, 0 );
sounds_data.local_status = ACTIVATE_CONFIRM;
SEND_EVENT (sounds_data.sounds_win, SHOW_CONFIRM, 0, 0);
flash_write();
return 0;
}
/*******************************************************************************
$Function: soundsKeypadDTMF
$Description: prepares KeypadTones setting screen
$Returns: MFW_EVENT_CONSUMED always
$Arguments: m, menu, i, item
*******************************************************************************/
int soundsKeypadDTMF(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND win = mfw_parent(mfw_header());
sounds_Init(win);
if (FFS_flashData.settings_status & SettingsKeypadClick)
{
FFS_flashData.settings_status &= ~SettingsKeypadClick;
}
// test
//audio_SetAmplf (AUDIO_SPEAKER, 240);
// test
FFS_flashData.settings_status |= SettingsKeypadDTMF;
flash_write();
sounds_data.local_status = ACTIVATE_CONFIRM;
SEND_EVENT (sounds_data.sounds_win, SHOW_CONFIRM, 0, 0);
return 0;
}
/*******************************************************************************
$Function: sounds_Init
$Description:
$Returns:
$Arguments:
*******************************************************************************/
T_MFW_HND sounds_Init (T_MFW_HND parent_window)
{
return (sounds_create (parent_window));
}
/*******************************************************************************
$Function: confirm_Exit
$Description:
$Returns:
$Arguments:
*******************************************************************************/
void sounds_Exit (T_MFW_HND own_window)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)own_window)->data;
T_MELODY_INFO * data = (T_MELODY_INFO *)win_data->user;
sounds_destroy (data->sounds_win);
}
/*******************************************************************************
$Function: sounds_create
$Description:
$Returns:
$Arguments:
*******************************************************************************/
T_MFW_HND sounds_create (T_MFW_HND parent_window)
{
T_MELODY_INFO * data = &sounds_data;
T_MFW_WIN * win;
TRACE_FUNCTION ("sounds_create()");
data->sounds_win = win_create (parent_window, 0, 0, (T_MFW_CB)sounds_win_cb);
if (data->sounds_win EQ 0)
return 0;
/*
* Create window handler
*/
data->mmi_control.dialog = (T_DIALOG_FUNC)sounds;
data->mmi_control.data = data;
win = ((T_MFW_HDR *)data->sounds_win)->data;
win->user = (void *) data;
winShow(data->sounds_win);
/*
* return window handle
*/
return data->sounds_win;
}
/*******************************************************************************
$Function: sounds_destroy
$Description:
$Returns:
$Arguments:
*******************************************************************************/
void sounds_destroy (T_MFW_HND own_window)
{
T_MFW_WIN * win;
T_MELODY_INFO * data;
TRACE_FUNCTION ("sounds_destroy()");
if (own_window)
{
win = ((T_MFW_HDR *)own_window)->data;
data = (T_MELODY_INFO *)win->user;
if (data)
{
/*
* Delete WIN handler
*/
win_delete (data->sounds_win);
data->sounds_win = 0;
}
}
}
/*******************************************************************************
$Function: sounds_win_cb
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static int sounds_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
/*
* Top Window has no output
*/
return 1;
}
/*******************************************************************************
$Function: sounds_dialog
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void sounds_dialog(void)
{
T_DISPLAY_DATA display_info;
TRACE_FUNCTION ("sounds_dialog()");
dialog_info_init(&display_info);//gdy add
display_info.KeyEvents = KEY_CLEAR | KEY_RIGHT;
if (sounds_data.local_status EQ ACTIVATE_CONFIRM)
{
display_info.TextId = TxtActivated;
}
else
{
display_info.TextId = TxtDeActivated;
}
display_info.TextId2 = 0;
display_info.TextString = '\0';
display_info.TextString2 = '\0';
display_info.LeftSoftKey = '\0';
display_info.RightSoftKey = '\0';
display_info.Time = THREE_SECS;
display_info.Callback = (T_VOID_FUNC)sounds_dialog_cb;
/*
* Call Info Screen
*/
info_dialog (sounds_data.sounds_win, &display_info);
}
/*******************************************************************************
$Function: confirm_dialog_cb
$Description:
$Returns:
$Arguments:
*******************************************************************************/
void sounds_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason)
{
TRACE_FUNCTION ("sounds_dialog_cb()");
switch (reason)
{
case INFO_TIMEOUT:
/* no break; */
case INFO_KCD_HUP:
/* no break; */
case INFO_KCD_LEFT:
/* no break; */
case INFO_KCD_RIGHT:
/* no break; */
case INFO_KCD_CLEAR:
sounds_Exit(win);
break;
}
}
/*******************************************************************************
$Function: sounds
$Description:
$Returns:
$Arguments:
*******************************************************************************/
void sounds (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data;
T_MELODY_INFO * data = (T_MELODY_INFO *)win_data->user;
TRACE_FUNCTION("sounds()");
switch (event)
{
case SHOW_CONFIRM:
sounds_dialog();
break;
}
}
///zym for vibrator
/*******************************************************************************
$Function: StartVibrator
$Description: start Vibrator
$Returns:
$Arguments:
*******************************************************************************/
void StartVibrator(){
SET_BIT(io_conf_reg_g,2);
RESET_BIT(io_cntl_reg_g,6);
SET_BIT(armio_latch_out_g,6);
}
/*******************************************************************************
$Function: StopVibrator
$Description: stop Vibrator
$Returns:
$Arguments:
*******************************************************************************/
void StopVibrator(){
RESET_BIT(armio_latch_out_g,6);
}
void Initial_AuxSpeaker(void)
{
RESET_BIT(0xfffef008,1);//liujb test-------select GPIO
RESET_BIT(0xfffe4804,1);//liujb test----------select GPIO1
SET_BIT(0xfffe4802,1);//liujb test-----------GPIO1=1
SPIWrite_ABB_Register(0,zymTOGBR1,0x02AA);
SPIWrite_ABB_Register(0,zymTOGBR2,0x007A);
SPIWrite_ABB_Register(1,zymVBCR,0x0009); //A);era
SPIWrite_ABB_Register(1,zymVBUR,0x01B0);
SPIWrite_ABB_Register(0,zymVBDR,0x0026);
}
void KeepBeep_cb (void* parameter)
{
rvf_free_buf (parameter);
return;
}
///for keybeep
void StartKeyBeep(void){
T_AUDIO_KEYBEEP_PARAMETER parameter;
T_RV_RETURN return_path;
parameter.amplitude_beep[0] = 0;
parameter.amplitude_beep[1] = 0;
parameter.frequency_beep[0] = 1000;
parameter.frequency_beep[1] = 1000;
parameter.duration = 21;
return_path.callback_func = KeepBeep_cb;
return_path.addr_id = 0;
audio_keybeep_start (parameter, return_path);
}
void StopKeyBeep(void){
T_RV_RETURN return_path;
return_path.callback_func = KeepBeep_cb;
return_path.addr_id = 0;
audio_keybeep_stop (return_path);
}
void Tone_cb (void* parameter)
{
rvf_free_buf (parameter);
return;
}
void StartTone(void){
T_AUDIO_TONES_PARAMETER parameter;
T_RV_RETURN return_path;
parameter.tones[0].start_tone = 0;
parameter.tones[0].stop_tone = 60;
parameter.tones[0].frequency_tone = 520; // Hz
parameter.tones[0].amplitude_tone = 0; // dB
parameter.tones[1].start_tone = 20;
parameter.tones[1].stop_tone = 80;
parameter.tones[1].frequency_tone = 775; // Hz
parameter.tones[1].amplitude_tone = 0; // dB
parameter.tones[2].start_tone = 10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -