📄 aprv_htv.c
字号:
&&((work_ip_format & 0x1f) == 0x0f));
}
#endif
Byte aprv_HTVPLMGetVIIstatus(void)
{
return VII_status;
}
void aprv_HTVPLMChangeVIIstatus(void)
{
VII_status=rgen_ChangeControlAround(VII_status, RGEN_CHANGE_UP, VII_ON, VII_DEMO);
if(VII_status == VII_DEMO)
{
DemoControl(TRUE);
}
if(VII_status == VII_ON)
{
DemoControl(FALSE);
//DemoOn();
}
}
void aprv_HTVPLMSourceswitch(Byte source)
{
config_Second=0;
// pimg_SetRGBBlanking(PIMG_RGB_BLANK_ON); //mute RGB output , dh modify 1115
Write_Enable(TRUE);
if(source ==FSRT_SRC_DVD)
{
filter_number[0] = 0;
work_ip_format_SWITCH[0]=0x0f;
Switch_to_HD();
}
if(source ==FSRT_SRC_RGB)
{
work_ip_format_SWITCH[1]=0x0f;
filter_number[1] = 0;
Switch_to_VGA();
}
Write_Enable(FALSE);
}
void aprv_HTVPLMSetHDTVparameter(void)
{
if(fsrt_GetCurrentSource() == FSRT_SRC_RGB)
{
if(aprv_HTVPLMGetformat() != FORMAT_UNKNOW)
rsrv_UpdateHardware(RSRV_HTV_PHASE_480P+aprv_HTVPLMGetformat() -FORMAT_480P);
switch(aprv_HTVPLMGetformat())
{
case FORMAT_480I : //480i
case FORMAT_576I : //480p
case FORMAT_480P : //576i
case FORMAT_576P : //576p
break ;
case FORMAT_720P60 : //720p/60
case FORMAT_1080I60: //1080i/60
case FORMAT_1080P60: //1080p/60
rsrv_UpdateHardware(APRV_HDTV_VAMP_60);
break ;
case FORMAT_720P50 : //720p/50
case FORMAT_1080I50: //1080i/50
case FORMAT_1080P50: //1080p/50
rsrv_UpdateHardware(APRV_HDTV_VAMP_50);
break ;
default:
return ;
}
}
}
void aprv_HTVPLMUpdatePCparameter(void)
{
Byte i;
if(fsrt_GetCurrentSource() == FSRT_SRC_RGB)
{
for (i=0;i<PC_ADJUST_PARA_MAX; i++)
{
aprv_HTVPLMSetPCparameter(i);
}
}
}
Byte aprv_HTVPLMGetPCparameter(PC_AjustParaEnum index)
{
Byte return_value;
Byte buffer;
Byte service_item;
Byte base_value,offset,temp;
Byte default_format = FORMAT_XGA60;
if(aprv_HTVPLMGetformat()!=FORMAT_UNKNOW)
default_format = aprv_HTVPLMGetformat();
service_item = Get_PCparameter_baseitem(index);
if(index == PC_ADJUST_PARA_PHASE)
return_value = rsrv_GetValue(APRV_PC_ADJUST_PARA_PHASE_XGA60+default_format -FORMAT_XGA60);
else
{
base_value = rsrv_GetValue(service_item);
offset = rsrv_GetValue(index-PC_ADJUST_PARA_HPOS+APRV_PC_ADJUST_PARA_HPOS);
temp = offset & 0x80;
if ( temp == 0x80)
{
temp = offset &0x7f;
buffer = base_value - temp;
}
else
{
temp = offset &0x7f;
buffer = base_value + temp;
}
return_value = buffer;
}
pc_adjust_parameter[index] = return_value;
return return_value;
}
void aprv_HTVPLMChangePCparameter(PC_AjustParaEnum index,rgen_ChangeUpDown_type updown_value)
{
Byte buffer;
Byte max_value,min_value;
Byte default_format = FORMAT_XGA60;
Byte service_item;
Byte base_value,offset;
service_item = Get_PCparameter_baseitem(index);
if(aprv_HTVPLMGetformat()!=FORMAT_UNKNOW)
default_format = aprv_HTVPLMGetformat();
if(index == PC_ADJUST_PARA_PHASE)
max_value = 0x1f;
buffer = pc_adjust_parameter[index];
if(index == PC_ADJUST_PARA_PHASE)
{
buffer = (rgen_ChangeControl(buffer, updown_value, 0x1f , 0 ));
rsrv_SetValue((APRV_PC_ADJUST_PARA_PHASE_XGA60+default_format -FORMAT_XGA60), (Word)buffer);
}
else
{
base_value = rsrv_GetValue(service_item);
if(base_value>=PC_PARA_CONTROL_RANGE) min_value=base_value-PC_PARA_CONTROL_RANGE;
else min_value=0;
if(base_value<=63-PC_PARA_CONTROL_RANGE) max_value=base_value+PC_PARA_CONTROL_RANGE;
else max_value=63;
buffer = (rgen_ChangeControl(buffer, updown_value, max_value , min_value));
if (base_value> buffer)
{
offset = base_value - buffer;
offset |= 0x80;
}
else
{
offset = buffer - base_value;
}
rsrv_SetValue(index-PC_ADJUST_PARA_HPOS+APRV_PC_ADJUST_PARA_HPOS, (Word)offset);
}
aprv_HTVPLMSetPCparameter(index);
}
void aprv_HTVPLMSetPCparameter(PC_AjustParaEnum index)
{
Byte default_format = FORMAT_XGA60;
if(aprv_HTVPLMGetformat()!=FORMAT_UNKNOW)
default_format = aprv_HTVPLMGetformat();
pc_adjust_parameter[index] = aprv_HTVPLMGetPCparameter(index);
if(index == PC_ADJUST_PARA_PHASE)
rsrv_UpdateHardware(APRV_PC_ADJUST_PARA_PHASE_XGA60+default_format -FORMAT_XGA60);
else
rsrv_UpdateHardware(index-PC_ADJUST_PARA_HPOS+APRV_PC_ADJUST_PARA_HPOS);
}
void aprv_HTVPLMSetphase(Byte value)
{
value = value;
Phase_Manual_Adjustment(value);
}
Bool aprv_HTVPLMPhaseitempresent(Word item)
{
if((fsrt_GetCurrentSource() == FSRT_SRC_DVD)
&&((work_ip_format & 0x1f) == (item - RSRV_HTV_PHASE_480P + FORMAT_480P)))
{
return TRUE;
}
else
return FALSE;
}
//static function define
static Byte Get_PCparameter_baseitem(PC_AjustParaEnum index)
{
Byte service_item;
switch(index)
{
case PC_ADJUST_PARA_HPOS:
service_item = RSRV_SKYWORTH_H_POS_60;
break;
case PC_ADJUST_PARA_HAMP:
service_item = RSRV_SKYWORTH_H_AMP_60;
break;
case PC_ADJUST_PARA_VPOS:
service_item = RSRV_SKYWORTH_V_POS_60;
break;
case PC_ADJUST_PARA_VAMP:
service_item = RSRV_SKYWORTH_V_AMP_60;
break;
case PC_ADJUST_PARA_EWPA:
service_item = RSRV_SKYWORTH_EWPA_60;
break;
default:
break;
}
return service_item;
}
//运行配置
static Bool Format_monitor(void)
{
/*
//0000 480i 0001 576i
//0110 480P 0111 576P 1000 720P/60
//1001 720P/50 1010 1080i/60 1011 1080i/50
//1111 N/A
*/
//配置部分
if( Power_State == 0 )
return FALSE;
cur_ip_format = Read_Ip_Format(PLM1000_ADDR) ;
if(jbl_DelayActive==TRUE) //dh modify 1115
{
jbl_DelayNum++;
if(jbl_DelayNum==3)
{
jbl_DelayActive=FALSE;
aprv_MuteImage(APRV_MUTE_TYPE_CONDITIONAL_SYSTEM_DEMUTE);//open RGB output ,
aprv_MuteSound(APRV_MUTE_TYPE_CONDITIONAL_SYSTEM_DEMUTE);
}
}
if((cur_ip_format&0x1f )== (pre_format[VGA_Input]&0x1f)) //dh modify 1106
{
if( filter_number[VGA_Input] < (FILTER_NUM - 1) )
{
filter_number[VGA_Input] = filter_number[VGA_Input] + 1 ;
bRefresh = TRUE;
}
else
{
filter_number[VGA_Input] = FILTER_NUM ;
// Loop_Number = 0;
if(((cur_ip_format&0x1f ) == 0x0f) && bRefresh)
{
bRefresh = FALSE;
aprv_HTVPLMInit(fsrt_GetCurrentSource());
}
}
}
else //if((cur_ip_format&0x1f )!= (pre_format[VGA_Input]&0x1f))
{
pre_format[VGA_Input] = cur_ip_format;
filter_number[VGA_Input] = 0 ;
/* Loop_Number++;
if(Loop_Number > 3)
{
Loop_Number =0;
aprv_HTVPLMInit(fsrt_GetCurrentSource());
}*/
}
#if 0
if(((pre_format[VGA_Input]&0x1f)==0x0f)) // when no signal two times , zhb
{
filter_number_nosignal[VGA_Input] ++;
if(filter_number_nosignal[VGA_Input] > 10)
{
filter_number_nosignal[VGA_Input] = 0;
if(VGA_Input && jbl_bPreVGA)
jbl_bPreVGA=0;
else if(!VGA_Input && jbl_bPreHD)
jbl_bPreHD=0;
}
}
else
{
filter_number_nosignal[VGA_Input] = 0;
}
#endif
if((fsrt_GetCurrentSource() == FSRT_SRC_DVD) ||(fsrt_GetCurrentSource() == FSRT_SRC_RGB)) //dh modify 070927
{
phase = (Byte)rsrv_GetServiceValue(APRV_ITEM_HTV_PLM_PHASE);
AGCGain = (Byte)rsrv_GetServiceValue(APRV_ITEM_HTV_PLM_AGCGAIN);
AGCth = (Byte)rsrv_GetServiceValue(APRV_ITEM_HTV_PLM_AGCTH);
if(phase && (cur_ip_format != 0x0f) && (cur_ip_format > 5))
{
Write_Enable(TRUE);
//jyj modify start
//modified for microvision input
Phase_Adjustment(cur_ip_format & 0x1f);
//jyj modify end
Write_Enable(FALSE);
}
if(AGCGain||AGCth)
{
Write_Enable(TRUE);
//jyj modify start
//modified for microvision input
AGC_Adjustment(cur_ip_format & 0x1f);
//jyj modify end
Write_Enable(FALSE);
}
}
if (((filter_number[VGA_Input] == FILTER_NUM - 1) && (cur_ip_format != work_ip_format_SWITCH[VGA_Input])) | (config_Second == 1))
{
Loop_Number = 0 ;
phase_counter = 0 ;
work_ip_format = cur_ip_format;
work_ip_format_SWITCH[VGA_Input] =cur_ip_format;
Write_Enable(TRUE);
format_override(PLM1000_ADDR,work_ip_format & 0x1f);
Load_Config_Register( work_ip_format) ;
aprv_DisplayStatus();
Write_Enable(FALSE);
aprv_HTVPLMSetHDTVparameter();
aprv_HTVPLMUpdatePCparameter();
if(config_Second == 1)
config_Second = 0 ;
else
{
config_Second = 1 ;
jbl_Delay();
}
return TRUE;
}
return FALSE;
}
#if 0
void jbl_UpdateRegister(void)
{
//Detect_Num = 0;
DemoCounter = 0 ;//dh modify 071010 格式变化后,DEMO重新开始
Demo_Switch_2_On=1; //dh modify 071011,DEMO初始化
Write_Enable(TRUE);
format_override(PLM1000_ADDR,work_ip_format & 0x1f);
Load_Config_Register( work_ip_format) ; //dh modify here for vga_config 070925
Write_Enable(FALSE);
// if(config_Second==0)
// pimg_SetRGBBlanking(PIMG_RGB_BLANK_OFF);//open RGB output ,dh modify 1107
}
#endif
static void VGA_config(Byte cur_ip_format)
{
Byte RI2C_EXP_RAM value[5] ;
if(cur_ip_format == 144)//16-1024*768
{
value[0] = 98 ;
value[1] = 112 ;
value[2] = 128 ;
Write_HTV_Register(PLM1000_ADDR,3,value,1);
value[0] = 233 ;
Write_HTV_Register(PLM1000_ADDR,1,value,70);
value[0] = 37 ;
Write_HTV_Register(PLM1000_ADDR,1,value,73);
value[0] = 75 ;
value[1] = 131 ;
Write_HTV_Register(PLM1000_ADDR,2,value,204);
}
else if(cur_ip_format == 145)//17-800*600
{
value[0] = 0 ;
value[1] = 40 ;
value[2] = 0 ;
value[3] = 0 ;
value[4] = 37 ;
Write_HTV_Register(PLM1000_ADDR,5,value,69);
value[0] = 78 ;
value[1] = 195 ;
Write_HTV_Register(PLM1000_ADDR,2,value,204);
}
//jyj add start
//增加对带microvision信号的处理
else if((cur_ip_format == 0x80) || (cur_ip_format == 0x81) || (cur_ip_format == 0x86) || (cur_ip_format == 0x87))//480i with microvision
{
value[0] = 5;
value[1] = 20;
Write_HTV_Register(PLM1000_ADDR,2,value,16);
}
//jyj add end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -