/***************************************************** Interface : static PRESULT chapter_list_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2); Function : callback of chapter list Author : Wu Jianwen Date : 2010.8.25 Input : Output : NONE Return : ******************************************************/ static PRESULT chapter_list_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2) { UINT16 top, cnt, pos; UINT8 unact; PRESULT ret = PROC_PASS; switch(event) { case EVN_PRE_DRAW: top = OSD_GetListTopPoint(&g_ls_chapter); OSD_SetListTopPoint(&g_ls_chapter, top); top= OSD_GetListTopPoint(&g_ls_chapter); GetListChapterInfo(top); break; case EVN_REQUEST_DATA: top = (UINT16)param2; GetListChapterInfo(top); break; default: PRINTF("do nothing \n"); } return ret; }
static PRESULT subtitle_list_callback(POBJECT_HEAD obj, VEVENT event, UINT32 param1, UINT32 param2) { UINT16 top, cnt, pos; UINT8 unact; PRESULT ret = PROC_PASS; switch(event) { case EVN_PRE_DRAW: //vic100507#1 top = OSD_GetListTopPoint(&g_ls_subtitle); OSD_SetListTopPoint(&g_ls_subtitle, top); top= OSD_GetListTopPoint(&g_ls_subtitle); if(system_state != SYS_STATE_USB_MP) win_subtitle_read_page(top); else #ifdef MP_SUBTITLE_SUPPORT //TODO: set display items string win_mp_subtitle_read_page(top); #endif //vic100507#1 break; case EVN_REQUEST_DATA: top = (UINT16)param2; if(system_state != SYS_STATE_USB_MP)//vic100507#1 win_subtitle_read_page(top); #ifdef MP_SUBTITLE_SUPPORT //vic100507#1 else //TODO: set display items string win_mp_subtitle_read_page(top); #endif break; default: PRINTF("do nothing \n"); } return ret; }
void win_subtitle_init_data() { P_NODE p_node; UINT16 lst_top,list_cnt; UINT8 sel_lang = 0xFF; SYSTEM_DATA* sys_data = sys_data_get(); TTXEng_GetSubtLang(&ttx_sub_lang_list, &g_win_ttx_subtitle_count); subt_get_language(&sub_lang_list, &g_win_subtitle_count); list_cnt = (g_win_subtitle_count + g_win_ttx_subtitle_count + 1); OSD_SetListCount(&g_ls_subtitle, list_cnt); if(sys_data->osd_set.subtitle_display == 0)/*subtitle off,select the last item*/ { OSD_SetListCurPos(&g_ls_subtitle, (list_cnt - 1)); if(list_cnt > SUBTITLE_ITEM_NUMBER) OSD_SetListTop(&g_ls_subtitle, (list_cnt - SUBTITLE_ITEM_NUMBER)); else OSD_SetListTop(&g_ls_subtitle, 0); } else if(sys_data->osd_set.subtitle_lang == 0xFF)/*set_sub_lang_idx can only be set in subtitle pop-up*/ {/*if first init,or reset*/ sel_lang = 0xFF; #if (SUBTITLE_ON == 1) sel_lang = api_ttxsub_getlang(NULL,sub_lang_list,sys_data->lang.sub_lang,g_win_subtitle_count); if(sel_lang != 0xFF) { sel_lang = sel_lang + g_win_ttx_subtitle_count; }/*subtitle language select first*/ #endif #if (TTX_ON ==1) if(sel_lang == 0xFF) { sel_lang = api_ttxsub_getlang(ttx_sub_lang_list,NULL,sys_data->lang.sub_lang,g_win_ttx_subtitle_count); }/*if can not get subt lang_idx,to get ttx_subt lang_idx*/ #endif if(sel_lang != 0xFF)/*If sel_lang valid,set to corresponding item highlight*/ { OSD_SetListCurPoint(&g_ls_subtitle, sel_lang); //OSD_SetListTopPoint(&g_ls_subtitle, sel_lang); if(sel_lang > (SUBTITLE_ITEM_NUMBER - 1)) OSD_SetListTop(&g_ls_subtitle, (sel_lang - SUBTITLE_ITEM_NUMBER + 1)); else OSD_SetListTop(&g_ls_subtitle, 0); } else/*if sel_lang invalid,set to 0 position*/ { OSD_SetListCurPoint(&g_ls_subtitle, 0); OSD_SetListTopPoint(&g_ls_subtitle, 0); } } else { OSD_SetListCurPoint(&g_ls_subtitle, sys_data->osd_set.subtitle_lang); if(sys_data->osd_set.subtitle_lang > (SUBTITLE_ITEM_NUMBER - 1)) OSD_SetListTop(&g_ls_subtitle, (sys_data->osd_set.subtitle_lang - SUBTITLE_ITEM_NUMBER + 1)); else OSD_SetListTop(&g_ls_subtitle, 0); } OSD_SetListVerScrollBar(&g_ls_subtitle, &g_sb_subtitle); lst_top = OSD_GetListTopPoint(&g_ls_subtitle); win_subtitle_read_page(lst_top); }