📄 cd.h
字号:
extern void CDInit(void);
extern void CDMain(void);
extern void CDKey(void);
extern void CDDisplay(void);
extern void CDPower(unsigned char mode);
extern void CDPowerMode(void);
extern void CDWork(unsigned char command);
extern void CDWorkMode(void);
extern void CDSendCommand(unsigned int command);
extern void CDSendBuffUpdate(void);
extern void CDDecodeData(void);
extern void CDSendAndRead(void);
extern void CDSendData(void);
extern void CDReadData(void);
extern void CDMute(unsigned char type);
extern void CD10msTimer(void);
extern void CD1sTimer(void);
extern void CDPowerOn(void);
extern void CDPowerOff(void);
extern void CDReset(void);
#define Pin_CD_POWER Pin_POWER
#define PD_CD_POWER PD_POWER
#define PO_CD_POWER PO_POWER
#define Pin_CD_RESET PIN8
#define PD_CD_RESET PINDDR8
#define PO_CD_RESET PINOR8
#define Pin_CD_ON PIN5
#define PD_CD_ON PINDDR5
#define PO_CD_ON PINOR5
#define Pin_CD_CRQ PIN6
#define PD_CD_CRQ PINDDR6
#define PO_CD_CRQ PINOR6
typedef struct CD_stuct {
unsigned char PowerMode;
unsigned char PowerReq;
unsigned char WorkMode;
unsigned char WorkReq;
unsigned char PlayMode;
unsigned char PlayMode_PAR2;
unsigned char SubPlayMode;
unsigned char LoaderMode;
unsigned char LoaderMode_PAR2;
unsigned char InsertMode;
unsigned char InsertMode_PAR2;
unsigned char ErrorMode;
unsigned char DispMode;
unsigned int SendCommand[5];
unsigned char SendCommandNum;
unsigned char PowerTimer10ms;
unsigned char WorkTimer1s;
unsigned char WorkTimer10ms;
unsigned char InitTimer1s;
unsigned char ReadingTimer10ms;
unsigned char DispTimer1s;
unsigned char SendBuff[20];
unsigned char ReadBuff[60];
//unsigned char ReadBuff[40];//yete test for ram space
unsigned int AbsFileNum;
unsigned int DirNum;
unsigned int RelFileNum;
unsigned int PlayMin;
unsigned char PlaySec;
unsigned char DiscType;
unsigned char DeviceType;
unsigned char CurrentSource;//01-dics,02-usb,03-sd
unsigned char CurrentDirectory[50];
unsigned char CurrentFileName[50];
/*unsigned char DiscTitle;//CD-DA
unsigned char DiscArtist;
unsigned char TrackTitle;
unsigned char TrackArtist;
unsigned char RomAlbum;//ROM
unsigned char RomArtist;
unsigned char RomTitle;
unsigned char TrackGenre;
unsigned char TrackYear;
unsigned char TrackComment;*/
//text info
unsigned char AlbumTitle[30];
unsigned char TrackTitle[30];
unsigned char TrackArtist[30];
unsigned char Genre[30];
unsigned char Year[4];
unsigned char Comment[30];
unsigned char DiscArtist[30];
unsigned char DiscTitle[30];
unsigned char Version[9];
unsigned F_ReadNewData:1;
unsigned F_DispReq:1;
unsigned F_NewLoaderMode:1;
unsigned F_NewInsertMode:1;
unsigned F_NewPlayMode:1;
unsigned F_WrapEnable:1;
unsigned Anibegin:1;
UCharField DISCFlag;
#define NoDISC DISCFlag.field.B0
#define DISC_Ready DISCFlag.field.B1
#define DISC_EJect DISCFlag.field.B2
#define DISC_Insert DISCFlag.field.B3
#define DISC_Block DISCFlag.field.B4
UCharField USBFlag;
#define NoUSB USBFlag.field.B0
#define USB_Plugging USBFlag.field.B1
#define USB_Ready USBFlag.field.B2
#define USB_Unknown USBFlag.field.B3
#define USB_Error USBFlag.field.B4
UCharField SDFlag;
#define NoSD SDFlag.field.B0
#define SD_Plugging SDFlag.field.B1
#define SD_Ready SDFlag.field.B2
#define SD_Unknown SDFlag.field.B3
#define SD_Error SDFlag.field.B4
} CDStuct;
ext CDStuct CD;
// PowerReq
#define OFF_TO_STANDBY 1
#define OFF_TO_NORMAL 2
#define STANDBY_TO_OFF 3
#define STANDBY_TO_NORMAL 4
#define NORMAL_TO_OFF 5
#define NORMAL_TO_STANDBY 6
// PowerMode
#define CD_POWER_OFF 0
#define CD_POWER_OFF_TO_STANDBY_REQ 1
#define CD_POWER_RESET_ON 2
#define CD_POWER_WAIT_INIT_MSG 3
#define CD_POWER_INIT 4
#define CD_POWER_STANDBY 5
#define CD_POWER_STANDBY_TO_NORMAL_REQ 6
#define CD_POWER_STANDBY_TO_NORMAL 7
#define CD_POWER_NORMAL 8
#define CD_POWER_NORMAL_TO_STANDBY_REQ 9
#define CD_POWER_NORMAL_TO_STANDBY 10
#define CD_POWER_STANDBY_TO_OFF_REQ 11
#define CD_POWER_ERROR 255
// WorkReq
#define POWERON_LOAD_EJECT 1
// WorkMode
#define CD_WORKMODE_IDLE 0
#define CD_WORKMODE_POWER_ON_REQ 1
#define CD_WORKMODE_POWER_ON_WAIT_NORMAL 2
#define CD_WORKMODE_POWER_ON_WAIT_LOADER 3
#define CD_WORKMODE_POWER_ON_WAIT_PLAYER 4
#define CD_WORKMODE_POWER_WAIT_EJECTPOS 10
#define CD_WORKMODE_POWER_WAIT_STOPPOS 11
#define CD_WORKMODE_POWER_WAIT_TO_RETURN 5
#define CD_WORKMODE_POWER_OFF_REQ 6
#define CD_WORKMODE_POWER_OFF_WAIT 7
#define CD_WORKMODE_POWER_OFF_WAIT2 8
#define CD_WORKMODE_POWER_ON_PLAY 9
#define CD_WORKMODE_DISC 12
#define CD_WORKMODE_USB 13
#define CD_WORKMODE_SD 14
#define CD_WORKMODE_AUTOCHANGE 15
#define CD_WORKMODE_GETFILENAME 16
#define CD_WORKMODE_GETTEXTINFO 17
#define CD_WORKMODE_ERROR 255
//List Response Message
#define DEVICE_MSG_GROUP 0x01
#define MSG_PRODUCTID 0x01
#define MSG_MPEGSWVERSION 0x02
#define MSG_ENGINESWVERSION 0x03
#define MSG_TEMPERATURE 0x04
#define MSG_CMDEVAL 0x05
#define MSG_CFGTABLE 0x06
#define MSG_VERIFYMEMORY 0x07
#define MSG_MECHPARA 0x12
#define MSG_AUTOLOAD 0x21
#define MSG_MEDIAINFOSETTING 0x23
#define MSG_TEXTINFOSETTING 0x24
#define MSG_LCDCFG 0x25
#define PLAYER_MSG_GROUP 0x03
#define MSG_POWERMODE 0x01
#define MSG_PLAYERMODE 0x02
#define MSG_LOADERMODE 0x03
#define MSG_ERRORMODE 0x04
#define MSG_INSERTMODE 0x05
#define MSG_AUTOMATEMODE 0x20
#define MEDIA_MSG_GROUP 0x04
#define MSG_DISCTYPE 0x01
#define MSG_DISCID 0x02
#define MSG_TRACKINFO 0x03
#define MSG_DISCLABLE 0x06
#define MSG_TOTALTIME 0x20
#define MSG_TIMEINFO 0x21
#define MSG_CURRENTSOURCE 0x22
#define MSG_DEVICEFILETYPE 0x23
#define MSG_DIRECTORYINFO 0x25
#define MSG_TEXTINFO 0x45
#define MSG_ENTRYNAME 0x48
// CD SendCommand
#define CD_CMD_NO 0
#define CD_CMD_PLAY 1
#define CD_CMD_POWEROFF 2
#define CD_CMD_STOP 3
#define CD_CMD_PAUSE 4
#define CD_CMD_REQ_STATE 5
#define CD_CMD_LOADDISC 6
#define CD_CMD_EJECTDISC 7
#define CD_CMD_NEXT_FILE 8
#define CD_CMD_PREVIOUS_FILE 9
#define CD_CMD_NEXT_DIR 10
#define CD_CMD_PREVIOUS_DIR 11
#define CD_CMD_INT_ON 12
#define CD_CMD_SHF_ON 13
#define CD_CMD_RPT_ON 14
#define CD_CMD_INTSHFRPT_OFF 15
#define CD_CMD_FAST_FF 16
#define CD_CMD_FAST_FB 17
#define CD_CMD_REQ_DISCTYPE 18
#define CD_CMD_REQ_USBFILETYPE 19
#define CD_CMD_REQ_SDFILETYPE 20
#define CD_CMD_SOURCE_TO_DISC 21
#define CD_CMD_SOURCE_TO_USB 22
#define CD_CMD_SOURCE_TO_SD 23
#define CD_CMD_REQ_CURRENTSOURCE 24
#define CD_CMD_REQ_POWERSTATE 25
#define CD_CMD_REQ_PLAYERSTATE 26
#define CD_CMD_REQ_LOADERSTATE 27
#define CD_CMD_REQ_INSERTSTATE 28
#define CD_CMD_REQ_ERRORSTATE 29
#define CD_CMD_REQ_CURRENTFILENAME 30
#define CD_CMD_REQ_CURRENTDIRNAME 31
#define CD_CMD_REQ_CURRENTTEXTINFO 32
#define CD_CMD_REQ_START_TOC 33
#define CD_CMD_CHECK_MEMORY 34
#define CD_CMD_REQ_MECHPARA 35
#define CD_CMD_WRAP 36
#define CD_CMD_REQ_VERSION 37
// PlayMode
#define CD_PLAY_STOP 1
#define CD_PLAY_START 2
#define CD_PLAY_PAUSE 3
#define CD_PLAY_ACCESS 4
#define CD_PLAY_ACCESS_STOP 1
#define CD_PLAY_ACCESS_PLAY 6
#define CD_PLAY_PLAY 6
#define CD_PLAY_FF 7
#define CD_PLAY_FR 8
// SubPlayMode
#define CD_SUBPLAY_NORMAL 0
#define CD_SUBPLAY_INT 1
#define CD_SUBPLAY_SHF 2
#define CD_SUBPLAY_RPT 3
// LoaderMode
#define CD_LODER_NODISC 0
#define CD_LODER_EJECT_POS 1
#define CD_LODER_EJECTING 2
#define CD_LODER_INSERTING 3
#define CD_LODER_STOP_POS 4
#define CD_LODER_DISC_BLOCKED 5
#define CD_LODER_INSERTING_USER 0
#define CD_LODER_INSERTING_PUSHBACK 1
#define CD_LODER_INSERTING_AUTOLOAD 2
#define CD_LODER_INSERTING_RESET 3
#define CD_LODER_INSERTING_COMMAND 4
// InsertMode
#define CD_INSERT_NOUSB 0
#define CD_INSERT_NOSD 1
#define CD_INSERT_NOT_RECOG_DEV 2
#define CD_INSERT_USB 3
#define CD_INSERT_USB_INSERT_PLUGGING 0
#define CD_INSERT_USB_INSERT_READY 1
#define CD_INSERT_USB_INSERT_UNKNOWN 2
#define CD_INSERT_USB_INSERT_ERROR 3
#define CD_INSERT_SD 4
#define CD_INSERT_SD_INSERT_PLUGGING 0
#define CD_INSERT_SD_INSERT_READY 1
#define CD_INSERT_SD_INSERT_UNKNOWN 2
#define CD_INSERT_SD_INSERT_ERROR 3
// DispMode
#define CD_DISP_IDLE 0
#define CD_DISP_READING 1
#define CD_DISP_DISC_READ 2
#define CD_DISP_USB_READ 3
#define CD_DISP_SD_READ 4
#define CD_DISP_NORMAL 5
#define CD_DISP_FILENAME 6
#define CD_DISP_ALBUMTITLE 7
#define CD_DISP_TITLE 8
#define CD_DISP_ARTIST 9
#define CD_DISP_GENRE 10
#define CD_DISP_YEAR 11
#define CD_DISP_COMMENT 12
#define CD_DISP_DISCARTIST 13
#define CD_DISP_DISCTITLE 14
#define CD_DISP_NODISC 15
#define CD_DISP_NOUSB 16
#define CD_DISP_NOSD 17
#define CD_DISP_DISC_ERROR 18
#define CD_DISP_USB_ERROR 19
#define CD_DISP_SD_ERROR 20
#define CD_DISP_COMMUNICATION_ERROR 21
#define CD_DEVICETYPE_DISC 1
#define CD_DEVICETYPE_USB 2
#define CD_DEVICETYPE_SD 3
// DiscType
#define CD_DISCTYPE_CD (CD.DiscType&0x01)//for cis0.8
#define CD_DISCTYPE_MP3 (CD.DiscType&0x02)
#define CD_DISCTYPE_CDMIXMP3 (CD.DiscType&0x04)
#define CD_DISCTYPE_CDMIXDATA (CD.DiscType&0x05)
#define CD_DISCTYPE_DATA (CD.DiscType&0x06)
/* cis0.9
#define CD_DISCTYPE_CD (CD.DiscType&0x01)
#define CD_DISCTYPE_MP3 (CD.DiscType&0x02)
#define CD_DISCTYPE_DATA (CD.DiscType&0x04)
*/
// DeviceType(usb&sd)
#define CD_DEVICETYPE_MP3 (CD.DeviceType&0x01)
#define CD_DEVICETYPE_WMA (CD.DeviceType&0x02)
#define CD_DEVICETYPE_DATA (CD.DeviceType&0x04)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -