📄 vdec.cpp
字号:
{0xec , 0x00},
{0xed , 0x00},
{0xee , 0x00},
{0xef , 0x00},
{0x88 , 0xe0} //reset
#else
{0x88 , 0xc0},
{0x01 , 0x08},
{0x02 , 0xc4},//c3
{0x03 , 0x10},
{0x04 , 0x90},
{0x05 , 0x90},
{0x06 , 0xeb},
{0x07 , 0xe0},
{0x08 , 0xa8},
{0x09 , 0x40},
{0x0a , 0x80},
{0x0b , 0x44},
{0x0c , 0x40},
{0x0d , 0x00},
{0x0e , 0x01},
{0x0f , 0x2a},
{0x10 , 0x00},
{0x11 , 0x00},
{0x12 , 0xc9},//00
{0x13 , 0x80},//c2
{0x14 , 0x00},
{0x15 , 0x1},//0x38},//05
{0x16 , 0x0},//0x34},//07
{0x17 , 0x03},//0x04},//0x03},//40
{0x18 , 0x40},
{0x19 , 0x80},
{0x1a , 0x00},
{0x1b , 0x00},
{0x1c , 0x00},
{0x1d , 0x00},
{0x1e , 0x00},
{0x30 , 0x00},
{0x31 , 0x72},
{0x32 , 0x03},
{0x34 , 0xcd},
{0x35 , 0xcc},
{0x36 , 0x3a},
{0x38 , 0x03},
{0x39 , 0x20},
{0x3a , 0x00},
{0x40 , 0x00},
{0x41 , 0xff},
{0x42 , 0xff},
{0x43 , 0xff},
{0x44 , 0xff},
{0x45 , 0xff},
{0x46 , 0xff},
{0x47 , 0xff},
{0x48 , 0xff},
{0x49 , 0xff},
{0x4a , 0xff},
{0x4b , 0xff},
{0x4c , 0xff},
{0x4d , 0xff},
{0x4e , 0xff},
{0x4f , 0xff},
{0x50 , 0xff},
{0x51 , 0xff},
{0x52 , 0xff},
{0x53 , 0xff},
{0x54 , 0xff},
{0x55 , 0xff},
{0x56 , 0xff},
{0x57 , 0xff},
{0x58 , 0x00},
{0x59 , 0x47},
{0x5a , 0x06},
{0x5b , 0x03},
{0x5c , 0x00},
{0x5d , 0x00},
{0x5e , 0x00},
{0x5f , 0x00},
{0x80 , 0x30},
{0x81 , 0x00},
{0x82 , 0x00},
{0x83 , 0x02}, //00
{0x84 , 0x01},
{0x85 , 0x00},
{0x86 , 0xc0},
{0x87 , 0x01},
{0x90 , 0x04}, //03
{0x91 , 0x08},
{0x92 , 0x10},
{0x93 , 0x00},
{0x94 , 0x02},
{0x95 , 0x00},
{0x96 , 0xd0},
{0x97 , 0x02},
{0x98 , 0x04},
{0x99 , 0x00},
{0x9a , 0x33},
{0x9b , 0x01},
{0x9c , 0xd0},
{0x9d , 0x02},
{0x9e , 0x30},
{0x9f , 0x01},
{0xa0 , 0x01},
{0xa1 , 0x00},
{0xa2 , 0x00},
{0xa4 , 0x80},
{0xa5 , 0x40},
{0xa6 , 0x40},
{0xa8 , 0x00},
{0xa9 , 0x04},
{0xaa , 0x00},
{0xac , 0x00},
{0xad , 0x02},
{0xae , 0x00},
{0xb0 , 0x00},
{0xb1 , 0x04},
{0xb2 , 0x00},
{0xb3 , 0x04},
{0xb4 , 0x00},
{0xb8 , 0x00},
{0xb9 , 0x00},
{0xba , 0x00},
{0xbb , 0x00},
{0xbc , 0x00},
{0xbd , 0x00},
{0xbe , 0x00},
{0xbf , 0x00},
{0xc0 , 0x02},
{0xc1 , 0x08},
{0xc2 , 0x10},
{0xc3 , 0x00},
{0xc4 , 0x02},
{0xc5 , 0x00},
{0xc6 , 0xd0},
{0xc7 , 0x02},
{0xc8 , 0x04},
{0xc9 , 0x00},
{0xca , 0x33},
{0xcb , 0x01},
{0xcc , 0xd0},
{0xcd , 0x02},
{0xce , 0x32},
{0xcf , 0x01},
{0xd0 , 0x01},
{0xd1 , 0x00},
{0xd2 , 0x00},
{0xd4 , 0x80},
{0xd5 , 0x40},
{0xd6 , 0x40},
{0xd8 , 0x00},
{0xd9 , 0x04},
{0xda , 0x00},
{0xdc , 0x00},
{0xdd , 0x02},
{0xde , 0x00},
{0xe0 , 0x00},
{0xe1 , 0x04},
{0xe2 , 0x00},
{0xe3 , 0x04},
{0xe4 , 0x00},
{0xe8 , 0x00},
{0xe9 , 0x00},
{0xea , 0x00},
{0xeb , 0x00},
{0xec , 0x00},
{0xed , 0x00},
{0xee , 0x00},
{0xef , 0x00},
{0x88 , 0xe0}
#endif
};
BOOL CCard::Init7113(int nChannel)
{
int i;
int j;
UCHAR VIPAddresses[2]={IIC_SUB_VIP,IIC_SUB_VIP2};
#if 1
//for(i=1; i<0xef; i++){
j=IICRead(VIPAddresses[nChannel], 0);
//}
Reg7113[1].byData=0xc2;
if(m_nBoardVersion==REVSS3000)
Reg7113[1].byData=0xc0;
for(i=0; i<(sizeof(Reg7113)/sizeof(struct IICReg)); i++){
IICWrite(VIPAddresses[nChannel], Reg7113[i].bySub, Reg7113[i].byData);
if(bIICError)
return FALSE;
}
#else
IICWrite(VIPAddresses[nChannel], 0x08, 0);
for(i=0; i<(sizeof(Reg7114)/sizeof(struct IICReg)); i++){
IICWrite(VIPAddresses[nChannel], Reg7114[i].bySub, Reg7114[i].byData);
if(bIICError)
return FALSE;
}
#endif
return TRUE;
}
void CCard::GetVideoParameter(PAVE2K_VIDEO_PARAMETER pVideoParameter, ULONG nChannel)
{
UCHAR VIPAddresses[2]={IIC_SUB_VIP,IIC_SUB_VIP2};
UCHAR VIPAddress=VIPAddresses[nChannel];
pVideoParameter->Brightness = (IICRead(VIPAddress,0xa)*100L+127)/255;
pVideoParameter->Contrast = (IICRead(VIPAddress,0xb)*100L+63)/127;
pVideoParameter->Saturation = (IICRead(VIPAddress,0xc)*100L+63)/127;
pVideoParameter->Hue = ((((signed char)IICRead(VIPAddress,0xd))+128)*100L+127)/255;
}
void CCard::SetVideoParameter(PAVE2K_VIDEO_PARAMETER pVideoParameter, ULONG nChannel)
{
UCHAR VIPAddresses[2]={IIC_SUB_VIP,IIC_SUB_VIP2};
UCHAR VIPAddress=VIPAddresses[nChannel];
if(pVideoParameter->Brightness>100)
pVideoParameter->Brightness=100;
if(pVideoParameter->Contrast>100)
pVideoParameter->Contrast=100;
if(pVideoParameter->Saturation>100)
pVideoParameter->Saturation=100;
if(pVideoParameter->Hue>100)
pVideoParameter->Hue=100;
IICWrite(VIPAddress,0xa,(UCHAR)((pVideoParameter->Brightness*255+50)/100));
IICWrite(VIPAddress,0xb,(UCHAR)((pVideoParameter->Contrast*127+50)/100));
IICWrite(VIPAddress,0xc,(UCHAR)((pVideoParameter->Saturation*127+50)/100));
IICWrite(VIPAddress,0xd,(UCHAR)((pVideoParameter->Hue*255+50)/100-128));
}
int CCard::GetVideoType(int nChannel)
{
int nMode;
UCHAR VIPAddresses[2]={IIC_SUB_VIP,IIC_SUB_VIP2};
//return VIDEOTYPE_NTSC;//ntsc
nMode=IICRead(VIPAddresses[nChannel], 0x1f);
if(nMode&0x40)
return VIDEOTYPE_NONE;//none
if(nMode&0x20)
return VIDEOTYPE_NTSC;//ntsc
else
return VIDEOTYPE_PAL;//pal
}
void CCard::SetVideoSource(ULONG VideoSource, ULONG nChannel)
{
UCHAR SetSource;
UCHAR VIPAddresses[2]={IIC_SUB_VIP,IIC_SUB_VIP2};
if(VideoSource==VIDEOSOURCE_CVBS)
SetSource = 0xc2;
else
SetSource = 0xc9;
IICWrite(VIPAddresses[nChannel], 2, SetSource);
}
#define IIC_SUB_OSD 0x7a
#define E(a) if((a)==0) return 0;
BOOL CCard::InitMTV118(char *sText)
{
BYTE buf[40];
//clear ram data
buf[0]=15|0x80;
buf[1]=17;
buf[2]=0x06;
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
buf[0]=15|0x80;
buf[1]=17;
buf[2]=0xc0;//bit 6 is border/shadow enable, bit 5 is shadow
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
//horizonal offset
buf[0]=15|0x80;
buf[1]=13;
buf[2]=34;//81;
//buf[2]=6;//81;
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
//vertical offset
buf[0]=15|0x80;
buf[1]=12;
buf[2]=68;
//buf[2]=25;
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
buf[0]=15|0x80;
buf[1]=18;
buf[2]=0x48;//bit 4 is DWE (double width enable), bit 2 is VSP, bit 3 is HSP
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
buf[0]=0|0x80;//row
buf[1]=0|0x40;//column
strcpy((char *)buf+2, sText);
int n=strlen(sText);
E(IICWriteBytes(IIC_SUB_OSD, n+2, buf));
buf[0]=0|0xa0;//row
buf[1]=0|0x40;//column
memset((char *)buf+2, 0x0f, n);
E(IICWriteBytes(IIC_SUB_OSD, n+2, buf));
buf[0]=0|0x80;
buf[1]=30;
buf[2]=0x01;
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
//sText="\xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb \xfc \xfd \xfe \xff";
sText="0 9 : 3 8 : 1 5";
buf[0]=1|0x80;//row
buf[1]=0|0x40;//column
strcpy((char *)buf+2, sText);
n=strlen(sText);
E(IICWriteBytes(IIC_SUB_OSD, n+3, buf));
buf[0]=1|0xa0;//row
buf[1]=0|0x40;//column
memset((char *)buf+2, 0x07, n); //bit 7 is blink
E(IICWriteBytes(IIC_SUB_OSD, n+3, buf));
buf[0]=1|0x80;
buf[1]=30;
buf[2]=0x01;
E(IICWriteBytes(IIC_SUB_OSD, 3, buf));
/*sText="0 9 : 3 8 : 2 5";
buf[0]=2|0x80;//row
buf[1]=0|0x40;//column
strcpy((char *)buf+2, sText);
n=strlen(sText);
IICWriteBytes(IIC_SUB_OSD, n+3, buf);
buf[0]=2|0xa0;//row
buf[1]=0|0x40;//column
memset((char *)buf+2, 0x0f, n);
IICWriteBytes(IIC_SUB_OSD, n+3, buf);
buf[0]=2|0x80;
buf[1]=30;
buf[2]=0x01;
IICWriteBytes(IIC_SUB_OSD, 3, buf);
sText="0 9 : 3 8 : 2 5";
buf[0]=3|0x80;//row
buf[1]=0|0x40;//column
strcpy((char *)buf+2, sText);
n=strlen(sText);
IICWriteBytes(IIC_SUB_OSD, n+3, buf);
buf[0]=3|0xa0;//row
buf[1]=0|0x40;//column
memset((char *)buf+2, 0x0f, n);
IICWriteBytes(IIC_SUB_OSD, n+3, buf);
buf[0]=3|0x80;
buf[1]=30;
buf[2]=0x01;
IICWriteBytes(IIC_SUB_OSD, 3, buf);
*/
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -