summaryrefslogtreecommitdiff
path: root/plugins/dfcdrom/cdr.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.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.c')
-rw-r--r--plugins/dfcdrom/cdr.c51
1 files changed, 22 insertions, 29 deletions
diff --git a/plugins/dfcdrom/cdr.c b/plugins/dfcdrom/cdr.c
index fd33dddf..eb08929c 100644
--- a/plugins/dfcdrom/cdr.c
+++ b/plugins/dfcdrom/cdr.c
@@ -47,7 +47,6 @@ int cacheaddr;
crdata cr;
unsigned char lastTime[3];
-int cdHandle;
pthread_t thread;
int subqread;
volatile int stopth, found, locked, playing;
@@ -70,9 +69,7 @@ void *CdrThread(void *arg);
extern char *LibName;
long CDRinit(void) {
- cdHandle = -1;
thread = -1;
-
return 0;
}
@@ -83,11 +80,10 @@ long CDRshutdown(void) {
long CDRopen(void) {
LoadConf();
- if (cdHandle > 0)
+ if (IsCdHandleOpen())
return 0; /* it's already open */
- cdHandle = OpenCdHandle(CdromDev);
- if (cdHandle == -1) { // if we can't open the cdrom we'll works as a null plugin
+ if (OpenCdHandle(CdromDev) == -1) { // if we can't open the cdrom we'll works as a null plugin
fprintf(stderr, "CDR: Could not open %s\n", CdromDev);
}
@@ -125,12 +121,11 @@ long CDRopen(void) {
}
long CDRclose(void) {
- if (cdHandle < 1) return 0;
+ if (!IsCdHandleOpen()) return 0;
if (playing) CDRstop();
- CloseCdHandle(cdHandle);
- cdHandle = -1;
+ CloseCdHandle();
if (thread != -1) {
if (locked == 0) {
@@ -160,13 +155,13 @@ long CDRclose(void) {
// byte 0 - start track
// byte 1 - end track
long CDRgetTN(unsigned char *buffer) {
- if (cdHandle < 1) {
+ if (!IsCdHandleOpen()) {
buffer[0] = 1;
buffer[1] = 1;
return 0;
}
- return GetTN(cdHandle, buffer);
+ return GetTN(buffer);
}
// return Track Time
@@ -175,17 +170,17 @@ long CDRgetTN(unsigned char *buffer) {
// byte 1 - second
// byte 2 - minute
long CDRgetTD(unsigned char track, unsigned char *buffer) {
- if (cdHandle < 1) {
+ if (!IsCdHandleOpen()) {
memset(buffer + 1, 0, 3);
return 0;
}
- return GetTD(cdHandle, track, buffer);
+ return GetTD(track, buffer);
}
// normal reading
long ReadNormal() {
- if (ReadSector(cdHandle, &cr) == -1)
+ if (ReadSector(&cr) == -1)
return -1;
return 0;
@@ -270,7 +265,7 @@ void *CdrThread(void *arg) {
for (i = 0; i < CacheSize; i++) {
memcpy(&cdcache[i].cr.msf, curTime, 3);
PRINTF("reading %d:%d:%d\n", curTime[0], curTime[1], curTime[2]);
- cdcache[i].ret = ReadSector(cdHandle, &cdcache[i].cr);
+ cdcache[i].ret = ReadSector(&cdcache[i].cr);
PRINTF("readed %x:%x:%x\n", cdcache[i].cr.buf[12], cdcache[i].cr.buf[13], cdcache[i].cr.buf[14]);
if (cdcache[i].ret == -1) break;
@@ -301,7 +296,7 @@ void *CdrThread(void *arg) {
// byte 2 - frame
// uses bcd format
long CDRreadTrack(unsigned char *time) {
- if (cdHandle < 1) {
+ if (!IsCdHandleOpen()) {
memset(cr.buf, 0, DATA_SIZE);
return 0;
}
@@ -330,7 +325,7 @@ unsigned char *CDRgetBuffer(void) {
// byte 2 - frame
// does NOT uses bcd format
long CDRplay(unsigned char *sector) {
- if (cdHandle < 1)
+ if (!IsCdHandleOpen())
return 0;
// If play was called with the same time as the previous call,
@@ -345,7 +340,7 @@ long CDRplay(unsigned char *sector) {
initial_time = msf_to_lba(sector[0], sector[1], sector[2]);
- if (PlayCDDA(cdHandle, sector) == 0) {
+ if (PlayCDDA(sector) == 0) {
playing = 1;
return 0;
}
@@ -355,10 +350,10 @@ long CDRplay(unsigned char *sector) {
// stops cdda audio
long CDRstop(void) {
- if (cdHandle < 1)
+ if (!IsCdHandleOpen())
return 0;
- if (StopCDDA(cdHandle) == 0) {
+ if (StopCDDA() == 0) {
playing = 0;
initial_time = 0;
@@ -388,10 +383,10 @@ long CDRstop(void) {
// byte 2 - frame
long CDRgetStatus(struct CdrStat *stat) {
- if (cdHandle < 1)
+ if (!IsCdHandleOpen())
return -1;
- return GetStatus(cdHandle, playing, stat);
+ return GetStatus(playing, stat);
}
unsigned char *CDRgetBufferSub(void) {
@@ -402,7 +397,7 @@ unsigned char *CDRgetBufferSub(void) {
if (ReadMode == THREADED) pthread_mutex_lock(&mut);
- p = ReadSub(cdHandle, lastTime);
+ p = ReadSub(lastTime);
if (ReadMode == THREADED) pthread_mutex_unlock(&mut);
@@ -427,8 +422,8 @@ long CDRreadCDDA(unsigned char m, unsigned char s, unsigned char f, unsigned cha
// get Track End Time
long CDRgetTE(unsigned char track, unsigned char *m, unsigned char *s, unsigned char *f) {
- if (cdHandle < 1) return -1;
- return GetTE(cdHandle, track, m, s, f);
+ if (!IsCdHandleOpen()) return -1;
+ return GetTE(track, m, s, f);
}
void ExecCfg(char *arg) {
@@ -469,11 +464,9 @@ void CDRabout() {
long CDRtest(void) {
#ifndef USE_NULL
- cdHandle = open(CdromDev, O_RDONLY);
- if (cdHandle == -1)
+ if (OpenCdHandle(CdromDev) == -1)
return -1;
- close(cdHandle);
- cdHandle = -1;
+ CloseCdHandle();
#endif
return 0;
}