static void win_tpsrch_mode_init(void) { CONTAINER* win = &g_win_tpsrch_set; CONTAINER* mode_item = &tpsrch_item0; CONTAINER* item1 = &tpsrch_item1; CONTAINER* item2 = &tpsrch_item2; CONTAINER* item3 = &tpsrch_item3; TEXT_FIELD* title = &tpsrch_title; TEXT_FIELD* ok_btn = &tpsrch_btntxt_ok; TEXT_FIELD* cancel_btn = &tpsrch_btntxt_cancel; #ifdef PID_SEARCH_SUPPORT OSD_SetObjpNext(title,mode_item); item1->head.bUpID = mode_item->head.bID; #else OSD_SetMultiselSel(&tpsrch_sel0, NORMAL_SRCH); OSD_SetObjpNext(title,item1); item1->head.bUpID = mode_item->head.bUpID; /* OSD_MoveObject(item1,0, -(CON_H + CON_GAP)/2, TRUE); OSD_MoveObject(item2,0, -(CON_H + CON_GAP)/2, TRUE); OSD_MoveObject(item3,0, -(CON_H + CON_GAP)/2, TRUE); */ OSD_MoveObject(item1,0, -(CON_H + CON_GAP), TRUE); OSD_MoveObject(item2,0, -(CON_H + CON_GAP), TRUE); OSD_MoveObject(item3,0, -(CON_H + CON_GAP), TRUE); OSD_MoveObject(ok_btn,0, -(CON_H + CON_GAP), TRUE); OSD_MoveObject(cancel_btn,0, -(CON_H + CON_GAP), TRUE); ok_btn->head.bDownID = item1->head.bID; cancel_btn->head.bDownID = item1->head.bID; #endif }
static void win_atnsetm_load_tuner_configuration(void) { CONTAINER* tuner_item= &atnsetm_item1; CONTAINER* win =&g_win_antenna_set_motor; CONTAINER* lnb_item = &atnsetm_item2; MULTISEL* msel; POBJECT_HEAD pObj; UINT32 i,tuner_cnt; UINT8 action; static BOOL bFirstTime = 1; #ifdef SUPPORT_TWO_TUNER msel = anesetm_msels[TUNER_ID - 1]; tuner_cnt = get_tuner_cnt(); msel->nCount = tuner_cnt; if(antset_cur_tuner >= tuner_cnt) antset_cur_tuner = tuner_cnt - 1; msel->nSel = antset_cur_tuner; action = (tuner_cnt == 1)? C_ATTR_INACTIVE : C_ATTR_ACTIVE; OSD_SetAttr(tuner_item, action); pObj = OSD_GetContainerNextObj(tuner_item); while(pObj) { OSD_SetAttr(pObj , action); pObj = OSD_GetObjpNext(pObj); } if((C_ATTR_INACTIVE == action)&&(TUNER_ID == OSD_GetContainerFocus(win))) OSD_SetContainerFocus(win, LNB_ID); tuner_type_ids[0] = get_tuner_strid(0); tuner_type_ids[1] = get_tuner_strid(1); #else if(bFirstTime) { OSD_SetContainerNextObj(win,lnb_item); lnb_item->head.bUpID = tuner_item->head.bUpID; pObj = (POBJECT_HEAD)lnb_item; OSD_MoveObject(pObj,0, -(CON_H + CON_GAP), TRUE); while(pObj->pNext) { pObj = pObj->pNext; OSD_MoveObject(pObj,0, -(CON_H + CON_GAP), TRUE); } pObj->bDownID = lnb_item->head.bID; OSD_SetContainerFocus(win, LNB_ID); } bFirstTime = 0; #endif }
/******************************************************************************* * Local functions *******************************************************************************/ static void win_input_draw_chars(void) { TEXT_FIELD* txt; char str[10]; INT32 i; UINT32 win_width=0; UINT32 win_left=0; UINT32 char_left=0; win_width = (CHAR_W+CHAR_GAP)*input_length+CHAR_GAP + 10; win_left = (OSD_MAX_WIDTH - win_width)/2 ; char_left = (win_left + 20); txt = &win_input_char; for(i=0;i<input_length;i++) { OSD_MoveObject( (POBJECT_HEAD)txt, char_left + (CHAR_W + CHAR_GAP)*i, CHAR_T, FALSE); if(i<input_char_cnt) sprintf(str,"%c",input_mask[0]); else sprintf(str,"%c",input_mask[1]); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)str); if(i==input_char_cnt) OSD_TrackObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); else OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); } }
static void sudoku_draw_cursor(UINT8 row, UINT8 col) { UINT8 pos; UINT8 WStyle; pos = row*BOARD_COLS+col; WStyle = WSTL_GAMESUDOKU_CURSOR_HD; drawSquare(BK_X_OFFSET+col*GRID_WIDTH-2, BK_Y_OFFSET+row*GRID_WIDTH-2,\ GRID_WIDTH+4, GRID_WIDTH+4, WStyle); if(pboard[pos]!=' ') { OSD_MoveObject((POBJECT_HEAD)&txt_Grid,BK_X_OFFSET+col*GRID_WIDTH,BK_Y_OFFSET+row*GRID_WIDTH,FALSE); OSD_SetTextFieldContent(&txt_Grid,STRING_NUMBER, (UINT32)(pboard[pos]-'0')); OSD_DrawObject((POBJECT_HEAD)&txt_Grid,C_UPDATE_ALL); } }
static void win_antcnt_load_setting(void) { CONTAINER* win = &g_win_antenna_connect; SYSTEM_DATA* sys_data; MULTISEL* msel; static BOOL bFirstTime = 1; sys_data = sys_data_get(); /* Antenna connect */ msel = antcnt_msels[0]; if(sys_data->antenna_connect_type >= msel->nCount) sys_data->antenna_connect_type = ANTENNA_CONNECT_SINGLE; msel->nSel = sys_data->antenna_connect_type; /* LNB1 */ msel = antcnt_msels[1]; if(sys_data->tuner_lnb_type[0] >= msel->nCount) sys_data->tuner_lnb_type[0] = LNB_FIXED; msel->nSel = sys_data->tuner_lnb_type[0]; /* LNB2 */ msel = antcnt_msels[2]; if(sys_data->tuner_lnb_type[1] >= msel->nCount) sys_data->tuner_lnb_type[1] = LNB_FIXED; msel->nSel = sys_data->tuner_lnb_type[1]; #ifdef SUPPORT_TWO_TUNER win_antcnt_update_lnb12_action(0); OSD_SetContainerFocus(win, ANTENNA_CONNECT_ID); #else if(bFirstTime) { POBJECT_HEAD pObj = (POBJECT_HEAD)&antcnt_item2; OSD_MoveObject(pObj,0, -(CON_H + CON_GAP), TRUE); pObj->bUpID = pObj->bDownID = pObj->bID; pObj->pNext = NULL; OSD_SetContainerNextObj(win, pObj); } OSD_SetContainerFocus(win, LNB1_TYPE_ID); bFirstTime = 0; #endif }
static void show_loadinglogo(UINT8 firstpos) { UINT8 i; UINT16 Col,Row; UINT16 top, left; PBITMAP pbitmap; for(i=firstpos; i<image_cnt_inpage; i++) { OSD_GetMtrxBoxCellLocation(&imgpreview_mbx_img, i, &Col, &Row); left = MBX_IMG_L + (MBX_IMG_WIDTH+MBX_IMG_GAP)*Col; top = MBX_IMG_T + (MBX_IMG_HEIGHT+MBX_IMG_GAP)*Row; pbitmap = &imgpreview_bmp_load; OSD_MoveObject((POBJECT_HEAD)pbitmap,left+LOAD_OFFSET_L,top+LOAD_OFFSET_T,FALSE); OSD_DrawObject((POBJECT_HEAD)pbitmap,C_UPDATE_ALL); } }
static void catch_up_draw_week() { TEXT_FIELD* txt; char str[10]; INT32 i; txt = &txt_catch_up_week; for(i=0;i<7;i++) { OSD_MoveObject( (POBJECT_HEAD)txt, WEEK_L + WEEK_W*i, WEEK_T, FALSE); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)week_str[i]); if(i == cur_weekday) OSD_TrackObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); else OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); } }
void win_minisignal_restore() { POBJECT_HEAD pObj; pObj = (POBJECT_HEAD)&g_win_signal; OSD_SetColor(pObj, WIN_SH_IDX, WIN_SH_IDX, WIN_SH_IDX, WIN_SH_IDX); OSD_MoveObject(pObj,W_L, W_T,FALSE); pObj = (POBJECT_HEAD)&sig_txt_level; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&sig_txt_quality; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&sig_txt_level_per; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&sig_txt_quality_per; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); }
/******************************************************************************* * Local functions *******************************************************************************/ static void win_pin_draw_chars(void) { TEXT_FIELD* txt; char str[10]; INT32 i; txt = &g_win_pin_char; for(i=0;i<PIN_LENGTH;i++) { OSD_MoveObject( (POBJECT_HEAD)txt, CHAR_L + (CHAR_W + CHAR_GAP)*i, CHAR_T, FALSE); if(i<input_pin_char_cnt) sprintf(str,"%c",pin_mask[0]); else sprintf(str,"%c",pin_mask[1]); OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)str); if(i==input_pin_char_cnt) OSD_TrackObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); else OSD_DrawObject( (POBJECT_HEAD)txt, C_UPDATE_ALL); } }
static void sudoku_draw_grid(UINT8 row, UINT8 col) { UINT8 pos; UINT8 WStyle; pos = row*BOARD_COLS+col; if(IS_FIXED(pos)) WStyle = WSTL_GAME_BG_FIX; else if((row%6<3&&col%6<3)||(row%6>=3&&col%6>=3)) WStyle = WSTL_GAMESUDOKU_NORMAL1_HD; else WStyle = WSTL_GAMESUDOKU_NORMAL2_HD; drawSquare(BK_X_OFFSET+col*GRID_WIDTH-2, BK_Y_OFFSET+row*GRID_WIDTH-2,\ GRID_WIDTH+4, GRID_WIDTH+4, WStyle); if(pboard[pos]!=' ') { OSD_MoveObject((POBJECT_HEAD)&txt_Grid,BK_X_OFFSET+col*GRID_WIDTH,BK_Y_OFFSET+row*GRID_WIDTH,FALSE); OSD_SetTextFieldContent(&txt_Grid,STRING_NUMBER, (UINT32)(pboard[pos]-'0')); OSD_DrawObject((POBJECT_HEAD)&txt_Grid,C_UPDATE_ALL); } }
void win_minisignal_open_ex(POBJECT_HEAD w,UINT32 x, UINT32 y) { POBJECT_HEAD pObj; PPROGRESS_BAR pBar; UINT8 level,quality,lock; struct nim_device* nim_dev; if(cur_tuner_idx == 0) nim_dev = g_nim_dev; else nim_dev = g_nim_dev2; if(w->bType != OT_CONTAINER) return ; pObj = (POBJECT_HEAD)&g_win_signal; pObj->pRoot = w; //OSD_SetColor(pObj,WIN_SH_IDX,WIN_SH_IDX,WIN_SH_IDX,WIN_SH_IDX); pObj = (POBJECT_HEAD)&sig_bar_level; //pObj->frame.uLeft = W_L + B_L_OF; pObj->frame.uWidth = B_W; OSD_SetColor(pObj,B_BG_SH_IDX,B_BG_SH_IDX,B_BG_SH_IDX,B_BG_SH_IDX); pBar = (PPROGRESS_BAR)&sig_bar_level; pBar->wTickBg = B_MID_SH_IDX; pObj = (POBJECT_HEAD)& sig_bar_quality; //pObj->frame.uLeft = W_L + B_L_OF; pObj->frame.uWidth = B_W; OSD_SetColor(pObj,B_BG_SH_IDX,B_BG_SH_IDX,B_BG_SH_IDX,B_BG_SH_IDX); pBar = (PPROGRESS_BAR)&sig_bar_quality; pBar->wTickBg = B_MID_SH_IDX; pObj = (POBJECT_HEAD)&sig_txt_level; //pObj->frame.uLeft = W_L + TXTL_L_OF; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&sig_txt_quality; //pObj->frame.uLeft = W_L + TXTL_L_OF; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&sig_txt_level_per; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&sig_txt_quality_per; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); pObj = (POBJECT_HEAD)&g_win_signal; //pObj->frame.uLeft = W_L; //pObj->frame.uWidth = W_W; OSD_SetColor(pObj, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX, TXT_SH_IDX); //OSD_MoveObject(pObj,MINI_SIGNAL_L, MINI_SIGNAL_T,FALSE); OSD_MoveObject(pObj,x,y,FALSE); nim_get_lock(nim_dev, &lock); nim_get_AGC(nim_dev, &level); nim_get_SNR(nim_dev, &quality); api_Signal_Lock_LED_OnOff(lock);//-a by wangyang for Signal Lock LED onoff 2011-10-25 dem_signal_to_display(lock,&level,&quality); win_signal_set_level_quality(level,quality,lock); }
void win_signal_open_ex(POBJECT_HEAD w , UINT32 x, UINT32 y) { POBJECT_HEAD pObj; PPROGRESS_BAR pBar; UINT8 level,quality,lock; struct nim_device* nim_dev; if(cur_tuner_idx == 0) nim_dev = g_nim_dev; else nim_dev = g_nim_dev2; if(w->bType != OT_CONTAINER) return ; pObj = (POBJECT_HEAD)&g_win_signal; pObj->pRoot = w; OSD_SetColor(pObj,WIN_SH_IDX_HD,WIN_SH_IDX_HD,WIN_SH_IDX_HD,WIN_SH_IDX_HD); pObj = (POBJECT_HEAD)&sig_bar_level; //pObj->frame.uLeft = x+B_L_OF;//W_L + B_L_OF; pObj->frame.uWidth = B_W; OSD_SetColor(pObj,B_BG_SH_IDX_HD,B_BG_SH_IDX_HD,B_BG_SH_IDX_HD,B_BG_SH_IDX_HD); pBar = (PPROGRESS_BAR)&sig_bar_level; pBar->wTickBg = B_MID_SH_IDX_HD; //libc_printf("bar:%d,%d\n",B_BG_SH_IDX_HD,B_MID_SH_IDX_HD); pObj = (POBJECT_HEAD)& sig_bar_quality; //pObj->frame.uLeft = x+ B_L_OF;//W_L + B_L_OF; pObj->frame.uWidth = B_W; OSD_SetColor(pObj,B_BG_SH_IDX_HD,B_BG_SH_IDX_HD,B_BG_SH_IDX_HD,B_BG_SH_IDX_HD); pBar = (PPROGRESS_BAR)&sig_bar_quality; pBar->wTickBg = B_MID_SH_IDX_HD; pObj = (POBJECT_HEAD)&sig_txt_level; //pObj->frame.uLeft = x+TXTL_L_OF;//W_L + TXTL_L_OF; OSD_SetColor(pObj,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD); //libc_printf("txt:%d\n",TXT_SH_IDX_HD); pObj = (POBJECT_HEAD)&sig_txt_quality; //pObj->frame.uLeft = x + TXTL_L_OF;//W_L + TXTL_L_OF; OSD_SetColor(pObj,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD); pObj = (POBJECT_HEAD)&sig_txt_level_per; //pObj->frame.uLeft = x + TXTR_L_OF;//W_L + TXTL_L_OF; //pObj->frame.uTop = y + TXTRL_T_OF; OSD_SetColor(pObj,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD); pObj = (POBJECT_HEAD)&sig_txt_quality_per; //pObj->frame.uLeft = x + TXTR_L_OF;//W_L + TXTL_L_OF; //pObj->frame.uTop = y + TXTRQ_T_OF; OSD_SetColor(pObj,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD,TXT_SH_IDX_HD); pObj = (POBJECT_HEAD)&g_win_signal; //pObj->frame.uLeft = W_L; //pObj->frame.uTop = W_T; //pObj->frame.uTop = y; pObj->frame.uWidth = W_W; OSD_MoveObject(pObj,x,y,0); 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); win_signal_set_level_quality(level,quality,lock); }
static void ci_info_init() { char * tmp; UINT8 *tmp_buf; // init MEMSET(&ci_info, 0, sizeof(ci_info)); // get menu string tmp_buf = (void*)(win_ci_get_tmp_buf()); tmp = api_ci_get_menu_string(tmp_buf, CI_DATA_BUFFER_LEN, ci_slot); if(tmp != NULL) { ci_info_set_string(ci_info.name, CI_MENU_TXT_LENGTH, tmp); } else { ci_info.name[0] = '\0'; } //set the window style as the difference show modal win_ci_info_set_colorstyle(); if(win_ci_info_modal == WIN_CI_INFO_SHOW_AS_MODAL) { OSD_SetColor((POBJECT_HEAD)&g_win_ci_info,WIN_SH_IDX_SD,WIN_HL_IDX_SD,WIN_SL_IDX_SD,WIN_GRY_IDX_SD); OSD_MoveObject((POBJECT_HEAD)&g_win_ci_info, W_L_SD,W_T_SD, 0);//62, 55, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split1, W_L_SD + 10, SPLIT_1_T_SD, 0); //62, SPLIT_1_T, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split2, W_L_SD + 10, SPLIT_2_T_SD, 0);//62, SPLIT_2_T - 1, 0); } else { OSD_SetColor((POBJECT_HEAD)&g_win_ci_info, WIN_SUBMENU_BODY_FRAME, WIN_SUBMENU_BODY_FRAME, WIN_SUBMENU_BODY_FRAME, WIN_SUBMENU_BODY_FRAME);//guop OSD_MoveObject((POBJECT_HEAD)&g_win_ci_info, W_L,W_T, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split1, SPLIT_1_L, SPLIT_1_T, 0); OSD_MoveObject((POBJECT_HEAD)&txt_ci_info_split2, SPLIT_1_L, SPLIT_2_T, 0); } ///////////////////////////////////////////////////////////////////////// //clear the menu //1. CI Title OSD_SetTextFieldContent(&txt_ci_info_title, STRING_UNICODE, (UINT32)""); //2. sub title ci_info_subtitle_content[0].text.pString = NULL; //3. bottom OSD_SetTextFieldContent(&txt_ci_info_bottom, STRING_UNICODE, (UINT32)""); //4. list OSD_SetObjListCount(&olst_ci_info, 0); OSD_SetAttr(&sb_ci_info, C_ATTR_HIDDEN); //show the ci enquiry dialog OSD_SetObjpNext(&txt_ci_info_bottom, NULL); //the the windows focus to the dialog g_win_ci_info.FocusObjectID = 1; }
static void preview_image(UINT8 mbx_idx, UINT16 image_idx) { UINT16 Col, Row; UINT8 tv_mode; RECT rect_info; RET_CODE ret=RET_SUCCESS; UINT16 left, top; FileInfo file_node; char full_name[FULL_PATH_SIZE]; UINT16 img_top, img_height, img_gap_w, img_gap_h, img_left, img_width; struct OSDRect osd_rect; OSD_GetRectOnScreen(&osd_rect); img_left = (MBX_IMG_L + osd_rect.uLeft) * 720/1280; img_width = (MBX_IMG_WIDTH)*720/1280;//+2; img_gap_w = MBX_IMG_GAP*720/1280; img_gap_h = MBX_IMG_GAP*576/720; OSD_GetMtrxBoxCellLocation(&imgpreview_mbx_img, mbx_idx, &Col, &Row); left = MBX_IMG_L + (MBX_IMG_WIDTH+MBX_IMG_GAP)*Col; top = MBX_IMG_T + (MBX_IMG_HEIGHT+MBX_IMG_GAP)*Row; OSD_MoveObject((POBJECT_HEAD)&imgpreview_bmp_load,left+LOAD_OFFSET_L,top+LOAD_OFFSET_T,FALSE); OSD_ClearObject((POBJECT_HEAD)&imgpreview_bmp_load,C_UPDATE_ALL); OSD_MoveObject((POBJECT_HEAD)&imgpreview_txt_decode,left+DEC_OFFSET_L,top+DEC_OFFSET_T,FALSE); tv_mode = api_video_get_tvout(); if(TV_MODE_PAL == tv_mode || TV_MODE_720P_50 == tv_mode || TV_MODE_1080I_25 == tv_mode) { // rect_info.top = MBX_IMG_T + OSD_STARTROW_P + (MBX_IMG_HEIGHT+MBX_IMG_GAP)*Row +4; // rect_info.bottom = rect_info.top + MBX_IMG_HEIGHT-8; img_top = (MBX_IMG_T + osd_rect.uTop)*576/720; img_height = MBX_IMG_H*576/720; rect_info.top = img_top + (img_height+img_gap_h)*Row + 4; rect_info.bottom = rect_info.top + img_height - 8; } else { // rect_info.top = (MBX_IMG_T + OSD_STARTROW_N + (MBX_IMG_HEIGHT+MBX_IMG_GAP)*Row)*576/480+4; // rect_info.bottom = rect_info.top + MBX_IMG_HEIGHT*576/480-8; img_top = (MBX_IMG_T + osd_rect.uTop)*480/720; img_height = MBX_IMG_H*480/720; rect_info.top = (img_top + (img_height + img_gap_h) * Row) * 576/480 + 4; rect_info.bottom = rect_info.top + img_height * 576/480 - 8; } // rect_info.left = OSD_STARTCOL + MBX_IMG_L + (MBX_IMG_WIDTH+MBX_IMG_GAP)*Col+4; // rect_info.right = rect_info.left + MBX_IMG_WIDTH-8; rect_info.left = img_left + (img_width + img_gap_w) * Col + 4; rect_info.right = rect_info.left + img_width - 8; get_file_from_play_list(cur_playlist_image,image_idx,&file_node); win_get_fullname(full_name, file_node.path, file_node.name); win_image_file_preview(full_name, rect_info, IMAGEDEC_MULTI_PIC); // api_set_vpo_dit(TRUE); }