summaryrefslogtreecommitdiff
path: root/plugins/dfcdrom/cdr-freebsd.c
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-07-09 04:15:47 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-07-09 04:15:47 +0000
commite52097ddfe6c54547af8e3e47aadd33e385a4db7 (patch)
treeca50fc5e6fb434d712fdd47c1fc1ed21ca0f47c4 /plugins/dfcdrom/cdr-freebsd.c
parent83e06df4098064f5e4ca3c9ae1214019e934e907 (diff)
downloadpcsxr-e52097ddfe6c54547af8e3e47aadd33e385a4db7.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@54386 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins/dfcdrom/cdr-freebsd.c')
-rw-r--r--plugins/dfcdrom/cdr-freebsd.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/plugins/dfcdrom/cdr-freebsd.c b/plugins/dfcdrom/cdr-freebsd.c
index 49b8d83a..41c608b3 100644
--- a/plugins/dfcdrom/cdr-freebsd.c
+++ b/plugins/dfcdrom/cdr-freebsd.c
@@ -25,13 +25,15 @@
char *LibName = N_("CD-ROM Drive Reader");
+static int handle = -1;
+
int OpenCdHandle(const char *dev) {
- int h, parameter;
+ int parameter;
char spindown;
- h = open(dev, O_RDONLY);
+ handle = open(dev, O_RDONLY);
- if (h != -1) {
+ if (handle != -1) {
if (SpinDown != SPINDOWN_VENDOR_SPECIFIC) {
if (SpinDown > SPINDOWN_1S) {
parameter = (1 << (SpinDown - SPINDOWN_1S));
@@ -39,19 +41,19 @@ int OpenCdHandle(const char *dev) {
parameter = 1;
}
- ioctl(h, IOCATASSPINDOWN, &parameter);
+ ioctl(handle, IOCATASSPINDOWN, &parameter);
parameter = CdrSpeed * 177;
if (parameter == 0) parameter = CDR_MAX_SPEED;
- ioctl(h, CDRIOCREADSPEED, &parameter);
+ ioctl(handle, CDRIOCREADSPEED, &parameter);
}
}
- return h;
+ return (h == -1) ? -1 : 0;
}
-void CloseCdHandle(int handle) {
+void CloseCdHandle() {
int parameter;
parameter = 0;
@@ -61,24 +63,30 @@ void CloseCdHandle(int handle) {
ioctl(handle, CDRIOCREADSPEED, &parameter);
close(handle);
+
+ handle = -1;
+}
+
+int IsCdHandleOpen () {
+ return (handle != -1);
}
-long GetTN(int handle, unsigned char *buffer) {
+long GetTN(unsigned char *buffer) {
buffer[0] = 0;
buffer[1] = 0;
return 0;
}
-long GetTD(int handle, unsigned char track, unsigned char *buffer) {
+long GetTD(unsigned char track, unsigned char *buffer) {
memset(buffer + 1, 0, 3);
return 0;
}
-long GetTE(int handle, unsigned char track, unsigned char *m, unsigned char *s, unsigned char *f) {
+long GetTE(unsigned char track, unsigned char *m, unsigned char *s, unsigned char *f) {
return -1;
}
-long ReadSector(int handle, crdata *cr) {
+long ReadSector(crdata *cr) {
unsigned int lba = msf_to_lba(cr->msf.cdmsf_min0, cr->msf.cdmsf_sec0,
cr->msf.cdmsf_frame0);
@@ -99,19 +107,19 @@ long ReadSector(int handle, crdata *cr) {
return 0;
}
-long PlayCDDA(int handle, unsigned char *sector) {
+long PlayCDDA(unsigned char *sector) {
return -1;
}
-long StopCDDA(int handle) {
+long StopCDDA() {
return -1;
}
-long GetStatus(int handle, int playing, struct CdrStat *stat) {
+long GetStatus(int playing, struct CdrStat *stat) {
return -1;
}
-unsigned char *ReadSub(int handle, const unsigned char *time) {
+unsigned char *ReadSub(const unsigned char *time) {
return NULL;
}