AudioSrc.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:44k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Copyright Notice
  37.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  38.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  39.  *  (It is illegal to remove this copyright notice from this software or any
  40.  *  portion of it)
  41. *******************************************************************************/
  42. /*******************************************************************************
  43.  *
  44.  * Filename:
  45.  * ---------
  46.  * AudioSrc.c
  47.  *
  48.  * Project:
  49.  * --------
  50.  *   MediaTeck GSM
  51.  *
  52.  * Description:
  53.  * ------------
  54.  *   This Module defines the L4 Audio Driver Routines.
  55.  *
  56.  * Author:
  57.  * -------
  58.  * -------
  59.  *             
  60.  *
  61.  * HISTORY
  62.  * -------
  63.  * Created On 12 March
  64. *******************************************************************************/
  65. #include "stdC.h"
  66. #include "L4Dr1.h"
  67. #ifdef MMI_ON_HARDWARE_P
  68. #include "aud_defs.h"
  69. #include "l4dr.h"
  70. #include "QueueGprot.h"
  71. #endif /* MMI_ON_HARDWARE_P */ 
  72. #include "audioInc.h"
  73. #include "taskInit.h"
  74. #include "ProtocolEvents.h"
  75. #include "Unicodexdcl.h"
  76. #include "DownloadProtos.h"
  77. #include "gpioInc.h"
  78. #include "ProfilesGexdcl.h"
  79. #include "FileSystemDef.h"
  80. #include "FileMgr.h"
  81. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  82. #include "ProfileMgrGProt.h"
  83. #include "ProfilesGexdcl.h"
  84. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  85. #if defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__)
  86. #include "resource_audio.h"
  87. #include "SettingProfile.h"
  88. #endif /* defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__) */ 
  89. #include "ProfileGprots.h"
  90. #include "mdi_datatype.h"
  91. #include "mdi_audio.h"
  92. #include "IdleAppDef.h"
  93. extern void StopAudioFileSystem(U16 AudioId); // defined in DownloadSrc.c
  94. extern void mmi_profiles_set_ring_tone_playing(BOOL);
  95. #if defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__)
  96. static U8 IsHumanVoiceKeyTonePlaying = 0;
  97. /*****************************************************************************
  98.  * FUNCTION
  99.  *  CanPlayHumanVoiceKeyTone
  100.  * DESCRIPTION
  101.  *  
  102.  * PARAMETERS
  103.  *  void
  104.  * RETURNS
  105.  *  
  106.  *****************************************************************************/
  107. U8 CanPlayHumanVoiceKeyTone(void)
  108. {
  109.     /*----------------------------------------------------------------*/
  110.     /* Local Variables                                                */
  111.     /*----------------------------------------------------------------*/
  112.     /*----------------------------------------------------------------*/
  113.     /* Code Body                                                      */
  114.     /*----------------------------------------------------------------*/
  115.     return (g_idle_context.IsOnIdleScreen || g_idle_context.IsOnSimErrorScreen ||
  116.             g_idle_context.IsOnSimErrorDialerScreen || g_idle_context.IsOnDialerScreen) &&
  117.         (mdi_audio_is_idle() || IsHumanVoiceKeyTonePlaying);
  118. }
  119. /*****************************************************************************
  120.  * FUNCTION
  121.  *  HumanVoiceKeyTonePlayHandler
  122.  * DESCRIPTION
  123.  *  
  124.  * PARAMETERS
  125.  *  result      [IN]        
  126.  * RETURNS
  127.  *  void
  128.  *****************************************************************************/
  129. void HumanVoiceKeyTonePlayHandler(mdi_result result)
  130. {
  131.     /*----------------------------------------------------------------*/
  132.     /* Local Variables                                                */
  133.     /*----------------------------------------------------------------*/
  134.     /*----------------------------------------------------------------*/
  135.     /* Code Body                                                      */
  136.     /*----------------------------------------------------------------*/
  137.     IsHumanVoiceKeyTonePlaying = 0;
  138. }
  139. #endif /* defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__) */ 
  140. #if defined(__MMI_CUST_KEYPAD_TONE__)
  141. static U8 IsCustKeyTonePlaying = 0;
  142. /*****************************************************************************
  143.  * FUNCTION
  144.  *  CanPlayCustKeyTone
  145.  * DESCRIPTION
  146.  *  
  147.  * PARAMETERS
  148.  *  void
  149.  * RETURNS
  150.  *  
  151.  *****************************************************************************/
  152. U8 CanPlayCustKeyTone(void)
  153. {
  154.     /*----------------------------------------------------------------*/
  155.     /* Local Variables                                                */
  156.     /*----------------------------------------------------------------*/
  157.     /*----------------------------------------------------------------*/
  158.     /* Code Body                                                      */
  159.     /*----------------------------------------------------------------*/
  160.     return (g_idle_context.IsOnIdleScreen || g_idle_context.IsOnSimErrorScreen ||
  161.             g_idle_context.IsOnSimErrorDialerScreen || g_idle_context.IsOnDialerScreen) &&
  162.         (mdi_audio_is_idle() || IsCustKeyTonePlaying);
  163. }
  164. /*****************************************************************************
  165.  * FUNCTION
  166.  *  CustKeyTonePlayHandler
  167.  * DESCRIPTION
  168.  *  
  169.  * PARAMETERS
  170.  *  result      [IN]        
  171.  * RETURNS
  172.  *  void
  173.  *****************************************************************************/
  174. void CustKeyTonePlayHandler(mdi_result result)
  175. {
  176.     /*----------------------------------------------------------------*/
  177.     /* Local Variables                                                */
  178.     /*----------------------------------------------------------------*/
  179.     /*----------------------------------------------------------------*/
  180.     /* Code Body                                                      */
  181.     /*----------------------------------------------------------------*/
  182.     IsCustKeyTonePlaying = 0;
  183. }
  184. #endif /* defined(__MMI_CUST_KEYPAD_TONE__) */ 
  185. /*********************************************************************
  186.   * Function         : AudioPlayToneMDICallBack
  187.   *
  188.   * Purpose       : This function is call back function for AudioPlayToneWithCallBack
  189.   *                              if play file fail.
  190.   * 
  191.   * Input Parameters :  mdi_result result
  192.   *
  193.   * Output Parameters  : none
  194.   *
  195.   * Returns       : void
  196.   *
  197.   * Remarks       :  There are 3 types of tone might use file
  198.   *
  199.   *                                1. Incomming Call
  200.   *                                2. Aalrm Tone
  201.   *                                3. Message Tone
  202.   *
  203.   *                               File might play fail, cause of file broken or file not exist, 
  204.   *                               This function will be call back if mdi play fail
  205.   *
  206.   *
  207. **********************************************************************/
  208. static U8 tone_style_callback = 0, tone_type_callback = 0, tone_volume_callback = 0;
  209. /*****************************************************************************
  210.  * FUNCTION
  211.  *  AudioPlayToneMDICallBack
  212.  * DESCRIPTION
  213.  *  
  214.  * PARAMETERS
  215.  *  result      [IN]        
  216.  * RETURNS
  217.  *  void
  218.  *****************************************************************************/
  219. void AudioPlayToneMDICallBack(mdi_result result)
  220. {
  221.     /*----------------------------------------------------------------*/
  222.     /* Local Variables                                                */
  223.     /*----------------------------------------------------------------*/
  224.     /*----------------------------------------------------------------*/
  225.     /* Code Body                                                      */
  226.     /*----------------------------------------------------------------*/
  227.     if (result != MDI_AUDIO_SUCCESS && result != MDI_AUDIO_TERMINATED &&
  228.         result != MDI_AUDIO_RESUME && result != MDI_AUDIO_BLOCKED && result != MDI_AUDIO_END_OF_FILE)
  229.     {
  230.         switch (tone_type_callback)
  231.         {
  232.             case INCOMING_CALL_TONE:
  233.                 tone_volume_callback = GetRingVolumeLevel();
  234.                 mdi_audio_play_id_with_vol_path(
  235.                     gstartMidiId,
  236.                     tone_style_callback,
  237.                     NULL,
  238.                     NULL,
  239.                     tone_volume_callback,
  240.                     MDI_DEVICE_SPEAKER_BOTH);
  241.                 break;
  242.             case ALARM_TONE:
  243.                 mdi_audio_play_id_with_vol_path(
  244.                     (U16) (gstartMidiId + 1),
  245.                     tone_style_callback,
  246.                     NULL,
  247.                     NULL,
  248.                     tone_volume_callback,
  249.                     MDI_DEVICE_SPEAKER_BOTH);
  250.                 break;
  251.             case MESSAGE_TONE:
  252.                 mdi_audio_play_id_with_vol_path(
  253.                     (U16) (gstartMiscToneId + 4),
  254.                     tone_style_callback,
  255.                     NULL,
  256.                     NULL,
  257.                     tone_volume_callback,
  258.                     MDI_DEVICE_SPEAKER_BOTH);
  259.                 break;
  260. //KP Jerry add for changing the style of message tone list on 2007-4-10 start
  261. #ifdef __MMI_TONE_LIST_STYLE_CHANGED__
  262.             case POWER_ON_TONE :
  263.                 mdi_audio_play_id_with_vol_path(
  264.                     (U16) (gstartGeneralToneId),
  265.                     tone_style_callback,
  266.                     NULL,
  267.                     NULL,
  268.                     tone_volume_callback,
  269.                     MDI_DEVICE_SPEAKER_BOTH);
  270.                 break;
  271.             case POWER_OFF_TONE :
  272.                 mdi_audio_play_id_with_vol_path(
  273.                     (U16) (gstartGeneralToneId + 1),
  274.                     tone_style_callback,
  275.                     NULL,
  276.                     NULL,
  277.                     tone_volume_callback,
  278.                     MDI_DEVICE_SPEAKER_BOTH);
  279.                 break;
  280.         #ifdef __MMI_CLAMSHELL__
  281.             case COVER_OPEN_TONE :
  282.                 mdi_audio_play_id_with_vol_path(
  283.                     (U16) (gstartGeneralToneId + 2),
  284.                     tone_style_callback,
  285.                     NULL,
  286.                     NULL,
  287.                     tone_volume_callback,
  288.                     MDI_DEVICE_SPEAKER_BOTH);
  289.                 break;
  290.             case COVER_CLOSE_TONE :
  291.                 mdi_audio_play_id_with_vol_path(
  292.                     (U16) (gstartGeneralToneId + 3),
  293.                     tone_style_callback,
  294.                     NULL,
  295.                     NULL,
  296.                     tone_volume_callback,
  297.                     MDI_DEVICE_SPEAKER_BOTH);
  298.                 break;
  299.   #endif /* __MMI_CLAMSHELL__ */ 
  300. #endif
  301. //KP Jerry add for changing the style of message tone list on 2007-4-10 end
  302.             default:
  303.                 ASSERT(0);
  304.                 break;
  305.         }
  306.         mmi_profiles_set_ring_tone_playing(TRUE);
  307.     }
  308.     else
  309.     {
  310.         mmi_profiles_set_ring_tone_playing(FALSE);
  311.     }
  312. }
  313. /*********************************************************************
  314.   * Function         : AudioPlayToneWithCallBack
  315.   *
  316.   * Purpose       : This function is play tone function with callbakc for mdi interface
  317.   * 
  318.   * Input Parameters :  U16 soundId, U8 style, U8 tone_type
  319.   *
  320.   * Output Parameters  : none
  321.   *
  322.   * Returns       : void
  323.   *
  324.   * Remarks       :  There are 3 types of tone might use file
  325.   *
  326.   *                                1. Incomming Call  ( StartRingTone()  )
  327.   *                                2. Aalrm Tone ( playRequestedTone(ALARM_TONE) )
  328.   *                                3. Message Tone ( playRequestedTone(MESSAGE_TONE) )
  329.   *
  330.   *                               File might play fail, cause of file broken or file not exist, 
  331.   *                               This function will be call back register function if mdi play fail
  332.   *                               Shall play default ringtone in callback function
  333.   *
  334. **********************************************************************/
  335. /*****************************************************************************
  336.  * FUNCTION
  337.  *  AudioPlayToneWithCallBack
  338.  * DESCRIPTION
  339.  *  
  340.  * PARAMETERS
  341.  *  soundId         [IN]        
  342.  *  style           [IN]        
  343.  *  tone_type       [IN]        
  344.  * RETURNS
  345.  *  void
  346.  *****************************************************************************/
  347. void AudioPlayToneWithCallBack(U16 soundId, U8 style, U8 tone_type)
  348. {
  349.     /*----------------------------------------------------------------*/
  350.     /* Local Variables                                                */
  351.     /*----------------------------------------------------------------*/
  352.     /*----------------------------------------------------------------*/
  353.     /* Code Body                                                      */
  354.     /*----------------------------------------------------------------*/
  355.     AudioPlayToneWithCallBackVolPath(soundId, style, tone_type, GetRingVolumeLevel(), MDI_DEVICE_SPEAKER_BOTH);
  356. }
  357. /*********************************************************************
  358.   * Function         : AudioPlayToneWithCallBackVolPath
  359.   *
  360.   * Purpose       : This function is play tone function with callbakc for mdi interface
  361.   * 
  362.   * Input Parameters :  U16 soundId, U8 style, U8 tone_type, U8 volume, U8 path
  363.   *
  364.   * Output Parameters  : none
  365.   *
  366.   * Returns       : void
  367.   *
  368.   * Remarks       :  There are 3 types of tone might use file
  369.   *
  370.   *                                1. Incomming Call  ( StartRingTone()  )
  371.   *                                2. Aalrm Tone ( playRequestedTone(ALARM_TONE) )
  372.   *                                3. Message Tone ( playRequestedTone(MESSAGE_TONE) )
  373.   *
  374.   *                               File might play fail, cause of file broken or file not exist, 
  375.   *                               This function will be call back register function if mdi play fail
  376.   *                               Shall play default ringtone in callback function
  377.   *
  378. **********************************************************************/
  379. /*****************************************************************************
  380.  * FUNCTION
  381.  *  AudioPlayToneWithCallBackVolPath
  382.  * DESCRIPTION
  383.  *  
  384.  * PARAMETERS
  385.  *  soundId         [IN]        
  386.  *  style           [IN]        
  387.  *  tone_type       [IN]        
  388.  *  volume          [IN]        
  389.  *  path            [IN]        
  390.  * RETURNS
  391.  *  void
  392.  *****************************************************************************/
  393. void AudioPlayToneWithCallBackVolPath(U16 soundId, U8 style, U8 tone_type, U8 volume, U8 path)
  394. {
  395. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  396.     /*----------------------------------------------------------------*/
  397.     /* Local Variables                                                */
  398.     /*----------------------------------------------------------------*/
  399.     S8 buf[MAX_EXT_MELODY_FULLNAME_WIDTH];
  400. #else /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  401.     S8 buf[(FMGR_MAX_PATH_LEN + 1) * ENCODING_LENGTH];
  402. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  403.     BOOL play_file = FALSE;
  404.     mdi_result result;
  405.     /*----------------------------------------------------------------*/
  406.     /* Code Body                                                      */
  407.     /*----------------------------------------------------------------*/
  408. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  409.     if (soundId >= PMG_EXT_MELODY_BEGIN && soundId <= PMG_EXT_MELODY_END)
  410.     {
  411.         if (PmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  412.         {
  413.             play_file = TRUE;
  414.         }
  415.     }
  416. //KP Jerry add for changing the style of message tone list on 2007-4-10 start
  417. #ifdef __MMI_TONE_LIST_STYLE_CHANGED__
  418.     else if (soundId >= PMG_EXT_MS_MELODY_BEGIN && soundId <= PMG_EXT_MS_MELODY_END)
  419.     {
  420.         if (MSPmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  421.         {
  422.             play_file = TRUE;
  423.         }
  424.     }
  425.    else if (soundId >= PMG_EXT_PON_OFF_MELODY_BEGIN && soundId <= PMG_EXT_PON_OFF_MELODY_END )
  426.     {
  427.         if (POnOffPmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  428.         {
  429.             play_file = TRUE;
  430.         }
  431.     }
  432. #endif
  433. //KP Jerry add for changing the style of message tone list on 2007-4-10 end
  434.     else
  435. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  436.     {
  437.     #ifdef __MMI_DOWNLOADABLE_THEMES_SUPPORT__
  438.         if (GetAudioNameWithPathInFileSystem(soundId, (PS8) buf) != NULL)
  439.         {
  440.             play_file = TRUE;
  441.         }
  442.     #endif /* __MMI_DOWNLOADABLE_THEMES_SUPPORT__ */ 
  443.     }
  444.     tone_style_callback = style;
  445.     tone_type_callback = tone_type;
  446.     tone_volume_callback = volume;
  447.     if (play_file)
  448.     {
  449.         result = mdi_audio_play_file_with_vol_path(
  450.                     (void*)buf,
  451.                     style,
  452.                     NULL,
  453.                     AudioPlayToneMDICallBack,
  454.                     tone_volume_callback,
  455.                     path);
  456.     }
  457.     else
  458.     {
  459.         result = mdi_audio_play_id_with_vol_path(soundId, style, NULL, AudioPlayToneMDICallBack, volume, path);
  460.     }
  461.     if (result != MDI_AUDIO_SUCCESS)
  462.     {
  463.         AudioPlayToneMDICallBack(result);
  464.     }
  465. }
  466. /*****************************************************************************
  467.  * FUNCTION
  468.  *  AudioPlayReqWithVolPath
  469.  * DESCRIPTION
  470.  *  
  471.  * PARAMETERS
  472.  *  soundId     [IN]        
  473.  *  style       [IN]        
  474.  *  volume      [IN]        
  475.  *  path        [IN]        
  476.  * RETURNS
  477.  *  void
  478.  *****************************************************************************/
  479. void AudioPlayReqWithVolPath(U16 soundId, U8 style, U8 volume, U8 path)
  480. {
  481. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  482.     /*----------------------------------------------------------------*/
  483.     /* Local Variables                                                */
  484.     /*----------------------------------------------------------------*/
  485.     S8 buf[MAX_EXT_MELODY_FULLNAME_WIDTH];
  486. #else /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  487.     S8 buf[(FMGR_MAX_PATH_LEN + 1) * ENCODING_LENGTH];
  488. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  489.     /*----------------------------------------------------------------*/
  490.     /* Code Body                                                      */
  491.     /*----------------------------------------------------------------*/
  492. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  493.     if (soundId >= PMG_EXT_MELODY_BEGIN && soundId <= PMG_EXT_MELODY_END)
  494.     {
  495.         if (PmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  496.         {
  497.             mdi_audio_play_file_with_vol_path(buf, style, NULL, NULL, volume, path);
  498.         }
  499.     }
  500.     else
  501. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  502. #if defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__)
  503.     if (soundId >= MIN_HUMAN_VOICE_ID && soundId <= MAX_HUMAN_VOICE_ID)
  504.     {
  505.         audio_resource_struct *audio_resource_p = &resource_human_voice_tones[soundId - MIN_HUMAN_VOICE_ID];
  506.         if (mdi_audio_play_string_with_vol_path(
  507.                 (void*)audio_resource_p->data,
  508.                 audio_resource_p->len,
  509.                 (U8) audio_resource_p->format,
  510.                 style,
  511.                 NULL,
  512.                 HumanVoiceKeyTonePlayHandler,
  513.                 volume,
  514.                 path) == MDI_AUDIO_SUCCESS)
  515.         {
  516.             IsHumanVoiceKeyTonePlaying = 1;
  517.         }
  518.         else
  519.         {
  520.             IsHumanVoiceKeyTonePlaying = 0;
  521.         }
  522.     }
  523.     else
  524. #endif /* defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__) */ 
  525. #if defined(__MMI_CUST_KEYPAD_TONE__)
  526.     if (soundId >= MIN_KEYPAD_TONE_ID && soundId <= MAX_KEYPAD_TONE_ID)
  527.     {
  528.         audio_resource_struct *audio_resource_p = &resource_keypad_tones[soundId - MIN_KEYPAD_TONE_ID];
  529.         if (mdi_audio_play_string_with_vol_path(
  530.                 (void*)audio_resource_p->data,
  531.                 audio_resource_p->len,
  532.                 (U8) audio_resource_p->format,
  533.                 style,
  534.                 NULL,
  535.                 CustKeyTonePlayHandler,
  536.                 volume,
  537.                 path) == MDI_AUDIO_SUCCESS)
  538.         {
  539.             IsCustKeyTonePlaying = 1;
  540.         }
  541.         else
  542.         {
  543.             IsCustKeyTonePlaying = 0;
  544.         }
  545.     }
  546.     else
  547. #endif /* defined(__MMI_CUST_KEYPAD_TONE__) */ 
  548. #ifdef __MMI_DOWNLOADABLE_THEMES_SUPPORT__
  549.     if (GetAudioNameWithPathInFileSystem(soundId, buf) != NULL)
  550.     {
  551.         mdi_audio_play_file_with_vol_path(buf, style, NULL, NULL, volume, path);
  552.     }
  553.     else
  554. #endif /* __MMI_DOWNLOADABLE_THEMES_SUPPORT__ */ 
  555.     {
  556.     #ifdef MMI_ON_HARDWARE_P
  557.         mdi_audio_play_id_with_vol_path(soundId, style, NULL, NULL, volume, path);
  558.     #else /* MMI_ON_HARDWARE_P */ 
  559.         MYQUEUE Message;
  560.         mmi_eq_play_audio_req_struct *audioPlayReq;
  561.         audioPlayReq = OslConstructDataPtr(sizeof(mmi_eq_play_audio_req_struct));
  562.         audioPlayReq->sound_id = (U8) soundId;
  563.         audioPlayReq->style = 2;                    /* style; */
  564.         audioPlayReq->identifier = (U16) soundId;   /* Robin 1127 */
  565.         Message.oslMsgId = PRT_EQ_PLAY_AUDIO_REQ;
  566.         Message.oslDataPtr = (oslParaType*) audioPlayReq;
  567.         Message.oslPeerBuffPtr = NULL;
  568.         Message.oslSrcId = MOD_MMI;
  569.         Message.oslDestId = MOD_L4C;
  570.         OslMsgSendExtQueue(&Message);
  571.     #endif /* MMI_ON_HARDWARE_P */ 
  572.     }
  573. }
  574. /*********************************************************************
  575.   * Function         : AudioPlayReq
  576.   *
  577.   * Purpose       : This function Play request tone
  578.   * 
  579.   * Input Parameters :  U16 soundId, U8 style
  580.   *
  581.   * Output Parameters  : none
  582.   *
  583.   * Returns       : void
  584.   *
  585.   * Remarks       :  
  586.   *
  587.   *
  588. **********************************************************************/
  589. /*****************************************************************************
  590.  * FUNCTION
  591.  *  AudioPlayReq
  592.  * DESCRIPTION
  593.  *  
  594.  * PARAMETERS
  595.  *  soundId     [IN]        
  596.  *  style       [IN]        
  597.  * RETURNS
  598.  *  void
  599.  *****************************************************************************/
  600. void AudioPlayReq(U16 soundId, U8 style)
  601. {
  602. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  603.     /*----------------------------------------------------------------*/
  604.     /* Local Variables                                                */
  605.     /*----------------------------------------------------------------*/
  606.     S8 buf[MAX_EXT_MELODY_FULLNAME_WIDTH];
  607. #else /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  608.     S8 buf[(FMGR_MAX_PATH_LEN + 1) * ENCODING_LENGTH];
  609. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  610.     /*----------------------------------------------------------------*/
  611.     /* Code Body                                                      */
  612.     /*----------------------------------------------------------------*/
  613. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  614.     if (soundId >= PMG_EXT_MELODY_BEGIN && soundId <= PMG_EXT_MELODY_END)
  615.     {
  616.         if (PmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  617.         {
  618.             mdi_audio_play_file(buf, style, NULL, NULL);
  619.         }
  620.     }
  621. //KP Jerry add for changing the style of message tone list on 2007-4-10 start
  622. #ifdef __MMI_TONE_LIST_STYLE_CHANGED__
  623.    else if (soundId >= PMG_EXT_MS_MELODY_BEGIN && soundId <= PMG_EXT_MS_MELODY_END)
  624.     {
  625.         if (MSPmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  626.         {
  627.             mdi_audio_play_file(buf, style, NULL, NULL);
  628.         }
  629.     }
  630.    else if (soundId >= PMG_EXT_PON_OFF_MELODY_BEGIN && soundId <= PMG_EXT_PON_OFF_MELODY_END )
  631.     {
  632.         if (POnOffPmgGetFilePathNameByAudioId(buf, sizeof(buf), soundId) == MMI_TRUE)
  633.         {
  634.             mdi_audio_play_file(buf, style, NULL, NULL);
  635.         }
  636.     }
  637. #endif
  638. //KP Jerry add for changing the style of message tone list on 2007-4-10 end
  639.     else
  640. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  641. #if defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__)
  642.     if (soundId >= MIN_HUMAN_VOICE_ID && soundId <= MAX_HUMAN_VOICE_ID)
  643.     {
  644.         audio_resource_struct *audio_resource_p = &resource_human_voice_tones[soundId - MIN_HUMAN_VOICE_ID];
  645.         if (mdi_audio_play_string_with_vol_path(
  646.                 (void*)audio_resource_p->data,
  647.                 audio_resource_p->len,
  648.                 (U8) audio_resource_p->format,
  649.                 style,
  650.                 NULL,
  651.                 HumanVoiceKeyTonePlayHandler,
  652.                 GetKeypadVolumeLevel(),
  653.                 MDI_DEVICE_SPEAKER2) == MDI_AUDIO_SUCCESS)
  654.         {
  655.             IsHumanVoiceKeyTonePlaying = 1;
  656.         }
  657.         else
  658.         {
  659.             IsHumanVoiceKeyTonePlaying = 0;
  660.         }
  661.     }
  662.     else
  663. #endif /* defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__) */ 
  664. #if defined(__MMI_CUST_KEYPAD_TONE__)
  665.     if (soundId >= MIN_KEYPAD_TONE_ID && soundId <= MAX_KEYPAD_TONE_ID)
  666.     {
  667.         audio_resource_struct *audio_resource_p = &resource_keypad_tones[soundId - MIN_KEYPAD_TONE_ID];
  668.         if (mdi_audio_play_string_with_vol_path(
  669.                 (void*)audio_resource_p->data,
  670.                 audio_resource_p->len,
  671.                 (U8) audio_resource_p->format,
  672.                 style,
  673.                 NULL,
  674.                 CustKeyTonePlayHandler,
  675.                 GetKeypadVolumeLevel(),
  676.                 MDI_DEVICE_SPEAKER2) == MDI_AUDIO_SUCCESS)
  677.         {
  678.             IsCustKeyTonePlaying = 1;
  679.         }
  680.         else
  681.         {
  682.             IsCustKeyTonePlaying = 0;
  683.         }
  684.     }
  685.     else
  686. #endif /* defined(__MMI_CUST_KEYPAD_TONE__) */ 
  687. #ifdef __MMI_DOWNLOADABLE_THEMES_SUPPORT__
  688.     if (GetAudioNameWithPathInFileSystem(soundId, buf) != NULL)
  689.     {
  690.         mdi_audio_play_file(buf, style, NULL, NULL);
  691.     }
  692.     else
  693. #endif /* __MMI_DOWNLOADABLE_THEMES_SUPPORT__ */ 
  694.     {
  695.     #ifdef MMI_ON_HARDWARE_P
  696.         mdi_audio_play_id(soundId, style, NULL, NULL);
  697.     #else /* MMI_ON_HARDWARE_P */ 
  698.         MYQUEUE Message;
  699.         mmi_eq_play_audio_req_struct *audioPlayReq;
  700.         audioPlayReq = OslConstructDataPtr(sizeof(mmi_eq_play_audio_req_struct));
  701.         audioPlayReq->sound_id = (U8) soundId;
  702.         audioPlayReq->style = 2;                    /* style; */
  703.         audioPlayReq->identifier = (U16) soundId;   /* Robin 1127 */
  704.         Message.oslMsgId = PRT_EQ_PLAY_AUDIO_REQ;
  705.         Message.oslDataPtr = (oslParaType*) audioPlayReq;
  706.         Message.oslPeerBuffPtr = NULL;
  707.         Message.oslSrcId = MOD_MMI;
  708.         Message.oslDestId = MOD_L4C;
  709.         OslMsgSendExtQueue(&Message);
  710.     #endif /* MMI_ON_HARDWARE_P */ 
  711.     }
  712. }
  713. /*********************************************************************
  714.  Function         : AudioStopReq
  715.  Purpose       : This function stops sound playing.
  716.  Input Parameters : U8 soundId
  717.  Output Parameters  : none
  718.  Returns       : void
  719.  Remarks       :
  720. **********************************************************************/
  721. /*****************************************************************************
  722.  * FUNCTION
  723.  *  AudioStopReq
  724.  * DESCRIPTION
  725.  *  
  726.  * PARAMETERS
  727.  *  soundId     [IN]        
  728.  * RETURNS
  729.  *  void
  730.  *****************************************************************************/
  731. void AudioStopReq(U16 soundId)
  732. {
  733.     /*----------------------------------------------------------------*/
  734.     /* Local Variables                                                */
  735.     /*----------------------------------------------------------------*/
  736.     /*----------------------------------------------------------------*/
  737.     /* Code Body                                                      */
  738.     /*----------------------------------------------------------------*/
  739.     if (soundId >= FILESYSTEM_AUDIO_BASE && soundId <= FILESYSTEM_AUDIO_BASE_END)
  740.     {
  741.         StopAudioFileSystem(soundId);
  742.     }
  743. #ifdef __MMI_PROFILE_EXTMELODY_SUPPORT__
  744.     else if (soundId >= PMG_EXT_MELODY_BEGIN && soundId <= PMG_EXT_MELODY_END)
  745.     {
  746.         mdi_audio_stop_file();
  747.     }
  748. #endif /* __MMI_PROFILE_EXTMELODY_SUPPORT__ */ 
  749. //KP Jerry add for changing the style of message tone list on 2007-4-10 start
  750. #ifdef __MMI_TONE_LIST_STYLE_CHANGED__
  751.     else if (soundId >= PMG_EXT_MS_MELODY_BEGIN && soundId <= PMG_EXT_MS_MELODY_END)
  752.     {
  753.         mdi_audio_stop_file();
  754.     }
  755.    else if (soundId >= PMG_EXT_PON_OFF_MELODY_BEGIN && soundId <= PMG_EXT_PON_OFF_MELODY_END )
  756.     {
  757.         mdi_audio_stop_file();
  758.     }
  759. #endif
  760. //KP Jerry add for changing the style of message tone list on 2007-4-10 end
  761. #if defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__)
  762.     else if (soundId >= MIN_HUMAN_VOICE_ID && soundId <= MAX_HUMAN_VOICE_ID)
  763.     {
  764.         mdi_audio_stop_string();
  765.     }
  766. #endif /* defined(__MMI_HUMAN_VOICE_KEYPAD_TONE__) */ 
  767.     else
  768.     {
  769.     #ifdef MMI_ON_HARDWARE_P
  770.         mdi_audio_stop_id(soundId);
  771.     #else /* MMI_ON_HARDWARE_P */ 
  772.         MYQUEUE Message;
  773.         mmi_eq_stop_audio_req_struct *msg_p;
  774.         msg_p = OslConstructDataPtr(sizeof(mmi_eq_stop_audio_req_struct));
  775.         msg_p->sound_id = (U8) soundId;
  776.         Message.oslMsgId = PRT_EQ_STOP_AUDIO_REQ;
  777.         Message.oslDataPtr = (oslParaType*) msg_p;
  778.         Message.oslPeerBuffPtr = NULL;
  779.         Message.oslSrcId = MOD_MMI;
  780.         Message.oslDestId = MOD_L4C;
  781.         OslMsgSendExtQueue(&Message);
  782.     #endif /* MMI_ON_HARDWARE_P */ 
  783.     }
  784. }
  785. /*****************************************************************************
  786.  * FUNCTION
  787.  *  AudioPlayIMelodyString
  788.  * DESCRIPTION
  789.  *  
  790.  * PARAMETERS
  791.  *  string      [?]         
  792.  *  len         [IN]        
  793.  *  style       [IN]        
  794.  * RETURNS
  795.  *  void
  796.  *****************************************************************************/
  797. void AudioPlayIMelodyString(U8 *string, U16 len, U8 style)
  798. {
  799.     /*----------------------------------------------------------------*/
  800.     /* Local Variables                                                */
  801.     /*----------------------------------------------------------------*/
  802.     MYQUEUE Message;
  803.     mmi_eq_play_ext_imelody_req_struct *iMelodyPlayReq;
  804.     /*----------------------------------------------------------------*/
  805.     /* Code Body                                                      */
  806.     /*----------------------------------------------------------------*/
  807.     if (len > MAX_RING_COMPOSE_LEN)
  808.     {
  809.         return;
  810.     }
  811.     iMelodyPlayReq = OslConstructDataPtr(sizeof(mmi_eq_play_ext_imelody_req_struct));
  812.     memcpy(iMelodyPlayReq->imelody, string, len);
  813.     iMelodyPlayReq->len = len;
  814.     iMelodyPlayReq->play_style = style;
  815.     Message.oslMsgId = PRT_EQ_PLAY_EXT_IMELODY_REQ;
  816.     Message.oslDataPtr = (oslParaType*) iMelodyPlayReq;
  817.     Message.oslPeerBuffPtr = NULL;
  818.     Message.oslSrcId = MOD_MMI;
  819.     Message.oslDestId = MOD_L4C;
  820.     OslMsgSendExtQueue(&Message);
  821. }
  822. /*****************************************************************************
  823.  * FUNCTION
  824.  *  AudioPlayIMelodyFile
  825.  * DESCRIPTION
  826.  *  
  827.  * PARAMETERS
  828.  *  file        [?]         
  829.  *  style       [IN]        
  830.  * RETURNS
  831.  *  void
  832.  *****************************************************************************/
  833. void AudioPlayIMelodyFile(U8 *file, U8 style)
  834. {
  835.     /*----------------------------------------------------------------*/
  836.     /* Local Variables                                                */
  837.     /*----------------------------------------------------------------*/
  838.     /*----------------------------------------------------------------*/
  839.     /* Code Body                                                      */
  840.     /*----------------------------------------------------------------*/
  841.     if (file)   /* !=NULL */
  842.     {
  843.     #if 1
  844.         mdi_audio_play_file(file, style, NULL, NULL);
  845.     #else /* 1 */ 
  846. /* under construction !*/
  847. /* under construction !*/
  848. /* under construction !*/
  849. /* under construction !*/
  850. /* under construction !*/
  851. /* under construction !*/
  852. /* under construction !*/
  853. /* under construction !*/
  854. /* under construction !*/
  855. /* under construction !*/
  856. /* under construction !*/
  857. /* under construction !*/
  858. /* under construction !*/
  859. /* under construction !*/
  860. /* under construction !*/
  861.     #endif /* 1 */ 
  862.     }
  863. }
  864. /*****************************************************************************
  865.  * FUNCTION
  866.  *  AudioPlayIMelodyFileWithId
  867.  * DESCRIPTION
  868.  *  
  869.  * PARAMETERS
  870.  *  file        [?]         
  871.  *  style       [IN]        
  872.  *  nId         [IN]        
  873.  * RETURNS
  874.  *  void
  875.  *****************************************************************************/
  876. void AudioPlayIMelodyFileWithId(U8 *file, U8 style, U16 nId)
  877. {
  878.     /*----------------------------------------------------------------*/
  879.     /* Local Variables                                                */
  880.     /*----------------------------------------------------------------*/
  881.     /*----------------------------------------------------------------*/
  882.     /* Code Body                                                      */
  883.     /*----------------------------------------------------------------*/
  884.     if (file)   /* !=NULL */
  885.     {
  886.         MYQUEUE Message;
  887.         mmi_eq_play_audio_by_name_req_struct *audioByNamePlayReq;
  888.         if (pfnUnicodeStrlen((PS8) file) > MAX_MELODY_FILE_NAME)
  889.         {
  890.             return;
  891.         }
  892.         audioByNamePlayReq = OslConstructDataPtr(sizeof(mmi_eq_play_audio_by_name_req_struct));
  893.         audioByNamePlayReq->style = style,
  894.             audioByNamePlayReq->identifier = nId,
  895.             pfnUnicodeStrcpy((PS8) audioByNamePlayReq->file_name, (PS8) file),
  896.             Message.oslMsgId = PRT_EQ_PLAY_AUDIO_BY_NAME_REQ;
  897.         Message.oslDataPtr = (oslParaType*) audioByNamePlayReq;
  898.         Message.oslPeerBuffPtr = NULL;
  899.         Message.oslSrcId = MOD_MMI;
  900.         Message.oslDestId = MOD_L4C;
  901.         OslMsgSendExtQueue(&Message);
  902.     }
  903. }
  904. /*****************************************************************************
  905.  * FUNCTION
  906.  *  AudioStopIMelodyFile
  907.  * DESCRIPTION
  908.  *  
  909.  * PARAMETERS
  910.  *  file        [?]     
  911.  * RETURNS
  912.  *  void
  913.  *****************************************************************************/
  914. void AudioStopIMelodyFile(U8 *file)
  915. {
  916.     /*----------------------------------------------------------------*/
  917.     /* Local Variables                                                */
  918.     /*----------------------------------------------------------------*/
  919.     /*----------------------------------------------------------------*/
  920.     /* Code Body                                                      */
  921.     /*----------------------------------------------------------------*/
  922.     if (file)
  923.     {
  924.     #if 1
  925.         mdi_audio_stop_file();
  926.     #else /* 1 */ 
  927. /* under construction !*/
  928. /* under construction !*/
  929. /* under construction !*/
  930. /* under construction !*/
  931. /* under construction !*/
  932. /* under construction !*/
  933. /* under construction !*/
  934. /* under construction !*/
  935. /* under construction !*/
  936. /* under construction !*/
  937. /* under construction !*/
  938. /* under construction !*/
  939. /* under construction !*/
  940. /* under construction !*/
  941. /* under construction !*/
  942.     #endif /* 1 */ 
  943.     }
  944. }
  945. // #if 0
  946. /*****************************************************************************
  947.  * FUNCTION
  948.  *  PlayAudioMidiStream
  949.  * DESCRIPTION
  950.  *  
  951.  * PARAMETERS
  952.  *  audioBuffer     [?]         
  953.  *  length          [IN]        
  954.  *  style           [IN]        
  955.  * RETURNS
  956.  *  void
  957.  *****************************************************************************/
  958. void PlayAudioMidiStream(U8 *audioBuffer, U16 length, U8 style)
  959. {
  960. #ifdef MMI_ON_HARDWARE_P
  961.     /*----------------------------------------------------------------*/
  962.     /* Local Variables                                                */
  963.     /*----------------------------------------------------------------*/
  964.     U8 format = MEDIA_SMF;  /* AUD_MEDIA_SMF; */
  965.     /*----------------------------------------------------------------*/
  966.     /* Code Body                                                      */
  967.     /*----------------------------------------------------------------*/
  968.     PlayAudioStream(audioBuffer, length, format, style);
  969. #endif /* MMI_ON_HARDWARE_P */ 
  970. }
  971. /*****************************************************************************
  972.  * FUNCTION
  973.  *  PlayAudioWavStream
  974.  * DESCRIPTION
  975.  *  
  976.  * PARAMETERS
  977.  *  audioBuffer     [?]         
  978.  *  length          [IN]        
  979.  *  style           [IN]        
  980.  * RETURNS
  981.  *  void
  982.  *****************************************************************************/
  983. void PlayAudioWavStream(U8 *audioBuffer, U16 length, U8 style)
  984. {
  985. #ifdef MMI_ON_HARDWARE_P
  986.     /*----------------------------------------------------------------*/
  987.     /* Local Variables                                                */
  988.     /*----------------------------------------------------------------*/
  989.     U8 format = MEDIA_WAV;  /* AUD_MEDIA_WAV; */
  990.     /*----------------------------------------------------------------*/
  991.     /* Code Body                                                      */
  992.     /*----------------------------------------------------------------*/
  993.     PlayAudioStream(audioBuffer, length, format, style);
  994. #endif /* MMI_ON_HARDWARE_P */ 
  995. }
  996. /*****************************************************************************
  997.  * FUNCTION
  998.  *  PlayAudioDviStream
  999.  * DESCRIPTION
  1000.  *  
  1001.  * PARAMETERS
  1002.  *  audioBuffer     [?]         
  1003.  *  length          [IN]        
  1004.  *  style           [IN]        
  1005.  * RETURNS
  1006.  *  void
  1007.  *****************************************************************************/
  1008. void PlayAudioDviStream(U8 *audioBuffer, U16 length, U8 style)
  1009. {
  1010. #ifdef MMI_ON_HARDWARE_P
  1011.     /*----------------------------------------------------------------*/
  1012.     /* Local Variables                                                */
  1013.     /*----------------------------------------------------------------*/
  1014.     U8 format = MEDIA_DVI_ADPCM;    /* AUD_MEDIA_WAV; */
  1015.     /*----------------------------------------------------------------*/
  1016.     /* Code Body                                                      */
  1017.     /*----------------------------------------------------------------*/
  1018.     PlayAudioStream(audioBuffer, length, format, style);
  1019. #endif /* MMI_ON_HARDWARE_P */ 
  1020. }
  1021. /*****************************************************************************
  1022.  * FUNCTION
  1023.  *  PlayAudioStream
  1024.  * DESCRIPTION
  1025.  *  
  1026.  * PARAMETERS
  1027.  *  audioBuffer     [?]         
  1028.  *  length          [IN]        
  1029.  *  format          [IN]        
  1030.  *  style           [IN]        
  1031.  * RETURNS
  1032.  *  void
  1033.  *****************************************************************************/
  1034. void PlayAudioStream(U8 *audioBuffer, U16 length, U8 format, U8 style)
  1035. {
  1036. #if 1
  1037.     /*----------------------------------------------------------------*/
  1038.     /* Local Variables                                                */
  1039.     /*----------------------------------------------------------------*/
  1040.     /*----------------------------------------------------------------*/
  1041.     /* Code Body                                                      */
  1042.     /*----------------------------------------------------------------*/
  1043.     mdi_audio_play_string((void*)audioBuffer, length, format, style, NULL, NULL);
  1044. #else /* 1 */ 
  1045. /* under construction !*/
  1046. /* under construction !*/
  1047. /* under construction !*/
  1048. /* under construction !*/
  1049. /* under construction !*/
  1050. /* under construction !*/
  1051. /* under construction !*/
  1052. /* under construction !*/
  1053. /* under construction !*/
  1054. /* under construction !*/
  1055. /* under construction !*/
  1056. /* under construction !*/
  1057. /* under construction !*/
  1058. /* under construction !*/
  1059. /* under construction !*/
  1060. /* under construction !*/
  1061. #endif /* 1 */ 
  1062. }
  1063. /*****************************************************************************
  1064.  * FUNCTION
  1065.  *  StopAudioMidiStream
  1066.  * DESCRIPTION
  1067.  *  
  1068.  * PARAMETERS
  1069.  *  void
  1070.  * RETURNS
  1071.  *  void
  1072.  *****************************************************************************/
  1073. void StopAudioMidiStream(void)
  1074. {
  1075.     /*----------------------------------------------------------------*/
  1076.     /* Local Variables                                                */
  1077.     /*----------------------------------------------------------------*/
  1078.     /*----------------------------------------------------------------*/
  1079.     /* Code Body                                                      */
  1080.     /*----------------------------------------------------------------*/
  1081.     StopAudioStream();
  1082. }
  1083. /*****************************************************************************
  1084.  * FUNCTION
  1085.  *  StopAudioWavStream
  1086.  * DESCRIPTION
  1087.  *  
  1088.  * PARAMETERS
  1089.  *  void
  1090.  * RETURNS
  1091.  *  void
  1092.  *****************************************************************************/
  1093. void StopAudioWavStream(void)
  1094. {
  1095.     /*----------------------------------------------------------------*/
  1096.     /* Local Variables                                                */
  1097.     /*----------------------------------------------------------------*/
  1098.     /*----------------------------------------------------------------*/
  1099.     /* Code Body                                                      */
  1100.     /*----------------------------------------------------------------*/
  1101.     StopAudioStream();
  1102. }
  1103. /*****************************************************************************
  1104.  * FUNCTION
  1105.  *  StopAudioDviStream
  1106.  * DESCRIPTION
  1107.  *  
  1108.  * PARAMETERS
  1109.  *  void
  1110.  * RETURNS
  1111.  *  void
  1112.  *****************************************************************************/
  1113. void StopAudioDviStream(void)
  1114. {
  1115.     /*----------------------------------------------------------------*/
  1116.     /* Local Variables                                                */
  1117.     /*----------------------------------------------------------------*/
  1118.     /*----------------------------------------------------------------*/
  1119.     /* Code Body                                                      */
  1120.     /*----------------------------------------------------------------*/
  1121.     StopAudioStream();
  1122. }
  1123. /*****************************************************************************
  1124.  * FUNCTION
  1125.  *  StopAudioStream
  1126.  * DESCRIPTION
  1127.  *  
  1128.  * PARAMETERS
  1129.  *  void
  1130.  * RETURNS
  1131.  *  void
  1132.  *****************************************************************************/
  1133. void StopAudioStream(void)
  1134. {
  1135. #if 1
  1136.     /*----------------------------------------------------------------*/
  1137.     /* Local Variables                                                */
  1138.     /*----------------------------------------------------------------*/
  1139.     /*----------------------------------------------------------------*/
  1140.     /* Code Body                                                      */
  1141.     /*----------------------------------------------------------------*/
  1142.     mdi_audio_stop_string();
  1143. #else /* 1 */ 
  1144. /* under construction !*/
  1145. /* under construction !*/
  1146. /* under construction !*/
  1147. /* under construction !*/
  1148. /* under construction !*/
  1149. #endif /* 1 */ 
  1150. }
  1151. // #endif