📄 jma_audio_recorder.c
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2001
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* jma_audio_recorder.c
*
* Project:
* --------
* Maui_Software
*
* Description:
* ------------
* This file defines native JMA audio recorder APIs
*
* Author:
* -------
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
/**
* @(#)jma_audio_recorder.c 1.00 05/11/30
*
* Copyright (c) 2003 Institute for Information Industry. All rights reserved.
*/
/*************************************************************************
* Include Header Files
*************************************************************************/
#include "MMI_features.h"
#include "jma_interface.h"
#include "jam_internal.h"
#include "jma_internal.h"
#include "app_buff_alloc.h"
#include "j2me_trace.h"
#include "kni.h"
#include "defaultLCDUI.h"
#include "resource_audio.h"
/* global includes */
#include "device.h"
#include "nvram_enums.h"
#include "nvram_struct.h"
#include "nvram_user_defs.h"
#include "nvram_data_items.h"
#include "custom_nvram_editor_data_item.h"
/* local includes */
#include "med_global.h"
#include "aud_defs.h"
#include "med_struct.h"
#include "med_api.h"
#include "med_context.h"
#include "aud_main.h"
/* MMI includes */
#include "GlobalDefs.h" /* Golbal Image and String ID. */
#include "SettingDefs.h" /* popup sound */
#include "SettingProfile.h" /* warning tone */
#include "wgui_categories_popup.h"
#include "Ucs2prot.h"
/* for jdi */
#include "mdi_datatype.h"
#include "mdi_audio.h"
#include "j2me_custom_option.h"
#include "FileManagerGProt.h"
/*************************************************************************
* Global Definition and Declaration
*************************************************************************/
#ifdef SUPPORT_MMAPI
/* Amr Recorder */
stack_timer_struct java_media_timer;
audio_recorder_struct audio_recorder;
#ifdef __MTK_TARGET__
extern kal_uint32 Media_GetRecordedTime(void);
#endif
/*****************************************************************************
* FUNCTION
* jma_audio_recorder_timer_expired
* DESCRIPTION
* This function handles if audio recorder timer is expired
* PARAMETERS
* mma_type [IN]
* java_recorder [IN]
* int reocrder(?)
* RETURNS
* void
*****************************************************************************/
void jma_audio_recorder_timer_expired(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_AUDIO_RECORDER_TIMER_EXPIRED, audio_recorder.id);
JMA_CS_ENTER(JMA_VOID);
/* Stop to record immediately */
jma_audio_recorder_commit(audio_recorder.id);
jvm_post_mma_event(MMA_EVENT_RECORD_STOPPED,
(kal_int16) audio_recorder.id, audio_recorder.current_time);
JMA_CS_LEAVE(JMA_VOID);
}
/*****************************************************************************
* FUNCTION
* jma_audio_file_record_finish_ind_handler
* DESCRIPTION
* This function handles audio files eom.
* PARAMETERS
* mma_type [IN]
* ilm_ptr [?]
* RETURNS
* kal_bool result
*****************************************************************************/
void jma_audio_recorder_record_result_hdlr(mdi_result result)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_AUDIO_RECORDER_RECORD_RESULT_HDLR, audio_recorder.state, result);
/* when stop record, a callback with MDI_AUDIO_TEMINATED will be called */
JMA_CS_ENTER(JMA_VOID);
if (result == MDI_AUDIO_DISC_FULL)
{
#ifdef __MTK_TARGET__
audio_recorder.current_time = (long)Media_GetRecordedTime();
kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, audio_recorder.current_time);
#endif
/* Restore audio recorder's state */
kal_trace(TRACE_GROUP_4, J2ME_MMA_STATE_TRANSITION, audio_recorder.state, JAVA_MEDIA_STATE_READY);
audio_recorder.state = JAVA_MEDIA_STATE_READY;
jvm_post_mma_event(MMA_EVENT_RECORD_STOPPED, (kal_int16) audio_recorder.id,
(kal_int64) audio_recorder.current_time);
}
JMA_CS_LEAVE(JMA_VOID);
}
/*****************************************************************************
* FUNCTION
* jma_wav_recorder_suspend_hdlr
* DESCRIPTION
* This function handles wav recorder suspend
* PARAMETERS
* hdlr [IN]
* RETURNS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -