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,¶m); 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,¶m); 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,¶m); 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,¶m)+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,¶m); 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,¶m); 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 } }
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 }
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,¶m); 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,¶m); #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,¶m); 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,¶m); 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,¶m)+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,¶m); 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,¶m); 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 } }