From 6017b9dc83806e4e9a4a8cc9a5df6a57b9f72b06 Mon Sep 17 00:00:00 2001 From: "SND\\weimingzhi_cp" Date: Thu, 8 Jul 2010 02:24:48 +0000 Subject: git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@54334 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- plugins/dfcdrom/cdr-freebsd.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'plugins') 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); } -- cgit v1.2.3