⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vosd.c

📁 一个LCD TV的源程序, 用的是realtek的IC
💻 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 + -