BlueSCSI_cdrom.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  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. #define LOAD_EJECT_BIT 2
  9. #define START_STOP_BIT 1
  10. // Called by scsi.c from SCSI2SD
  11. extern "C" int scsiCDRomCommand(void);
  12. // Close CDROM tray and note media change event
  13. void cdromCloseTray(image_config_t &img);
  14. // Eject CDROM tray if closed, close if open
  15. // Switch image on ejection.
  16. void cdromPerformEject(image_config_t &img);
  17. // Reinsert ejected CD-ROM and restart from first image
  18. void cdromReinsertFirstImage(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);