Esempio n. 1
0
void win_opts_enter_key(POBJECT_HEAD pObj,UINT8 id)
{
	SYSTEM_DATA* p_sys_data=sys_data_get();
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	
	rect.uLeft=CON_L+TXTS_L_OF;
	rect.uWidth=TXTS_W;
	rect.uHeight=250;
	param.selecttype = POP_LIST_SINGLESELECT;
	switch(id)
	{
		case MENU_YT_OPTS:
			rect.uHeight = 300;
			rect.uTop=CON_T + (CON_H + CON_GAP)*1;
			param.cur=p_sys_data->osd_set.time_out-1;
			p_sys_data->osd_set.time_out = win_com_open_sub_list(POP_LIST_MENU_OSDSET,&rect,&param)+1;
			win_youtube_opts_ytopt_string(p_sys_data->osd_set.time_out);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			break;
		case MENU_YT_OPTS_NEXT_OPTS:
			rect.uHeight = 300;
			rect.uTop=CON_T + (CON_H + CON_GAP)*2;
			param.cur=p_sys_data->osd_set.osd_trans;
			p_sys_data->osd_set.osd_trans = win_com_open_sub_list(POP_LIST_MENU_OSDSET,&rect,&param);
			win_youtube_opts_ytt_string(p_sys_data->osd_set.osd_trans);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			sys_data_set_palette(0);
			break;
	}
}
Esempio n. 2
0
void win_language_enter_key(POBJECT_HEAD pObj,UINT8 id)
{
	SYSTEM_DATA* p_sys_data=sys_data_get();
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	
	rect.uLeft=CON_L+TXTS_L_OF;
	rect.uWidth=TXTS_W;
	rect.uHeight=340;
	param.selecttype = POP_LIST_SINGLESELECT;
	switch(id)
	{
		case MENU_LANGUAGE_MENU_LAN:
			rect.uTop=CON_T;
			param.cur=p_sys_data->lang.OSD_lang;
			p_sys_data->lang.OSD_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_OSD,&rect,&param);
			win_lan_set_menu_lan_string(p_sys_data->lang.OSD_lang);
			sys_data_select_language(p_sys_data->lang.OSD_lang);
			wincom_open_subtitle((POBJECT_HEAD)&win_lan_con,RS_SYSTEM_LANGUAGE, 0);
			OSD_TrackObject((POBJECT_HEAD)&win_lan_con,C_DRAW_SIGN_EVN_FLG| C_UPDATE_ALL);
			break;
		case MENU_LANGUAGE_1ST_AUDIO_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*1;
			param.cur=p_sys_data->lang.Audio_lang_1;
			p_sys_data->lang.Audio_lang_1 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_1st_audio_lan_string(p_sys_data->lang.Audio_lang_1);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2);
			break;
		case MENU_LANGUAGE_2ND_AUDIO_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*2;
			param.cur=p_sys_data->lang.Audio_lang_2;
			p_sys_data->lang.Audio_lang_2 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_2nd_audio_lan_string(p_sys_data->lang.Audio_lang_2);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2);
			break;
		case MENU_LANGUAGE_SUB_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*3;
			param.cur=p_sys_data->lang.sub_lang;
			p_sys_data->lang.sub_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_subtitle_lan_string(p_sys_data->lang.sub_lang);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			break;
		case MENU_LANGUAGE_TXT_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*3;
			rect.uHeight=300;
			param.cur=p_sys_data->lang.ttx_lang;
			p_sys_data->lang.ttx_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_teletext_lan_string(p_sys_data->lang.ttx_lang);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			break;
	}
}
Esempio n. 3
0
void win_time_enter_key(POBJECT_HEAD pObj,UINT8 id)
{
    INT32 hoffset, moffset;
    SYSTEM_DATA* p_sys_data=sys_data_get();
    OSD_RECT rect;
    COM_POP_LIST_PARAM_T param;

    rect.uLeft=CON_L+TXTS_L_OF;
    rect.uWidth=TXTS_W;
    rect.uHeight=MENU_TIMESET_GMT_OFFESET_POPUP_H;
    param.selecttype = POP_LIST_SINGLESELECT;
    switch(id)
    {
    case MENU_TIMESET_GMT_OFFESET:
        rect.uHeight = MENU_TIMESET_GMT_OFFESET_POPUP_H;
        rect.uTop=CON_T + (CON_H + CON_GAP)*1;
        param.cur=p_sys_data->local_time.GMToffset_count;
        p_sys_data->local_time.GMToffset_count = win_com_open_sub_list(POP_LIST_MENU_TIME,&rect,&param);
        win_time_set_GMT_Offset_string(p_sys_data->local_time.GMToffset_count);
        OSD_TrackObject(pObj,C_UPDATE_ALL);

        sys_data_gmtoffset_2_hmoffset(&hoffset, &moffset);
        set_STC_offset( hoffset, moffset, 0);
        get_local_time(&win_time_local_time);
        set_time_data();
        set_time_clock();
        OSD_DrawObject((POBJECT_HEAD )&time_item_con4,C_UPDATE_ALL);
        OSD_DrawObject((POBJECT_HEAD )&time_item_con5,C_UPDATE_ALL);

        win_time_set_time_zone_citys(TRUE);
        break;
    }
}
Esempio n. 4
0
void win_tms_enter_key(POBJECT_HEAD pObj,UINT8 id)
{    
#if (defined(MULTI_PARTITION_SUPPORT) && !defined(DISK_MANAGER_SUPPORT))
    
	if (id == 4)
	{
		OSD_RECT rect;
		COM_POP_LIST_PARAM_T param;

		rect.uLeft = CON_L + TXTS_L_OF - 100;
		rect.uWidth = TXTS_W+80;
		rect.uHeight = 300;
		param.selecttype = POP_LIST_SINGLESELECT;  

		if(storage_get_volume_count()<=1)
			return;
		
        rect.uTop = CON_T + (CON_H + CON_GAP) * (id - 1);
    	param.cur = m_volume_index;
		m_volume_index = win_com_open_sub_list(POP_LIST_TYPE_VOLUMELIST,&rect,&param);
    	win_set_vol_string(&tms_item_txtset4);
    	OSD_TrackObject(pObj, C_UPDATE_ALL);	
	}
#endif
}
Esempio n. 5
0
void win_dis_enter_key(UINT8 id)
{
    SYSTEM_DATA* p_sys_data=sys_data_get();
    UINT16 result;
    OSD_RECT rect;
    COM_POP_LIST_PARAM_T param;
    UINT16 sel = 0;
    POBJECT_HEAD pObj,pObjItem;
    MULTISEL* msel;

    msel = dis_item_set[id - 1];
    pObj = (POBJECT_HEAD)msel;
    pObjItem = (POBJECT_HEAD)dis_items[id - 1];

    rect.uLeft  = CON_L+SEL_L_OF;
    rect.uWidth = SEL_W;
    rect.uTop = pObj->frame.uTop;

    param.selecttype = POP_LIST_SINGLESELECT;

    switch(id)
    {
    case IDC_DIS_BRIGHT:
        sel = p_sys_data->avset.brightness;
        break;
    case IDC_DIS_CONTRAST:
        sel = p_sys_data->avset.contrast;
        break;
    case IDC_DIS_SATURATION:
        sel = p_sys_data->avset.saturation;
        break;
    case IDC_DIS_HUE:
        sel = p_sys_data->avset.hue;
        break;
    case IDC_DIS_SHARP:
        sel = p_sys_data->avset.sharpness;
        break;
    }

    rect.uHeight = 340;
    param.cur = sel - m_dis_set_range[id][0];
    sel = win_com_open_sub_list(POP_LIST_MENU_DISPLAY_SET,&rect,&param) + m_dis_set_range[id][0];

    OSD_SetMultiselSel(msel, sel);
    OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
    OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);

}
Esempio n. 6
0
static void win_item_enter_key(UINT8 id)
{
	SYSTEM_DATA* p_sys_data=sys_data_get();
	//UINT16 result;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT16 sel;
	POBJECT_HEAD pObj,pObjItem;
	MULTISEL* msel;

	msel = multisel_items[id - 1];
	pObj = (POBJECT_HEAD)msel;
	pObjItem = (POBJECT_HEAD)con_items[id - 1];

	rect.uLeft=CON_L+TXTS_L_OF;
	rect.uWidth=TXTS_W;
	rect.uTop = pObj->frame.uTop;
	param.selecttype = POP_LIST_SINGLESELECT;


	if(id == COUNTRY_ID)
	{
		param.cur = p_sys_data->country;
	}
	else if(id == NETWORK_ID)
	{
         if(GERMANY == OSD_GetMultiselSel(&item_country_sel))
            param.cur = p_sys_data->germ_servs_type; //germ_network_setting_to_osd(&(p_sys_data->current_ft), p_sys_data->current_ft_count);
         else
         {
		   param.cur = network_setting_to_osd(&(p_sys_data->current_ft[0]));
         }
	}

	rect.uHeight=300;
	sel  = win_com_open_sub_list(POP_LIST_MENU_COUNTRY_NETWORK,&rect,&param);
    if (sel == param.cur)
        return;
	OSD_SetMultiselSel(msel, sel);
	OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
	OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);

}
Esempio n. 7
0
void hddfmt_vol_enter_key(POBJECT_HEAD pObj,UINT8 id)
{    
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;

	rect.uLeft = CON_L + TXTS_L_OF - 100;
	rect.uWidth = TXTS_W+80;
	rect.uHeight = 300;
	param.selecttype = POP_LIST_SINGLESELECT;  

	if(storage_get_volume_count()<=1 || hddfmt_cur_volume < 0)
		return;
	
    rect.uTop = CON_T + (CON_H + CON_GAP) * 2;
	param.cur = hddfmt_cur_volume;
	hddfmt_cur_volume = win_com_open_sub_list(POP_LIST_TYPE_VOLUMELIST,&rect,&param);
	hddfmt_set_vol_string(&hddfmt_item_txtset1);
	OSD_TrackObject(pObj, C_UPDATE_ALL);
	win_hddfmt_draw_disk_infor();
}
Esempio n. 8
0
static void nc_enter_key(POBJECT_HEAD pObj)
{
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT8 data_fromidx=0,data_toidx=current_index-1;
	
	rect.uLeft=CON_L+EDIT_L_OF;
	rect.uTop=CON_T + (CON_H + CON_GAP)*1;
	rect.uWidth=EDIT_W;
	rect.uHeight=300;

	param.selecttype = POP_LIST_SINGLESELECT;
	param.cur=data_toidx;

	data_fromidx = win_com_open_sub_list(POP_LIST_NEWCADM_SERVER,&rect,&param);
	nc_copydata(data_fromidx,data_toidx);

	nc_serinfo_display(current_index,TRUE);
	OSD_TrackObject(pObj,C_UPDATE_ALL);

//	nc_serinfo_display(current_index,FALSE);
//	OSD_TrackObject((POBJECT_HEAD)&g_win_newcamd_setting,C_DRAW_SIGN_EVN_FLG| C_UPDATE_ALL);

}
Esempio n. 9
0
void win_av_enter_key(UINT8 id)
{
	SYSTEM_DATA* p_sys_data=sys_data_get();
	UINT16 result;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT16 sel;
	POBJECT_HEAD pObj,pObjItem;
	MULTISEL* msel;
	

	msel = av_item_set[id - 1];
	pObj = (POBJECT_HEAD)msel;
	pObjItem = (POBJECT_HEAD)av_items[id - 1];
	
	rect.uLeft=CON_L+SEL_L_OF;
	rect.uWidth=SEL_W;
	rect.uTop = pObj->frame.uTop;

	param.selecttype = POP_LIST_SINGLESELECT;

    extern UINT8 g_rgb_yuv_changed;

	switch(id)
	{
	case TVMODE_ID:
		rect.uHeight=300;
		param.cur = tvmode_setting_to_osd(p_sys_data->avset.tv_mode);
		sel  = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
        if (g_rgb_yuv_changed)
            break;

		OSD_SetMultiselSel(msel, sel);
		OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
		OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;
	case TVASPECT_ID:
		rect.uHeight= 300;//26*4+20;
		param.cur=win_av_get_index(p_sys_data);
		sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
        if (g_rgb_yuv_changed)
            break;

		OSD_SetMultiselSel(msel, sel);
		OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
		OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;
	case RFSYSTEM_ID:
		rect.uTop = 240;
		rect.uHeight= 300;//26*4+20;
		param.cur = p_sys_data->avset.rf_mode;
		sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
        if (g_rgb_yuv_changed)
            break;

		OSD_SetMultiselSel(msel, sel);
		OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
		OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;
	case RFCHAN_ID:
		rect.uTop = 240;
		rect.uHeight = 300;//150;
		param.cur=p_sys_data->avset.rf_channel-rf_ch_range[p_sys_data->avset.rf_mode][0];
		sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param)+rf_ch_range[p_sys_data->avset.rf_mode][0];
        if (g_rgb_yuv_changed)
            break;

		OSD_SetMultiselSel(msel, sel);
		OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);		
		OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;
#ifdef HDTV_SUPPORT
	case HDMIOUT_ID:
		rect.uTop = 240;
		rect.uHeight = 300;//26*5+20;
		param.cur = p_sys_data->avset.video_format;
		sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
        if (g_rgb_yuv_changed)
            break;

		OSD_SetMultiselSel(msel, sel);
		OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
		OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;
	case AUDIOOUT_ID:
		rect.uTop = 240;
		rect.uHeight = 260;//26*3+20;
		param.cur = p_sys_data->avset.audio_output;
		sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
        if (g_rgb_yuv_changed)
            break;

		OSD_SetMultiselSel(msel, sel);
		OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
		OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		break;
#endif
	}
	
}
Esempio n. 10
0
static PRESULT motorset_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;
	
	UINT32 sel;
	UINT16* Uni_str;
	UINT8 bID;

	COM_POP_LIST_TYPE_T list_type;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	S_NODE s_node;
	UINT16 cur_idx;
	UINT8 back_saved;
	

	bID = OSD_GetObjID(pObj);

	switch(event)
	{
	case EVN_REQUEST_STRING:
		sel = param1;
		Uni_str= (UINT16*)param2;
		if(bID == SAT_ID)
			get_tuner_sat_name(antset_cur_tuner,sel,Uni_str);
		else //TP_ID
		{
			get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node);
			get_tp_name(s_node.sat_id,sel,Uni_str);
		}
		break;
	case EVN_POST_CHANGE:
		sel = param1;

SAT_TP_CHANGED:
		/* Need to turn SAT/TP here*/
		if(bID == SAT_ID)
		{
			win_motorset_load_sat(SAT_IDX,TRUE);
			win_motorset_set_frontend();
			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);			
		}
		else
		{
			win_motorset_turn_tp();
		}
		
		break;
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		if(unact == VACT_ENTER)
		{
			param.selecttype = POP_LIST_SINGLESELECT;

			OSD_SetRect2(&rect,&pObj->frame);	
			rect.uLeft -= 40;
			rect.uWidth += 40;

			if(bID == SAT_ID)
			{
				list_type = POP_LIST_TYPE_SAT;
				list_type = POP_LIST_TYPE_SAT;
				rect.uHeight = 300;
				param.id = antset_cur_tuner;
				param.cur = SAT_IDX;				
			}
			else// if(bID == TP_ID)
			{
				list_type = POP_LIST_TYPE_TP;
				list_type = POP_LIST_TYPE_TP;
				rect.uHeight = 300;
				get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node);
				param.id = s_node.sat_id;
				param.cur = TP_IDX;
			}
			
			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 == SAT_ID)
				SAT_IDX = cur_idx;
			else
				TP_IDX = cur_idx;
			OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			
			sel = cur_idx;
			
			goto SAT_TP_CHANGED;
		}
		
		break;
	}


	return ret;
}
Esempio n. 11
0
static PRESULT timerset_mselinfo_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT32 sel;
	VACTION unact;
	P_NODE p_node;
	UINT16* Uni_str;	
	TIMER_SET_CONTENT* settimer;
	COM_POP_LIST_PARAM_T param;
	OSD_RECT rect;

	
	settimer = &timer_set;
	
	
	switch(event)
	{
	case EVN_PRE_CHANGE:
		sel = *((UINT32*)param1);
		break;
	case EVN_POST_CHANGE:
		sel = param1;
		break;
	case EVN_UNKNOWN_ACTION:
		unact  = (VACTION)(param1>>16);
		if(unact == VACT_ENTER) // select channel 
		{
			OSD_SetRect2(&rect,&pObj->frame);
			rect.uTop -= 80;
			rect.uLeft -= 40;
			rect.uWidth += 40;
			rect.uHeight = 300;

			param.selecttype = POP_LIST_SINGLESELECT;
			param.cur = TIMER_SERVICE_INFO;		
			sel = win_com_open_sub_list(POP_LIST_TYPE_CHANLIST,&rect,&param);
			if(sel < (UINT32)TIMER_SERVICE_INFO_CNT)
			{
				get_prog_at(sel,&p_node);
				settimer->wakeup_channel = p_node.prog_id;
				TIMER_SERVICE_INFO = sel;
			}

			OSD_TrackObject( (POBJECT_HEAD )&timer_con_serviceinfo, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
		}
		break;
	case EVN_REQUEST_STRING:
		sel = param1;	
		Uni_str= (UINT16*)param2;
		get_prog_at(sel,&p_node);
		if(p_node.ca_mode)
			ComAscStr2Uni("$", Uni_str);
		ComUniStrCopyChar((UINT8*)&Uni_str[p_node.ca_mode], p_node.service_name);			
 		if((TIMER_MODE == TIMER_MODE_OFF) || (TIMER_SERVICE_TYPE != TIMER_SERVICE_DVR_RECORD) || (p_node.ca_mode == 1))
 		{
 			set_container_active(&timer_con_rec_type, C_ATTR_INACTIVE);
 			settimer->wakeup_message = 0;
 		}
		else if((TIMER_SERVICE_TYPE == TIMER_SERVICE_DVR_RECORD) && (!pvr_info.hdd_valid))  //guop add
 			set_container_active(&timer_con_rec_type, C_ATTR_INACTIVE);
 		else
 		{
 			set_container_active(&timer_con_rec_type, C_ATTR_ACTIVE);
 			if(settimer->wakeup_message > 2)
 				settimer->wakeup_message = 0;
 		}
 		OSD_SetMultiselSel(&timer_msel_rec_type, settimer->wakeup_message);
 		OSD_DrawObject((POBJECT_HEAD)&timer_con_rec_type, C_UPDATE_ALL);

		break;
		
	}

	return ret;
}
Esempio n. 12
0
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;
	
}
Esempio n. 13
0
void win_language_enter_key(POBJECT_HEAD pObj,UINT8 id)
{
	SYSTEM_DATA* p_sys_data=sys_data_get();
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT8 lang_code[8]={0};
	
	rect.uLeft=CON_L+TXTS_L_OF;
	rect.uWidth=TXTS_W;
	rect.uHeight=350;//340;
	param.selecttype = POP_LIST_SINGLESELECT;
	switch(id)
	{
		case MENU_LANGUAGE_MENU_LAN:
			rect.uTop=CON_T;
			param.cur=p_sys_data->lang.OSD_lang;
			p_sys_data->lang.OSD_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_OSD,&rect,&param);
			win_lan_set_menu_lan_string(p_sys_data->lang.OSD_lang);
			sys_data_select_language(p_sys_data->lang.OSD_lang);
			wincom_open_subtitle((POBJECT_HEAD)&win_lan_con,RS_SYSTEM_LANGUAGE, 0);
			OSD_TrackObject((POBJECT_HEAD)&win_lan_con,C_DRAW_SIGN_EVN_FLG| C_UPDATE_ALL);
			break;
		case MENU_LANGUAGE_1ST_AUDIO_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*1;
			param.cur=p_sys_data->lang.Audio_lang_1;
			p_sys_data->lang.Audio_lang_1 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_1st_audio_lan_string(p_sys_data->lang.Audio_lang_1);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2);
			break;
		case MENU_LANGUAGE_2ND_AUDIO_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*2;
			param.cur=p_sys_data->lang.Audio_lang_2;
			p_sys_data->lang.Audio_lang_2 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_2nd_audio_lan_string(p_sys_data->lang.Audio_lang_2);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2);
			break;
		case MENU_LANGUAGE_SUB_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*3;
			param.cur=p_sys_data->lang.sub_lang;
			p_sys_data->lang.sub_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			p_sys_data->osd_set.subtitle_display = 1;/*select sub on */
			p_sys_data->osd_set.subtitle_lang = 0xFF;
			win_lan_set_subtitle_lan_string(p_sys_data->lang.sub_lang);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			break;
		case MENU_LANGUAGE_TXT_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*3;
			rect.uHeight=300;
			param.cur=p_sys_data->lang.ttx_lang;
			p_sys_data->lang.ttx_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_teletext_lan_string(p_sys_data->lang.ttx_lang);
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			break;
	#ifdef ORDER_GZ1207009
		case MENU_LANGUAGE_EPG_LAN:
			rect.uTop=CON_T + (CON_H + CON_GAP)*3;
			rect.uHeight=300;
			param.cur=p_sys_data->lang.epg_lang;
			p_sys_data->lang.epg_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,&param);
			win_lan_set_epg_lan_string(p_sys_data->lang.epg_lang);

			STRCPY(lang_code,stream_iso_639lang_abbr[p_sys_data->lang.epg_lang]);
			epg_set_lang_code(lang_code);
			
			OSD_TrackObject(pObj,C_UPDATE_ALL);
			break;
	#endif
	}
}
Esempio n. 14
0
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;	
}
Esempio n. 15
0
static PRESULT disk_operate_item_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8	unact;
	UINT8	id = OSD_GetObjID(pObj);
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT8 *cur_select = NULL;
	UINT8 cur_mode_num;
	COM_POP_LIST_TYPE_T type;
		
	switch(event)
	{
		case EVN_PRE_CHANGE:
			break;
		case EVN_POST_CHANGE:
			break;
		case EVN_UNKNOWN_ACTION:
			unact = (VACTION)(param1>>16) ;
			if(id != MENU_DISK_FORMAT)
				break;
			switch(operate_type)
			{
				case 0:
					type = POP_LIST_DISK_MODE;
					cur_select = &mode_select;
					cur_mode_num = disk_format_mode_num;
					break;
				case 1:
					type = POP_LIST_DVR_TYPE;
					cur_select = &dvr_select_type;
					cur_mode_num = dvr_type_num;
					break;
				case 2:
					type = POP_LIST_PARTITION;
					cur_select = &partition_select;
					cur_mode_num = partition_num;
					break;
				default:
					break;
			}
			if(unact == VACT_ENTER)
			{
				rect.uLeft = CON_L + SEL_L_OF;
				rect.uWidth = SEL_W;
				rect.uHeight = 200;//150;
				param.selecttype = POP_LIST_SINGLESELECT;
				param.cur = *cur_select;
				rect.uTop=CON_T + SEL_T_OF + SEL_H;
				*cur_select = win_com_open_sub_list(type,&rect,&param);
				win_disk_info_set_string(operate_type, *cur_select);
				OSD_TrackObject(pObj,C_UPDATE_ALL);
			}
			else if((unact == VACT_DECREASE) || (unact == VACT_INCREASE))
			{
				if(unact == VACT_DECREASE)
					*cur_select = (*cur_select + cur_mode_num - 1) % cur_mode_num;
				else
					*cur_select = (*cur_select + 1) % cur_mode_num;
				win_disk_info_set_string(operate_type, *cur_select);
				OSD_TrackObject(pObj,C_UPDATE_ALL);
			}
			break;
		default:
			break;
	}

	return ret;
}
Esempio n. 16
0
static PRESULT timerset_mselinfo_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT32 sel;
	VACTION unact;
	P_NODE p_node;
	UINT16 *Uni_str;
	TIMER_SET_CONTENT *settimer;
	COM_POP_LIST_PARAM_T param;
	OSD_RECT rect;


	settimer = &timer_set;


	switch (event)
	{
		case EVN_PRE_CHANGE:
			sel = *((UINT32*)param1);
			break;
		case EVN_POST_CHANGE:
			sel = param1;
			break;
		case EVN_UNKNOWN_ACTION:
			unact = (VACTION)(param1 >> 16);
			if (unact == VACT_ENTER)
			// select channel
			{
				OSD_SetRect2(&rect, &pObj->frame);
				rect.uLeft -= 40;
				rect.uWidth += 40;
				rect.uHeight = 180;

				param.selecttype = POP_LIST_SINGLESELECT;
				param.cur = TIMER_SERVICE_INFO;
				sel = win_com_open_sub_list(POP_LIST_TYPE_CHANLIST, &rect, &param);
				if (sel < (UINT32)TIMER_SERVICE_INFO_CNT)
				{
					get_prog_at(sel, &p_node);
					settimer->wakeup_channel = p_node.prog_id;
					//MEMCPY(settimer->event_name, (UINT8 *)&p_node.service_name[0], 40);
					TIMER_SERVICE_INFO = sel;
				}

				OSD_TrackObject((POBJECT_HEAD) &timer_con_serviceinfo, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			}
			break;
		case EVN_REQUEST_STRING:
			sel = param1;
			Uni_str = (UINT16*)param2;
			get_prog_at(sel, &p_node);
			if (p_node.ca_mode)
				ComAscStr2Uni("$", Uni_str);
			ComUniStrCopyChar((UINT8*) &Uni_str[p_node.ca_mode], p_node.service_name);
			MEMCPY(settimer->event_name, (UINT8 *)Uni_str, 40);
			break;

	}

	return ret;
}
Esempio n. 17
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;
}
Esempio n. 18
0
void win_av_enter_key(UINT8 id)
{
	SYSTEM_DATA* p_sys_data=sys_data_get();
	UINT16 result;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT16 sel;
	POBJECT_HEAD pObj,pObjItem;
	MULTISEL* msel;
	

	msel = av_item_set[id - 1];
	pObj = (POBJECT_HEAD)msel;
	pObjItem = (POBJECT_HEAD)av_items[id - 1];
	
	rect.uLeft=CON_L+SEL_L_OF;
	rect.uWidth=SEL_W;
	rect.uTop = pObj->frame.uTop;

	param.selecttype = POP_LIST_SINGLESELECT;

	extern UINT8 g_rgb_yuv_changed;

	switch(id)
	{
		case TVMODE_ID:
			rect.uHeight=300;
			param.cur = tvmode_setting_to_osd(p_sys_data->avset.tv_mode);
			sel  = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
			if (sel == param.cur)
			{
				break;
			}
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif
			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			break;
		
		case TVASPECT_ID:
			rect.uHeight= 300;//26*4+20;
			param.cur=win_av_get_index(p_sys_data);
			sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);

#ifdef HDMI_CERTIFICATION_UI		
			if( check_tv_display_in_hd_mode())
			{
				// only [16:9 mode] in com_list, therefore don't need to change the tv mode 			
				sel = 3;	// 16:9
			}
#endif

			if (sel == param.cur)
			{
				break;
			}
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif

			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);

			break;
		
		case VIDEOOUT_ID:
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif
			rect.uHeight= 300;//26*4+20;
