📄 jma_internal.h
字号:
#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 + -