X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fcdrom.h;h=216a2133e919eb082698211d25ece05b47f1ac28;hb=b9db55a9831ccbe3749abfc97ff49e5fb9379b29;hp=7bca81190c6563a776c15948e65a9f5810e68c06;hpb=fffad32e54d18c0a527a1e9eda0a746e2485284b;p=pcsx_rearmed.git diff --git a/libpcsxcore/cdrom.h b/libpcsxcore/cdrom.h index 7bca8119..216a2133 100644 --- a/libpcsxcore/cdrom.h +++ b/libpcsxcore/cdrom.h @@ -41,6 +41,9 @@ extern "C" { #define SUB_FRAMESIZE 96 +#define MIN_VALUE(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) +#define MAX_VALUE(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; }) + typedef struct { unsigned char OCUP; unsigned char Reg1Mode; @@ -59,8 +62,9 @@ typedef struct { unsigned char Absolute[3]; } subq; unsigned char TrackChanged; - unsigned char pad1[3]; - unsigned int pad3; + boolean m_locationChanged; + unsigned char pad1[2]; + unsigned int freeze_ver; unsigned char Prev[4]; unsigned char Param[8]; @@ -73,42 +77,48 @@ typedef struct { unsigned char ResultReady; unsigned char Cmd; unsigned char Readed; + unsigned char SetlocPending; u32 Reading; unsigned char ResultTN[6]; unsigned char ResultTD[4]; - unsigned char SetSector[4]; - unsigned char SetSectorEnd[4]; unsigned char SetSectorPlay[4]; + unsigned char SetSectorEnd[4]; + unsigned char SetSector[4]; unsigned char Track; boolean Play, Muted; int CurTrack; int Mode, File, Channel; int Reset; - int RErr; + int NoErr; int FirstSector; xa_decode_t Xa; int Init; - unsigned char Irq; + u16 Irq; + u8 IrqRepeated; u32 eCycle; u8 Seeked; - u8 LidCheck; + u8 DriveState; u8 FastForward; u8 FastBackward; u8 pad; - u8 AttenuatorLeft[2], AttenuatorRight[2]; - u32 pad2; + 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();