コード例 #1
0
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static void win_satsrch_set_drawselectsats(void)
{
    struct OSDRect rect;
    UINT16 i,sat_cnt,num;
    UINT16 col,row;
    TEXT_FIELD* txt = &satsrch_multisats_name;
    S_NODE s_node;
	UINT16 top;
	UINT16 str[50];
	UINT16 nStrLen;
    
    if(single_multi_srch_flag == 0) return;
    MEMSET(sat_ids,0,sizeof(sat_ids)/sizeof(sat_ids[0]));
    sat_cnt = num = get_tuner_sat_cnt(TUNER_EITHER_SELECT);//get_selected_sat_num();
    if(num > SELSAT_ROW_CNT *2)
        num = SELSAT_ROW_CNT *2;
	txt->pString = display_strs[0];
	for(i=0;i<sat_cnt;i++)
	{
		get_tuner_sat(TUNER_EITHER_SELECT,i,&s_node);
        sat_ids[i] = s_node.sat_id;
	}
	
    for(i=0;i<SELSAT_ROW_CNT*2;i++)
    {
        row = i/2;

		top = SELSAT_T + row * SELSAT_H+40;
		if(i%2 == 0)
			OSD_SetRect(&txt->head.frame, SELSAT_L0, top, SELSAT_W, SELSAT_H-6);
		else
			OSD_SetRect(&txt->head.frame, SELSAT_L1, top, SELSAT_W, SELSAT_H-6);
        get_tuner_sat(TUNER_EITHER_SELECT,i,&s_node);
		if(i<sat_cnt) 
		{
		    if(s_node.DiSEqC_type !=6)
			    ComUniStrCopyChar((UINT8*)txt->pString, s_node.sat_name);
        }

		else
			ComAscStr2Uni("", txt->pString);
		OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);
    }
	
    if(num == 0)
    {
    	txt->pString = NULL;
    	top = SELSAT_T + 2 * SELSAT_H+40;
		OSD_SetRect(&txt->head.frame, SELSAT_L0 + SELSAT_W/2, top, SELSAT_W, SELSAT_H-6);		
		OSD_SetTextFieldContent(txt, STRING_ID , RS_DISPLAY_NO_SATELLITE/*RS_NO_SATELLITE_SELECT*/); 
		OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);
    }
}
コード例 #2
0
ファイル: win_search.c プロジェクト: Janesak1977/ali3602
static UINT16 get_sat_pos(UINT16 sat_id)
{
    UINT32 i, sat_cnt = get_tuner_sat_cnt(0);
    S_NODE s_node;
    for (i = 0; i < sat_cnt; i++)
    {
        get_tuner_sat(0, i, &s_node);
        if (s_node.sat_id == sat_id)
            return i;
    }
#ifdef SUPPORT_TWO_TUNER
	sat_cnt = get_tuner_sat_cnt(1);
    for (i = 0; i < sat_cnt; i++)
    {
        get_tuner_sat(1, i, &s_node);
        if (s_node.sat_id == sat_id)
            return i;
    }
#endif
    //DBG_NUM(sat_id);
    ASSERT(0);

    return 0;
}
コード例 #3
0
static UINT8  installation_check_item_active(UINT32 id)
{
	UINT8 action;

#ifndef UI_6PAGE_SUPPORT
    if (id >= GAMES_TETRIS_ID)
        return C_ATTR_ACTIVE;

    if (id >= TOOLS_INFO_ID)
        return tools_check_item_active(id);

    if (id >= SYSTEM_LANG_ID)
        return system_check_item_active(id);
#endif
	action = C_ATTR_ACTIVE;
	
	switch(id)
	{
	case INSTALL_ANTENNA_CONNECT_ID:
	case INSTALL_SAT_LIST_ID:
#ifdef SATLLITE_SHARE_SUPPORT
      case  INSTALL_SHARE_SETUP_ID:     //guop add 20100903
#endif
		break;
	case INSTALL_ANTENNA_SET_ID:
	case INSTALL_SINGLESRCH_ID:
	case INSTALL_MULTISRCH_ID:
	case INSTALL_TPSRCH_ID:			
		if(get_tuner_sat_cnt(TUNER_EITHER) == 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
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static PRESULT satsrch_item_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 bID;
	VACTION unact;
	POBJECT_HEAD submenu;
	UINT8 back_saved;
		
	bID = OSD_GetObjID(pObj);

	switch(event)
	{
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		if(unact == VACT_ENTER && bID == START_ID)
		{
			
			if(single_multi_srch_flag && get_tuner_sat_cnt(TUNER_EITHER_SELECT) == 0)
			{
				win_compopup_init(WIN_POPUP_TYPE_OK);
				win_compopup_set_msg(NULL, NULL, RS_DISPLAY_NO_SATELLITE);
				win_compopup_open_ext(&back_saved);
				ret = PROC_LOOP;
				break;					
			}
			win_satsrch_set_search_param();
			submenu = (POBJECT_HEAD)&g_win_search;
			if(OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE)
				menu_stack_push(submenu);
				
			ret = PROC_LOOP;
		}
		
		break;
	}

	return ret;
}
コード例 #5
0
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static PRESULT satsrch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	MULTISEL* msel;
	UINT16 title_id,sat_idx,sat_cnt;
	OSD_RECT rect;
	POBJECT_HEAD lastitem;
	SYSTEM_DATA* sys_data = sys_data_get();
	UINT16 i;
	UINT8 flag;
	S_NODE s_node;
	
	switch(event)
	{
	case EVN_PRE_OPEN:
		sat_idx = 0;
		if(!single_multi_srch_flag)
		{
			if(sys_data_get_cur_satidx() == (UINT16)(~0))
				sat_idx = win_load_default_satidx();
			else
				sat_idx = sys_data_get_cur_satidx();
		}
		
		recreate_sat_view(VIEW_ALL, 0);

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))				
		for(i=0;i<get_sat_num(VIEW_ALL);i++)
		{
			get_sat_at((UINT16)i,VIEW_ALL,&s_node);

			flag = s_node.tuner1_valid | s_node.tuner2_valid;

			if(s_node.selected_flag != flag)
			{
				s_node.selected_flag = flag;
				modify_sat(s_node.sat_id, &s_node);
			}				
		}
#endif				
		
		msel = satsrch_sels[SAT_ID - 1];
		sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);
		OSD_SetMultiselCount(msel, sat_cnt);		
		if(sat_idx >= sat_cnt)
		{
			sat_idx = 0;
		}
		OSD_SetMultiselSel(msel,sat_idx);
		if(single_multi_srch_flag)
			title_id = RS_INSTALLATION_MULTI_SEARCH;
		else
			title_id = RS_INSTALLATION_SINGLE_SEARCH;
		wincom_open_subtitle(pObj,title_id,0);

		/*lastitem = (POBJECT_HEAD)&satsrch_item7;
		if(single_multi_srch_flag)
			OSD_SetObjpNext(lastitem, &satsrch_multisats_back);
			//OSD_SetObjpNext(lastitem, NULL);
		else
			OSD_SetObjpNext(lastitem, NULL);*/
		
		win_satsrch_set_nitactive(FALSE);
		set_container_active(&satsrch_item6, C_ATTR_INACTIVE);
		get_sat_at(sat_idx,SET_SELECTED,&s_node);
		if(sys_data->antenna_connect_type == ANTENNA_CONNECT_DUAL_DIFF)
		{
		#ifdef SUPPORT_SELECT_SAME_SAT
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, ((s_node.reserve_1 == 0)? RS_LNB1 : RS_LNB2));
		#else
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, (s_node.tuner1_valid ? RS_LNB1 : RS_LNB2));		
		#endif
		}
		else
		{
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, RS_LNB1);
		}
		OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL);
#ifndef SUPPORT_TWO_TUNER
             remove_menu_item(&g_win_sat_srchset,(POBJECT_HEAD)&satsrch_item6,(CON_H + CON_GAP));     //guop add  
#endif
		break;
	case EVN_POST_OPEN:
	    if(single_multi_srch_flag == 1)
		{
			OSD_DrawObject((POBJECT_HEAD)&satsrch_split,C_UPDATE_ALL);
	    }
		win_satsrch_set_drawselectsats();
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;			
		break;
	case EVN_POST_CLOSE:
		wincom_close_subtitle();
		OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
		break;			
			
	}

	return ret;
}
コード例 #6
0
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static PRESULT satsrch_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
	UINT32 sel;
	UINT8 bID;
 	char str[10];
    UINT16 * Uni_str;
    UINT8* pstr;
	UINT16 cur_idx;
	COM_POP_LIST_TYPE_T list_type;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT16 i,n = 0;
	S_NODE s_node;
	UINT32 flag;

	bID = OSD_GetObjID(pObj);

	switch(event)
	{
	case EVN_PRE_CHANGE:
		sel = *((UINT32*)param1);
		break;
	case EVN_POST_CHANGE:
		sel = param1;
		if(bID == MODE_ID)
			win_satsrch_set_nitactive(TRUE);
        if(bID == SAT_ID)
        {
			get_sat_at(sel,SET_SELECTED,&s_node);		
		#ifdef SUPPORT_TWO_TUNER  //guop modify
		#ifdef SUPPORT_SELECT_SAME_SAT
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, ((s_node.reserve_1 == 0) ? RS_LNB1 : RS_LNB2));
		#else
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, (s_node.tuner1_valid ? RS_LNB1 : RS_LNB2));
		#endif
		
			OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL);
		#endif
        }

		
		break;
	case EVN_REQUEST_STRING:
		sel = param1;
		Uni_str= (UINT16*)param2;
		if(bID == SAT_ID)
		{
			get_tuner_sat_name(2,sel,Uni_str);
			sys_data_set_cur_satidx(sel);
		}	
		break;
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);		
		if(unact ==  VACT_POP_UP)
		{
			OSD_SetRect2(&rect,&pObj->frame);
			switch(bID)
			{
			case SAT_ID:
				rect.uLeft -= 80;
				rect.uWidth += 80;
				list_type 	= POP_LIST_TYPE_SAT;
				rect.uHeight = 300;
				param.id 	= TUNER_EITHER;
				param.cur 	= SATSRCH_SAT_IDX;
				if(single_multi_srch_flag == 0)
					param.selecttype = POP_LIST_SINGLESELECT;
				else
				{
					MEMSET(sat_select,0,sizeof(sat_select));
					n = get_tuner_sat_cnt(TUNER_EITHER);
					if(n == 0)
					{
						list_type = 0xFF;
						break;
					}

					for(i=0;i<n;i++)
					{
						get_tuner_sat(TUNER_EITHER,i,&s_node);
						if(s_node.selected_flag)
							sat_select[i] = 1;							
					}
#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))
					param.selecttype = POP_LIST_MULTISELECT;
#else
					param.selecttype = POP_LIST_SINGLESELECT;
#endif
					param.select_array = sat_select;					
				}
				break;
			default:
				list_type = 0xFF;							
			}
			
			if(list_type == 0xFF)
				break;

			cur_idx = win_com_open_sub_list(list_type,&rect,&param);
			if(single_multi_srch_flag == 0)
			{
				if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur)
					break;
			}
			else
			{
				/* Check the select satellite */

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))				
				for(i=0;i<n;i++)
				{
					if(win_comlist_ext_check_item_sel(i))
						flag = 1;
					else
						flag = 0;
					get_tuner_sat(TUNER_EITHER,i,&s_node);
					if(s_node.selected_flag != flag)
					{
						s_node.selected_flag = flag;
						modify_sat(s_node.sat_id, &s_node);						
					}
				}
				update_data(TYPE_SAT_NODE);
#endif				
			}

			if(single_multi_srch_flag == 0)
				SATSRCH_SAT_IDX = cur_idx;
			get_sat_at(cur_idx,SET_SELECTED,&s_node);		
#ifdef SUPPORT_SELECT_SAME_SAT
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, ((s_node.reserve_1 == 0) ? RS_LNB1 : RS_LNB2));
#else
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, (s_node.tuner1_valid ? RS_LNB1 : RS_LNB2));
#endif
			OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL);
			OSD_TrackObject((POBJECT_HEAD)&satsrch_item1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			if(single_multi_srch_flag)
			{
				/* TODO :
					Draw the select satellites name */
					win_satsrch_set_drawselectsats();
			}
	
	
		}
		break;
	}

	return ret;
	
}
コード例 #7
0
ファイル: win_ota_set.c プロジェクト: Janesak1977/ali3602
void win_otaset_load_default_setting(BOOL checkonly)
{
	UINT8 sat_pos;	
    UINT32 sat_num;
    UINT32 tp_num;
    UINT32 tp_pos;
    UINT32 i,j;
    S_NODE s_node;
    T_NODE t_node;

	sat_num = get_tuner_sat_cnt(OTA_TUNER_IDX);

	// When enter tp list window, the tp view have been switch to VIEW_SINGLE_SAT.
	// switch it to VIEW_ALL.
	recreate_tp_view(VIEW_ALL ,0);


	SAT_NUM = sat_num;
	SAT_POS = 0;


	sat_pos = 0xFF;
	tp_pos = INVALID_POS_NUM;

	if(!checkonly)
	{
		for(i=0;i<sat_num;i++)
	    {
	    	get_tuner_sat(OTA_TUNER_IDX, i, &s_node);

	        if(s_node.sat_orbit == OTA_DATA_SAT_POS)
	        {
	            sat_pos = i;
	            tp_num = get_tp_num_sat(s_node.sat_id);
	            for(j=0;j<tp_num;j++)
	            {
	                get_tp_at(s_node.sat_id,j,&t_node);
	                if(  t_node.frq >= (OTA_DATA_TP_FREQ - 3)
	                    && t_node.frq <= (OTA_DATA_TP_FREQ + 3)
	                    && t_node.sym >= (OTA_DATA_TP_SYMB - 500)
	                    && t_node.sym <= (OTA_DATA_TP_SYMB + 500)
	                    && t_node.pol == OTA_DATA_TP_POL)
	                    {
	                        tp_pos = j;
	                        break;
	                    }
	            }
	            
	            break;
	        }
	    }
		
		if(sat_pos == 0xFF)
			sat_pos = 0;
		
	}
	else
	{
		sat_pos = ota_satpos;
		if(sat_pos >= sat_num)
			sat_pos = 0;
		tp_pos = TP_POS ;
	}
	SAT_POS = sat_pos;

	ota_satpos = sat_pos;

	get_tuner_sat(OTA_TUNER_IDX, sat_pos, &s_node);
	tp_num = get_tp_num_sat(s_node.sat_id);

	TP_NUM = tp_num;
	if(tp_pos >= tp_num)
		tp_pos = 0;
	TP_POS = tp_pos;	

	if(TP_NUM > 0)
	{
		 get_tp_at(s_node.sat_id,tp_pos,&t_node);
		 ota_freq = t_node.frq;
		 ota_symb = t_node.sym;
		 ota_pol 	= t_node.pol;
	}
	else
	{

		ota_freq = OTA_DATA_TP_FREQ;
		ota_symb = OTA_DATA_TP_SYMB;
		ota_pol  = OTA_DATA_TP_POL;
	}

	ota_pid = OTA_DATA_PID;
コード例 #8
0
ファイル: win_factory_set.c プロジェクト: alkap007/ali3606
static PRESULT factoryset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	CONTAINER* cont = (CONTAINER*)pObj;
	UINT8	id = OSD_GetObjID(pObj);
	UINT16 sat_idx,sat_cnt;//-a by wangyang 2011-11-03 for factory set del sat program
	UINT16 i;
	UINT8 flag;
	S_NODE s_node;

	switch(event)
	{
		case EVN_PRE_OPEN:
			//OSD_SetContainerFocus(cont, 1);
//-a by wangyang 2011-11-03 for factory set del sat program{{
		sat_idx = 0;
		if(sys_data_get_cur_satidx() == (UINT16)(~0))
			sat_idx = win_load_default_satidx();
		else
			sat_idx = sys_data_get_cur_satidx();
		
		recreate_sat_view(VIEW_ALL, 0);

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))				
		for(i=0;i<get_sat_num(VIEW_ALL);i++)
		{
			get_sat_at((UINT16)i,VIEW_ALL,&s_node);

			flag = s_node.tuner1_valid | s_node.tuner2_valid;

			if(s_node.selected_flag != flag)
			{
				s_node.selected_flag = flag;
				modify_sat(s_node.sat_id, &s_node);
			}				
		}
#endif				
		
		//msel = satsrch_sels[SAT_ID - 1];
		sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);
		OSD_SetMultiselCount(&factoryset_sel5, sat_cnt);
		/*if(sat_idx >= sat_cnt)//albert.li del 2011.7.6
		{
			sat_idx = 0;
		}
		OSD_SetMultiselSel(msel,sat_idx);*/
		//sat_idx=get_sat_idx_in_selected_sats2(sat_cnt);//albert.li add 2011.7.6
		OSD_SetMultiselSel(&factoryset_sel5,sat_idx);
//-a by wangyang 2011-11-03 for factory set del sat program}}			
		wincom_open_subtitle((POBJECT_HEAD)&win_factoryset_con,RS_TOOLS_FACTORY_SETTING, 0);
			break;
			
		case EVN_POST_OPEN:
			break;
		
		case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
			
			break;

		case EVN_POST_CLOSE:
	  		wincom_close_subtitle();
			OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
			break;
	}
	return ret;
}
コード例 #9
0
static void win_satsrch_set_search_param(void)
{
	UINT32  search_mode;
	UINT32 prog_type;
	S_NODE s_node;
	struct as_service_param param;

	struct vdec_device *vdec;
	struct vdec_io_get_frm_para vfrm_param;
	UINT32 addr, len;

	UINT32  sat_index = 0 ; /*sky.bi 20101228*/
	UINT32  default_satidx = 0;
	UINT32  temp_value = 0;
//	BOOL   find_flag = false;
	
	//tv/radio/all
	if(SATSRCH_CHAN_IDX==1)
		prog_type = P_SEARCH_TV;
	else if(SATSRCH_CHAN_IDX==2)
		prog_type = P_SEARCH_RADIO;
	else// if(SATSRCH_CHAN_IDX==0)
		prog_type = P_SEARCH_TV|P_SEARCH_RADIO;
	
	/* FTA Only */
	if (SATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA;
	else// if (sSATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA|P_SEARCH_SCRAMBLED;

	param.as_from = AS_FREQ_MIN;
	param.as_to = AS_FREQ_MAX;

	param.as_prog_attr = prog_type|search_mode;
#ifndef NEW_DEMO_FRAME
    if(single_multi_srch_flag == 0)   
    {
	    get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX,&s_node);
        param.as_sat_id = s_node.sat_id;
        if (s_node.lnb_type == LNB_CTRL_22K)
        {
        	param.as_from = 950;
	        param.as_to = 2150;
        }
    }
    else
    {
         param.as_sat_ids = sat_ids;
    }
#else
	param.as_frontend_type = FRONTEND_TYPE_S; 
   	if(single_multi_srch_flag == 0)   
    	{
		get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX, &s_node);
		param.sat_ids[0] = s_node.sat_id;
 		param.as_sat_cnt = 1;
   	}
    	else
    	{
        	param.as_sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);

		/*设置选中的卫星为第一颗卫星 20101228  sky.bi   */
		default_satidx = sys_data_get_cur_satidx();   

		for (sat_index = 0; sat_index < param.as_sat_cnt;++sat_index)
		{
			if (default_satidx > param.as_sat_cnt)    
			{
				break;
			}

			if (sat_ids[default_satidx] == sat_ids[sat_index] )
			{				
				temp_value = sat_ids[0];
				sat_ids[0] = sat_ids[default_satidx];
				sat_ids[default_satidx] = temp_value;

				break;
			}
			
		}
		
		MEMCPY(param.sat_ids, sat_ids, param.as_sat_cnt * sizeof(UINT16));
    	}
#endif
    
	if(SATSRCH_MODE_IDX == 0)
	{
        if(single_multi_srch_flag == 0)        
		    param.as_method = AS_METHOD_FFT;
        else
            param.as_method = AS_METHOD_MULTI_FFT;
	}
	else
	{
		
		if(single_multi_srch_flag == 0)  
		    param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_SAT_TP : AS_METHOD_NIT;
        else
            param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_MULTI_TP : AS_METHOD_MULTI_NIT;
	}
	param.as_p_add_cfg = PROG_ADD_REPLACE_OLD;   /*sky.bi 20101225*/
	param.as_handler = NULL;

	// set param 
	win_search_set_param(&param);

	//update_data();
#if 0
	vdec = (struct vdec_device *)dev_get_by_id(HLD_DEV_TYPE_DECV, 0);
	vfrm_param.ufrm_mode = VDEC_UN_DISPLAY;
	vdec_io_control(vdec, VDEC_IO_GET_FRM, (UINT32)&vfrm_param);
	addr = vfrm_param.tFrmInfo.uC_Addr;
	len = (vfrm_param.tFrmInfo.uHeight*vfrm_param.tFrmInfo.uWidth*3)/2;
#else
    addr = __MM_AUTOSCAN_DB_BUFFER_ADDR;
    addr &= 0x8fffffff;
    len = __MM_AUTOSCAN_DB_BUFFER_LEN;
#endif
	db_search_init((UINT8 *)addr, len);

}
コード例 #10
0
ファイル: win_tp_list.c プロジェクト: alkap007/ali3606
static void win_tplist_load_sat(BOOL updatesat)
{
	UINT16 i,tp_num,focus_pos,max_top;
	OBJLIST* ol;
	CONTAINER* item;	
	TEXT_FIELD* txt;	
	SCROLL_BAR* sb;	
	S_NODE s_node;	
	T_NODE prog_tp_node;

	if(cur_tp_sat_idx >= get_tuner_sat_cnt(TUNER_EITHER) )
		cur_tp_sat_idx= 0;
	
	get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node);
	
	ol = &tplst_olist;
	txt = &tplst_sat;
	sb = &tplst_scb;

	recreate_tp_view(VIEW_SINGLE_SAT, s_node.sat_id);
	tp_num = get_tp_num_sat(s_node.sat_id);
	OSD_SetObjListCount(ol, tp_num);	/* Set count */
	focus_pos = tp_list_pos;//OSD_GetObjListCurPoint(ol);

    if (tp_num > OSD_GetObjListPage(ol))
        max_top = tp_num - OSD_GetObjListPage(ol);
    else
        max_top = 0;

    if (focus_pos == 0xffff)
    {
    	if(playing_pnode.sat_id == s_node.sat_id)
    	{
    		for(i = 0;i < tp_num;i++)
    		{
    			get_tp_at(playing_pnode.sat_id, i, &prog_tp_node);
    			if(prog_tp_node.tp_id == playing_pnode.tp_id)
    			{
    				focus_pos = i;
                	if (focus_pos > max_top)
                        tp_list_top = max_top;
                    else
                        tp_list_top = focus_pos;
    				break;
    			}
    		}
    	}
    }
	if(focus_pos >= tp_num)
	{
		focus_pos = 0;
        tp_list_top = 0;
	}
	
	OSD_SetObjListCurPoint(ol, focus_pos);
	OSD_SetObjListNewPoint(ol, focus_pos);
	OSD_SetObjListTop(ol, tp_list_top);
	OSD_SetScrollBarMax(sb,tp_num);
	OSD_SetScrollBarPos(sb, focus_pos);

	win_tplist_set_sat_display();

	if(updatesat)
		OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);		

}
コード例 #11
0
ファイル: win_tp_list.c プロジェクト: alkap007/ali3606
static PRESULT win_tplist_list_unkown_act_proc(VACTION act)
{
	PRESULT ret = PROC_LOOP;
	UINT8	pre_sat_idx;
	UINT16 sel,sat_cnt;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	OBJLIST* ol;
	S_NODE s_node;
	T_NODE t_node;
	UINT32 freq,symb,pol;
	UINT8 back_saved;
	UINT32 ftaonly_VPid,srch_chan_APid,nit_PPid;
	UINT32 choice;
	POBJECT_HEAD sub_menu;
	INT32 iret;
	UINT16 pre_sat_id,cur_sat_id;

	sat_cnt = get_tuner_sat_cnt(TUNER_EITHER);
	
	get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node);
	ol = &tplst_olist;
	sel = OSD_GetObjListCurPoint(ol);

	pre_sat_idx = cur_tp_sat_idx;

	switch(act)
	{
	case VACT_SAT_PRE:
		if(cur_tp_sat_idx > 0)
			cur_tp_sat_idx --;
		else
			cur_tp_sat_idx = sat_cnt - 1;
		goto SAT_CHANGE;
		
	case VACT_SAT_NEXT:
		if(cur_tp_sat_idx < (sat_cnt - 1))
			cur_tp_sat_idx ++;
		else
			cur_tp_sat_idx = 0;					
		goto SAT_CHANGE;
		
	case VACT_SAT_SELECT:
		param.id = TUNER_EITHER;
		param.cur = cur_tp_sat_idx;
		param.selecttype = POP_LIST_SINGLESELECT;	
		OSD_SetRect(&rect, LST_SAT_L - 20 , LST_SAT_T, LST_SAT_W + 40, 360);
		rect.uTop += LST_SAT_H;
		sel = win_com_open_sub_list(POP_LIST_TYPE_SAT,&rect,&param);
		if(sel < sat_cnt)
			cur_tp_sat_idx = sel;			
		goto SAT_CHANGE;
SAT_CHANGE:
        tp_list_pos = 0;
        tp_list_top = 0;
		if(cur_tp_sat_idx != pre_sat_idx)
		{
			pre_tp_sat_idx = pre_sat_idx;
			get_tuner_sat(TUNER_EITHER, pre_sat_idx, &s_node);			
			pre_sat_id = s_node.sat_id;

			get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node);			
			cur_sat_id = s_node.sat_id;

			#ifdef SUPPORT_TWO_TUNER
			#ifdef SUPPORT_SELECT_SAME_SAT
				cur_tuner_idx = s_node.reserve_1; //s_node.tuner1_valid? 0 : 1;
			#else
				cur_tuner_idx = s_node.tuner1_valid? 0 : 1;			
			#endif
			#endif
			
			if(win_tplist_check_change())
				update_data();
			win_tplist_load_sat(TRUE);
			//OSD_TrackObject( (POBJECT_HEAD)&tplst_olist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			api_stop_timer(&tpturn_timer_id);			
			tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler);		
		}
		break;
	case VACT_TP_EDIT:
		/* If not TP, can't EDIT */
		if(OSD_GetObjListCount(ol) == 0)
			break;
		
		get_tp_at(s_node.sat_id,sel, &t_node);		
		choice = win_tpe_open(0, s_node.sat_id, t_node.tp_id);
		if( choice)
 		{
			win_tpe_get_setting(&freq, &symb, &pol);
			if(freq != t_node.frq || symb != t_node.sym || pol != t_node.pol)
			{
				t_node.frq = freq;
				t_node.sym = symb;
				t_node.pol = pol;				
				modify_tp(t_node.tp_id,&t_node);
				api_stop_timer(&tpturn_timer_id);
				tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler);
				
			}
		}
		
		//OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		
		break;
	case VACT_TP_ADD:
		if(OSD_GetObjListCount(ol) == MAX_TP_NUM)
			break;
		extern UINT32 edit_tp_exist;
	    edit_tp_exist = 0;
		
		choice = win_tpe_open(1, s_node.sat_id, 0);
		if(choice)
		{
			win_tpe_get_setting(&freq, &symb, &pol);
			MEMSET(&t_node,0,sizeof(t_node) );
			t_node.frq = freq;
			t_node.sym = symb;
			t_node.pol = pol;	
			t_node.sat_id = s_node.sat_id;
			iret = add_node(TYPE_TP_NODE,s_node.sat_id,(void*)&t_node);
			if((iret == DBERR_MAX_LIMIT) || (iret == DBERR_FLASH_FULL))
			{
				OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
				win_compopup_init(WIN_POPUP_TYPE_OK);
				win_compopup_set_msg(NULL,NULL, RS_DISPLAY_TOO_MANY_TP);
				win_compopup_open_ext(&back_saved);
				break;				
			}
			OSD_SetObjListCount(ol, OSD_GetObjListCount(ol) + 1);
			//OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			OSD_ChangeFocus((POBJECT_HEAD)ol,OSD_GetObjListCount(ol) - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS);

			api_stop_timer(&tpturn_timer_id);
			tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler);
			
		}
		else
		{
            OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			//OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
             if( edit_tp_exist > 0)
             {
                 OSD_ChangeFocus((POBJECT_HEAD)ol,edit_tp_exist - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS);
                 edit_tp_exist = 0;
             }
             //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		}
		break;
	case VACT_TP_DEL:
		/* If not TP, can't DEL */
		if(OSD_GetObjListCount(ol) == 0)
			break;

		win_compopup_init(WIN_POPUP_TYPE_OKNO);
		win_compopup_set_msg(NULL, NULL,RS_DISPLAY_SURE_TO_DELETE);
		if(win_compopup_open_ext(&back_saved) != WIN_POP_CHOICE_YES)
			break;
		
		get_tp_at(s_node.sat_id,sel, &t_node);	
		del_tp_by_id(t_node.tp_id);
		OSD_SetObjListCount(ol, OSD_GetObjListCount(ol) -1);
		OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		
		if( OSD_GetObjListCount(ol) > 0)
		{	
			if(sel ==  OSD_GetObjListCount(ol))	/* Delete last TP */
				OSD_ChangeFocus((POBJECT_HEAD)ol,OSD_GetObjListCount(ol) - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS);
			else
				tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler);		
		}
		break;
	case VACT_TP_SRCH:
		/* If not TP, can't SEARCH */
		if(OSD_GetObjListCount(ol) == 0)
			break;

        sys_data_set_cur_satidx(cur_tp_sat_idx);
        tp_list_pos = OSD_GetObjListCurPoint(ol);
        tp_list_top = OSD_GetObjListTop(ol);

		choice = win_tpsrch_open(&ftaonly_VPid,&srch_chan_APid,&nit_PPid);
		if(choice==1)
		{
			win_tpsrch_set_search_param(ftaonly_VPid,srch_chan_APid,nit_PPid);
			sub_menu = (POBJECT_HEAD)&g_win_search;
			wincom_close_help();
			if(OSD_ObjOpen(sub_menu, 0xFFFFFFFF) != PROC_LEAVE)
			{
				menu_stack_push(sub_menu);
				set_movedish_flag(TRUE);/*only tp search,need not moving dish when return*/
			}
		}
		else if(choice==2) //pid search
		{
			tp_VPid = ftaonly_VPid;
			tp_APid = srch_chan_APid;
			tp_PPid = nit_PPid;
			
			prog_callback_register((prog_node_return)win_tplist_set_search_pid_callback);

			get_tp_at(s_node.sat_id,sel,&t_node);
			win_search_set_pid_param(t_node.tp_id, tp_VPid, tp_APid, tp_PPid);
			
			win_tpsrch_set_search_param(P_SEARCH_FTA|P_SEARCH_SCRAMBLED,P_SEARCH_TV|P_SEARCH_RADIO,0);

			sub_menu = (POBJECT_HEAD)&g_win_search;
			wincom_close_help();
			if(OSD_ObjOpen(sub_menu, 0xFFFFFFFF) != PROC_LEAVE)
				menu_stack_push(sub_menu);

		}
		else
		{
			//OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		}	
		break;
		
	}


	return ret;	
}
コード例 #12
0
ファイル: win_motor_setting.c プロジェクト: alkap007/ali3606
static PRESULT motorset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	S_NODE s_node;
	UINT8 back_saved;
	UINT16 title_strid;
	POBJECT_HEAD sat_item = (POBJECT_HEAD)&motorset_item1;
	POBJECT_HEAD tp_item = (POBJECT_HEAD)&motorset_item2;
	
	SYSTEM_DATA* sys_data;
	sys_data = sys_data_get();

	

	switch(event)
	{
	case EVN_PRE_OPEN:
		tone_voice_init = 0;
		diskmotor_move_state = 0;
		diskmove_timer_id = OSAL_INVALID_ID;

		SAT_CNT = get_tuner_sat_cnt(antset_cur_tuner);
		SAT_IDX =win_load_default_satidx();
		get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node);

		win_motorset_load_sat(SAT_IDX,FALSE);
		if(sys_data->tuner_lnb_type[antset_cur_tuner] != LNB_MOTOR)
			return PROC_LEAVE;
		if(sys_data->tuner_lnb_antenna[antset_cur_tuner].motor_type == LNB_MOTOR_DISEQC12)
		{
			title_strid = RS_MOTOR_SETTING;
			sat_item->bUpID 	= RECACULATE_ID;
			tp_item->bDownID 	= POS_ID;
			tp_item->pNext 		= (POBJECT_HEAD)&motorset_item3;			
		}
		else
		{
			title_strid = RS_MOTOR_SETTING;
			sat_item->bUpID 	= POS_ID;
			tp_item->bDownID 	= SAT_ID;
			tp_item->pNext 	= NULL;			
			
		}
		OSD_SetContainerFocus(&g_win_motorset, SAT_ID);
		
		
		wincom_open_subtitle(pObj,title_strid,0);
		wincom_close_help();
		break;
	case EVN_POST_OPEN:
	//	win_motorset_set_frontend();
		//win_signal_open(pObj);
		win_signal_open_ex(pObj,pObj->frame.uLeft + 4,pObj->frame.uTop+pObj->frame.uHeight - 140);
		win_signal_refresh();
		//win_signal_update();		
		get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node);			
	//	wincom_dish_move_popup_open(0xFFFF,s_node.sat_id,antset_cur_tuner,&back_saved);		
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE:
		win_signal_close();
#ifdef ANTENNA_INSTALL_BEEP	
		if(sys_data->install_beep)
		{
		#if(defined(DVBT_BEE_TONE) && ANTENNA_INSTALL_BEEP == 1)
			api_audio_stop_tonevoice();
		#elif (defined(AUDIO_SPECIAL_EFFECT) && ANTENNA_INSTALL_BEEP == 2)
			api_audio_beep_stop();
		#endif
		}
#endif		
		break;		
	case EVN_POST_DRAW:
		if(tp_item->pNext != NULL)
			win_motorset_draw_info(diskmotor_move_state);
		break;
	case EVN_MSG_GOT:
		ret = win_motorset_message_proc(param1,param2);
		break;
		
	}

	return ret;
}
コード例 #13
0
static UINT8  tools_check_item_active(UINT32 id)
{
	UINT8 action;
	action = C_ATTR_ACTIVE;
    
#ifdef USB_MP_SUPPORT
    struct statvfs usb_info;
#endif
	
	switch(id)
	{
	case TOOLS_INFO_ID:
	case TOOLS_FACTORYSET_ID:
		break;
	case TOOLS_RS232UPG_ID:
#ifdef OTA_UPGRADE_SUPPORT
	case TOOLS_OTAUPG_ID:
#endif
#ifdef NETWORK_SUPPORT
	case TOOLS_NET_LOCAL_SETTING_ID:
		break;
#endif
#ifdef NET_UPG_NEED
	case TOOLS_NET_UPG_ID:
#ifdef DVR_PVR_SUPPORT
		if(api_pvr_is_record_active())
		{ 
			action = C_ATTR_INACTIVE;
		}
#endif
#ifdef OTA_UPGRADE_SUPPORT
		if(id == TOOLS_OTAUPG_ID)
		{
			if(get_tuner_sat_cnt(TUNER_FIRST) == 0)
				action = C_ATTR_INACTIVE;
		}
#endif
		break;
#endif
#if 0//def USB_MP_SUPPORT
 	case TOOLS_USB_ID:
 		if(!check_storage_item_is_active())
 			action = C_ATTR_INACTIVE;
		break;
	case TOOLS_USBUPG_ID:
#ifdef USB_SAFELY_REMOVE_SUPPORT
	case TOOLS_USB_REMOVE_ID:
#endif
		if(!check_usb_item_is_active())
			action = C_ATTR_INACTIVE;
		break;
#endif
	case TOOLS_USBUPG_ID:
            if(!check_usb_item_is_active())
			action = C_ATTR_INACTIVE;
		break;
#ifdef SUPPORT_PUSHVOD
	case TOOLS_CTI_PVOD:
		{
			if(check_pvod_item_is_active())
				action = C_ATTR_ACTIVE;
			else 
				action = C_ATTR_INACTIVE;
		}	
	break;
#endif
	default:
		break;
	}

	return action;
}
コード例 #14
0
static PRESULT installation_con_item_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8	unact;
	UINT8	id = OSD_GetObjID(pObj) + sub_menu_desc->list_top;
	POBJECT_HEAD submenu;
	SYSTEM_DATA* sys_data;
	
	switch(event)
	{
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16) ;
		if(unact == VACT_ENTER)
		{
			if(unact == VACT_ENTER)
			{
				sys_data_get_curprog_info(&playing_pnode);
			#if 0
				if(id == 4)
					single_multi_srch_flag = 0;	/* Single search */
				else if(id == 5)
					single_multi_srch_flag = 1;	/* Multi search */
			#endif
				if(id == 3)	/* Antenna setting */
				{
					cur_tuner_idx = antset_cur_tuner = 0;


CHECK_TUNER_SAT_VALID:
					if( get_tuner_sat_cnt(antset_cur_tuner) == 0)
					{
						UINT8 back_saved;
						win_compopup_init(WIN_POPUP_TYPE_OK);
						win_compopup_set_msg("Tuner 1 has no satellite select!",NULL, 0);
						win_compopup_open_ext(&back_saved);

						if(cur_tuner_idx == 0 && get_tuner_cnt()>1)
						{
							cur_tuner_idx = antset_cur_tuner = 1;
							goto CHECK_TUNER_SAT_VALID;
						}
						ret = PROC_LOOP;
					}
					else
					{
						sys_data = sys_data_get();
						if(sys_data->tuner_lnb_type[antset_cur_tuner] == LNB_MOTOR)
							submenu = (POBJECT_HEAD)&g_win_antenna_set_motor;
						else
							submenu = installation_sub_menus[id - 1];

						set_movedish_flag(FALSE);/*False to move dish,True not to move*/
						if(OSD_ObjOpen(submenu,MENU_OPEN_TYPE_MENU + id) != PROC_LEAVE)
							menu_stack_push(submenu);
					}
				}
				else
					enter_sub_menu(installation_sub_menus,id - 1);
				ret = PROC_LOOP;
			}
		}

	}

	return ret;
}
コード例 #15
0
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;	
}
コード例 #16
0
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static PRESULT satsrch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
    PRESULT ret = PROC_PASS;
    MULTISEL* msel;
    UINT16 title_id,sat_idx,sat_cnt;
    OSD_RECT rect;
    POBJECT_HEAD lastitem;
    SYSTEM_DATA* sys_data = sys_data_get();
    UINT16 i;
    UINT8 flag;
    S_NODE s_node;

    switch(event)
    {
    case EVN_PRE_OPEN:

#ifdef EXIT_KEY_EXIT_ALL_MENU
        exit_key_flag =  FALSE;
#endif

        sat_idx = 0;
        if(!single_multi_srch_flag)
        {
            if(sys_data_get_cur_satidx() == (UINT16)(~0))
                sat_idx = win_load_default_satidx();
            else
                sat_idx = sys_data_get_cur_satidx();
        }

        recreate_sat_view(VIEW_ALL, 0);

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))
        for(i=0; i<get_sat_num(VIEW_ALL); i++)
        {
            get_sat_at((UINT16)i,VIEW_ALL,&s_node);

            flag = s_node.tuner1_valid | s_node.tuner2_valid;

            if(s_node.selected_flag != flag)
            {
                s_node.selected_flag = flag;
                modify_sat(s_node.sat_id, &s_node);
            }
        }
#endif

        msel = satsrch_sels[SAT_ID - 1];
        sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);
        OSD_SetMultiselCount(msel, sat_cnt);
        /*if(sat_idx >= sat_cnt)//albert.li del 2011.7.6
        {
        	sat_idx = 0;
        }
        OSD_SetMultiselSel(msel,sat_idx);*/
        sat_idx=get_sat_idx_in_selected_sats(sat_cnt);//albert.li add 2011.7.6
        OSD_SetMultiselSel(msel,sat_idx);

        if(single_multi_srch_flag)
            title_id = RS_INSTALLATION_MULTI_SEARCH;
        else
            title_id = RS_INSTALLATION_SINGLE_SEARCH;
        //wincom_open_subtitle(pObj,title_id,0);
        wincom_open_subtitle_ex(pObj,title_id,0,-15,0,-10);//albert.li add 2011.6.21

        /*lastitem = (POBJECT_HEAD)&satsrch_item7;
        if(single_multi_srch_flag)
        	OSD_SetObjpNext(lastitem, &satsrch_multisats_back);
        	//OSD_SetObjpNext(lastitem, NULL);
        else
        	OSD_SetObjpNext(lastitem, NULL);*/

        win_satsrch_set_nitactive(FALSE);
        set_container_active(&satsrch_item6, C_ATTR_INACTIVE);
        get_sat_at(sat_idx,SET_SELECTED,&s_node);
        if(sys_data->antenna_connect_type == ANTENNA_CONNECT_DUAL_DIFF)
        {
#ifdef SUPPORT_SELECT_SAME_SAT
            OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, ((s_node.reserve_1 == 0)? RS_LNB1 : RS_LNB2));
#else
            OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, (s_node.tuner1_valid ? RS_LNB1 : RS_LNB2));
#endif
        }
        else
        {
            OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, RS_LNB1);
        }
        OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL);
#ifndef SUPPORT_TWO_TUNER
        remove_menu_item(&g_win_sat_srchset,(POBJECT_HEAD)&satsrch_item6,(CON_H + CON_GAP));     //guop add
#endif
        break;
    case EVN_POST_OPEN:
        //wincom_open_help(pObj,search_set_helpinfo, HELP_CNT);
        wincom_open_commen_help(pObj);

        if(single_multi_srch_flag == 1)
        {
            OSD_DrawObject((POBJECT_HEAD)&satsrch_split,C_UPDATE_ALL);
        }

        sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);

        if(sat_cnt <=(SELSAT_ROW_CNT*2))
            win_satsrch_set_fix_drawselectsats();
        else
        {
            start_scroll_sat_id=0;
            //api_stop_timer(&sat_display_scroll);
            sat_display_scroll = api_start_timer("SATDISP",500,(OSAL_T_TIMER_FUNC_PTR)sat_search_scroll_disp_handler);
        }

        break;
    case EVN_PRE_CLOSE:
        /* Make OSD not flickering */
        *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;
        break;
    case EVN_POST_CLOSE:

        api_stop_timer(&sat_display_scroll);

        wincom_close_subtitle();
        OSD_ClearObject((POBJECT_HEAD)&g_win_sat_srchset,C_UPDATE_ALL);//albert.li add
        //OSD_TrackObject( (POBJECT_HEAD) &g_win_submenu/*g_win_mainmenu*/, C_UPDATE_ALL);

#ifdef EXIT_KEY_EXIT_ALL_MENU
        if( exit_key_flag == TRUE)
        {
            exit_key_flag =FALSE;
            mm_leave_all_menu();
        }
#endif
        break;
    case EVN_MSG_GOT:
        if(param1 == CTRL_MSG_SUBTYPE_CMD_SAT_SCROLL_DISP)
        {
            start_scroll_sat_id=win_satsrch_set_scroll_drawselectsats(start_scroll_sat_id);

            if(sat_display_scroll!=OSAL_INVALID_ID)
            {
                api_stop_timer(&sat_display_scroll);
                sat_display_scroll = api_start_timer("SATDISP",500,(OSAL_T_TIMER_FUNC_PTR)sat_search_scroll_disp_handler);
            }
        }
        break;
    }

    return ret;
}
コード例 #17
0
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static void win_satsrch_set_search_param(void)
{
	UINT32  search_mode;
	UINT32 prog_type;
	S_NODE s_node;
	struct as_service_param param;
	struct nim_device *nim;
	struct vdec_device *vdec;
	struct vdec_io_get_frm_para vfrm_param;
	UINT32 addr, len;
	UINT32 i;
	//tv/radio/all
	if(SATSRCH_CHAN_IDX==1)
		prog_type = P_SEARCH_TV;
	else if(SATSRCH_CHAN_IDX==2)
		prog_type = P_SEARCH_RADIO;
	else// if(SATSRCH_CHAN_IDX==0)
		prog_type = P_SEARCH_TV|P_SEARCH_RADIO;
	
	/* FTA Only */
	if (SATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA;
	else// if (sSATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA|P_SEARCH_SCRAMBLED;

	param.as_from = AS_FREQ_MIN;
	param.as_to = AS_FREQ_MAX;

	param.as_prog_attr = prog_type|search_mode;
#ifndef NEW_DEMO_FRAME
    if(single_multi_srch_flag == 0)   
    {
	    get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX,&s_node);
        param.as_sat_id = s_node.sat_id;
        if (s_node.lnb_type == LNB_CTRL_22K)
        {
        	param.as_from = 950;
	        param.as_to = 2150;
        }
    }
    else
    {
         param.as_sat_ids = sat_ids;
    }
#else
	param.as_frontend_type = FRONTEND_TYPE; 
	if(single_multi_srch_flag == 0)   
	{
		get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX, &s_node);
		param.sat_ids[0] = s_node.sat_id;
		param.as_sat_cnt = 1;
	}
	else
	{
		param.as_sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);

		// multi-search max satellite number is 256
		if(param.as_sat_cnt > 256)
			param.as_sat_cnt = 256;
		MEMCPY(param.sat_ids, sat_ids, param.as_sat_cnt * sizeof(UINT16));
	}
#endif
#ifdef ORDER_GZ1011001   
	if(SATSRCH_MODE_IDX == 1)
#else
	if(SATSRCH_MODE_IDX == IDX_SCAN_MODE_AUTO_SCAN ||SATSRCH_MODE_IDX == IDX_SCAN_MODE_ACCURATE_SCAN )
#endif
	{
        if(single_multi_srch_flag == 0)        
		    param.as_method = AS_METHOD_FFT;
        else
            param.as_method = AS_METHOD_MULTI_FFT;
	}
	else if (SATSRCH_MODE_IDX == IDX_SCAN_MODE_PRESET_SCAN)
	{
		
		if(single_multi_srch_flag == 0)  
		    param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_SAT_TP : AS_METHOD_NIT;
        else
            param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_MULTI_TP : AS_METHOD_MULTI_NIT;
	}
 	for(i = 0;i < param.as_sat_cnt;i++)
 	{
 		 get_sat_by_id(param.sat_ids[i], &s_node);
	 	 if(s_node.tuner1_valid == 1)
	 	 	{
	 	 	 nim=    (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, 0);
	 	 	}
		 else if(s_node.tuner2_valid == 1)
		 	{
		 	nim=    (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, 1);
		 	}
		 else 
		 	continue;
		 if(SATSRCH_MODE_IDX == IDX_SCAN_MODE_ACCURATE_SCAN)
		 	nim_io_control(nim, NIM_DRIVER_SET_BLSCAN_MODE, 1);
		 else
			nim_io_control(nim, NIM_DRIVER_SET_BLSCAN_MODE, 0);	
	}
	
	param.as_p_add_cfg = PROG_ADD_REPLACE_OLD;
	param.as_handler = NULL;

	// set param 
	win_search_set_param(&param);

	//update_data();
#if 0
	vdec = (struct vdec_device *)dev_get_by_id(HLD_DEV_TYPE_DECV, 0);
	vfrm_param.ufrm_mode = VDEC_UN_DISPLAY;
	vdec_io_control(vdec, VDEC_IO_GET_FRM, (UINT32)&vfrm_param);
	addr = vfrm_param.tFrmInfo.uC_Addr;
	len = (vfrm_param.tFrmInfo.uHeight*vfrm_param.tFrmInfo.uWidth*3)/2;
#else
    addr = __MM_AUTOSCAN_DB_BUFFER_ADDR;
    addr &= 0x8fffffff;
    len = __MM_AUTOSCAN_DB_BUFFER_LEN;
#endif
	db_search_init((UINT8 *)addr, len);

}
コード例 #18
0
ファイル: win_satsearch_set.c プロジェクト: alkap007/ali3606
static UINT8 win_satsrch_set_scroll_drawselectsats(UINT8  start_sat_idx)
{
    struct OSDRect rect;
    UINT16 i,sat_cnt,num;
    UINT16 col,row;
    TEXT_FIELD* txt = &satsrch_multisats_name;
    S_NODE s_node;
    UINT16 top;
    UINT16 str[50];
    UINT16 nStrLen;

    UINT8  disp_total_row,adjust_row,start_disp_id;
    UINT8  next_start_idx=start_sat_idx+2;

    if(single_multi_srch_flag == 0)
        return;

    MEMSET(sat_ids,0,sizeof(sat_ids)/sizeof(sat_ids[0]));

    sat_cnt = num = get_tuner_sat_cnt(TUNER_EITHER_SELECT);//get_selected_sat_num();
    if(num > SELSAT_ROW_CNT *2)
        num = SELSAT_ROW_CNT *2;

    txt->pString = display_strs[0];
    for(i=0; i<sat_cnt; i++)
    {
        get_tuner_sat(TUNER_EITHER_SELECT,i,&s_node);
        sat_ids[i] = s_node.sat_id;
    }

    if(start_sat_idx>=(sat_cnt+SELSAT_ROW_CNT*2-2))
        next_start_idx=0;

    start_disp_id=0;
    if(start_sat_idx==0)
    {
        disp_total_row=1;
        adjust_row=5;
    }
    else if(start_sat_idx==2)
    {
        disp_total_row=2;
        adjust_row=4;
    }
    else if(start_sat_idx==4)
    {
        disp_total_row=3;
        adjust_row=3;
    }
    else if(start_sat_idx==6)
    {
        disp_total_row=4;
        adjust_row=2;
    }
    else
    {
        disp_total_row=SELSAT_ROW_CNT;
        adjust_row=1;
        if(start_sat_idx>=(SELSAT_ROW_CNT*2))
            start_disp_id=start_sat_idx-(SELSAT_ROW_CNT*2)+2;
    }

    /*if(start_sat_idx==0)
    {
    	struct OSDRect r;

    	r.uLeft=SELSAT_L0;//txt.head.frame.uLeft;//200;
    	r.uTop=SELSAT_T-40;//txt.head.frame.uTop;//300;
    	r.uWidth=SELSAT_W*2+40;//txt.head.frame.uWidth;//100;
    	r.uHeight=SELSAT_H*5-30;//txt.head.frame.uHeight;//45;

    	OSD_DrawFrame(&r,RGB24_RGB1555(173,173,173),NULL);
    }*/

    for(i=/*0*//*start_sat_idx*/start_disp_id; i<(/*SELSAT_ROW_CNT*/disp_total_row*2+start_disp_id); i++)
    {
        row = (i-start_disp_id)/2+adjust_row;

        top = SELSAT_T + row * 30/*SELSAT_H*/-40;
        if(i%2 == 0)
            OSD_SetRect(&txt->head.frame, SELSAT_L0, top, SELSAT_W, SELSAT_H-6);
        else
            OSD_SetRect(&txt->head.frame, SELSAT_L1, top, SELSAT_W, SELSAT_H-6);

        get_tuner_sat(TUNER_EITHER_SELECT,i,&s_node);

        if(i<sat_cnt)
        {
            if(s_node.DiSEqC_type !=6)
                ComUniStrCopyChar((UINT8*)txt->pString, s_node.sat_name);
        }
        else
        {
            ComAscStr2Uni("", txt->pString);
            //next_start_idx=0;
        }
        OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);

        //if(adjust_row && (i%2==1))
        //	adjust_row-=2;
    }

    if(num == 0)
    {
        txt->pString = NULL;
        top = SELSAT_T + 2 * SELSAT_H+40;
        OSD_SetRect(&txt->head.frame, SELSAT_L0 + SELSAT_W/2, top, SELSAT_W, SELSAT_H-6);
        OSD_SetTextFieldContent(txt, STRING_ID , RS_DISPLAY_NO_SATELLITE/*RS_NO_SATELLITE_SELECT*/);
        OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);
    }

    return next_start_idx;
}
コード例 #19
0
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;
}
コード例 #20
0
static void win_satsrch_set_drawselectsats(void)
{

//	FIXED_PRINTF("win_satsrch_set_drawselectsats : sky.bi \n");
    struct OSDRect rect;
    UINT16 i,sat_cnt,num;
    UINT16 col,row;
    TEXT_FIELD* txt = &satsrch_multisats_name;
    S_NODE s_node;
	UINT16 top;
	UINT16 str[50];
	UINT16 nStrLen;
    
    if(single_multi_srch_flag == 0) return;
    MEMSET(sat_ids,0,sizeof(sat_ids)/sizeof(sat_ids[0]));
    sat_cnt = num = get_tuner_sat_cnt(TUNER_EITHER_SELECT);//get_selected_sat_num();
    if(num > SELSAT_ROW_CNT *2)
        num = SELSAT_ROW_CNT *2;
	txt->pString = display_strs[0];

//	FIXED_PRINTF("sat_cnt :%d\n",sat_cnt);
	
	for(i=0;i<sat_cnt;i++)
	{
		get_tuner_sat(TUNER_EITHER_SELECT,i,&s_node);
        	sat_ids[i] = s_node.sat_id;
	}
	
    for(i=0;i<SELSAT_ROW_CNT*3;i++)     /*2 for 3 20110117  sky.bi*/
    {
        row = i/3;

		top = SELSAT_T + row * SELSAT_H+40;
		if(i%3 == 0)
		{
			OSD_SetRect(&txt->head.frame, SELSAT_L0, top, SAT_NAME_STRING_LENGTH, SELSAT_H-6);
	//		OSD_SetRect(&txt->head.frame, SELSAT_L0, top, SELSAT_W, SELSAT_H-6);  
		}
		else
		{
			OSD_SetRect(&txt->head.frame, SELSAT_L0  + (SAT_NAME_STRING_LENGTH) * (i%3), top, SAT_NAME_STRING_LENGTH, SELSAT_H-6);
	//		OSD_SetRect(&txt->head.frame, SELSAT_L1, top, SELSAT_W, SELSAT_H-6);
		}
		
      		  get_tuner_sat(TUNER_EITHER_SELECT,i,&s_node);

		if(i<sat_cnt) 
		{
		    if(s_node.DiSEqC_type !=6)
		    {
			  	ComUniStrCopyChar((UINT8*)txt->pString, s_node.sat_name);
		    }
      		  }
		else
		{
			ComAscStr2Uni("", txt->pString);
		}

		if ((sat_cnt > SELSAT_ROW_CNT*3) &&(i == 5) )
		{
			ComAscStr2Uni("...", txt->pString);
		}
		
		OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);
    }
	
    if(num == 0)
    {
    	txt->pString = NULL;
    	top = SELSAT_T + 2 * SELSAT_H+40;
		OSD_SetRect(&txt->head.frame, SELSAT_L0 + SELSAT_W/2, top, SELSAT_W, SELSAT_H-6);		
		OSD_SetTextFieldContent(txt, STRING_ID , RS_DISPLAY_NO_SATELLITE/*RS_NO_SATELLITE_SELECT*/); 
		OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL);
    }


}