#ifdef HDTV_SUPPORT
			if (sys_data_get_scart_out() == SCART_YUV)
			{
				param.cur = 0;
			}
			else
			{
				param.cur = 1;
			}
#else			
			param.cur = p_sys_data->avset.scart_out;
#endif

			sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
			if (sel == param.cur)
			{
				break;
			}

			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			break;
		
		case RFSYSTEM_ID:
			rect.uTop = 240;
			rect.uHeight= 300;//26*4+20;
			param.cur = p_sys_data->avset.rf_mode;
			sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
			if (sel == param.cur)
			{
				break;
			}
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif

			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			break;
		
		case RFCHAN_ID:
			rect.uTop = 240;
			rect.uHeight = 300;//150;
			param.cur=p_sys_data->avset.rf_channel-rf_ch_range[p_sys_data->avset.rf_mode][0];
			sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param)+rf_ch_range[p_sys_data->avset.rf_mode][0];
			if (sel == param.cur)
			{
				break;
			}
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif

			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);		
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			break;
		
#ifdef HDTV_SUPPORT
		case HDMIOUT_ID:
			rect.uTop = 240;
			rect.uHeight = 300;//26*5+20;
#ifdef HDMI_CERTIFICATION_UI
			param.cur = convert_sys_video_format_to_ui_hdmi_out_sel(p_sys_data->avset.video_format);
