📄 irosd.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 + -