Esempio n. 1
0
static PRESULT tplst_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 back_saved;
	S_NODE s_node;
    	POBJECT_HEAD submenu;

	switch(event)
	{
	case EVN_PRE_OPEN:
		if(sys_data_get_cur_satidx() == (UINT16)(~0))
			cur_tp_sat_idx = win_load_default_satidx();
		else
			cur_tp_sat_idx = sys_data_get_cur_satidx();

		tp_list_pos = 0xffff;
        tp_list_top = 0;

		win_tplist_load_sat(FALSE);
	       pre_tp_sat_idx= cur_tp_sat_idx;
		wincom_close_help();
		wincom_open_subtitle(pObj,RS_TP_LIST,0);
		break;
	case EVN_POST_OPEN:
		//win_signal_open(pObj);
		//win_signal_open_tplist(pObj);
        win_signal_open_ex(pObj,pObj->frame.uLeft+30,pObj->frame.uTop + LIST_ITEMCNT*(ITEM_H + ITEM_GAP) + LST_SAT_H +25);
          wincom_open_commen_help(pObj);
		wincom_open_help(pObj,tplist_helpinfo , HELP_CNT);
		win_tplist_tuner_frontend();
		win_signal_refresh();
		//win_signal_update();
		get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node);
		if(!tpscan_return)
			wincom_dish_move_popup_open(0xFFFF,s_node.sat_id,cur_tuner_idx,&back_saved);
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE:
		if(win_tplist_check_change())
			update_data();

		api_stop_timer(&tpturn_timer_id);
		win_signal_close();
		wincom_close_help();
		sys_data_check_channel_groups();
		sys_data_set_cur_satidx((UINT16)cur_tp_sat_idx);
		#ifdef MULTIFEED_SUPPORT
	        multifeed_del_invalid_info();
		#endif
  		wincom_close_subtitle();
		OSD_ClearScreen();
		win_open_submenu_title(submenu,sub_menu_desc->title_id, 0);  //guop
      
		break;
	case EVN_MSG_GOT:
		win_tplist_message_proc(param1,param2);
		break;
	default:
		break;
	}


	return ret;
}
Esempio n. 2
0
static PRESULT satsrch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
    PRESULT ret = PROC_PASS;
    MULTISEL* msel;
    UINT16 title_id,sat_idx,sat_cnt;
    OSD_RECT rect;
    POBJECT_HEAD lastitem;
    SYSTEM_DATA* sys_data = sys_data_get();
    UINT16 i;
    UINT8 flag;
    S_NODE s_node;

    switch(event)
    {
    case EVN_PRE_OPEN:

#ifdef EXIT_KEY_EXIT_ALL_MENU
        exit_key_flag =  FALSE;
#endif

        sat_idx = 0;
        if(!single_multi_srch_flag)
        {
            if(sys_data_get_cur_satidx() == (UINT16)(~0))
                sat_idx = win_load_default_satidx();
            else
                sat_idx = sys_data_get_cur_satidx();
        }

        recreate_sat_view(VIEW_ALL, 0);

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))
        for(i=0; i<get_sat_num(VIEW_ALL); i++)
        {
            get_sat_at((UINT16)i,VIEW_ALL,&s_node);

            flag = s_node.tuner1_valid | s_node.tuner2_valid;

            if(s_node.selected_flag != flag)
            {
                s_node.selected_flag = flag;
                modify_sat(s_node.sat_id, &s_node);
            }
        }
#endif

        msel = satsrch_sels[SAT_ID - 1];
        sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);
        OSD_SetMultiselCount(msel, sat_cnt);
        /*if(sat_idx >= sat_cnt)//albert.li del 2011.7.6
        {
        	sat_idx = 0;
        }
        OSD_SetMultiselSel(msel,sat_idx);*/
        sat_idx=get_sat_idx_in_selected_sats(sat_cnt);//albert.li add 2011.7.6
        OSD_SetMultiselSel(msel,sat_idx);

        if(single_multi_srch_flag)
            title_id = RS_INSTALLATION_MULTI_SEARCH;
        else
            title_id = RS_INSTALLATION_SINGLE_SEARCH;
        //wincom_open_subtitle(pObj,title_id,0);
        wincom_open_subtitle_ex(pObj,title_id,0,-15,0,-10);//albert.li add 2011.6.21

        /*lastitem = (POBJECT_HEAD)&satsrch_item7;
        if(single_multi_srch_flag)
        	OSD_SetObjpNext(lastitem, &satsrch_multisats_back);
        	//OSD_SetObjpNext(lastitem, NULL);
        else
        	OSD_SetObjpNext(lastitem, NULL);*/

        win_satsrch_set_nitactive(FALSE);
        set_container_active(&satsrch_item6, C_ATTR_INACTIVE);
        get_sat_at(sat_idx,SET_SELECTED,&s_node);
        if(sys_data->antenna_connect_type == ANTENNA_CONNECT_DUAL_DIFF)
        {
#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
        }
        else
        {
            OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, RS_LNB1);
        }
        OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL);
#ifndef SUPPORT_TWO_TUNER
        remove_menu_item(&g_win_sat_srchset,(POBJECT_HEAD)&satsrch_item6,(CON_H + CON_GAP));     //guop add
#endif
        break;
    case EVN_POST_OPEN:
        //wincom_open_help(pObj,search_set_helpinfo, HELP_CNT);
        wincom_open_commen_help(pObj);

        if(single_multi_srch_flag == 1)
        {
            OSD_DrawObject((POBJECT_HEAD)&satsrch_split,C_UPDATE_ALL);
        }

        sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);

        if(sat_cnt <=(SELSAT_ROW_CNT*2))
            win_satsrch_set_fix_drawselectsats();
        else
        {
            start_scroll_sat_id=0;
            //api_stop_timer(&sat_display_scroll);
            sat_display_scroll = api_start_timer("SATDISP",500,(OSAL_T_TIMER_FUNC_PTR)sat_search_scroll_disp_handler);
        }

        break;
    case EVN_PRE_CLOSE:
        /* Make OSD not flickering */
        *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;
        break;
    case EVN_POST_CLOSE:

        api_stop_timer(&sat_display_scroll);

        wincom_close_subtitle();
        OSD_ClearObject((POBJECT_HEAD)&g_win_sat_srchset,C_UPDATE_ALL);//albert.li add
        //OSD_TrackObject( (POBJECT_HEAD) &g_win_submenu/*g_win_mainmenu*/, C_UPDATE_ALL);

#ifdef EXIT_KEY_EXIT_ALL_MENU
        if( exit_key_flag == TRUE)
        {
            exit_key_flag =FALSE;
            mm_leave_all_menu();
        }
#endif
        break;
    case EVN_MSG_GOT:
        if(param1 == CTRL_MSG_SUBTYPE_CMD_SAT_SCROLL_DISP)
        {
            start_scroll_sat_id=win_satsrch_set_scroll_drawselectsats(start_scroll_sat_id);

            if(sat_display_scroll!=OSAL_INVALID_ID)
            {
                api_stop_timer(&sat_display_scroll);
                sat_display_scroll = api_start_timer("SATDISP",500,(OSAL_T_TIMER_FUNC_PTR)sat_search_scroll_disp_handler);
            }
        }
        break;
    }

    return ret;
}
Esempio n. 3
0
static PRESULT rs232upg_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	CONTAINER* cont = (CONTAINER*)pObj;
	UINT8	id = OSD_GetObjID(pObj);

	switch(event)
	{
		case EVN_PRE_OPEN:
#ifdef PREVIEW_SUBMENU  //-a by wangyang 
			if(param2==MENU_OPEN_TYPE_OTHER)
			{
				if(focus_flag==1)
				{
					POBJECT_HEAD focusObj=OSD_GetFocusObject(pObj);
					focusObj_id =focusObj->bID;
				       OSD_SetContainerFocus((CONTAINER*)pObj,0);
					 focus_flag  =0;
				}
			}
			else
			{
			        OSD_SetContainerFocus((CONTAINER*)pObj,focusObj_id);
				focus_flag  =1;

			}
#endif
#ifdef EXIT_KEY_EXIT_ALL_MENU
	         exit_key_flag =  FALSE;
#endif
			wincom_open_subtitle((POBJECT_HEAD)&win_rs232upg_con,RS_UPGRADE_MODE_RS232, 0);
			win_rs232upg_load_chunk_info();
			OSD_SetProgressBarPos(&rs232upg_bar_progress,(INT16)0);
			OSD_SetTextFieldContent(&rs232upg_txt_progress, STRING_NUM_PERCENT, (UINT32)0);

			break;
			
		case EVN_POST_OPEN:
			win_rs232upg_msg_clear();
		wincom_open_commen_help(pObj);//-a by wangyang 
			break;
		
		case EVN_PRE_CLOSE:
			win_rs232upg_clear();
			/* Make OSD not flickering */
			*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
			
			break;

		case EVN_POST_CLOSE:
	  		wincom_close_subtitle();
			OSD_ClearScreen();
#ifdef EXIT_KEY_EXIT_ALL_MENU
	        if( exit_key_flag == TRUE)
	        	{
 			 exit_key_flag =FALSE;
			mm_leave_all_menu();
		}
#endif
			//OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
			break;
		#ifdef PREVIEW_SUBMENU  //-a by wangyang 
  		case EVN_MSG_GOT:
			if (param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER)
			{
			OSD_ObjOpen((POBJECT_HEAD)&g_win_submenu, MENU_OPEN_TYPE_OTHER );
			}
			break;		
		#endif
	}
	return ret;
}
Esempio n. 4
0
static PRESULT satsrch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	MULTISEL* msel;
	UINT16 title_id,sat_idx,sat_cnt;
	OSD_RECT rect;
	POBJECT_HEAD lastitem;
	SYSTEM_DATA* sys_data = sys_data_get();
	UINT16 i;
	UINT8 flag;
	S_NODE s_node;
	
	switch(event)
	{
	case EVN_PRE_OPEN:
		sat_idx = 0;
		if(!single_multi_srch_flag)
		{
			if(sys_data_get_cur_satidx() == (UINT16)(~0))
				sat_idx = win_load_default_satidx();
			else
				sat_idx = sys_data_get_cur_satidx();
		}
		
		recreate_sat_view(VIEW_ALL, 0);

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))				
		for(i=0;i<get_sat_num(VIEW_ALL);i++)
		{
			get_sat_at((UINT16)i,VIEW_ALL,&s_node);

			flag = s_node.tuner1_valid | s_node.tuner2_valid;

			if(s_node.selected_flag != flag)
			{
				s_node.selected_flag = flag;
				modify_sat(s_node.sat_id, &s_node);
			}				
		}
#endif				
		
		msel = satsrch_sels[SAT_ID - 1];
		sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);
		OSD_SetMultiselCount(msel, sat_cnt);		
		if(sat_idx >= sat_cnt)
		{
			sat_idx = 0;
		}
		OSD_SetMultiselSel(msel,sat_idx);
		if(single_multi_srch_flag)
			title_id = RS_INSTALLATION_MULTI_SEARCH;
		else
			title_id = RS_INSTALLATION_SINGLE_SEARCH;
		wincom_open_subtitle(pObj,title_id,0);

		/*lastitem = (POBJECT_HEAD)&satsrch_item7;
		if(single_multi_srch_flag)
			OSD_SetObjpNext(lastitem, &satsrch_multisats_back);
			//OSD_SetObjpNext(lastitem, NULL);
		else
			OSD_SetObjpNext(lastitem, NULL);*/
		
		win_satsrch_set_nitactive(FALSE);
		set_container_active(&satsrch_item6, C_ATTR_INACTIVE);
		get_sat_at(sat_idx,SET_SELECTED,&s_node);
		if(sys_data->antenna_connect_type == ANTENNA_CONNECT_DUAL_DIFF)
		{
		#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
		}
		else
		{
			OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, RS_LNB1);
		}
		OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL);
#ifndef SUPPORT_TWO_TUNER
             remove_menu_item(&g_win_sat_srchset,(POBJECT_HEAD)&satsrch_item6,(CON_H + CON_GAP));     //guop add  
