diff options
Diffstat (limited to 'plugins/dfcdrom')
| -rw-r--r-- | plugins/dfcdrom/cdr-freebsd.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/plugins/dfcdrom/cdr-freebsd.c b/plugins/dfcdrom/cdr-freebsd.c index d97f76ff..0441d567 100644 --- a/plugins/dfcdrom/cdr-freebsd.c +++ b/plugins/dfcdrom/cdr-freebsd.c @@ -26,7 +26,7 @@ char *LibName = N_("CD-ROM Drive Reader"); int OpenCdHandle(const char *dev) { - int h, parameter, bsize = CD_FRAMESIZE_RAW; + int h, parameter; char spindown; h = open(dev, O_RDONLY); @@ -42,9 +42,12 @@ int OpenCdHandle(const char *dev) { ioctl(h, IOCATASSPINDOWN, ¶meter); parameter = CdrSpeed * 177; + if (parameter == 0) parameter = CDR_MAX_SPEED; + ioctl(h, CDRIOCREADSPEED, ¶meter); - ioctl(h, CDRIOCSETBLOCKSIZE, &bsize); + parameter = CD_FRAMESIZE_RAW; + ioctl(h, CDRIOCSETBLOCKSIZE, ¶meter); } } @@ -52,8 +55,13 @@ int OpenCdHandle(const char *dev) { } void CloseCdHandle(int handle) { - int spindown = 0; - ioctl(handle, IOCATASSPINDOWN, &spindown); + int parameter; + + parameter = 0; + ioctl(handle, IOCATASSPINDOWN, ¶meter); + + parameter = CDR_MAX_SPEED; + ioctl(h, CDRIOCREADSPEED, ¶meter); close(handle); } |
