📄 osd.c
字号:
temp = temp | color; // set higher 4 bits of color to higher 4 bits of temp8
write1828(addr,temp);
}
//**********************************
//函数:void osd_ForeColor_N(char block,char color);
//作用:设置OSD正常前景颜色
//参数说明: block => 8 bits , osd块
// color => 8 bits , 低4位是有效
//Function:OSD Displaying Color=(Video Color*OSD_ALPHA+OSD Color*(16-OSD_ALPHA))/16
//**************************************
void osd_ForeColor_N(char block,char color)
{
char idata addr;
char idata temp;
switch(block)
{
case title: // Setup position of Title Block
addr = osd11;
break;
case content: // Setup position of Content Block
addr = osd26;
break;
case bottom: // Setup position of Bottom Block
addr = osd36;
break;
default:
break;
}
temp = read1828(addr); // Read back the register
temp = temp & 0xf0; // 保留高4位
color = color & 0x0f; // 低4位是有效
temp = temp | color; // set lower 4 bits of color to lower 4 bits of temp8
write1828(addr,temp);
}
//**********************************
//函数:void osd_ForeColor_H(char block,char color);
//作用:设置OSD加亮的前景颜色
//参数说明: block => 8 bits , osd块
// color => 8 bits , 低4位是有效
//Function: OSD Displaying Color=(Video Color*OSD_ALPHA+OSD Color*(16-OSD_ALPHA))/16
//**************************************
void osd_ForeColor_H(char block,char color)
{
char idata addr;
char idata temp;
switch(block)
{
case title: // Setup position of Title Block
addr = osd12;
break;
case content: // Setup position of Content Block
addr = osd27;
break;
case bottom: // Setup position of Bottom Block
addr = osd37;
break;
default:
break;
}
temp = read1828(addr); // Read back the register
temp = temp & 0xf0; // 保留高4位
color = color & 0x0f; // 低4位是有效
temp = temp | color; // set lower 4 bits of color to lower 4 bits of temp
write1828(addr,temp);
}
//**********************************
//函数:void osd_Highlight(char block,char xstart,char xend,char ystart,char yend);
//作用:设置Highlight Section的开始位置和结束位置
//参数说明: block => 8 bits , osd块
// x => 低6位是有效
// y => 低5位是有效
//**************************************
void osd_pos_Highlight(char block,char xstart,char xend,char ystart,char yend)
{
xstart = xstart & 0x3f;
xend = xend & 0x3f;
ystart = ystart & 0x1f;
yend = yend & 0x1f;
switch(block)
{
case title: // Setup x size of Title Block
write1828(osd5,xstart); // Start
write1828(osd6,xend); // End
break;
case content: // Setup x and y size of Content Block
write1828(osd20,xstart); // xStart
write1828(osd21,xend); // xEnd
write1828(osd18,ystart); // yStart
write1828(osd19,yend); // yEnd
break;
case bottom: // Setup x size of Bottom Block
write1828(osd32,xstart); // Start
write1828(osd33,xend); // End
break;
default:
break;
}
}
//**********************************
//函数:void osd_Blink(char block,char xstart,char xend,char ystart,char yend);
//作用:设置Blink Section的开始位置和结束位置
//参数说明: block => 8 bits , osd块
// x => 低6位是有效
// y => 低5位是有效
//**************************************
void osd_pos_Blink(char block,char xstart,char xend,char ystart,char yend)
{
xstart = xstart & 0x3f;
xend = xend & 0x3f;
ystart = ystart & 0x1f;
yend = yend & 0x1f;
switch(block)
{
case title: // Setup x size of Title Block
write1828(osd7,xstart); // Start
write1828(osd8,xend); // End
break;
case content: // Setup x and y size of Content Block
write1828(osd24,xstart); // xStart
write1828(osd25,xend); // xEnd
write1828(osd22,ystart); // yStart
write1828(osd23,yend); // yEnd
break;
case bottom: // Setup x size of Bottom Block
write1828(osd34,xstart); // Start
write1828(osd35,xend); // End
break;
default:
break;
}
}
//**************************************
//函数:void osd_blink(char blink);
//作用:设置OSD blinking rate
//*************************************
void osd_blink(char blink)
{
blink = blink & 0x3f; // Remove redundant bits
write1828(osd3,blink);
}
//*********************************************
//函数:void osd_alpha(char alpha);
//作用:设置 alpha-blending
//参数: alpha => 8 bits , OSD alpha-blending
// P.S. Lower 4 bits are available
//*********************************************
void osd_alpha(char alpha)
{
char temp;
alpha <<= 4;
alpha = alpha & 0xf0; // Remove redundant bits
temp = read1828(osd2);
temp = temp & 0x0f;
temp = temp | alpha;
write1828(osd2,temp);
}
//**********************************************
// Adjust Brightness/Contrast/Saturation/Hue/Position (For VX1828)
//函数: void adj_britclr(char kind,char value)
//作用:向相应regsister中填写调整以后和数值
//参数: kind => 8 bits , Select Brightness/Contrast/Saturation/Hue be set
// Lower 2 bits are available.
// 0 : Brightness
// 1 : Contrast
// 2 : Saturation
// 3 : Hue
// 4 : Sharpness
// ---Reserved begin ---
// 5 : Brightness R 6 : Brightness G
// 7 : Brightness B 8 : Contrast R
// 9 : Contrast G 10: Contrast B
// ---Reserved end ---
// 11: Horizontal Position
// 12: Vertical Position
//******************************************
void adj_britclr(char kind,char value)
{
char temp;
switch(kind)
{
case 0: // Brightness
write1828(0x1E,value);
break;
case 1: // Contrast
write1828(0x1F,value);
break;
case 2: // Saturation
write1828(0x20,value);
break;
case 3: // Hue
temp = read1828(0x21);
temp = temp & 0xc0;
value = value & 0x3f;
value = value | temp;
write1828(0x21,value);
break;
case 4: // Sharpness
// value = value + 0x80;
write1828(0x2F,value);
write1828(0x30,value);
//write1828(0x31,0x01,&value);
break;
case 5: // Red Brightness
write1828(0x28,value); // 0x28没有定义(2005.9.29)
break;
case 6: // Green Brightness
write1828(0x29,value); // 0x29没有定义(2005.9.29)
break;
case 7: // Blue Brightness
write1828(0x2a,value);
break;
case 8: // Red Contrast
write1828(0x2b,value);
break;
case 9: // Green Contrast
write1828(0x2c,value);
break;
case 10: // Blue Contrast
write1828(0x2d,value);
break;
case 11:
write1828(0x3C,value);
break;
case 12:
write1828(0x3D,value);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -