void show_current_epg_detail_win(void) { UINT16 curitem; date_time start_dt,end_dt; date_time sch_first_time,sch_second_time,sch_third_time,sch_fourth_time; date_time start_time; INT32 event_num; eit_event_info_t* sch_event = NULL; struct win_epg_item_info epg_eve_list_info; struct winepginfo current_hl_item; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); if(sys_data->local_time.buseGMT == TRUE) get_UTC(&sch_first_time); else get_STC_time(&sch_first_time); if(sch_first_time.min>= 30) sch_first_time.min= 30; else sch_first_time.min = 0; win_epg_get_hour_offset(&sch_first_time,&sch_second_time,&sch_third_time,&sch_fourth_time); //---------------------- start_dt =sch_first_time; end_dt=sch_fourth_time; if(end_dt.min==0) end_dt.min=29; else end_dt.min=59; start_dt.sec = 0; end_dt.sec = 0; curitem = sys_data_get_cur_group_cur_mode_channel(); libc_printf("curitem = %d \n",curitem); sch_event=epg_get_cur_service_event((INT32)curitem, SCHEDULE_EVENT, &sch_first_time, &end_dt, &event_num, FALSE); osal_delay(300); //-------------------------- libc_printf("sch_event->event_id = %d \n",sch_event->event_id); // if(sch_event->event_id == INVALID_ID) // return; if(event_num > 0 && sch_event != NULL) { current_hl_item.event_idx= sch_event->event_id; current_hl_item.start = start_dt; current_hl_item.end = end_dt; current_hl_item.pos =1; libc_printf("sch_event = %d \n",sch_event); win_epg_detail_open(curitem, ¤t_hl_item); } }
static VACTION time_con_keymap(POBJECT_HEAD pObj, UINT32 key) { VACTION act; SYSTEM_DATA* p_sys_data=sys_data_get(); date_time dt; INT32 hoffset, moffset; UINT8 save; INT32 ret1,ret2; switch(key) { case V_KEY_UP: act = VACT_CURSOR_UP; break; case V_KEY_DOWN: act = VACT_CURSOR_DOWN; break; case V_KEY_EXIT: case V_KEY_MENU: act = VACT_CLOSE; win_time_get_input(); if(p_sys_data->local_time.buseGMT) { sys_data_gmtoffset_2_hmoffset(&hoffset, &moffset); set_STC_offset( hoffset, moffset, 0); get_UTC(&dt); set_STC_time(&dt); enable_time_parse(); } else { ret1 = api_check_valid_date(win_time_local_time.year,win_time_local_time.month,win_time_local_time.day); if(ret1 != 0 || win_time_local_time.hour>23 || win_time_local_time.min>=60) { win_compopup_init(WIN_POPUP_TYPE_OKNO); win_compopup_set_msg(NULL,NULL,RS_MSG_INVALID_INPUT_CONTINUE); win_compopup_set_frame(GET_MID_L(300),GET_MID_T(100),320,100); if(win_compopup_open_ext(&save) == WIN_POP_CHOICE_YES) act = VACT_PASS; else act = VACT_CLOSE; } else { set_STC_offset(0,0,0); set_STC_time(&win_time_local_time); p_sys_data->local_time.GMToffset_count = 23; disable_time_parse(); } } break; case V_KEY_ENTER: act = VACT_ENTER; break; default: act = VACT_PASS; break; } return act; }
void win_time_right_key(POBJECT_HEAD pObj,UINT8 id) { INT32 hoffset, moffset; SYSTEM_DATA* p_sys_data=sys_data_get(); switch(id) { case MENU_TIMESET_GMT_ENABLE: p_sys_data->local_time.buseGMT=1-p_sys_data->local_time.buseGMT; win_time_set_GMT_enable_string(p_sys_data->local_time.buseGMT); OSD_TrackObject(pObj,C_UPDATE_ALL); win_time_switch_GMT_Type(p_sys_data->local_time.buseGMT); if(p_sys_data->local_time.buseGMT) { get_UTC(&win_time_local_time); set_STC_time(&win_time_local_time); set_time_data(); set_time_clock(); } else { p_sys_data->local_time.GMToffset_count = 23; win_time_set_GMT_Offset_string(p_sys_data->local_time.GMToffset_count); p_sys_data->local_time.SummerTime=0; enable_summer_time(0); win_time_set_Summer_string(p_sys_data->local_time.SummerTime); } OSD_DrawObject((POBJECT_HEAD )&time_item_con2,C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD )&time_item_con3,C_UPDATE_ALL); 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; case MENU_TIMESET_SUMMER: p_sys_data->local_time.SummerTime=1-p_sys_data->local_time.SummerTime; win_time_set_Summer_string(p_sys_data->local_time.SummerTime); OSD_TrackObject(pObj,C_UPDATE_ALL); enable_summer_time(p_sys_data->local_time.buseGMT && p_sys_data->local_time.SummerTime); 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); break; case MENU_TIMESET_DISPLAY: p_sys_data->local_time.TimeDisplay=1-p_sys_data->local_time.TimeDisplay; win_time_set_Display_string(p_sys_data->local_time.TimeDisplay); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_TIMESET_GMT_OFFESET: if(p_sys_data->local_time.GMToffset_count==47) { p_sys_data->local_time.GMToffset_count=0; } else { p_sys_data->local_time.GMToffset_count++; } 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; } }
static eit_event_info_t* epg_get_schdedule_event(eit_service_info_t *eit_service_header,date_time *sch_time,INT32* event_number) { date_time cur_time,day_start,day_end,tmp,tmp_start,tmp_end; eit_event_info_t *start_evt=NULL,*ep=NULL, *tmp_ep=NULL; int i=0,day; INT32 hoff,moff,soff; SYSTEM_DATA* sys_data; UINT8 sch_day; #ifdef GET_TOTAL_SCH_EPG //only changed for shenzhou,do not filter the event UI wanted ep=eit_service_header->sch_event_header[0]; while (ep!=NULL) { if (eit_compare_time(&ep->start_time,sch_time)>=0 && // eit_compare_time(&ep->end_time,sch_time)<0) break; else if(eit_compare_time(&ep->start_time,sch_time)<=0) break; ep=ep->next; } start_evt=ep; while (ep!=NULL ) { ep=ep->next; i++; } *event_number=i; return start_evt; #endif sys_data = sys_data_get(); //if (is_time_inited()==FALSE) // eit_get_schedule_time(&cur_time); //else { if(sys_data->local_time.buseGMT) { get_UTC(&cur_time); get_STC_offset(&hoff,&moff,&soff); } else { get_STC_time(&cur_time); hoff=moff=soff=0; } } /*change sch_time -> UTC time*/ tmp=*sch_time; if (eit_compare_time(&tmp,&cur_time)>0) return NULL; day=relative_day(&cur_time, &tmp); if (day>=0 && day < SCHEDULE_DAY) { sch_day = day/4; ep=eit_service_header->sch_event_header[day/4]; if((sch_day+1) < SCHEDULE_TABLE_ID_NUM) { tmp_ep = ep; while(tmp_ep!=NULL) { if((tmp_ep->next)==NULL) break; tmp_ep = tmp_ep->next; } sch_next_event_header_addr = tmp_ep->next=eit_service_header->sch_event_header[sch_day+1]; } } else { return NULL; } convert_time_by_offset(&day_start, &tmp, hoff, moff); day_end = day_start; day_end.hour = 23; day_end.min = 59; #ifndef EPG_SHOW_BYTIME day_start.hour = 0; day_start.min = 0; #endif //soc_printf(" date_start:%04d/%02d/%02d %02d:%02d \n",day_start.year,day_start.month,day_start.day,day_start.hour,day_start.min); //soc_printf(" day_end:%04d/%02d/%02d %02d:%02d \n",day_end.year,day_end.month,day_end.day,day_end.hour,day_end.min); while(ep!=NULL) { convert_time_by_offset(&tmp_start, &(ep->start_time), hoff, moff); convert_time_by_offset(&tmp_end,&(ep->end_time), hoff, moff); //soc_printf(" tmp_start:%04d/%02d/%02d %02d:%02d \n",tmp_start.year,tmp_start.month,tmp_start.day,tmp_start.hour,tmp_start.min); //soc_printf(" tmp_end:%04d/%02d/%02d %02d:%02d \n",tmp_end.year,tmp_end.month,tmp_end.day,tmp_end.hour,tmp_end.min); if ((eit_compare_time(&tmp_start,&day_start)<=0) && (eit_compare_time(&tmp_end,&day_end)>0)) break; ep=ep->next; } start_evt=ep; while(ep!=NULL) { convert_time_by_offset(&tmp_start,&(ep->start_time), hoff, moff); //soc_printf(" !!!!tmp_start:%04d/%02d/%02d %02d:%02d \n",tmp_start.year,tmp_start.month,tmp_start.day,tmp_start.hour,tmp_start.min); if (eit_compare_time(&tmp_start,&day_end)<0) break; ep=ep->next; i++; } //convert_time_by_offset(&tmp_start,&(ep->start_time), hoff, moff); //soc_printf(" !!!!next_start:%04d/%02d/%02d %02d:%02d \n",tmp_start.year,tmp_start.month,tmp_start.day,tmp_start.hour,tmp_start.min); *event_number=i; tmp_ep->next = NULL; return start_evt; }