diff options
| author | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2009-11-26 15:29:20 +0000 |
|---|---|---|
| committer | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2009-11-26 15:29:20 +0000 |
| commit | 24054df7ea8081b4a4b9875344b37458ec8502a5 (patch) | |
| tree | 5bfa94e8ac0899b30a8456f5faf188392a78d1ce /plugins/dfcdrom/cdr-linux.c | |
| parent | 93e34824a3aaa71b3d9f423311c7ca1f67f4fd73 (diff) | |
| download | pcsxr-24054df7ea8081b4a4b9875344b37458ec8502a5.tar.gz | |
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@38278 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins/dfcdrom/cdr-linux.c')
| -rw-r--r-- | plugins/dfcdrom/cdr-linux.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/plugins/dfcdrom/cdr-linux.c b/plugins/dfcdrom/cdr-linux.c index 66905cbf..7860e920 100644 --- a/plugins/dfcdrom/cdr-linux.c +++ b/plugins/dfcdrom/cdr-linux.c @@ -17,6 +17,10 @@ #include "cdr.h" +#ifndef CDROMSETSPINDOWN +#define CDROMSETSPINDOWN 0x531e +#endif + static inline int msf_to_lba(char m, char s, char f) { return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET; } @@ -55,6 +59,8 @@ long CDRshutdown(void) { } long CDRopen(void) { + char spindown; + LoadConf(); if (cdHandle > 0) @@ -64,6 +70,9 @@ long CDRopen(void) { ioctl(cdHandle, CDROM_LOCKDOOR, 0); // ioctl(cdHandle, CDROMSTART, NULL); + spindown = (char)SpinDown; + ioctl(cdHandle, CDROMSETSPINDOWN, &spindown); + ioctl(cdHandle, CDROM_SELECT_SPEED, CdrSpeed); } else { fprintf(stderr, "CDR: Could not open %s\n", CdromDev); @@ -101,9 +110,13 @@ long CDRopen(void) { } long CDRclose(void) { + char spindown; + if (cdHandle < 1) return 0; if (playing) CDRstop(); + spindown = SPINDOWN_VENDOR_SPECIFIC; + ioctl(cdHandle, CDROMSETSPINDOWN, &spindown); close(cdHandle); cdHandle = -1; @@ -419,6 +432,7 @@ long CDRgetStatus(struct CdrStat *stat) { struct cdrom_subchnl sc; int ret; static time_t to; + char spindown; if (cdHandle < 1) return -1; @@ -460,6 +474,8 @@ long CDRgetStatus(struct CdrStat *stat) { stat->Status |= 0x10; break; default: + spindown = (char)SpinDown; + ioctl(cdHandle, CDROMSETSPINDOWN, &spindown); ioctl(cdHandle, CDROM_LOCKDOOR, 0); break; } @@ -554,7 +570,6 @@ void ExecCfg(char *arg) { long CDRconfigure() { ExecCfg("configure"); - return 0; } |
