Пример #1
0
void win_satfav_load_groupcount(void)
{
	UINT8 av_flag;
	OBJLIST		*ol;
	UINT16 group_cnt,group_idx;
	UINT8 group_type, group_pos;
	UINT16 channel,select,page;
	UINT16 title_id;
	TEXT_FIELD* txt;
	
	ol = &satfav_item_list;

	select = INVALID_POS_NUM;

	av_flag = sys_data_get_cur_chan_mode();
	group_idx = sys_data_get_cur_group_index();

	sys_data_get_cur_mode_group_infor( group_idx, &group_type,&group_pos, &channel);

	if(sat_fav_list_flag == 0)	/* SAT */
	{
		group_cnt = sys_data_get_sate_group_num(av_flag);
		group_cnt ++;
		if(group_type == FAV_GROUP_TYPE)
			group_idx = 0;
		else
			select = group_idx;
		
	}
	else	/* FAV */
	{
		group_cnt = sys_data_get_fav_group_num(av_flag);
		if(group_type != FAV_GROUP_TYPE)
			group_idx = 0;
		else
		{
			group_idx -= sys_data_get_sate_group_num(av_flag);
			group_idx --;
			select = group_idx;
		}
	}

	page = OSD_GetObjListPage(ol); 	

	OSD_SetObjListCount(ol, group_cnt);
	OSD_SetObjListCurPoint(ol, group_idx);
	OSD_SetObjListNewPoint(ol, group_idx);
	OSD_SetObjListTop(ol,group_idx / page*page);
	OSD_SetObjListSingleSelect(ol, select); 

	title_id = (sat_fav_list_flag == 0)?  RS_INFO_SATELLITE : RS_FAVORITE;
	txt = &satfav_title;
	OSD_SetTextFieldContent(txt, STRING_ID,title_id);
}
Пример #2
0
void win_satfav_set_display(void)
{
	UINT32 i;
	UINT16 top,cnt,page,idx;
	
	OBJLIST* ol = &satfav_item_list;
	BITMAP* bmp;
	TEXT_FIELD* txt;
	CONTAINER* item;
	UINT32 valid_idx;
	UINT16 unistr[50];
	UINT8 group_type,group_idx,av_flag;

	av_flag = sys_data_get_cur_chan_mode();
	

	cnt = OSD_GetObjListCount(ol);
	page = OSD_GetObjListPage(ol); 
	top = OSD_GetObjListTop(ol);

	for(i=0;i<page;i++)
	{
		item = (CONTAINER*)satfav_items[i];


		idx = top + i;
		group_idx = (UINT8)(idx);
		if(sat_fav_list_flag == 1)
		{
			group_idx += sys_data_get_sate_group_num(av_flag);
			group_idx ++;
		}
				
		if(idx< cnt)
			valid_idx = 1;
		else
			valid_idx = 0;
		
		if(valid_idx)
			get_chan_group_name((UINT8*)unistr,group_idx,&group_type);
		

		/*IDX */
		txt = (TEXT_FIELD*)OSD_GetContainerNextObj(item);//bmp->head.pNext;
		if(valid_idx)
			OSD_SetTextFieldContent(txt,STRING_NUMBER, idx + 1);
		else
			OSD_SetTextFieldContent(txt,STRING_ANSI,(UINT32)"");

		/*Name*/
		txt = (TEXT_FIELD*)OSD_GetObjpNext(txt);//txt->head.pNext;
		if(valid_idx)
		{
			OSD_SetTextFieldContent(txt, STRING_UNICODE, (UINT32)unistr);
		}
		else
			OSD_SetTextFieldContent(txt,STRING_ANSI,(UINT32)"");
	}
	
}
Пример #3
0
static UINT8 editchannel_check_item_active(UINT32 id)
{
	UINT8 action;
	UINT8 tv_grps,radio_grps;
/*alfred.wu 调整了PVR模块的菜单*/
#ifndef UI_6PAGE_SUPPORT
#ifdef DVR_PVR_SUPPORT
    if (id >= RECORD_PVRMANAGE_ID/*RECORD_PVRMANAGE_ID*/)
        return record_check_item_active(id);
#endif
#endif
	action = C_ATTR_ACTIVE;

	tv_grps = sys_data_get_sate_group_num(TV_CHAN);
	radio_grps = sys_data_get_sate_group_num(RADIO_CHAN);
	
	switch(id)
	{
	case CHLIST_TV_LIST_ID:
		if(tv_grps == 0)
			action = C_ATTR_INACTIVE;
		break;
	case CHLIST_RADIO_LIST_ID:	
		if(radio_grps == 0)
			action = C_ATTR_INACTIVE;			
		break;
	case CHLIST_DELETE_ALL_CHAN_ID:
	case SYSTEM_FAVNAME_ID:
		if(tv_grps +  radio_grps == 0)
			action = C_ATTR_INACTIVE;			
		break;
	}

#ifdef DVR_PVR_SUPPORT
	if(api_pvr_is_record_active())
		action = C_ATTR_INACTIVE;
#endif
	

	return action;
}
Пример #4
0
static PRESULT  otaset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT32 sat_cnt;
	POBJECT_HEAD submenu;

	switch(event)
	{
	case EVN_PRE_OPEN:

		ota_presat_id = 0xFFFF;
 		//wincom_open_title(pObj,RS_UPGRADE_MODE_SAT, 0);
 		wincom_open_subtitle(pObj,RS_TOOLS_SW_UPGRADE_BY_OTA, 0);
#ifdef	_BUILD_OTA_E_
		ota_load_parameter();
#else
		win_otaset_load_default_setting(0);
#endif
		win_otaset_load_FreqSymbPid_display();
		break;
	case EVN_POST_DRAW:
		//win_signal_open(pObj);
		win_signal_open_ex(pObj,pObj->frame.uLeft+30,pObj->frame.uTop + LIST_ITEMCNT*(CON_H + CON_GAP) +20);
		win_otaset_turn_frntend();
		  wincom_open_commen_help(pObj);
		//win_signal_refresh();
		//win_signal_update();
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE: 
	  		wincom_close_subtitle();
			OSD_ClearScreen();
				if((sys_data_get_sate_group_num(sys_data_get_cur_chan_mode())==0))
		OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu,C_UPDATE_ALL);

			win_open_submenu_title(submenu,sub_menu_desc->title_id, 0);  //guop
		break;
	case EVN_MSG_GOT:
		if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL)
			win_signal_refresh();
			//win_signal_update();	
		break;
		
	}

	return ret;
	
}
Пример #5
0
static PRESULT av_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
    	POBJECT_HEAD submenu;

	switch(event)
	{
	case EVN_PRE_OPEN:
		wincom_open_subtitle((POBJECT_HEAD)&win_av_con,RS_SYSTEM_TV_SYSTEM, 0);
		win_av_load_setting();
		win_av_set_vcrloop_action(FALSE);
		win_av_init_items();
#ifdef NEW_DEMO_FRAME
		remove_menu_item((POBJECT_HEAD)&win_av_con, (OBJECT_HEAD *)&av_item_con5, CON_H + CON_GAP);
		remove_menu_item((POBJECT_HEAD)&win_av_con, (OBJECT_HEAD *)&av_item_con6, CON_H + CON_GAP);
		remove_menu_item((POBJECT_HEAD)&win_av_con, (OBJECT_HEAD *)&av_item_con7, CON_H + CON_GAP);
#endif
		break;
	case EVN_POST_OPEN:
		  wincom_open_commen_help(pObj);
		wincom_open_help(pObj,0,0);
		break;
	case EVN_PRE_CLOSE:
		sys_data_save(1);
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE:
		wincom_close_subtitle();
		OSD_ClearScreen();
		if((sys_data_get_sate_group_num(sys_data_get_cur_chan_mode())==0))
		OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu,C_UPDATE_ALL);

		win_open_submenu_title(submenu,sub_menu_desc->title_id, 0);  //guop
		break;

    case EVN_MSG_GOT:
        if(param1 ==  CTRL_MSG_SUBTYPE_CMD_TVSAT_SWITCH)
		{
            win_av_load_tv_mode_setting(TRUE);
			ret = PROC_LOOP;
		}
        break;
	default:
		break;
	}

	return ret;	
}
Пример #6
0
static PRESULT satfav_item_lst_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
	OBJLIST* ol = (OBJLIST*)pObj;
	UINT16 sel;
	UINT8 group_idx;
	UINT8 av_flag;
	 
	switch(event)
	{
	case EVN_PRE_DRAW:
		win_satfav_set_display();
		break;
	case EVN_PRE_CHANGE:
		break;
	case EVN_ITEM_POST_CHANGE:
		break;
	case EVN_POST_CHANGE:

		sel = OSD_GetObjListSingleSelect(ol);
		if(sel < sys_data_get_group_num() )
		{
			av_flag = sys_data_get_cur_chan_mode();
			
			group_idx = (UINT8)sel;
			if(sat_fav_list_flag == 1)
			{
				group_idx += sys_data_get_sate_group_num(av_flag);
				group_idx	++;
			}
			
			sys_data_change_group(group_idx);
		#if defined(ORDER_GZ1010001)||defined(ORDER_GZ1104006)
			ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)&g_win_light_chanlist_1, TRUE);
		#else
			ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)&g_win_light_chanlist, TRUE);
		#endif
			ret = PROC_LEAVE;			
		}		
		break;
	default:
		break;
	}

	return ret;
}
Пример #7
0
static PRESULT srch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT16 title_id;
	POBJECT_HEAD mainmenu;
	UINT8 av_flag;
	UINT16 cur_chan;
	UINT8 back_saved;
	
	switch(event)
	{
	case EVN_PRE_OPEN:
		system_state = SYS_STATE_SEARCH_PROG;
		if(win_search_param.as_method == AS_METHOD_TP
			 || win_search_param.as_method == AS_METHOD_NIT_TP) // tp scan
				title_id = RS_INSTALLATION_TP_SCAN;
		else if(win_search_param.as_method == AS_METHOD_FFT 
	        || win_search_param.as_method == AS_METHOD_MULTI_FFT)//auto scan
	        title_id = RS_INSTALLATION_AUTO_SCAN; 
		else if(win_search_param.as_method == AS_METHOD_SAT_TP
	        ||win_search_param.as_method == AS_METHOD_MULTI_TP
	        || win_search_param.as_method == AS_METHOD_NIT
	        || win_search_param.as_method == AS_METHOD_MULTI_NIT)//preset scan
			title_id = RS_INSTALLATION_PRESET_SCAN;
		else
			title_id = RS_INSTALLATION_AUTO_SCAN;		
		wincom_open_subtitle(pObj,title_id,0);
/*Remove progress bar when search type is AS_METHOD_NIT_TP/AS_METHOD_NIT/AS_METHOD_MULTI_NIT*/
		if(win_search_param.as_method == AS_METHOD_NIT_TP ||
			win_search_param.as_method == AS_METHOD_NIT||
			win_search_param.as_method == AS_METHOD_MULTI_NIT)
		{
            OSD_SetAttr(&srch_progress_txt, C_ATTR_HIDDEN);
            OSD_SetAttr(&srch_progress_bar, C_ATTR_HIDDEN);
		}
        else
        {
            OSD_SetAttr(&srch_progress_txt, C_ATTR_ACTIVE);
            OSD_SetAttr(&srch_progress_bar, C_ATTR_ACTIVE);
        }

		key_pan_display("srch", 4);
		
		epg_off();
		stop_tdt();

#ifdef AUTOSCAN_BYPASS_CI
        // Before Autoscan, DMX0 bypass CI
		if(win_search_param.as_method == AS_METHOD_FFT 
	        || win_search_param.as_method == AS_METHOD_MULTI_FFT)//auto scan
		{
            tsi_dmx_src_select(TSI_DMX_0, TSI_TS_B);
            tsi_para_src_select(TSI_SPI_1,0);
            api_set_nim_ts_type(2, 0x03);			
		}
#endif
#ifdef HW_SS830C
            tsi_dmx_src_select(TSI_DMX_0, TSI_TS_B);	
	     api_set_nim_ts_type(2, 0x03);						
#endif

		break;
	case EVN_POST_OPEN:
		win_search_init();
		break;
	case EVN_PRE_CLOSE:
        win_search_pre_close = 1;
		osal_task_dispatch_off();
		moving_disk = 0;/*Clear moving dish flag*/
		win_search_stop_signal = 1;
		osal_task_dispatch_on();
		as_service_stop();
		db_search_exit();
		//api_stop_timer(&win_search_tmr_id);
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;			

		prog_callback_unregister();
		pid_search_flg = 0;
		break;
	case EVN_POST_CLOSE:
		if((srch_ch_cnt[0] != 0x0)
			|| (srch_ch_cnt[1] != 0x0))
		{
            win_search_last_tp_ok_failed(srch_tp_cnt);

			win_compopup_init(WIN_POPUP_TYPE_SMSG);
			win_compopup_set_msg(NULL, NULL, RS_MSG_WAIT_FOR_SAVING);
			//win_compopup_open();
			win_compopup_open_ext(&back_saved);
			
			update_data();

			win_compopup_smsg_restoreback();
			win_compopup_init(WIN_POPUP_TYPE_OK);
			win_compopup_set_msg("Search End", NULL, 0);
			win_compopup_open_ext(&back_saved);

			/* Change to all satellite group */
            UINT32 grp_idx = sys_data_get_cur_group_index();

			sys_data_check_channel_groups();
			sys_data_set_cur_group_index(grp_idx);

			av_flag = sys_data_get_cur_chan_mode();

			if(sys_data_get_sate_group_num(av_flag) == 0)
			{
				av_flag = (av_flag == TV_CHAN)? RADIO_CHAN : TV_CHAN;
				sys_data_set_cur_chan_mode(av_flag);
			}
			if(av_flag == RADIO_CHAN && (srch_ch_cnt[1] != 0x0))        //guop add  20101231
			{
				av_flag = TV_CHAN;
				sys_data_set_cur_chan_mode(av_flag);
			}

			sys_data_change_group(grp_idx);

			if(srch_ch_cnt[av_flag] > 0)
			{
				cur_chan = get_prog_pos(win_search_cur_prog[av_flag].prog_id);
				if(cur_chan == 0xFFFF)
				{
                    grp_idx = get_sat_pos(cur_sat_id) + 1;
        			sys_data_change_group(grp_idx);
    				cur_chan = get_prog_pos(win_search_cur_prog[av_flag].prog_id);
                    if (cur_chan == 0xFFFF)
                    {
            			sys_data_change_group(0);
        				cur_chan = get_prog_pos(win_search_cur_prog[av_flag].prog_id);
                        if (cur_chan == 0xffff)
    					    cur_chan = 0;
                    }
				}
				sys_data_set_cur_group_channel(cur_chan);
			}
			else if(sys_data_get_sate_group_num(av_flag))
				key_pan_display("noCH", 4);
			else
				key_pan_display("----", 4);
			sys_data_save(1);
			epg_reset();
		}

		OSD_ClearObject( (POBJECT_HEAD)&srch_progress_bar, C_UPDATE_ALL);
		OSD_ClearObject( (POBJECT_HEAD)&srch_progress_txt, C_UPDATE_ALL);

		mainmenu = (POBJECT_HEAD)&g_win_mainmenu;
		OSD_TrackObject(mainmenu,C_UPDATE_ALL);

#ifdef AUTOSCAN_BYPASS_CI
        // After Autoscan, DMX0 NOT bypass CI
		if(win_search_param.as_method == AS_METHOD_FFT 
	        || win_search_param.as_method == AS_METHOD_MULTI_FFT)//auto scan
		{
            tsi_dmx_src_select(TSI_DMX_0, TSI_TS_A);
            tsi_para_src_select(TSI_SPI_1,0);
		}
#endif
		start_tdt();
		system_state = SYS_STATE_NORMAL;
		
		break;
	case EVN_MSG_GOT:
		ret = win_search_message_proc(param1,param2);		
		break;

	}

	return ret;
}
Пример #8
0
static PRESULT satfav_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	CONTAINER* cont = (CONTAINER*)pObj;
	OBJLIST* ol= &satfav_item_list;
	UINT8 vkey = 0xFF;
	UINT8 av_flag,grp_cnt,back_saved;

	switch(event)
	{
	case EVN_PRE_OPEN:
        api_inc_wnd_count();
		if( (param2 & MENU_OPEN_TYPE_MASK) == MENU_OPEN_TYPE_KEY)
			vkey =  param2 & MENU_OPEN_PARAM_MASK;
		
		//if(vkey == V_KEY_SAT || vkey == V_KEY_FAV)
			if(vkey == V_KEY_BLUE || vkey == V_KEY_FAV)
	{
			av_flag = sys_data_get_cur_chan_mode();
			
	//		sat_fav_list_flag = (vkey == V_KEY_SAT)? 0 : 1;
			sat_fav_list_flag = (vkey == V_KEY_BLUE)? 0 : 1;
			if(sat_fav_list_flag == 0)
				grp_cnt = sys_data_get_sate_group_num(av_flag);
			else
				grp_cnt = sys_data_get_fav_group_num(av_flag);
			if(grp_cnt == 0)
			{
				win_compopup_init(WIN_POPUP_TYPE_SMSG);
				win_compopup_set_msg("No FAV Channels", NULL, 0);
				win_compopup_open_ext(&back_saved);
				osal_task_sleep(1000);
				win_compopup_smsg_restoreback();
				ret = PROC_LEAVE;
                api_dec_wnd_count();
				break;
			}	
		}
		else
		{
			ret = PROC_LEAVE;
            api_dec_wnd_count();
			break;
		}


		win_satfav_load_groupcount();
		
		break;	
	case EVN_POST_OPEN:
		break;		
	case EVN_PRE_CLOSE:
		break;
	case EVN_POST_CLOSE:
        api_dec_wnd_count();
		break;
	case EVN_UNKNOWN_ACTION:
		break;
		
	default:
		break;
	}

	return ret;


}
Пример #9
0
static PRESULT news_list_win_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 back_saved;
	INT32 news_list_num = 0;
	
	switch(event)
	{
		case EVN_PRE_OPEN:
#ifdef EXIT_KEY_EXIT_ALL_MENU
	         exit_key_flag =  FALSE;
#endif
			bGetContent = FALSE;
			news_list_load(param2);
			break;
		case EVN_POST_OPEN:
			wincom_open_subtitle(pObj,RS_NEWS,0);
			break;
		case EVN_PRE_CLOSE:
			news_terminate();
			break;
		case EVN_POST_CLOSE:
			if(news!=1||news!=0)
			libnet_download_abort((unsigned long)news);
			news=0;
			wincom_close_subtitle();
#ifdef EXIT_KEY_EXIT_ALL_MENU
	        if(( exit_key_flag == TRUE)||((sys_data_get_sate_group_num(RADIO_CHAN)==0)&&(sys_data_get_sate_group_num(TV_CHAN)==0)))//解决无节目还可以进默认页面导致死机问题
	        {
 			 exit_key_flag =FALSE;
			mm_leave_all_menu();
		}
#endif
			break;
		case EVN_MSG_GOT:
			if (param1 == CTRL_MSG_SUBTYPE_STATUS_DOWNLOAD_FINISH)
			{
				news=0;
				if ((int)param2 >= 0)
				{
					win_compopup_smsg_restoreback();
					news_list_num = news_parse();

					if (news_list_num <= 0)
					{
						win_compopup_init(WIN_POPUP_TYPE_OK);		
						win_compopup_set_msg((UINT8*)"Error",NULL,0);
						win_compopup_open_ext(&back_saved);
					}
					else
					{
						bGetContent = TRUE;
						win_news_detail_open(OSD_GetObjListCurPoint(&ol_news_list));
					}				
				}
				else
				{
					win_compopup_smsg_restoreback();
					win_compopup_init(WIN_POPUP_TYPE_OK);		
					win_compopup_set_msg((UINT8*)"Error",NULL,0);
					win_compopup_open_ext(&back_saved);
					ret = PROC_LOOP;
				}
			}
			break;
		default:
			break;
	}

	return ret;
}