]> gitweb @ CieloNegro.org - pkgsrc-cinelerra-cv.git/blob - patches/patch-cdripper_C
shmmax patch
[pkgsrc-cinelerra-cv.git] / patches / patch-cdripper_C
1 $NetBSD$
2
3 --- plugins/cdripper/cdripper.C.orig    2010-02-01 08:26:23.000000000 +0000
4 +++ plugins/cdripper/cdripper.C
5 @@ -19,6 +19,8 @@
6   * 
7   */
8  
9 +#include "config.h"
10 +
11  #include "errorbox.h"
12  #include "bcdisplayinfo.h"
13  #include "cdripper.h"
14 @@ -126,7 +128,9 @@ int CDRipMain::get_parameters()
15  
16  int CDRipMain::open_drive()
17  {
18 +#if defined(HAVE_LINUX_CDROM_H)
19         if((cdrom = open(device, O_RDONLY)) < 0)
20 +#endif
21         {
22                 BC_DisplayInfo info;
23                 ErrorBox window(PROGRAM_NAME ": CD Ripper",
24 @@ -137,17 +141,22 @@ int CDRipMain::open_drive()
25                 return 1;
26         }
27  
28 +#if defined(HAVE_LINUX_CDROM_H)
29         ioctl(cdrom, CDROMSTART);         // start motor
30 +#endif
31         return 0;
32  }
33  
34  int CDRipMain::close_drive()
35  {
36 +#if defined(HAVE_LINUX_CDROM_H)
37         ioctl(cdrom, CDROMSTOP);
38         close(cdrom);
39 +#endif
40         return 0;
41  }
42  
43 +#if defined(HAVE_LINUX_CDROM_H)
44  int CDRipMain::get_toc()
45  {
46  // test CD
47 @@ -263,6 +272,17 @@ int CDRipMain::get_toc()
48         close_drive();
49         return result;
50  }
51 +#else
52 +int CDRipMain::get_toc() {
53 +    BC_DisplayInfo info;
54 +    ErrorBox window(PROGRAM_NAME ": CD Ripper",
55 +                    info.get_abs_cursor_x(), 
56 +                    info.get_abs_cursor_y());
57 +    window.create_objects(_("Can't get total from table of contents."));
58 +    window.run_window();
59 +    return 1;
60 +}
61 +#endif
62  
63  int CDRipMain::start_loop()
64  {
65 @@ -294,9 +314,11 @@ int CDRipMain::start_loop()
66         currentlength = 0;
67         startlba_fragment = startlba - fragment_length * previewing / FRAMESIZE;
68         buffer = new char[fragment_length];
69 +#if defined(HAVE_LINUX_CDROM_H)
70         arg.addr.lba = startlba_fragment;
71         arg.addr_format = CDROM_LBA;
72         arg.nframes = NFRAMES;
73 +#endif
74  //printf("CDRipMain::start_loop 2\n");
75  
76         return result;
77 @@ -316,6 +338,7 @@ int CDRipMain::stop_loop()
78         return 0;
79  }
80  
81 +#if defined(HAVE_LINUX_CDROM_H)
82  int CDRipMain::process_loop(double **plugin_buffer, int64_t &write_length)
83  {
84         int result = 0;
85 @@ -385,3 +408,8 @@ int CDRipMain::process_loop(double **plu
86  //printf("CDRipMain::process_loop 8 %d %d\n", endofselection, result);
87         return endofselection || result;
88  }
89 +#else
90 +int CDRipMain::process_loop(double **, int64_t &) {
91 +    return 0;
92 +}
93 +#endif