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

📄 vdoplyapp.c

📁 plutommi mtkapp Video Src
💻 C
📖 第 1 页 / 共 5 页
字号:
#ifdef __MMI_VIDEO_PDL__
//#define VDOPLY_PDL_DEBUG
#endif

/***************************************************************************** 
* Typedef 
*****************************************************************************/
typedef enum
{
    VDOPLY_PLAY_FROM_FILE = 0,
    VDOPLY_PLAY_FROM_ID,
    VDOPLY_PLAY_FROM_STREAMING_RTSP,
    VDOPLY_PLAY_FROM_STREAMING_RAM,    
    VDOPLY_PLAY_FROM_STREAMING_SDP,  
    VDOPLY_PLAY_FROM_PROGRESSIVE_DL   
} vdoply_play_src_enum;

typedef enum
{
    VDOPLY_ADJ_BRIGHTNESS,
    VDOPLY_ADJ_CONTRAST,
    VDOPLY_ADJ_REPEAT,

    /* count */
    VDOPLY_ADJ_TOTAL
} vdoply_adjust_item_enum;

typedef enum
{
    VDOPLY_REPEAT_OFF,
    VDOPLY_REPEAT_ON,

    /* count */
    VDOPLY_REPEAT_TOTAL
} vdoply_repeat_type_enum;

typedef enum
{
    VDOPLY_VOL_1 = LEVEL1,
    VDOPLY_VOL_2,
    VDOPLY_VOL_3,
    VDOPLY_VOL_4,
    VDOPLY_VOL_5,
    VDOPLY_VOL_6,
    VDOPLY_VOL_7,
    VDOPLY_VOL_8,
    VDOPLY_VOL_9,
    VDOPLY_VOL_10,
    VDOPLY_VOL_11,
    VDOPLY_VOL_12,
    VDOPLY_VOL_13,    
    VDOPLY_VOL_14,
    VDOPLY_VOL_15,
    VDOPLY_VOL_16,
    VDOPLY_VOL_MUTE
} vdoply_aud_vol_enum;

/***************************************************************************** 
* Global Variable
*****************************************************************************/
extern BOOL r2lMMIFlag;

/***************************************************************************** 
* Global Function
*****************************************************************************/
extern kal_uint8 GpioCtrlReq(kal_uint8 action);
extern void AudioStopReq(U16 soundId);
extern U16 GetCurKeypadTone(void);
extern void refresh_status_icon_display(void);  /* in Wgui_status_icons.c */

#if defined(__MMI_AUDIO_PLAYER__) && defined(__MMI_BT_MTK_SUPPORT__) && defined(__MMI_A2DP_SUPPORT__)
extern mmi_bt_dev_struct *mmi_audply_get_bt_headset(void); /* tmp use audio player's */
#endif

/***************************************************************************** 
* Local Variable
*****************************************************************************/
vdoply_context_struct g_vdoply_cntx;
vdoply_context_struct *const mmi_vdoply_cntx_p = &g_vdoply_cntx;

#ifdef VDOPLY_PDL_DEBUG
S8 pdl_src_filename[FMGR_PATH_BUFFER_SIZE];
FS_HANDLE pdl_src_file;
FS_HANDLE pdl_dest_file;
#endif 


/***************************************************************************** 
* Local Function
*****************************************************************************/
static MMI_BOOL mmi_vdoply_is_output_to_bt(void);

static BOOL mmi_vdoply_get_storage_disk_path(PS8 drv_buf);

/* video player screen */
static void mmi_vdoply_blt_screen(void);
static void mmi_vdoply_null_key_event(void);
static void mmi_vdoply_disply_popup(PU8 str_ptr, U16 img_id, U16 image_on_bottom, U16 tone_duration, U16 tone_id);
static BOOL mmi_vdoply_check_and_display_error_popup(MDI_RESULT result);
static U16  mmi_vdoply_get_speed_image(void);
static void mmi_vdoply_highlight_play(void);
static U8   mmi_vdoply_del_screen_hdlr(void *ptr);
static void mmi_vdoply_entry_player_screen_internal(void);
static void mmi_vdoply_draw_opening_anim(void);
static void mmi_vdoply_clear_opening_anim(void);
static void mmi_vdoply_draw_snapshoting(void);
static void mmi_vdoply_draw_aud_only_anim(void);
static void mmi_vdoply_clear_aud_only_anim(void);
static void mmi_vdoply_draw_play_region_bg(void);
#ifdef __MMI_VIDEO_STREAM__
static void mmi_vdoply_draw_loading(S32 percentage, MMI_BOOL draw_bg);
static void mmi_vdoply_draw_connecting_anim(void);
static void mmi_vdoply_clear_connecting_anim(void);
#endif /* __MMI_VIDEO_STREAM__ */
static void mmi_vdoply_draw_bg(void);
static void mmi_vdoply_draw_title(void);
static void mmi_vdoply_draw_panel_state(void);
static void mmi_vdoply_draw_panel_progress(void);
static void mmi_vdoply_draw_panel_timer(void);
static void mmi_vdoply_draw_panel_speed(void);
static void mmi_vdoply_draw_panel_volume(void);
static void mmi_vdoply_draw_style_text(PS8 str, S32 offset_x, S32 offset_y, video_style_text_struct *style_txt);
static void mmi_vdoply_draw_softkey(void);
static void mmi_vdoply_draw_panel(void);
static void mmi_vdoply_init_ui(void);
static void mmi_vdoply_calc_progress_ratio(void);

#ifdef __VDOPLY_FEATURE_FULLSCREEN__
static void mmi_vdoply_draw_fullscr_panel_progress(void);
static void mmi_vdoply_draw_fullscr_panel_timer(void);
static void mmi_vdoply_draw_fullscr_panel_speed(void);
static void mmi_vdoply_draw_fullscr_panel_volume(void);
static void mmi_vdoply_draw_fullscr_softkey(void);
static void mmi_vdoply_draw_fullscr_osd(void);
static void mmi_vdoply_clear_fullscr_osd(void);
static void mmi_vdoply_draw_fullscr_aud_only_anim(void);
static void mmi_vdoply_clear_fullscr_aud_only_anim(void);
static void mmi_vdoply_draw_fullscr_play_region_bg(void);
static void mmi_vdoply_init_fullscr_ui(void);
static void mmi_vdoply_fullscr_reset_osd_fade(BOOL sleep);
static void mmi_vdoply_fullscr_osd_fade_cyclic(void);
static void mmi_vdoply_fullscr_osd_show_up(void);
static U16 mmi_vdoply_fullscr_get_speed_image(void);
#endif /* __VDOPLY_FEATURE_FULLSCREEN__ */ 

#ifdef __VDOPLY_FEATURE_SNAPSHOT__
static void mmi_vdoply_get_next_snapshot_filename(PS8 file_buf, PS8 file_path);
#endif 

static MDI_RESULT mmi_vdoply_play_video(void);
static void mmi_vdoply_stop_video(void);

#ifdef __VDOPLY_FEATURE_SNAPSHOT__
static void mmi_vdoply_player_snapshot(void);
static void mmi_vdoply_player_snapshot_key_press(void);
static void mmi_vdoply_player_snapshot_key_release(void);
#endif /* __VDOPLY_FEATURE_SNAPSHOT__ */ 

static void mmi_vdoply_player_timer_cyclic(void);
static void mmi_vdoply_set_softkey(PS8 lsk_str_ptr, PS8 rsk_str_ptr, U16 lsk_img_id, U16 rsk_img_id, U16 ck_img_id);
static void mmi_vdoply_lsk_release(void);
static void mmi_vdoply_rsk_release(void);
static void mmi_vdoply_lsk_press(void);
static void mmi_vdoply_rsk_press(void);
static void mmi_vdoply_ck_press(void);
static void mmi_vdoply_ck_release(void);

#ifdef __VDOPLY_FEATURE_VOLUME__
static void mmi_vdoply_vol_up_key_press(void);
static void mmi_vdoply_vol_up_key_release(void);
static void mmi_vdoply_vol_down_key_press(void);
static void mmi_vdoply_vol_down_key_release(void);
#endif /* __VDOPLY_FEATURE_VOLUME__ */ 

#ifdef __VDOPLY_FEATURE_SPEED__
static void mmi_vdoply_speed_inc_key_press(void);
static void mmi_vdoply_speed_inc_key_release(void);
static void mmi_vdoply_speed_dec_key_press(void);
static void mmi_vdoply_speed_dec_key_release(void);
#endif /* __VDOPLY_FEATURE_SPEED__ */ 

static void mmi_vdoply_seek_result_hdlr(MDI_RESULT result);
static void mmi_vdoply_seek_key_release(void);
static BOOL mmi_vdoply_seek_foward(void);
static void mmi_vdoply_seek_foward_key_press_cyclic(void);
static void mmi_vdoply_seek_foward_key_press(void);
static void mmi_vdoply_seek_foward_key_release(void);
static BOOL mmi_vdoply_seek_backward(void);
static void mmi_vdoply_seek_backward_key_press_cyclic(void);
static void mmi_vdoply_seek_backward_key_press(void);
static void mmi_vdoply_seek_backward_key_release(void);

#ifdef __VDOPLY_FEATURE_FULLSCREEN__
static void mmi_vdoply_toggle_fullscreen_display(void);
static void mmi_vdoply_toggle_fullscreen_key_press(void);
static void mmi_vdoply_toggle_fullscreen_key_release(void);
#endif /* __VDOPLY_FEATURE_FULLSCREEN__ */ 

#ifdef __MMI_TVOUT__
static void mmi_vdoply_toggle_tvout_display(void);
static void mmi_vdoply_toggle_tvout_key_press(void);
static void mmi_vdoply_toggle_tvout_key_release(void);
#endif /* __MMI_TVOUT__ */ 

static void mmi_vdoply_set_state_key_event(U16 state);
static void mmi_vdoply_enter_general_state(U16 state);
#ifdef __VDOPLY_FEATURE_FULLSCREEN__
static void mmi_vdoply_enter_fullscr_state(U16 state);
#endif
#ifdef __MMI_VIDEO_STREAM__
static void mmi_vdoply_enter_stream_state(U16 state);
#endif
#ifdef __MMI_VIDEO_PDL__
static void mmi_vdoply_enter_progressive_state(U16 state);
#endif
static void mmi_vdoply_enter_state(U16 state);
static void mmi_vdoply_exit_player_screen_internal(void);
static void mmi_vdoply_close_file(void);
static S16 mmi_vdoply_get_speed_factor(void);
static void mmi_vdoply_set_state_softkey(U16 state);
static void mmi_vdoply_set_state_layer_config(U16 state);

#ifdef __MMI_SUBLCD__
static void mmi_vdoply_draw_sublcd_icon(void);
static void mmi_vdoply_entry_sublcd_screen(void);
static void mmi_vdoply_exit_sublcd_screen(void);
#endif /* __MMI_SUBLCD__ */ 

#if defined(__MMI_CLAMSHELL__) && !defined(__MMI_SLIDE__)
static U8 mmi_vdoply_clam_close_event_hdlr(void *ptr);
#endif 

void mmi_vdoply_player_play_finish_hdlr(MDI_RESULT result);
void mmi_vdoply_player_open_done_hdlr(MDI_RESULT result, mdi_video_info_struct *vdo_clip);

/* player list */
static void mmi_vdoply_highlight_app(void);
void mmi_vdoply_exit_from_fmgr(void *filename, int is_short);
void mmi_vdoply_exit_from_fmgr_emptry_folder(void);

/* re-enter */
static void mmi_vdoply_re_entry_player_screen_from_file(void);
static void mmi_vdoply_re_entry_player_screen_from_id(void);

/* storage */
static void mmi_vdoply_hint_set_storage(U16 index);
static void mmi_vdoply_highlight_set_storage(void);
static void mmi_vdoply_get_drive_callback(S8 drv_letter);
static void mmi_vdoply_entry_set_storage_screen(void);

/* bluetooth */
#if defined(__MMI_AUDIO_PLAYER__) && defined(__MMI_BT_MTK_SUPPORT__) && defined(__MMI_A2DP_SUPPORT__)    
static void mmi_vdoply_highlight_bluetooth_setting(void);
#endif

#if defined(__VDOPLY_FEATURE_TOUCH_SCREEN__) && defined(__MMI_TOUCH_SCREEN__)
static void mmi_vdoply_touch_scr_pen_down_hdlr(mmi_pen_point_struct pos);
static void mmi_vdoply_touch_scr_pen_up_hdlr(mmi_pen_point_struct pos);
static void mmi_vdoply_touch_scr_pen_move_hdlr(mmi_pen_point_struct pos);
static BOOL mmi_vdoply_touch_scr_hit_test(S32 pos_x, S32 pos_y, vdoply_ui_touch_struct *touch_obj);
#endif /* defined(__VDOPLY_FEATURE_TOUCH_SCREEN__) && defined(__MMI_TOUCH_SCREEN__) */

#if defined(__VDOPLY_FEATURE_LSK_OPTION__)
static void mmi_vdoply_entry_adjust_option_scr(void);
static void mmi_vdoply_exit_adjust_option_scr(void);
static void mmi_vdoply_adjust_option_lsk_hdlr(void);
static void mmi_vdoply_adjust_option_highlight_hdlr(S32 index);
#endif /* defined(__VDOPLY_FEATURE_LSK_OPTION__) */ 

#if defined(__MMI_VIDEO_STREAM__) || defined(__MMI_VIDEO_PDL__)				
static void mmi_vdoply_highlight_url_input_method(void);
static void mmi_vdoply_highlight_network(void);
static void mmi_vdoply_highlight_data_account(void);
static void mmi_vdoply_highlight_proxy(void);
static void mmi_vdoply_highlight_input_url(void);
static void mmi_vdoply_highlight_video_setting(void);
static void mmi_vdoply_highlight_save_connection(void);
static void mmi_vdoply_highlight_stream_editor_done(void);
static void mmi_vdoply_highlight_stream_editor_cancel(void);
static void mmi_vdoply_highlight_stream_input_method(void);
static void mmi_vdoply_check_filename_and_save(void);
static void mmi_vdoply_cancel_stream_editor_and_exit(void);
static void mmi_vdoply_entry_stream_editor_scr(void);
static void mmi_vdoply_entry_stream_editor_option_scr(void);
static void mmi_vdoply_save_stream_file(void);
static void mmi_vdoply_highlight_url_editor_done(void);
static void mmi_vdoply_highlight_url_editor_cancel(void);
static void mmi_vdoply_highlight_url_input_method(void);
static void mmi_vdoply_hint_data_account(U16 index);
static void mmi_vdoply_check_url_and_enter(void);
static void mmi_vdoply_cancel_url_and_exit(void);
static void mmi_vdoply_return_to_editor_screen(void);
static void mmi_vdoply_entry_url_editor_scr(void);
static void mmi_vdoply_entry_url_editor_option_scr(void);
static void mmi_vdoply_entry_option_scr(void);
static void mmi_vdoply_entry_network_setting_scr(void);
static void mmi_vdoply_entry_network_setting_scr_internal(void);
static void mmi_vdoply_entry_network_data_account_scr(void);
static void mmi_vdoply_data_account_callback(U16 index);
static void mmi_vdoply_entry_network_proxy_scr(void);
static void mmi_vdoply_exit_network_proxy_scr(void);
static void mmi_vdoply_network_proxy_highlight_hdlr(S32 index);
static void mmi_vdoply_network_proxy_lsk_hdlr(void);
static void mmi_vdoply_ip_addr_callback(U8 *string_buffer, U8 *ip1, U8 *ip2, U8 *ip3, U8 *ip4);
#endif /* defined(__MMI_VIDEO_STREAM__) || defined(__MMI_VIDEO_PDL__) */


#ifdef __MMI_VIDEO_STREAM__
static void mmi_vdoply_re_entry_player_screen_from_rtsp_streaming(void);
static void mmi_vdoply_re_entry_player_screen_from_sdp_streaming(void);
static void mmi_vdoply_stream_connect_result_hdlr(MDI_RESULT result, mdi_video_info_struct *vdo_clip);
static void mmi_vdoply_stream_buffering_cyclic(void);
static void mmi_vdoply_stream_buffering_done_hdlr(MDI_RESULT result, mdi_video_info_struct *vdo_clip);
static void mmi_vdoply_stream_start_buffering(void);
static void mmi_vdoply_stream_stop_buffering(void);
#ifdef __VDOPLY_FEATURE_FULLSCREEN__
static void mmi_vdoply_stream_fullscr_buffering_cyclic(void);
static void mmi_vdoply_draw_fullscr_loading(S32 percentage, MMI_BOOL draw_bg);
static void mmi_vdoply_draw_fullscr_connecting_anim(void);
static void mmi_vdoply_clear_fullscr_connecting_anim(void);
#endif /* __VDOPLY_FEATURE_FULLSCREEN__ */
static void mmi_vdoply_rtsp_url_hdlr(void *msg_ptr);
#endif /* __MMMI_VIDEO_STREAM__ */

#ifdef __MMI_VIDEO_PDL__
static void mmi_vdoply_re_entry_player_screen_from_pdl_file(void);
static void mmi_vdoply_entry_pdl_teminate_confirm_scr(void);
static void mmi_vdoply_pdl_teminate_confirm_yes(void);
static void mmi_vdoply_pdl_teminate_confirm_no(void);
static void mmi_vdoply_pdl_draw_progressbar_cyclic(void);
static void mmi_vdoply_pdl_buffering_cyclic(void);
#ifdef __VDOPLY_FEATURE_FULLSCREEN__
static void mmi_vdoply_pdl_fullscr_buffering_cyclic(void);
#endif /* __VDOPLY_FEATURE_FULLSCREEN__ */
#ifdef __MMI_DOWNLOAD_AGENT__
static void mmi_vdoply_pdl_da_report_hdlr(S32 session_id, S32 status, S32 cause, U32 seq_num, U32 acc_size);
static BOOL mmi_vdoply_pdl_da_filepath_hdlr(S32 session_id, S32 mime_type, S32 mime_subtype, PU16 filepath);
#endif /* __MMI_DOWNLOAD_AGENT__ */
#endif /* __MMI_VIDEO_PDL__ */

#ifdef __MMI_AVRCP_SUPPORT__
//static U8 mmi_vdoply_bt_avrcp_cmd_hdlr(U16 command, BOOL key_up);
#endif

#if defined(__MMI_AUDIO_PLAYER__) && defined(__MMI_BT_MTK_SUPPORT__) && defined(__MMI_A2DP_SUPPORT__)
/*****************************************************************************
*
* Bluetooth related usage                                                        
*
*****************************************************************************/

/*****************************************************************************
 * FUNCTION
 *  mmi_vdoply_draw_bt_connecting
 * DESCRIPTION
 *  draw bt connecting animation
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
static void mmi_vdoply_draw_bt_connecting_anim(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 layer_offset_x;
    S32 layer_offset_y;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/    
    if (g_vdoply_cntx.ui_type == VDOPLY_UI_TYPE_NORMAL)
    {
        mmi_vdoply_set_state_layer_config(VDOPLY_STATE_BT_CONNECTING);
        mmi_vdoply_draw_panel();
        
        if (g_vdoply_cntx.bt_connecting_anim == GDI_NULL_HANDLE)
        {    
            gdi_layer_push_and_set_active(g_vdoply_cntx.process_layer_handle);

⌨️ 快捷键说明

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