diff --git a/BasiliskII/src/Unix/bincue_unix.cpp b/BasiliskII/src/Unix/bincue_unix.cpp index ce77e614..b91a861c 100644 --- a/BasiliskII/src/Unix/bincue_unix.cpp +++ b/BasiliskII/src/Unix/bincue_unix.cpp @@ -765,6 +765,15 @@ bool CDPlay_bincue(void *fh, uint8 start_m, uint8 start_s, uint8 start_f, return false; } +bool CDScan_bincue(void *fh, uint8 start_m, uint8 start_s, uint8 start_f, bool reverse) { + CueSheet *cs = (CueSheet *)fh; + if (cs && cs == player.cs) { + // stub + return true; + } + return false; +} + void CDSetVol_bincue(void* fh, uint8 left, uint8 right) { CueSheet *cs = (CueSheet *)fh; if (cs && cs == player.cs) { diff --git a/BasiliskII/src/Unix/bincue_unix.h b/BasiliskII/src/Unix/bincue_unix.h index 72fbac24..b07ab4a8 100644 --- a/BasiliskII/src/Unix/bincue_unix.h +++ b/BasiliskII/src/Unix/bincue_unix.h @@ -34,6 +34,7 @@ extern bool CDPlay_bincue(void *, uint8, uint8, extern bool CDPause_bincue(void *); extern bool CDResume_bincue(void *); extern bool CDStop_bincue(void *); +extern bool CDScan_bincue(void *, uint8, uint8, uint8, bool); extern void CDSetVol_bincue(void *, uint8, uint8); extern void CDGetVol_bincue(void *, uint8 *, uint8 *); diff --git a/BasiliskII/src/Unix/sys_unix.cpp b/BasiliskII/src/Unix/sys_unix.cpp index e0da8164..173cddf8 100755 --- a/BasiliskII/src/Unix/sys_unix.cpp +++ b/BasiliskII/src/Unix/sys_unix.cpp @@ -1407,8 +1407,13 @@ bool SysCDScan(void *arg, uint8 start_m, uint8 start_s, uint8 start_f, bool reve mac_file_handle *fh = (mac_file_handle *)arg; if (!fh) return false; - - // Not supported under Linux + +#if defined(BINCUE) + if (fh->is_bincue) + return CDScan_bincue(fh->bincue_fd,start_m,start_s,start_f,reverse); +#endif + + // Not supported outside bincue return false; }