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

📄 showinfo.c

📁 一个多媒体液晶显示器内部控制器(主芯片为:7301)的源程序(KC51
💻 C
📖 第 1 页 / 共 2 页
字号:
#include"CORE_LIB.H"
#include"EEPROM.H"
#include"MENUITEM.H"
#include"OSD_LIB.H"
#include"PROCESS.H"     
#include"STATE.H"    
#include"SYMBOL.H"   
#include"TOOL.H"     
#include"VIDEO.H"     

void SHOW_CHAR(
               unsigned char CHARACTER,unsigned char COLUMN
               ,unsigned char ROW,unsigned char FOREcolor
               ,unsigned char BACKcolor
              )
{
  CHARACTER_TEXT[1]=CHARACTER;
  SetItemColor(FOREcolor,BACKcolor);
  OsdLoadString(
             CHARACTER_TEXT,BACKcolor,FOREcolor,COLUMN*FONTwidth
             ,ROW*FONTheight
            );
}

void SHOW_STRING(
               unsigned char *STRING,unsigned char COLUMN
               ,unsigned char ROW,unsigned char FOREcolor
               ,unsigned char BACKcolor
              )
{
  SetItemColor(FOREcolor,BACKcolor);
  OsdLoadString(
             STRING,BACKcolor,FOREcolor,COLUMN*FONTwidth
             ,ROW*FONTheight
            );
}

void ShowBlank(
               unsigned char ROW,unsigned char FOREcolor
               ,unsigned char BACKcolor
              )
{
  SHOW_STRING(BLANK_TEXT,0,ROW,FOREcolor,BACKcolor);
}

void SHOW_BAR(
              unsigned char DATA,unsigned char ROW
              ,unsigned char FOREcolor,unsigned char BACKcolor
             )
{
  SHOW_CHAR(_DCM,4,ROW,FOREcolor,BACKcolor);
  SHOW_CHAR(_ICM,17,ROW,FOREcolor,BACKcolor);
  OsdShowBar(
             0,DATA,BACKcolor,FOREcolor
             ,BARxPOSITION+(2*FONTwidth),ROW*FONTheight
            ); 
}

void SHOW_FACTORY_TITLE()
{
  unsigned char COLUMN=GetMiddleColumn(0,20,FACTORY_STRING[0]);

  switch (LEVEL)
  {
    case LEVEL0:
         SHOW_STRING(
                     FACTORY_STRING,COLUMN,0,TITLEforegroundCOLOR
                     ,FOREGROUNDcolor
                    ); 
         break;
    case LEVEL1:
         COLUMN=GetMiddleColumn(0,20,FACTORY_MAIN_MENU[ITEM0][0]);
         SHOW_STRING(
                     FACTORY_MAIN_MENU[ITEM0],COLUMN,0,TITLEforegroundCOLOR
                     ,FOREGROUNDcolor
                    ); 
         break;
    case LEVEL2:
         switch (ITEM0)
         {
           case FACTORYmainACTIONitem:
                COLUMN=GetMiddleColumn(0,20,OSD_POSITION_STRING[0]);
                SHOW_STRING(
                            OSD_POSITION_STRING,COLUMN,0,TITLEforegroundCOLOR
                            ,FOREGROUNDcolor
                           ); 
                break;
         }
         break;
  }
}

void SHOW_MENU(
               unsigned char *MENU[],unsigned char CURRENTitem
               ,unsigned char MINitem,unsigned char MAXitem
              )
{
  unsigned char LINE=MINitem,FOREcolor;

  SHOW_STRING(BLANK_TEXT,0,0,FOREGROUNDcolor,FOREGROUNDcolor); 
  SHOW_STRING(BLANK_TEXT,0,MAXitem+2,FOREGROUNDcolor,FOREGROUNDcolor); 
  do {
       FOREcolor= (LINE==CURRENTitem) ? CURRENTcolor : FOREGROUNDcolor;
       SHOW_STRING(BLANK_TEXT,0,LINE+1,BACKGROUNDcolor,BACKGROUNDcolor); 
       SHOW_STRING(MENU[LINE],0,LINE+1,FOREcolor,BACKGROUNDcolor); 
     } while (++LINE<=MAXitem);
  SHOW_FACTORY_TITLE();
}

void SHOW_MODE()
{
  unsigned char STATE=GetMode();

  SHOW_STRING(TEXT_GRAPHIC_STRING[STATE],12,1,YELLOW,BACKGROUNDcolor);
}

void ShowBar(unsigned char VALUE)
{
  CHARACTER_TEXT[1]=_DCM;
  OsdLoadString(
                CHARACTER_TEXT,BACKGROUNDcolor,CURRENTcolor
                ,5*FONTwidth,BARyUSER
               );
  CHARACTER_TEXT[1]=_ICM;
  OsdLoadString(
                CHARACTER_TEXT,BACKGROUNDcolor,CURRENTcolor
                ,18*FONTwidth,BARyUSER
               );
  OsdShowBar(
             0,VALUE,WHITE,CURRENTcolor
             ,BARxPOSITION+(3*FONTwidth),BARyUSER
            );
}

void ShowBrightnessBar()
{
  unsigned char VALUE=(unsigned char)TRANSFER_RANGE_VALUE(
                                                   GetBrightness()
                                                   ,MINbrightness
                                                   ,MAXbrightness
                                                   ,0,255
                                                  );
  ShowBar(VALUE);
}

void ShowContrastBar()
{
  unsigned char VALUE=(unsigned char)TRANSFER_RANGE_VALUE(
                                                          GetContrast()
                                                          ,MINcontrast
                                                          ,MAXcontrast
                                                          ,0,255
                                                         )   
                ,BACKcolor= (INTERFACE==USERinterface)
                          ? WHITE
                          : BACKGROUNDcolor;
  ShowBar(VALUE);
}

void ShowPositionBar(unsigned char HorV)
{
  unsigned char VALUE,BACKcolor= (INTERFACE==USERinterface)
                               ? WHITE
                               : BACKGROUNDcolor;

  switch (HorV)
  {
    case 'H':
    case 'h':
         VALUE=255-UltHPositionSetting(DISPLAYmode);
         break;
    case 'V':
    case 'v':
         VALUE=UltVPositionSetting(DISPLAYmode); 
         break;
  }
  ShowBar(VALUE);
}

void ShowColorTemperature(
                            unsigned char COLUMN,unsigned char ROW
                            ,unsigned char FOREcolor
                            ,unsigned char BACKcolor
                           )
{
  SHOW_STRING(
            COLOR_TEMPERATURE_STRING[GetColorTemperature()],COLUMN
            ,ROW,FOREcolor,BACKcolor
           ); 
} // end of function SHOW_COLOR_TEMPERATURE()


void ShowMainIcon()
{
  unsigned char INDEX=0,ROW,COLUMN;

  do 
  {
    ROW=GetY(INDEX),COLUMN=GetX(INDEX);
    switch (INDEX)
    {
      case AUTOicon:
           OsdLoadPicture(AUTO_ENABLE,COLUMN,ROW); 
           break;
      case CONTRASTicon:
           OsdLoadPicture(BRIGHTNESS_ENABLE,COLUMN,ROW); 
           break;
      case CLOCKicon:
           OsdLoadPicture(CLOCK_ENABLE,COLUMN,ROW); 
           break;
      case RGBicon:
           OsdLoadPicture(RGB_ENABLE,COLUMN,ROW); 
           break;
      case POSITIONicon:
           OsdLoadPicture(H_V_ENABLE,COLUMN,ROW); 
           break;
      case ASPECicon:
           OsdLoadPicture(RATIO_ENABLE,COLUMN,ROW); 
           break;
      case ADCicon:
           OsdLoadPicture(SHARPNESS_ENABLE,COLUMN,ROW); 
           break;
      case VIDEOicon:
           OsdLoadPicture(VIDEO_ENABLE,COLUMN,ROW); 
           break;
     }
   } while (++INDEX<MAINiconMAX);
}

void ShowCurrentIcon()
{
  unsigned char Y,X;

  switch (LEVEL)
  {
    case LEVEL0:
         X=GetX(ITEM0);
         Y=GetY(ITEM0);
         break;
    case LEVEL1:
         switch (ITEM0) 
         {
           case AUTOicon:
           case VIDEOicon:
                X=GetX(ITEM1);
                Y=GetY(ITEM1);
                break;
         }
         break;
  }
  OsdSubwinPosSet(0,X,Y,X+FONTwidth*2,Y+FONTheight);
  OsdSubwinOnOffSet(1,1);
  OsdSubwinOnOffSet(0,1);
  OsdBlinkDutySet(1);
  OsdBlinkStyleSet(0,ON,LIGHTGRAY);
}

void SHOW_TITLE()
{
  unsigned COLUMN,FOREcolor=GREEN;

  // blank
  OsdLoadString(
                BLANK_TEXT,BACKGROUNDcolor,BACKGROUNDcolor
                ,0,2*FONTheight+3
               );
  if   (GetSourceTypeFlag()==AnalogInput)
       { // analog
         switch (LEVEL)
         {
           case LEVEL0:
                COLUMN=GetMiddleColumn(0,20,MAIN_TITLE[ITEM0][0]);
                OsdLoadString(
                              MAIN_TITLE[ITEM0],BACKGROUNDcolor,YELLOW
                              ,COLUMN*FONTwidth,2*FONTheight+3
                             );
                break;
           case LEVEL1: 
                switch (ITEM0)
                {
                  case CONTRASTicon: 
                       COLUMN=GetMiddleColumn(0,20,BRIGHTNESS_STRING[0]);
                       OsdLoadString(
                                     BRIGHTNESS_STRING,BACKGROUNDcolor
                                     ,FOREcolor,COLUMN*FONTwidth
                                     ,2*FONTheight+3
                                    );
                       break;
                  case CLOCKicon: 
                       COLUMN=GetMiddleColumn(0,20,CLOCK_STRING[0]);
                       OsdLoadString(
                                     CLOCK_STRING,BACKGROUNDcolor
                                     ,FOREcolor,COLUMN*FONTwidth
                                     ,2*FONTheight+3
                                    );
                       break;
                }
                break; 
           case LEVEL2:
                switch (ITEM0)
                {
                  case CONTRASTicon: 
                       COLUMN=GetMiddleColumn(0,20,CONTRAST_STRING[0]);
                       OsdLoadString(
                                     CONTRAST_STRING,BACKGROUNDcolor,FOREcolor
                                     ,COLUMN*FONTwidth,2*FONTheight+3
                                    );
                       break;
                  case CLOCKicon: 
                       COLUMN=GetMiddleColumn(0,20,PHASE_STRING[0]);
                       OsdLoadString(
                                     PHASE_STRING,BACKGROUNDcolor,FOREcolor
                                     ,COLUMN*FONTwidth,2*FONTheight+3
                                    );
                       break;
                  case POSITIONicon: 
                       switch (ITEM1)
                       {
                         case Hitem:
                              COLUMN=GetMiddleColumn(0,20,H_POSITION_STRING[0]);
                              OsdLoadString(
                                            H_POSITION_STRING,BACKGROUNDcolor
                                            ,FOREcolor,COLUMN*FONTwidth
                                            ,2*FONTheight+3
                                           );
                              break;
                         case Vitem:
                              COLUMN=GetMiddleColumn(0,20,V_POSITION_STRING[0]);
                              OsdLoadString(
                                            V_POSITION_STRING,BACKGROUNDcolor
                                            ,FOREcolor,COLUMN*FONTwidth
                                            ,2*FONTheight+3
                                           );
                              break;
                       }
                       break;
                  case ASPECicon: 
                       COLUMN=GetMiddleColumn(0,20,ASPEC_MENU[ITEM1][0]);
                       OsdLoadString(
                                     ASPEC_MENU[ITEM1],BACKGROUNDcolor,FOREcolor
                                     ,COLUMN*FONTwidth,2*FONTheight+3
                                    );
                       break;
                }
         } // end of switch (LEVEL)
       } // end of if analog
  else { // video
         switch (LEVEL)
         { 
           case LEVEL1:
                switch (ITEM0)
                {
                  case VIDEObrightness:
                       COLUMN=GetMiddleColumn(0,20,BRIGHTNESS_STRING[0]);
                       OsdLoadString(
                                     BRIGHTNESS_STRING,BACKGROUNDcolor
                                     ,FOREcolor,COLUMN*FONTwidth
                                     ,2*FONTheight+3
                                    );
                       break; 
                  case VIDEOcontrast:
                       COLUMN=GetMiddleColumn(0,20,CONTRAST_STRING[0]);
                       OsdLoadString(
                                     CONTRAST_STRING,BACKGROUNDcolor
                                     ,FOREcolor,COLUMN*FONTwidth
                                     ,2*FONTheight+3
                                    );
                       break; 
                  case VIDEOsaturation:
                       COLUMN=GetMiddleColumn(0,20,SATURATION_STRING[0]);
                       OsdLoadString(
                                     SATURATION_STRING,BACKGROUNDcolor
                                     ,FOREcolor,COLUMN*FONTwidth
                                     ,2*FONTheight+3
                                    );
                       break;
                  case VIDEOhue:
                       COLUMN=GetMiddleColumn(0,20,HUE_STRING[0]);
                       OsdLoadString(
                                     HUE_STRING,BACKGROUNDcolor
                                     ,FOREcolor,COLUMN*FONTwidth
                                     ,2*FONTheight+3
                                    );
                       break; 
                } // end of switch (ITEM0)
         } // end of switch (LEVEL)
       } // end of else for video
}

void ShowEtronMark()
{
  SHOW_STRING(ETRON_MARK[0],0,0,WHITE,BROWN);
  SHOW_STRING(ETRON_MARK[1],0,1,WHITE,BROWN);
}

void ShowPartialLine(unsigned char BOTTOMrow)
{
  OsdWindowClear(BLACK,0,31,240,32);
  OsdWindowClear(BLACK,0,(BOTTOMrow+1)<<4,240,((BOTTOMrow+1)<<4)+1);
}


void ShowEtronPage(unsigned char LINE)
{
  unsigned char INDEX=0;

  SetOsdSize(PAGEwidth,LINE+4);
  do {
       if   ((INDEX==LINE+3)||(INDEX<2))
            ShowBlank(INDEX,BROWN,BROWN);
       else ShowBlank(INDEX,BACKGROUNDcolor,BACKGROUNDcolor);
     } while (++INDEX<LINE+4);
  ShowEtronMark();
  ShowPartialLine(LINE+2);
}

void ShowPictureIcon(unsigned char *PICTURE)
{
  OsdLoadPicture(PICTURE,24,56); 
}

void SHOW_ITEM(unsigned char ITEM)
{
  unsigned char FOREcolor;

  if   (GetSourceTypeFlag()==AnalogInput)
       { // analog
         FOREcolor= (ITEM==ITEM1) ? CURRENTcolor : BLUE;
         switch (ITEM0)
         {
           case POSITIONicon:
                switch (ITEM)
                {
                  case Hitem:
                       SHOW_STRING(H_POSITION_STRING,0,2,FOREcolor,BACKGROUNDcolor);
                       break;
                  case Vitem:
                       SHOW_STRING(V_POSITION_STRING,0,3,FOREcolor,BACKGROUNDcolor);
                       break;
                }
                break;
           case ADCicon:
                switch (ITEM)
                {
                  case ADCgain:
                       SHOW_STRING(GAIN_STRING,0,2,FOREcolor,BACKGROUNDcolor);
                       break;
                  case ADCoffset:
                       SHOW_STRING(OFFSET_STRING,0,3,FOREcolor,BACKGROUNDcolor);
                       break;
                }
                break;
         }
       } // end of if (GetSourceTypeFlag()==ANALOGinput) 
  else { // video
         FOREcolor= (ITEM==ITEM0) ? CURRENTcolor : BLUE;
         switch (ITEM)
         {
           case VIDEObrightness:
                SHOW_STRING(BRIGHTNESS_STRING,5,2,FOREcolor,BACKGROUNDcolor);
                break;
           case VIDEOcontrast:
                SHOW_STRING(CONTRAST_STRING,5,3,FOREcolor,BACKGROUNDcolor);
                break;
           case VIDEOsaturation:
                SHOW_STRING(SATURATION_STRING,5,4,FOREcolor,BACKGROUNDcolor);
                break;
           case VIDEOhue:
                SHOW_STRING(HUE_STRING,5,5,FOREcolor,BACKGROUNDcolor);
                break;
           case VIDEOchange:
                SHOW_STRING(CHANGE_ANALOG_STRING,5,6,FOREcolor,BACKGROUNDcolor);
                break;
         }
       } // end of else of video
}

void SHOW_Video_MAIN_ITEM()
{
  unsigned char INDEX=0,Y,X;

  do 
  {
    Y=GetY(INDEX),X=GetX(INDEX);
    switch (INDEX)
    {
      case VIDEObrightness:
           OsdLoadPicture(BRIGHTNESS_ENABLE,X,Y); 
           break;
      case VIDEOcontrast:
           OsdLoadPicture(CONTRAST_ENABLE,X,Y); 
           break;
      case VIDEOsaturation:
           OsdLoadPicture(SHARPNESS_ENABLE,X,Y); 
           break;
      case VIDEOhue:
           OsdLoadPicture(RATIO_ENABLE,X,Y); 
           break;
      case VIDEOchange:
           OsdLoadPicture(ANALOG_ENABLE,X,Y); 
           break;
     }
     SHOW_ITEM(INDEX);
   } while (++INDEX<VIDEOmainITEMmax);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -