コード例 #1
0
ファイル: win_prog_detail.c プロジェクト: Janesak1977/ali3602
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, &current_hl_item);
	}
}
コード例 #2
0
ファイル: win_time.c プロジェクト: alkap007/ali3606
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;
}
コード例 #3
0
ファイル: win_time.c プロジェクト: alkap007/ali3606
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;
    }
}
コード例 #4
0
ファイル: com_epg.c プロジェクト: Janesak1977/ali3602
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;

}