$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;
