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

📄 irosd.c

📁 LCDTV的source code,含周邊ic的driver code ,scaler ,
💻 C
字号:
/*******************************************************************************
  IROSD.C
  Copyright (c) SmartASIC, Inc. All rights reserved.
*******************************************************************************/
#include <MTV230.H>
#include <DEFINE.H>
#include <FONT.H>
/*==============================================================================

==============================================================================*/
bit Channel_Input(unsigned char asc) {

  static unsigned char index;
  
  if(asc==255) {
    Channel_Input_Str[3]=Channel_Input_Str[2]=Channel_Input_Str[1]='-';
    Channel_Input_Str[0]=0;
    index=0;
    return 0;
    }
    
  if(Page!=100) {//reset
    index=3;
    OSD_Show(0,0,0,0,0); 
    Display_Window();
    OSD_Show(1,0,0,0,0);
    }

  index++;
  if(index==4) {//overflow
    index=1;
    Channel_Input_Str[3]=Channel_Input_Str[2]=Channel_Input_Str[1]='-';
    Channel_Input_Str[0]=0;
    }

  Channel_Input_Str[3]=Channel_Input_Str[2];
  Channel_Input_Str[2]=Channel_Input_Str[1];
  Channel_Input_Str[1]=asc;
  Channel_Input_Str[0]=0;
  Input_CountDown=HOT_TIMER;
  Print_Icon(1, 3, Channel_Input_Str[3], GREEN|BLINK);
  Print_Icon(1, 4, Channel_Input_Str[2], GREEN|BLINK);
  Print_Icon(1, 5, Channel_Input_Str[1], GREEN|BLINK);
  
  if(index==3) {
    Input_CountDown=1;
    return 1;
    }
  else {
    Input_CountDown=HOT_TIMER;
    return 0;
    }

  }

    
/*==============================================================================

==============================================================================*/
/*
void Digital_Input(unsigned char dig) {  

  if(Source==TV) {  

    if(Page!=100) {
      CH_Input=0;
      OSD_Show(0,0,0,0,0);      
      Display_Window();
      OSD_Show(1,0,0,0,0);
      }

    CH_Input=CH_Input*10+dig;
    if(TV_Mode==TV_AIR) {
      if(CH_Input>CHANNEL_AIR_MAX)
        CH_Input=0;
      }
    else {
      if(CH_Input>CHANNEL_MAX)
        CH_Input=0;
      }

    if(CH_Input>0)
      Print_Icon(1, 4, CH_Input%10+'0', GREEN|BLINK);
    else
      Print_Icon(1, 4, '-', GREEN|BLINK);
    if(CH_Input>9)
      Print_Icon(1, 3, (CH_Input%100)/10+'0', GREEN|BLINK);
    else
      Print_Icon(1, 3, '-', GREEN|BLINK);
    if(CH_Input>99)
      Print_Icon(1, 2, CH_Input/100+'0', GREEN|BLINK);
    else
      Print_Icon(1, 2, '-', GREEN|BLINK);

    }

  }
*/

/*==============================================================================

==============================================================================*/
void Password_Input(unsigned char i) {

  PassIn=PassIn*10+i;
  switch(Page) {
    case(110):
    case(120):
      Print_Icon(2, 14+PassDig++, '*', WHITE);
    break;
    case(130):
      Print_Icon(2, 14+PassDig++, i+'0', WHITE);
    }

  }


/*==============================================================================

==============================================================================*/
void Remote_OSD(void) {

  unsigned char i, j, pos0, pos1;

  Input_CountDown=3;
  OSD_CountDown=5;

  switch(Remote) {
    case(REMOTE_00)://(0-9)
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(0);
      else
        bsetchok=Channel_Input('0');
    break;
    case(REMOTE_01):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(1);
      else
        bsetchok=Channel_Input('1');
    break;
    case(REMOTE_02):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(2);
      else
        bsetchok=Channel_Input('2');
    break;
    case(REMOTE_03):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(3);
      else
        bsetchok=Channel_Input('3');
    break;
    case(REMOTE_04):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(4);
      else
        bsetchok=Channel_Input('4');
    break;
    case(REMOTE_05):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(5);
      else
        bsetchok=Channel_Input('5');
    break;
    case(REMOTE_06):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(6);
      else
        bsetchok=Channel_Input('6');
    break;
    case(REMOTE_07):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(7);
      else
        bsetchok=Channel_Input('7');
    break;
    case(REMOTE_08):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(8);
      else
        bsetchok=Channel_Input('8');
    break;
    case(REMOTE_09):
      if((Page==110)||(Page==120)||(Page==130))
        Password_Input(9);
      else
        bsetchok=Channel_Input('9');
    break;
    case(REMOTE_INFO)://(INFO) 
      if(!(Page==100)&&(Item==0)) {//open DISPLAY WINDOW
        Page=Item=OSD_CountDown=bhotosd=badjust=0;
        OSD_Show(0,0,0,0,0);
        Display_Window();
        OSD_Show(1,0,0,0,0);
        }
      OSD_CountDown=HOT_TIMER;  
    break;
    case(REMOTE_EXIT)://(EXIT)
      Page=Item=badjust=bhotosd=0;
      OSD_Show(0,0,0,0,0);
      OSD_CountDown=1;
    break;         
    case(REMOTE_CHUP)://(CHANNEL UP)
    case(REMOTE_CHDN)://(CHANNEL DOWN)
      if(Source==TV) { 
        Blank_TV_Screen();
        Set_Caption(0);
        i=Channel;
        Pre_Channel=Channel;
        if(Remote==REMOTE_CHUP) {
          do{
            if(TV_Mode==TV_AIR)
              i=(i+1)%CHANNEL_AIR_MAX;
            else
              i=(i+1)%CHANNEL_MAX;
            j=EE_MCU_Byte_Read(ChannelTable_EEPROM_Address()+i/8);
            }while((i!=Channel)&&(Get_Bit(j, i%8)==0));
          }
        else {
          do{
            if(TV_Mode==TV_AIR)
              i=(i+(CHANNEL_AIR_MAX-1))%CHANNEL_AIR_MAX;
            else
              i=(i+(CHANNEL_MAX-1))%CHANNEL_MAX;
            j=EE_MCU_Byte_Read(ChannelTable_EEPROM_Address()+i/8);
            }while((i!=Channel)&&(Get_Bit(j, i%8)==0));
          }
        Channel=i;
        Set_Channel(Channel);
        EE_MCU_Byte_Write(Channel_EEPROM_Address(), Channel);
        Channel_Display();
        bno_signal=1;   
        }
    break;
    case(REMOTE_RECALL)://(RECALL)
      if(Source==TV) { 
        Blank_TV_Screen();
        i=Pre_Channel;
        Pre_Channel=Channel;
        Channel=i;
        Set_Channel(Channel);
        EE_MCU_Byte_Write(Channel_EEPROM_Address(), Channel);
        Channel_Display();
        bno_signal=1;   
        }
    break;
    case(REMOTE_VOLUP)://(VOLUME UP)
    case(REMOTE_VOLDN)://(VOLUME DOWN)
      if(!((Page==3)&&(Item==0))) {//open VOLUME adjustment window
        Page=Item=OSD_CountDown=badjust=0;
        OSD_Show(0,0,0,0,0);
        Page=3;
        Item=0;
        bhotosd=1;
        Adjustment_Win();
        OSD_Show(1,0,0,0,0);
        }
      else {
        if(Remote==REMOTE_VOLUP) {
          if(Volume<VOLUME_MAX)
            Volume++;
          }
        else {
          if(Volume>VOLUME_MIN)
            Volume--;
          }
        if((Source==TV)&&(Get_Bit(EE_MCU_Byte_Read(ChannelLockTable_EEPROM_Address()+Channel/8), Channel%8)==1))
          Set_Mute(1);
        else 
          Set_Mute(Mute);
        EE_MCU_Byte_Write(EE_MUTE, Mute);        
        EE_MCU_Byte_Write(EE_VOLUME, Volume);
        Paint_Bar(1, 2, VOLUME_MIN, VOLUME_MAX, Volume);
        Print_Char(1, 25, Volume, WHITE);
        }
      OSD_CountDown=3;
    break;
    case(REMOTE_MUTE)://(MUTE)
      if(Mute==1)
        Mute=0;
      else
        Mute=1;
      EE_MCU_Byte_Write(EE_MUTE, Mute);
      if((Source==TV)&&(Get_Bit(EE_MCU_Byte_Read(ChannelLockTable_EEPROM_Address()+Channel/8), Channel%8)==1))
        Set_Mute(1);
      else
        Set_Mute(Mute);
      if(!((Page==100)&&(Item==0))) {//open DISPLAY WINDOW
        Page=Item=OSD_CountDown=bhotosd=badjust=0;
        OSD_Show(0,0,0,0,0);
        Display_Window();
        OSD_Show(1,0,0,0,0);
        }
      else {//switch DISPLAY WINDOW MUTE message
        if(Mute)
          Print_String(0, 8, "\xd2\xd3", GREEN);
        else
          Print_String(0, 8, "\xa2\xa3", GREEN);
        }
      OSD_CountDown=HOT_TIMER;
    break;
    case(REMOTE_OPT1)://(SLEEP)
      if(!((Page==1)&&(Item==3)&&(bhotosd))) {//open SLEEP adjustment window
        Page=Item=OSD_CountDown=badjust=0;
        OSD_Show(0,0,0,0,0);
        Page=1;
        Item=3;
        bhotosd=badjust=1;
        Adjustment_Win();
        OSD_Show(1,0,0,0,0);
        }
      else {//switch SLEEP adjustment window
        Sleep=(Sleep+1)%11;
        EE_MCU_Byte_Write(EE_SLEEP, Sleep);
        Line_Attribute(0, 0, 29, WHITE);
        Line_Attribute(1, 0, 29, WHITE);
        if(Sleep==0) {
          pos0=0;
          pos1=1;
          SleepCountDown=MinuteCounter=0;
          Print_String(1, 1, "OFF", CYAN);
          }
        else {
          pos0=(Sleep-1)/5;
          pos1=(Sleep-1)%5;
          pos1=pos1*5+5;
          SleepCountDown=20+Sleep*10;
          MinuteCounter=0;
          Print_Char(1, 1, SleepCountDown, CYAN);
          }
        Line_Attribute(pos0, pos1, pos1+2, RED);
        }
      OSD_CountDown=HOT_TIMER;        
    break;
    case(REMOTE_OPT2)://(V-CHIP)
      if(Page!=200) {
        OSD_Show(0,0,0,0,0);
        Page=120;
        Item=badjust=bhotosd=0;
        Password_Dialog();
        OSD_Show(1,0,0,0,0);
        }
      else {
        OSD_Show(0,0,0,0,0);
        Page=130;
        Item=badjust=bhotosd=0;
        Password_Dialog();
        OSD_Show(1,0,0,0,0);
        }
    break;
    case(REMOTE_OPT3)://(MTS)
      if(Source==TV) {
        if(!((Page==100)&&(Item==0))) {//open DISPLAY WINDOW
          Page=Item=OSD_CountDown=bhotosd=badjust=0;
          OSD_Show(0,0,0,0,0);
          //Set_MTS_Mode(MTS_Mode);
          Display_Window();
          OSD_Show(1,0,0,0,0);
          }
        else {//switch DISPLAY WINDOW MTS message
          MTS_Mode=(MTS_Mode+1)%3;
          EE_MCU_Byte_Write(EE_MTS_MODE, MTS_Mode);
          Set_MTS_Mode(MTS_Mode);
          Display_MTS_Type(MTS_Mode);
          }
        OSD_CountDown=HOT_TIMER;          
        }
    break;
    default://(NO CONTROL)
      Remote=REMOTE_NULL;
    break;
    }

  }

⌨️ 快捷键说明

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