Beispiel #1
0
PRESULT ap_cas_IPPV_proc()
{
	static UINT8 flag = 0;
	POBJECT_HEAD p_top_menu = menu_stack_get_top();
	
	if ((MAIN_MENU_HANDLE == menu_stack_get(0)) \
		||(EPG_HANDLE == menu_stack_get_top()) \
		||(LIT_CHAN_LIST_HANDLE == menu_stack_get_top()) \
		||(CHAN_LIST_HANDLE == menu_stack_get_top()) \
		||(SEARCHN_HANDLE == menu_stack_get_top()) \
		)
	{
		//current_ippv_ecm = ecmpid;
		return;
	}
	

	//avoid to open the same window frequently, i see this scenario on site
//	if (0 ==win_ippv_check_request())
//		return;
	
	if((p_top_menu == CHANNEL_BAR_HANDLE)
		||(p_top_menu == AUDIO_HANDLE)
		||(p_top_menu == VOLUMEBAR_HANDLE))
	{
		OSD_ObjClose ( p_top_menu, C_CLOSE_CLRBACK_FLG );
		menu_stack_pop();
	}
			
	if (OSD_ObjOpen((POBJECT_HEAD)&g_win_ippv_popup, 0xFFFFFFFF) != PROC_LEAVE)
	{
    	if ((POBJECT_HEAD)&g_win_ippv_popup != menu_stack_get_top())
    		menu_stack_push((POBJECT_HEAD)&g_win_ippv_popup);
	}

	return;
}
Beispiel #2
0
static PRESULT win_imageslide_unkown_act_proc(VACTION act)
{
	PRESULT ret = PROC_PASS;
	UINT8 rotate_mode, display_mode;
	POBJECT_HEAD win,mplayer_menu;
	int next_image;
	UINT16 slide_interval;
	FileInfo file_node;
	char image_name[FULL_PATH_SIZE];
	
	switch(act)
	{
	case VACT_ROTATEL:
	case VACT_ROTATER:
		if(FALSE == decode_finish_flag)
			break;
		
		if(imageslide_pause_state == IMG_UNPAUSE_STATE)
		{
			api_stop_timer(&imageslide_timer_id);
			imageslide_pause_state = IMG_PAUSE_STATE;
		}
		if(act == VACT_ROTATER)
		{
			image_rot_ang = (image_rot_ang + 1)%IMAGE_ANGLE_CNT;
		}
		else
		{
			image_rot_ang = (image_rot_ang+IMAGE_ANGLE_CNT - 1)%IMAGE_ANGLE_CNT;
		}
		
		image_rotate(image_rot_ang);
		
		if(image_rot_ang == ANG_ORI)
		{
			win_imageslide_showrotate(FALSE);
			win_imageslide_showpause();
		}
		else
		{
			OSD_ClearObject((POBJECT_HEAD)&imageslide_pause, 0);
			win_imageslide_showrotate(TRUE);
		}
		slideidx_display(TRUE);
		break;
	case VACT_INCREASE:
	case VACT_DECREASE:
		if(imageslide_pause_state == IMG_UNPAUSE_STATE)
		{
			api_stop_timer(&imageslide_timer_id);
			imageslide_pause_state = IMG_PAUSE_STATE;
			win_imageslide_showpause();
		}
		if(act == VACT_INCREASE)
		{
			next_image = get_next_index_from_play_list(cur_playlist_image);
		}
		else
		{
			next_image = get_previous_index_from_play_list(cur_playlist_image);
		}
		if(next_image != -1)
		{
			cur_image_idx = next_image;
			api_stop_timer(&imageslide_timer_id);
			image_abort();
			if(image_rot_ang!= ANG_ORI)
			{
				image_rot_ang = ANG_ORI;
				win_imageslide_showrotate(FALSE);
				win_imageslide_showpause();
			}
			osal_task_sleep(20);
			set_play_list_info(cur_playlist_image,&cur_image_idx,NULL);
			get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node);
			win_get_fullname(image_name, file_node.path, file_node.name);
			win_image_file_play(image_name, image_rot_ang);
			decode_finish_flag = FALSE;
			osal_task_sleep(20);
			slideidx_display(TRUE);
		}
		break;
	case VACT_PAUSE:
		if(imageslide_pause_state == IMG_UNPAUSE_STATE)
		{
			imageslide_pause_state = IMG_PAUSE_STATE;
			win_imageslide_showpause();
			api_stop_timer(&imageslide_timer_id);
		}
	    else
	    {
			if(image_rot_ang == ANG_ORI)
			{
				imageslide_pause_state = IMG_UNPAUSE_STATE;
				slide_interval = (image_slide_setting.uTime_gap * 1000);
				win_imageslide_showpause();
				if(0 != image_slide_setting.uTime_gap)
					imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler);
			}
	    }
		ret = PROC_LOOP;
		break;
	case VACT_PLAY:
		if(IMG_PAUSE_STATE == imageslide_pause_state)
		{
			if(image_rot_ang == ANG_ORI)
			{
				imageslide_pause_state = IMG_UNPAUSE_STATE;
				win_imageslide_showpause();
				slide_interval = (image_slide_setting.uTime_gap * 1000);
				if(0 != image_slide_setting.uTime_gap)
					imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler);
			}
		}
		ret = PROC_LOOP;
		break;
	case VACT_ZOOM:
		if(decode_finish_flag)
		{
			if(imageslide_pause_state == IMG_UNPAUSE_STATE)
			{
				imageslide_pause_state = IMG_PAUSE_STATE;
				win_imageslide_showpause();
				api_stop_timer(&imageslide_timer_id);
			}

			win_mpzoom_open();

			if(image_rot_ang == ANG_ORI)
			{
				imageslide_pause_state = IMG_UNPAUSE_STATE;
				slide_interval = (image_slide_setting.uTime_gap * 1000);
				win_imageslide_showpause();
				imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler);
			}
		}
		break;
	case VACT_MP:
		win = (POBJECT_HEAD)(&g_win_imageslide);
		OSD_ObjClose(win,C_CLOSE_CLRBACK_FLG);

		while((POBJECT_HEAD)&g_win_usb_filelist != menu_stack_get_top())
		{
			menu_stack_pop();
		}
		
		image_abort();
		win_set_image_multiview_firstidx();
		mplayer_menu = (POBJECT_HEAD)(&g_win_imagepreview);

		if(OSD_ObjOpen(mplayer_menu,(UINT32)(~0)) != PROC_LEAVE)
			menu_stack_push(mplayer_menu);
		break;
	default:
		break;
	}

	return ret;
}
static PRESULT atnsetm_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT32 sel;
	UINT8 bID;
 	char str[10];
    UINT16 * Uni_str;
    UINT8* pstr;
	SYSTEM_DATA* sys_data;
	POBJECT_HEAD other_antset_menu;
	VACTION unact;
	COM_POP_LIST_TYPE_T list_type;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT16 cur_idx;
	BOOL b;
	UINT8 back_saved;

	sys_data = sys_data_get();

	bID = OSD_GetObjID(pObj);

	switch(event)
	{
	case EVN_PRE_CHANGE:
		sel = *((UINT32*)param1);
		if(bID == TUNER_ID)
		{
			if(TUNER_CNT < 2)
			{
				ret = PROC_LOOP;
				break;
			}

			b = win_atnsetm_check_save_motor_antenna_setting();
			if(!b)
			{
				win_compopup_init(WIN_POPUP_TYPE_OK);
				win_compopup_set_msg(NULL, NULL, RS_MSG_OUT_RANGE);
				win_compopup_open_ext(&back_saved);
				ret = PROC_LOOP;
				break;
			}

			/* Check tuner : sel has selected satellite or not.*/
			if(get_tuner_sat_cnt(sel)  == 0)
			{
				UINT8 back_saved;
				win_compopup_init(WIN_POPUP_TYPE_OK);
				win_compopup_set_msg(NULL,NULL, RS_TUNER_HAS_NO_SATE_SEL);
				win_compopup_open_ext(&back_saved);
				antset_cur_tuner = (sel == 0)? 1: 0;
				ret = PROC_LOOP;
			}
			else
				cur_tuner_idx = antset_cur_tuner = sel;
			
		}
		break;
	case EVN_POST_CHANGE:
		sel = param1;
		if(bID == TUNER_ID)
		{
			
			if(sys_data->tuner_lnb_type[sel] != LNB_MOTOR)
			{
				/* Need to change : Fixed antenna setting menu. */
				other_antset_menu = (POBJECT_HEAD)&g_win_antenna_set_fixed;
				if(OSD_ObjOpen(other_antset_menu, MENU_OPEN_TYPE_MENU + bID) != PROC_LEAVE)
				{
					menu_stack_pop();
					menu_stack_push(other_antset_menu);
				}
				ret  = PROC_LOOP;
			}
			else
			{
				//win_atnsetm_load_sat_cnt(TRUE);
				win_atnsetm_load_motor_antenna_setting(TRUE);
			}
		}
		else if(bID == MOTOR_ID)
		{
			win_atnsetm_load_local_action(TRUE);		
		}
#ifdef SUPPORT_UNICABLE
		else if(bID == LNB_ID)
		{
			if(win_unicable_setting_open(LNB_IDX))
				OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_motor, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		}
#endif
		break;		
	case EVN_REQUEST_STRING:
		sel = param1;
		Uni_str= (UINT16*)param2;
		get_lnb_name(sel,Uni_str);
		break;
		
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		if(unact == VACT_ENTER)
		{
			OSD_SetRect2(&rect,&pObj->frame);
			/*Patch: For solve pop-up windows show bugs,for example: Universal(5150-10600) can not be all show*/
			OSD_SetRect(&rect, rect.uLeft, rect.uTop, (rect.uWidth + 10), rect.uHeight);
			param.selecttype = POP_LIST_SINGLESELECT;
			switch(bID)
			{
			case LNB_ID:
				list_type = POP_LIST_TYPE_LNB;
				rect.uHeight = 330;
				param.cur = LNB_IDX;
				break;
			default:
				list_type = 0xFF;
				break;
			}

			if(list_type == 0xFF)
				break;

			cur_idx = win_com_open_sub_list(list_type,&rect,&param);
			if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur)
				break;		

			if(bID == LNB_ID)
			{
				LNB_IDX = cur_idx;
				OSD_TrackObject((POBJECT_HEAD)anesetm_items[LNB_ID - 1], C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
#ifdef SUPPORT_UNICABLE
				if(win_unicable_setting_open(LNB_IDX))
					OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_motor, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
#endif
			}
			
		}		
		break;
	}

	return ret;
}
Beispiel #4
0
static PRESULT lan_item_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8	unact,input;
	UINT8	id = OSD_GetObjID(pObj);
	POBJECT_HEAD submenu;
	SYSTEM_DATA* p_sys_data=sys_data_get();
	UINT8 lang_code[8];

	switch(event)
	{		
	case EVN_FOCUS_PRE_GET:
		break;
		
	case EVN_FOCUS_PRE_LOSE:
		break;

	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16) ;
#ifdef SHOW_WELCOME_SCREEN
		if(id != ITEM_NEXT_ID)
		{
#endif
			if(unact == VACT_ENTER)
		{
			win_language_enter_key(pObj,id);
		}
		else if(unact == VACT_DECREASE)
		{
			win_language_left_key(pObj,id);
		}
		else if(unact == VACT_INCREASE)
		{
			win_language_right_key(pObj,id);
		}
#ifdef SHOW_WELCOME_SCREEN
		}
		else if(unact == VACT_ENTER)
		{
    #ifdef EPG_MULTI_LANG
			/*set epg language*/
			p_sys_data = sys_data_get();
			STRCPY(lang_code,stream_iso_639lang_abbr[p_sys_data->lang.OSD_lang]);
			epg_set_lang_code(lang_code);
    #endif

    #ifndef NEW_DEMO_FRAME
			UIChChgApplyAudLanguage();
    #endif
			sys_data_save(1);
       	 	TTXEng_set_g0_set();
			//show_win_as_welcome = FALSE;

			submenu = (POBJECT_HEAD) & win_country_net_con;
			if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE)
			{
				menu_stack_pop();
				menu_stack_push(submenu);
			}
		}
#endif
		ret = PROC_LOOP;
		break;
	}
	return ret;

}
Beispiel #5
0
static PRESULT item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	SYSTEM_DATA* sys_data;
	union as_frontend_param network;
	UINT8 bID;
	UINT32 sel;
	UINT16* Uni_str;
    MULTISEL* msel;

	bID = OSD_GetObjID(pObj);
	sys_data = sys_data_get();

	switch(event)
	{
		case EVN_PRE_CHANGE:
			sel = *((UINT32*)param1);
			break;
		case EVN_POST_CHANGE:
			sel = param1;
			sys_data->rev2 = 0;
			switch(bID)
			{
				case COUNTRY_ID:
					sys_data->country = (COUTRY_TYPE)sel;
                       if(GERMANY == (COUTRY_TYPE)sel && GERMANY != old_country_sel)
                       {
                            msel = &item_network_sel;
                            msel->pSelTable = (void *)network_str;
                            msel->bSelType = STRING_ID;
                            msel->nSel = old_germ_serv_sel;
                            msel->nCount = GERM_SER_CNT;
                            OSD_DrawObject((POBJECT_HEAD)msel, C_UPDATE_ALL);
                       }
                       else if(GERMANY == old_country_sel && GERMANY != (COUTRY_TYPE)sel)
                       {
                            msel = &item_network_sel;
                            msel->pSelTable = (void *)(network_str+4);
                            msel->bSelType = STRING_ID; //STRING_ANSI;
                            msel->nSel = old_network_sel;
                            msel->nCount = NETWORK_NCNT;
                            OSD_DrawObject((POBJECT_HEAD)msel, C_UPDATE_ALL);
                       }
                      old_country_sel = sel;
					break;
				case NETWORK_ID:
                      if(GERMANY == OSD_GetMultiselSel(&item_country_sel))
                      {
                            osd_to_germ_serv_setting(sel);
                            old_germ_serv_sel = sel;
                      }
                      else
                      {
					    osd_to_network_setting(sel, &network);
                           sys_data->current_ft[0].c_param.sym =  network.c_param.sym;
                           sys_data->current_ft[0].c_param.constellation =  network.c_param.constellation;
					    sys_data->current_ft_count = 1;
                           old_network_sel = sel;
                      }

	            //  sys_data = sys_data_get();

					break;
				default:
					break;
			}
			break;
    /*
		case EVN_REQUEST_STRING:
			sel = param1;
			Uni_str= (UINT16*)param2;
			if(bID == NETWORK_ID)
			{
                 if(GERMANY == OSD_GetMultiselSel(&item_country_sel))
                      ComAscStr2Uni(germany_servers_str[sel], Uni_str);
                 else
				    ComAscStr2Uni(network_str[sel], Uni_str);
			}
			break;
	*/
		case EVN_FOCUS_PRE_GET:
			break;
		case EVN_FOCUS_PRE_LOSE:
			break;
		case EVN_UNKNOWN_ACTION:
			if(bID == BUTTON_PREV_ID)
			{
				POBJECT_HEAD submenu;
				extern void set_win_lang_as_welcome(BOOL iswelcome);
				set_win_lang_as_welcome(TRUE);
				submenu = (POBJECT_HEAD) & win_lan_con;
				if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE)
				{
					menu_stack_pop();
					menu_stack_push(submenu);
					ret = PROC_LOOP;
				}

			}
			else if(bID == BUTTON_NEXT_ID)
			{
                    UINT8 i;
                  for(i=sys_data->current_ft_count; i<MAX_FRONTEND_PARAM; i++)
                  {
                       sys_data->current_ft[i].c_param.sym = 0xff;
                       sys_data->current_ft[i].c_param.constellation = 0xffffffff;
                  }

                  if(!from_auto_scan)
                        sys_data_save(1);

				from_auto_scan = FALSE;

                  get_default_bandparam(sys_data->country, (Band_param *)&uCountryParam);

				extern void win_search_set_autoscan_param(void);
				win_search_set_autoscan_param();

				POBJECT_HEAD submenu;
				submenu = (POBJECT_HEAD) & g_win_search;
				if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE)
				{
					menu_stack_pop();
					menu_stack_push(submenu);
					ret = PROC_LOOP;
				}
			}
			else
				win_item_enter_key(bID);
			break;
	}

	return ret;
}
Beispiel #6
0
/**************************************************************
 *CAS Main message process entry.
 *msg_code has different meaning for different msg_type, check the 
 *tf_catask.c for detailed info.
 **************************************************************/
PRESULT ap_cas_smc_info_proc( UINT32 msg_type, UINT32 msg_code)
{
	cas_sc_t card_info;
	UINT16 cur_chan = 0;
	UINT8 scramble = 0;
	P_NODE p_node;
	POBJECT_HEAD p_top_menu = NULL,p_newtop_menu=NULL;
	PRESULT ret;

	p_top_menu = menu_stack_get_top();

	if(p_top_menu == (POBJECT_HEAD)&g_win_cti_cardinfo 
		|| p_top_menu == (POBJECT_HEAD)&g_win_cti_set_maturity
		|| p_top_menu == (POBJECT_HEAD)&g_win_cti_PPID 
		|| p_top_menu == (POBJECT_HEAD)&g_win_cti_PPID_info
		|| p_top_menu == (POBJECT_HEAD)&g_win_cti_pin)
	{
		ret = OSD_ObjProc(p_top_menu, (MSG_TYPE_MSG << 16) | msg_type, msg_code, 0);
		while( ret == PROC_LEAVE)
		{
			menu_stack_pop();
			p_newtop_menu = menu_stack_get_top();
			if(NULL != p_newtop_menu)
			{
				ret = OSD_ObjOpen(p_newtop_menu, MENU_OPEN_TYPE_STACK) ;
			}
		}
	}

	
	cas_get_sc_info_req(&card_info);	
	sys_data_get_cur_group_channel(&cur_chan, sys_data_get_cur_chan_mode());
	get_prog_at(cur_chan, &p_node);
	//get_prog_scramble_type(p_node.prog_number, &scramble);
	
	if(card_info.sc_status==0)	//smart card ok
	{
		//win_popup_msg("Smartcart is in!",NULL,0);
	}
	else if(card_info.sc_status==1)	//smart card out	
	{
		if(GetScrollStopFlag()!=SCROLL_STOP)
		{
			SetScrollStopFlag(SCROLL_STOP);
		}		
		cas_sub_clear(); 
		subtitle_clear_all_message(); //clean subtitle msg buffer when the card is out.
		
		ap_cas_fingerprint_proc(3);// to clear finger print buf and area

		
		if( p_top_menu == (POBJECT_HEAD)&g_win_ippv_popup)
		{
			OSD_ClearObject((POBJECT_HEAD)&g_win_ippv_popup, C_UPDATE_ALL);
			menu_stack_pop();
		}

		//win_popup_msg("Smartcart is out!",NULL,0);
	}
	else if(card_info.sc_status==2||card_info.sc_status==3)
	{
		//win_popup_msg(NULL,NULL,RS_CTI_READ_SMC_ERROR);
	}


}
Beispiel #7
0
static PRESULT win_biss_list_unkown_act_proc(VACTION act)
{
	PRESULT ret = PROC_LOOP;
	OBJLIST* ol;
	UINT16 sel;
	UINT32 choice;
	UINT8* sat_name;
	UINT32 sat_orbit;
	
	UINT8 back_saved;
	INT32 iret;
	//CAS_KEYINFO *Pm = NULL;

	ol = &biss_olist;
	sel = OSD_GetObjListCurPoint(ol);
	//Pm = (CAS_KEYINFO *) softcam_get_keydata((u8) CAS_ID_BISS,sel);
	switch(act)
	{
	case VACT_BISS:
	#if 0	
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_biss2, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_biss2);
		}
	#endif
		break;
	case VACT_CRYPTOWORK:
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_cryptowork, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_cryptowork);
		}
		break;
	case VACT_MORE:
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_seca, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_seca);
		}
		break;
	case VACT_DIRECT_CW:
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_direct_cw, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_direct_cw);
		}
		break;
	case VACT_patch_EDIT_WIN:
			//soc_printf("%s\n",Pm->ChanName);
		if(OSD_GetObjListCount(ol) == 0)
			break;	
		win_patch1_open(CAS_ID_BISS, sel);
		OSD_TrackObject( (POBJECT_HEAD)&g_win_biss, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;

	default:
		break;

	}

	return ret;
}
static VACTION localset_con_keymap(POBJECT_HEAD pObj, UINT32 key)
{
    VACTION act;
    
    switch(key)
    {
    case V_KEY_UP:
        act = VACT_CURSOR_UP;
        break;
    case V_KEY_DOWN:
        act = VACT_CURSOR_DOWN;
        break;      
 #ifdef EXIT_KEY_EXIT_ALL_MENU
    case V_KEY_MENU:
           	#ifdef NETWORK_FACTORY_TEST//没有网路功能,但要工厂测试网口
		if(factest_enter_to_ping_test==1)
		{
			factest_enter_to_ping_test=0;
			factest_ping_to_factory_test=1;
			OSD_ObjClose((POBJECT_HEAD)&g_win_localsetting,C_DRAW_SIGN_EVN_FLG | C_CLOSE_CLRBACK_FLG);
			menu_stack_pop();
			 if(OSD_ObjOpen((POBJECT_HEAD)&g_win_netping, 0) != PROC_LEAVE)
			{
					menu_stack_push((POBJECT_HEAD)&g_win_netping);
					
			}
			 libnet_stop_ping();
			act = VACT_PASS;
		}
		else
		{
			act = VACT_CLOSE;
		}
			
	#else
	 	act = VACT_CLOSE;
	#endif

		break;
   case V_KEY_EXIT:
   	#ifdef NETWORK_FACTORY_TEST//没有网路功能,但要工厂测试网口
		if(factest_enter_to_ping_test==1)
		{
			factest_enter_to_ping_test=0;
			factest_ping_to_factory_test=1;
			OSD_ObjClose((POBJECT_HEAD)&g_win_localsetting,C_DRAW_SIGN_EVN_FLG | C_CLOSE_CLRBACK_FLG);
			menu_stack_pop();
			 if(OSD_ObjOpen((POBJECT_HEAD)&g_win_netping, 0) != PROC_LEAVE)
			{
					menu_stack_push((POBJECT_HEAD)&g_win_netping);
			}
			 libnet_stop_ping();
			act = VACT_PASS;
		}
		else
		{
			act = VACT_CLOSE;
			exit_key_flag =TRUE;
		}
			
	#else
	 	act = VACT_CLOSE;
		exit_key_flag =TRUE;
	#endif
		
		break;
#else
    case V_KEY_MENU:
    case V_KEY_EXIT:

	#ifdef NETWORK_FACTORY_TEST//没有网路功能,但要工厂测试网口
	if(factest_enter_to_ping_test==1)
	{
		factest_enter_to_ping_test=0;
		factest_ping_to_factory_test=1;
		OSD_ObjClose((POBJECT_HEAD)&g_win_localsetting,C_DRAW_SIGN_EVN_FLG | C_CLOSE_CLRBACK_FLG);
		menu_stack_pop();
		 if(OSD_ObjOpen((POBJECT_HEAD)&g_win_netping, 0) != PROC_LEAVE)
		{
				menu_stack_push((POBJECT_HEAD)&g_win_netping);
		}
		 libnet_stop_ping();
		act = VACT_PASS;
	}
	else
		act = VACT_CLOSE;
	#else
	 act = VACT_CLOSE;
	#endif
		break;
#endif
    default:    
        act = VACT_PASS;
        break;
    }

    return act;
}
Beispiel #9
0
static PRESULT find_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
	UINT8 bID;
	UINT32 pos0;
    
	switch(event)
	{
	case EVN_PRE_OPEN:
        set_color_style();
        api_inc_wnd_count();
		if(!edit_keyboard_flag)//when flag is TRUE,it is for edit use
		{
			name_valid_func = NULL;
			MEMSET(input_name_str,0,sizeof(input_name_str));
			win_find_prog_num = 0;
            win_keyboard_set_title(RS_HELP_FIND);
		}
		
		find_init_keys();
		find_set_key_display();
		break;
	case EVN_POST_OPEN:	
		draw_caps_colbtn_ext(COLBTN_L,  COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW);
		draw_del_colbtn_ext(COLBTN_L + 120,           COLBTN_T, 1,IM_EPG_COLORBUTTON_RED);
		draw_ok_colbtn_ext(COLBTN_L + 240,       COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE);
        break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
        if(edit_keyboard_flag)
        {
		    *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;
        }
        if(!edit_keyboard_flag)
		{
			if(win_find_prog_num > 0)
			{
				OSD_ClearObject((POBJECT_HEAD)&g_win_find, C_UPDATE_ALL);
				menu_stack_pop();
				menu_stack_push((POBJECT_HEAD)&g_win_com_lst);
				ret = PROC_LOOP;
			}
		}
		break;
	case EVN_POST_CLOSE:
        api_dec_wnd_count();
		break;			
	case EVN_UNKNOWN_ACTION:     
		unact = (VACTION)(param1>>16);
		if(unact == VACT_CANCEL)
		{
			if((win_find_prog_num > 0) && (!edit_keyboard_flag))
			{
				OSD_ClearObject((POBJECT_HEAD)&g_win_com_lst, C_UPDATE_ALL);
			        win_find_prog_num = 0;
			}
			check_ok = FALSE;
			ret = PROC_LEAVE;
		}
		else if(unact >= VACT_NUM_0 && unact<= VACT_NUM_9)
		{
		    for(pos0=0;pos0<KEY_CNT;pos0++)
		    {
		        if(key_chars[pos0] == '0')
		            break;
		    }
		    bID = pos0+1 + unact - VACT_NUM_0;
		    OSD_ChangeFocus( pObj,bID,C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS);
		    ap_send_msg(CTRL_MSG_SUBTYPE_KEY_UI, V_KEY_ENTER, TRUE);
		    ret = PROC_LOOP;
		}
	}
	return ret;
}
Beispiel #10
0
static PRESULT win_conax_list_unkown_act_proc(VACTION act)
{
	PRESULT ret = PROC_LOOP;
	OBJLIST* ol;
	UINT16 sel;
	UINT32 choice;
	UINT8* sat_name;
	UINT32 sat_orbit;
	
	UINT8 back_saved;
	INT32 iret;
	//CAS_KEYINFO *Pm = NULL;

	ol = &conax_olist;
	sel = OSD_GetObjListCurPoint(ol);
	//Pm = (CAS_KEYINFO *) softcam_get_keydata((u8) CAS_ID_VIACCESS1,sel);
	switch(act)
	{
	#if 0
	case VACT_NAGRA_RSA:
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_nagra_rsa, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_nagra_rsa);
		}
		break;
	#endif
	case VACT_NAGRA2_RSA:
	#if 1
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_nagra2_rsa, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_nagra2_rsa);
		}
	#endif
		break;
	case VACT_MORE:
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_viaccess2, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_viaccess2);
		}
			break;
	case VACT_CONAX:
	#if 0
		if(OSD_ObjOpen((POBJECT_HEAD)&g_win_conax, 0xFFFFFFFF) != PROC_LEAVE)
		{
			menu_stack_pop();
			menu_stack_push((POBJECT_HEAD)&g_win_conax);
		}
	#endif
		break;		
	case VACT_patch_EDIT_WIN:
			//soc_printf("%s\n",Pm->ChanName);
		if(OSD_GetObjListCount(ol) == 0)
			break;	
		win_patch_open(CAS_ID_CONAX, sel);
		OSD_TrackObject( (POBJECT_HEAD)&g_win_conax, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;

	default:
		break;

	}

	return ret;
}
Beispiel #11
0
static PRESULT find_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
	mobile_input_type_t mobile_input_type;

	mobile_input_type.type 		= MOBILE_INPUT_NORMAL;
	mobile_input_type.caps_flag = MOBILE_CAPS_INIT_LOW;
	mobile_input_type.maxlen    = MAX_INPUT_STR_LEN;
	mobile_input_type.fixlen_flag = 0;
	mobile_input_type.callback	= input_callback;

	switch(event)
	{
	case EVN_PRE_OPEN:
		if(!edit_keyboard_flag)
			win_keyboard_set_title(RS_HELP_FIND);
		win_find_prog_num = 0;
 		mobile_input_init(&find_edt1,&mobile_input_type);

		//patch for clear find editfield content
		if(menu_stack_get(-1) == NULL)
			OSD_SetEditFieldContent(&find_edt1,STRING_UNICODE,(UINT32)"");
		break;
	case EVN_POST_OPEN:
		draw_caps_flag(CAPSFLG_L,CAPSFLG_T, 1);
		//draw_caps_del_colbtn(COLBTN_L, COLBTN_T,1);
	 	//draw_ok_cancel_colbtn(COLBTN_L, COLBTN_T + 40,1);	 	
	 	draw_caps_colbtn(COLBTN_L, 		COLBTN_T, 1);
		draw_del_colbtn(COLBTN_L + 100, 	COLBTN_T, 1);
		draw_ok_colbtn(COLBTN_L, 			COLBTN_T + 40, 1);
		draw_cancel_colbtn(COLBTN_L+ 100, 	COLBTN_T + 40, 1);
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		//*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;			
		break;
	case EVN_POST_CLOSE:
		break;			
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		if(unact == VACT_OK)
		{
			if(!edit_keyboard_flag)
			{
				if(win_find_prog_num == 0)
					ret = PROC_LEAVE;				
				else
				{
					//OSD_ObjClose(((POBJECT_HEAD)&g_win_find,C_UPDATE_ALL);
					OSD_ClearObject((POBJECT_HEAD)&g_win_find, C_UPDATE_ALL);
					menu_stack_pop();
					menu_stack_push((POBJECT_HEAD)&g_win_com_lst);
					ret = PROC_LOOP;
				}
			}
			else
			{
				check_ok = TRUE;
				ret = PROC_LEAVE;
				if(name_valid_func != NULL)
				{
					if(name_valid_func(input_name_str) == 0)
					{
						ret = PROC_LEAVE;				
					}
					else
					{
						ret = PROC_LOOP;
					}
				}
			}
		}
		else if(unact == VACT_CANCEL)
		{
			if(!edit_keyboard_flag)
			{
				if(win_find_prog_num > 0)
					OSD_ClearObject((POBJECT_HEAD)&g_win_com_lst, C_UPDATE_ALL);

				ret = PROC_LEAVE;
			}
			else
			{
				ret = PROC_LEAVE;
			}
		}		
	}
	return ret;
}
Beispiel #12
0
void ap_tf_cas_process_update(UINT8 process, UINT8 mark)
{
	date_time dt;
	SYSTEM_DATA* pSysData = NULL;
	static tem_process = 0; //
	static BOOL g_smc_read = FALSE;

	//libc_printf("smc upd process:%d, %d\n", process, mark);
	ap_tf_cas_clear_screen(CLEAR_CA_MSG);

	if(CDCA_SCALE_RECEIVEPATCH == mark)
	{
		smcupg_txt_msg.wStringID = RS_DISPLAY_DOWNLOADING;
	}
	else if(CDCA_SCALE_PATCHING == mark)
	{
		smcupg_txt_msg.wStringID = RS_TF3_SHOWMSG_UPDATE;
	}

	pSysData = sys_data_get();

	if (CDCA_SCALE_PATCHING == mark && (process == 0 ||(FALSE == g_smc_read) ))
	{
			if(FALSE == g_smc_read)
			{
				if(g_smc_no[0] != 0)
				{
					MEMCPY(pSysData->upd_smc_no, g_smc_no, sizeof(g_smc_no));
					g_smc_read = TRUE;
				}
			}
	}
		
	if(process > 100)
	{
		if (CDCA_SCALE_PATCHING == mark)
		{
			get_local_time(&dt);			
			pSysData->smc_update_dt = dt;

			if (tem_process == 100)
			{
				pSysData->bUpd_status = TRUE;
			}
			else
			{
				pSysData->bUpd_status = FALSE;
			}
		}
		
		sys_data_save(0);
#if 1
		OSD_ClearObject((POBJECT_HEAD)&smcupg_info_con, C_UPDATE_ALL);
        
		if((POBJECT_HEAD)&smcupg_info_con == menu_stack_get_top())
		{
			menu_stack_pop();
		}
        BackToFullScrPlay();
#else
		OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_msg, C_UPDATE_ALL);
		OSD_ClearObject( (POBJECT_HEAD)&smcupg_bar_progress, C_UPDATE_ALL);
		OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL);
