📄 sonycd535.h
字号:
#ifndef SONYCD535_H#define SONYCD535_H/* * define all the commands recognized by the CDU-531/5 */#define SONY535_REQUEST_DRIVE_STATUS_1 (0x80)#define SONY535_REQUEST_SENSE (0x82)#define SONY535_REQUEST_DRIVE_STATUS_2 (0x84)#define SONY535_REQUEST_ERROR_STATUS (0x86)#define SONY535_REQUEST_AUDIO_STATUS (0x88)#define SONY535_INQUIRY (0x8a)#define SONY535_SET_INACTIVITY_TIME (0x90)#define SONY535_SEEK_AND_READ_N_BLOCKS_1 (0xa0)#define SONY535_SEEK_AND_READ_N_BLOCKS_2 (0xa4)#define SONY535_PLAY_AUDIO (0xa6)#define SONY535_REQUEST_DISC_CAPACITY (0xb0)#define SONY535_REQUEST_TOC_DATA (0xb2)#define SONY535_REQUEST_SUB_Q_DATA (0xb4)#define SONY535_REQUEST_ISRC (0xb6)#define SONY535_REQUEST_UPC_EAN (0xb8)#define SONY535_SET_DRIVE_MODE (0xc0)#define SONY535_REQUEST_DRIVE_MODE (0xc2)#define SONY535_SET_RETRY_COUNT (0xc4)#define SONY535_DIAGNOSTIC_1 (0xc6)#define SONY535_DIAGNOSTIC_4 (0xcc)#define SONY535_DIAGNOSTIC_5 (0xce)#define SONY535_EJECT_CADDY (0xd0)#define SONY535_DISABLE_EJECT_BUTTON (0xd2)#define SONY535_ENABLE_EJECT_BUTTON (0xd4)#define SONY535_HOLD (0xe0)#define SONY535_AUDIO_PAUSE_ON_OFF (0xe2)#define SONY535_SET_VOLUME (0xe8)#define SONY535_STOP (0xf0)#define SONY535_SPIN_UP (0xf2)#define SONY535_SPIN_DOWN (0xf4)#define SONY535_CLEAR_PARAMETERS (0xf6)#define SONY535_CLEAR_ENDING_ADDRESS (0xf8)/* * define some masks */#define SONY535_DATA_NOT_READY_BIT (0x1)#define SONY535_RESULT_NOT_READY_BIT (0x2)/* * drive status 1 */#define SONY535_STATUS1_COMMAND_ERROR (0x1)#define SONY535_STATUS1_DATA_ERROR (0x2)#define SONY535_STATUS1_SEEK_ERROR (0x4)#define SONY535_STATUS1_DISC_TYPE_ERROR (0x8)#define SONY535_STATUS1_NOT_SPINNING (0x10)#define SONY535_STATUS1_EJECT_BUTTON_PRESSED (0x20)#define SONY535_STATUS1_CADDY_NOT_INSERTED (0x40)#define SONY535_STATUS1_BYTE_TWO_FOLLOWS (0x80)/* * drive status 2 */#define SONY535_CDD_LOADING_ERROR (0x7)#define SONY535_CDD_NO_DISC (0x8)#define SONY535_CDD_UNLOADING_ERROR (0x9)#define SONY535_CDD_CADDY_NOT_INSERTED (0xd)#define SONY535_ATN_RESET_OCCURRED (0x2)#define SONY535_ATN_DISC_CHANGED (0x4)#define SONY535_ATN_RESET_AND_DISC_CHANGED (0x6)#define SONY535_ATN_EJECT_IN_PROGRESS (0xe)#define SONY535_ATN_BUSY (0xf)/* * define some parameters */#define SONY535_AUDIO_DRIVE_MODE (0)#define SONY535_CDROM_DRIVE_MODE (0xe0)#define SONY535_PLAY_OP_PLAYBACK (0)#define SONY535_PLAY_OP_ENTER_HOLD (1)#define SONY535_PLAY_OP_SET_AUDIO_ENDING_ADDR (2)#define SONY535_PLAY_OP_SCAN_FORWARD (3)#define SONY535_PLAY_OP_SCAN_BACKWARD (4)/* * convert from msf format to block number */#define SONY_BLOCK_NUMBER(m,s,f) (((m)*60L+(s))*75L+(f))#define SONY_BLOCK_NUMBER_MSF(x) (((x)[0]*60L+(x)[1])*75L+(x)[2])/* * error return values from the doSonyCmd() routines */#define TIME_OUT (-1)#define NO_CDROM (-2)#define BAD_STATUS (-3)#define CD_BUSY (-4)#define NOT_DATA_CD (-5)#define NO_ROOM (-6)#define LOG_START_OFFSET 150 /* Offset of first logical sector */#define SONY_JIFFIES_TIMEOUT (5*HZ) /* Maximum time the drive will wait/try for an operation */#define SONY_READY_RETRIES (50000) /* How many times to retry a spin waiting for a register to come ready */#define SONY535_FAST_POLLS (10000) /* how many times recheck status waiting for a data to become ready */typedef unsigned char Byte;/* * This is the complete status returned from the drive configuration request * command. */struct s535_sony_drive_config{ char vendor_id[8]; char product_id[16]; char product_rev_level[4];};/* The following is returned from the request sub-q data command */struct s535_sony_subcode{ unsigned char address :4; unsigned char control :4; unsigned char track_num; unsigned char index_num; unsigned char rel_msf[3]; unsigned char abs_msf[3];};struct s535_sony_disc_capacity{ Byte mFirstTrack, sFirstTrack, fFirstTrack; Byte mLeadOut, sLeadOut, fLeadOut;};/* * The following is returned from the request TOC (Table Of Contents) command. * (last_track_num-first_track_num+1) values are valid in tracks. */struct s535_sony_toc{ unsigned char reserved0 :4; unsigned char control0 :4; unsigned char point0; unsigned char first_track_num; unsigned char reserved0a; unsigned char reserved0b; unsigned char reserved1 :4; unsigned char control1 :4; unsigned char point1; unsigned char last_track_num; unsigned char dummy1; unsigned char dummy2; unsigned char reserved2 :4; unsigned char control2 :4; unsigned char point2; unsigned char lead_out_start_msf[3]; struct { unsigned char reserved :4; unsigned char control :4; unsigned char track; unsigned char track_start_msf[3]; } tracks[100]; unsigned int lead_out_start_lba;};#endif /* SONYCD535_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -