unsigned char StatP;
- unsigned char Transfer[CD_FRAMESIZE_RAW];
- unsigned char *pTransfer;
+ unsigned char Transfer[DATA_SIZE];
+ struct {
+ unsigned char Track;
+ unsigned char Index;
+ unsigned char Relative[3];
+ unsigned char Absolute[3];
+ } subq;
+ unsigned char TrackChanged;
+ unsigned char pad1[3];
+ unsigned int freeze_ver;
unsigned char Prev[4];
unsigned char Param[8];
- unsigned char Result[8];
+ unsigned char Result[16];
unsigned char ParamC;
unsigned char ParamP;
unsigned char ResultTN[6];
unsigned char ResultTD[4];
unsigned char SetSector[4];
- unsigned char SetSectorSeek[4];
+ unsigned char SetSectorEnd[4];
+ unsigned char SetSectorPlay[4];
unsigned char Track;
boolean Play, Muted;
int CurTrack;
int Init;
- unsigned char Irq;
+ u16 Irq;
+ u8 IrqRepeated;
u32 eCycle;
- boolean Seeked;
+ u8 Seeked;
+
+ u8 DriveState;
+ u8 FastForward;
+ u8 FastBackward;
+ u8 pad;
+
+ u8 AttenuatorLeftToLeft, AttenuatorLeftToRight;
+ u8 AttenuatorRightToRight, AttenuatorRightToLeft;
+ u8 AttenuatorLeftToLeftT, AttenuatorLeftToRightT;
+ u8 AttenuatorRightToRightT, AttenuatorRightToLeftT;
} cdrStruct;
extern cdrStruct cdr;
void cdrReset();
+void cdrAttenuate(s16 *buf, int samples, int stereo);
+
void cdrInterrupt();
void cdrReadInterrupt();
+void cdrRepplayInterrupt();
+void cdrLidSeekInterrupt();
+void cdrPlayInterrupt();
+void cdrDmaInterrupt();
+void LidInterrupt();
unsigned char cdrRead0(void);
unsigned char cdrRead1(void);
unsigned char cdrRead2(void);
void cdrWrite1(unsigned char rt);
void cdrWrite2(unsigned char rt);
void cdrWrite3(unsigned char rt);
-int cdrFreeze(gzFile f, int Mode);
+int cdrFreeze(void *f, int Mode);
#ifdef __cplusplus
}