#endif
		break;
	case EVN_POST_OPEN:
	    if(single_multi_srch_flag == 1)
		{
			OSD_DrawObject((POBJECT_HEAD)&satsrch_split,C_UPDATE_ALL);
	    }
		win_satsrch_set_drawselectsats();
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;			
		break;
	case EVN_POST_CLOSE:
		wincom_close_subtitle();
		OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
		break;			
			
	}

	return ret;
}
Esempio n. 5
0
static PRESULT catch_up_win_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 back_saved;
	UINT16 item_num = 0;
	
	switch(event)
	{
		case EVN_PRE_OPEN:
			catch_up_list_load(0);
			break;
		case EVN_POST_OPEN:
			wincom_open_subtitle(pObj,RS_AUTO_CATCH_UP, 0);
			catch_up_draw_week();
			catch_up_download_list(cur_weekday + 1);
			win_compopup_init(WIN_POPUP_TYPE_SMSG);
			win_compopup_set_msg((UINT8*)"Connecting, please wait...",NULL,0);
			win_compopup_open_ext(&back_saved);
			break;
		case EVN_PRE_CLOSE:
			catch_up_terminate();
			break;
		case EVN_POST_CLOSE:
			wincom_close_subtitle();
			break;
		case EVN_MSG_GOT:
			if (param1 == CTRL_MSG_SUBTYPE_STATUS_DOWNLOAD_FINISH)
			{
				bDownloading = FALSE;

				if ((int)param2 >= 0)
				{
					win_compopup_smsg_restoreback();
					item_num = catch_up_parse_list();
					
					if (item_num <= 0)
					{
						catch_up_terminate();
						win_compopup_init(WIN_POPUP_TYPE_OK);		
						win_compopup_set_msg((UINT8*)"Error",NULL,0);
						win_compopup_open_ext(&back_saved);
					}
					else
					{
						catch_up_list_load(item_num);
						OSD_TrackObject(&ol_catch_up, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
					}
				}
				else
				{
					bDownloading = FALSE;
					catch_up_terminate();
					win_compopup_smsg_restoreback();
					win_compopup_init(WIN_POPUP_TYPE_OK);		
					win_compopup_set_msg((UINT8*)"Error",NULL,0);
					win_compopup_open_ext(&back_saved);
					ret = PROC_LOOP;
				}
			}
			break;
		default:
			break;
	}

	return ret;
}
Esempio n. 6
0
static PRESULT favgrplst_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;

	switch(event)
	{
	case EVN_PRE_OPEN:

#ifdef EXIT_KEY_EXIT_ALL_MENU
	         exit_key_flag =  FALSE;
#endif
		
#ifdef PREVIEW_SUBMENU
#if 1//def OSD_BLACKBERRY
		api_full_screen_play();
		//mm_enter_stop_mode(FALSE);
		if(RADIO_CHAN==sys_data_get_cur_chan_mode())
		{
			//api_show_menu_logo();
			api_play_channel(get_prog_pos(play_chan_id), TRUE, TRUE/*edit_group== NOMAL_GRP*/,FALSE);
		}
#else
		api_full_screen_play();
		mm_enter_stop_mode(FALSE);
		api_show_menu_logo();
#endif
		if((param2 & MENU_OPEN_TYPE_MASK) == MENU_OPEN_TYPE_OTHER)
			preview_menu=1;
		else
			preview_menu=0;
#endif	
		
		wincom_open_subtitle(pObj,RS_FAVORITE,0);
		break;
	case EVN_POST_OPEN:
#if ((defined(OSD_BLACKBERRY))||(defined(OSD_GOLDENMEDIA))||(defined(OSD_OCEANBLUE))||(defined(OSD_15))||(defined(OSD_12)))
		wincom_open_commen_help(pObj);
		//wincom_open_help(pObj,fav_group_helpinfo, HELP_CNT);
#else
		//wincom_open_commen_help(pObj);
		wincom_open_help(pObj,fav_group_helpinfo, HELP_CNT);
#endif
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;
		sys_data_save(1);
		break;
	case EVN_POST_CLOSE:
  		wincom_close_subtitle();
		//OSD_ClearObject((POBJECT_HEAD)&g_win_favgrplst,C_UPDATE_ALL);//albert.li add
		//OSD_TrackObject( (POBJECT_HEAD) &g_win_submenu/*g_win_mainmenu*/, C_UPDATE_ALL);//albert.li

#ifdef EXIT_KEY_EXIT_ALL_MENU
	        if( exit_key_flag == TRUE)
	        	{
 			 exit_key_flag =FALSE;
			mm_leave_all_menu();
		}
#endif
		break;
	}

	return ret;
}
Esempio n. 7
0
static PRESULT otaupg_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
    PRESULT ret = PROC_PASS;
    CONTAINER* cont = (CONTAINER*)pObj;
    INT32 btn_state;
    UINT8 back_saved;

    UINT8	id = OSD_GetObjID(pObj);


    switch(event)
    {
    case EVN_PRE_OPEN:
        system_state = SYS_STATE_OTA_UPG;
        //p_otaosd_buff = MALLOC(OSD_VSRC_MEM_MAX_SIZE);
        epg_release();
        if(win_otaupg_set_memory() != 0)
        {
            win_compopup_init(WIN_POPUP_TYPE_OK);
            win_compopup_set_msg("No Enough memory!", NULL, 0);
            win_compopup_open_ext(& back_saved);
            return PROC_LEAVE;
        }
        wincom_open_subtitle((POBJECT_HEAD)&g_win_otaupg,RS_TOOLS_SW_UPGRADE_BY_OTA, 0);
        win_otaupg_get_info();
        win_otaup_set_btn_msg_display(FALSE);
        win_otaup_set_swinfo_display(FALSE);
        win_otaupg_init();

        break;

    case EVN_POST_OPEN:
        break;

    case EVN_PRE_CLOSE:
        if(ota_proc_step == OTA_STEP_BURNFLASH && ota_proc_ret != PROC_FAILURE)
        {
            ret = PROC_LOOP;
            break;
        }
        else
        {
            //btn_state = win_otaup_get_btn_state();
            if(ota_proc_ret == 0)
            {
                ota_stop_service();
                //ota_user_stop = 1;
            }
        }
        /*
        	if(btn_state == 0)
        	{
        		if(!ota_user_stop)
        		{
        			ota_stop_service();
        			ota_user_stop = 1;
        		}
        	}

        	if(btn_state != 1)
        		ret = PROC_LOOP;
        */
        /* Make OSD not flickering */
        *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;

        break;

    case EVN_POST_CLOSE:
        if(p_otaosd_buff != NULL)
        {
            OSD_TaskBuffer_Free(OSAL_INVALID_ID,p_otaosd_buff);
        }
        epg_init(SIE_EIT_WHOLE_TP, (UINT8*)__MM_EPG_BUFFER_START/*buffer*/, __MM_EPG_BUFFER_LEN, ap_epg_call_back);
        system_state = SYS_STATE_NORMAL;
#ifndef _BUILD_OTA_E_
        wincom_close_subtitle();
        OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
#endif
        break;
    case EVN_UNKNOWN_ACTION:
        ret = PROC_LOOP;
        break;
    case EVN_MSG_GOT:
        ret = win_otaupg_message_proc(param1,param2);
        break;
    }
    return ret;
}
Esempio n. 8
0
static PRESULT satlst_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;

	switch(event)
	{
	case EVN_PRE_OPEN:
		win_init_pstring(30);
		win_satlist_check_focusID(1);
		win_satlist_load_sat_select();
		wincom_open_subtitle(pObj,RS_SATELLITE_LIST,0);
		break;
	case EVN_POST_OPEN:
		wincom_open_help_1(pObj,satlist_helpinfo , HELP_CNT);
		break;
	case EVN_PRE_CLOSE:
		win_satlist_save_sat_select();
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE:
		wincom_close_subtitle();
		wincom_close_help();
		OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
		sys_data_check_channel_groups();
		break;
		
	case EVN_MSG_GOT:
		{
 //added by Eric.Ren, 接收control task 的消息,处理kingofsat  更新,2010.7.30
#ifdef KINGOFSAT_SUPPORT
			OBJLIST* ol;
			UINT16 sel;
			S_NODE s_node;
			INT32 kingofsat_tp_num = 0;  //可更新的TP个数
			UINT8 back_saved;
			
			if(param1 == CTRL_MSG_SUBTYPE_STATUS_DOWNLOAD_FINISH)
			{
				if((INT32)param2 < 0)
				{
					win_compopup_smsg_restoreback();

					win_compopup_init(WIN_POPUP_TYPE_SMSG);                        
					win_compopup_set_frame(MSG_POPUP_LAYER_L, MSG_POPUP_LAYER_T, MSG_POPUP_LAYER_W, MSG_POPUP_LAYER_H);
					win_compopup_set_msg("Downloading error,Try again!", NULL, 0);
					win_compopup_open_ext(&back_saved);			

					osal_task_sleep(2000);
					win_compopup_smsg_restoreback();
					
					break ;
				}
				ol = &satlist_olist;
				sel = OSD_GetObjListCurPoint(ol);
				get_sat_at(sel,VIEW_ALL,&s_node);

				//判断是有可更新的TP 数据
				kingofsat_get_tp_num(&kingofsat_tp_num);
				if(kingofsat_tp_num == 0)
				{
					win_compopup_smsg_restoreback();
					win_compopup_init(WIN_POPUP_TYPE_SMSG);                        
					win_compopup_set_frame(MSG_POPUP_LAYER_L, MSG_POPUP_LAYER_T, MSG_POPUP_LAYER_W, MSG_POPUP_LAYER_H);
					win_compopup_set_msg("NO TP in downloading data!", NULL, 0);
					win_compopup_open_ext(&back_saved);
					osal_task_sleep(1000);
					win_compopup_smsg_restoreback();
					
					break;
				}
				
				kingofsat_parse();		//解析下载数据
				recreate_tp_view(VIEW_SINGLE_SAT, s_node.sat_id);//创建TP view
				kingofsat_update(s_node.sat_id);	//更新数据
				kingofsat_destroy();	//释放资源

				OSD_TrackObject( (POBJECT_HEAD)&g_win_satlist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);

				recreate_sat_view(VIEW_ALL, 0); //创建SAT view
			}

#endif
			break;
		}

	default:
		break;		
		
	}

	return ret;
}
Esempio n. 9
0
static PRESULT news_list_win_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 back_saved;
	INT32 news_list_num = 0;
	
	switch(event)
	{
		case EVN_PRE_OPEN:
#ifdef EXIT_KEY_EXIT_ALL_MENU
	         exit_key_flag =  FALSE;
#endif
			bGetContent = FALSE;
			news_list_load(param2);
			break;
		case EVN_POST_OPEN:
			wincom_open_subtitle(pObj,RS_NEWS,0);
			break;
		case EVN_PRE_CLOSE:
			news_terminate();
			break;
		case EVN_POST_CLOSE:
			if(news!=1||news!=0)
			libnet_download_abort((unsigned long)news);
			news=0;
			wincom_close_subtitle();
#ifdef EXIT_KEY_EXIT_ALL_MENU
	        if(( exit_key_flag == TRUE)||((sys_data_get_sate_group_num(RADIO_CHAN)==0)&&(sys_data_get_sate_group_num(TV_CHAN)==0)))//解决无节目还可以进默认页面导致死机问题
	        {
 			 exit_key_flag =FALSE;
			mm_leave_all_menu();
		}
#endif
			break;
		case EVN_MSG_GOT:
			if (param1 == CTRL_MSG_SUBTYPE_STATUS_DOWNLOAD_FINISH)
			{
				news=0;
				if ((int)param2 >= 0)
				{
					win_compopup_smsg_restoreback();
					news_list_num = news_parse();

					if (news_list_num <= 0)
					{
						win_compopup_init(WIN_POPUP_TYPE_OK);		
						win_compopup_set_msg((UINT8*)"Error",NULL,0);
						win_compopup_open_ext(&back_saved);
					}
					else
					{
						bGetContent = TRUE;
						win_news_detail_open(OSD_GetObjListCurPoint(&ol_news_list));
					}				
				}
				else
				{
					win_compopup_smsg_restoreback();
					win_compopup_init(WIN_POPUP_TYPE_OK);		
					win_compopup_set_msg((UINT8*)"Error",NULL,0);
					win_compopup_open_ext(&back_saved);
					ret = PROC_LOOP;
				}
			}
			break;
		default:
			break;
	}

	return ret;
}
Esempio n. 10
0
static PRESULT map_display_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 back_saved;
	OSD_RECT rect = {PREVIEW_L, PREVIEW_T, PREVIEW_W, PREVIEW_H};
	struct  YCbCrColor bgcolor;

	switch(event)
	{
		case EVN_PRE_OPEN:
			OSD_ClearScreen();//-a by wangyang 2011-09-20
			win_media_player_init_ex(mp_apcallback, 1);
			bMapDownloading = FALSE;
			zoom_level = 12;
			//api_set_preview_vpo_color(TRUE);
			bgcolor.uY = 16;
			bgcolor.uCb = 128;
			bgcolor.uCr = 128;		
			api_set_vpo_bgcolor(&bgcolor);
			image_restore_vpo_rect();//TODO
#if 0			
			vpo_aspect_mode((struct vpo_device *)dev_get_by_id(HLD_DEV_TYPE_DIS,0), TV_4_3, NORMAL_SCALE);
#ifdef DUAL_VIDEO_OUTPUT
			vpo_aspect_mode((struct vpo_device *)dev_get_by_id(HLD_DEV_TYPE_DIS,1), TV_4_3, NORMAL_SCALE);
#endif
			osal_task_sleep(30);
			
			if(is_cur_decoder_avc())
			{
				h264_decoder_select(0, hde_get_mode() == VIEW_MODE_PREVIEW);
			}
#endif			
//			system_state = SYS_STATE_USB_MP;
	      	  	//osal_cache_flush_all();
	      	  	image_abort();
			//map_show(rect);
			break;
       		case EVN_POST_OPEN:
			//wincom_open_subtitle(pObj,RS_MAP,0);
			wincom_open_help_OK_list_small(pObj, map_display_helpinfo, 2);
			//wincom_open_help(pObj, map_display_helpinfo, 2);
			libc_printf("map_dl_param2 = %d\n", param2);
			map_show(rect, param2);
			break;
		case EVN_PRE_CLOSE://-a by wangyang 2011-09-20
			map_download_abort(s_mapdisp_dl_handle);
			s_mapdisp_dl_handle = 0;
			media_player_release_ex();
			imagedec_ioctl(1, IMAGEDEC_IO_CMD_CLEAN_FRM, TRUE);	//when quit win_slide, clean 2 frm buffer
	      	  	image_abort();
			break;
		case EVN_POST_CLOSE:
			wincom_close_subtitle();
			image_restore_vpo_rect();//-a by wangyang 2011-09-20
			break;
		case EVN_MSG_GOT:
			if (param1 == CTRL_MSG_SUBTYPE_STATUS_DOWNLOAD_FINISH)
			{
				bMapDownloading = FALSE;
				map_download_abort(s_mapdisp_dl_handle);
				s_mapdisp_dl_handle = 0;
				if ((int)param2 >= 0)
				{	
					win_compopup_smsg_restoreback();
					map_show(rect, param2);
				}
			}
			break;
		default:
			break;
	}

	return ret;
}
Esempio n. 11
0
static PRESULT pvr_setting_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8	unact;
	UINT32 i;
	BOOL subt_flag;
	CONTAINER* cont = (CONTAINER*)pObj;
	UINT8	id = OSD_GetObjID(pObj);
	static UINT8 preval;
	SYSTEM_DATA* p_sys_data;
	
	switch(event)
	{
		case EVN_PRE_OPEN:
#ifdef EXIT_KEY_EXIT_ALL_MENU
	         exit_key_flag =  FALSE;
#endif
			wincom_open_subtitle((POBJECT_HEAD)&win_osdset_con, RS_PVR_SETTING, 0);
			p_sys_data=sys_data_get();
			win_pvr_setting_timeshift_set_string(p_sys_data->timeshift);
			win_pvr_setting_jumpstep_set_string(p_sys_data->jumpstep);
			win_pvr_setting_scramble_record_mode_set_string(p_sys_data->scramble_record_mode);
            remove_menu_item(&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con3, CON_H + CON_GAP);
			win_pvr_setting_ts_file_size_set_string(p_sys_data->record_ts_file_size);
			remove_menu_item(&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con4, CON_H + CON_GAP);
			win_pvr_setting_tms2rec_set_string(p_sys_data->tms2rec);			
			win_pvr_setting_ttx_subt_set_string(p_sys_data->record_ttx_subt);
			remove_menu_item(&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con6, CON_H + CON_GAP);
			win_pvr_setting_rec_num_set_string(p_sys_data->rec_num);
			remove_menu_item(&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con7, CON_H + CON_GAP);
#ifdef NEW_DEMO_FRAME
			win_pvr_setting_record_ps_set_string(p_sys_data->rec_ps_enable);
	#ifdef SUPPORT_CAS9
			remove_menu_item((POBJECT_HEAD)&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con5, CON_H + CON_GAP);
			remove_menu_item((POBJECT_HEAD)&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con8, CON_H + CON_GAP);
	#endif
#else
			remove_menu_item((POBJECT_HEAD)&g_win_pvr_setting, (OBJECT_HEAD *)&pvr_setting_item_con8, CON_H + CON_GAP);
#endif
#ifdef PREVIEW_SUBMENU  //-a by wangyang 
{
				
			POBJECT_HEAD focusObj=OSD_GetFocusObject(pObj);
			
			if(param2==MENU_OPEN_TYPE_OTHER)
			{
				pvr_setting_item_set[focusObj->bID-1]->style.bHLIdx=TXTS_SH_IDX;
				pvr_setting_item_name[focusObj->bID-1]->style.bHLIdx=TXTN_SH_IDX;
			}
			else
			{
				pvr_setting_item_set[focusObj->bID-1]->style.bHLIdx=TXTS_HL_IDX;
				pvr_setting_item_name[focusObj->bID-1]->style.bHLIdx=TXTN_HL_IDX;
			}

}
#endif

			break;
		case EVN_POST_OPEN:
		wincom_open_commen_help(pObj);//-a by wangyang 
			break;			
		case EVN_PRE_CLOSE:
       		*((UINT32 *)param2) &= ~C_CLOSE_CLRBACK_FLG;
			p_sys_data=sys_data_get();
			sys_data_save(1);
#ifndef PVR3_SUPPORT
			pvr_r_set_ts_file_size(p_sys_data->record_ts_file_size + 1);
#endif
			//api_pvr_jumpstep_trans();
			break;
		case EVN_POST_CLOSE:
	  		wincom_close_subtitle();
			OSD_ClearScreen();
#ifdef EXIT_KEY_EXIT_ALL_MENU
	        if( exit_key_flag == TRUE)
	        	{
 			 exit_key_flag =FALSE;
			mm_leave_all_menu();
		}
#endif
			//OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
			break;
		#ifdef PREVIEW_SUBMENU  //-a by wangyang 
  		case EVN_MSG_GOT:
			if (param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER)
			{
				//system_state = SYS_STATE_NORMAL;
				wincom_close_subtitle();
				OSD_ClearScreen();
				//wincom_close_help();
				OSD_ClearObject( pObj, C_UPDATE_ALL);
				OSD_DrawFill(SUBMENU_W_L, SUBMENU_W_T, (SUBMENU_W_W), (SUBMENU_W_H), OSD_TRANSPARENT_COLOR, NULL);
				OSD_ObjOpen((POBJECT_HEAD)&win_info_con, MENU_OPEN_TYPE_OTHER );
				ret = PROC_LEAVE;
			}
			break;		
		#endif
      case EVN_UNKNOWN_ACTION:
            if (api_pvr_is_record_active())
                break;
            
            win_popup_choice_t choice;
            UINT8 back_saved;

#ifndef CI_PLUS_PVR_SUPPORT
			if (sys_data_get_tms() == 0)
			{
				win_popup_choice_t choice;
				UINT8 back_saved;			
				win_compopup_init(WIN_POPUP_TYPE_OKNO);
				win_compopup_set_msg("Are you sure to enter record TP mode?", NULL, 0);
				if (pvr_r_get_record_all())
					win_compopup_set_default_choice(WIN_POP_CHOICE_YES);
				else
					win_compopup_set_default_choice(WIN_POP_CHOICE_NO);
				choice = win_compopup_open_ext(&back_saved);
				if(choice == WIN_POP_CHOICE_YES)
				{
					pvr_r_set_record_all(TRUE);
				}	
				else if (choice == WIN_POP_CHOICE_NO)
				{
					pvr_r_set_record_all(FALSE);
				}
			
			}
			else
#endif
			{
	            win_compopup_init(WIN_POPUP_TYPE_OKNO);
	            win_compopup_set_msg("Record CA program in descrambled format?", NULL, 0);
	            if (sys_data_get_scramble_record_mode())
	                win_compopup_set_default_choice(WIN_POP_CHOICE_YES);
	            else
	                win_compopup_set_default_choice(WIN_POP_CHOICE_NO);
	            choice = win_compopup_open_ext(&back_saved);
	            if (choice == WIN_POP_CHOICE_YES)
	            {
	                sys_data_set_scramble_record_mode(1);
	                pvr_r_set_scramble_ext(0);
	            }
	            else if (choice == WIN_POP_CHOICE_NO)
	            {
	                sys_data_set_scramble_record_mode(0);
	                pvr_r_set_scramble_ext(1);
	            }
			}
            break;
	}
	
	return ret;
}
Esempio n. 12
0
static PRESULT atnsetf_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 level,quality,lock;
	UINT16 default_satidx;
	UINT32 sat_cnt;
	static UINT8 tone_voice_init;
	SYSTEM_DATA* sys_data;
	static UINT32 interval;
	MULTISEL* msel;
	VACTION unact;

	sys_data = sys_data_get();
	switch(event)
	{
	case EVN_PRE_OPEN:
		if(sys_data_get_cur_satidx() == (UINT16)(~0))
		{//sat_idx have been modified in other page
			default_satidx = win_load_default_satidx();
		}
		else
		{//do not modified yet,load default playing programme satellite
			default_satidx = sys_data_get_cur_satidx();
		}
		recreate_sat_view(VIEW_ALL, 0);
		win_atnsetf_load_tuner_configuration();
		sat_cnt = win_atnsetf_load_sat_cnt(FALSE);
		if(sat_cnt == 0)
		{
			ret = PROC_LEAVE;
		}
		else
		{
			/*Sat Name*/
			if(default_satidx >= sat_cnt)
				default_satidx = 0;
			msel = anesetf_msels[SAT_ID - 1];
			OSD_SetMultiselCount(msel, sat_cnt);
			OSD_SetMultiselSel(msel,default_satidx);
			win_atnsetf_load_sat_setting(default_satidx,FALSE);
		}
		
		if(ret != PROC_LEAVE)
			wincom_open_subtitle(pObj,RS_INSTALLATION_ANTENNA_SETUP,0);
		break;
	case EVN_POST_OPEN:
		tone_voice_init = 0;
		//win_signal_open(pObj);
#if 1//def SUPPORT_TWO_TUNER
		win_signal_open_ex(pObj,pObj->frame.uLeft+20,pObj->frame.uTop + 7 * (CON_H + CON_GAP) + 50);
#else
		win_signal_open_ex(pObj,pObj->frame.uLeft+20,pObj->frame.uTop + 6 * (CON_H + CON_GAP) + 50);
#endif
              wincom_open_help(pObj,antenna_setup_helpinfo , HELP_CNT);
		win_atnsetf_tuner_frontend();
		win_signal_refresh();
		//win_signal_update();
		break;
	case EVN_PRE_CLOSE:
		if(check_node_modified(TYPE_SAT_NODE) )
		{
			UINT8	back_saved;
			win_compopup_init(WIN_POPUP_TYPE_SMSG);
			win_compopup_set_msg(NULL, NULL, RS_MSG_SAVING_DATA);
			win_compopup_open_ext(&back_saved);
			update_data(TYPE_SAT_NODE);
			osal_task_sleep(500);
			win_compopup_smsg_restoreback();
		}
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE:
		win_signal_close();
		sys_data_save(1);
		wincom_close_help();
		wincom_close_subtitle();
		OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
#ifdef ANTENNA_INSTALL_BEEP	
		if(sys_data->install_beep)
		{
		#if(defined(DVBT_BEE_TONE) && ANTENNA_INSTALL_BEEP == 1)
			api_audio_stop_tonevoice();
		#elif (defined(AUDIO_SPECIAL_EFFECT) && ANTENNA_INSTALL_BEEP == 2)
			api_audio_beep_stop();
		#endif
		}
#endif
		break;
	case EVN_MSG_GOT:
		if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL)
		{
			win_signal_refresh();
			//win_signal_update();		

#ifdef ANTENNA_INSTALL_BEEP				
			if(sys_data->install_beep)
			{
				level   = (UINT8)(param2>>16);
				quality = (UINT8)(param2>>8);
				lock    = (UINT8)(param2>>0);
			#if(defined(DVBT_BEE_TONE) && ANTENNA_INSTALL_BEEP == 1)	
				if(quality<20)
	              level = 0;
	            else if(quality<40)
	                level = 1;
	            else if(quality<55)
	                level = 3;
	            else if(quality <70)
	                level = 5;
	            else
	                level = 7;
				api_audio_gen_tonevoice(level, tone_voice_init);				
			#elif (defined(AUDIO_SPECIAL_EFFECT) && ANTENNA_INSTALL_BEEP == 2)
				if(lock)
					level = 100;//100/quality;
				else
					level = 1;//100/quality;				
				if(!tone_voice_init || level!=interval)
				{
					if(!tone_voice_init)
						api_audio_beep_start(beep_bin_array,beep_bin_array_size);
					interval = level;
					api_audio_beep_set_interval(interval);					
				}
			#endif
				tone_voice_init = 1;
			}
#endif			
		}
Esempio n. 13
0
static PRESULT factoryset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	CONTAINER* cont = (CONTAINER*)pObj;
	UINT8	id = OSD_GetObjID(pObj);
	UINT16 sat_idx,sat_cnt;//-a by wangyang 2011-11-03 for factory set del sat program
	UINT16 i;
	UINT8 flag;
	S_NODE s_node;

	switch(event)
	{
		case EVN_PRE_OPEN:
			//OSD_SetContainerFocus(cont, 1);
//-a by wangyang 2011-11-03 for factory set del sat program{{
		sat_idx = 0;
		if(sys_data_get_cur_satidx() == (UINT16)(~0))
			sat_idx = win_load_default_satidx();
		else
			sat_idx = sys_data_get_cur_satidx();
		
		recreate_sat_view(VIEW_ALL, 0);

#if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY))				
		for(i=0;i<get_sat_num(VIEW_ALL);i++)
		{
			get_sat_at((UINT16)i,VIEW_ALL,&s_node);

			flag = s_node.tuner1_valid | s_node.tuner2_valid;

			if(s_node.selected_flag != flag)
			{
				s_node.selected_flag = flag;
				modify_sat(s_node.sat_id, &s_node);
			}				
		}
#endif				
		
		sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);
		OSD_SetMultiselCount(&factoryset_sel5, sat_cnt);
		OSD_SetMultiselSel(&factoryset_sel5,sat_idx);
//-a by wangyang 2011-11-03 for factory set del sat program}}

			wincom_open_subtitle((POBJECT_HEAD)&win_factoryset_con,RS_TOOLS_FACTORY_SETTING, 0);
			break;
			
		case EVN_POST_OPEN:
			break;
		
		case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
			
			break;

		case EVN_POST_CLOSE:
	  		wincom_close_subtitle();
			OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
			break;
	}
	return ret;
}