$NetBSD$ --- plugins/cdripper/cdripper.C.orig 2010-01-29 09:03:11.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