static PRESULT palntsc_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; SYSTEM_DATA* sys_data; UINT8 tv_out; TEXT_FIELD *txt; UINT16 str_id; txt = &g_win_PALNTSC; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: tv_out = api_video_get_tvout(); if(tv_out != TV_MODE_PAL && tv_out != TV_MODE_NTSC358) { tv_out = TV_MODE_PAL; api_video_set_tvout(sys_data->avset.tv_mode = tv_out); } str_id = (tv_out == TV_MODE_PAL)? RS_SYSTEM_TV_SYSTEM_PAL : RS_SYSTEM_TV_SYSTEM_NTSC; OSD_SetTextFieldContent(txt, STRING_ID, (UINT32)str_id); break; case EVN_POST_OPEN: api_stop_timer(&tvmode_UI_timer_id); tvmode_UI_timer_id = api_start_timer(TVMODE_UI_TIMER_NAME, TVMODE_UI_TIMER_TIME, win_tvmode_UI_handler); break; case EVN_PRE_CLOSE: break; case EVN_POST_CLOSE: break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_ENTER) { tv_out = api_video_get_tvout(); tv_out = (tv_out == TV_MODE_PAL)? TV_MODE_NTSC358 : TV_MODE_PAL; str_id = (tv_out == TV_MODE_PAL)? RS_SYSTEM_TV_SYSTEM_PAL : RS_SYSTEM_TV_SYSTEM_NTSC; OSD_SetTextFieldContent(txt, STRING_ID, (UINT32)str_id); api_video_set_tvout(sys_data->avset.tv_mode = tv_out); OSD_TrackObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); ret = PROC_LOOP; api_stop_timer(&tvmode_UI_timer_id); tvmode_UI_timer_id = api_start_timer(TVMODE_UI_TIMER_NAME, TVMODE_UI_TIMER_TIME, win_tvmode_UI_handler); } break; } return ret; }
static PRESULT sleep_set_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; TEXT_FIELD* txt = (TEXT_FIELD*)pObj; UINT32 time; switch(event) { case EVN_PRE_DRAW: OSD_SetTextFieldContent(txt,STRING_ANSI, (UINT32)sleeptimer_item[sleep_timer_states]); break; case EVN_UNKNOWN_ACTION: api_stop_timer(&sleep_UI_timer_id); sleep_timer_states++; sleep_timer_states %= MAX_SLEEP_STEP; OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); sleep_UI_timer_id = api_start_timer(SLEEP_UI_TIMER_NAME, SLEEP_UI_TIMER_TIME, win_sleeptimer_UI_handler); time = sleeptimer_time[sleep_timer_states]; if(time == 0) time = TMO_FEVR; else time *= 60000; win_sleep_stop(); win_sleep_start(time); ret = PROC_LOOP; break; } return ret; }
static PRESULT tplst_list_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; switch(event) { case EVN_PRE_DRAW: win_tplist_set_display(); break; case EVN_POST_DRAW: break; case EVN_ITEM_PRE_CHANGE: api_stop_timer(&tpturn_timer_id); break; case EVN_ITEM_POST_CHANGE: tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); break; case EVN_PRE_CHANGE: break; case EVN_POST_CHANGE: break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); ret = win_tplist_list_unkown_act_proc(unact); break; default: break; } return ret; }
static PRESULT win_volume_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; SYSTEM_DATA* sys_data; PROGRESS_BAR* bar; char timestr[50]; bar = &vol_bar; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: win_volume_switch_clrstyle(); api_inc_wnd_count(); VOLUME_TIMER_TIME = sys_data->osd_set.time_out; if(VOLUME_TIMER_TIME == 0 || VOLUME_TIMER_TIME>10) VOLUME_TIMER_TIME = 5; VOLUME_TIMER_TIME *= 1000; OSD_SetProgressBarPos(bar, sys_data->volume); sprintf(timestr,"vol %d",sys_data->volume); OSD_SetTextFieldContent(&vol_Proc_txt, STRING_ANSI,timestr); break; case EVN_POST_OPEN: volume_timer = api_start_timer(VOLUME_TIMER_NAME,VOLUME_TIMER_TIME,volume_timer_func); break; case EVN_UNKNOWNKEY_GOT: ap_send_msg(CTRL_MSG_SUBTYPE_KEY, param1,FALSE); ret = PROC_LEAVE; break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { ret = PROC_LEAVE; } #ifdef USB_MP_SUPPORT else if(param1 == CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER) { ret = PROC_LEAVE; ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER,0,TRUE); } #endif break; case EVN_PRE_CLOSE: break; case EVN_POST_CLOSE: api_stop_timer(&volume_timer); sys_data_save(1); api_dec_wnd_count(); key_cnt=0; i=0; break; default: ; } return ret; }
static void dm_pvr_timer_start(UINT32 interval) { if (pvr_timer_id == OSAL_INVALID_ID) { pvr_timer_id = api_start_timer("DM_PVR", interval, dm_pvr_timer_handler); ASSERT(pvr_timer_id != OSAL_INVALID_ID); DM_DEBUG("start to wait PVR default volumes\n"); } }
static PRESULT otaset_item_edf_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 bID; UINT8 status; EDIT_FIELD* edf; bID = OSD_GetObjID(pObj); edf = (EDIT_FIELD*)pObj; switch(event) { case EVN_POST_CHANGE: status = OSD_GetEditFieldStatus(edf); if(status == SELECT_STATUS) { if(bID == EDIT_TP_FREQ_ID || bID == EDIT_TP_SYMB_ID) { 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_otaset_turn_frntend(); } } break; case EVN_PARENT_FOCUS_POST_LOSE: if(bID == EDIT_TP_FREQ_ID || bID == EDIT_TP_SYMB_ID) { if(win_otaset_get_FreqSymbPid_display() != 0) { 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_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; 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 win_screen_saver_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT16 vkey; switch(event) { case EVN_PRE_OPEN: { left_offset = RAND(600); top_offset = RAND(300); pObj->frame.uLeft = left_offset; pObj->frame.uTop = top_offset; win_screen_prog_infor(); f_screen_saver_timer = api_start_timer(SCREEN_SAVER_TIMER_NAME_ONE, SCREEN_SAVER_TIMER_INTERVAL_ONE, screen_saver_timer_func_one); } break; case EVN_POST_CLOSE: { OSD_ClearScreen(); } break; case EVN_UNKNOWN_ACTION: vkey = param1&0xFFFF; OSD_ClearScreen(); ap_send_key(vkey, TRUE); ret = PROC_LEAVE; break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_LEAVE_SAVER) { ret = PROC_LEAVE; } break; default: break; } return ret ; }
static PRESULT win_volume_bar_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; PROGRESS_BAR* bar; SYSTEM_DATA* sys_data; UINT32 vkey; bar = (PROGRESS_BAR*)pObj; sys_data = sys_data_get(); switch(event) { case EVN_PRE_CHANGE: break; case EVN_POST_CHANGE: sys_data->volume = OSD_GetProgressBarPos(bar); if(sys_data->volume > 0 && GetMuteState() ) { SetMuteOnOff(TRUE); //added by Sharon to resolve mute clear display bug restore_mute_bg(); } api_audio_set_volume(sys_data->volume); api_stop_timer(&volume_timer); volume_timer = api_start_timer(VOLUME_TIMER_NAME,VOLUME_TIMER_TIME,volume_timer_func); ret = PROC_LOOP; break; case EVN_UNKNOWNKEY_GOT: ap_hk_to_vk(0, param1, &vkey); if(vkey == V_KEY_NULL) { ret = PROC_LOOP; } break; default: break; } return ret; }
static PRESULT sleep_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; switch(event) { case EVN_PRE_OPEN: api_inc_wnd_count(); break; case EVN_POST_OPEN: sleep_UI_timer_id = api_start_timer(SLEEP_UI_TIMER_NAME, SLEEP_UI_TIMER_TIME, win_sleeptimer_UI_handler); break; case EVN_PRE_CLOSE: break; case EVN_POST_CLOSE: api_stop_timer(&sleep_UI_timer_id); api_dec_wnd_count(); #ifdef SUPPORT_CAS9 restore_ca_msg_when_exit_win(); #endif break; } return ret; }
static PRESULT mpegYT_player_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); switch (event) { case EVN_PRE_OPEN: MPEGYTBAR_TIMER_TIME = sys_data->osd_set.time_out; if(MPEGYTBAR_TIMER_TIME == 0 || MPEGYTBAR_TIMER_TIME>10) MPEGYTBAR_TIMER_TIME = 5; MPEGYTBAR_TIMER_TIME *= 1000; if (!m_mpegYT_player_working) { entry_youtube = ((yt_player_param*)param2)->ytentry_handle; url_youtube = ((yt_player_param*)param2)->url; MPEGYT_player_init(); } else { ret = PROC_LOOP; } m_mpegYT_player_working = TRUE; break; case EVN_POST_OPEN: mpegYT_timeout_id = api_start_timer(MPEGYTBAR_TIMER_NAME, MPEGYTBAR_TIMER_TIME, mpegYT_timeout_handler); break; case EVN_POST_DRAW: win_mpegYT_player_draw_infor(); break; case EVN_PRE_CLOSE: libnet_download_abort(g_strf_cur_dl_rsrc); mpg_cmd_stop_proc(); api_stop_timer(&mpegYT_refresh_id); api_stop_timer(&mpegYT_timeout_id); m_mpegYT_player_working = FALSE; g_from_mpegYTplayer = TRUE; s_ytvideo_seektime = 0; break; case EVN_UNKNOWN_ACTION: api_stop_timer(&mpegYT_timeout_id); unact = (VACTION)(param1>>16); //add on 2011-09-28 for BUG42869 //if(!b_vdec_support && !b_audio_yt_support) // MPEGYTInfo.TotalTime = 0; //else // MPEGYTInfo.TotalTime = MPGGetTotalPlayTime() + s_ytvideo_seektime; MPEGYTInfo.TotalTime = entry_youtube->info->duration; switch (unact) { case VACT_MUTE: { SetMuteOnOff(TRUE); ret = PROC_LOOP; break; } default : { ret = win_mpegYT_player_key_proc(pObj, (param1 & 0xFFFF), param2); if (ret != PROC_LEAVE) { if( ((param1 & 0xFFFF) != V_KEY_EXIT) && ((param1 & 0xFFFF) != V_KEY_MENU) && ((param1 & 0xFFFF) != V_KEY_PVR_INFO) && ((param1 & 0xFFFF) != V_KEY_LEFT) && ((param1 & 0xFFFF) != V_KEY_RIGHT)) { win_mpegYT_player_draw(TRUE); } } break; } } mpegYT_timeout_id = api_start_timer(MPEGYTBAR_TIMER_NAME, MPEGYTBAR_TIMER_TIME, mpegYT_timeout_handler); break; case EVN_UNKNOWNKEY_GOT: break; case EVN_MSG_GOT: ret = win_mpegYT_player_message_proc(pObj, param1, param2); break; } return ret; }
static PRESULT win_volume_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; SYSTEM_DATA* sys_data; PROGRESS_BAR* bar; bar = &vol_bar; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: win_volume_switch_clrstyle(); api_inc_wnd_count(); VOLUME_TIMER_TIME = sys_data->osd_set.time_out; if(VOLUME_TIMER_TIME == 0 || VOLUME_TIMER_TIME>10) VOLUME_TIMER_TIME = 5; VOLUME_TIMER_TIME *= 1000; OSD_SetProgressBarPos(bar, sys_data->volume); break; case EVN_POST_OPEN: volume_timer = api_start_timer(VOLUME_TIMER_NAME,VOLUME_TIMER_TIME,volume_timer_func); break; case EVN_UNKNOWNKEY_GOT: ap_send_msg(CTRL_MSG_SUBTYPE_KEY, param1,FALSE); ret = PROC_LEAVE; break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { ret = PROC_LEAVE; } #ifdef USB_MP_SUPPORT else if(param1 == CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER) { ret = PROC_LEAVE; ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER,0,TRUE); } #endif break; case EVN_PRE_CLOSE: // if open volume window by popup window, not clear OSD. if(menu_stack_get_top() != (POBJECT_HEAD)&g_win_volume) { /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; } break; case EVN_POST_CLOSE: api_stop_timer(&volume_timer); sys_data_save(1); api_dec_wnd_count(); break; default: ; } return ret; }
static PRESULT factoryset_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT32 sel; UINT8 bID; char str[10]; UINT16 * Uni_str; UINT8* pstr; UINT16 cur_idx; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 i,n = 0; S_NODE s_node; UINT32 flag; bID = OSD_GetObjID(pObj); switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); break; case EVN_POST_CHANGE: sel = param1; if(bID == IDC_CON5) { get_sat_at(sel,SET_SELECTED,&s_node); #if 0 #ifdef SUPPORT_TWO_TUNER //guop modify #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 OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL); #endif #endif } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == IDC_CON5) { get_sat_name_factory(2,sel,Uni_str); sys_data_set_cur_satidx(sel); } break; #if 0 case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_POP_UP) { OSD_SetRect2(&rect,&pObj->frame); switch(bID) { case SAT_ID: rect.uLeft -= 80; rect.uWidth += 80; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300; param.id = TUNER_EITHER; param.cur = SATSRCH_SAT_IDX; if(single_multi_srch_flag == 0) param.selecttype = POP_LIST_SINGLESELECT; else { MEMSET(sat_select,0,sizeof(sat_select)); n = get_tuner_sat_cnt(TUNER_EITHER); if(n == 0) { list_type = 0xFF; break; } for(i=0;i<n;i++) { get_tuner_sat(TUNER_EITHER,i,&s_node); if(s_node.selected_flag) sat_select[i] = 1; } #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) param.selecttype = POP_LIST_MULTISELECT; #else param.selecttype = POP_LIST_SINGLESELECT; #endif param.select_array = sat_select; } break; default: list_type = 0xFF; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(single_multi_srch_flag == 0) { if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; } else { /* Check the select satellite */ #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) for(i=0;i<n;i++) { if(win_comlist_ext_check_item_sel(i)) flag = 1; else flag = 0; get_tuner_sat(TUNER_EITHER,i,&s_node); if(s_node.selected_flag != flag) { s_node.selected_flag = flag; modify_sat(s_node.sat_id, &s_node); } } update_data(TYPE_SAT_NODE); #endif } if(single_multi_srch_flag == 0) SATSRCH_SAT_IDX = cur_idx; get_sat_at(cur_idx,SET_SELECTED,&s_node); #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 OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL); OSD_TrackObject((POBJECT_HEAD)&satsrch_item1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if(single_multi_srch_flag) { /* TODO : Draw the select satellites name */ //win_satsrch_set_drawselectsats(); UINT16 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; #endif } return ret; }
static PRESULT mpeg_player_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); switch (event) { case EVN_PRE_OPEN: MPEGBAR_TIMER_TIME = sys_data->osd_set.time_out; if(MPEGBAR_TIMER_TIME == 0 || MPEGBAR_TIMER_TIME>10) MPEGBAR_TIMER_TIME = 5; MPEGBAR_TIMER_TIME *= 1000; if (!m_mpeg_player_working) { MPEG_player_init(); } else { ret = PROC_LOOP; } m_mpeg_player_working = TRUE; break; case EVN_POST_OPEN: mpeg_timeout_id = api_start_timer(MPEGBAR_TIMER_NAME, MPEGBAR_TIMER_TIME, mpeg_timeout_handler); break; case EVN_POST_DRAW: win_mpeg_player_draw_infor(); break; case EVN_PRE_CLOSE: mpg_cmd_stop_proc(); api_stop_timer(&mpeg_refresh_id); api_stop_timer(&mpeg_timeout_id); m_mpeg_player_working = FALSE; g_from_mpegplayer = TRUE; break; case EVN_UNKNOWN_ACTION: api_stop_timer(&mpeg_timeout_id); unact = (VACTION)(param1>>16); switch (unact) { case VACT_MUTE: { SetMuteOnOff(TRUE); ret = PROC_LOOP; break; } default : { ret = win_mpeg_player_key_proc(pObj, (param1 & 0xFFFF), param2); if (ret != PROC_LEAVE) { if( ((param1 & 0xFFFF) != V_KEY_EXIT) && ((param1 & 0xFFFF) != V_KEY_MENU) && ((param1 & 0xFFFF) != V_KEY_PVR_INFO) && ((param1 & 0xFFFF) != V_KEY_INFOR)&& ((param1 & 0xFFFF) != V_KEY_LEFT) && ((param1 & 0xFFFF) != V_KEY_RIGHT)) { win_mpeg_player_draw(TRUE); } } break; } } mpeg_timeout_id = api_start_timer(MPEGBAR_TIMER_NAME, MPEGBAR_TIMER_TIME, mpeg_timeout_handler); break; case EVN_UNKNOWNKEY_GOT: break; case EVN_MSG_GOT: ret = win_mpeg_player_message_proc(pObj, param1, param2); break; } return ret; }
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; }
static PRESULT win_tplist_list_unkown_act_proc(VACTION act) { PRESULT ret = PROC_LOOP; UINT8 pre_sat_idx; UINT16 sel,sat_cnt; OSD_RECT rect; COM_POP_LIST_PARAM_T param; OBJLIST* ol; S_NODE s_node; T_NODE t_node; UINT32 freq,symb,pol; UINT8 back_saved; UINT32 ftaonly_VPid,srch_chan_APid,nit_PPid; UINT32 choice; POBJECT_HEAD sub_menu; INT32 iret; UINT16 pre_sat_id,cur_sat_id; sat_cnt = get_tuner_sat_cnt(TUNER_EITHER); get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node); ol = &tplst_olist; sel = OSD_GetObjListCurPoint(ol); pre_sat_idx = cur_tp_sat_idx; switch(act) { case VACT_SAT_PRE: if(cur_tp_sat_idx > 0) cur_tp_sat_idx --; else cur_tp_sat_idx = sat_cnt - 1; goto SAT_CHANGE; case VACT_SAT_NEXT: if(cur_tp_sat_idx < (sat_cnt - 1)) cur_tp_sat_idx ++; else cur_tp_sat_idx = 0; goto SAT_CHANGE; case VACT_SAT_SELECT: param.id = TUNER_EITHER; param.cur = cur_tp_sat_idx; param.selecttype = POP_LIST_SINGLESELECT; OSD_SetRect(&rect, LST_SAT_L - 20 , LST_SAT_T, LST_SAT_W + 40, 360); rect.uTop += LST_SAT_H; sel = win_com_open_sub_list(POP_LIST_TYPE_SAT,&rect,¶m); if(sel < sat_cnt) cur_tp_sat_idx = sel; goto SAT_CHANGE; SAT_CHANGE: tp_list_pos = 0; tp_list_top = 0; if(cur_tp_sat_idx != pre_sat_idx) { pre_tp_sat_idx = pre_sat_idx; get_tuner_sat(TUNER_EITHER, pre_sat_idx, &s_node); pre_sat_id = s_node.sat_id; get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node); cur_sat_id = s_node.sat_id; #ifdef SUPPORT_TWO_TUNER #ifdef SUPPORT_SELECT_SAME_SAT cur_tuner_idx = s_node.reserve_1; //s_node.tuner1_valid? 0 : 1; #else cur_tuner_idx = s_node.tuner1_valid? 0 : 1; #endif #endif if(win_tplist_check_change()) update_data(); win_tplist_load_sat(TRUE); //OSD_TrackObject( (POBJECT_HEAD)&tplst_olist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); api_stop_timer(&tpturn_timer_id); tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } break; case VACT_TP_EDIT: /* If not TP, can't EDIT */ if(OSD_GetObjListCount(ol) == 0) break; get_tp_at(s_node.sat_id,sel, &t_node); choice = win_tpe_open(0, s_node.sat_id, t_node.tp_id); if( choice) { win_tpe_get_setting(&freq, &symb, &pol); if(freq != t_node.frq || symb != t_node.sym || pol != t_node.pol) { t_node.frq = freq; t_node.sym = symb; t_node.pol = pol; modify_tp(t_node.tp_id,&t_node); api_stop_timer(&tpturn_timer_id); tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } } //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case VACT_TP_ADD: if(OSD_GetObjListCount(ol) == MAX_TP_NUM) break; extern UINT32 edit_tp_exist; edit_tp_exist = 0; choice = win_tpe_open(1, s_node.sat_id, 0); if(choice) { win_tpe_get_setting(&freq, &symb, &pol); MEMSET(&t_node,0,sizeof(t_node) ); t_node.frq = freq; t_node.sym = symb; t_node.pol = pol; t_node.sat_id = s_node.sat_id; iret = add_node(TYPE_TP_NODE,s_node.sat_id,(void*)&t_node); if((iret == DBERR_MAX_LIMIT) || (iret == DBERR_FLASH_FULL)) { OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL, RS_DISPLAY_TOO_MANY_TP); win_compopup_open_ext(&back_saved); break; } OSD_SetObjListCount(ol, OSD_GetObjListCount(ol) + 1); //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_ChangeFocus((POBJECT_HEAD)ol,OSD_GetObjListCount(ol) - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); api_stop_timer(&tpturn_timer_id); tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } else { OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if( edit_tp_exist > 0) { OSD_ChangeFocus((POBJECT_HEAD)ol,edit_tp_exist - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); edit_tp_exist = 0; } //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } break; case VACT_TP_DEL: /* If not TP, can't DEL */ if(OSD_GetObjListCount(ol) == 0) break; win_compopup_init(WIN_POPUP_TYPE_OKNO); win_compopup_set_msg(NULL, NULL,RS_DISPLAY_SURE_TO_DELETE); if(win_compopup_open_ext(&back_saved) != WIN_POP_CHOICE_YES) break; get_tp_at(s_node.sat_id,sel, &t_node); del_tp_by_id(t_node.tp_id); OSD_SetObjListCount(ol, OSD_GetObjListCount(ol) -1); OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if( OSD_GetObjListCount(ol) > 0) { if(sel == OSD_GetObjListCount(ol)) /* Delete last TP */ OSD_ChangeFocus((POBJECT_HEAD)ol,OSD_GetObjListCount(ol) - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); else tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } break; case VACT_TP_SRCH: /* If not TP, can't SEARCH */ if(OSD_GetObjListCount(ol) == 0) break; sys_data_set_cur_satidx(cur_tp_sat_idx); tp_list_pos = OSD_GetObjListCurPoint(ol); tp_list_top = OSD_GetObjListTop(ol); choice = win_tpsrch_open(&ftaonly_VPid,&srch_chan_APid,&nit_PPid); if(choice==1) { win_tpsrch_set_search_param(ftaonly_VPid,srch_chan_APid,nit_PPid); sub_menu = (POBJECT_HEAD)&g_win_search; wincom_close_help(); if(OSD_ObjOpen(sub_menu, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_push(sub_menu); set_movedish_flag(TRUE);/*only tp search,need not moving dish when return*/ } } else if(choice==2) //pid search { tp_VPid = ftaonly_VPid; tp_APid = srch_chan_APid; tp_PPid = nit_PPid; prog_callback_register((prog_node_return)win_tplist_set_search_pid_callback); get_tp_at(s_node.sat_id,sel,&t_node); win_search_set_pid_param(t_node.tp_id, tp_VPid, tp_APid, tp_PPid); win_tpsrch_set_search_param(P_SEARCH_FTA|P_SEARCH_SCRAMBLED,P_SEARCH_TV|P_SEARCH_RADIO,0); sub_menu = (POBJECT_HEAD)&g_win_search; wincom_close_help(); if(OSD_ObjOpen(sub_menu, 0xFFFFFFFF) != PROC_LEAVE) menu_stack_push(sub_menu); } else { //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } break; } return ret; }
static PRESULT atnsetf_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT32 sel; UINT8 bID; char str[30]; UINT16 * Uni_str; UINT8* pstr; SYSTEM_DATA* sys_data; POBJECT_HEAD other_antset_menu,item; S_NODE s_node; UINT16 cur_idx; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; MULTISEL* msel; sys_data = sys_data_get(); bID = OSD_GetObjID(pObj); switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); if(bID == TUNER_ID) { if(TUNER_CNT < 2) break; /* Check tuner : sel has selected satellite or not.*/ if(get_tuner_sat_cnt(sel) == 0) { UINT8 back_saved; win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL, RS_TUNER_HAS_NO_SATE_SEL); win_compopup_open_ext(&back_saved); antset_cur_tuner = (sel == 0)? 1: 0; win_atnsetf_load_sat_cnt(FALSE); ret = PROC_LOOP; } else { antset_cur_tuner = sel; cur_tuner_idx = antset_cur_tuner; } } break; case EVN_POST_CHANGE: sel = param1; if(bID == LNB_ID) { win_atnsetf_load_22k_action(TRUE); #ifdef SUPPORT_UNICABLE if(win_unicable_setting_open(LNB_IDX)) OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_fixed, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); #endif } if(bID == TUNER_ID) { if(sys_data->tuner_lnb_type[sel] != LNB_FIXED) { /* Need to change : Motor antenna setting menu. */ other_antset_menu = (POBJECT_HEAD)&g_win_antenna_set_motor; if(OSD_ObjOpen(other_antset_menu, MENU_OPEN_TYPE_MENU + bID) != PROC_LEAVE) { win_signal_close(); menu_stack_pop(); menu_stack_push(other_antset_menu); } ret = PROC_LOOP; } else { win_atnsetf_load_sat_cnt(TRUE); win_atnsetf_load_sat_setting(0,TRUE); } } else if(bID == SAT_ID) win_atnsetf_load_sat_setting(sel,TRUE); else if(bID != TP_ID) { win_atnsetf_modify_sat_setting(SAT_IDX); } if(ret != PROC_LOOP) { api_stop_timer(&set_frontend); set_frontend = api_start_timer("SETANT",600,(OSAL_T_TIMER_FUNC_PTR)atnsetf_set_frontend_handler); } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == SAT_ID) { get_tuner_sat_name(antset_cur_tuner,sel,Uni_str); sys_data_set_cur_satidx(sel); } else if(bID == TP_ID) { get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); get_tp_name(s_node.sat_id,sel,Uni_str); #ifdef SUPPORT_SELECT_SAME_SAT s_node.reserve_1 = antset_cur_tuner; modify_sat(s_node.sat_id, &s_node); update_data(); #endif } else if(bID == LNB_ID) get_lnb_name(sel,Uni_str); else if(bID == DISEQC11_ID) get_diseqc11_name(sel,Uni_str); else if(bID == IF_CHANNEL_ID) get_IF_channel_name(sel,Uni_str); else if(bID == CENTRE_FREQ_ID) get_centre_freqs_name(sel,Uni_str); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_POP_UP) { OSD_SetRect2(&rect,&pObj->frame); /*Patch: For solve pop-up windows show bugs,for example: Universal(5150-10600) can not be all show*/ OSD_SetRect(&rect, rect.uLeft, rect.uTop, (rect.uWidth + 10), rect.uHeight); param.selecttype = POP_LIST_SINGLESELECT; switch(bID) { case SAT_ID: rect.uLeft -= 40; rect.uWidth += 40; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300; param.id = antset_cur_tuner; param.cur = SAT_IDX; break; case LNB_ID: list_type = POP_LIST_TYPE_LNB; rect.uHeight = 300; param.cur = LNB_IDX; break; case TP_ID: list_type = POP_LIST_TYPE_TP; rect.uHeight = 340; get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); param.id = s_node.sat_id; param.cur = TP_IDX; break; case DISEQC10_ID: list_type = POP_LIST_TYPE_DISEQC10; rect.uHeight = 280; param.cur = DISEQC10_IDX; break; case DISEQC11_ID: list_type = POP_LIST_TYPE_DISEQC11; rect.uHeight = 240; param.cur = DISEQC11_IDX; break; case IF_CHANNEL_ID: list_type = POP_LIST_TYPE_IF_CHANNEL; rect.uHeight = 200; param.cur = IF_CHANNEL_IDX; break; case CENTRE_FREQ_ID: list_type = POP_LIST_TYPE_CENTRE_FREQ; rect.uHeight = 200; param.cur = CENTRE_FREQ_IDX; break; default: list_type = 0xFF; break; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; item = anesetf_items[bID - 1]; msel = anesetf_msels[bID - 1]; switch(bID) { case SAT_ID: SAT_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_atnsetf_load_sat_setting((UINT32)cur_idx, TRUE); break; case LNB_ID: LNB_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_atnsetf_load_22k_action(TRUE); #ifdef SUPPORT_UNICABLE if(win_unicable_setting_open(LNB_IDX)) OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_fixed, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); #endif break; /* case TP_ID: TP_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case DISEQC10_ID: DISEQC10_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case DISEQC11_ID: DISEQC11_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case IF_CHANNEL_ID: IF_CHANNEL_IDX= cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case CENTRE_FREQ_ID: CENTRE_FREQ_IDX= cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; */ default: msel->nSel = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; } if(bID != SAT_ID && bID != TP_ID) win_atnsetf_modify_sat_setting(SAT_IDX); api_stop_timer(&set_frontend); set_frontend = api_start_timer("SETANT",500,(OSAL_T_TIMER_FUNC_PTR)atnsetf_set_frontend_handler); } break; } return ret; }
static PRESULT win_progname_unkown_act_proc(VACTION act) { PRESULT ret = PROC_LOOP; INT32 shift; UINT8 av_mode, back_saved; UINT16 channel; UINT16 strID; #ifdef AD_SANZHOU P_NODE pnode; #endif api_stop_timer(&progname_timer); #ifdef MULTI_CAS #if(CAS_TYPE==CAS_IRDETO) if(getStopChannelChange()&&(act!=VACT_RECALL&&act!=VACT_SCHEDULE))//check whether stop channel change return ret; #endif #endif shift = - 1; switch (act) { case VACT_CH_UP: shift = 1; case VACT_CH_DOWN: change_channel(shift); #ifdef MIS_AD MIS_ShowEpgAdv(0); #endif break; case VACT_GRP_UP: shift = 1; case VACT_GRP_DOWN: change_group(shift); break; case VACT_FCH_UP: shift = 1; case VACT_FCH_DOWN: change_fav_channel(shift); break; case VACT_TV_RADIO_SW: av_mode = sys_data_get_cur_chan_mode(); av_mode = (av_mode == TV_CHAN) ? RADIO_CHAN : TV_CHAN; //sys_data_set_cur_intgroup_index(0); /*force to return all group*/ sys_data_get_group_channel(0, &channel, av_mode); if (channel == P_INVALID_ID) { /* If the opposite mode has no channel */ win_compopup_init(WIN_POPUP_TYPE_SMSG); if(av_mode == TV_CHAN) { win_compopup_set_msg(NULL, NULL, RS_MSG_NO_PROGRAM_TV); } else { win_compopup_set_msg(NULL, NULL, RS_MSG_NO_RADIO_CHANNEL); } win_compopup_open_ext(&back_saved); osal_task_sleep(1000); win_compopup_smsg_restoreback(); #ifdef MULTI_CAS #if(CAS_TYPE==CAS_CONAX) if(get_mmi_msg_cnt()>0) { ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_MCAS, 0, FALSE); MMI_PRINTF("CTRL_MSG_SUBTYPE_STATUS_MCAS: tv/radio; code:%d\n",0); set_mmi_showed(10); } #endif #endif } else { sys_data_set_cur_chan_mode(av_mode); change_group(0); } break; case VACT_RECALL: channel = recall_play_channel(0); if (channel != P_INVALID_ID) { #ifdef MULTI_CAS #if(CAS_TYPE==CAS_CONAX) /*clean msg*/ clean_mmi_msg(1, TRUE); clean_mmi_msg(3, TRUE); clean_mmi_msg(4, TRUE); clean_mmi_msg(6, TRUE); if(get_mmi_showed()==1||get_mmi_showed()==6) win_mmipopup_close(); if(get_mmi_showed()!=5) set_mmi_showed(10); #endif #endif api_play_channel(channel, TRUE, TRUE, FALSE); #ifdef AD_SANZHOU if(get_prog_at(channel, &pnode) == SUCCESS) { szxc_ad_hide_txt(); szxc_ad_show_txt(pnode.prog_number); szxc_ad_hide_pic(AD_BANNER); szxc_ad_show_banner(pnode.prog_number,banner_pic_rt); } #endif } #ifdef MULTI_CAS #if(CAS_TYPE==CAS_CONAX) else if(get_mmi_msg_cnt()>0) { ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_MCAS, 0, FALSE); MMI_PRINTF("CTRL_MSG_SUBTYPE_STATUS_MCAS: recall; code:%d\n",0); set_mmi_showed(10); } #endif #endif #ifdef MIS_AD MIS_ShowEpgAdv(0); #endif break; case VACT_SCHEDULE: api_stop_timer(&progname_timer); //close the mini_epg ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT, 1, TRUE); //open the schedule // ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)(POBJECT_HEAD)&g_win_schedule, TRUE); break; default: ; } #ifdef MULTI_CAS #if(CAS_TYPE==CAS_CDCA) show_finger_print(0, 0); #elif(CAS_TYPE==CAS_DVT) ap_cas_fingerprint_proc(0, 1); #endif #endif win_progname_redraw(TRUE); progname_timer = api_start_timer(PROGNAME_TIMER_NAME, PROGNAME_TIMER_TIME, progname_timer_func); #ifdef MIS_AD Mis_Set_SameChan_AdvShowOnce(TRUE); Mis_Set_EnterAutoShow(FALSE); #endif return ret; }
static PRESULT slide_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT16 slide_interval; PlayListLoopType loop_type; VACTION unact; FileInfo file_node; char image_name[FULL_PATH_SIZE]; int next_image; static UINT8 timer_start_flag = 0; UINT32 file_idx; switch(event) { case EVN_PRE_OPEN: imageslide_timer_id = OSAL_INVALID_ID; imageslide_proc_id = OSAL_INVALID_ID; if(from_imagepreview == TRUE) { imageslide_pause_state = IMG_PAUSE_STATE; } else { imageslide_pause_state = IMG_UNPAUSE_STATE; } win_imageslide_showpause(); api_set_preview_vpo_color(FALSE); break; case EVN_POST_OPEN: image_rot_ang = ANG_ORI; loop_type = image_slide_setting.bRepeat ? PLAY_LIST_REPEAT : PlAY_LIST_SEQUENCE; set_play_list_info(cur_playlist_image,&cur_image_idx,&loop_type); get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); win_image_file_play(image_name, image_rot_ang); slideidx_display(TRUE); decode_finish_flag = FALSE; break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); ret = win_imageslide_unkown_act_proc(unact); break; case EVN_PRE_CLOSE: g_from_imageslide = TRUE; imagedec_ioctl(1, IMAGEDEC_IO_CMD_CLEAN_FRM, TRUE); //when quit win_slide, clean 2 frm buffer if(image_folderloop_flag == 1)//filelist { get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); usblist_set_filelist_param(image_name); } image_abort(); api_stop_timer(&imageslide_timer_id); api_stop_timer(&imageslide_proc_id); timer_start_flag = 0; imageslide_timer_id = OSAL_INVALID_ID; imageslide_proc_id = OSAL_INVALID_ID; win_set_image_multiview_firstidx(); OSD_ClearObject((POBJECT_HEAD)&imageslide_idx,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&imageslide_pause,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&decode_txt_progress,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); break; case EVN_POST_CLOSE: image_restore_vpo_rect();//TODO break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER) { //storage_dev_mount_hint(1); file_list_check_storage_device(FALSE, FALSE); } else if(param1 == CTRL_MSG_SUBTYPE_STATUS_IMAGEOVER) { image_abort(); decode_finish_flag = TRUE; if(imageslide_pause_state == IMG_UNPAUSE_STATE) { slide_interval = (image_slide_setting.uTime_gap * 1000); if(0 != slide_interval) imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); else { imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); } } } else if (param1 == CTRL_MSG_SUBTYPE_STATUS_IMGTOOVER) // timer timeouts { //TODO: play next next_image = get_next_index_from_play_list(cur_playlist_image); if (next_image != -1) { cur_image_idx = next_image; set_play_list_info(cur_playlist_image,&cur_image_idx,NULL); get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); win_image_file_play(image_name, image_rot_ang); decode_finish_flag = FALSE; ap_send_msg(CTRL_MSG_SUBTYPE_CMD_UPDATE_VIEW, 0, TRUE); } else { ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT, 0,TRUE); } } else if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { if(from_imagepreview == TRUE) back_to_filelist = TRUE; ret = PROC_LEAVE; } else if(param1 == CTRL_MSG_SUBTYPE_CMD_UPDATE_VIEW) { slideidx_display(TRUE); ret = PROC_LOOP; } else if(param1 == CTRL_MSG_SUBTYPE_STATUS_MP3OVER) { win_play_next_music_ex(); } else if(param1 == CTRL_MSG_SUBTYPE_STATUS_PROC_UPDATE) { OSD_SetBitmapContent(&decode_bmp_progress, loading_bmp_ids[proc_cnt]); OSD_DrawObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); proc_cnt ++; if(proc_cnt >= LOADING_MAX) proc_cnt = 0; } if ((param1 == CTRL_MSG_SUBTYPE_STATUS_JPEG_DEC_PROCESS) || (param1 == CTRL_MSG_SUBTYPE_STATUS_IMAGEOVER)) { if ((param2 < 100) && (param1 == CTRL_MSG_SUBTYPE_STATUS_JPEG_DEC_PROCESS)) { loading_progress = (param2 * LOADING_MAX)/100; if (loading_progress > LOADING_MAX - 1) loading_progress = LOADING_MAX - 1; if(0 == timer_start_flag) { imageslide_proc_id = OSAL_INVALID_ID; imageslide_proc_id = api_start_cycletimer("SLIDE_PROC", 200, win_imageslide_proc_handler); timer_start_flag = 1; } // OSD_SetBitmapContent(&decode_bmp_progress, loading_bmp_ids[loading_progress]); // OSD_DrawObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); } else if((param2 >= 100) || (param1 == CTRL_MSG_SUBTYPE_STATUS_IMAGEOVER)) { OSD_ClearObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); api_stop_timer(&imageslide_proc_id); imageslide_proc_id = OSAL_INVALID_ID; timer_start_flag = 0; proc_cnt = 0; // imageslide_proc_id = OSAL_INVALID_ID; } } break; default: break; } return ret; }
static PRESULT otaset_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 bID; UINT32 sel; UINT16 * Uni_str; S_NODE s_node; VACTION unact; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 cur_idx; bID = OSD_GetObjID(pObj); switch(event) { case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; #if (SYS_PROJECT_FE == PROJECT_FE_DVBS || SYS_PROJECT_FE == PROJECT_FE_DVBS2) if(bID == EDIT_TP_SATE_ID) { #ifdef _BUILD_OTA_E_ ComAscStr2Uni("Fixed Sat", Uni_str); #else get_tuner_sat_name(OTA_TUNER_IDX,sel,Uni_str); #endif } else if(bID == EDIT_TP_TPIDX_ID) { get_tuner_sat(cur_tuner_idx,SAT_POS,&s_node); #ifdef _BUILD_OTA_E_ ComAscStr2Uni("Fixed TP", Uni_str); #else get_tp_name(s_node.sat_id,sel,Uni_str); #endif } #endif break; case EVN_POST_CHANGE: sel = param1; #if (SYS_PROJECT_FE == PROJECT_FE_DVBS || SYS_PROJECT_FE == PROJECT_FE_DVBS2) if(bID == EDIT_TP_SATE_ID) win_otaset_load_sat_setting(sel,TRUE); else if(bID == EDIT_TP_TPIDX_ID) win_otaset_load_tp_setting(sel,TRUE); #endif 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_otaset_turn_frntend(); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_POP_UP) { #if (SYS_PROJECT_FE == PROJECT_FE_DVBS || SYS_PROJECT_FE == PROJECT_FE_DVBS2) ret = PROC_LOOP; OSD_SetRect2(&rect,&pObj->frame); param.selecttype = POP_LIST_SINGLESELECT; switch(bID) { case EDIT_TP_SATE_ID: rect.uLeft -= 40; rect.uWidth += 40; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300;//230; param.id = OTA_TUNER_IDX; param.cur = SAT_POS; break; case EDIT_TP_TPIDX_ID: list_type = POP_LIST_TYPE_TP; rect.uHeight = 300;//230; get_tuner_sat(OTA_TUNER_IDX,SAT_POS,&s_node); param.id = s_node.sat_id; param.cur = TP_POS; break; default: list_type = 0xFF; break; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; if(bID == EDIT_TP_SATE_ID) { SAT_POS = cur_idx; OSD_TrackObject((POBJECT_HEAD)&wota_con0, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_otaset_load_sat_setting((UINT32)cur_idx, TRUE); } else if(bID == EDIT_TP_TPIDX_ID) { TP_POS = cur_idx; OSD_TrackObject((POBJECT_HEAD)&wota_con1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_otaset_load_tp_setting((UINT32)cur_idx,TRUE); } #endif 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_otaset_turn_frntend(); } } return ret; }
static PRESULT win_progname_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 i; VACTION unact; static UINT16 recall_channel = P_INVALID_ID; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: if(screen_back_state == SCREEN_BACK_MENU) { ap_clear_all_menus(); } b_popdetail = FALSE; PROGNAME_TIMER_TIME = sys_data->osd_set.time_out; if(PROGNAME_TIMER_TIME == 0 || PROGNAME_TIMER_TIME>10) PROGNAME_TIMER_TIME = 5; PROGNAME_TIMER_TIME *= 1000; recall_channel = P_INVALID_ID; if( (param2 & MENU_OPEN_TYPE_MASK) == MENU_OPEN_TYPE_KEY) { if( (param2 & MENU_OPEN_PARAM_MASK ) == V_KEY_RECALL) { recall_channel = recall_play_channel(0); if(recall_channel == P_INVALID_ID) return PROC_LEAVE; } } api_inc_wnd_count(); break; case EVN_POST_OPEN: if(show_and_playchannel) { UINT16 channel; show_and_playchannel = 0; channel = sys_data_get_cur_group_cur_mode_channel(); api_play_channel(channel, TRUE, TRUE,FALSE); } if(recall_channel != P_INVALID_ID) { api_play_channel(recall_channel, TRUE, TRUE,FALSE); OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } progname_timer = api_start_timer(PROGNAME_TIMER_NAME,PROGNAME_TIMER_TIME,progname_timer_func); ShowMuteOnOff(); ShowPauseOnOff(); #ifdef DVR_PVR_SUPPORT ShowRecHintOSDOnOff(GetRecHintState()); #endif break; case EVN_PRE_CLOSE: break; case EVN_POST_CLOSE: api_stop_timer(&progname_timer); sys_data_save(1); api_dec_wnd_count(); if(b_popdetail) { #if 0//def DVR_PVR_SUPPORT if(pvr_info.hdd_valid && (ap_pvr_set_state() != PVR_STATE_IDEL)) ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)&g_win_pvr_ctrl, TRUE); else ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)&g_win_progdetail, TRUE); #else ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)&g_win_progdetail, TRUE); #endif } break; case EVN_PRE_DRAW: break; case EVN_POST_DRAW: #ifdef MODIFY_FOR_EGYPT_CUSTOMER win_progname_draw_bmp(); #endif win_progname_draw_infor(); break; case EVN_UNKNOWNKEY_GOT: ap_send_msg(CTRL_MSG_SUBTYPE_KEY, param1, FALSE); ret = PROC_LEAVE; break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16) ; ret = win_progname_unkown_act_proc(unact); break; case EVN_MSG_GOT: ret = win_progname_message_proc(param1,param2); break; default: break; } return ret; }
static PRESULT motorset_itembtn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT8 bID; UINT8 back_saved; win_popup_choice_t choice; UINT32 position,sat_pos; struct nim_device *nim_dev; S_NODE s_node; nim_dev = antset_cur_tuner==0? g_nim_dev : g_nim_dev2; bID = OSD_GetObjID(pObj); switch(event) { case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_MOVE_WEST || unact == VACT_MOVE_EAST) { if(bID != MOVESAVE_ID) break; if(diskmotor_move_state == 0 ) { if(unact == VACT_MOVE_WEST) { #ifdef FIRST_MOVE_BY_STEP api_diseqc_drive_motor_west_by_steps(nim_dev,1,0); diskmotor_move_step = 0; #else api_diseqc_drive_motor_west(nim_dev,0); #endif diskmotor_move_state = 1; } else //VACT_MOVE_EAST { #ifdef FIRST_MOVE_BY_STEP api_diseqc_drive_motor_east_by_steps(nim_dev,1,0); diskmotor_move_step = 0; #else api_diseqc_drive_motor_east(nim_dev,0); #endif diskmotor_move_state = 2; } api_stop_timer(&diskmove_timer_id); osal_task_sleep(100); DBG_PRINTF("Start move %d\n",diskmotor_move_state); diskmove_timer_id = api_start_timer(MOVE_TIERR_NAME, MOVE_TIERR_TIME,win_disk_move_handler); SET_MOVE_DISPLAY: win_motorset_draw_info(diskmotor_move_state); win_motorset_movebtn_setstr(1); win_motorset_movebtn_draw(1); } else { if( (diskmotor_move_state == 1 && unact == VACT_MOVE_WEST) || (diskmotor_move_state ==2 && unact == VACT_MOVE_EAST)) { /* Continue move West or East*/ DBG_PRINTF("Continue move %d\n",diskmotor_move_state); #ifdef FIRST_MOVE_BY_STEP api_stop_timer(&diskmove_timer_id); if(diskmotor_move_step == 0) { osal_task_sleep(100); if(diskmotor_move_state== 1) api_diseqc_drive_motor_west(nim_dev,0); else api_diseqc_drive_motor_east(nim_dev,0); diskmotor_move_step = 1; DBG_PRINTF("First time continue move\n"); } //else // DBG_PRINTF("Continue move %d\n",diskmotor_move_state); #endif osal_task_sleep(100); diskmove_timer_id = api_start_timer(MOVE_TIERR_NAME, MOVE_TIERR_TIME,win_disk_move_handler); } else goto STOP_MOVE; } } else if(unact == VACT_ENTER) { if(bID == MOVESAVE_ID) { if(diskmotor_move_state != 0) goto STOP_MOVE; else { /* Save current postion */ OSD_GetEditFieldIntValue(&motorset_edf3,&position); get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); if(position<=MAX_POSNUM) { sat_pos = antset_cur_tuner==0? s_node.position : s_node.tuner2_antena.position; if(sat_pos == position && position== 0) { win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg("Position not specified (1~63)", NULL, 0); win_compopup_open_ext(&back_saved); break; } win_compopup_init(WIN_POPUP_TYPE_OKNO); if(position == 0) win_compopup_set_msg("Are you sure to clear this satellite's position?", NULL, 0); else win_compopup_set_msg("Are you sure to change this satellite's position?", NULL, 0); choice = win_compopup_open_ext(&back_saved); if(choice == WIN_POP_CHOICE_YES) { if(sat_pos != position) { recreate_sat_view(VIEW_ALL,0); if(antset_cur_tuner == 0) s_node.position = position; else s_node.tuner2_antena.position = position; modify_sat(s_node.sat_id, &s_node); update_data(); } if(position != 0) api_diseqc_store_satellite_position(nim_dev, (UINT8)position,0); } } else { } } } else if(bID == GOTONN_ID) { position = (UINT32)win_motorset_gotonn_sub_list(); if(position <= MAX_POSNUM) { if(position == 0) api_diseqc_goto_reference(nim_dev,0); else api_diseqc_goto_satellite_position(nim_dev,position,0); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg("Wait to move the position!", NULL, 0); win_compopup_set_btnstr(0, RS_DISEQC12_MOVEMENT_STOP); win_compopup_open_ext(&back_saved); api_diseqc_halt_motor(nim_dev,0); } } else if(bID == RECACULATE_ID) { get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); if(s_node.position==0) { win_compopup_init(WIN_POPUP_TYPE_SMSG); win_compopup_set_msg("Position is NULL", NULL,0); win_compopup_open_ext(&back_saved); osal_task_sleep(500); win_compopup_smsg_restoreback(); } win_compopup_init(WIN_POPUP_TYPE_OKNO); win_compopup_set_msg("Are you sure re-calulate all satellite positions?", NULL, 0); choice = win_compopup_open_ext(&back_saved); if(choice == WIN_POP_CHOICE_YES) api_diseqc_calculate_satellite_position(nim_dev,s_node.position,0,0, 0); } } break; case EVN_UNKNOWNKEY_GOT: //if(bID == MOVESAVE_ID) if(diskmotor_move_state) { STOP_MOVE: DBG_PRINTF("Stoped\n"); api_stop_timer(&diskmove_timer_id); osal_task_sleep(50); api_diseqc_halt_motor(nim_dev,0); diskmotor_move_state = 0; win_motorset_draw_info(diskmotor_move_state); win_motorset_movebtn_setstr(0); win_motorset_movebtn_draw(1); } break; } return ret; }
void win_sleep_start(UINT32 interval) { sleep_timer_id = api_start_timer("sleep", interval, win_sleep_handler); }
static PRESULT win_progname_unkown_act_proc(VACTION act) { PRESULT ret = PROC_LOOP; INT32 shift; UINT8 av_mode,back_saved; UINT16 channel; UINT16 strID; #ifdef DVR_PVR_SUPPORT if(api_pvr_is_recording()) { if( act != VACT_CH_UP && act != VACT_CH_DOWN) { return ret; } } #endif api_stop_timer(&progname_timer); shift = -1; switch(act) { case VACT_CH_UP: shift = 1; case VACT_CH_DOWN: change_channel(shift); break; case VACT_GRP_UP: shift = 1; case VACT_GRP_DOWN: change_group(shift); break; case VACT_FCH_UP: shift = 1; case VACT_FCH_DOWN: change_fav_channel(shift); break; case VACT_TV_RADIO_SW: av_mode = sys_data_get_cur_chan_mode(); av_mode = (av_mode==TV_CHAN)? RADIO_CHAN : TV_CHAN; sys_data_get_cur_group_channel(&channel, av_mode); if(channel==P_INVALID_ID) /* If the opposite mode has no channel */ { if(av_mode==RADIO_CHAN) strID = RS_MSG_NO_RADIO_CHANNEL; else strID = RS_MSG_NO_TV_CHANNEL; win_compopup_init(WIN_POPUP_TYPE_SMSG); win_compopup_set_msg(NULL, NULL,strID); win_compopup_open_ext(&back_saved); osal_task_sleep(500); win_compopup_smsg_restoreback(); } else { #ifndef NEW_DEMO_FRAME UIChChgStopProg(TRUE); #endif sys_data_set_cur_chan_mode(av_mode); change_group(0); } break; case VACT_RECALL: channel = recall_play_channel(0); if(channel != P_INVALID_ID) api_play_channel(channel, TRUE, TRUE,FALSE); break; case VACT_POP_DETAIL: b_popdetail = TRUE; ret = PROC_LEAVE; break; default: break; } win_progname_redraw(); progname_timer = api_start_timer(PROGNAME_TIMER_NAME,PROGNAME_TIMER_TIME,progname_timer_func); return ret; }
static PRESULT win_volume_bar_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; PROGRESS_BAR* bar; SYSTEM_DATA* sys_data; UINT32 vkey; static int m=0; VACTION unact; bar = (PROGRESS_BAR*)pObj; sys_data = sys_data_get(); switch(event) { case EVN_PRE_CHANGE: unact = (VACTION)(param1>>16); if(unact==VACT_DECREASE) volume_flag = 0; else if(unact==VACT_INCREASE) volume_flag = 1; if(key_cnt==1) i=0; m=sys_data->volume = OSD_GetProgressBarPos(bar); if(sys_data->volume > 0 && GetMuteState() ) { SetMuteOnOff(TRUE); restore_mute_bg(); } if(key_cnt > 1) { if(volume_flag) { sys_data->volume = sys_data->volume +2*(++i); } else { m = sys_data->volume -2*(++i); if(m<=0) { m=0; } sys_data->volume = m; } } if(sys_data->volume>=100) { sys_data->volume=100; } api_audio_set_volume(sys_data->volume); OSD_SetProgressBarPos(bar, sys_data->volume); break; case EVN_POST_CHANGE: api_stop_timer(&volume_timer); volume_timer = api_start_timer(VOLUME_TIMER_NAME,VOLUME_TIMER_TIME,volume_timer_func); ret = PROC_LOOP; break; case EVN_UNKNOWNKEY_GOT: ap_hk_to_vk(0, param1, &vkey); if(vkey == V_KEY_NULL) { ret = PROC_LOOP; } break; default: break; } return ret; }
static PRESULT mpvolume_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT16 vol_pos; SYSTEM_DATA *pSys; PPROGRESS_BAR mpvol_bar; PPROGRESS_BAR ban_bar; UINT32 msg_code; // construct virtual operation mpvol_bar = &mpvolume_bar; switch(event) { case EVN_PRE_OPEN: pSys = sys_data_get(); if(pSys->volume > 0 && GetMuteState() ) SetMuteOnOff(TRUE); vol_pos = mp_vol_to_pos(pSys->volume); OSD_SetProgressBarValue(mpvol_bar,vol_pos); MPVOLUME_TIMER_TIME = pSys->osd_set.time_out; if(MPVOLUME_TIMER_TIME == 0 || MPVOLUME_TIMER_TIME>10) MPVOLUME_TIMER_TIME = 5; MPVOLUME_TIMER_TIME *= 1000; break; case EVN_POST_OPEN: mpvolume_timer = api_start_timer("mpvol",MPVOLUME_TIMER_TIME,mpvolume_timer_func); break; case EVN_POST_CLOSE: api_stop_timer(&mpvolume_timer); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); switch(unact) { case VACT_VOL_UP: case VACT_VOL_DOWN: pSys = sys_data_get(); vol_pos = mp_vol_to_pos(pSys->volume); if(unact == VACT_VOL_DOWN) vol_pos--; else if(unact == VACT_VOL_UP) vol_pos++; OSD_SetProgressBarValue(mpvol_bar,vol_pos); pSys->volume = mp_pos_to_vol(OSD_GetProgressBarPos(mpvol_bar)); if(pSys->volume > 0 && GetMuteState() ) SetMuteOnOff(TRUE); api_audio_set_volume(pSys->volume); OSD_DrawObject((POBJECT_HEAD)mpvol_bar,C_UPDATE_ALL); api_stop_timer(&mpvolume_timer); mpvolume_timer = api_start_timer("mpvol",MPVOLUME_TIMER_TIME,mpvolume_timer_func); break; case VACT_BALANCE_L: case VACT_BALANCE_R: break; default: break; } break; default: break; } return ret; }
static PRESULT slide_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT16 slide_interval; PlayListLoopType loop_type; struct osd_device *osd_dev; struct OSDRect pRect; struct OSDPara OpenPara; UINT32 region_id =0; VACTION unact; FileInfo file_node; char image_name[FULL_PATH_SIZE]; int next_image; static UINT8 timer_start_flag = 0; UINT32 file_idx; SYSTEM_DATA *sys_cfg = sys_data_get(); switch(event) { case EVN_PRE_OPEN: imageslide_timer_id = OSAL_INVALID_ID; imageslide_proc_id = OSAL_INVALID_ID; if(from_imagepreview == TRUE) { imageslide_pause_state = IMG_PAUSE_STATE; } else { imageslide_pause_state = IMG_UNPAUSE_STATE; } win_imageslide_showpause(); api_set_preview_vpo_color(FALSE); 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 break; case EVN_POST_OPEN: image_rot_ang = ANG_ORI; loop_type = image_slide_setting.bRepeat ? PLAY_LIST_REPEAT : PlAY_LIST_SEQUENCE; set_play_list_info(cur_playlist_image,&cur_image_idx,&loop_type); get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); // while(jpeg_decoder_task_not_over) // { // libc_printf("error condition!\n"); // osal_task_sleep(20); // } image_abort(); timer_slide = osal_get_tick(); win_image_file_play(image_name, image_rot_ang); slideidx_display(TRUE); decode_finish_flag = FALSE; break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); ret = win_imageslide_unkown_act_proc(unact); break; case EVN_PRE_CLOSE: g_from_imageslide = TRUE; imagedec_ioctl(1, IMAGEDEC_IO_CMD_CLEAN_FRM, TRUE); //when quit win_slide, clean 2 frm buffer if(image_folderloop_flag == 1)//filelist { get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); usblist_set_filelist_param(image_name); } image_abort(); ///* #ifdef DUAL_ENABLE #ifdef PNG_GIF_TEST pRect.uLeft =136; pRect.uTop = 40; pRect.uWidth = 1008;//OSD_MAX_WIDTH;//608; pRect.uHeight = 640;//OSD_MAX_HEIGHT;//430; OpenPara.eMode = OSD_HD_ARGB1555; OpenPara.uGAlpha = 0x0f; OpenPara.uGAlphaEnable = 0; OpenPara.uPalletteSel = 0; osd_dev = (struct osd_device *)dev_get_by_id(HLD_DEV_TYPE_OSD, 0); if (osd_dev != NULL) { OSDDrv_Close((HANDLE)osd_dev); //AD_GIF_PRINTF("%s() OSD_layer2 is closed!\n", __FUNCTION__); } OSDDrv_Open((HANDLE)osd_dev, &OpenPara); osal_task_sleep(20); //trans_color = OSD_GetTransColor(OpenPara.eMode,TRUE); OSDDrv_IoCtl((HANDLE)osd_dev, OSD_IO_SET_TRANS_COLOR, 0x00); OSDDrv_CreateRegion((HANDLE)osd_dev, region_id, &pRect, NULL); pRect.uLeft = pRect.uTop = 0; OSDDrv_RegionFill((HANDLE)osd_dev,region_id,&pRect,0x00); OSDDrv_ShowOnOff((HANDLE)osd_dev, TRUE); #endif #endif //*/ api_stop_timer(&imageslide_timer_id); api_stop_timer(&imageslide_proc_id); timer_start_flag = 0; imageslide_timer_id = OSAL_INVALID_ID; imageslide_proc_id = OSAL_INVALID_ID; win_set_image_multiview_firstidx(); sys_cfg = sys_data_get(); sys_data_set_display_mode(&(sys_cfg->avset)); OSD_ClearObject((POBJECT_HEAD)&imageslide_idx,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&imageslide_pause,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&decode_txt_progress,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); break; case EVN_POST_CLOSE: image_restore_vpo_rect();//TODO break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER) { //storage_dev_mount_hint(1); file_list_check_storage_device(FALSE, FALSE); } else if(param1 == CTRL_MSG_SUBTYPE_STATUS_IMAGEOVER) { if(param2 > timer_slide) { image_abort(); } else { libc_printf("slide @@@@@@@@@@@@@@ es case\n"); break; } decode_finish_flag = TRUE; if(imageslide_pause_state == IMG_UNPAUSE_STATE) { slide_interval = (image_slide_setting.uTime_gap * 1000); if(0 != slide_interval) imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); else { imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); } } } else if (param1 == CTRL_MSG_SUBTYPE_STATUS_IMGTOOVER) // timer timeouts { //TODO: play next // while(jpeg_decoder_task_not_over) // { // libc_printf("\n%%%%%%%%%%%%%%%%%%%%%%%%%\n"); // osal_task_sleep(20); // } image_abort(); next_image = get_next_index_from_play_list(cur_playlist_image); if (next_image != -1) { cur_image_idx = next_image; set_play_list_info(cur_playlist_image,&cur_image_idx,NULL); get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); win_image_file_play(image_name, image_rot_ang); decode_finish_flag = FALSE; ap_send_msg(CTRL_MSG_SUBTYPE_CMD_UPDATE_VIEW, 0, TRUE); } else { ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT, 0,TRUE); } } else if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { if(from_imagepreview == TRUE) back_to_filelist = TRUE; ret = PROC_LEAVE; } else if(param1 == CTRL_MSG_SUBTYPE_CMD_UPDATE_VIEW) { slideidx_display(TRUE); ret = PROC_LOOP; } else if(param1 == CTRL_MSG_SUBTYPE_STATUS_MP3OVER) { win_play_next_music_ex(); } else if(param1 == CTRL_MSG_SUBTYPE_STATUS_PROC_UPDATE) { OSD_SetBitmapContent(&decode_bmp_progress, loading_bmp_ids[proc_cnt]); OSD_DrawObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); proc_cnt ++; if(proc_cnt >= LOADING_MAX) proc_cnt = 0; } if ((param1 == CTRL_MSG_SUBTYPE_STATUS_JPEG_DEC_PROCESS) || (param1 == CTRL_MSG_SUBTYPE_STATUS_IMAGEOVER)) { if ((param2 < 100) && (param1 == CTRL_MSG_SUBTYPE_STATUS_JPEG_DEC_PROCESS)) { loading_progress = (param2 * LOADING_MAX)/100; if (loading_progress > LOADING_MAX - 1) loading_progress = LOADING_MAX - 1; if(0 == timer_start_flag) { imageslide_proc_id = OSAL_INVALID_ID; imageslide_proc_id = api_start_cycletimer("SLIDE_PROC", 200, win_imageslide_proc_handler); timer_start_flag = 1; } // OSD_SetBitmapContent(&decode_bmp_progress, loading_bmp_ids[loading_progress]); // OSD_DrawObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); } else if((param2 >= 100) || (param1 == CTRL_MSG_SUBTYPE_STATUS_IMAGEOVER)) { OSD_ClearObject((POBJECT_HEAD)&decode_bmp_progress,C_UPDATE_ALL); api_stop_timer(&imageslide_proc_id); imageslide_proc_id = OSAL_INVALID_ID; timer_start_flag = 0; proc_cnt = 0; // imageslide_proc_id = OSAL_INVALID_ID; } } break; default: break; } return ret; }
static PRESULT win_imageslide_unkown_act_proc(VACTION act) { PRESULT ret = PROC_PASS; UINT8 rotate_mode, display_mode; POBJECT_HEAD win,mplayer_menu; int next_image; UINT16 slide_interval; FileInfo file_node; char image_name[FULL_PATH_SIZE]; switch(act) { case VACT_ROTATEL: case VACT_ROTATER: if(FALSE == decode_finish_flag) break; if(imageslide_pause_state == IMG_UNPAUSE_STATE) { api_stop_timer(&imageslide_timer_id); imageslide_pause_state = IMG_PAUSE_STATE; } if(act == VACT_ROTATER) { image_rot_ang = (image_rot_ang + 1)%IMAGE_ANGLE_CNT; } else { image_rot_ang = (image_rot_ang+IMAGE_ANGLE_CNT - 1)%IMAGE_ANGLE_CNT; } image_rotate(image_rot_ang); if(image_rot_ang == ANG_ORI) { win_imageslide_showrotate(FALSE); win_imageslide_showpause(); } else { OSD_ClearObject((POBJECT_HEAD)&imageslide_pause, 0); win_imageslide_showrotate(TRUE); } slideidx_display(TRUE); break; case VACT_INCREASE: case VACT_DECREASE: if(imageslide_pause_state == IMG_UNPAUSE_STATE) { api_stop_timer(&imageslide_timer_id); imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); } if(act == VACT_INCREASE) { next_image = get_next_index_from_play_list(cur_playlist_image); } else { next_image = get_previous_index_from_play_list(cur_playlist_image); } if(next_image != -1) { cur_image_idx = next_image; api_stop_timer(&imageslide_timer_id); image_abort(); if(image_rot_ang!= ANG_ORI) { image_rot_ang = ANG_ORI; win_imageslide_showrotate(FALSE); win_imageslide_showpause(); } osal_task_sleep(20); set_play_list_info(cur_playlist_image,&cur_image_idx,NULL); get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); win_image_file_play(image_name, image_rot_ang); decode_finish_flag = FALSE; osal_task_sleep(20); slideidx_display(TRUE); } break; case VACT_PAUSE: if(imageslide_pause_state == IMG_UNPAUSE_STATE) { imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); api_stop_timer(&imageslide_timer_id); } else { if(image_rot_ang == ANG_ORI) { imageslide_pause_state = IMG_UNPAUSE_STATE; slide_interval = (image_slide_setting.uTime_gap * 1000); win_imageslide_showpause(); if(0 != image_slide_setting.uTime_gap) imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); } } ret = PROC_LOOP; break; case VACT_PLAY: if(IMG_PAUSE_STATE == imageslide_pause_state) { if(image_rot_ang == ANG_ORI) { imageslide_pause_state = IMG_UNPAUSE_STATE; win_imageslide_showpause(); slide_interval = (image_slide_setting.uTime_gap * 1000); if(0 != image_slide_setting.uTime_gap) imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); } } ret = PROC_LOOP; break; case VACT_ZOOM: if(decode_finish_flag) { if(imageslide_pause_state == IMG_UNPAUSE_STATE) { imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); api_stop_timer(&imageslide_timer_id); } win_mpzoom_open(); if(image_rot_ang == ANG_ORI) { imageslide_pause_state = IMG_UNPAUSE_STATE; slide_interval = (image_slide_setting.uTime_gap * 1000); win_imageslide_showpause(); imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); } } break; case VACT_MP: win = (POBJECT_HEAD)(&g_win_imageslide); OSD_ObjClose(win,C_CLOSE_CLRBACK_FLG); while((POBJECT_HEAD)&g_win_usb_filelist != menu_stack_get_top()) { menu_stack_pop(); } image_abort(); win_set_image_multiview_firstidx(); mplayer_menu = (POBJECT_HEAD)(&g_win_imagepreview); if(OSD_ObjOpen(mplayer_menu,(UINT32)(~0)) != PROC_LEAVE) menu_stack_push(mplayer_menu); break; default: break; } return ret; }
static PRESULT win_progname_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 i; VACTION unact; static UINT16 recall_channel = P_INVALID_ID; SYSTEM_DATA *sys_data; ID taskID; UINT8 *screenBuf; UINT32 vKey; enum API_PLAY_TYPE ret_enum; P_NODE pnode; UINT16 channel = 0; sys_data = sys_data_get(); switch (event) { case EVN_PRE_OPEN: #if(CAS_TYPE == CAS_CONAX) if(get_mmi_showed()!=5) { #endif //Clear the subtitle or teletext content of the last program #if ((SUBTITLE_ON == 1 )||(TTX_ON ==1)) api_osd_mode_change(OSD_WINDOW); #endif #if(CAS_TYPE == CAS_CONAX) } #endif taskID = osal_task_get_current_id(); screenBuf = OSD_GetTaskVscrBuffer(taskID); MEMSET(screenBuf, OSD_TRANSPARENT_COLOR, OSD_VSRC_MEM_MAX_SIZE); #ifdef NVOD_FEATURE if(GetNvodPlayFlag()) return PROC_LEAVE; #endif PROGNAME_TIMER_TIME = sys_data->osd_set.time_out; if (PROGNAME_TIMER_TIME == 0 || PROGNAME_TIMER_TIME > 10) PROGNAME_TIMER_TIME = 5; PROGNAME_TIMER_TIME *= 1000; recall_channel = P_INVALID_ID; if ((param2 &MENU_OPEN_TYPE_MASK) == MENU_OPEN_TYPE_KEY) { vKey = param2 & MENU_OPEN_PARAM_MASK; if (vKey == V_KEY_RECALL) { recall_channel = recall_play_channel(0); if (recall_channel == P_INVALID_ID) return PROC_LEAVE; } #ifdef MULTI_CAS #if(CAS_TYPE==CAS_CONAX) else if( (param2 & MENU_OPEN_PARAM_MASK ) == V_KEY_INFOR) { if(get_mmi_msg_cnt()>0) { ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_MCAS, 0, FALSE); MMI_PRINTF("CTRL_MSG_SUBTYPE_STATUS_MCAS: info key; code:0"); set_mmi_showed(10); } } #endif #endif else { if(V_KEY_UP==vKey || V_KEY_DOWN==vKey || V_KEY_C_UP==vKey ||\ V_KEY_C_DOWN==vKey || V_KEY_P_UP==vKey || V_KEY_P_DOWN==vKey\ || V_KEY_TVRADIO==vKey) { unact = win_progname_keymap(pObj, vKey); if(VACT_PASS != unact) { win_progname_unkown_act_proc(unact); } } } } #ifdef MULTI_CAS #if(CAS_TYPE==CAS_IRDETO) if(IRCA_BAN_GetBannerShow()) { //ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_MCAS,0x00200000 , FALSE); ap_send_msg_expand(CTRL_MSG_SUBTYPE_STATUS_MCAS,0x00000020 ,0, FALSE); //ap_cas_call_back(0x00000020); } #endif #endif //ad_show(AD_CHANNEL_BAR); OSD_SetBitmapContent(&Bitmappr2, IM_PIC); break; case EVN_POST_OPEN: channel = sys_data_get_cur_group_cur_mode_channel(); if(get_prog_at(channel, &pnode) != SUCCESS) { return PROC_LEAVE; } /* if parent lock && no pwd, play it ,...just want to show pwd*/ /*if(pnode.lock_flag && GetChannelParrentLock()) { api_play_channel(channel,TRUE,TRUE,FALSE); } */ if (show_and_playchannel) { show_and_playchannel = 0; ret_enum = api_play_channel(channel,TRUE,TRUE,FALSE); #ifdef MIS_AD MIS_ShowEpgAdv(0); #endif } if (recall_channel != P_INVALID_ID) { ret_enum = api_play_channel(recall_channel, TRUE, TRUE, FALSE); OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } #ifdef AD_SANZHOU if((recall_channel == P_INVALID_ID)||(get_prog_at(recall_channel, &pnode) == SUCCESS)) { szxc_ad_hide_txt(); szxc_ad_show_txt(pnode.prog_number); szxc_ad_hide_pic(AD_BANNER); szxc_ad_show_banner(pnode.prog_number,banner_pic_rt); } #endif progname_timer = api_start_timer(PROGNAME_TIMER_NAME, PROGNAME_TIMER_TIME, progname_timer_func); ShowMuteOnOff(); ShowPauseOnOff(); #ifdef MIS_AD Mis_Set_SameChan_AdvShowOnce(TRUE); Mis_Set_EnterAutoShow(FALSE); #endif break; case EVN_PRE_CLOSE: //ad_stop(AD_CHANNEL_BAR); #ifdef MIS_AD MIS_HideEpgAdv(); #endif break; case EVN_POST_CLOSE: api_stop_timer(&progname_timer); win_progname_stop_scroll(); #if ((SUBTITLE_ON==1)||(TTX_ON==1)) api_osd_mode_change(OSD_SUBTITLE); #endif #ifdef AD_SANZHOU szxc_ad_hide_pic(AD_BANNER); #endif break; case EVN_PRE_DRAW: if(0 != win_progname_set_info()) ret = PROC_LEAVE; break; case EVN_POST_DRAW: break; case EVN_UNKNOWNKEY_GOT: ap_hk_to_vk(0, param1, &vKey); if(check_exit_key_validate(vKey)) { ap_send_msg(CTRL_MSG_SUBTYPE_KEY, param1, FALSE); ret = PROC_LEAVE; } break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1 >> 16); ret = win_progname_unkown_act_proc(unact); break; case EVN_MSG_GOT: ret = win_progname_message_proc(param1, param2); break; default: break; } return ret; }