Пример #1
0
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;
}
Пример #2
0
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:
			break;
		case EVN_REQUEST_DATA:
			top = (UINT16)param2;
			win_subtitle_read_page(top);
			break;
		default:
			PRINTF("do nothing \n");
	}
	
	return ret;
}
Пример #3
0
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);
}