X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=pico%2Fcd%2Fcdd.c;fp=pico%2Fcd%2Fcdd.c;h=2e37b60e55e205a4dfd7d254aa77bcd348d85f01;hb=7b3ddc11dc21025f2a64116d664c745c07c54984;hp=58a605362ab5360377c050d9d8431960161779ae;hpb=274fcc35aa20e9777a8e09630a94088757384329;p=picodrive.git diff --git a/pico/cd/cdd.c b/pico/cd/cdd.c index 58a6053..2e37b60 100644 --- a/pico/cd/cdd.c +++ b/pico/cd/cdd.c @@ -163,8 +163,8 @@ void cdd_reset(void) cdd.lba = 0; /* reset status */ - cdd.status = cdd.loaded ? CD_STOP : NO_DISC; - + cdd.status = NO_DISC; + /* reset CD-DA fader (full volume) */ cdd.volume = 0x400; @@ -426,6 +426,10 @@ int cdd_load(const char *filename, int type) /* CD loaded */ cdd.loaded = 1; + + /* disc not scanned yet */ + cdd.status = NO_DISC; + return 0; } @@ -473,6 +477,9 @@ int cdd_unload(void) /* CD unloaded */ cdd.loaded = 0; + + if (cdd.status != CD_OPEN) + cdd.status = NO_DISC; } /* reset TOC */ @@ -927,6 +934,9 @@ void cdd_process(void) case 0x02: /* Read TOC */ { + if (cdd.status == NO_DISC) + cdd.status = cdd.loaded ? CD_STOP : NO_DISC; + /* Infos automatically retrieved by CDD processor from Q-Channel */ /* commands 0x00-0x02 (current block) and 0x03-0x05 (Lead-In) */ switch (Pico_mcd->regs[0x44>>1].byte.l) @@ -1287,6 +1297,7 @@ void cdd_process(void) if (PicoMCDcloseTray) PicoMCDcloseTray(); + return; }