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

📄 med_global.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 3 页
字号:
#else 
#define MAX_OSD_BUFFER_LEN       (0)
#endif 
#endif /* __MED_MJPG_MOD__ */ 
#define MED_INT_MEM_SIZE   (MAX_IMG_DEC_INT_MEM_SIZE+MEM_OVERHEAD)
#define MED_EXT_MEM_SIZE   (MAX_CAM_FILE_BUFFER_LEN+MAX_OSD_BUFFER_LEN+MAX_IMG_DEC_EXT_MEM_SIZE+VRSI_MEM_SIZE+AUD_PROC_MEM_SIZE+MEM_OVERHEAD)
#define MAX_PROG_JPG_DEC_EXT_MEM_SIZE   (MAX_CAM_FILE_BUFFER_LEN+MAX_IMG_DEC_EXT_MEM_SIZE-AUD_MELODY_BUFFER_LEN-MAX_IMG_DEC_FILE_BUFFER_LEN)

#else /* no CAMERA_MODULE nor ISP */

#define MAX_CAM_FILE_BUFFER_LEN   (0)   /* Image file buffer size for camera capture */
#ifdef SLIM_AUDIO_PROFILE
#define AUD_MELODY_BUFFER_LEN     (512) /* 100KB */
#else 
#define AUD_MELODY_BUFFER_LEN     (100*1024)    /* 100KB */
#endif 
   /* internal memory size */
#if defined(MMS_SUPPORT) && defined(JPG_ENCODE)
#if MAX_IMG_ENC_INT_MEM_SIZE > MAX_IMG_DEC_INT_MEM_SIZE
#define MED_INT_MEM_SIZE   (MAX_IMG_ENC_INT_MEM_SIZE+MEM_OVERHEAD)
#else 
#define MED_INT_MEM_SIZE   (MAX_IMG_DEC_INT_MEM_SIZE+MEM_OVERHEAD)
#endif 
#elif (defined(DEDI_AMR_REC_BUFFER) && (MAX_IMG_DEC_INT_MEM_SIZE < 6108))
#define MED_INT_MEM_SIZE   (6108+MEM_OVERHEAD)
#else 
#define MED_INT_MEM_SIZE   (MAX_IMG_DEC_INT_MEM_SIZE+MEM_OVERHEAD)
#endif 
   /* external memory size */
#if defined(MMS_SUPPORT) && defined(JPG_ENCODE)
#define MED_EXT_MEM_SIZE   (750*1024+MEM_OVERHEAD+M3D_PARSE_BUFFER_SIZE)
#else 
#define MED_EXT_MEM_SIZE   (MAX_IMG_DEC_EXT_MEM_SIZE+MAX_IMG_DEC_FILE_BUFFER_LEN+AUD_MELODY_BUFFER_LEN+VRSI_MEM_SIZE+AUD_PROC_MEM_SIZE+MEM_OVERHEAD+M3D_PARSE_BUFFER_SIZE)
#endif 

#define MAX_PROG_JPG_DEC_EXT_MEM_SIZE   (MAX_IMG_DEC_EXT_MEM_SIZE+VRSI_MEM_SIZE)

#endif 

/* VRSI share external memory with camera. If external memory is less, redefine it. */
#if defined(VRSI_ENABLE)
#if ( MED_EXT_MEM_SIZE < VRSI_MEM_CHECK_SIZE )
#undef MED_EXT_MEM_SIZE
#define MED_EXT_MEM_SIZE VRSI_MEM_CHECK_SIZE
#endif /* #if ( MED_EXT_MEM_SIZE < VRSI_MEM_CHECK_SIZE ) */
#endif /* #if defined(VRSI_ENABLE) */


/*==== MACROS ========*/

#ifdef PRODUCTION_RELEASE
#define MED_FUNC_ENTRY(X)
#define MED_MEM_INFO(x,y,z)
#else /* PRODUCTION_RELEASE */ 
#define __AUD_TRACE_ON__
#define __CAM_TRACE_ON__
#define __IMG_TRACE_ON__
#define __VID_TRACE_ON__
#define __CTM_TRACE_ON__
#define __WEBCAM_TRACE_ON__
#define __TVO_TRACE_ON__
#define __BT_A2DP_TRACE_ON__
#define __BT_HFP_TRACE_ON__
#define MED_FUNC_ENTRY(X)    kal_trace(TRACE_FUNC, X);
#define MED_MEM_INFO(x,y,z)    kal_trace(TRACE_INFO, MEM_INFO, x, y, z);
#endif /* PRODUCTION_RELEASE */ 

#ifdef __AUD_TRACE_ON__
#define AUD_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_1, X);
#define AUD_STATE_TRACE(s)    kal_trace(TRACE_STATE, AUD_STATE, s);
#define AUD_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_1, AUD_CHECK_VALUE, x, y, z);
#define AUD_TRACE_VOLUME(x,y,z)    kal_trace(TRACE_GROUP_1, AUD_CHECK_VOLUME, x, y, z);
#define AUD_TRACE_PATH(x,y,z)    kal_trace(TRACE_GROUP_1, AUD_CHECK_PATH, x, y, z);
#define AUD_WAIT_EVT(x,y)        kal_trace(TRACE_GROUP_1, AUD_WAIT_EVT_TRC, x, y);
#define AUD_SET_EVT(x,y)        kal_trace(TRACE_GROUP_1, AUD_SET_EVT_TRC, x, y);
#define AUD_RESULT_TRACE(x,y,z)    kal_trace(TRACE_INFO, AUD_RESULT, x, y, z);
#else /* __AUD_TRACE_ON__ */ 
#define AUD_FUNC_ENTRY(X)
#define AUD_STATE_TRACE(s)
#define AUD_VALUE_TRACE(x,y,z)
#define AUD_TRACE_VOLUME(x,y,z)
#define AUD_TRACE_PATH(x,y,z)
#define AUD_WAIT_EVT(x,y)
#define AUD_SET_EVT(x,y)
#define AUD_RESULT_TRACE(x,y,z)
#endif /* __AUD_TRACE_ON__ */ 

#ifdef __CAM_TRACE_ON__
#define CAM_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_2, X);
#define CAM_STATE_TRACE(s)    kal_trace(TRACE_STATE, CAM_STATE, s);
#define CAM_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_2, CAM_CHECK_VALUE, x, y, z);
#define CAM_WAIT_EVT(x,y)        kal_trace(TRACE_GROUP_2, CAM_WAIT_EVT_TRC, x, y);
#define CAM_SET_EVT(x,y)        kal_trace(TRACE_GROUP_2, CAM_SET_EVT_TRC, x, y);
#define CAM_RESULT_TRACE(x,y,z)    kal_trace(TRACE_INFO, CAM_RESULT, x, y, z);
#define CAM_BUFFER_TRACE(x)     kal_trace(TRACE_INFO,CAM_BUFFER,x);
#define CAM_QR_RESULT_TRACE(x)  kal_trace(TRACE_INFO,CAM_QR_RESULT,x);
#define CAM_CLOSE_IMAGE_RESULT_TRACE(x) kal_trace(TRACE_INFO,CAM_CLOSE_IMG_RESULT,x);
#else /* __CAM_TRACE_ON__ */ 
#define CAM_FUNC_ENTRY(X)
#define CAM_STATE_TRACE(s)
#define CAM_VALUE_TRACE(x,y,z)
#define CAM_WAIT_EVT(x,y)
#define CAM_SET_EVT(x,y)
#define CAM_RESULT_TRACE(x,y,z)
#define CAM_BUFFER_TRACE(x)     
#define CAM_QR_RESULT_TRACE(x)  
#define CAM_CLOSE_IMAGE_RESULT_TRACE(x) 
#endif /* __CAM_TRACE_ON__ */ 

#ifdef __IMG_TRACE_ON__
#define IMG_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_3, X);
#define IMG_STATE_TRACE(s)    kal_trace(TRACE_STATE, IMG_STATE, s);
#define IMG_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_3, IMG_CHECK_VALUE, x, y, z);
#define IMG_WAIT_EVT(x,y)        kal_trace(TRACE_GROUP_3, IMG_WAIT_EVT_TRC, x, y);
#define IMG_SET_EVT(x,y)        kal_trace(TRACE_GROUP_3, IMG_SET_EVT_TRC, x, y);
#define IMG_RESULT_TRACE(x,y,z)    kal_trace(TRACE_INFO, IMG_RESULT, x, y, z);
#else /* __IMG_TRACE_ON__ */ 
#define IMG_FUNC_ENTRY(X)
#define IMG_STATE_TRACE(s)
#define IMG_VALUE_TRACE(x,y,z)
#define IMG_WAIT_EVT(x,y)
#define IMG_SET_EVT(x,y)
#define IMG_RESULT_TRACE(x,y,z)
#endif /* __IMG_TRACE_ON__ */ 

