Move CD blank media to separate status field.
Some checks failed
CMake (Linux) / Qt 5 GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, NDR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, NDR, MINGW64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, ODR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, ODR, MINGW64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, NDR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, NDR, MINGW64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, ODR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, ODR, MINGW64 (push) Has been cancelled
CodeQL Analysis (Linux) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CodeQL Analysis (Linux) / SDL GUI, Debug, NDR, x86_64 (push) Has been cancelled
CodeQL Analysis (Linux) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CodeQL Analysis (Linux) / SDL GUI, Debug, ODR, x86_64 (push) Has been cancelled
CodeQL Analysis (macos) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CodeQL Analysis (macos) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CodeQL Analysis (Windows) / Qt 5 GUI, Debug, NDR, MINGW64 (push) Has been cancelled
CodeQL Analysis (Windows) / Qt 5 GUI, Debug, ODR, MINGW64 (push) Has been cancelled
Some checks failed
CMake (Linux) / Qt 5 GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (Linux) / Qt 5 GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / Qt 6 GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (Linux) / SDL GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, NDR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, NDR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, ODR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Debug, ODR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, NDR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, NDR, x86_64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, ODR, arm64 (push) Has been cancelled
CMake (macos) / Qt 5 GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (macos) / SDL GUI, Dev, ODR, x86_64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, NDR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, NDR, MINGW64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, ODR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Debug, ODR, MINGW64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, NDR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, NDR, MINGW64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, ODR, CLANGARM64 (push) Has been cancelled
CMake (Windows) / Qt 5 GUI, Dev, ODR, MINGW64 (push) Has been cancelled
CodeQL Analysis (Linux) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CodeQL Analysis (Linux) / SDL GUI, Debug, NDR, x86_64 (push) Has been cancelled
CodeQL Analysis (Linux) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CodeQL Analysis (Linux) / SDL GUI, Debug, ODR, x86_64 (push) Has been cancelled
CodeQL Analysis (macos) / Qt 5 GUI, Debug, NDR, x86_64 (push) Has been cancelled
CodeQL Analysis (macos) / Qt 5 GUI, Debug, ODR, x86_64 (push) Has been cancelled
CodeQL Analysis (Windows) / Qt 5 GUI, Debug, NDR, MINGW64 (push) Has been cancelled
CodeQL Analysis (Windows) / Qt 5 GUI, Debug, ODR, MINGW64 (push) Has been cancelled
This commit is contained in:
@@ -2801,7 +2801,7 @@ cdrom_read_disc_information(const cdrom_t *dev, uint8_t *buffer)
|
||||
int ls_last = 0;
|
||||
int t_b0 = -1;
|
||||
|
||||
if (dev->cd_status == CD_STATUS_BLANK_CDR) {
|
||||
if (dev->blank_media == CD_BLANK_CDR) {
|
||||
memset(buffer, 0x00, 34);
|
||||
|
||||
buffer[ 0] = 0x00; /* Disc Information Length (MSB) */
|
||||
@@ -3117,7 +3117,8 @@ cdrom_insert_blank(cdrom_t *dev, const char *fn)
|
||||
// All looking good, reset state
|
||||
dev->seek_pos = 0;
|
||||
dev->cd_buflen = 0;
|
||||
dev->cd_status = CD_STATUS_BLANK_CDR;
|
||||
dev->cd_status = CD_STATUS_DATA_ONLY;
|
||||
dev->blank_media = CD_BLANK_CDR;
|
||||
dev->cdrom_capacity = 0;
|
||||
cdrom_log(dev->log, "Blank CD-R created\n");
|
||||
cdrom_insert(dev->id);
|
||||
|
||||
@@ -31,10 +31,11 @@
|
||||
#define CD_STATUS_HOLD 8
|
||||
#define CD_STATUS_DVD_REJECTED 16
|
||||
#define CD_STATUS_HAS_AUDIO 0xc
|
||||
#define CD_STATUS_BLANK_CDR 0x20
|
||||
#define CD_STATUS_BLANK_MASK 0x20
|
||||
#define CD_STATUS_MASK 0x2f
|
||||
|
||||
#define CD_BLANK_NOT 0x00
|
||||
#define CD_BLANK_CDR 0x01
|
||||
|
||||
/* Medium changed flag. */
|
||||
#define CD_STATUS_TRANSITION 0x40
|
||||
#define CD_STATUS_MEDIUM_CHANGED 0x80
|
||||
@@ -310,6 +311,7 @@ typedef struct cdrom {
|
||||
Bit 1 = DMA supportd. */
|
||||
uint8_t cd_status; /* Struct variable reserved for
|
||||
media status. */
|
||||
uint8_t blank_media;
|
||||
uint8_t speed;
|
||||
uint8_t cur_speed;
|
||||
|
||||
|
||||
@@ -2643,7 +2643,7 @@ scsi_cdrom_command(scsi_common_t *sc, const uint8_t *cdb)
|
||||
scsi_cdrom_not_ready(dev);
|
||||
else if (toc_format < 3) {
|
||||
// Blank discs return invalid field when asked for a TOC
|
||||
if (dev->drv->cd_status & CD_STATUS_BLANK_MASK) {
|
||||
if (dev->drv->blank_media) {
|
||||
scsi_cdrom_invalid_field(dev, toc_format);
|
||||
break;
|
||||
}
|
||||
@@ -2658,12 +2658,12 @@ scsi_cdrom_command(scsi_common_t *sc, const uint8_t *cdb)
|
||||
scsi_cdrom_set_buf_len(dev, BufLen, &len);
|
||||
scsi_cdrom_data_command_finish(dev, len, len, len, 0);
|
||||
}
|
||||
} else if (toc_format == 3 && dev->drv->cd_status == CD_STATUS_BLANK_CDR) {
|
||||
} else if (toc_format == 3 && dev->drv->blank_media == CD_BLANK_CDR) {
|
||||
len = cdrom_read_pma(dev->drv, dev->buffer, max_len);
|
||||
|
||||
scsi_cdrom_set_buf_len(dev, BufLen, &len);
|
||||
scsi_cdrom_data_command_finish(dev, len, len, len, 0);
|
||||
} else if (toc_format == 4 && dev->drv->cd_status == CD_STATUS_BLANK_CDR) {
|
||||
} else if (toc_format == 4 && dev->drv->blank_media == CD_BLANK_CDR) {
|
||||
len = cdrom_read_atip(dev->drv, dev->buffer, max_len);
|
||||
|
||||
scsi_cdrom_set_buf_len(dev, BufLen, &len);
|
||||
@@ -3661,6 +3661,14 @@ atapi_out:
|
||||
dev->buffer[6] = 8;
|
||||
len = 8;
|
||||
|
||||
// Undo the overflow if disc capacity is blank
|
||||
if (dev->drv->blank_media) {
|
||||
dev->buffer[0] = 0x00;
|
||||
dev->buffer[1] = 0x00;
|
||||
dev->buffer[2] = 0x00;
|
||||
dev->buffer[3] = 0x00;
|
||||
}
|
||||
|
||||
scsi_cdrom_log(dev->log, "CD-ROM Capacity: %08X\n",
|
||||
dev->drv->cdrom_capacity - 1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user