#endif
	}
	else
	{
		if((POBJECT_HEAD)CHANNEL_BAR_HANDLE == menu_stack_get_top())
		{
			OSD_ObjClose((POBJECT_HEAD)CHANNEL_BAR_HANDLE, C_DRAW_SIGN_EVN_FLG|C_CLOSE_CLRBACK_FLG);
			menu_stack_pop();
		}
		
		if(-1 == window_pos_in_stack((POBJECT_HEAD)&smcupg_info_con))
		{
			menu_stack_push((POBJECT_HEAD)&smcupg_info_con);
		}
		
		OSD_SetProgressBarPos(&smcupg_bar_progress,(INT16)process);
		OSD_SetTextFieldContent(&smcupg_txt_progress, STRING_NUM_PERCENT, (UINT32)process);
#if 1
		OSD_DrawObject((POBJECT_HEAD)&smcupg_info_con, C_UPDATE_ALL);
#else
		OSD_DrawObject( (POBJECT_HEAD)&smcupg_txt_msg, C_UPDATE_ALL);
		OSD_DrawObject( (POBJECT_HEAD)&smcupg_bar_progress, C_UPDATE_ALL);
		OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL);
		OSD_DrawObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL);
#endif
	}

    tem_process = process;
}
Beispiel #13
0
static PRESULT factoryset_btn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;	
	//PRESULT ret = PROC_LEAVE;	
	VACTION unact;
	UINT8 bID,back_saved;
	win_popup_choice_t choice;
	UINT32 chunk_id, default_db_addr, default_db_len;

	bID = OSD_GetObjID(pObj);
	
	switch(event)
	{
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		if(unact == VACT_ENTER)
		{
		       ret = PROC_LEAVE;
			if(bID == BTN_NO_ID)
			{
				break;
			}
      
			
			//win_compopup_init(WIN_POPUP_TYPE_OKNO);
			//win_compopup_set_msg(NULL, NULL, RS_DISPLAY_SURE_TO_DELETE);
			//win_compopup_set_default_choice(WIN_POP_CHOICE_NO);
			//choice = win_compopup_open_ext(&back_saved);
			//if(choice == WIN_POP_CHOICE_YES)
			{
				win_compopup_init(WIN_POPUP_TYPE_SMSG);
				win_compopup_set_msg(NULL,NULL, RS_MSG_SAVING_DATA);
				win_compopup_open_ext(&back_saved);

				chunk_id = 0x03FC0100;
				api_get_chunk_add_len(chunk_id, &default_db_addr, &default_db_len);
				//here may reset CI+ Service Shunning parameter, 20100803
				#ifdef CI_PLUS_SERVICESHUNNING
				ci_service_shunning_reset();
				#endif
				set_default_value(DEFAULT_ALL_PROG,default_db_addr + 16);

				sys_data_factroy_init(); 
				//sys_data_set_factory_reset(TRUE);
				sys_data_set_cur_chan_mode(TV_CHAN);
				sys_data_save(TRUE);
				sys_data_load();
				if(GetMuteState())
					SetMuteOnOff(FALSE);
				if(GetPauseState())
					SetPauseOnOff(FALSE);
				win_compopup_smsg_restoreback();
                power_off_process(); //初始化后重新启动xiaosaifei
				power_on_process();
				// PRESULT ret = PROC_LEAVE;
				//ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT_ROOT, (UINT32)&g_win_PALNTSC,FALSE);
			}

    #ifdef SHOW_WELCOME_SCREEN				
			POBJECT_HEAD submenu;
			extern void set_win_lang_as_welcome(BOOL iswelcome);
			set_win_lang_as_welcome(TRUE);
			submenu = (POBJECT_HEAD) & win_lan_con;
			if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE)
			{
				menu_stack_pop();
				menu_stack_push(submenu);
				ret = PROC_LOOP;
			}
							
    #endif
		
		
		}
		break;
	}

	return ret;
}
static PRESULT atnsetf_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
	UINT32 sel;
	UINT8 bID;
 	char str[30];
    UINT16 * Uni_str;
    UINT8* pstr;
	SYSTEM_DATA* sys_data;
	POBJECT_HEAD other_antset_menu,item;
	S_NODE s_node;
	UINT16 cur_idx;
	COM_POP_LIST_TYPE_T list_type;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
    MULTISEL* msel;

	sys_data = sys_data_get();

	bID = OSD_GetObjID(pObj);

	switch(event)
	{
	case EVN_PRE_CHANGE:
		sel = *((UINT32*)param1);
		if(bID == TUNER_ID)
		{
			if(TUNER_CNT < 2)
				break;
			
			/* Check tuner : sel has selected satellite or not.*/
			if(get_tuner_sat_cnt(sel)  == 0)
			{
				UINT8 back_saved;
				win_compopup_init(WIN_POPUP_TYPE_OK);
				win_compopup_set_msg(NULL,NULL, RS_TUNER_HAS_NO_SATE_SEL);
				win_compopup_open_ext(&back_saved);
				antset_cur_tuner = (sel == 0)? 1: 0;
				win_atnsetf_load_sat_cnt(FALSE);
				ret = PROC_LOOP;
			}
			else
			{
				antset_cur_tuner = sel;
				cur_tuner_idx = antset_cur_tuner;
			}
		}		
		break;
	case EVN_POST_CHANGE:
		sel = param1;
		if(bID == LNB_ID)
		{
          	win_atnsetf_load_22k_action(TRUE);
            #ifdef SUPPORT_UNICABLE
            if(win_unicable_setting_open(LNB_IDX))
                OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_fixed, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);           
            #endif 
        }
		if(bID == TUNER_ID)
		{
			if(sys_data->tuner_lnb_type[sel] != LNB_FIXED)
			{
				/* Need to change : Motor antenna setting menu. */
				other_antset_menu = (POBJECT_HEAD)&g_win_antenna_set_motor;
				if(OSD_ObjOpen(other_antset_menu, MENU_OPEN_TYPE_MENU + bID) != PROC_LEAVE)
				{
					win_signal_close();
					menu_stack_pop();
					menu_stack_push(other_antset_menu);
				}
				ret = PROC_LOOP;
			}
			else
			{
				win_atnsetf_load_sat_cnt(TRUE);
				win_atnsetf_load_sat_setting(0,TRUE);
			}

		}
		else if(bID == SAT_ID)
			win_atnsetf_load_sat_setting(sel,TRUE);
		else if(bID != TP_ID)
		{
			win_atnsetf_modify_sat_setting(SAT_IDX);
        }

		if(ret != PROC_LOOP)
		{
            api_stop_timer(&set_frontend);
            set_frontend = api_start_timer("SETANT",600,(OSAL_T_TIMER_FUNC_PTR)atnsetf_set_frontend_handler);
        }
		break;
	case EVN_REQUEST_STRING:
		sel = param1;
		Uni_str= (UINT16*)param2;
		if(bID == SAT_ID)
		{
			get_tuner_sat_name(antset_cur_tuner,sel,Uni_str);
			sys_data_set_cur_satidx(sel);
		}
		else if(bID == TP_ID)
		{
			get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node);
			get_tp_name(s_node.sat_id,sel,Uni_str);

#ifdef SUPPORT_SELECT_SAME_SAT
			s_node.reserve_1 = antset_cur_tuner;

			modify_sat(s_node.sat_id, &s_node);
			update_data();
#endif
		}
		else if(bID == LNB_ID)
			get_lnb_name(sel,Uni_str);
		else if(bID == DISEQC11_ID)
			get_diseqc11_name(sel,Uni_str);
		else if(bID == IF_CHANNEL_ID)
			get_IF_channel_name(sel,Uni_str);
		else if(bID == CENTRE_FREQ_ID)
			get_centre_freqs_name(sel,Uni_str);
		break;
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);		
		if(unact ==  VACT_POP_UP)
		{
			OSD_SetRect2(&rect,&pObj->frame);
			/*Patch: For solve pop-up windows show bugs,for example: Universal(5150-10600) can not be all show*/
			OSD_SetRect(&rect, rect.uLeft, rect.uTop, (rect.uWidth + 10), rect.uHeight);
			param.selecttype = POP_LIST_SINGLESELECT;
			switch(bID)
			{
			case SAT_ID:
				rect.uLeft -= 40;
				rect.uWidth += 40;
				list_type = POP_LIST_TYPE_SAT;
				rect.uHeight = 300;
				param.id = antset_cur_tuner;
				param.cur = SAT_IDX;
				break;
			case LNB_ID:
				list_type = POP_LIST_TYPE_LNB;
				rect.uHeight = 300;
				param.cur = LNB_IDX;
				break;
			case TP_ID:
				list_type = POP_LIST_TYPE_TP;
				rect.uHeight = 340;
				get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node);
				param.id = s_node.sat_id;
				param.cur = TP_IDX;
				break;
			case DISEQC10_ID:
				list_type = POP_LIST_TYPE_DISEQC10;
				rect.uHeight = 280;
				param.cur = DISEQC10_IDX;
				break;
			case DISEQC11_ID:
				list_type = POP_LIST_TYPE_DISEQC11;
				rect.uHeight = 240;
				param.cur = DISEQC11_IDX;
				break;
			case IF_CHANNEL_ID:
				list_type = POP_LIST_TYPE_IF_CHANNEL;
				rect.uHeight = 200;
				param.cur = IF_CHANNEL_IDX;
				break;
			case CENTRE_FREQ_ID:
				list_type = POP_LIST_TYPE_CENTRE_FREQ;
				rect.uHeight = 200;
				param.cur = CENTRE_FREQ_IDX;
				break;     
			default:
				list_type = 0xFF;
				break;
			}

			if(list_type == 0xFF)
				break;

			cur_idx = win_com_open_sub_list(list_type,&rect,&param);
			if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur)
				break;

			item = anesetf_items[bID - 1];
            msel = anesetf_msels[bID - 1];										

			switch(bID)
			{
            case SAT_ID:
				SAT_IDX = cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);											
				win_atnsetf_load_sat_setting((UINT32)cur_idx, TRUE);
                break;
            case LNB_ID:
                LNB_IDX = cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
				win_atnsetf_load_22k_action(TRUE);
#ifdef SUPPORT_UNICABLE
				if(win_unicable_setting_open(LNB_IDX))
					OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_fixed, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
#endif
                break;
/*            case TP_ID:
				TP_IDX = cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
                break;
            case DISEQC10_ID:
				DISEQC10_IDX = cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
                break;
            case DISEQC11_ID:
				DISEQC11_IDX = cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
                break;
            case IF_CHANNEL_ID:
                IF_CHANNEL_IDX= cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
                break;
            case CENTRE_FREQ_ID:
                CENTRE_FREQ_IDX= cur_idx;
				OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
                break;
*/            default:            
                msel->nSel = cur_idx;
			    OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
                break;
            }

			if(bID != SAT_ID && bID != TP_ID)
				win_atnsetf_modify_sat_setting(SAT_IDX);			

			api_stop_timer(&set_frontend);
            set_frontend = api_start_timer("SETANT",500,(OSAL_T_TIMER_FUNC_PTR)atnsetf_set_frontend_handler);
		}
		
		break;
	}

	return ret;	
}
static PRESULT win_an_set_unkown_act_proc(VACTION act)
{
//	PRESULT  ret = PROC_PASS;   /* sky.bi 20110114 */

    switch(act)
	{

           case VACT_SINGLE_SEARCH:
		   	single_multi_srch_flag = 0;
		  	if(check_node_modified(TYPE_SAT_NODE) )
		   {
			UINT8	back_saved;
			win_compopup_init(WIN_POPUP_TYPE_SMSG);
			win_compopup_set_msg(NULL, NULL, RS_MSG_SAVING_DATA);
			win_compopup_open_ext(&back_saved);
			update_data(TYPE_SAT_NODE);
			osal_task_sleep(500);
			win_compopup_smsg_restoreback();
		   }
			if(OSD_ObjOpen((POBJECT_HEAD)&g_win_sat_srchset, 0xFFFFFFFF) != PROC_LEAVE)
				menu_stack_push((POBJECT_HEAD)&g_win_sat_srchset);
			wincom_close_help();
	             break;
	      case VACT_MULTI_SEARCH:
		   	single_multi_srch_flag = 1;
		  	if(check_node_modified(TYPE_SAT_NODE) )
		   {
			UINT8	back_saved;
			win_compopup_init(WIN_POPUP_TYPE_SMSG);
			win_compopup_set_msg(NULL, NULL, RS_MSG_SAVING_DATA);
			win_compopup_open_ext(&back_saved);
			update_data(TYPE_SAT_NODE);
			osal_task_sleep(500);
			win_compopup_smsg_restoreback();
		   }
			if(OSD_ObjOpen((POBJECT_HEAD)&g_win_sat_srchset, 0xFFFFFFFF) != PROC_LEAVE)
				menu_stack_push((POBJECT_HEAD)&g_win_sat_srchset);
			wincom_close_help();
	             break;
				 
	      case VACT_TP_SEARCH:
		  	if(check_node_modified(TYPE_SAT_NODE) )
		   {
			UINT8	back_saved;
			win_compopup_init(WIN_POPUP_TYPE_SMSG);
			win_compopup_set_msg(NULL, NULL, RS_MSG_SAVING_DATA);
			win_compopup_open_ext(&back_saved);
			update_data(TYPE_SAT_NODE);
			osal_task_sleep(500);
			win_compopup_smsg_restoreback();
		   }

			if(OSD_ObjOpen((POBJECT_HEAD)&g_win_tplist, 0xFFFFFFFF) != PROC_LEAVE)
			{
				menu_stack_push((POBJECT_HEAD)&g_win_tplist);
				

//				FIXED_PRINTF("menu_count :%d\n",menu_stack_get_menu_count());
				
			}
	             break;
		/*sky.bi 20110112*/
#if   0 //defined(ORDER_GZ1011006)
		case VACT_ANTENNA_MENU:
		{
				g_enter_antenna_menu_flag = 1;
//				FIXED_PRINTF("VACT_ANTENNA_MENU  OSD_ObjOpen menu_count 0:%d\n",menu_stack_get_menu_count());
				if(OSD_ObjOpen((POBJECT_HEAD)&g_win_antenna_connect, MENU_OPEN_TYPE_MENU) != PROC_LEAVE)
				{
					win_signal_close();

//					FIXED_PRINTF("VACT_ANTENNA_MENU  OSD_ObjOpen menu_count 1:%d\n",menu_stack_get_menu_count());
					menu_stack_pop();

					menu_stack_push((POBJECT_HEAD)&g_win_antenna_connect);

//					FIXED_PRINTF("VACT_ANTENNA_MENU  OSD_ObjOpen menu_count 2:%d\n",menu_stack_get_menu_count());
				}

			//	ret  = VACT_CLOSE;    //sky.bi 20110114
			break;
		}
	#endif

    }

//	return ret;   //sky.bi 20110114
}