#ifdef __VID_TRACE_ON__
#define VID_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_4, X);
#define VID_STATE_TRACE(s)    kal_trace(TRACE_STATE, VID_STATE, s);
#define VID_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_4, VID_CHECK_VALUE, x, y, z);
#define VID_FILE_TRACE(a,b,c,d,e,f)    kal_trace(TRACE_GROUP_4, VID_FILE_INFO, a, b, c, d, e, f);
#define VID_VIS_ERROR_TRACE(x,y)    {kal_trace(TRACE_INFO, VID_VIS_ERROR, x, y);                          \
                                                               { kal_uint32 d1, d2, d3, d4, d5;           \
                                                                  VIDEO_DbgInfo(&d1, &d2, &d3, &d4, &d5); \
                                                                  kal_trace(TRACE_INFO, VID_VIS_DBG_INFO, d1, d2, d3, d4, d5, __LINE__);}}
#define VID_AUD_ERROR_TRACE(x,y)    kal_trace(TRACE_INFO, VID_AUD_ERROR, x, y);
#define VID_PARSE_ERROR_TRACE(x,y)    {kal_trace(TRACE_INFO, VID_PARSE_ERROR, x, y);                      \
                                                               { kal_uint32 d1, d2, d3, d4, d5;           \
                                                                  VIDEO_DbgInfo(&d1, &d2, &d3, &d4, &d5); \
                                                                  kal_trace(TRACE_INFO, VID_VIS_DBG_INFO, d1, d2, d3, d4, d5, __LINE__);}}
#define VID_FSAL_ERROR_TRACE(x,y)    {kal_trace(TRACE_INFO, VID_FSAL_ERROR, x, y);                        \
                                                               { kal_uint32 d1, d2, d3, d4, d5;           \
                                                                  VIDEO_DbgInfo(&d1, &d2, &d3, &d4, &d5); \
                                                                  kal_trace(TRACE_INFO, VID_VIS_DBG_INFO, d1, d2, d3, d4, d5, __LINE__);}}
#define VID_RESULT_TRACE(x,y,z)    kal_trace(TRACE_INFO, VID_RESULT, x, y, z);
#define VID_WAIT_EVT(x,y)        kal_trace(TRACE_GROUP_4, VID_WAIT_EVT_TRC, x, y);
#define VID_SET_EVT(x,y)        kal_trace(TRACE_GROUP_4, VID_SET_EVT_TRC, x, y);
#else /* __VID_TRACE_ON__ */ 
#define VID_FUNC_ENTRY(X)
#define VID_STATE_TRACE(s)
#define VID_VALUE_TRACE(x,y,z)
#define VID_FILE_TRACE(a,b,c,d,e,f)
#define VID_VIS_ERROR_TRACE(x,y)
#define VID_AUD_ERROR_TRACE(x,y)
#define VID_PARSE_ERROR_TRACE(x,y)
#define VID_FSAL_ERROR_TRACE(x,y)
#define VID_RESULT_TRACE(x,y,z)
#define VID_WAIT_EVT(x,y)
#define VID_SET_EVT(x,y)
#endif /* __VID_TRACE_ON__ */ 

#ifdef __WEBCAM_TRACE_ON__
#define WEBCAM_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_6, X);
#define WEBCAM_STATE_TRACE(s)    kal_trace(TRACE_STATE, WEBCAM_STATE, s);
#define WEBCAM_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_6, WEBCAM_CHECK_VALUE, x, y, z);
#define WEBCAM_WAIT_EVT(x,y)        kal_trace(TRACE_GROUP_6, WEBCAM_WAIT_EVT_TRC, x, y);
#define WEBCAM_SET_EVT(x,y)        kal_trace(TRACE_GROUP_6, WEBCAM_SET_EVT_TRC, x, y);
#define WEBCAM_RESULT_TRACE(x,y,z)    kal_trace(TRACE_INFO, WEBCAM_RESULT, x, y, z);
#else /* __WEBCAM_TRACE_ON__ */ 
#define WEBCAM_FUNC_ENTRY(X)
#define WEBCAM_STATE_TRACE(s)
#define WEBCAM_VALUE_TRACE(x,y,z)
#define WEBCAM_WAIT_EVT(x,y)
#define WEBCAM_SET_EVT(x,y)
#define WEBCAM_RESULT_TRACE(x,y,z)
#endif /* __WEBCAM_TRACE_ON__ */ 

#ifdef __TVO_TRACE_ON__
#define TVO_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_5, X);
#define TVO_STATE_TRACE(s)    kal_trace(TRACE_STATE, TVO_STATE, s);
#define TVO_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_5, TVO_CHECK_VALUE, x, y, z);
#define TVO_WAIT_EVT(x,y)        kal_trace(TRACE_GROUP_5, TVO_WAIT_EVT_TRC, x, y);
#define TVO_SET_EVT(x,y)        kal_trace(TRACE_GROUP_5, TVO_SET_EVT_TRC, x, y);
#define TVO_RESULT_TRACE(x,y,z)    kal_trace(TRACE_INFO, TVO_RESULT, x, y, z);
#else /* __TVO_TRACE_ON__ */ 
#define TVO_FUNC_ENTRY(X)
#define TVO_STATE_TRACE(s)
#define TVO_VALUE_TRACE(x,y,z)
#define TVO_WAIT_EVT(x,y)
#define TVO_SET_EVT(x,y)
#define TVO_RESULT_TRACE(x,y,z)
#endif /* __TVO_TRACE_ON__ */ 

#ifdef __CTM_TRACE_ON__
#define CTM_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_1, X);
#define CTM_STATE_TRACE(s)    kal_trace(TRACE_STATE, CTM_STATE, s);
#define CTM_VALUE_TRACE(x)    kal_trace(TRACE_GROUP_1, CTM_CHECK_VALUE, x);
#define CTM_VALUES_TRACE(x,y,z)    kal_trace(TRACE_GROUP_1, CTM_CHECK_VALUES, x, y, z);
#define CTM_READ_TEXT_TRACE1(x,y,z)    kal_trace(TRACE_GROUP_1, CTM_CHECK_READ_TEXT_STEP_1, x, y, z);
#define CTM_READ_TEXT_TRACE2(x,y,z)    kal_trace(TRACE_GROUP_1, CTM_CHECK_READ_TEXT_STEP_2, x, y, z);
#else /* __CTM_TRACE_ON__ */ 
#define CTM_FUNC_ENTRY(X)
#define CTM_STATE_TRACE(s)
#define CTM_VALUE_TRACE(x)
#define CTM_VALUES_TRACE(x,y,z)
#define CTM_READ_TEXT_TRACE1(x,y,z)
#define CTM_READ_TEXT_TRACE2(x,y,z)
#endif /* __CTM_TRACE_ON__ */ 

#ifdef __BT_A2DP_TRACE_ON__
#define AUD_BT_A2DP_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_1, X);
#define AUD_BT_A2DP_FUNC_ENTRY1(F, x)    kal_trace(TRACE_GROUP_1, F, x);
#define AUD_BT_A2DP_FUNC_ENTRY2(F, x, y)    kal_trace(TRACE_GROUP_1, F, x, y);
#define AUD_BT_A2DP_STATE_TRACE(s)    kal_trace(TRACE_STATE, AUD_BT_A2DP_STATE, s);
#define AUD_BT_A2DP_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_1, AUD_BT_A2DP_CHECK_VALUE, x, y, z);
#define AUD_BT_A2DP_FUNC_TRACE1(F,x)    kal_trace(TRACE_GROUP_1, F,x);
#define AUD_BT_A2DP_FUNC_TRACE2(F,x,y)    kal_trace(TRACE_GROUP_1, F,x,y);
#define AUD_BT_A2DP_FUNC_TRACE3(F,x,y,z)    kal_trace(TRACE_GROUP_1, F,x,y,z);
#else /* __BT_A2DP_TRACE_ON__ */ 
#define AUD_BT_A2DP_FUNC_ENTRY(X)
#define AUD_BT_A2DP_FUNC_ENTRY1(F,x)
#define AUD_BT_A2DP_FUNC_ENTRY2(F,x,y)
#define AUD_BT_A2DP_STATE_TRACE(s)
#define AUD_BT_A2DP_VALUE_TRACE(x,y,z)
#define AUD_BT_A2DP_FUNC_TRACE1(F,x)
#define AUD_BT_A2DP_FUNC_TRACE2(F,x,y)
#define AUD_BT_A2DP_FUNC_TRACE3(F,x,y,z)
#endif /* __BT_A2DP_TRACE_ON__ */ 

