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

📄 jma_internal.h

📁 java 1.1 gemini 08_16
💻 H
📖 第 1 页 / 共 2 页
字号:
    
#define JMA_CS_LEAVE(return_value)      \
    do                                  \
    {                                   \
        jma_media_player_cs_leave();    \
        return return_value;            \
    } while (0)


/* preview rotation */
#if defined(SENSOR_ON_BODY)
    #if defined(SENSOR_ROTATE_0)
        #define J2ME_PREVIEW_MAINLCD_ROTATE MDI_CAMERA_PREVIEW_ROTATE_0
    #elif defined(SENSOR_ROTATE_180)
        #define J2ME_PREVIEW_MAINLCD_ROTATE MDI_CAMERA_PREVIEW_ROTATE_180
    #else
            /* rotate 90, 270 not used yet */
        #define J2ME_PREVIEW_MAINLCD_ROTATE MDI_CAMERA_PREVIEW_ROTATE_0
    #endif
#elif defined(SENSOR_ON_COVER)
    #if defined(SENSOR_ROTATE_0)
        #define J2ME_PREVIEW_MAINLCD_ROTATE   MDI_CAMERA_PREVIEW_ROTATE_0
    #elif defined(SENSOR_ROTATE_180)
        #define J2ME_PREVIEW_MAINLCD_ROTATE   MDI_CAMERA_PREVIEW_ROTATE_180
    #else
            /* rotate 90, 270 not used yet */
        #define J2ME_PREVIEW_MAINLCD_ROTATE   MDI_CAMERA_PREVIEW_ROTATE_0
    #endif
#else /* not define SENSOR_LCATION */
    #if defined(SENSOR_ROTATE_0)
        #define J2ME_PREVIEW_MAINLCD_ROTATE   MDI_CAMERA_PREVIEW_ROTATE_0
    #elif defined(SENSOR_ROTATE_180)
        #define J2ME_PREVIEW_MAINLCD_ROTATE   MDI_CAMERA_PREVIEW_ROTATE_180
    #else
            /* rotate 90, 270 not used yet */
        #define J2ME_PREVIEW_MAINLCD_ROTATE   MDI_CAMERA_PREVIEW_ROTATE_0
    #endif				
#endif /* SENSOR_LOCATION */	


/*************************************************************************
 * Typedef Enum  
 ************************************************************************/


typedef enum
{
    JAVA_DRM_STATE_NORMAL_FILE = -1,     /* -1 */ /* Not DRM file */
    JAVA_DRM_STATE_NULL,                 /* 0 */ 
    JAVA_DRM_STATE_PERMITTED,            /* 1 */ 
    JAVA_DRM_STATE_CONSUMING,            /* 2 */
    JAVA_DRM_STATE_PAUSED,               /* 3 */
    JAVA_DRM_STATE_EXPIRED               /* 4 */
} java_drm_state_enum;

typedef enum
{
    JAVA_MED_DEVICE_NONACTIVE,
    JAVA_MED_DEVICE_ACTIVE
} java_med_device_status;


typedef enum
{
    JAVA_MEDIA_TIMER_AUDIO_RECORDER,    /* 0 */
    JAVA_MEDIA_TIMER_VIDEO_RECORDER,    /* 1 */
    JAVA_MEDIA_TIMER_STREAM_PLAYER,     /* 2 */
    JAVA_MEDIA_TIMER_PDL_PLAYER,        /* 3 */
    JAVA_MEDIA_TIMER_ANIMA_PLAYER,      /* 4 */
    JAVA_MEDIA_TIMER_ANIMA_PARSE_INFO   /* 5 */
} java_media_timer_type;

typedef enum
{
    JAVA_AUDIO_IMY = 0, /* 0 */
    JAVA_AUDIO_TONE_1,  /* 1 */
    JAVA_AUDIO_TONE_2,  /* 2 */
    JAVA_AUDIO_TONE_3,  /* 3 */
    JAVA_AUDIO_TONE_4,  /* 4 */
    JAVA_AUDIO_WAV_1,   /* 5 */
    JAVA_AUDIO_WAV_2,   /* 6 */
    JAVA_AUDIO_WAV_3,   /* 7 */
    JAVA_AUDIO_SINGLE,  /* 8 */
    JAVA_NO_OF_PLAYER   /* 9 */
} java_audio_index_enum;

