From 19887eef447e9632c4b7a14badc7f58300f7408d Mon Sep 17 00:00:00 2001 From: nehalmistry <> Date: Wed, 11 Dec 2002 08:09:41 +0000 Subject: [PATCH] minor cleanups for CDDA mode --- src/sound/music.cpp | 38 +++++++++++++------------------------- src/ui/menus.cpp | 4 ++-- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/src/sound/music.cpp b/src/sound/music.cpp index 3f0d78ef7..5f076399b 100644 --- a/src/sound/music.cpp +++ b/src/sound/music.cpp @@ -254,8 +254,12 @@ local int PlayCDRom(const char* name) } } } + // CDPlayer command? if (!strncmp(name, ":", 1)) { + + StopMusic(); + if (!CDRom) { fprintf(stderr, "Couldn't open cdrom drive: %s\n", SDL_GetError()); CDMode = ":stopped"; @@ -278,15 +282,9 @@ local int PlayCDRom(const char* name) return 1; } -// StopMusic(); // FIXME: JOHNS: why stop music here? - - // FIXME: no cdrom, must stop it now! - return 0; } -#endif - -#ifdef USE_LIBCDA +#elif defined(USE_LIBCDA) /** ** Play music from cdrom. ** @@ -331,10 +329,10 @@ local int PlayCDRom(const char* name) } } - StopMusic(); - if (!strncmp(name, ":", 1)) { + StopMusic(); + if (cd_get_tracks(NULL, NULL) == -1) return 1; @@ -361,13 +359,10 @@ local int PlayCDRom(const char* name) } return 1; } - // FIXME: no cdrom, must stop it now! return 0; } -#endif - -#ifdef USE_CDDA +#elif defined(USE_CDDA) /** ** Play music from cdrom. ** @@ -381,16 +376,12 @@ local int PlayCDRom(const char* name) { int i; Sample *sample; - struct cdrom_volctrl cdvolume; if (!strcmp(CDMode, ":off")) { if (!strncmp(name, ":", 1)) { CDDrive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK); ioctl(CDDrive, CDROMRESET); - ioctl(CDDrive, CDROM_DRIVE_STATUS); - ioctl(CDDrive, CDROM_DISC_STATUS); - ioctl(CDDrive, CDROMREADTOCHDR, &CDchdr); for (i = CDchdr.cdth_trk0; i <= CDchdr.cdth_trk1; ++i){ @@ -400,9 +391,6 @@ local int PlayCDRom(const char* name) } NumCDTracks = i + 1; - ioctl(CDDrive, CDROMVOLREAD, &cdvolume); - - if (NumCDTracks == 0) { CDMode = ":off"; return 1; @@ -411,10 +399,10 @@ local int PlayCDRom(const char* name) } } -// StopMusic(); - if (!strncmp(name, ":", 1)) { + StopMusic(); + // if mode is play all tracks if (!strcmp(name, ":all")) { CDMode = ":all"; @@ -432,14 +420,14 @@ local int PlayCDRom(const char* name) CDTrack = MyRand() % NumCDTracks; } while (CDtocentry[++CDTrack].cdte_ctrl&CDROM_DATA_TRACK); } - CDTrack = 3; - StopMusic(); + + CDTrack = 3; // temporary + sample = LoadCD(NULL, CDTrack); MusicSample = sample; PlayingMusic = 1; return 1; } - // FIXME: no cdrom, must stop it now! return 0; diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp index 249ac4b4f..a626e17c7 100644 --- a/src/ui/menus.cpp +++ b/src/ui/menus.cpp @@ -1743,11 +1743,11 @@ local void SetCdPower(Menuitem *mi __attribute__((unused))) } #elif defined(USE_CDDA) // Start Playing CD - if (!PlayingMusic) { + if (!strcmp(":off", CDMode) || !strcmp(":stopped", CDMode)) { PlayMusic(":random"); } else { // Stop Playing CD - PlayingMusic = 0; + StopMusic(); CDMode = ":stopped"; } #endif