#ifdef __BT_HFP_TRACE_ON__
#define AUD_BT_HFP_FUNC_ENTRY(X)    kal_trace(TRACE_GROUP_1, X);
#define AUD_BT_HFP_FUNC_ENTRY1(F, x)    kal_trace(TRACE_GROUP_1, F, x);
#define AUD_BT_HFP_FUNC_ENTRY2(F, x, y)    kal_trace(TRACE_GROUP_1, F, x, y);
#define AUD_BT_HFP_FUNC_ENTRY3(F, x, y, z)    kal_trace(TRACE_GROUP_1, F, x, y, z);
#define AUD_BT_HFP_STATE_TRACE(s)    kal_trace(TRACE_STATE, AUD_BT_HFP_STATE, s);
#define AUD_BT_HFP_VALUE_TRACE(x,y,z)    kal_trace(TRACE_GROUP_1, AUD_BT_HFP_CHECK_VALUE, x, y, z);
#define AUD_BT_HFP_FUNC_TRACE1(F,x)    kal_trace(TRACE_GROUP_1, F,x);
#define AUD_BT_HFP_FUNC_TRACE2(F,x,y)    kal_trace(TRACE_GROUP_1, F,x,y);
#define AUD_BT_HFP_FUNC_TRACE3(F,x,y,z)    kal_trace(TRACE_GROUP_1, F,x,y,z);
#else /* __BT_HFP_TRACE_ON__ */ 
#define AUD_BT_HFP_FUNC_ENTRY(X)
#define AUD_BT_HFP_FUNC_ENTRY1(F,x)
#define AUD_BT_HFP_FUNC_ENTRY2(F,x,y)
#define AUD_BT_HFP_FUNC_ENTRY3(F, x, y, z)
#define AUD_BT_HFP_STATE_TRACE(s)
#define AUD_BT_HFP_VALUE_TRACE(x,y,z)
#define AUD_BT_HFP_FUNC_TRACE1(F,x)
#define AUD_BT_HFP_FUNC_TRACE2(F,x,y)
#define AUD_BT_HFP_FUNC_TRACE3(F,x,y,z)
#endif /* __BT_HFP_TRACE_ON__ */ 

#ifndef MAX
#define MAX(a,b) (a>b)? a:b
#endif 
#ifndef MIN
#define MIN(a,b) (a<b)? a:b
#endif 

/* audio */
#define AUD_ENTER_STATE(_s_) AUD_STATE_TRACE(_s_)\
                              (aud_context_p->state = _s_)

#define AUD_IN_STATE(_s_) (aud_context_p->state == _s_)
#ifdef __MED_CAM_MOD__
/* camera */
#define CAM_ENTER_STATE(_s_) CAM_STATE_TRACE(_s_)\
                              (cam_context_p->state = _s_)

#define CAM_IN_STATE(_s_) (cam_context_p->state == _s_)
#endif /* __MED_CAM_MOD__ */ 

#ifdef __MED_IMG_MOD__
/* image */
#define IMG_ENTER_STATE(_s_) IMG_STATE_TRACE(_s_)\
                              (img_context_p->state = _s_)

#define IMG_IN_STATE(_s_) (img_context_p->state == _s_)
#endif /* __MED_IMG_MOD__ */ 

#if defined (__MED_VID_MOD__) || defined(__MED_MJPG_MOD__)
/* video */
// #define AUDIO_SYNC_WITH_VISUAL /* audio play sync with visual play */
#define VID_ENTER_STATE(_s_) VID_STATE_TRACE(_s_)\
                              (vid_context_p->state = _s_)
