Messages in this thread Patch in this message | | | From | Peter Samuelson <> | Date | Mon, 20 Dec 1999 04:22:48 -0600 (CST) | Subject | [PATCH] CDROMPLAYTRKIND was broken |
| |
Jens, *,
A fencepost error in drivers/cdrom/cdrom.c was causing CDs to play one track less than you asked for (with the CDROMPLAYTRKIND ioctl). Then in 2.3.31 or so it broke entirely. The following seems to make it work again. NOTE: I only tested ide-cd since that's all I have.
Peter
--- 2.3.34pre2/drivers/cdrom/cdrom.c~ Sun Dec 19 22:59:58 1999 +++ 2.3.34pre2/drivers/cdrom/cdrom.c Mon Dec 20 04:04:14 1999 @@ -1931,7 +1931,7 @@ /* get toc entry for start and end track */ if (cdo->audio_ioctl(cdi, CDROMREADTOCHDR, &tochdr)) return -EINVAL; - entry.cdte_track = ti.cdti_trk1 + 1; + entry.cdte_track = ti.cdti_trk0; if (entry.cdte_track > tochdr.cdth_trk1) return -EINVAL; if (cdo->audio_ioctl(cdi, CDROMREADTOCENTRY, &entry)) @@ -1941,7 +1941,11 @@ cgc.cmd[4] = entry.cdte_addr.msf.second; cgc.cmd[5] = entry.cdte_addr.msf.frame; - entry.cdte_track = ti.cdti_trk1; + entry.cdte_track = ti.cdti_trk1 + 1; + if (entry.cdte_track > tochdr.cdth_trk1 + 1) + return -EINVAL; + if (entry.cdte_track == tochdr.cdth_trk1 + 1) + entry.cdte_track = CDROM_LEADOUT; if (cdo->audio_ioctl(cdi, CDROMREADTOCENTRY, &entry)) return -EINVAL; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |