📄 handlekey.c
字号:
if (ch_index == 0x04)
ch_index = 0x01;
change1828Ch(ch_index);
setCurrentCh(ch_index);
displayCap(ch_index,current_format);
DelayXms(0xff); // avoid error repress
}
//********************************************************************
// 函数:void adjValue(unsigned char * value,bit add_flag,unsigned char MAX_value)
// 作用:在0~MAX_value,内使值加一减1
// 参数: value => 更改的值
// add_flag => 加减标志
// MAX_value => 允许的最大值
// remarks:
//*********************************************************************
void adjValue(unsigned char * value,bit add_flag,unsigned char MAX_value)
{
if(add_flag)
{
if(value < MAX_value)
(*value)++;
}
else
if(value > 0x00)
(*value)--;
}
//********************************************************************
// 函数:void adjMsgBox(unsigned char value,unsigned char max_value)
// 作用:在Bottom 处显示一个块
// 参数: value => 显示的值
// max_value =>
// remarks:
//*********************************************************************
void adjMsgBox(unsigned char value,unsigned char max_value)
{
unsigned char idata temp[0x16];
unsigned char idata i,j;
unsigned char count;
char idata *ptr;
if(max_value == 0xFF)
{
i = value/16;
j = value%16;
j = j/2;
j = j + 0x70;
}
else if (max_value== 0x3F)
{
i = value/4;
j = value%4;
j = j++;
j = j*2;
j = j + 0x70;
}
temp[0] = 0x51;
ptr = &temp[1];
for (count = i;count > 0;count--)
{
*ptr = 0x78;
ptr++;
}
*ptr = j;
ptr++;
j = 0x10;
j = j - i;
for (count = j;count > 0;count--)
{
*ptr = 0x70;
ptr++;
}
temp[17] = 0x52;
temp[18] = 0x6D;
temp[19] = value/100 + 0x62; // 1
i = value%100;
temp[20] = i/10 + 0x62; // 2
temp[21] = i%10 + 0x62; // 3
osdDisplay(0xB0,0x16,&temp);
}
//********************************************************************
//函数:void initsubmenu1()
//作用:Initial Brightness menu
//参数:
//remarks:
//*********************************************************************
void initsubmenu1()
{
osd_madr(bottom,0xB0); // Set the initial address of Content Block
//osdSwitch(0x00); // Turn the OSD T/C/B block off
// Disable blink or highlight zone
osd_pos_Blink(title,0x00,0x00,0x00,0x00);
osd_pos_Blink(content,0x00,0x00,0x00,0x00);
osd_pos_Blink(bottom,0x00,0x00,0x00,0x00);
osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
osd_pos_Highlight(content,0x00,0x00,0x00,0x00);
osd_pos_Highlight(bottom,0x00,0x00,0x00,0x00);
// Select Block Color
osd_ForeColor_N(title,HotPink); // Title
osd_BackColor_N(title,Transparent); // Title
osd_ForeColor_N(bottom,LightGreen); // Content
osd_BackColor_N(bottom,Transparent); // Content
osd_ForeColor_H(content,White); // Content
osd_BackColor_H(content,Transparent); // Content
// Set size of block
osd_size(title,0x03,0x01); // Set Title block size
osd_size(bottom,0x16,0x01); // Set Content block size
// Set position of block
osd_pos(title,0x85,0x2E); // Set Title block position
osd_pos(bottom,0x65,0x35); // Set Content block position
}
//********************************************************************
//函数:void printModeInfo()
//作用:Initial mode select menu Function
//参数:
//remarks:
//*********************************************************************
void printModeInfo()
{
// Set initial address of OSD block
osd_madr(bottom,0xB0); // Set the initial address of Bottom Block
osdSwitch(0x00); // Turn the OSD T/C/B block off
// Disable blink or highlight zone
osd_pos_Blink(title,0x00,0x00,0x00,0x00);
osd_pos_Blink(bottom,0x00,0x00,0x00,0x00);
osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
osd_pos_Highlight(bottom,0x00,0x00,0x00,0x00);
// Select Block Color
osd_ForeColor_N(title,MediumAquamarine); // Title
osd_BackColor_N(title,Transparent); // Title
osd_ForeColor_N(bottom,White); // Bottom
osd_BackColor_N(bottom,Transparent); // Bottom
// Set size of block
osd_size(title,0x06,0x00); // Set Title block size
osd_size(bottom,0x16,0x01); // Set Bottom block size
// Set position of block
osd_pos(title,0x56,0x35); // Set Title block position
osd_pos(bottom,0x76,0x35); // Set Bottom block position
//osd_clear(0x00);
osdDisplay(0x00,0x04,&code_ScMode);
//osdSwitch(0x05);
}
//********************************************************************
//函数:void printMenuInfo()
//作用:初始化顶部菜单(Initial Top menu)
//参数:
//remarks:
//*********************************************************************
void printMenuInfo()
{
// Set initial address of OSD block
osd_madr(content,0x20);
osd_madr(bottom,0xB0); // Set the initial address of ContentBlock and Bottom Block
// osdSwitch(0x00);// Turn the OSD T/C/B block off
// Disable blink or highlight zone
osd_pos_Blink(title,0x00,0x00,0x00,0x00);
osd_pos_Blink(content,0x00,0x00,0x00,0x00);
osd_pos_Blink(bottom,0x00,0x00,0x00,0x00);
osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
osd_pos_Highlight(content,0x00,0x00,0x00,0x00);
osd_pos_Highlight(bottom,0x00,0x00,0x00,0x00);
// Set size of block
osd_size(title,0x06,0x01); // Set Title block size
osd_size(content,0x10,0x08); // Set Content block size
// Set position of block
osd_pos(title,0x90,0x07); // Set Title block position
osd_pos(content,0x80,0x0A); // Set Content block position
// Select Block Color
osd_ForeColor_N(title,Black); // Title
osd_BackColor_N(title,Transparent); // Title
osd_ForeColor_N(content,LightGreen); // Content
osd_BackColor_N(content,Transparent); // Content
osd_ForeColor_H(content,HotPink); // Content
osd_BackColor_H(content,Transparent); // Content
//打印菜单,显示的是英文
osdDisplay(0x20,0x04,&code_Hue);
osdDisplay(0x30,0x05,&code_Satr);
osdDisplay(0x40,0x08,&code_Cont);
osdDisplay(0x50,0x0A,&code_Brit);
osdDisplay(0x60,0x04,&code_Reset);
osdSwitch(0x07); // Turn Title/Content/Bottom Block on
}
//********************************************************************
//函数:void printSwitchInfo(unsigned char kind,unsigned char choose)
//作用:打印出一些开关信息
//参数:
//remarks:
//*********************************************************************
void printSwitchInfo(unsigned char kind,unsigned char choose)
{
switch(kind)
{
case 1: // 打开或者是关闭
if(choose == 0)
osdDisplay(0xB0,0x05,&code_Close);
else
osdDisplay(0xB0,0x05,&code_Open);
break;
case 2: // 屏幕比例的设置信息
if(choose == 0)
osdDisplay(0xB0,0x05,&code_16to9);
else
osdDisplay(0xB0,0x05,&code_4to3);
break;
case 3: // 镜像的设置信息
if(choose == 0)
osdDisplay(0xB0,0x05,&code_Yes);
else
osdDisplay(0xB0,0x05,&code_No);
break;
default:break;
}
}
//****************************************************
//函数: void displayCap(unsigned char ch_index,unsigned char format)
//作用: Show Caption
//参数:ig_index => 8 bits , Singal index
//****************************************************
void displayCap(unsigned char ch_index,unsigned char format)
{
osdSwitch(0x00); // Turn the OSD T/C/B block off
// Blinking
osd_pos_Blink(title,0x00,0x00,0x00,0x00);
osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
osd_clear(0x00);
// Select Block Color
osd_ForeColor_N(title,Orange); // Title
osd_BackColor_N(title,Transparent); // Title
// Set position of block
osd_pos(title,0x35,0x09); // Set Title block position
osd_clear(0x10);
osd_clear(0x23);
osd_clear(0x20);
clrScreen();
if(ch_index == 0x01) // S-Video input
{
osd_size(title,0x2D,0x00); // Set Title block size
osdDisplay(0x00,0x03,&code_AV1);
}
else if(ch_index == 0x02) // S-Video input
{
osd_size(title,0x2D,0x00); // Set Title block size
osdDisplay(0x00,0x03,&code_AV2);
}
else if(ch_index == 0x03)
{
osd_size(title,0x2D,0x00); // Set Title block size
osdDisplay(0x00,0x03,&code_AV3);
}
osdSwitch(0x04);
if(format == 0x03)
osdDisplay(0x0A,0x05,&code_NTSC); //Show OSD Function
else
osdDisplay(0x0A,0x05,&code_PAL); //Show OSD Function
osdSwitch(0x04); // 只显示标题
}
//********************************************************************
//函数:void clearMenuFlag()
//作用:清除菜单的选择标志
//参数:
//remarks:
//*********************************************************************
void clearMenuFlag()
{
topMenu_flag = 0;
modeMenu_flag = 0;
}
//********************************************************************
//函数:void clearMenuSel()
//作用:清除主菜单选项中的选择标志
//参数:
//remarks:
//*********************************************************************
void clearMenuSel()
{
sel_brit = 0; // Brightness menu flag
sel_cont = 0; // Contrast menu flag
sel_satr = 0; // Saturation menu flag
sel_hue = 0; // Hue menu flag
sel_reset = 0; // Reset register flag
}
//********************************************************************
//函数:void setICAppValue()
//作用:向1828写入Brightness、Contrast、Saturation、Hue值
//参数:
//remarks:
//*********************************************************************
void setICAppValue()
{
adj_britclr(britc,britc_value); // Set VX1828 Brightness Register
adj_britclr(contc,contc_value); // Set VX1828 Contrast Register
adj_britclr(satr,satr_value); // Set VX1828 Saturation Register
adj_britclr(hue,hue_value); // Set VX1828 Hue Register
}
//********************************************************************
//函数:void loadAppInitValue()
//作用:设置Brightness、Contrast、Saturation、Hue的初始值
//参数:
//remarks:
//*********************************************************************
void loadAppInitValue()
{
britc_value = 0x80; // Combine Brightness selection
contc_value = 0x80; // Combine Contrast selection
satr_value = 0x80; // Saturation menu selection
hue_value = 0x20; // Hue menu selection
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -