BlueSCSI_cdrom.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Advanced CD-ROM drive emulation.
  2. // Adds a few capabilities on top of the SCSI2SD CD-ROM emulation:
  3. //
  4. // - bin/cue support for support of multiple tracks
  5. // - on the fly image switching
  6. #pragma once
  7. #include "BlueSCSI_disk.h"
  8. // Called by scsi.c from SCSI2SD
  9. extern "C" int scsiCDRomCommand(void);
  10. // Close CDROM tray and note media change event
  11. void cdromCloseTray(image_config_t &img);
  12. // Eject CDROM tray if closed, close if open
  13. // Switch image on ejection.
  14. void cdromPerformEject(image_config_t &img);
  15. // Reinsert ejected CD-ROM and restart from first image
  16. void cdromReinsertFirstImage(image_config_t &img);
  17. // Switch to next CD-ROM image if multiple have been configured
  18. bool cdromSwitchNextImage(image_config_t &img);
  19. // Check if the currently loaded cue sheet for the image can be parsed
  20. // and print warnings about unsupported track types
  21. bool cdromValidateCueSheet(image_config_t &img);
  22. // Audio playback status
  23. // boolean flag is true if just basic mechanism status (playback true/false)
  24. // is desired, or false if historical audio status codes should be returned
  25. void cdromGetAudioPlaybackStatus(uint8_t *status, uint32_t *current_lba, bool current_only);
  26. // switch to a given filename for the cd.
  27. bool cdromSwitch(image_config_t &img, const char* filename);