Пример #1
0
void new_win_signal_open(POBJECT_HEAD w)
{
	POBJECT_HEAD pObj;
	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_new_signal_test;//g_win_signal;
	pObj->pRoot = w;

	nim_get_lock(nim_dev, &lock);
	nim_get_AGC(nim_dev, &level);
	nim_get_SNR(nim_dev, &quality);

	new_dem_signal_to_display(lock, &level, &quality);
	new_win_signal_set_level_quality(level, quality, lock);
	new_win_signal_update();

}
Пример #2
0
void win_signal_refresh(void)
{
	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;	
	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);
	win_signal_update();
}
Пример #3
0
void win_signal_refresh(void)
{
	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;	
	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);
	win_signal_update();
}
Пример #4
0
void win_signal_open(POBJECT_HEAD w)
{
	POBJECT_HEAD pObj;
	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;
	
	pObj = (POBJECT_HEAD)&sig_bar_level;
	pObj->frame.uLeft = W_L + B_L_OF;
	pObj->frame.uWidth = B_W;
	
	pObj = (POBJECT_HEAD)& sig_bar_quality;
	pObj->frame.uLeft = W_L + B_L_OF;
	pObj->frame.uWidth = B_W;
	
	pObj = (POBJECT_HEAD)&sig_txt_level;
	pObj->frame.uLeft = W_L + TXTL_L_OF;
		
	pObj = (POBJECT_HEAD)&sig_txt_quality;
	pObj->frame.uLeft = W_L + TXTL_L_OF;
	
	
	pObj = (POBJECT_HEAD)&g_win_signal;
	pObj->frame.uLeft = W_L;
	pObj->frame.uWidth = W_W;
	
   	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);	
}
Пример #5
0
void win_signal_open_tplist(POBJECT_HEAD w)
{
	POBJECT_HEAD pObj;
	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)&sig_bar_level;
	pObj->frame.uLeft = W_L + B_L_OF_B;
	pObj->frame.uWidth = B_W_B;
	
	pObj = (POBJECT_HEAD)& sig_bar_quality;
	pObj->frame.uLeft = W_L + B_L_OF_B;
	pObj->frame.uWidth = B_W_B;
	
	pObj = (POBJECT_HEAD)&sig_txt_level;
	pObj->frame.uLeft = W_L + TXTL_L_OF_B;
		
	pObj = (POBJECT_HEAD)&sig_txt_quality;
	pObj->frame.uLeft = W_L + TXTL_L_OF_B;
	
	
	pObj = (POBJECT_HEAD)&g_win_signal;
	pObj->frame.uLeft = W_L_B;
	pObj->frame.uWidth = W_W_B;

	pObj->pRoot = w;
	
   	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);	
}
Пример #6
0
/*this interface is nor used yet, can delete it???*/
void new_win_signal_open_tplist(POBJECT_HEAD w)
{
	//POBJECT_HEAD pObj;
	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 ;

	nim_get_lock(nim_dev, &lock);
	nim_get_AGC(nim_dev, &level);
	nim_get_SNR(nim_dev, &quality);

	new_dem_signal_to_display(lock, &level, &quality);
	new_win_signal_set_level_quality(level, quality, lock);

}
Пример #7
0
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);
	}
}
Пример #8
0
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);	
}
Пример #9
0
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);	    
}
Пример #10
0
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;
}