📄 vosd.c
字号:
/*******************************************************************************
AOSD.C
Copyright (c) Himax, Inc. All rights reserved.
*******************************************************************************/
#include "intrins.h"
#include "MCU_IO.h"
#include "COMMON.H"
#include "Key.H"
#include "MAIN.H"
#include "i2c_control.h"
#include "HX8824.h"
#include "OSD.h"
#include "OSD_Font.h"
/*==============================================================================
==============================================================================*/
void Video_OSD(void)
{
// unsigned int value;
if(Osd_Status != 1) //Turn On OSD if OSD is OFF
{
Item = 0;
Select_Item();
OSD_ON();
return;
}
/*
else {
if(bbrg_con_hot&&bosd) {
Page=PageTemp;
OSD_Show(0, 0, 0, 0, 0);
Clear_Screen();
bbrg_con_hot=bpage_enter=0;
Window_Control(3, 0, 9, 0, 29, WHITE);
Window_Control(2, 0, 9, 0, 1, BLUE);
Draw_Video_Left_Menu();
return;
}
}
if(bpage_enter) {
if(bosd) {
bpage_enter=0;
OSD_Show(0,0,0,0,0);
Clear_Screen();
return;
}
if(bauto_reset && (!bbrg_con_hot)) {
bpage_enter=bbrg_con_hot=0;
Clear_Right_Window();
Window_Control(0, 1, 10, 3, 3, WHITE);
Draw_Video_Menu(0);
return;
}
switch(Page) {
case(0):
//======================== Picture start ==================//
if(bup||bdown) {
Draw_Video_Menu(0);
if(bup)
Item=(Item+4)%5;
else
Item=(Item+1)%5;
Select_Video_Item();
}
if(bleft||bright) {
switch(Item) {
case(0): // Brightness
if(bleft)
if(Video_Brightness>VIDEO_BRIGHTNESS_MIN)
Video_Brightness--;
if(bright)
if(Video_Brightness<VIDEO_BRIGHTNESS_MAX)
Video_Brightness++;
Adjust_BL_Brightness(Video_Brightness);
EE_MCU_Byte_Write(EE_VIDEO_BRIGHTNESS, Video_Brightness);
Print_Char(3+Item, 25, Video_Brightness, RED);
break;
case(1): // Contrast
if(bleft)
if(Video_Contrast>VIDEO_CONTRAST_MIN)
Video_Contrast--;
if(bright)
if(Video_Contrast<VIDEO_CONTRAST_MAX)
Video_Contrast++;
Adjust_ASIC_Contrast(Video_Contrast);
EE_MCU_Byte_Write(EE_VIDEO_CONTRAST, Video_Contrast);
Print_Char(3+Item, 25, (unsigned int)Video_Contrast*100/VIDEO_CONTRAST_MAX, RED);
break;
case(2): // Color / Saturation
if(bleft)
if(Video_Saturation>VIDEO_SATURATION_MIN)
Video_Saturation--;
if(bright)
if(Video_Saturation<VIDEO_SATURATION_MAX)
Video_Saturation++;
SAA_Byte_Write(0x0c, Video_Saturation);
EE_MCU_Byte_Write(EE_VIDEO_SATURATION, Video_Saturation);
Print_Char(3+Item, 25, (unsigned int)Video_Saturation*100/VIDEO_SATURATION_MAX, RED);
break;
case(3): // HUE / Tint
if(bleft)
if(Video_HUE>VIDEO_HUE_MIN)
Video_HUE--;
if(bright)
if(Video_HUE<VIDEO_HUE_MAX)
Video_HUE++;
SAA_Byte_Write(0x0D, Video_HUE);
EE_MCU_Byte_Write(EE_VIDEO_HUE, Video_HUE);
Print_Char(3+Item, 25, ((int)Video_HUE*50/VIDEO_HUE_MAX)+50, RED);
break;
case(4): // Sharpness
if(bleft)
if(Video_Sharpness>VIDEO_SHARPNESS_MIN)
Video_Sharpness--;
if(bright)
if(Video_Sharpness<VIDEO_SHARPNESS_MAX)
Video_Sharpness++;
Adjust_ASIC_Sharpness(Video_Sharpness);
EE_MCU_Byte_Write(EE_VIDEO_SHARPNESS, Video_Sharpness);
Print_Char(3+Item, 25, Video_Sharpness, RED);
break;
}
}
//======================== Picture End ==================//
break;
case(1):
//======================== Volum start ==================//
if(bup||bdown) {
if(bup)
Item=(Item+1)%2;
else
Item=(Item+1)%2;
Select_Video_Item();
}
if(bleft||bright) // contrast
switch(Item) {
case(0): // Volumn
if(bright) {
if(Audio_Vol<VOLUMN_MAX)
Audio_Vol++;
}
if(bleft) {
if(Audio_Vol>VOLUMN_MIN)
Audio_Vol--;
}
Adjust_Volumn(Audio_Vol);
TunerSetting(Audio_Vol);
EE_MCU_Byte_Write(EE_VOLUMN, Audio_Vol);
Print_Char(3, 25, (unsigned int)(Audio_Vol-VOLUMN_MIN)*100/(VOLUMN_MAX-VOLUMN_MIN), RED);
break;
case(1): // Mute
bmute=!bmute;
Audio_Mute(bmute);
EE_MCU_Byte_Write(EE_MUTE, bmute);
if(bmute)
Print_String(4, 26, *(LinkPointer+36), RED);
else
Print_String(4, 26, *(LinkPointer+37), RED);
break;
}
break;
//======================== Volum End ==================//
case(2):
//======================== start ==================//
break;
//======================== End ==================//
case(3):
//======================== start ==================//
break;
//======================== End ==================//
case(4):
//======================== Setup start ==================//
if(bup||bdown) {
if(bup)
Item=(Item+2)%3;
else
Item=(Item+1)%3;
Select_Video_Item();
}
if(bleft||bright) {
if(Item==0){
if(bleft) {
Language=(Language+4)%5;
}
if(bright) {
Language=(Language+1)%5;
}
switch(Language) {
case(0):
Print_String( 3,18, *(LinkPointer+18), WHITE);
LinkPointer=eLink;
break;
case(1):
Print_String( 3,18, *(LinkPointer+19), WHITE);
LinkPointer=dLink;
break;
case(2):
Print_String( 3,18, *(LinkPointer+20), WHITE);
LinkPointer=fLink;
break;
case(3):
Print_String( 3,18, *(LinkPointer+21), WHITE);
LinkPointer=sLink;
break;
case(4):
Print_String( 3,18, *(LinkPointer+22), WHITE);
LinkPointer=iLink;
break;
default:
Print_String( 3,18, *(LinkPointer+23), WHITE);
LinkPointer=eLink;
break;
}
EE_MCU_Byte_Write(EE_LANGUAGE, Language);
Draw_Video_Menu(0);
Clear_Right_Window();
Select_Video_Item();
}
if(Item==1) {
if(bleft) {
OSD_Location=(OSD_Location+4)%5;
}
if(bright) {
OSD_Location=(OSD_Location+1)%5;
}
Print_Icon(4, 19, 0x16+OSD_Location*2, WHITE);
Print_Icon(4, 20, 0x16+OSD_Location*2+1, WHITE);
OSD_Position(OSD_LOCALY[OSD_Location],OSD_LOCALX[OSD_Location]);
EE_MCU_Byte_Write(EE_OSD_LOCATION, OSD_Location);
}
if(Item==2) {
if(bleft) {
Display_Source=(Display_Source+2)%3;
}
if(bright) {
Display_Source=(Display_Source+1)%3;
}
VGA_Select_Item();
Analog_Video_Switch();
}
}
break;
//======================== Setup End ==================//
}
}
else {
if((bup||bdown) && (bbrg_con_hot==0)) {
Clear_Right_Window();
Item=bbrg_con_hot=0;
Window_Control(1, 1+Page*2, 1+Page*2, 1, 1, BLUE);
if(bup) {
Page=(Page+4)%5;
if((Page==2)||(Page==3))
Page=1;
}
if(bdown) {
Page=(Page+1)%5;
if((Page==2)||(Page==3))
Page=4;
}
PageTemp=Page;
Window_Control(1, 1+Page*2, 1+Page*2, 1, 1, WHITE);
Draw_Video_Menu(0);
Draw_Video_Left_Menu();
}
if(bosd) {
bpage_enter=0;
OSD_Show(0,0,0,0,0);
Clear_Screen();
return;
}
if(bauto_reset) {
bpage_enter=1;
if((Page==1)&&(ColorTemp>1))
Item=1;
Draw_Video_Menu(0xFF);
Select_Video_Item();
return;
}
}
*/
}
/*==============================================================================
==============================================================================*/
void Select_Item(void)
{
unsigned char prev, next;
Byte i;
prev=(Item+(TOTAL_ICON-1))%TOTAL_ICON; //TOTAL_ICON = 10
next=(Item+(TOTAL_ICON+1))%TOTAL_ICON;
for(i = 0; i < 3; i++)
{
Print_Icon(ICONPOS[Item], 0x0, 0x03, 0x07, ICONGROUP[Item][0]);
Print_Icon(ICONPOS[Item], 0x0, 0x03, 0x07, ICONGROUP[Item][1]);
Print_Icon(ICONPOS[prev], 0x0, 0x00, 0x07, ICONGROUP[prev][0]);
Print_Icon(ICONPOS[prev], 0x0, 0x00, 0x07, ICONGROUP[prev][1]);
Print_Icon(ICONPOS[next], 0x0, 0x00, 0x07, ICONGROUP[next][0]);
Print_Icon(ICONPOS[next], 0x0, 0x00, 0x07, ICONGROUP[next][1]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -