📄 cd.c
字号:
DispBuff[1][9]='C';
DispBuff[1][10]='A';
DispBuff[1][11]='N';
break;
case CD_SUBPLAY_SHF:
DispBuff[1][8]='S';
DispBuff[1][9]='H';
DispBuff[1][10]='U';
DispBuff[1][11]='F';
DispBuff[1][12]='F';
break;
case CD_SUBPLAY_RPT:
DispBuff[1][8]='R';
DispBuff[1][9]='E';
DispBuff[1][10]='P';
DispBuff[1][11]='E';
DispBuff[1][12]='A';
DispBuff[1][13]='T';
break;
}
break;
}
#endif
#ifdef SINO_MOS
str[0] = 'T';
str[1] = CD.AbsFileNum /10 + '0';
str[2] = CD.AbsFileNum%10 + '0';
str[3] = ' ';
str[4] = CD.PlayMin/10 + '0';
str[5] = CD.PlayMin%10 + '0';
str[6] = CD.PlaySec /10 + '0';
str[7] = CD.PlaySec%10 + '0';
PrintLine(str);
WheelShow();
#else
Display(DISP_REFRESH1);
Display(DISP_CLEAR2);
DispBuff[2][6]='T';
DispBuff[2][7]=ReturnDispNum(CD.AbsFileNum,10);
DispBuff[2][8]=ReturnDispNum(CD.AbsFileNum,1);
DispBuff[2][9]=' ';
DispBuff[2][10]=ReturnDispNum(CD.PlayMin,10);
DispBuff[2][11]=ReturnDispNum(CD.PlayMin,1);
DispBuff[2][12]=':';
DispBuff[2][13]=ReturnDispNum((unsigned int)CD.PlaySec,10);
DispBuff[2][14]=ReturnDispNum((unsigned int)CD.PlaySec,1);
Display(DISP_REFRESH2);
#endif
break;
}
if(CD.DispMode==CD_DISP_DISC_EJECT||CD.DispMode==CD_DISP_NOUSB
||CD.DispMode==CD_DISP_NOSD)
{
Display(DISP_CLEAR1);
Display(DISP_CLEAR3);
Display(DISP_REFRESH);
CD.F_DispText = 0;
}
DisplayRefresh();
}
void CDPower(unsigned char mode)
{
CD.PowerReq=mode;
switch(CD.PowerReq)
{
case OFF_TO_STANDBY:
CD.PowerMode=CD_POWER_OFF_TO_STANDBY_REQ;
break;
case OFF_TO_NORMAL:
CD.PowerMode=CD_POWER_OFF_TO_STANDBY_REQ;
break;
case STANDBY_TO_OFF:
CD.PowerMode=CD_POWER_STANDBY_TO_OFF_REQ;
break;
case STANDBY_TO_NORMAL:
CD.PowerMode=CD_POWER_STANDBY_TO_NORMAL_REQ;
break;
case NORMAL_TO_OFF:
CD.PowerMode=CD_POWER_NORMAL_TO_STANDBY_REQ;
break;
case NORMAL_TO_STANDBY:
CD.PowerMode=CD_POWER_NORMAL_TO_STANDBY_REQ;
break;
}
}
void CDPowerMode(void)
{
switch(CD.PowerMode)
{
case CD_POWER_OFF:
if(CD.PowerReq==STANDBY_TO_OFF ||CD.PowerReq==NORMAL_TO_OFF)
CD.PowerReq=0;
break;
case CD_POWER_OFF_TO_STANDBY_REQ:
//Pin_CD_POWER=1;
CD.PowerTimer10ms=10;
CD.PowerMode=CD_POWER_RESET_ON;
break;
case CD_POWER_RESET_ON:
if(CD.PowerTimer10ms>0)break;
Pin_CD_RESET=1;
CD.PowerMode=CD_POWER_WAIT_INIT_MSG;
CD.PowerTimer10ms=100;
break;
case CD_POWER_WAIT_INIT_MSG:
//if(CD.PowerTimer10ms==0)
// CD.PowerMode=CD_POWER_ERROR;
//break;
case CD_POWER_INIT:
//if(CD.PowerTimer10ms==0)
// CD.PowerMode=CD_POWER_ERROR;
if(CD.PowerTimer10ms==0)
CD.PowerMode=CD_POWER_STANDBY;
break;
case CD_POWER_STANDBY:
if(CD.PowerReq==OFF_TO_NORMAL)
CD.PowerMode=CD_POWER_STANDBY_TO_NORMAL_REQ;
else if(CD.PowerReq==NORMAL_TO_OFF)
CD.PowerMode=CD_POWER_STANDBY_TO_OFF_REQ;
else if(CD.PowerReq==OFF_TO_STANDBY ||CD.PowerReq==NORMAL_TO_STANDBY)
CD.PowerReq=0;
break;
case CD_POWER_STANDBY_TO_NORMAL_REQ:
Pin_CD_ON=1;
CD.PowerMode=CD_POWER_STANDBY_TO_NORMAL;
CD.PowerTimer10ms=100;
break;
case CD_POWER_STANDBY_TO_NORMAL:
//if(CD.PowerTimer10ms==0)
// CD.PowerMode=CD_POWER_ERROR;
if(CD.PowerTimer10ms==0)
CD.PowerMode=CD_POWER_NORMAL;
break;
case CD_POWER_NORMAL:
if(CD.PowerReq==OFF_TO_NORMAL ||CD.PowerReq==STANDBY_TO_NORMAL)
CD.PowerReq=0;
break;
case CD_POWER_NORMAL_TO_STANDBY_REQ:
Pin_CD_ON=0;
CD.PowerMode=CD_POWER_NORMAL_TO_STANDBY;
CD.PowerTimer10ms=10;
break;
case CD_POWER_NORMAL_TO_STANDBY:
if(CD.PowerTimer10ms==0)
CD.PowerMode=CD_POWER_STANDBY_TO_OFF_REQ;
break;
case CD_POWER_STANDBY_TO_OFF_REQ:
Pin_CD_RESET=0;
//Pin_CD_POWER=0;
CD.PowerMode=CD_POWER_OFF;
break;
case CD_POWER_ERROR:
break;
}
}
void CDWork(unsigned char command)
{
CD.WorkReq=command;
}
void CDWorkMode(void)
{
switch(System.FWorkMode.Next)
{
case WORKMODE_DISC:
#ifdef DEBUG_SCI_ENABLE
SCI_SendString("WORKMODE_DISC");
#endif
CD.WorkMode=CD_WORKMODE_DISC;
CDSendCommand(CD_CMD_SOURCE_TO_DISC);
CD.WorkTimer1s=5;
CD.DispMode=CD_DISP_DISC_READ;
CD.F_DispReq=1;
break;
case WORKMODE_USB:
#ifdef DEBUG_SCI_ENABLE
SCI_SendString("WORKMODE_USB");
#endif
CD.WorkMode=CD_WORKMODE_USB;
CDSendCommand(CD_CMD_SOURCE_TO_USB);
CD.WorkTimer1s=12;//when CD power on, USB inserting msg need long time to feedback
CD.DispMode=CD_DISP_USB_READ;
CD.F_DispReq=1;
break;
case WORKMODE_SD:
#ifdef DEBUG_SCI_ENABLE
SCI_SendString("WORKMODE_SD");
#endif
CD.WorkMode=CD_WORKMODE_SD;
CDSendCommand(CD_CMD_SOURCE_TO_SD);
CD.WorkTimer1s=15;
CD.DispMode=CD_DISP_SD_READ;
CD.F_DispReq=1;
break;
}
switch(System.FWorkMode.Last)
{
case WORKMODE_DISC:
case WORKMODE_USB:
case WORKMODE_SD:
//if(CD.PlayMode!= CD_PLAY_STOP&&!(CD.PlayMode== CD_PLAY_ACCESS&&CD.PlayMode_PAR2==CD_PLAY_ACCESS_STOP))//cis0.8
if(CD.PlayMode!= CD_PLAY_STOP)//cis0.9
CDSendCommand(CD_CMD_STOP);
break;
}
switch(CD.WorkMode)
{
case CD_WORKMODE_IDLE:
if(System.FWorkMode.Current==WORKMODE_SD&&CD.NoSD)
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_NOSD;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
else if(System.FWorkMode.Current==WORKMODE_USB&&CD.NoUSB)
{
//if(O_J14 == 0)
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_NOUSB;
CD.F_DispReq=1;
//if( O_J14 == 0 )
CD.WorkTimer1s=3;
}
break;
case CD_WORKMODE_POWER_ON_REQ:
if(CD.PowerMode==CD_POWER_OFF)
CDPower(OFF_TO_NORMAL);
else
CDPower(STANDBY_TO_NORMAL);
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_NORMAL;
break;
case CD_WORKMODE_POWER_ON_WAIT_NORMAL:
if(CD.PowerMode==CD_POWER_NORMAL)
{
CD.WorkMode=CD_WORKMODE_IDLE;
}
break;
case CD_WORKMODE_POWER_OFF_REQ:
//if(CD.PlayMode!=CD_PLAY_STOP&&!(CD.PlayMode== CD_PLAY_ACCESS&&CD.PlayMode_PAR2==CD_PLAY_ACCESS_STOP))
if(CD.PlayMode!=CD_PLAY_STOP)
CDSendCommand(CD_CMD_STOP);
CD.WorkMode=CD_WORKMODE_POWER_OFF_WAIT;
break;
case CD_WORKMODE_POWER_OFF_WAIT:
if(CD.PowerMode==CD_POWER_NORMAL)
CDPower(NORMAL_TO_OFF);
else
CDPower(STANDBY_TO_OFF);
CD.WorkMode=CD_WORKMODE_IDLE;
break;
/*
case CD_WORKMODE_POWER_ON_REQ:
if(CD.PowerMode==CD_POWER_OFF)
CDPower(OFF_TO_NORMAL);
else
CDPower(STANDBY_TO_NORMAL);
CD.DispMode=CD_DISP_READING;
CD.F_DispReq=1;
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_NORMAL;
break;
case CD_WORKMODE_POWER_ON_WAIT_NORMAL:
if(CD.PowerMode==CD_POWER_NORMAL)
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_LOADER;
break;
case CD_WORKMODE_POWER_ON_WAIT_LOADER:
if(CD.F_NewLoaderMode)
{
CD.F_NewLoaderMode=0;
if(CD.LoaderMode==CD_LODER_NODISC)
{
CD.DispMode=CD_DISP_NODISC;
CD.F_DispReq=1;
CD.WorkMode=CD_WORKMODE_POWER_WAIT_TO_RETURN;
CD.PowerTimer10ms=250;
}
else if((CD.LoaderMode==CD_LODER_STOP_POS || CD.LoaderMode==CD_LODER_INSERTING)
&&CD.WorkReq==POWERON_LOAD_EJECT)
{
CD.WorkReq=0;
CDSendCommand(CD_CMD_EJECTDISC);
CD.WorkMode=CD_WORKMODE_POWER_WAIT_EJECTPOS;
CD.PowerTimer10ms=250;
}
else if((CD.LoaderMode==CD_LODER_EJECT_POS ||CD.LoaderMode==CD_LODER_EJECTING)
&&CD.WorkReq==POWERON_LOAD_EJECT)
{
CD.WorkReq=0;
CDSendCommand(CD_CMD_LOADDISC);
CD.WorkMode=CD_WORKMODE_POWER_WAIT_STOPPOS;
CD.PowerTimer10ms=250;
}
else
{
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_PLAYER;
CDSendCommand(CD_CMD_SOURCE_TO_DISC);
CD.DispMode=CD_DISP_DISC_READ;
CD.F_DispReq=1;
}
}
else
{
if(F_HalfSecondOut)
CDSendCommand(CD_CMD_REQ_STATE);
}
break;
case CD_WORKMODE_POWER_WAIT_EJECTPOS:
if(CD.LoaderMode==CD_LODER_EJECT_POS)
{
CD.WorkMode=CD_WORKMODE_POWER_OFF_REQ;
}
break;
case CD_WORKMODE_POWER_WAIT_STOPPOS:
if(CD.LoaderMode==CD_LODER_STOP_POS)
{
CD.WorkMode=CD_WORKMODE_POWER_OFF_REQ;
}
break;
case CD_WORKMODE_POWER_OFF_REQ:
//CDSendCommand(CD_CMD_POWEROFF);
//CDSendCommand(CD_CMD_STOP);
CD.WorkMode=CD_WORKMODE_POWER_OFF_WAIT;
break;
case CD_WORKMODE_POWER_OFF_WAIT:
if(F_HalfSecondOut)
{
if(CD.PlayMode!=CD_PLAY_STOP)
CDSendCommand(CD_CMD_STOP);
else
CD.WorkMode=CD_WORKMODE_POWER_OFF_WAIT2;
}
break;
case CD_WORKMODE_POWER_OFF_WAIT2:
if(CD.PowerMode==CD_POWER_NORMAL)
CDPower(NORMAL_TO_OFF);
else
CDPower(STANDBY_TO_OFF);
CD.WorkMode=CD_WORKMODE_IDLE;
break;
case CD_WORKMODE_POWER_OFF_REQ:
CDSendCommand(CD_CMD_STOP);
CD.WorkMode=CD_WORKMODE_IDLE;
case CD_WORKMODE_POWER_WAIT_TO_RETURN:
if(CD.PowerTimer10ms>0)break;
ChangeFWorkmode(WORKMODE_RADIO);
CD.WorkMode=CD_WORKMODE_IDLE;
break;
case CD_WORKMODE_ERROR:
break;
*/
case CD_WORKMODE_AUTOCHANGE:
if(CD.WorkTimer1s>0 )break;
ChangeFWorkmode(WORKMODE_RADIO);
CD.WorkMode=CD_WORKMODE_IDLE;
break;
case CD_WORKMODE_DISC:
if(CD.F_NewLoaderMode)
{
CD.F_NewLoaderMode=0;
if(CD.DISC_Ready)
{
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_PLAYER;
if(CD.CD_CIS_0_0_9)
{
CDSendCommand(CD_CMD_REQ_START_TOC);
CD.WorkTimer1s=50;//wait toc
}
}
/*
else if(CD.DISC_EJect)
CDSendCommand(CD_CMD_LOADDISC);
*/
else if(CD.DISC_EJect)
{
CD.DispMode=CD_DISP_DISC_EJECT;
CD.F_DispReq=1;
}
else if(CD.DISC_Block)
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_DISC_ERROR;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
else if(CD.DISC_Insert)
{
CD.WorkTimer1s=3;
CD.DispMode=CD_DISP_DISC_READ;
CD.F_DispReq=1;
}
}
else
{
if(CD.NoDISC)
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_NODISC;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
else if(CD.WorkTimer1s>0)
{
if(F_HalfSecondOut)
CDSendCommand(CD_CMD_REQ_LOADERSTATE);
}
else
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_NODISC;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
}
break;
case CD_WORKMODE_USB:
if(CD.USB_Ready)
{
//if( O_J14 == 0 )
{
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_PLAYER;
CD.WorkTimer1s=3;
}
}
else if(CD.NoUSB)
{
//if( O_J14 == 0 )
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_NOUSB;
CD.F_DispReq=1;
//if( O_J14 == 0 )
CD.WorkTimer1s=3;
}
else if(CD.USB_Error||CD.USB_Unknown)
{
//if( O_J14 == 0 )
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_USB_ERROR;
CD.F_DispReq=1;
//if( O_J14 == 0 )
CD.WorkTimer1s=3;
}
else
{
if(CD.WorkTimer1s==0 )
{
//if( O_J14 == 0 )
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_COMMUNICATION_ERROR;
CD.F_DispReq=1;
//if( O_J14 == 0 )
CD.WorkTimer1s=3;
}
}
break;
case CD_WORKMODE_SD:
if(CD.SD_Ready)
{
CD.WorkMode=CD_WORKMODE_POWER_ON_WAIT_PLAYER;
CD.WorkTimer1s=3;
}
else if(CD.NoSD)
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_NOSD;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
else if(CD.SD_Error||CD.SD_Unknown)
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_SD_ERROR;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
else
{
if(CD.WorkTimer1s==0)
{
CD.WorkMode=CD_WORKMODE_AUTOCHANGE;
CD.DispMode=CD_DISP_COMMUNICATION_ERROR;
CD.F_DispReq=1;
CD.WorkTimer1s=3;
}
}
break;
case CD_WORKMODE_POWER_ON_WAIT_PLAYER:
if(CD.F_NewPlayMode)
{
CD.F_NewPlayMode=0;
//if(CD.PlayMode!=CD_PLAY_PLAY)
//Yete: May-22-2007---Wait for TOC ready when in disc mode
if(CD.CD_CIS_0_0_9)
{
if((CD.PlayMode==CD_PLAY_PAUSE && System.FWorkMode.Current == WORKMODE_DISC)
|| (CD.PlayMode!=CD_PLAY_PLAY
&&( System.FWorkMode.Current==WORKMODE_USB || System.FWorkMode.Current==WORKMODE_SD)))
{
CDSendCommand(CD_CMD_PLAY);
CD.WorkMode=CD_WORKMODE_POWER_ON_PLAY;
CDMute(SOFTOFF);
CD.WorkTimer1s=20;
}
}
if(CD.CD_CIS_3_25)
{
CDSendCommand(CD_CMD_PLAY);
CD.WorkMode=CD_WORKMODE_POWER_ON_PLAY;
CDMute(SOFTOFF);
CD.WorkTimer1s=20;
}
}
else
{
if(CD.WorkTimer1s>0)
{
if(F_HalfSecondOut)
CDSendCommand(CD_CMD_REQ_PLAYERSTATE);
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -