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

📄 jma_media_resource.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 3 页
字号:
/*****************************************************************************
*  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_media_resource.c
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *   Use APIs in this file to manage the reource opened by Java.
 *
 * 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!
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
/* Java */
#include "jma_interface.h"
#include "jma_internal.h"

/* MDI */
#include "mdi_audio.h"
#include "ProfileGprots.h"
/*************************************************************************
 * Global Definition and Declaration
 *************************************************************************/
/* Mutex */
int j2me_media_mutex_cnt = 0;
module_type j2me_media_mutex_tid = MOD_NIL;

/* param */
kal_bool jma_audio_enable = KAL_FALSE;
kal_bool jma_media_enable = KAL_FALSE;
kal_bool is_vm_suspend_audio = KAL_FALSE;
kal_bool is_vm_suspend_media = KAL_FALSE;
kal_bool is_med_suspend_audio = KAL_FALSE;

/* Concurrent Resource */
#define JMA_MEDIA_DEVICE_NUM 20 
resource_mgr_struct jma_device[JMA_MEDIA_DEVICE_NUM];


/*************************************************************************
 * Function Declaration
 *************************************************************************/



/*****************************************************************************
 * FUNCTION
 *  jma_media_player_clear_parameter
 * DESCRIPTION
 *  This function is invoked by MMI
 * PARAMETERS
 *  void       
 * RETURNS
 *  void
 *****************************************************************************/
void jma_media_player_clear_parameter(kal_bool is_init)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MEDIA_PLAYER_CLEAR_PARAMETER);
    ASSERT(stack_int_get_active_module_id() == MOD_MMI);
    
    PARAM_CS_ENTER();
    if (is_init)
    {
        jma_media_enable = KAL_TRUE;
        jma_audio_enable = KAL_TRUE;
    }
    else
    {
        jma_media_enable = KAL_FALSE;
        jma_audio_enable = KAL_FALSE;
    }
    PARAM_CS_LEAVE();

    is_vm_suspend_audio = KAL_FALSE;
    is_vm_suspend_media = KAL_FALSE;
    is_med_suspend_audio = KAL_FALSE;

    /* Reset parameter */
    jma_audio_player_reset_parameter();
#ifdef SUPPORT_MMAPI
    jma_audio_recorder_reset_parameter();
    jma_video_player_reset_parameter();
#endif

    jma_reset_all_device();
}


/*****************************************************************************
 * FUNCTION
 *  jma_media_player_vm_notfy_suspend
 * DESCRIPTION
 *  This function is invoked by MMI when VM state is changed
 * PARAMETERS
 *  void       
 * RETURNS
 *  void
 *****************************************************************************/
void jma_media_player_vm_notfy_suspend(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MEDIA_PLAYER_VM_NOTIFY_SUSPEND);
    ASSERT(stack_int_get_active_module_id() == MOD_MMI);
    ASSERT(is_vm_suspend_media == KAL_FALSE);
    
    is_vm_suspend_media = KAL_TRUE;
    
    PARAM_CS_ENTER();
    jma_media_enable = KAL_FALSE;
    PARAM_CS_LEAVE();
    
    jma_media_player_cs_check_and_enter(KAL_FALSE);

#ifdef SUPPORT_MMAPI    
    for (i = 0; i < JMA_MEDIA_DEVICE_NUM; i++)
    {
        switch (jma_device[i].device_type)
        {        
            case JAVA_MEDIA_AUDIO_RECORDER:
            case JAVA_MEDIA_ANIMA_PLAYER_DEVICE:
                ASSERT(jma_device[i].suspend!= NULL);
                jma_device[i].suspend(jma_device[i].handle);
                break;
        #if !defined (J2ME_SHARE_MED_EXT_MEM) && (defined(__MMI_VIDEO_RECORDER__) || defined(__MMI_VIDEO_PLAYER__) || defined(__MMI_CAMERA__))               
            case JAVA_MEDIA_CAM_PLAYER_DEVICE:
            case JAVA_MEDIA_MPEG_PLAYER_DEVICE: 
            case JAVA_MEDIA_STREAM_PLAYER_DEVICE:
            case JAVA_MEDIA_MPEG_RECORDER_DEVICE: 
                mdi_video_enable_mimic_task(MOD_J2ME);
                ASSERT(jma_device[i].suspend!= NULL);
                jma_device[i].suspend(jma_device[i].handle);
                mdi_video_disable_mimic_task();
                break;
        #endif /* !defined (J2ME_SHARE_MED_EXT_MEM) && (defined(__MMI_VIDEO_RECORDER__) || defined(__MMI_VIDEO_PLAYER__) || defined(__MMI_CAMERA__))                */   
            default:
                break;
        }
    }
