static PRESULT otaset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 sat_cnt; switch(event) { case EVN_PRE_OPEN: ota_presat_id = 0xFFFF; //wincom_open_title(pObj,RS_UPGRADE_MODE_SAT, 0); wincom_open_title(pObj,RS_TOOLS_SW_UPGRADE_BY_OTA, 0); #ifdef _BUILD_OTA_E_ ota_load_parameter(); #else win_otaset_load_default_setting(0); #endif win_otaset_load_FreqSymbPid_display(); break; case EVN_POST_DRAW: //win_signal_open(pObj); win_signal_open_ex(pObj,pObj->frame.uLeft,pObj->frame.uTop + LIST_ITEMCNT*(CON_H + CON_GAP) +20); win_otaset_turn_frntend(); api_stop_timer(&ota_turn_timer_id); ota_turn_timer_id = api_start_timer(OTA_TURN_TIMER_NAME, OTA_TURN_TIMER_TIME, win_ota_tpturn_handler); //win_signal_refresh(); //win_signal_update(); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: //dm_set_onoff(DM_NIMCHECK_ON); api_stop_timer(&ota_turn_timer_id); break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL) { win_signal_refresh(); //win_signal_update(); } else if(param1 == CTRL_MSG_SUBTYPE_CMD_TP_TURN) { win_otaset_turn_frntend(); } break; } return ret; }
static PRESULT otaset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 sat_cnt; POBJECT_HEAD submenu; switch(event) { case EVN_PRE_OPEN: ota_presat_id = 0xFFFF; //wincom_open_title(pObj,RS_UPGRADE_MODE_SAT, 0); wincom_open_subtitle(pObj,RS_TOOLS_SW_UPGRADE_BY_OTA, 0); #ifdef _BUILD_OTA_E_ ota_load_parameter(); #else win_otaset_load_default_setting(0); #endif win_otaset_load_FreqSymbPid_display(); break; case EVN_POST_DRAW: //win_signal_open(pObj); win_signal_open_ex(pObj,pObj->frame.uLeft+30,pObj->frame.uTop + LIST_ITEMCNT*(CON_H + CON_GAP) +20); win_otaset_turn_frntend(); wincom_open_commen_help(pObj); //win_signal_refresh(); //win_signal_update(); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: wincom_close_subtitle(); OSD_ClearScreen(); if((sys_data_get_sate_group_num(sys_data_get_cur_chan_mode())==0)) OSD_DrawObject((POBJECT_HEAD)&g_win_mainmenu,C_UPDATE_ALL); win_open_submenu_title(submenu,sub_menu_desc->title_id, 0); //guop break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL) win_signal_refresh(); //win_signal_update(); break; } return ret; }
static PRESULT otaset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 sat_cnt; switch(event) { case EVN_PRE_OPEN: ota_presat_id = 0xFFFF; //wincom_open_title(pObj,RS_UPGRADE_MODE_SAT, 0); wincom_open_subtitle(pObj,RS_TOOLS_SW_UPGRADE_BY_OTA, 0); #ifdef _BUILD_OTA_E_ ota_load_parameter(); #else win_otaset_load_default_setting(0); #endif win_otaset_load_FreqSymbPid_display(); break; case EVN_POST_DRAW: //win_signal_open(pObj); win_signal_open_ex(pObj,pObj->frame.uLeft+30,pObj->frame.uTop + LIST_ITEMCNT*(CON_H + CON_GAP) +12); /*sky.bi 20101220 + 20*/ win_otaset_turn_frntend(); //win_signal_refresh(); //win_signal_update(); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: #ifndef _BUILD_OTA_E_ wincom_close_subtitle(); OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL); #endif break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL) win_signal_refresh(); //win_signal_update(); break; } return ret; }
static PRESULT win_tplist_message_proc(UINT32 msg_type, UINT32 msg_code) { PRESULT ret = PROC_LOOP; switch(msg_type) { case CTRL_MSG_SUBTYPE_STATUS_SIGNAL: wait_signalmsg_time ++; if( wait_signalmsg_time >= 2) win_signal_refresh(); break; case CTRL_MSG_SUBTYPE_CMD_TP_TURN: wait_signalmsg_time = 0; win_tplist_tuner_frontend(); break; } return ret; }
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; }
static PRESULT win_progdetail_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 vkey; static int input_num = 0; switch(event) { case EVN_PRE_OPEN: api_inc_wnd_count(); info_load(); #if (CC_ON==1) cc_vbi_show_on(FALSE); #endif break; case EVN_POST_OPEN: //win_minisignal_open(pObj); win_minisignal_open_ex(pObj,SIGNAL_L,SIGNAL_T); win_signal_refresh(); break; case EVN_MSG_GOT: if(CTRL_MSG_SUBTYPE_STATUS_SIGNAL == param1) win_signal_refresh(); else if(CTRL_MSG_SUBTYPE_CMD_PIDCHANGE == param1) { info_load(); OSD_DrawObject((POBJECT_HEAD)&txt_pidinfo,C_UPDATE_ALL); } break; case EVN_PRE_CLOSE: break; case EVN_POST_CLOSE: win_minisignal_restore(); win_signal_close(); api_dec_wnd_count(); break; #ifdef SFU_TEST_SUPPORT case EVN_UNKNOWNKEY_GOT: ap_hk_to_vk(0,param1,&vkey); //libc_printf("%s %d\n",__FUNCTION__,vkey); if(vkey <= V_KEY_9 && vkey >= V_KEY_0) { input_num *= 10; input_num += vkey; if(2008 == input_num) { //#define IOBASEADDRRESS 0xB8000000 //#if (SYS_CHIP_MODULE == ALI_S3601) //#define EXT_INT_STAT (IOBASEADDRRESS + 0x30) //#define EXT_INT_MASK (IOBASEADDRRESS + 0x34) //#elif (SYS_CHIP_MODULE == ALI_S3602) //#define EXT_INT_STAT (IOBASEADDRRESS + 0x30) //#define EXT_INT_MASK (IOBASEADDRRESS + 0x38) //#else //#define EXT_INT_STAT (IOBASEADDRRESS + 0x38) //#define EXT_INT_MASK (IOBASEADDRRESS + 0x3C) //#endif //disable pan and ir interrupt //*(volatile UINT32*)EXT_INT_MASK = (*(volatile UINT32*)EXT_INT_MASK) & (~0x10080000); libc_printf("Enter SFU auto test\n"); input_num = 0; extern struct pan_device* g_pan_dev; pan_close(g_pan_dev); g_b_is_open_sfu = TRUE; SFUTestInit(); ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT_ROOT, (UINT32)&g_win_progdetail,FALSE); } } else { input_num = 0; } break; #endif default: break; } return ret; }
static PRESULT win_motorset_message_proc(UINT32 msg_type, UINT32 msg_code) { struct nim_device *nim_dev; UINT8 level,quality,lock; SYSTEM_DATA* sys_data; static UINT32 interval; sys_data = sys_data_get(); nim_dev = antset_cur_tuner==0? g_nim_dev : g_nim_dev2; switch(msg_type) { case CTRL_MSG_SUBTYPE_STATUS_TIMEOUT: if(diskmotor_move_state) { DBG_PRINTF("Move time out\n"); UINT32 count; for (count = 0; count < 4; count++) { api_diseqc_halt_motor(nim_dev,0); osal_task_sleep(50); } diskmotor_move_state = 0; win_motorset_draw_info(diskmotor_move_state); win_motorset_movebtn_setstr(0); win_motorset_movebtn_draw(1); DBG_PRINTF("Move time out. Stopped\n"); } break; case CTRL_MSG_SUBTYPE_STATUS_SIGNAL: win_signal_refresh(); //win_signal_update(); #ifdef ANTENNA_INSTALL_BEEP if(sys_data->install_beep) { level = (UINT8)(msg_code>>16); quality = (UINT8)(msg_code>>8); lock = (UINT8)(msg_code>>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; else level = 1; 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 break; }
static PRESULT motorset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; S_NODE s_node; UINT8 back_saved; UINT16 title_strid; POBJECT_HEAD sat_item = (POBJECT_HEAD)&motorset_item1; POBJECT_HEAD tp_item = (POBJECT_HEAD)&motorset_item2; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: tone_voice_init = 0; diskmotor_move_state = 0; diskmove_timer_id = OSAL_INVALID_ID; SAT_CNT = get_tuner_sat_cnt(antset_cur_tuner); SAT_IDX =win_load_default_satidx(); get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); win_motorset_load_sat(SAT_IDX,FALSE); if(sys_data->tuner_lnb_type[antset_cur_tuner] != LNB_MOTOR) return PROC_LEAVE; if(sys_data->tuner_lnb_antenna[antset_cur_tuner].motor_type == LNB_MOTOR_DISEQC12) { title_strid = RS_MOTOR_SETTING; sat_item->bUpID = RECACULATE_ID; tp_item->bDownID = POS_ID; tp_item->pNext = (POBJECT_HEAD)&motorset_item3; } else { title_strid = RS_MOTOR_SETTING; sat_item->bUpID = POS_ID; tp_item->bDownID = SAT_ID; tp_item->pNext = NULL; } OSD_SetContainerFocus(&g_win_motorset, SAT_ID); wincom_open_subtitle(pObj,title_strid,0); wincom_close_help(); break; case EVN_POST_OPEN: // win_motorset_set_frontend(); //win_signal_open(pObj); win_signal_open_ex(pObj,pObj->frame.uLeft + 4,pObj->frame.uTop+pObj->frame.uHeight - 140); win_signal_refresh(); //win_signal_update(); get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); // wincom_dish_move_popup_open(0xFFFF,s_node.sat_id,antset_cur_tuner,&back_saved); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: win_signal_close(); #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_POST_DRAW: if(tp_item->pNext != NULL) win_motorset_draw_info(diskmotor_move_state); break; case EVN_MSG_GOT: ret = win_motorset_message_proc(param1,param2); break; } return ret; }
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 }
static PRESULT win_progdetail_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT32 vkey; static int input_num = 0; UINT16 curitem; curitem = sys_data_get_cur_group_cur_mode_channel(); switch(event) { case EVN_PRE_OPEN: api_inc_wnd_count(); info_load(); #if (CC_ON==1) cc_vbi_show_on(FALSE); #endif show_epg_detail = FALSE; break; case EVN_POST_OPEN: //win_minisignal_open(pObj); win_prog_event_display(TRUE); win_minisignal_open_ex(pObj,SIGNAL_L,SIGNAL_T); win_signal_refresh(); break; case EVN_MSG_GOT: if(CTRL_MSG_SUBTYPE_STATUS_SIGNAL == param1) win_signal_refresh(); else if(CTRL_MSG_SUBTYPE_CMD_PIDCHANGE == param1) { info_load(); OSD_DrawObject((POBJECT_HEAD)&txt_pidinfo,C_UPDATE_ALL); } break; case EVN_PRE_CLOSE: break; case EVN_POST_CLOSE: win_minisignal_restore(); win_signal_close(); api_dec_wnd_count(); if(show_epg_detail) { eit_event_info_t *pe=NULL; UINT8 *s1=NULL; UINT16 cur_channel; INT32 len; cur_channel = sys_data_get_cur_group_cur_mode_channel(); pe=epg_get_cur_service_event((INT32)cur_channel, PRESENT_EVENT, NULL,NULL,NULL, /*event_update*/TRUE); s1=epg_get_event_name(pe, &len); if (s1 ) { show_current_epg_detail_win(); } } break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16) ; ret = win_progdatail_unkown_act_proc(unact); break; #ifdef SFU_TEST_SUPPORT case EVN_UNKNOWNKEY_GOT: ap_hk_to_vk(0,param1,&vkey); //libc_printf("%s %d\n",__FUNCTION__,vkey); if(vkey <= V_KEY_9 && vkey >= V_KEY_0) { input_num *= 10; input_num += vkey; if(2008 == input_num) { //#define IOBASEADDRRESS 0xB8000000 //#if (SYS_CHIP_MODULE == ALI_S3601) //#define EXT_INT_STAT (IOBASEADDRRESS + 0x30) //#define EXT_INT_MASK (IOBASEADDRRESS + 0x34) //#elif (SYS_CHIP_MODULE == ALI_S3602) //#define EXT_INT_STAT (IOBASEADDRRESS + 0x30) //#define EXT_INT_MASK (IOBASEADDRRESS + 0x38) //#else //#define EXT_INT_STAT (IOBASEADDRRESS + 0x38) //#define EXT_INT_MASK (IOBASEADDRRESS + 0x3C) //#endif //disable pan and ir interrupt //*(volatile UINT32*)EXT_INT_MASK = (*(volatile UINT32*)EXT_INT_MASK) & (~0x10080000); libc_printf("Enter SFU auto test\n"); input_num = 0; extern struct pan_device* g_pan_dev; pan_close(g_pan_dev); g_b_is_open_sfu = TRUE; SFUTestInit(); ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT_ROOT, (UINT32)&g_win_progdetail,FALSE); } } else { input_num = 0; } break; #endif default: break; } return ret; }