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

📄 mmisounds_v1.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:

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 + -