fix errors for USE_CDDA

This commit is contained in:
nehalmistry 2003-02-17 05:34:38 +00:00
parent d14afdd289
commit a0ddebe637
2 changed files with 36 additions and 44 deletions

View file

@ -368,61 +368,53 @@ global int PlayCDRom(int name)
**
** @return True if name is handled by the cdrom module.
*/
local int PlayCDRom(const char* name)
global int PlayCDRom(int name)
{
int i;
Sample *sample;
if (CDMode == CDModeOff) {
if (!strncmp(name, ":", 1)) {
CDDrive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK);
ioctl(CDDrive, CDROMRESET);
CDDrive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK);
ioctl(CDDrive, CDROMRESET);
ioctl(CDDrive, CDROMREADTOCHDR, &CDchdr);
ioctl(CDDrive, CDROMREADTOCHDR, &CDchdr);
for (i = CDchdr.cdth_trk0; i <= CDchdr.cdth_trk1; ++i){
CDtocentry[i].cdte_format = CDROM_LBA;
CDtocentry[i].cdte_track = i;
ioctl(CDDrive, CDROMREADTOCENTRY, &CDtocentry[i]);
}
NumCDTracks = i - 1;
for (i = CDchdr.cdth_trk0; i <= CDchdr.cdth_trk1; ++i){
CDtocentry[i].cdte_format = CDROM_LBA;
CDtocentry[i].cdte_track = i;
ioctl(CDDrive, CDROMREADTOCENTRY, &CDtocentry[i]);
}
NumCDTracks = i - 1;
if (NumCDTracks == 0) {
CDMode = CDModeOff;
return 1;
}
if (NumCDTracks == 0) {
CDMode = CDModeOff;
return 1;
}
}
if (!strncmp(name, ":", 1)) {
StopMusic();
StopMusic();
// if mode is play all tracks
if (!strcmp(name, ":all")) {
CDMode = CDModeAll;
do {
if (CDTrack >= NumCDTracks) {
CDTrack = 0;
}
} while (CDtocentry[++CDTrack].cdte_ctrl&CDROM_DATA_TRACK);
}
// if mode is play random tracks
if (!strcmp(name, ":random")) {
CDMode = CDModeRanom;
do {
CDTrack = MyRand() % NumCDTracks;
} while (CDtocentry[CDTrack].cdte_ctrl&CDROM_DATA_TRACK);
}
sample = LoadCD(NULL, CDTrack);
MusicSample = sample;
PlayingMusic = 1;
return 1;
// if mode is play all tracks
if (name == CDModeAll) {
CDMode = CDModeAll;
do {
if (CDTrack >= NumCDTracks) {
CDTrack = 0;
}
} while (CDtocentry[++CDTrack].cdte_ctrl&CDROM_DATA_TRACK);
}
// if mode is play random tracks
if (name == CDModeRandom) {
CDMode = CDModeRandom;
do {
CDTrack = MyRand() % NumCDTracks;
} while (CDtocentry[CDTrack].cdte_ctrl&CDROM_DATA_TRACK);
}
return 0;
sample = LoadCD(NULL, CDTrack);
MusicSample = sample;
PlayingMusic = 1;
return 1;
}
#endif

View file

@ -255,13 +255,13 @@ global int CDRomCheck(void *unused __attribute__ ((unused)))
}
}
#elif defined(USE_CDDA)
if (CDMode != CDModeOff && CDMode != CDModeStopped)
if (CDMode != CDModeOff && CDMode != CDModeStopped
&& !PlayingMusic) {
DebugLevel0Fn("Playing new track\n");
if (CDMode == CDModeAll) {
PlayCDRom(":all");
PlayCDRom(CDModeAll);
} else if (CDMode == CDModeRandom) {
PlayCDRom(":random");
PlayCDRom(CDModeRandom);
}
}
#endif