#else
			param.cur = p_sys_data->avset.video_format;
#endif
			sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
			if (sel == param.cur)
			{
				break;
			}
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif

			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			break;
		
		case AUDIOOUT_ID:
			rect.uTop = 240;
			rect.uHeight = 260;//26*3+20;
			param.cur = p_sys_data->avset.audio_output;
			sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,&param);
			if (sel == param.cur)
			{
				break;
			}
#ifdef GPIO_RGB_YUV_SWITCH
			if (g_rgb_yuv_changed)
			{
				break;
			}
#endif

			OSD_SetMultiselSel(msel, sel);
			OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0);
			OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			break;
#endif
	}
	
}
Esempio n. 19
0
static PRESULT  otaset_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 bID;
	UINT32 sel;
	UINT16 * Uni_str;
	S_NODE s_node;
	VACTION unact;
	COM_POP_LIST_TYPE_T list_type;
	OSD_RECT rect;
	COM_POP_LIST_PARAM_T param;
	UINT16 cur_idx;

	bID = OSD_GetObjID(pObj);

	switch(event)
	{
	case EVN_REQUEST_STRING:
		sel = param1;
		Uni_str= (UINT16*)param2;
		if(bID == EDIT_TP_SATE_ID)
		{
		#ifdef	_BUILD_OTA_E_
			ComAscStr2Uni("Fixed Sat", Uni_str);
		#else
			get_tuner_sat_name(OTA_TUNER_IDX,sel,Uni_str);
		#endif
		}
		else if(bID == EDIT_TP_TPIDX_ID)
		{
			get_tuner_sat(cur_tuner_idx,SAT_POS,&s_node);
		#ifdef	_BUILD_OTA_E_
			ComAscStr2Uni("Fixed TP", Uni_str);
		#else
			get_tp_name(s_node.sat_id,sel,Uni_str);
		#endif
		}
		break;
	case EVN_POST_CHANGE:
		sel = param1;
		if(bID == EDIT_TP_SATE_ID)
			win_otaset_load_sat_setting(sel,TRUE);
		else if(bID == EDIT_TP_TPIDX_ID)
			win_otaset_load_tp_setting(sel,TRUE);
		win_otaset_turn_frntend();
		break;
	case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);		
		if(unact ==  VACT_POP_UP)
		{
			ret = PROC_LOOP;
			OSD_SetRect2(&rect,&pObj->frame);
			param.selecttype = POP_LIST_SINGLESELECT;
			switch(bID)
			{
			case EDIT_TP_SATE_ID:
				rect.uLeft -= 40;
				rect.uWidth += 40;
				list_type = POP_LIST_TYPE_SAT;
				rect.uHeight = 300;//230;
				param.id = OTA_TUNER_IDX;
				param.cur = SAT_POS;
				break;
			case EDIT_TP_TPIDX_ID:
				list_type = POP_LIST_TYPE_TP;
				rect.uHeight = 300;//230;
				get_tuner_sat(OTA_TUNER_IDX,SAT_POS,&s_node);
				param.id = s_node.sat_id;
				param.cur = TP_POS;
				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 == EDIT_TP_SATE_ID)
			{
				SAT_POS = cur_idx;
				OSD_TrackObject((POBJECT_HEAD)&wota_con0, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);											
				win_otaset_load_sat_setting((UINT32)cur_idx, TRUE);
			}
			else if(bID == EDIT_TP_TPIDX_ID)
			{
				TP_POS = cur_idx;
				OSD_TrackObject((POBJECT_HEAD)&wota_con1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);	
				win_otaset_load_tp_setting((UINT32)cur_idx,TRUE);
			}
			win_otaset_turn_frntend();
		
		}
	}
	
	return ret;
}
Esempio n. 20
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;	
}