typedef enum
{  
    JAVA_MEDIA_TONE_DEVICE,
    JAVA_MEDIA_TONESEQ_DEVICE,
    JAVA_MEDIA_MIDI_DEVICE,
    JAVA_MEDIA_WAV_DEVICE,
    JAVA_MEDIA_IMY_DEVICE,     
    JAVA_MEDIA_SINGLE_DEVICE,    /* 5 */
    JAVA_MEDIA_AUDIO_RECORDER,
    JAVA_MEDIA_CAM_PLAYER_DEVICE,
    JAVA_MEDIA_MPEG_PLAYER_DEVICE,  
    JAVA_MEDIA_MPEG_RECORDER_DEVICE, 
    JAVA_MEDIA_STREAM_PLAYER_DEVICE,   /* 10 */ 
    JAVA_MEDIA_ANIMA_PLAYER_DEVICE,
    JAVA_MEDIA_INVALID_DEVICE
} java_media_device_enum;

/*************************************************************************
 * Typedef struct  
 ************************************************************************/
typedef struct dynamic_player_node_t
{
    struct dynamic_player_node_t *next;
    struct dynamic_player_node_t *prev;
    kal_bool flag_on_list;
    kal_uint16 med_device_status;
    kal_uint32 forced_paused_time;
} mma_player_node;

typedef struct dynamic_player_list_t
{
    mma_player_node *head;
    java_media_device_enum player_type;
    mma_player_node *active_candidate;  /* To speed up selection and let listener feel better */
    kal_uint32 max_active_player_count;
    kal_uint32 player_count;
    kal_uint32 active_player_count;
} mma_player_list;

typedef struct audio_player_struct_t
{
    mma_player_node next_node;
    kal_int32 id; /* Java layer player id */
    kal_uint32 aud_id;  
    kal_uint32 sequence_id; 
    java_media_device_enum device_type;
    kal_int32 cache_handle;
    kal_int32 pitch;
    kal_int32 rate;
    kal_int32 tempo;

    /* Native information */
    kal_int32 handle;

    kal_int32 stoptime;          /* Saved stoptime if have */
    kal_int32 duration;
    kal_int32 current_time;
    kal_int32 play_finish_time;
    kal_int16 play_speed;
    kal_bool support_time_stretch;
    /* byte fields */
    kal_bool is_midi_device;      /* Open MIDI device for file or MIDIControl */

    java_media_state_enum state;
    kal_int32 current_cache_size;
    kal_uint8 volume;

    /* For Audio File Player: DRM */
    kal_uint32 drm_id;
    java_drm_state_enum drm_state;

    kal_bool is_setstoptime;
    kal_bool is_setpitch;
    kal_bool is_setrate;
    kal_bool is_settempo;
    kal_bool is_need_reset_time; /* Only for midi data player */
    mma_player_struct player;
} audio_player_struct;

#ifdef SUPPORT_MMAPI
typedef struct 
{
    kal_bool set_display_location;
    kal_bool set_display_size;
    kal_bool is_full_screen;
    kal_bool is_visible;
    kal_int32 offset_x;
    kal_int32 offset_y;
    kal_int32 width;
    kal_int32 height;    
}video_ctrl_struct;


typedef struct 
{
    kal_uint32 delay_time;
    kal_uint32 current_frame;
    kal_uint32 start_tick;
    kal_uint32 current_tick;

    /* For the mapping between time and frame */
    kal_uint32 frame_number; 

    /* IMPORTANT: The type MUST syncronize with the unit size of jvm_malloc() */
    kal_uint32 *time_index;
    kal_uint32 time_index_length;
} anima_info_struct;