#define VID_AUD_ENTER_STATE(_s_) AUD_STATE_TRACE(_s_)\
                              (vid_context_p->aud_state = _s_)

#define VID_IN_STATE(_s_) (vid_context_p->state == _s_)
#define VID_AUD_IN_STATE(_s_) (vid_context_p->aud_state == _s_)
#endif /* defined (__MED_VID_MOD__) || defined(__MED_MJPG_MOD__) */ 

#if defined (__MED_WEBCAM_MOD__)
/* web camera */
#define WEBCAM_ENTER_STATE(_s_)  WEBCAM_STATE_TRACE(_s_)\
                              (webcam_context_p->state = _s_)

#define WEBCAM_IN_STATE(_s_) (webcam_context_p->state == _s_)
#endif /* defined (__MED_WEBCAM_MOD__) */ 

#if defined (__MED_TVO_MOD__)
/* tv output */
#define TVO_ENTER_STATE(_s_)  (tvo_context_p->state = _s_)

#define TVO_IN_STATE(_s_) (tvo_context_p->state == _s_)
#endif /* defined (__MED_TVO_MOD__) */ 

#ifdef __MED_CTM_MOD__
#define CTM_ENTER_STATE(_s_)  do { CTM_STATE_TRACE(_s_) \
                  aud_ctm_ctx.state = (_s_); } while(0)
#endif /* __MED_CTM_MOD__ */ 

#ifdef __MED_BT_A2DP_MOD__
#define AUD_BT_A2DP_ENTER_STATE(_s_) AUD_BT_A2DP_STATE_TRACE(_s_)\
                  (aud_bt_a2dp_ctx.state = _s_)

#define AUD_BT_A2DP_IN_STATE(_s_) (aud_bt_a2dp_ctx.state == _s_)
#endif /* __MED_BT_A2DP_MOD__ */ 

#ifdef __MED_BT_HFP_MOD__
#define AUD_BT_HFP_ENTER_STATE(_s_) AUD_BT_HFP_STATE_TRACE(_s_)\
                  (aud_bt_hfp_ctx.state = _s_)

#define AUD_BT_HFP_IN_STATE(_s_) (aud_bt_hfp_ctx.state == _s_)
#endif /* __MED_BT_HFP_MOD__ */ 
/*==== TYPES =========*/

typedef enum
{
    AUD_MEDIA_PLAY_MODE_NONE,
    AUD_VM_PLAY_AS_RING,
    AUD_VM_PLAY_AS_MEMO,
    AUD_MEDIA_PLAY_AS_RING,
    AUD_MEDIA_PLAY_AS_SONG,
    NUM_OF_MEDIA_PLAY_MODE
}
aud_media_play_mode_enum;

typedef enum
{
    AUD_ID,
    AUD_FILE,
    AUD_STRING,
    AUD_FM_RADIO,
    AUD_UNKNOWN_SOURCE_TYPE
}
aud_source_type_enum;

typedef enum
{
    MED_NVRAM_IDLE,
    MED_POWERON_READING_NVRAM,
    MED_POWERON_READING_NVRAM_FINISH
}
med_nvram_state_enum;

typedef enum
{
    MMA_PLAYER_IMY = 0,
    MMA_PLAYER_SMF_1,
    MMA_PLAYER_SMF_2,
    MMA_PLAYER_SMF_3,
    MMA_PLAYER_SMF_4,
    MMA_PLAYER_TONE_S1,
    MMA_PLAYER_TONE_S2,
    MMA_PLAYER_TONE_S3,
    MMA_PLAYER_TONE_S4,
    MMA_PLAYER_WAV_1,
    MMA_PLAYER_WAV_2,
    MMA_PLAYER_WAV_3,
    MMA_PLAYER_XWAV,
    MMA_PLAYER_AMR,
    MMA_PLAYER_DAF,
    MMA_PLAYER_AAC,
    MMA_PLAYER_AU,
    MMA_NO_OF_PLAYER
}
mma_player_enum;

#endif /* _MED_GLOBAL_H */ 

#endif /* MED_NOT_PRESENT */ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -