📄 ampkey.~c
字号:
case IR_AMP_BASS_BOOST:
fgRet = fgAmpBassBoostKey();
break;
case IR_VOLUME_UP:
//bSetMic(NULL_POSITION, 1);
fgRet = fgCOMVolumeUpKey();
break;
case IR_VOLUME_DOWN:
fgRet = fgCOMVolumeDownKey();
// bSetMic(NULL_POSITION, 0);
break;
case IR_MUTE:
fgRet = fgCOMMuteKey();
break;
#if 0
case IR_MIC_VOLUMDN:
fgRet = bComMicVolumeDnKey();
break;
case IR_MIC_VOLUMUP:
fgRet = bComMicVolumeUpKey();
break;
#endif
#ifdef TIME_SLEEP_FUCTION
case IR_AMP_SLEEP:
fgRet = fgAmpSetSleepKey();
break;
#endif
#ifdef BBK_EARPHONE
case IR_AMP_EARPHONE_IN:
fgRet = fgAmpEarphoneInKey();
break;
case IR_AMP_EARPHONE_OUT:
fgRet = fgAmpEarphoneOutKey();
break;
#endif
default:
fgRet = UOP_OK;
break;
}
return(fgRet);
}
#if 1
#ifdef LED_LARGEMODE
sbit STROBE_PIN = P1^5;
sbit DATA_PIN = P1^4;
sbit CLK_PIN = P1^3;
sbit FS0_00 = P3^1;
BYTE bAmpVfdReadSw(void) large
{
BYTE xdata temp;
BYTE xdata temp2 = 0xff;
// STROBE_PIN=1;
FS0_00=0;
vI2CDelay2us(0xf0);
temp = DATA_PIN; //P30--j4(UP3_0);P31--j3(UP3_1); j3,j4 电位器控制脚
if (CLK_PIN)
temp = temp | 0x04;
FS0_00=1;
switch (_bLoopSwitchState)
{
case EV_LPSW_RESET:
if(temp == 0)
{
temp2 = IR_VOLUME_DOWN;
_bLoopSwitchState = EV_LPSW_END;
}
else if(temp == 0x01)
{
temp2 = IR_VOLUME_UP;
_bLoopSwitchState = EV_LPSW_END;
}
break;
case EV_LPSW_END:
if(temp == 0x05)
{
_bLoopSwitchState = EV_LPSW_RESET;
}
break;
default:
_bLoopSwitchState = EV_LPSW_RESET;
break;
}
return(temp2);
}
#else
BYTE xdata r_adjl;
BYTE xdata r_adjr;
BYTE xdata r_adjdata;
BYTE xdata f_adjdir;
BYTE bAmpVfdReadSw(void) large
{
BYTE xdata bData1;
BYTE xdata bData2 = IR_NONE;
static xdata bData0=0;
BYTE i,k,bTmp=0;
BYTE xdata bKey[3];
//vI2CDelay2us(0xf0);
//vVfdStrobe(FALSE);
STROBE_PIN = 0;
//vI2CDelay2us(0xf0);
//vVfdUpdate(0x42);
vKeyReadVol(0x42);
for(i=0;i<3;i++)
{
bKey[i]=bVfdRead();
}
//vVfdStrobe(TRUE);
//vI2CDelay2us(0xf0);
STROBE_PIN = 1;
//vI2CDelay2us(0xf0);
bKey[2] = bKey[2]&0x03;
k=bKey[2]&0x01;
if(k)
{
r_adjl=(((r_adjl<<1)|0x01)&0x03);
}
else
{
r_adjl=((r_adjl<<1)&0x03);
}
k=bKey[2]&0x02;
if(k)
{
r_adjr=(((r_adjr<<1)|0x01)&0x03);
}
else
{
r_adjr=((r_adjr<<1)&0x03);
}
if((r_adjl==0x02) && (r_adjr==0x00))
{
if(f_adjdir==1) r_adjdata=0;
f_adjdir=0;
r_adjdata++; // 反转
}
if((r_adjl==0x00) && (r_adjr==0x01))
{
if(f_adjdir==1) r_adjdata=0;
f_adjdir=0;
if(r_adjdata!=0) r_adjdata++; // 反转 加速
}
if((r_adjr==0x02) && (r_adjl==0x00))
{
if(f_adjdir==0) r_adjdata=0;
f_adjdir=1;
r_adjdata++; // 正转
}
if((r_adjr==0x00) && (r_adjl==0x01))
{
if(f_adjdir==0) r_adjdata=0;
f_adjdir=1;
if(r_adjdata!=0) r_adjdata++; // 正转 加速
}
if(bSharedInfo(SI_INIT_STATE)==SV_LOADING_DISC)
return 0xff;
if(r_adjdata!=0)
{
r_adjdata--;
if(f_adjdir==1)
return(IR_VOLUME_DOWN); // 正转
else
return(IR_VOLUME_UP); // 反转
}
else return(0xff);
}
#endif
#else
BYTE bAmpVfdReadSw(void) large
{
BYTE xdata bData1;
BYTE xdata bData2 = IR_NONE;
static xdata bData0=0;
BYTE i,bTmp=0;
BYTE xdata bKey[3];
vI2CDelay2us(0xf0);
//vVfdStrobe(FALSE);
STROBE_PIN = 0;
vI2CDelay2us(0xf0);
//vVfdUpdate(0x42);
vKeyReadVol(0x42);
for(i=0;i<3;i++)
{
bKey[i]=bVfdRead();
}
//vVfdStrobe(TRUE);
vI2CDelay2us(0xf0);
STROBE_PIN = 1;
vI2CDelay2us(0xf0);
bData1 = bKey[2]&0x03;
//bData1 = bData1 | bKey[2]&0x01;
if(bData1!=bData0)
{
vI2CDelay2us(0xf0);
//vVfdStrobe(FALSE);
STROBE_PIN = 0;
vI2CDelay2us(0xf0);
//vVfdUpdate(0x42);
vKeyReadVol(0x42);
for(i=0;i<3;i++)
{
bKey[i]=bVfdRead();
}
//vVfdStrobe(TRUE);
vI2CDelay2us(0xf0);
STROBE_PIN = 1;
vI2CDelay2us(0xf0);
bData1 = bKey[2]&0x03;
bData0=bData1;
_bLoopSwitchState = EV_LPSW_RESET;
return(IR_NONE);
}
/*else if(bData0==bData1)&&(bData1!=0)
{
}*/
//bData0|=bData1;
//bData0&=0x0f;
switch (_bLoopSwitchState)
{
case EV_LPSW_RESET:
if(bData1 == CODE_STATE_0)
{
bData2 = IR_VOLUME_DOWN;
_bLoopSwitchState = EV_LPSW_END;
}
else if((bData1 == CODE_STATE_1)/*&&(bData0==0x0a)*/)
{
bData2 = IR_VOLUME_UP;
_bLoopSwitchState = EV_LPSW_END;
}
break;
case EV_LPSW_END:
if(bData1 == CODE_STATE_2)
{
_bLoopSwitchState = EV_LPSW_RESET;
}
break;
default:
_bLoopSwitchState = EV_LPSW_RESET;
break;
}
return(bData2);
}
#endif
#if 0
BYTE bAmpVfdReadSw(void) large
{
BYTE xdata bData1;
BYTE xdata bData2 = IR_NONE;
BYTE i;
BYTE xdata bData[3];
if (fgIsInSetupMenu())
{
return(bData2);
}
vVfdStrobe(FALSE); // begin to write the VFD command
vVfdUpdate(0x02);
vVfdStrobe(TRUE); // strobe pull high to release the mode set
vVfdStrobe(FALSE); // begin to write the VFD command
vVfdUpdate(0xcf);
vVfdStrobe(TRUE); // strobe pull high to release the mode set
vVfdStrobe(FALSE); // begin to write the VFD command
vVfdUpdate(MODESET);
vVfdStrobe(TRUE); // strobe pull high to release the mode set
vVfdStrobe(FALSE); // begin to write the VFD command
vVfdUpdate(VFD_CONTROL);
_bVfdPulseLvl = VFD_CONTROL;
vVfdStrobe(TRUE); // strobe pull high to release the mode set
vVfdStrobe(FALSE); // begin to write the VFD command
vVfdUpdate(KEY_SCAN);
vVfdClk(TRUE); // waiting for the Twait (1 us)
vVfdData(TRUE); // pull the data inout line to high
vVfdClk(TRUE);
for(i = 0; i < SCANSIZE; i++) // how many bits we should scan here
{
vVfdClk(FALSE);
vVfdClk(FALSE); // may can be removed
vVfdClk(TRUE);
// get the bits from the datout pin
if(DATA_PIN)
{
if(!_fgVfdHold)
{
if(i==16) bData1=1;
_bVfdKeyScan = _pbVfdKeyScan[i];
//DRS232LogB(i,0,0,0);
_fgVfdHold = TRUE;
}
fgRelease = FALSE;
}
vVfdClk(TRUE); // to prevent clear clock to fast, maybe can be removed
}
vVfdStrobe(TRUE); // pull the strobe to high
SetReadCoderIo1();
SetReadCoderIo2();
bData1 = ReadCoderIo1();
bData1 = bData1 | ReadCoderIo2();
switch (_bLoopSwitchState)
{
case EV_LPSW_RESET:
if(bData1 == CODE_STATE_0)
{
bData2 = IR_AMP_CHANNEL_DN;
_bLoopSwitchState = EV_LPSW_END;
}
else if(bData1 == CODE_STATE_1)
{
bData2 = IR_AMP_CHANNEL_UP;
_bLoopSwitchState = EV_LPSW_END;
}
break;
case EV_LPSW_END:
if(bData1 == CODE_STATE_2)
{
_bLoopSwitchState = EV_LPSW_RESET;
}
break;
default:
_bLoopSwitchState = EV_LPSW_RESET;
break;
}
return(bData2);
}
#endif
#ifdef TIME_SLEEP_FUCTION
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
void vAmpSleepTimer(void) large
{
if (_bSleepOSDTimer > 0)
{
_bSleepOSDTimer --;
if(_bSleepOSDTimer == 25)
{
if(_fgFlashing == TRUE) _fgFlashing = FALSE;
else _fgFlashing = TRUE;
}
}
else
{
_bSleepOSDTimer = 50;
if(_fgFlashing == TRUE) _fgFlashing = FALSE;
else _fgFlashing = TRUE;
if(_bVfdCounter > 0)
{
_bVfdCounter --;
}
else
{
_bVfdCounter = 0;
}
if(_bSleepOSDCounter > 0)
{
_bSleepOSDCounter--;
}
if(_bSleepOSDCounter == 1)
{
//if(_bSysState == DVD_STATE)
{
if((_bSetSleepState == SLEEP_OFF))
{
vAmpOsdClearSleepTime();
}
}
}
if(_bSleepOSDCounter == 0)
{
//if(_bSysState == DVD_STATE)
{
if((_bSetSleepState>1 ) && (_bSetSleepState<9))
{
vAmpOsdClearSleepTime();
}
}
if(_bSetSleepState != SLEEP_OFF) _bSetSleepState = SLEEP_ON;
}
if(_wSleepCounter > 0)
{
_wSleepCounter --;
}
if(_wSleepCounter == 0)
{
if(_bSetSleepState != SLEEP_OFF)
{
_fgPowerDown = TRUE;
}
}
}
}
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
BOOL fgAmpSetSleepKey(void) large
{
switch(_bSetSleepState)
{
case SLEEP_ON:
_bSetSleepState = SLEEP_ON_DISPLAY;
_bSleepOSDCounter = 4;
break;
case SLEEP_ON_DISPLAY:
_bSetSleepState = SLEEP_90M;
_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_OFF:
_bSetSleepState = SLEEP_90M;
_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_90M:
_bSetSleepState = SLEEP_75M;
_wSleepCounter = 76 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_75M:
_bSetSleepState = SLEEP_60M;
_wSleepCounter = 61 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_60M:
_bSetSleepState = SLEEP_45M;
_wSleepCounter = 46 * SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_45M:
_bSetSleepState = SLEEP_30M;
_wSleepCounter = 31*SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_30M:
_bSetSleepState = SLEEP_15M;
_wSleepCounter = 16*SLEEP_TIME_ADJUST_LEVEL -1;
_bSleepOSDCounter = 4;
break;
case SLEEP_15M:
_bSetSleepState = SLEEP_OFF;
_wSleepCounter = 0;
_bSleepOSDCounter = 4;
break;
default:
_bSetSleepState = SLEEP_OFF;
_wSleepCounter = 0;
_bSleepOSDCounter = 4;
break;
}
vAmpOsdShowSleepTime();
vAmpVfdShowSleepTime();
_bIRKey = IR_NONE;
return (UOP_OK);
}
#endif
#if 0//def THREESTATE_ADD
/***************************************************************************************
Function :
Description :
Parameter :
Return :
***************************************************************************************/
BOOL fgAmpAuxStateSwitch(void) large
{
BOOL fgRet = UOP_OK;
switch(_bAuxState)
{
case AUX_TV:
break;
case AUX_GENERAL:
break;
case AUX_TUNER:
break;
case AUX_MP3:
break;
}
_bIRKey = IR_NONE;
return(fgRet);
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -