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; }
/*this interface is keep for "key_check_signal_status()" in key.c*/ BOOL new_win_signal_set_level_quality(UINT32 level, UINT32 quality, UINT32 lock) { PROGRESS_BAR *bar; POBJECT_HEAD pObj; UINT16 level_shIdx; UINT16 quality_shIdx; UINT16 ber_idx; UINT32 ber_value; if (lock) { level_shIdx = PROGRESS_COLOR_GREEN; quality_shIdx = LOCK_IDX; ber_idx = PROGRESS_COLOR_BLUE; } else { level_shIdx = UNLOCK_IDX; quality_shIdx = UNLOCK_IDX; ber_value = 0; } if (level < 4) level_shIdx = WSTL_NOSHOW_IDX; if (quality < 4) quality_shIdx = WSTL_NOSHOW_IDX; bar = &new_sig_bar_level;//sig_bar_level; OSD_SetProgressBarPos(bar, level); bar->wTickFg = level_shIdx; bar = &new_sig_bar_CN;//sig_bar_CN; OSD_SetProgressBarPos(bar, quality); bar->wTickFg = quality_shIdx; /* If signal display is on */ pObj = (POBJECT_HEAD) &g_new_signal_test;//g_win_signal; if (pObj->pRoot == NULL) return FALSE; else return TRUE; }
BOOL win_signal_set_wifi_level_quality(UINT32 level,UINT32 quality,UINT32 lock) { PROGRESS_BAR* bar; POBJECT_HEAD pObj; UINT16 level_shIdx; UINT16 quality_shIdx; if(lock) { level_shIdx = B_LEVEL_LOCK_SH_IDX; quality_shIdx = B_QUALITY_LOCK_SH_IDX; } else { level_shIdx = B_LEVEL_UNLOCK_SH_IDX; quality_shIdx = B_QUALITY_UNLOCK_SH_IDX; } if(level < 4) level_shIdx = WSTL_NOSHOW_IDX; if(quality < 4) quality_shIdx = WSTL_NOSHOW_IDX; // level_shIdx = WSTL_PROGNAME_BAR_SH; // quality_shIdx = WSTL_PROGNAME_BAR_SH; bar = &sig_bar_level; OSD_SetProgressBarPos(bar,level); bar->wTickFg = level_shIdx; bar = &sig_bar_quality; OSD_SetProgressBarPos(bar,quality); bar->wTickFg = quality_shIdx; /* If signal display is on */ pObj = (POBJECT_HEAD)&g_win_signal; if(pObj->pRoot == NULL) return FALSE; else return TRUE; }
static void win_usbupg_process_update(UINT32 process) { if(process > 100) process = 0; OSD_SetProgressBarPos(&usbupg_bar_progress,(INT16)process); OSD_SetTextFieldContent(&usbupg_txt_progress, STRING_NUM_PERCENT, (UINT32)process); OSD_DrawObject( (POBJECT_HEAD)&usbupg_bar_progress, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)&usbupg_txt_progress, C_UPDATE_ALL); }
static void win_rs232upg_start() { UINT16 channel; OSD_SetProgressBarPos(&rs232upg_bar_progress,(INT16)0); OSD_SetTextFieldContent(&rs232upg_txt_progress, STRING_NUM_PERCENT, (UINT32)0); sys_upgrade(win_rs232upg_update,upg_check_exit_key/*UIGetExitKey*/); FreeSlavelist(); if(screen_back_state == SCREEN_BACK_VIDEO) { channel = sys_data_get_cur_group_cur_mode_channel(); api_play_channel(channel, TRUE, TRUE,FALSE); } }
static void win_rs232upg_process_update(INT32 process) { #ifdef WATCH_DOG_SUPPORT dog_set_time(0, 0); #endif if(process > 100) process = 0; OSD_SetProgressBarPos(&rs232upg_bar_progress,(INT16)process); OSD_SetTextFieldContent(&rs232upg_txt_progress, STRING_NUM_PERCENT, (UINT32)process); OSD_DrawObject( (POBJECT_HEAD)&rs232upg_bar_progress, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)&rs232upg_txt_progress, C_UPDATE_ALL); }
static PRESULT sys_backup_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: //epg_release(); wincom_open_title(pObj, RS_SYSTEM_BACKUP, 0); wincom_open_help(NULL, NULL, HELP_TYPE_RS232); OSD_SetProgressBarPos(&sys_backup_bar_progress,(INT16)0); OSD_SetTextFieldContent(&sys_backup_txt_progress, STRING_NUM_PERCENT, (UINT32)0); ret = win_sys_backup_init(); break; case EVN_POST_OPEN: system_state = SYS_STATE_USB_UPG; win_sys_backup_msg_clear(); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: system_state = SYS_STATE_NORMAL; wincom_close_title(); wincom_close_help(); //epg_init(ap_send_epg_PF_update, ap_send_epg_sch_update, ap_send_epg_detail_update); break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { ret = PROC_LEAVE; } break; default: break; } return ret; }
static void win_pvod_download() { UINT16 i; BOOL bFinished=FALSE; #if 0 OSD_SetAttr(&pvod_item_con1, C_ATTR_INACTIVE); OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL); OSD_SetAttr(&pvod_item_con2, C_ATTR_INACTIVE); OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL); OSD_SetAttr(&pvod_item_con3, C_ATTR_INACTIVE); OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL); OSD_SetAttr(&pvod_item_con4, C_ATTR_INACTIVE); OSD_DrawObject( (POBJECT_HEAD)&pvod_item_con1, C_UPDATE_ALL); OSD_SetProgressBarPos(&pvod_bar_progress,(INT16)0); OSD_SetTextFieldContent(&pvod_txt_progress, STRING_NUM_PERCENT, (UINT32)0); #endif //download data /* for(i=0;i<5;i++) { osal_delay(300); win_pvod_process_update(20*(i+1)); } */ //download finished // bFinished = TRUE; // SendMsgtoThread(0x01,0x00,0x00);/**Pvod_Programschedule_Query*/ //检查USB连接???? //启动pushvod SendMsgtoThread(Pvod_START_PAT,0,0); }
static void win_mpegYT_player_draw_infor(void) { BITMAP* bmp; TEXT_FIELD* txt; PROGRESS_BAR* bar; mpegYTplayer_bmp_t* bmp_desc; mpegYTplayer_txt_t* txt_desc; UINT32 i, hd_fulless; UINT16 icon; char string[30]; UINT32 hh, mm, ss; UINT32 play_pos = 0; FileInfo file_node; char name_buffer[MAX_FILE_NAME_SIZE + 1]; bmp = &mpegYT_player_bmp; txt = &mpegYT_player_text; bar = &mpegYT_player_bar; for (i = 0; i < MPEGYT_BMP_NUM; i++) { bmp_desc = &mpegYTplayer_bmps[i]; icon = INVALID_ID; switch (bmp_desc->bmp_type) { case MPEGYT_BMP_STATIC: //icon = bmp_desc->icon; break; case MPEGYT_BMP_PLAY_RECORD: icon = bmp_desc->icon; break; case MPEGYT_BMP_PLAY_MODE: if (MPEGYTInfo.PlayState < sizeof(mpegplayer_yt_status_icons) / 2) { icon = mpegplayer_yt_status_icons[MPEGYTInfo.PlayState]; } break; case MPEGYT_BMP_HDD_STATUS: /* step_sectors = (hdd_info.total_size - hdd_info.tms_size) / 5; if(step_sectors >0 ) { hd_fulless = (hdd_info.rec_size + step_sectors/2) / step_sectors ; if(hd_fulless == 5) hd_fulless = 4; icon = MP_HDstatus_icons[4-hd_fulless];//hd_fulless -> 4-hd_fulles, show used space! } */ break; default: break; } OSD_SetBitmapContent(bmp, icon); OSD_SetRect(&bmp->head.frame, bmp_desc->left, bmp_desc->top, bmp_desc->width, bmp_desc->height); OSD_DrawObject( (OBJECT_HEAD*) bmp, C_UPDATE_ALL); } for (i = 0;i < MPEGYT_TXT_NUM;i++) { txt_desc = &mpegYTplayer_txts[i]; OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)""); switch (txt_desc->txt_type) { case MPEGYT_TXT_PLAY_NAME: //get_file_from_file_list(win_file_list[VIDEO_FILE_LIST], mpegYTlist_idx, &file_node); //filter_unkownfont_name(file_node.name, name_buffer); win_shorten_filename(entry_youtube->title,name_buffer); sprintf(name_buffer, "%s", name_buffer); OSD_SetTextFieldContent(txt, STRING_UTF8, (UINT32)name_buffer); break; case MPEGYT_TXT_DATE: //sprintf(string,"%02d/%02d",dt.month,dt.day); //STRCPY(string, ""); sprintf(string, "%02d/%02d/%02d", entry_youtube->pub_date.year, entry_youtube->pub_date.month, entry_youtube->pub_date.day); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string); break; case MPEGYT_TXT_TIME: //sprintf(string,"%02d:%02d",dt.hour,dt.min); STRCPY(string, ""); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string); break; case MPEGYT_TXT_PLAY_MODE: STRCPY(string, ""); if (MPEGYTInfo.PlayState == MPEG_STOP) { sprintf(string, "%s", "Stop"); } else if (MPEGYTInfo.PlayState == MPEG_PLAY) { sprintf(string, "%s", "Play"); } else if (MPEGYTInfo.PlayState == MPEG_PAUSE) { sprintf(string, "%s", "Pause"); } else if (MPEGYTInfo.PlayState == MPEG_FF || MPEGYTInfo.PlayState == MPEG_FB) { sprintf(string, "X%d", mpegYTspeed_steps[MPEGYTInfo.PlaySpeed]); } else if (MPEGYTInfo.PlayState == MPEG_SF || MPEGYTInfo.PlayState == MPEG_SB) { sprintf(string, "X1/%d", mpegYTspeed_steps[MPEGYTInfo.PlaySpeed]); } else if(MPEGYTInfo.PlayState == MPEG_STEP) { sprintf(string,"%s","Step"); } #ifdef SUPPORT_DIVX_CERT else if(MPEGYTInfo.PlayState == MPEG_RESUME_STOP) { sprintf(string,"%s","Stop"); } #endif OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string); break; case MPEGYT_TXT_PLAY_1ST_TIME: STRCPY(string, ""); MPEGYTInfo.PlayTime = (UINT32)MPGFileDecoderGetPlayTime() + s_ytvideo_seektime; if (MPEGYTInfo.PlayState == MPEG_STOP) MPEGYTInfo.PlayTime = 0; #if 1 hh = MPEGYTInfo.PlayTime / 3600; mm = (MPEGYTInfo.PlayTime % 3600) / 60; ss = MPEGYTInfo.PlayTime % 60; #else hh = entry_youtube->info->duration/3600; mm = (entry_youtube->info->duration % 3600) / 60; ss = entry_youtube->info->duration % 60; #endif sprintf(string, "%02d:%02d:%02d", hh, mm, ss); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string); break; case MPEGYT_TXT_PLAY_2ND_TIME: STRCPY(string, ""); #if 0 hh = MPEGYTInfo.TotalTime / 3600; mm = (MPEGYTInfo.TotalTime % 3600) / 60; ss = MPEGYTInfo.TotalTime % 60; #else hh = entry_youtube->info->duration/3600; mm = (entry_youtube->info->duration % 3600) / 60; ss = entry_youtube->info->duration % 60; #endif sprintf(string, "%02d:%02d:%02d", hh, mm, ss); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string); break; case MPEGYT_TXT_HDD_STATUS: /*step_sectors = (hdd_info.total_size - hdd_info.tms_size)/100; if(step_sectors >0 ) { sprintf(string,"%d%%",(100 - (hdd_info.rec_size+ step_sectors/2 )/step_sectors)); } else { STRCPY(string,""); } OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string); */ break; } OSD_SetRect(&txt->head.frame, txt_desc->left, txt_desc->top, txt_desc->width, txt_desc->height); txt->head.style.bShowIdx = txt_desc->shidx; OSD_DrawObject( (OBJECT_HEAD *)txt, C_UPDATE_ALL); } /* Draw progress bar */ OSD_SetProgressBarPos(bar, 100); OSD_SetRect(&bar->head.frame, BAR_L, BAR_T, BAR_W, 24); bar->rcBar.uLeft = 2; bar->rcBar.uTop = 5; bar->rcBar.uWidth = BAR_W - 4; bar->rcBar.uHeight = 14;//16 - 6; bar->wTickFg = WSTL_BAR_06; OSD_DrawObject((POBJECT_HEAD)bar, C_UPDATE_ALL); /* Draw play pos */ // BarState.nPos = MPEGYTInfo.PlayTime; if (BarState.nRange) { play_pos = BarState.nPos * 100 / BarState.nRange; } OSD_SetRect(&bmp->head.frame, bar->head.frame.uLeft+6 + (bar->head.frame.uWidth-12)*play_pos / 100*OSD_GetProgressBarPos(bar) / 100 - POS_ICON_WIDTH / 2, bar->head.frame.uTop, POS_ICON_WIDTH, bar->head.frame.uHeight); OSD_SetBitmapContent(bmp, IM_PVR_DOT); OSD_DrawObject((POBJECT_HEAD)bmp, C_UPDATE_ALL); /* Draw play cursor */ if (CURSOR_MOVING == BarState.State) { if (BarState.nRange) { play_pos = BarState.nCursor * 100 / BarState.nRange; } OSD_SetRect(&bmp->head.frame, bar->head.frame.uLeft + 6 + (bar->head.frame.uWidth-4)*play_pos / 100/**OSD_GetProgressBarPos(bar) / 100*/ - POS_ICON_WIDTH / 2, //OSD_SetRect(&bmp->head.frame, bar->head.frame.uLeft + 6 + (bar->head.frame.uWidth-4)*play_pos / 100*OSD_GetProgressBarPos(bar) / 100 - POS_ICON_WIDTH / 2, bar->head.frame.uTop, POS_ICON_WIDTH, bar->head.frame.uHeight); OSD_SetBitmapContent(bmp, IM_PVR_DOT_ORANGE); OSD_DrawObject((POBJECT_HEAD)bmp, C_UPDATE_ALL); } }
static PRESULT sys_backup_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; CONTAINER* cont = (CONTAINER*)pObj; UINT8 id = OSD_GetObjID(pObj); OSD_RECT rect; UINT32 posi; 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 // win_usb_backup_tmr_loop =0; wincom_open_subtitle(pObj, RS_SYSTEM_BACKUP, 0); wincom_open_help(NULL, NULL, HELP_TYPE_RS232); OSD_SetProgressBarPos(&sys_backup_bar_progress,(INT16)0); OSD_SetTextFieldContent(&sys_backup_txt_progress, STRING_NUM_PERCENT, (UINT32)0); ret = win_sys_backup_init(); break; case EVN_POST_OPEN: system_state = SYS_STATE_USB_UPG; wincom_open_commen_help(pObj);//-a by wangyang win_sys_backup_msg_clear(); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: system_state = SYS_STATE_NORMAL; //wincom_close_title(); wincom_close_subtitle(); wincom_close_help(); win_progress_bar_draw_bmp_close(); OSD_ClearScreen(); #ifdef EXIT_KEY_EXIT_ALL_MENU if( exit_key_flag == TRUE) { exit_key_flag =FALSE; mm_leave_all_menu(); } #endif //epg_init(ap_send_epg_PF_update, ap_send_epg_sch_update, ap_send_epg_detail_update); //OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL); break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { ret = PROC_LEAVE; } #ifdef PREVIEW_SUBMENU //-a by wangyang 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_rs232upg_con, MENU_OPEN_TYPE_OTHER ); ret = PROC_LEAVE; } #endif if (param1 == CTRL_MSG_SUBTYPE_CMD_TIMEDISPLAYUPDATE ) { /*if(start_backup==1) { win_usb_backup_tmr_loop++; posi = win_usb_backup_tmr_loop % PROGRESS_BAR_ICON_CNT; OSD_SetRect(&rect, BAR_TXT_L, BAR_TXT_T+BAR_TXT_H+4, 80, 80); win_progress_bar_draw_bmp(&rect,progress_bar_ids[posi]); } else win_progress_bar_draw_bmp_close();*/ } 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; 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; }
BOOL win_signal_set_level_quality(UINT32 level,UINT32 quality,UINT32 lock) { PROGRESS_BAR* bar; POBJECT_HEAD pObj; UINT16 level_shIdx; UINT16 quality_shIdx; if(api_is_sd_color_mode()) { if(lock) { level_shIdx = B_LEVEL_LOCK_SH_IDX; quality_shIdx = B_QUALITY_LOCK_SH_IDX; } else { level_shIdx = B_LEVEL_UNLOCK_SH_IDX; quality_shIdx = B_QUALITY_UNLOCK_SH_IDX; } if(level < 4) level_shIdx = WSTL_NOSHOW_IDX; if(quality < 4) quality_shIdx = WSTL_NOSHOW_IDX; } else { if(lock) { level_shIdx = B_LEVEL_LOCK_SH_IDX_HD; quality_shIdx = B_QUALITY_LOCK_SH_IDX_HD; } else { level_shIdx = B_LEVEL_UNLOCK_SH_IDX_HD; quality_shIdx = B_QUALITY_UNLOCK_SH_IDX_HD; } if(level < 4) level_shIdx = WSTL_NOSHOW_IDX; if(quality < 4) quality_shIdx = WSTL_NOSHOW_IDX; } if(lock) { level+=30; if(level>=100) { level=98; } quality+=30; if(quality>=100) { quality=98; } } bar = &sig_bar_level; OSD_SetProgressBarPos(bar,level); bar->wTickFg = level_shIdx; bar = &sig_bar_quality; if(quality < 10) { quality = 10; } OSD_SetProgressBarPos(bar,quality); bar->wTickFg = quality_shIdx; /* If signal display is on */ pObj = (POBJECT_HEAD)&g_win_signal; if(pObj->pRoot == NULL) return FALSE; else return TRUE; }
void ap_tf_cas_process_update(UINT8 process, UINT8 mark) { date_time dt; SYSTEM_DATA* pSysData = NULL; static tem_process = 0; // static BOOL g_smc_read = FALSE; //libc_printf("smc upd process:%d, %d\n", process, mark); ap_tf_cas_clear_screen(CLEAR_CA_MSG); if(CDCA_SCALE_RECEIVEPATCH == mark) { smcupg_txt_msg.wStringID = RS_DISPLAY_DOWNLOADING; } else if(CDCA_SCALE_PATCHING == mark) { smcupg_txt_msg.wStringID = RS_TF3_SHOWMSG_UPDATE; } pSysData = sys_data_get(); if (CDCA_SCALE_PATCHING == mark && (process == 0 ||(FALSE == g_smc_read) )) { if(FALSE == g_smc_read) { if(g_smc_no[0] != 0) { MEMCPY(pSysData->upd_smc_no, g_smc_no, sizeof(g_smc_no)); g_smc_read = TRUE; } } } if(process > 100) { if (CDCA_SCALE_PATCHING == mark) { get_local_time(&dt); pSysData->smc_update_dt = dt; if (tem_process == 100) { pSysData->bUpd_status = TRUE; } else { pSysData->bUpd_status = FALSE; } } sys_data_save(0); #if 1 OSD_ClearObject((POBJECT_HEAD)&smcupg_info_con, C_UPDATE_ALL); if((POBJECT_HEAD)&smcupg_info_con == menu_stack_get_top()) { menu_stack_pop(); } BackToFullScrPlay(); #else OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_msg, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&smcupg_bar_progress, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL); #endif } else { if((POBJECT_HEAD)CHANNEL_BAR_HANDLE == menu_stack_get_top()) { OSD_ObjClose((POBJECT_HEAD)CHANNEL_BAR_HANDLE, C_DRAW_SIGN_EVN_FLG|C_CLOSE_CLRBACK_FLG); menu_stack_pop(); } if(-1 == window_pos_in_stack((POBJECT_HEAD)&smcupg_info_con)) { menu_stack_push((POBJECT_HEAD)&smcupg_info_con); } OSD_SetProgressBarPos(&smcupg_bar_progress,(INT16)process); OSD_SetTextFieldContent(&smcupg_txt_progress, STRING_NUM_PERCENT, (UINT32)process); #if 1 OSD_DrawObject((POBJECT_HEAD)&smcupg_info_con, C_UPDATE_ALL); #else OSD_DrawObject( (POBJECT_HEAD)&smcupg_txt_msg, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)&smcupg_bar_progress, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL); #endif } tem_process = process; }
static PRESULT pvod_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: // SendMsgtoThread(Pvod_START_PAT,0,0);//自己启动PVOD win_pvod_pause(); win_pvod_load_prog_info(); OSD_SetProgressBarPos(&pvod_bar_progress,(INT16)0); OSD_SetTextFieldContent(&pvod_txt_progress, STRING_NUM_PERCENT, (UINT32)0); break; case EVN_POST_OPEN: win_pvod_msg_clear(); //win_pvod_display_msg( OSD_GetMultiselSel(&pvod_sel_prog_name)); wincom_open_title_ext((POBJECT_HEAD)&g_win_pvod,"Push VOD", 0); break; case EVN_PRE_CLOSE: win_pvod_clear(); /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_STATUS_PVOD) { UINT16 percent = (UINT16)(param2 ); pvod_disp_type_t disp_type = (pvod_disp_type_t)(param2>>16); if(PVOD_DISP_DDB_DOWNLOAD_PROGRASS == disp_type) { win_pvod_process_update(percent); if(percent == 100) { POBJECT_HEAD submenu=NULL; mp_title_type = TITLE_VIDEO; submenu = (POBJECT_HEAD)&g_win_usb_filelist; g_enter_from_pvod = TRUE; if(OSD_ObjOpen(submenu, MENU_OPEN_TYPE_MENU | 1) != PROC_LEAVE) { menu_stack_push(submenu); } } } } break; }
static PRESULT win_search_update_progress(UINT8 progress_prec) { UINT8 result = PROC_LOOP; win_popup_choice_t popup_result=WIN_POP_CHOICE_NULL; UINT8 back_save; PROGRESS_BAR* bar; TEXT_FIELD* txt; P_NODE node; UINT8 str[32]; DBG_PRINTF("Enter %s....\n",__FUNCTION__); BOOL is_flash_full = FALSE; bar = &srch_progress_bar; txt = &srch_progress_txt; if(progress_prec == 150) { progress_prec = 100; is_flash_full = TRUE; } OSD_SetProgressBarPos(bar, progress_prec); if(progress_prec< 3) bar->wTickFg = WSTL_NOSHOW_IDX; else bar->wTickFg = PROGRESSBAR_PROGRESS_SH_IDX; OSD_SetTextFieldContent(txt, STRING_NUM_PERCENT,progress_prec); if(win_search_param.as_method != AS_METHOD_NIT_TP && win_search_param.as_method != AS_METHOD_NIT&& win_search_param.as_method != AS_METHOD_MULTI_NIT) { OSD_DrawObject( (POBJECT_HEAD)bar, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); }/*If search mode is AS_METHOD_NIT_TP/AS_METHOD_NIT/AS_METHOD_MULTI_NIT, do not show progress bar*/ if(progress_prec == 100) // is completed ? { // stop drawave timer, at first //osal_timer_activate(win_search_tmr_id, FALSE); if((srch_ch_cnt[0] != 0x0) // radio || (srch_ch_cnt[1] != 0x0))// tv { //win_search_save_data(TRUE); } else // not find { if(!is_flash_full) { INT32 ret = 0; if(pid_search_flg) { #ifdef NEW_DEMO_FRAME struct dmx_device *dmx = (struct dmx_device *)dev_get_by_id(HLD_DEV_TYPE_DMX, 0); ret = as_prog_pid_search(dmx, 1, pid_search_VPid,pid_search_APid, pid_search_PPid); #else ret = as_prog_pid_search(1,pid_search_VPid,pid_search_APid,pid_search_PPid); #endif if(ret) {//add node MEMSET(&node,0,sizeof(node)); node.sat_id = pid_search_tp>>NODE_ID_TP_BIT; node.tp_id = pid_search_tp; node.video_pid = pid_search_VPid; node.audio_count = 1; node.audio_pid[0] = pid_search_APid; node.pcr_pid = pid_search_PPid; node.av_flag =1; sprintf(str,"tp%d_%d",node.tp_id,node.video_pid); ComAscStr2Uni(str, (UINT16*)node.service_name); if(SUCCESS!= lookup_node(TYPE_PROG_NODE, &node, node.tp_id)) { add_node(TYPE_PROG_NODE, node.tp_id, &node); update_data(); } } } if(!ret) { win_search_last_tp_ok_failed(srch_tp_cnt); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL,RS_MSG_NO_PROGRAM_FOUND); win_compopup_open_ext(&back_save); } } } if(is_flash_full==TRUE) { win_search_last_tp_ok_failed(srch_tp_cnt); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL,RS_MSG_SPACE_FULL); win_compopup_open_ext(&back_save); } result = PROC_LEAVE; }
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; }
BOOL new_win_signal_update() { POBJECT_HEAD pObj; PROGRESS_BAR *bar; TEXT_FIELD *txt; UINT16 cn_noise, level; UINT32 ber; INT32 temp = 0; UINT32 dot = 0; char str[20]; struct nim_device *nim_dev; UINT8 lock, cn_noise_maped = 0, level_maped = 0; UINT16 level_shIdx,quality_shIdx,ber_idx; pObj = (POBJECT_HEAD) &g_new_signal_test;//lin if (pObj->pRoot == NULL) return FALSE; if (cur_tuner_idx == 0) nim_dev = g_nim_dev; else nim_dev = g_nim_dev2; nim_get_lock(nim_dev, &lock); nim_ioctl_ext(nim_dev, NIM_DRIVER_GET_RF_LEVEL, (void*) &level); if (lock) { level_shIdx = PROGRESS_COLOR_GREEN; quality_shIdx = LOCK_IDX; ber_idx = PROGRESS_COLOR_BLUE; nim_ioctl_ext(nim_dev, NIM_DRIVER_GET_CN_VALUE, (void*) &cn_noise); nim_ioctl_ext(nim_dev, NIM_DRIVER_GET_BER_VALUE, (void*) &ber); } else { level_shIdx = UNLOCK_IDX; quality_shIdx = UNLOCK_IDX; ber_idx = UNLOCK_IDX; cn_noise = 0; ber = 0; } //update the text value & uint for each item if(lock) { sprintf(str, "%d.%d ", cn_noise / 10, cn_noise % 10); } else { sprintf(str, "0"); } txt = &new_sig_txt_CN0;//sig_txt_CN_uint; OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)str); sprintf(str, "%d ", ber); txt = &new_sig_txt_BER0;//sig_txt_BER_uint; OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)str); if (level % 10) { temp = (107-level / 10) - 1; //107 dot = 10-level % 10; } else { temp = 107-level / 10; //107 dot = 0; } if(temp<0) temp= -temp; //temp=0; //avoid the negative value sprintf(str, "%d.%d", temp, dot); txt = &new_sig_txt_level0;//sig_txt_level_uint; OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)str); //draw SNR bar nim_get_SNR(nim_dev, &cn_noise_maped); bar = &new_sig_bar_CN;//sig_bar_CN; if(0==cn_noise) { OSD_SetProgressBarPos(bar, cn_noise_maped); bar->wTickFg = quality_shIdx; } else { OSD_SetProgressBarPos(bar, cn_noise_maped); //OSD_SetProgressBarPos(bar, cn_noise_maped); bar->wTickFg = quality_shIdx; } //Draw the signal error bar bar = &new_sig_bar_BER;//sig_bar_BER; ber = new_map_ber_value(&ber); OSD_SetProgressBarPos(bar, ber); bar->wTickFg = ber_idx; //Draw the signal intensity bar level_maped = temp *100 / 107; // if((level_maped>=0)&&(level_maped<30)) if(level_maped<30) { level_maped = 5*level_maped/2; } else if((level_maped>=30)&&(level_maped<60)) { level_maped = 75 + (level_maped - 30)/3; } else { level_maped = 95 + (level_maped - 60)/20; } if (level_maped > 100) { level_maped = 100; // osal_task_sleep(10); } bar = &new_sig_bar_level;//sig_bar_level; OSD_SetProgressBarPos(bar, level_maped); bar->wTickFg = level_shIdx; //draw them all OSD_DrawObject(pObj, C_UPDATE_ALL); return TRUE; }
static void progname_signal_refresh(BOOL update) { UINT8 level,quality,lock; struct nim_device* nim_dev; char stringTemp[50]; PROGRESS_BAR* bar; POBJECT_HEAD pObj; UINT16 level_shIdx; UINT16 quality_shIdx; if(cur_tuner_idx == 0) nim_dev = g_nim_dev; else nim_dev = g_nim_dev2; nim_get_lock(nim_dev, &lock); nim_get_AGC(nim_dev, &level); nim_get_SNR(nim_dev, &quality); dem_signal_to_display(lock,&level,&quality); memset(stringTemp,0,sizeof(stringTemp)); sprintf(stringTemp,"%d%%",level); OSD_SetTextFieldContent(&progname_progress_S_value, STRING_ANSI, (UINT32)stringTemp); sprintf(stringTemp,"%d%%",quality); OSD_SetTextFieldContent(&progname_progress_Q_value, STRING_ANSI, (UINT32)stringTemp); if(api_is_sd_color_mode()) { if(lock) { level_shIdx = WSTL_BAR_04_8BIT; quality_shIdx = WSTL_BAR_02_8BIT; } else { level_shIdx = WSTL_BAR_03_8BIT; quality_shIdx = WSTL_BAR_03_8BIT; } if(level < 4) level_shIdx = WSTL_NOSHOW_IDX; if(quality < 4) quality_shIdx = WSTL_NOSHOW_IDX; } else { if(lock) { level_shIdx = WSTL_BAR_01_HD; quality_shIdx = WSTL_BAR_02_HD; } else { level_shIdx = WSTL_BAR_03_HD; quality_shIdx = WSTL_BAR_03_HD; } if(level < 4) level_shIdx = WSTL_NOSHOW_IDX; if(quality < 4) quality_shIdx = WSTL_NOSHOW_IDX; } bar = &progname_progress_bar_S; OSD_SetProgressBarPos(bar,level); bar->wTickFg = level_shIdx; bar = &progname_progress_bar_Q; if(quality < 10) { quality = 10; } OSD_SetProgressBarPos(bar,quality); bar->wTickFg = quality_shIdx; if(update) { memset(stringTemp,0,sizeof(stringTemp)); sprintf(stringTemp,"Intensity"); OSD_SetTextFieldContent(&progname_progress_S_name, STRING_ANSI, (UINT32)stringTemp); OSD_DrawObject((POBJECT_HEAD)&progname_progress_S_name,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); memset(stringTemp,0,sizeof(stringTemp)); sprintf(stringTemp,"Quality"); OSD_SetTextFieldContent(&progname_progress_Q_name, STRING_ANSI, (UINT32)stringTemp); OSD_DrawObject((POBJECT_HEAD)&progname_progress_Q_name,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD)&progname_progress_bar_S,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD)&progname_progress_S_value,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD)&progname_progress_bar_Q,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD)&progname_progress_Q_value,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); } }
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; }