typedef struct video_player_struct_t
{
    int id;
    java_device_enum device_type;
    kal_int64 duration;
    kal_uint64 stoptime;
    kal_uint64 current_time;
    kal_uint64 record_size_limit; /* Video Record size limit */    

    /* For Audio File Player: DRM */
    kal_uint32 drm_id;
    java_drm_state_enum drm_state;
    
    java_media_state_enum state;
    kal_uint8 volume;
    kal_bool progressive_dl;    /* Progressive download */
    kal_wchar filename[J2ME_PATH_BUFFER_SIZE];
    kal_uint8 *buffer;
    kal_uint32 buffer_length;
    kal_int32 video_width;
    kal_int32 video_height;
    kal_int16 play_speed;
    mdi_video_track_enum track; 
    kal_int32 cache_handle;
    mdi_video_stream_type_enum stream_type;
    kal_bool need_redraw; /* For animation player */
    kal_bool seek_error; /* For video player */
    kal_bool is_double_buffer;
    kal_bool is_stream_opened;    /* For streaming player */
    kal_bool is_seekable;         /* For streaming player */
    kal_bool is_play_requested;   /* For streaming player: set at play(), pause(), play_finish() */
    kal_uint64 play_finish_time;         /* For streaming player */    
    kal_wchar title_name[MDI_VIDEO_INFO_TITLE_CHAR_COUNT]; 
    /* For video player meta data */
    kal_char title_desc[MDI_VIDEO_CONTENT_BUFFER_SIZE];
    kal_char author_desc[MDI_VIDEO_CONTENT_BUFFER_SIZE];
    kal_char copyright_desc[MDI_VIDEO_CONTENT_BUFFER_SIZE];    
    kal_char date_desc[MDI_VIDEO_CONTENT_BUFFER_SIZE]; 
} video_player_struct;

typedef struct audio_recorder_struct_t
{
    java_media_state_enum state;
    med_type_enum format;
    kal_wchar filename[J2ME_PATH_BUFFER_SIZE];
    stack_timer_struct *record_timer;
    kal_int32 id;
    kal_int32 current_time;
} audio_recorder_struct;

#endif /* SUPPORT_MMAPI */ 

/*************************************************************************
 * Extern Global Variable
 *************************************************************************/
extern kal_mutexid J2ME_dynamic_player_mutex;
extern kal_mutexid J2ME_media_mutex;
extern kal_mutexid J2ME_param_mutex;
extern kal_bool jma_audio_enable;
extern kal_bool jma_media_enable;
extern kal_bool is_vm_suspend_audio;
extern kal_bool is_vm_suspend_media;

extern kal_bool is_med_suspend_audio;

#ifdef SUPPORT_MMAPI
extern video_ctrl_struct video_ctrl_info;
extern video_player_struct video_player;
extern anima_info_struct anima_info;
extern stack_timer_struct java_media_timer;
extern kal_uint32 preview_layer_flag;
extern kal_uint32 blt_layer_flag;
extern kal_uint16 *preview_buf_ptr;
extern GDI_HANDLE preview_layer_handle;
extern kal_int32 preview_buf_size;
#endif /* SUPPORT_MMAPI */ 

/*************************************************************************
 * Extern Global Function
 *************************************************************************/
/* Resource Switch */
extern void jma_media_player_clear_parameter(kal_bool is_init);
extern void jma_media_player_vm_notfy_suspend(void);
extern void jma_media_player_vm_notfy_resume(void);
extern void jma_media_player_vm_notfy_terminate(void);
extern void jma_audio_player_vm_notify_suspend(void);
extern void jma_audio_player_vm_notify_resume(void);
extern void jma_audio_player_do_terminate_job(jvm_state_enum src_state);
extern void jma_audio_player_interrupt_callback(MDI_RESULT result);
extern BOOL jma_audio_player_background_callback(MDI_RESULT result);
extern void jma_media_player_check_critical_section(void);
extern kal_bool jma_media_player_dependency_mutex_lock_no_wait(void);
extern void jma_media_player_dependency_mutex_unlock(void);

extern void jma_audio_player_register_callback(void);
extern void jma_audio_player_clear_callback(void);
extern void jma_reset_all_device(void);
extern void jma_register_device(
        kal_int32 device_type,
        kal_int32 handle,
        kal_int32 (*suspend) (kal_int32 handle),
        kal_int32 (*resume) (kal_int32 handle),
        kal_int32 (*close) (kal_int32 handle));
extern void jma_deregister_device(kal_int32 device_type, kal_int32 handle);

extern kal_bool jma_audio_player_is_single_player(kal_int32 mma_type);
extern kal_int32 jma_audio_suspend_hdlr(kal_int32 jplayer);
extern kal_int32 jma_audio_resume_hdlr(kal_int32 jplayer);
extern kal_int32 jma_audio_close_hdlr(kal_int32 jplayer);
extern void jma_audio_event_hdlr(kal_int32 handle, med_result_enum event);
extern void jma_audio_player_reset_parameter(void);
extern void jma_midi_player_deinit(void);


#ifdef SUPPORT_MMAPI
extern kal_int32 jma_audio_recorder_resume_hdlr(kal_int32 java_recorder);
extern kal_int32 jma_audio_recorder_suspend_hdlr(kal_int32 java_recorder);
extern kal_int32 jma_audio_recorder_close_hdlr(kal_int32 java_recorder);
extern void jma_audio_recorder_reset_parameter(void);
extern void jma_audio_recorder_timer_expired(void);

extern void jma_video_player_reset_parameter(void);
extern void jma_video_player_update_is_title_displayed(void);
extern void jma_video_player_reconfig_layer(void);
extern void jma_video_player_refine_display_info(void);
extern kal_bool jma_video_player_process_layer(void);

extern kal_int32 jma_anima_player_suspend_hdlr(kal_int32 java_player);
extern kal_int32 jma_anima_player_resume_hdlr(kal_int32 java_player);
extern kal_int32 jma_anima_player_close_hdlr(kal_int32 java_player);
extern void jma_anima_player_check_stop_time_cyclic(void);
extern void jma_anima_player_draw_frame_cyclic(void);
extern kal_bool jma_anima_player_refresh(kal_int32 java_player);
extern kal_bool jma_anima_player_parse_info_cyclic(void);


#if (!defined (J2ME_SHARE_MED_EXT_MEM)) && defined(__MMI_CAMERA__)
extern kal_int32 jma_cam_player_suspend_hdlr(kal_int32 java_player);
extern kal_int32 jma_cam_player_resume_hdlr(kal_int32 java_player);
extern kal_int32 jma_cam_player_close_hdlr(kal_int32 java_player);
extern kal_bool jma_cam_player_refresh(kal_int32 java_player);
extern kal_bool jma_cam_player_preview_stop_keep_layer(void); /* Do not free the layer */
#endif /* (!defined (J2ME_SHARE_MED_EXT_MEM)) && defined(__MMI_CAMERA__) */

#if (!defined (J2ME_SHARE_MED_EXT_MEM)) && defined(__MMI_VIDEO_RECORDER__)
extern kal_int32 jma_video_recorder_suspend_hdlr(kal_int32 java_player);
extern kal_int32 jma_video_recorder_resume_hdlr(kal_int32 java_player);
extern kal_int32 jma_video_recorder_close_hdlr(kal_int32 java_player);
extern void jma_video_recorder_timer_expired(void);
extern kal_bool jma_video_recorder_refresh(kal_int32 java_player);
#endif /* (!defined (J2ME_SHARE_MED_EXT_MEM)) && defined(__MMI_VIDEO_RECORDER__) */

#if (!defined (J2ME_SHARE_MED_EXT_MEM)) && defined(__MMI_VIDEO_PLAYER__)
extern kal_int32 jma_video_player_suspend_hdlr(kal_int32 java_player);
extern kal_int32 jma_video_player_resume_hdlr(kal_int32 java_player);
extern kal_int32 jma_video_player_close_hdlr(kal_int32 java_player);
#ifdef __MMI_VIDEO_STREAM__
extern kal_int32 jma_stream_player_suspend_hdlr(kal_int32 java_player);
extern kal_int32 jma_stream_player_resume_hdlr(kal_int32 java_player);
extern kal_int32 jma_stream_player_close_hdlr(kal_int32 java_player);
extern void jma_stream_player_buffering_cyclic(void);
#endif /* __MMI_VIDEO_STREAM__ */

#ifdef __MMI_VIDEO_PDL__ 
extern kal_bool jma_video_player_cache_buffering_cyclic(void);
#endif /* __MMI_VIDEO_PDL__ */

#endif  /* (!defined (J2ME_SHARE_MED_EXT_MEM)) && defined(__MMI_VIDEO_PLAYER__) */
#endif /* SUPPORT_MMAPI */

#endif /* _JMA_INTERNAL_H_ */ 

⌨️ 快捷键说明

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