Implement GET TRACK INFORMATION for CD-R for invisible/incomplete track.
This commit is contained in:
@@ -2946,7 +2946,43 @@ cdrom_read_track_information(cdrom_t *dev, const uint8_t *cdb, uint8_t *buffer)
|
||||
break;
|
||||
case 0x01:
|
||||
if (dev->blank_media) {
|
||||
ret = -cdb[1];
|
||||
if (pos != 0xff) {
|
||||
ret = -cdb[1];
|
||||
break;
|
||||
}
|
||||
|
||||
// Otherwise it is asking the invisible/incomplete track information
|
||||
memset(buffer, 0, 36);
|
||||
buffer[ 0] = 0x00; /* Data Length (MSB) */
|
||||
buffer[ 1] = 0x22; /* Data Length (LSB) */
|
||||
buffer[ 2] = 0x01; /* Logical Track Number (LSB) */
|
||||
buffer[ 3] = 0x01; /* Session Number (LSB) */
|
||||
buffer[ 4] = 0x00; /* Reserved */
|
||||
buffer[ 5] = 0x04; /* LJRS, Damage, Copy, Track Mode */
|
||||
buffer[ 6] = 0x4f; /* RT, Blank, Packet, FP, Data Mode */
|
||||
buffer[ 7] = 0x01; /* LRA_V, NWA_V */
|
||||
buffer[ 8] = 0x00; /* Logical Track Start Addres (MSB...) */
|
||||
buffer[ 9] = 0x00; /* ... */
|
||||
buffer[10] = 0x00; /* ... */
|
||||
buffer[11] = 0x00; /* Logical Track Start Address (...LSB) */
|
||||
buffer[12] = 0x00; /* Next Writable Address (MSB...) */
|
||||
buffer[13] = 0x00; /* ... */
|
||||
buffer[14] = 0x00; /* ... */
|
||||
buffer[15] = 0x00; /* Next Writable Address (...LSB) */
|
||||
buffer[16] = 0x00; /* Free Blocks (MSB...) */
|
||||
buffer[17] = 0x05; /* ... */
|
||||
buffer[18] = 0x7d; /* ... */
|
||||
buffer[19] = 0xa4; /* Free Blocks (...LSB) */
|
||||
buffer[20] = 0x00; /* Fixed Packet Size (MSB...) */
|
||||
buffer[21] = 0x00; /* ... */
|
||||
buffer[22] = 0x00; /* ... */
|
||||
buffer[23] = 0x00; /* Fixed Packet Size (...LSB) */
|
||||
buffer[24] = 0x00; /* Logical Track Size (MSB...) */
|
||||
buffer[25] = 0x05; /* ... */
|
||||
buffer[26] = 0x7d; /* ... */
|
||||
buffer[27] = 0xa4; /* Logical Track Size (...LSB) */
|
||||
|
||||
ret = 28;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user