#endif /* SUPPORT_MMAPI */    
    jma_media_player_cs_leave();

}


/*****************************************************************************
 * FUNCTION
 *  jma_media_player_vm_notfy_resume
 * DESCRIPTION
 *  This function is invoked by MMI when VM state is changed
 * PARAMETERS
 *  void       
 * RETURNS
 *  void
 *****************************************************************************/
void jma_media_player_vm_notfy_resume(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MEDIA_PLAYER_VM_NOTIFY_RESUME);
    ASSERT(stack_int_get_active_module_id() == MOD_MMI);
    ASSERT(is_vm_suspend_media == KAL_TRUE);

    is_vm_suspend_media = KAL_FALSE;    

    jma_media_player_cs_check_and_enter(KAL_FALSE);

#ifdef SUPPORT_MMAPI     
    for (i = 0; i < JMA_MEDIA_DEVICE_NUM; i++)
    {            
        switch (jma_device[i].device_type)
        {
            case JAVA_MEDIA_AUDIO_RECORDER:
            case JAVA_MEDIA_ANIMA_PLAYER_DEVICE:
                ASSERT(jma_device[i].resume!= NULL);
                jma_device[i].resume(jma_device[i].handle);  
                break;
        #if !defined (J2ME_SHARE_MED_EXT_MEM) && (defined(__MMI_VIDEO_RECORDER__) || defined(__MMI_VIDEO_PLAYER__) || defined(__MMI_CAMERA__))               
            case JAVA_MEDIA_CAM_PLAYER_DEVICE:
            case JAVA_MEDIA_MPEG_PLAYER_DEVICE: 
            case JAVA_MEDIA_STREAM_PLAYER_DEVICE:
            case JAVA_MEDIA_MPEG_RECORDER_DEVICE:    
                mdi_video_enable_mimic_task(MOD_J2ME);
                ASSERT(jma_device[i].resume!= NULL);
                jma_device[i].resume(jma_device[i].handle);
                mdi_video_disable_mimic_task();   
                break;
        #endif /* !defined (J2ME_SHARE_MED_EXT_MEM) && (defined(__MMI_VIDEO_RECORDER__) || defined(__MMI_VIDEO_PLAYER__) || defined(__MMI_CAMERA__))                */     
            default:
                break;
        }
    }
#endif /* SUPPORT_MMAPI */
    
    jma_media_player_cs_leave();

    PARAM_CS_ENTER();
    jma_media_enable = KAL_TRUE;
    PARAM_CS_LEAVE();
}



/*****************************************************************************
 * FUNCTION
 *  jma_media_player_vm_notfy_terminate
 * DESCRIPTION
 *  This function is invoked by MMI when VM state is changed
 * PARAMETERS
 *  void       
 * RETURNS
 *  void
 *****************************************************************************/
void jma_media_player_vm_notfy_terminate(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MEDIA_PLAYER_VM_NOTIFY_TERMINATE);
    ASSERT(stack_int_get_active_module_id() == MOD_MMI);
    
    PARAM_CS_ENTER();
    jma_media_enable = KAL_FALSE;
    PARAM_CS_LEAVE();

    jma_media_player_cs_check_and_enter(KAL_FALSE);

#ifdef SUPPORT_MMAPI     
    for (i = 0; i < JMA_MEDIA_DEVICE_NUM; i++)
    {            
        switch (jma_device[i].device_type)
        {
            case JAVA_MEDIA_AUDIO_RECORDER:
            case JAVA_MEDIA_ANIMA_PLAYER_DEVICE:
                ASSERT(jma_device[i].close!= NULL);
                jma_device[i].close(jma_device[i].handle);
                break;      
        #if !defined (J2ME_SHARE_MED_EXT_MEM) && (defined(__MMI_VIDEO_RECORDER__) || defined(__MMI_VIDEO_PLAYER__) || defined(__MMI_CAMERA__))               
            case JAVA_MEDIA_CAM_PLAYER_DEVICE:
            case JAVA_MEDIA_MPEG_PLAYER_DEVICE: 
            case JAVA_MEDIA_STREAM_PLAYER_DEVICE:
            case JAVA_MEDIA_MPEG_RECORDER_DEVICE:    
                mdi_video_enable_mimic_task(MOD_J2ME);
                ASSERT(jma_device[i].close!= NULL);
                jma_device[i].close(jma_device[i].handle);
                mdi_video_disable_mimic_task();   
                break;
        #endif /* !defined (J2ME_SHARE_MED_EXT_MEM) && (defined(__MMI_VIDEO_RECORDER__) || defined(__MMI_VIDEO_PLAYER__) || defined(__MMI_CAMERA__)) */      
            default:
                break;
        }

⌨️ 快捷键说明

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