$NetBSD: patch-ae,v 1.5 2008/01/11 16:05:27 drochner Exp $

--- src/input/input_vcd.c.orig	2008-01-01 14:30:08.000000000 +0100
+++ src/input/input_vcd.c
@@ -29,6 +29,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <sys/param.h>
 #include <string.h>
 #include <netinet/in.h>
 #ifdef HAVE_LINUX_CDROM_H
@@ -92,7 +93,7 @@ typedef struct {
 #if defined (__linux__) || defined(__sun)
   struct cdrom_tochdr    tochdr;
   struct cdrom_tocentry  tocent[100];
-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
   struct ioc_toc_header  tochdr;
   struct cd_toc_entry    *tocent;
   off_t                  cur_sec;
@@ -117,7 +118,7 @@ typedef struct {
 
   int                    cur_track;
 
-#if defined (__linux__) || defined(__sun) || defined (__FreeBSD_kernel__)
+#if defined (__linux__) || defined(__sun) || (defined(BSD) && BSD >= 199306)
   uint8_t                cur_min, cur_sec, cur_frame;
 #endif
 
@@ -177,7 +178,7 @@ static int input_vcd_read_toc (vcd_input
 
   return 0;
 }
-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
 static int input_vcd_read_toc (vcd_input_class_t *this, int fd) {
 
   struct ioc_read_toc_entry te;
@@ -393,7 +394,7 @@ static off_t vcd_plugin_read (input_plug
   memcpy (buf, data.data, VCDSECTORSIZE); /* FIXME */
   return VCDSECTORSIZE;
 }
-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
 static off_t vcd_plugin_read (input_plugin_t *this_gen, 
 				char *buf, off_t nlen) {
   vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
@@ -531,7 +532,7 @@ static buf_element_t *vcd_plugin_read_bl
   memcpy (buf->mem, data.data, VCDSECTORSIZE); /* FIXME */
   return buf;
 }
-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
 static buf_element_t *vcd_plugin_read_block (input_plugin_t *this_gen, 
 					     fifo_buffer_t *fifo, off_t nlen) {
   
@@ -690,7 +691,7 @@ static off_t vcd_plugin_seek (input_plug
 
   return offset ; /* FIXME */
 }
-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
 static off_t vcd_plugin_seek (input_plugin_t *this_gen, 
 				off_t offset, int origin) {
 
@@ -764,7 +765,7 @@ static off_t vcd_plugin_get_length (inpu
 
   return (off_t) 0;
 }
-#elif defined (__FreeBSD_kernel__)
+#elif (defined(BSD) && BSD >= 199306)
 static off_t vcd_plugin_get_length (input_plugin_t *this_gen) {
   vcd_input_plugin_t *this = (vcd_input_plugin_t *) this_gen;
   off_t len ;
@@ -859,6 +860,10 @@ static int vcd_plugin_open (input_plugin
   this->cur_min   = this->cls->tocent[this->cur_track].cdte_addr.msf.minute;
   this->cur_sec   = this->cls->tocent[this->cur_track].cdte_addr.msf.second;
   this->cur_frame = this->cls->tocent[this->cur_track].cdte_addr.msf.frame;
+#elif defined(__NetBSD__)
+  this->cur_min   = this->cls->tocent[this->cur_track+1 - this->cls->tochdr.starting_track].addr.msf.minute;
+  this->cur_sec   = this->cls->tocent[this->cur_track+1 - this->cls->tochdr.starting_track].addr.msf.second;
+  this->cur_frame = this->cls->tocent[this->cur_track+1 - this->cls->tochdr.starting_track].addr.msf.frame;
 #elif defined (__FreeBSD_kernel__)
   {
     int bsize = 2352;
