123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #ifndef _CD_SYS_H
- #define _CD_SYS_H
- #include "cd_file.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define INT_TO_BCDB(c) \
- ((c) > 99)?(0x99):((((c) / 10) << 4) + ((c) % 10));
- #define INT_TO_BCDW(c) \
- ((c) > 99)?(0x0909):((((c) / 10) << 8) + ((c) % 10));
- #define BCDB_TO_INT(c) \
- (((c) >> 4) * 10) + ((c) & 0xF);
- #define BCDW_TO_INT(c) \
- (((c) >> 8) * 10) + ((c) & 0xF);
- typedef struct
- {
- unsigned char M;
- unsigned char S;
- unsigned char F;
- } _msf;
- typedef struct
- {
- // unsigned char Type; // always 1 (data) for 1st track, 0 (audio) for others
- // unsigned char Num; // unused
- _msf MSF;
- //
- char ftype; // TYPE_ISO, TYPE_BIN, TYPE_MP3
- void *F;
- int Length;
- short KBtps; // kbytes per sec for mp3s (bitrate / 1000 / 8)
- short pad;
- } _scd_track;
- typedef struct
- {
- // unsigned char First_Track; // always 1
- _scd_track Tracks[100];
- unsigned int Last_Track;
- } _scd_toc;
- typedef struct {
- unsigned int Status_CDD;
- unsigned int Status_CDC;
- int Cur_LBA;
- unsigned int Cur_Track;
- int File_Add_Delay;
- char CDD_Complete;
- int pad[6];
- } _scd;
- void LBA_to_MSF(int lba, _msf *MSF);
- int Track_to_LBA(int track);
- void Check_CD_Command(void);
- int Init_CD_Driver(void);
- void End_CD_Driver(void);
- int Insert_CD(char *iso_name, int is_bin);
- void Stop_CD(void);
- void Change_CD(void);
- void Reset_CD(void);
- int Get_Status_CDD_c0(void);
- int Stop_CDD_c1(void);
- int Get_Pos_CDD_c20(void);
- int Get_Track_Pos_CDD_c21(void);
- int Get_Current_Track_CDD_c22(void);
- int Get_Total_Lenght_CDD_c23(void);
- int Get_First_Last_Track_CDD_c24(void);
- int Get_Track_Adr_CDD_c25(void);
- int Play_CDD_c3(void);
- int Seek_CDD_c4(void);
- int Pause_CDD_c6(void);
- int Resume_CDD_c7(void);
- int Fast_Foward_CDD_c8(void);
- int Fast_Rewind_CDD_c9(void);
- int CDD_cA(void);
- int Close_Tray_CDD_cC(void);
- int Open_Tray_CDD_cD(void);
- int CDD_Def(void);
- #ifdef __cplusplus
- };
- #endif
- #endif
|