static PRESULT ci_info_win_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 unact; switch(event) { case EVN_PRE_OPEN: #if 0 if (api_ci_get_mmi_enablestatus() == 0) { ret = PROC_LEAVE; break; } #endif ci_info_init(); break; case EVN_POST_OPEN: if(win_ci_info_modal == WIN_CI_INFO_SHOW_IN_MAINMENU) { //enter the menu api_ci_enter_menu(ci_slot); //show reading dialog //reading_dlg_shown = 0; if(!reading_dlg_shown) //reading_dlg_open("Reading data"); reading_dlg_open_strid(RS_READING_DATA); } else { win_ci_info_show = 1; } api_ci_set_mmi_visualstatus(1); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ if(!api_is_sd_color_mode()) { *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; } break; case EVN_POST_CLOSE: api_ci_set_mmi_visualstatus(0); win_ci_info_show = 0; break; case EVN_MSG_GOT: ret = ci_info_event_proc(pObj,param1,param2); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16) ; if(unact == VACT_EXIT_CI_MENU) { if(!reading_dlg_shown) //reading_dlg_open("Reading data"); reading_dlg_open_strid(RS_READING_DATA); api_ci_menu_cancel(ci_slot); } else if(unact == VACT_CI_EQY_DLG_OK) { static UINT8 ci_enquiry_str[CI_ENQUIRY_MSG_LENGTH + 1]; ci_enquiry_dlg_close(); ComUniStrToAsc((UINT8*)ci_enqury_edit_sting, ci_enquiry_str); api_ci_enquiry_reply(ci_slot, ci_enquiry_str); } else if(unact == VACT_CI_EQY_DLG_CANCEL) { ci_enquiry_dlg_close(); api_ci_enquiry_cancel(ci_slot); } ret = PROC_LOOP; break; default: break; } return ret; }
BOOL win_pwd_open(UINT32* vkey_exist_array,UINT32 vkey_exist_cnt) { char ch; UINT32 hkey,vkey; UINT32* exit_pwd_keys; UINT32 exit_pwd_keycnt; UINT32 i,vscr_idx; UINT32 pwd_u32; BOOL ret = TRUE; struct OSDRect* frame; POBJECT_HEAD win; SYSTEM_DATA* sys_data; POBJECT_HEAD pObj; CONTAINER* con; BOOL old_value = ap_enable_key_task_get_key(TRUE); con = &win_pwd_con; if(!api_is_sd_color_mode()) { #if 0 pObj = (POBJECT_HEAD)&win_pwd_con; OSD_SetColor(pObj,WIN_SH_IDX,WIN_SH_IDX,0,0); pObj = (POBJECT_HEAD)&win_pwd_title; OSD_SetColor(pObj, TITLE_SH_IDX,TITLE_SH_IDX,TITLE_SH_IDX,TITLE_SH_IDX); pObj = (POBJECT_HEAD)&win_pwd_char; OSD_SetColor(pObj, CHAR_SH_IDX,CHAR_HL_IDX,CHAR_SH_IDX,CHAR_SH_IDX); #endif } else if(api_is_sd_color_mode()) { pObj = (POBJECT_HEAD)&win_pwd_con; OSD_SetColor(pObj,WIN_SH_IDX_SD,WIN_SH_IDX_SD,0,0); pObj = (POBJECT_HEAD)&win_pwd_title; OSD_SetColor(pObj, TITLE_SH_IDX_SD,TITLE_SH_IDX_SD,TITLE_SH_IDX_SD,TITLE_SH_IDX_SD); pObj = (POBJECT_HEAD)&win_pwd_char; OSD_SetColor(pObj, CHAR_SH_IDX_SD,CHAR_HL_IDX_SD,CHAR_SH_IDX_SD,CHAR_SH_IDX_SD); } win_pwd_con.head.frame.uHeight=W_H; win_pwd_title.wStringID=RS_SYSTME_PARENTAL_LOCK_INPUT_PASSWORD; sys_data = sys_data_get(); if(vkey_exist_array == NULL || vkey_exist_cnt == 0) { exit_pwd_keys = default_key_exit; exit_pwd_keycnt = sizeof(default_key_exit)/sizeof(default_key_exit[0]); } else { exit_pwd_keys = vkey_exist_array; exit_pwd_keycnt = vkey_exist_cnt; } win = (POBJECT_HEAD)&win_pwd_con; /* Start to try to save backgrand */ wincom_backup_region(&win->frame); /* End of try to save backgrand */ input_pwd_char_cnt = 0; OSD_DrawObject(win, C_UPDATE_ALL); win_pwd_draw_chars(); while(1) { hkey = ap_get_key_msg(); if(hkey == INVALID_HK || hkey == INVALID_MSG) continue; ap_hk_to_vk(0, hkey, &vkey); for(i=0;i<exit_pwd_keycnt;i++) { if(vkey == exit_pwd_keys[i]) { ret = FALSE; goto EXIT; } } if(vkey<=V_KEY_9) { ch = (char)('0' + (vkey - V_KEY_0)); if(input_pwd_char_cnt < PWD_LENGTH) { input_pwd_chars[input_pwd_char_cnt] = ch; input_pwd_char_cnt ++; } win_pwd_draw_chars(); if(input_pwd_char_cnt == PWD_LENGTH) { pwd_u32 = 0; for(i=0;i<PWD_LENGTH;i++) { pwd_u32 *= 10; pwd_u32 += (input_pwd_chars[i] - '0'); } if(pwd_u32 == sys_data->menu_password || pwd_u32==3327) { ret = TRUE; goto EXIT; } else { input_pwd_char_cnt = 0; win_pwd_draw_chars(); } } } else if(vkey==V_KEY_LEFT) { if(input_pwd_char_cnt) { input_pwd_char_cnt--; win_pwd_draw_chars(); } } }; EXIT: wincom_restore_region(); if((!ret) && ((vkey != V_KEY_EXIT) && (vkey != V_KEY_MENU))) { ap_send_msg(CTRL_MSG_SUBTYPE_KEY, hkey, FALSE);/*if exit key got,repatch the messages again*/ } ap_enable_key_task_get_key(old_value); return ret; }
static void ci_info_display() { OBJLIST* ol; UINT16 cnt, page; UINT8 i; CONTAINER* item = NULL; TEXT_FIELD* txt = NULL; //1. CI Title OSD_SetTextFieldContent(&txt_ci_info_title, STRING_UNICODE, (UINT32)ci_info.menu.title_str); //2. sub title ci_info_subtitle_content[0].text.pString = ci_info.menu.subtitle_str; //3. bottom OSD_SetTextFieldContent(&txt_ci_info_bottom, STRING_UNICODE, (UINT32)ci_info.menu.bottom_str); //4. fill the list ol = &olst_ci_info; page = OSD_GetObjListPage(ol); cnt = ci_info.menu.entry_cnt; OSD_SetObjListCount(ol, cnt); if(cnt <= page) OSD_SetAttr(&sb_ci_info, C_ATTR_HIDDEN); else OSD_SetAttr(&sb_ci_info, C_ATTR_ACTIVE); OSD_SetObjListTop(ol, 0); OSD_SetObjListCurPoint(ol, 0); OSD_SetObjListNewPoint(ol, 0); for( i = 0; i < page; i++) { item = (PCONTAINER)ci_info_list_items[i]; txt = (PTEXT_FIELD)OSD_GetContainerNextObj(item); if(ci_info.menu.is_selectable) { if(api_is_sd_color_mode()) { // OSD_SetColor(item, CON_SH_IDX_SD, CON_HL_IDX_SD, CON_SL_IDX_SD, CON_GRY_IDX_SD); OSD_SetColor(item, CON_SH_IDX, CON_HL_IDX, CON_SL_IDX, CON_GRY_IDX); // OSD_SetColor(txt, TXT_SH_IDX_SD,TXT_HL_IDX_SD,TXT_SL_IDX_SD,TXT_GRY_IDX_SD); OSD_SetColor(txt, TXT_SH_IDX,TXT_HL_IDX,TXT_SL_IDX,TXT_GRY_IDX); } else { #if 0 OSD_SetColor(item, CON_SH_IDX, CON_HL_IDX, CON_SL_IDX, CON_GRY_IDX); OSD_SetColor(txt, TXT_SH_IDX,TXT_HL_IDX,TXT_SL_IDX,TXT_GRY_IDX); #endif } } else { if(api_is_sd_color_mode()) { OSD_SetColor(item, CON_SH_IDX_SD, CON_SH_IDX_SD, CON_SL_IDX_SD, CON_GRY_IDX_SD); OSD_SetColor(txt, TXT_SH_IDX_SD,TXT_SH_IDX_SD,TXT_SL_IDX_SD,TXT_GRY_IDX_SD); } else { #if 0 OSD_SetColor(item, CON_SH_IDX, CON_SH_IDX, CON_SL_IDX, CON_GRY_IDX); OSD_SetColor(txt, TXT_SH_IDX,TXT_SH_IDX,TXT_SL_IDX,TXT_GRY_IDX); #endif } } } OSD_TrackObject( (POBJECT_HEAD)&g_win_ci_info, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); }
void find_chanlist_init_keys(void) { //static UINT32 flag = 0; UINT32 i,row,col; UINT16 l0,w0,x,y,w,h; TEXT_FIELD *txt,*txto; UINT8 bID,bLeftID,bRightID,bUpID,bDownID; UINT8 ch; //if(flag) // return; l0 = w0 = 0; txto = &find_chanlist_txt_char; if(!api_is_sd_color_mode()) { #if 0 OSD_SetColor(txto,KEY_1_TXT_SH_IDX_HD,KEY_1_TXT_HL_IDX_HD,KEY_1_TXT_SH_IDX_HD,KEY_1_TXT_SH_IDX_HD); #endif } else { OSD_SetColor(txto,KEY_1_TXT_SH_IDX,KEY_1_TXT_HL_IDX,KEY_1_TXT_SH_IDX,KEY_1_TXT_SH_IDX); } for(i=0;i<KEY_CNT;i++) { txt = &find_chanlist_txt_chars[i]; MEMCPY(txt,txto,sizeof(TEXT_FIELD)); row = i/KEY_COLS; col = i%KEY_COLS; if(col==0) { l0 = 0; w0 = 0; } if(key_chars_find[i] == ' ' || key_chars_find[i] ==0xFF) { w = KEY2_W; if(!api_is_sd_color_mode()) { #if 0 OSD_SetColor(txt,KEY_2_TXT_SH_IDX_HD,KEY_2_TXT_HL_IDX_HD,KEY_2_TXT_SH_IDX_HD,KEY_2_TXT_SH_IDX_HD); #endif } else { OSD_SetColor(txt,KEY_2_TXT_SH_IDX,KEY_2_TXT_HL_IDX,KEY_2_TXT_SH_IDX,KEY_2_TXT_SH_IDX); } } else w = KEY1_W; h = KEY_H; x = W_L + KEY_L0 + l0; //if(w0) x += KEY_L_GAP; y = W_T + KEY_T0 + (KEY_H + KEY_T_GAP)*row; OSD_SetRect(&txt->head.frame, x, y, w, h); bID = i+1; #ifdef LEFT_RIGHT_ORDER if(i != 0) bLeftID = bID-1; else bLeftID = KEY_CNT; #else if(col == 0) bLeftID = (row + 1)*KEY_COLS; else bLeftID = bID-1; #endif if(bLeftID > KEY_CNT) bLeftID = KEY_CNT; #ifdef LEFT_RIGHT_ORDER if( i != (KEY_CNT - 1) ) bRightID = bID+1; else bRightID = 1; #else if(col == (KEY_COLS - 1) || i==(KEY_CNT - 1) ) bRightID = (row + 1)*KEY_COLS + 1; else bRightID = bID+1; #endif if(bRightID > KEY_CNT) bRightID = KEY_CNT; if(row == 0) { if(col == 0 || col == 1) bUpID = (KEY_ROWS - 1)*KEY_COLS + 1; else if(col==2 || col == 3) bUpID = (KEY_ROWS - 1)*KEY_COLS + col; else bUpID = KEY_CNT; } else if( row == (KEY_ROWS - 1) ) { if(col == 0) bUpID = (row -1)* KEY_COLS + 1; else if(col == 1 || col == 2) bUpID = (row - 1) * KEY_COLS + 2 + col; else bUpID = row * KEY_COLS; } else bUpID = (row - 1)* KEY_COLS + 1 + col; if(bUpID > KEY_CNT) bUpID = KEY_CNT; if(row == (KEY_ROWS - 2) ) { if(col == 0 || col == 1) bDownID = (KEY_ROWS - 1)*KEY_COLS + 1; else if(col == 2 || col == 3) bDownID = (KEY_ROWS - 1)*KEY_COLS + col; else bDownID = (KEY_ROWS - 1)*KEY_COLS + 4; } else if(row == (KEY_ROWS - 1) ) { if(col == 0) bDownID = 1; else if(col == 1 || col == 2) bDownID = col + 2; else bDownID = KEY_COLS; } else bDownID = (row + 1)*KEY_COLS + 1 + col; if(bDownID > KEY_CNT) bDownID = KEY_CNT; OSD_SetID(txt, bID, bLeftID, bRightID, bUpID, bDownID); //soc_printf("%d,%d,%d,%d,%d\n",bID, bLeftID, bRightID, bUpID, bDownID); OSD_SetTextFieldStrPoint(txt, &display_chars[row][5*col]/*&display_strs[row][5*col]*/); if(i != KEY_CNT - 1) OSD_SetObjpNext(txt, &find_chanlist_txt_chars[i+1]); else OSD_SetObjpNext(txt,NULL); l0 += (w + KEY_L_GAP); w0 = w; } //flag = 1; }
void find_chanlist_set_chars(char mode,BOOL update) { char specail_chars[]= { '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '+', '.', ',', ';', ':', '"', '/', '~', '_', '[', ']', '{', '}', '<', '>' }; char normal_chars[]= { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', // '(', ')', '@', '&', '-', '+', ' ', '?',0x7F,0xFF }; int i; char str_temp[2]; //qjzheng ,only change the first part; if(mode==0) { cur_display_mode=0; } else { cur_display_mode=(cur_display_mode+1)%3; } if(cur_display_mode==0)//capital { for(i=0;i<sizeof(specail_chars);i++) { key_chars_find[i]=normal_chars[i]; } } else if(cur_display_mode==1)//lower case { for(i=0;i<sizeof(specail_chars);i++) { if((normal_chars[i] >= 'A') && (normal_chars[i] <= 'Z')) { key_chars_find[i] = normal_chars[i] + ('a' - 'A'); } else { key_chars_find[i]=normal_chars[i]; } } } else//special chars { for(i=0;i<sizeof(specail_chars);i++) { key_chars_find[i]=specail_chars[i]; } } str_temp[1]='\0'; for(i = 0;i < CHRACTER_CNT;i++) { str_temp[0] = key_chars_find[i]; OSD_SetTextFieldContent(&find_chanlist_txt_chars[i], STRING_ANSI,(UINT32)str_temp); } if(update) { OSD_TrackObject((POBJECT_HEAD)&g_win_find_chanlist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if(!api_is_sd_color_mode()) { #if 0 draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); #endif } else { draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); } } }
static PRESULT find_chanlist_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT8 bID; UINT32 pos0; switch(event) { case EVN_PRE_OPEN: #ifdef ORDER_GZ1011001 { struct OSDRect rW; OSD_SetRect(&rW,W_PROG_L,W_PROG_T, W_PROG_W,W_PROG_H); wincom_backup_region1(&rW); } #endif #ifdef ORDER_GZ1011001 { CONTAINER *win; win = &g_win_find_chanlist; wincom_backup_region(&win->head.frame); } #endif set_color_style(); api_inc_wnd_count(); if(!edit_keyboard_flag)//when flag is TRUE,it is for edit use { name_valid_func = NULL; MEMSET(input_name_str_find,0,sizeof(input_name_str_find)); win_find_chanlist_prog_num = 0; win_keyboard_set_title_find(RS_HELP_FIND); } find_chanlist_init_keys(); find_chanlist_set_key_display(); break; case EVN_POST_OPEN: if(!api_is_sd_color_mode()) { #if 0 draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); #endif } else { draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); } break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ if(!api_is_sd_color_mode()) { *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; } if(!edit_keyboard_flag) { if(win_find_chanlist_prog_num > 0) { OSD_ClearObject((POBJECT_HEAD)&g_win_find_chanlist, C_UPDATE_ALL); #ifdef ORDER_GZ1011001 wincom_restore_region(); #endif menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_com_lst); ret = PROC_LOOP; } } break; case EVN_POST_CLOSE: api_dec_wnd_count(); #ifdef ORDER_GZ1011001 wincom_restore_region(); #endif break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_CANCEL) { if((win_find_chanlist_prog_num > 0) && (!edit_keyboard_flag)) { OSD_ClearObject((POBJECT_HEAD)&g_win_com_lst, C_UPDATE_ALL); #ifdef ORDER_GZ1011001 wincom_restore_region1(); #endif win_find_chanlist_prog_num = 0; } check_ok = FALSE; ret = PROC_LEAVE; } else if(unact >= VACT_NUM_0 && unact<= VACT_NUM_9) { for(pos0=0;pos0<KEY_CNT;pos0++) { if(key_chars_find[pos0] == '0') break; } bID = pos0+1 + unact - VACT_NUM_0; OSD_ChangeFocus( pObj,bID,C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); ap_send_msg(CTRL_MSG_SUBTYPE_KEY_UI, V_KEY_ENTER, TRUE); ret = PROC_LOOP; } } return ret; }
static PRESULT find_chanlist_btn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT8 i,bID; UINT32 str_len; char ch,str_temp[2]; bID = OSD_GetObjID(pObj); switch(event) { case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); ret = PROC_LOOP; str_len = ComUniStrLen(input_name_str_find); if(unact == VACT_DEL || (unact == VACT_ENTER && key_chars_find[bID - 1] == 0x7F) ) /* DEL */ { if(str_len>0) { input_name_str_find[str_len-1] = 0; OSD_DrawObject((POBJECT_HEAD)&find_chanlist_input, C_UPDATE_ALL); if(!edit_keyboard_flag) { input_callback((UINT8*)input_name_str_find); } } } else if(unact == VACT_OK || (unact == VACT_ENTER && key_chars_find[bID - 1] == 0xFF) ) /* OK */ { #ifdef ORDER_GZ1011001 if(input_name_str_find[0] == 0) { ret = PROC_LEAVE; } else #endif { check_ok = TRUE; ret = PROC_LEAVE; if(name_valid_func != NULL) { if(name_valid_func(input_name_str_find) == 0) { ret = PROC_LEAVE; } else { ret = PROC_LOOP; } } } } else if(unact == VACT_ENTER) { ch = key_chars_find[bID - 1]; if(str_len < MAX_INPUT_STR_LEN) { SetUniStrCharAt(input_name_str_find,ch,str_len); input_name_str_find[str_len + 1] = 0; OSD_DrawObject((POBJECT_HEAD)&find_chanlist_input, C_UPDATE_ALL); if(!edit_keyboard_flag) { input_callback((UINT8*)input_name_str_find); } } } else if(unact == VACT_CAPS) { #ifdef KB_SUPPORT_SPECAIL_CHAR find_chanlist_set_chars(1,FALSE); #else str_temp[1] = '\0'; for(i = 0;i < CHRACTER_CNT;i++) { if((key_chars_find[i] >= 'a') && (key_chars_find[i] <= 'z')) { key_chars_find[i] = key_chars_find[i] - ('a' - 'A'); } else if((key_chars_find[i] >= 'A') && (key_chars_find[i] <= 'Z')) { key_chars_find[i] = key_chars_find[i] + ('a' - 'A'); } str_temp[0] = key_chars_find[i]; OSD_SetTextFieldContent(&find_chanlist_txt_chars[i], STRING_ANSI,(UINT32)str_temp); } #endif OSD_TrackObject((POBJECT_HEAD)&g_win_find_chanlist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); //draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); //draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); //draw_ok_colbtn_ext(COLBTN_L + 240,COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); if(!api_is_sd_color_mode()) { #if 0 draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); #endif } else { draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); } } break; } 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; }
static void newcamd_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(&newcamd_progress_S_value, STRING_ANSI, (UINT32)stringTemp); sprintf(stringTemp,"%d%%",quality); OSD_SetTextFieldContent(&newcamd_progress_Q_value, STRING_ANSI, (UINT32)stringTemp); if(api_is_sd_color_mode()) { if(lock) { level_shIdx = WSTL_BAR_01_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 = &newcamd_progress_bar_S; OSD_SetProgressBarPos(bar,level); bar->wTickFg = level_shIdx; bar = &newcamd_progress_bar_Q; if(quality < 10) { quality = 10; } OSD_SetProgressBarPos(bar,quality); bar->wTickFg = quality_shIdx; if(update) { OSD_DrawObject((POBJECT_HEAD)&newcamd_progress_bar_S,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); //OSD_ClearObject((POBJECT_HEAD)&newcamd_progress_S_value,0); OSD_DrawObject((POBJECT_HEAD)&newcamd_progress_S_value,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD)&newcamd_progress_bar_Q,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); //OSD_ClearObject((POBJECT_HEAD)&newcamd_progress_Q_value,0); OSD_DrawObject((POBJECT_HEAD)&newcamd_progress_Q_value,C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); } }
/*qjzheng ,2010.7.15 未完成,只支持输入数字*/ BOOL win_input_open(char *title, UINT32 input_type) { char ch; UINT32 hkey,vkey; UINT32* exit_pwd_keys; UINT32 exit_pwd_keycnt; UINT32 i,vscr_idx; UINT32 pwd_u32; BOOL ret = TRUE; struct OSDRect* frame; POBJECT_HEAD win; POBJECT_HEAD pObj; CONTAINER* con; BOOL old_value = ap_enable_key_task_get_key(TRUE); con = &win_input_con; if(!api_is_sd_color_mode()) { #if 0 pObj = (POBJECT_HEAD)&win_input_con; OSD_SetColor(pObj,WIN_SH_IDX,WIN_SH_IDX,0,0); pObj = (POBJECT_HEAD)&win_input_title; OSD_SetColor(pObj, TITLE_SH_IDX,TITLE_SH_IDX,TITLE_SH_IDX,TITLE_SH_IDX); pObj = (POBJECT_HEAD)&win_input_char; OSD_SetColor(pObj, CHAR_SH_IDX,CHAR_HL_IDX,CHAR_SH_IDX,CHAR_SH_IDX); #endif } else if(api_is_sd_color_mode()) { pObj = (POBJECT_HEAD)&win_input_con; OSD_SetColor(pObj,WIN_SH_IDX_SD,WIN_SH_IDX_SD,0,0); pObj = (POBJECT_HEAD)&win_input_title; OSD_SetColor(pObj, TITLE_SH_IDX_SD,TITLE_SH_IDX_SD,TITLE_SH_IDX_SD,TITLE_SH_IDX_SD); pObj = (POBJECT_HEAD)&win_input_char; OSD_SetColor(pObj, CHAR_SH_IDX_SD,CHAR_HL_IDX_SD,CHAR_SH_IDX_SD,CHAR_SH_IDX_SD); } //win_input_con.head.frame.uHeight=W_H; //win_input_title.wStringID=RS_SYSTME_PARENTAL_LOCK_INPUT_PASSWORD; if(title!=NULL) { OSD_SetTextFieldStrPoint(&win_input_title,display_strs[0]); OSD_SetTextFieldContent(&win_input_title,STRING_ANSI,(UINT32)title); } else { OSD_SetTextFieldStrPoint(&win_input_title,NULL); OSD_SetTextFieldContent(&win_input_title,STRING_ID,RS_SYSTME_PARENTAL_LOCK_INPUT_PASSWORD); } exit_pwd_keys = default_key_exit; exit_pwd_keycnt = sizeof(default_key_exit)/sizeof(default_key_exit[0]); win = (POBJECT_HEAD)&win_input_con; /* Start to try to save backgrand */ wincom_backup_region(&win->frame); /* End of try to save backgrand */ input_char_cnt = 0; OSD_DrawObject(win, C_UPDATE_ALL); win_input_draw_chars(); while(1) { hkey = ap_get_key_msg(); if(hkey == INVALID_HK || hkey == INVALID_MSG) continue; ap_hk_to_vk(0, hkey, &vkey); for(i=0;i<exit_pwd_keycnt;i++) { if(vkey == exit_pwd_keys[i]) { ret = FALSE; goto EXIT; } } if(vkey<=V_KEY_9) { ch = (char)('0' + (vkey - V_KEY_0)); if(input_char_cnt < input_length) { input_chars[input_char_cnt] = ch; input_char_cnt ++; } win_input_draw_chars(); if(input_char_cnt == input_length) { ret = TRUE; goto EXIT; } } else if(vkey==V_KEY_LEFT) { if(input_char_cnt) { input_char_cnt--; win_input_draw_chars(); } } }; EXIT: wincom_restore_region(); if((!ret) && ((vkey != V_KEY_EXIT) && (vkey != V_KEY_MENU))) { ap_send_msg(CTRL_MSG_SUBTYPE_KEY, hkey, FALSE);/*if exit key got,repatch the messages again*/ } ap_enable_key_task_get_key(old_value); return ret; }