$NetBSD: patch-aa,v 1.6 2002/03/21 18:52:31 drochner Exp $ --- Input/cdaudio/cdaudio.c.orig Tue Feb 5 15:39:11 2002 +++ Input/cdaudio/cdaudio.c Thu Mar 21 19:08:26 2002 @@ -398,7 +398,7 @@ if (cdda_fd < 0) return; - ioctl(cdda_fd, XMMS_PAUSE); + ioctl(cdda_fd, XMMS_PAUSE, 0); close(cdda_fd); cdda_fd = -1; stop_timeout_id = gtk_timeout_add(STOP_DELAY * 100, stop_timeout, NULL); @@ -409,11 +409,11 @@ if (p) { pause_time = get_time(); - ioctl(cdda_fd, XMMS_PAUSE); + ioctl(cdda_fd, XMMS_PAUSE, 0); } else { - ioctl(cdda_fd, XMMS_RESUME); + ioctl(cdda_fd, XMMS_RESUME, 0); pause_time = -1; } is_paused = p; @@ -554,9 +554,11 @@ struct cd_sub_channel_info subinfo; subchnl.address_format = CD_MSF_FORMAT; subchnl.data_format = CD_CURRENT_POSITION; + subchnl.track = 0; subchnl.data_len = sizeof(subinfo); subchnl.data = &subinfo; - ioctl(cdda_fd, CDIOCREADSUBCHANNEL, &subchnl); + if (ioctl(cdda_fd, CDIOCREADSUBCHANNEL, &subchnl)) + return (-1); return(LBA(subchnl.data->what.position.absaddr.msf)); } @@ -591,6 +593,7 @@ { struct ioc_toc_header tochdr; struct ioc_read_toc_entry tocentry; + struct cd_toc_entry tocentrydata; int i; if (ioctl(fd, CDIOREADTOCHEADER, &tochdr)) @@ -601,6 +604,8 @@ tocentry.address_format = CD_MSF_FORMAT; tocentry.starting_track = i; + tocentry.data = &tocentrydata; + tocentry.data_len = sizeof(tocentrydata); if (ioctl(fd, CDIOREADTOCENTRYS, &tocentry)) return FALSE; info->track[i].minute = @@ -617,6 +622,8 @@ tocentry.address_format = CD_MSF_FORMAT; tocentry.starting_track = 0xAA; + tocentry.data = &tocentrydata; + tocentry.data_len = sizeof(tocentrydata); if (ioctl(fd, CDIOREADTOCENTRYS, &tocentry)) return FALSE; info->leadout.minute = tocentry.data->addr.msf.minute;