Example #1
0
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;
	
}
Example #2
0
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;
}
Example #3
0
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);


}
Example #4
0
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;
}
Example #5
0
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);
        }
	}

}
Example #6
0
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;
}
Example #7
0
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;
}
Example #8
0
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;
}
Example #9
0
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);
	}
}
Example #10
0
/*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;
}