Пример #1
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
	}
	
}
Пример #2
0
void win_av_load_setting(void)
{
	MULTISEL * msel;	
	SYSTEM_DATA* sys_data;
	UINT32 i,sel,cnt,rf_mode;
	
	sys_data = sys_data_get();
	

	/* TV MODE */
	msel = av_item_set[TVMODE_ID - 1];
	OSD_SetMultiselCount(msel, get_tv_mode_count());

	sel = tvmode_setting_to_osd(sys_data->avset.tv_mode);
	OSD_SetMultiselSel(msel, sel);

	/* TV Aspect */
	msel = av_item_set[TVASPECT_ID - 1];
	sel = win_av_get_index(sys_data);
	OSD_SetMultiselSel(msel, sel);

	/* Video Output */
	msel = av_item_set[VIDEOOUT_ID - 1];
#ifdef HDTV_SUPPORT
	if (sys_data_get_scart_out() == SCART_YUV)
		sel = 0;
	else
		sel = 1;
#else			
	sel = sys_data->avset.scart_out;
#endif
	OSD_SetMultiselSel(msel, sel);

	/* VCR loopthrough */
	msel = av_item_set[VCR_ID - 1];
	if(sys_data->avset.scart_out == SCART_RGB)
		sel = 1;
	else
		sel = sys_data->vcrloopmode;
	OSD_SetMultiselSel(msel, sel);
	
	/* RF Mode */
	msel = av_item_set[RFSYSTEM_ID - 1];
	cnt = OSD_GetMultiselCount(msel);
	sel = sys_data->avset.rf_mode;
	if(sel >= cnt)
	{
		sel = 0;
		sys_data->avset.rf_mode = sel;
	}
	OSD_SetMultiselSel(msel, sel);
	rf_mode = sel;

	/* RF Channel */
	msel = av_item_set[RFCHAN_ID - 1];
	sel = sys_data->avset.rf_channel;
	if(sel < rf_ch_range[rf_mode][0] || sel> rf_ch_range[rf_mode][1])
	{
		sel =  rf_ch_range[rf_mode][0];
		sys_data->avset.rf_channel = sel;
		sys_data_set_rf(sys_data->avset.rf_mode,sys_data->avset.rf_channel);
	}
	OSD_SetMultiselSel(msel, sel);
	OSD_SetMultiselSelTable(msel, rf_ch_range[rf_mode]);

#ifdef HDTV_SUPPORT
	/* HDMI Video Out */
	msel = av_item_set[HDMIOUT_ID - 1];

	sel = sys_data->avset.video_format;
	OSD_SetMultiselSel(msel, sel);

	/* Digital Audio Out */
	msel = av_item_set[AUDIOOUT_ID - 1];

	sel = sys_data->avset.audio_output;
	OSD_SetMultiselSel(msel, sel);
#endif

#if (SUPPORT_DUAL_OUTPUT_ONOFF)
	/* Dual Output */
	msel = av_item_set[DUALOUT_ID- 1];

	sel = sys_data->avset.dual_output;
	OSD_SetMultiselSel(msel, sel);
#endif

}
Пример #3
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
	}
	
}