$NetBSD$

--- plugins/cdripper/cdripper.C.orig	2010-02-01 08:26:23.000000000 +0000
+++ plugins/cdripper/cdripper.C
@@ -19,6 +19,8 @@
  * 
  */
 
+#include "config.h"
+
 #include "errorbox.h"
 #include "bcdisplayinfo.h"
 #include "cdripper.h"
@@ -126,7 +128,9 @@ int CDRipMain::get_parameters()
 
 int CDRipMain::open_drive()
 {
+#if defined(HAVE_LINUX_CDROM_H)
 	if((cdrom = open(device, O_RDONLY)) < 0)
+#endif
 	{
 		BC_DisplayInfo info;
 		ErrorBox window(PROGRAM_NAME ": CD Ripper",
@@ -137,17 +141,22 @@ int CDRipMain::open_drive()
 		return 1;
 	}
 
+#if defined(HAVE_LINUX_CDROM_H)
 	ioctl(cdrom, CDROMSTART);         // start motor
+#endif
 	return 0;
 }
 
 int CDRipMain::close_drive()
 {
+#if defined(HAVE_LINUX_CDROM_H)
 	ioctl(cdrom, CDROMSTOP);
 	close(cdrom);
+#endif
 	return 0;
 }
 
+#if defined(HAVE_LINUX_CDROM_H)
 int CDRipMain::get_toc()
 {
 // test CD
@@ -263,6 +272,17 @@ int CDRipMain::get_toc()
 	close_drive();
 	return result;
 }
+#else
+int CDRipMain::get_toc() {
+    BC_DisplayInfo info;
+    ErrorBox window(PROGRAM_NAME ": CD Ripper",
+                    info.get_abs_cursor_x(), 
+                    info.get_abs_cursor_y());
+    window.create_objects(_("Can't get total from table of contents."));
+    window.run_window();
+    return 1;
+}
+#endif
 
 int CDRipMain::start_loop()
 {
@@ -294,9 +314,11 @@ int CDRipMain::start_loop()
 	currentlength = 0;
 	startlba_fragment = startlba - fragment_length * previewing / FRAMESIZE;
 	buffer = new char[fragment_length];
+#if defined(HAVE_LINUX_CDROM_H)
 	arg.addr.lba = startlba_fragment;
 	arg.addr_format = CDROM_LBA;
 	arg.nframes = NFRAMES;
+#endif
 //printf("CDRipMain::start_loop 2\n");
 
 	return result;
@@ -316,6 +338,7 @@ int CDRipMain::stop_loop()
 	return 0;
 }
 
+#if defined(HAVE_LINUX_CDROM_H)
 int CDRipMain::process_loop(double **plugin_buffer, int64_t &write_length)
 {
 	int result = 0;
@@ -385,3 +408,8 @@ int CDRipMain::process_loop(double **plu
 //printf("CDRipMain::process_loop 8 %d %d\n", endofselection, result);
 	return endofselection || result;
 }
+#else
+int CDRipMain::process_loop(double **, int64_t &) {
+    return 0;
+}
+#endif
